File hevea_f46f610a6b0078f4aa208dda361f21de574cc56ad64b32889301afc466d33979.elf
Function:
    001ab0c0
    001ab0c0Stdlib.String.fun:
    001ab0c0mov rdi, rax
    001ab0c3sub r15, 24
    001ab0c7cmp r15, [r14]
    001ab0cajb 0x1ab11f
    001ab0cc
    001ab0ccloc_1ab0cc:
    001ab0cclea rax, [r15+8]
    001ab0d0mov [rax-8], 2303
    001ab0d8lea rsi, [rip+0xca7e1]
    001ab0dfmov [rax], rsi
    001ab0e2sar rbx, 1
    001ab0e5mov rsi, [rdi-8]
    001ab0e9shr rsi, 10
    001ab0edlea rsi, [8*rsi-1]
    001ab0f5movzx rdx, [rdi+rsi]
    001ab0fasub rsi, rdx
    001ab0fdadd rsi, -3
    001ab101mov rdx, rsi
    001ab104sar rdx, 63
    001ab108xor rdx, -1
    001ab10cand rdx, rsi
    001ab10fcmp rdx, rbx
    001ab112jbe 0x1ab126
    001ab114mov ebx, [rdi+rbx]
    001ab117movsxd rbx, ebx
    001ab11amov [rax+8], rbx
    001ab11eret
    001ab11f
    001ab11floc_1ab11f:
    001ab11fcall caml_call_gc
    001ab124jmp 0x1ab0cc
    001ab126
    001ab126loc_1ab126:
    001ab126call caml_ml_array_bound_error
    001ab0c0
    001ab12b
    001ab12b // align 0x10
    001ab130
    001ab130Stdlib.String.fun:
    001ab130sar rbx, 1
    001ab133mov rdi, [rax-8]
    001ab137shr rdi, 10
    001ab13blea rdi, [8*rdi-1]
    001ab143movzx rsi, [rax+rdi]
    001ab148sub rdi, rsi
    001ab14bdec rdi
    001ab14emov rsi, rdi
    001ab151sar rsi, 63
    001ab155xor rsi, -1
    001ab159and rsi, rdi
    001ab15ccmp rsi, rbx
    001ab15fjbe 0x1ab16c
    001ab161movzx rax, [rax+rbx]
    001ab166lea rax, [rax+rax+1]
    001ab16bret
    001ab16c
    001ab16cloc_1ab16c:
    001ab16ccall caml_ml_array_bound_error
    001ab130
    001ab171
    001ab171 // align 0x10
    001ab180
    001ab180Stdlib.String.fun:
    001ab180sar rbx, 1
    001ab183mov rdi, [rax-8]
    001ab187shr rdi, 10
    001ab18blea rdi, [8*rdi-1]
    001ab193movzx rsi, [rax+rdi]
    001ab198sub rdi, rsi
    001ab19bcmp rdi, rbx
    001ab19ejbe 0x1ab1ab
    001ab1a0movzx rax, [rax+rbx]
    001ab1a5lea rax, [rax+rax+1]
    001ab1aaret
    001ab1ab
    001ab1abloc_1ab1ab:
    001ab1abcall caml_ml_array_bound_error
    001ab180
    001ab1b0
    001ab1b0Stdlib.String.fun:
    001ab1b0mov rdi, rax
    001ab1b3mov rsi, rbx
    001ab1b6mov rbx, rsp
    001ab1b9mov rsp, [r14+64]
    001ab1bdcall caml_string_equal
    001ab1c2mov rsp, rbx
    001ab1c5ret
    001ab1b0
    001ab1c6
    001ab1c6 // align 0x10
    001ab1d0
    001ab1d0Stdlib.String.make:
    001ab1d0lea r10, [rsp-320]
    001ab1d8cmp r10, [r14+40]
    001ab1dcjb 0x1ab1e4
    001ab1de
    001ab1deloc_1ab1de:
    001ab1decall Stdlib.Bytes.make
    001ab1e3ret
    001ab1e4
    001ab1e4loc_1ab1e4:
    001ab1e4push 33
    001ab1e6call caml_call_realloc_stack
    001ab1ebpop r10
    001ab1edjmp 0x1ab1de
    001ab1d0
    001ab1ef
    001ab1ef // align 0x10
    001ab1f0
    001ab1f0Stdlib.String.init:
    001ab1f0lea r10, [rsp-320]
    001ab1f8cmp r10, [r14+40]
    001ab1fcjb 0x1ab204
    001ab1fe
    001ab1feloc_1ab1fe:
    001ab1fecall Stdlib.Bytes.init
    001ab203ret
    001ab204
    001ab204loc_1ab204:
    001ab204push 33
    001ab206call caml_call_realloc_stack
    001ab20bpop r10
    001ab20djmp 0x1ab1fe
    001ab1f0
    001ab20f
    001ab20f // align 0x10
    001ab210
    001ab210Stdlib.String.sub:
    001ab210lea r10, [rsp-320]
    001ab218cmp r10, [r14+40]
    001ab21cjb 0x1ab224
    001ab21e
    001ab21eloc_1ab21e:
    001ab21ecall Stdlib.Bytes.sub
    001ab223ret
    001ab224
    001ab224loc_1ab224:
    001ab224push 33
    001ab226call caml_call_realloc_stack
    001ab22bpop r10
    001ab22djmp 0x1ab21e
    001ab210
    001ab22f
    001ab22f // align 0x10
    001ab230
    001ab230Stdlib.String.ensure_ge:
    001ab230cmp rax, rbx
    001ab233jl 0x1ab238
    001ab235ret
    001ab236
    001ab236 66 90 f.
    001ab238
    001ab238loc_1ab238:
    001ab238lea rax, [rip+0x191369]
    001ab23fjmp 0x195ab0
    001ab230
    001ab244
    001ab244 // align 0x10
    001ab250
    001ab250Stdlib.String.sum_lengths:
    001ab250lea r10, [rsp-336]
    001ab258cmp r10, [r14+40]
    001ab25cjb 0x1ab308
    001ab262
    001ab262loc_1ab262:
    001ab262sub rsp, 16
    001ab266
    001ab266loc_1ab266:
    001ab266cmp r15, [r14]
    001ab269jbe 0x1ab2fe
    001ab26f
    001ab26floc_1ab26f:
    001ab26ftest dil, 1
    001ab273je 0x1ab27c
    001ab275add rsp, 16
    001ab279ret
    001ab27a
    001ab27a 66 90 f.
    001ab27c
    001ab27cloc_1ab27c:
    001ab27cmov rsi, [rdi]
    001ab27fmov rdx, [rdi+8]
    001ab283test dl, 1
    001ab286je 0x1ab2ac
    001ab288mov rbx, [rsi-8]
    001ab28cshr rbx, 10
    001ab290lea rbx, [8*rbx-1]
    001ab298movzx rdi, [rsi+rbx]
    001ab29dsub rbx, rdi
    001ab2a0lea rax, [rax+2*rbx]
    001ab2a4add rsp, 16
    001ab2a8ret
    001ab2a9
    001ab2a9 0f 1f 00 ...
    001ab2ac
    001ab2acloc_1ab2ac:
    001ab2acmov [rsp], rdi
    001ab2b0mov [rsp+8], rbx
    001ab2b5mov rdi, [rsi-8]
    001ab2b9shr rdi, 10
    001ab2bdlea rdi, [8*rdi-1]
    001ab2c5movzx rsi, [rsi+rdi]
    001ab2casub rdi, rsi
    001ab2cdlea rbx, [rbx+2*rdi]
    001ab2d1lea rbx, [rbx+rax-1]
    001ab2d6cmp rbx, rax
    001ab2d9jl 0x1ab2e0
    001ab2dbmov rax, rbx
    001ab2dejmp 0x1ab2ec
    001ab2e0
    001ab2e0loc_1ab2e0:
    001ab2e0lea rax, [rip+0x1912c1]
    001ab2e7call camlStdlib.invalid_arg_10
    001ab2ec
    001ab2ecloc_1ab2ec:
    001ab2ecmov rbx, [rsp]
    001ab2f0mov rdi, [rbx+8]
    001ab2f4mov rbx, [rsp+8]
    001ab2f9jmp 0x1ab266
    001ab2fe
    001ab2feloc_1ab2fe:
    001ab2fecall caml_call_gc
    001ab303jmp 0x1ab26f
    001ab308
    001ab308loc_1ab308:
    001ab308push 35
    001ab30acall caml_call_realloc_stack
    001ab30fpop r10
    001ab311jmp 0x1ab262
    001ab250
    001ab316
    001ab316 // align 0x10
    001ab320
    001ab320Stdlib.String.unsafe_blits:
    001ab320sub rsp, 40
    001ab324
    001ab324loc_1ab324:
    001ab324mov r13, rax
    001ab327mov [rsp+32], rbx
    001ab32ccmp r15, [r14]
    001ab32fjbe 0x1ab46e
    001ab335
    001ab335loc_1ab335:
    001ab335test dl, 1
    001ab338je 0x1ab344
    001ab33amov rax, r13
    001ab33dadd rsp, 40
    001ab341ret
    001ab342
    001ab342 66 90 f.
    001ab344
    001ab344loc_1ab344:
    001ab344mov r12, [rdx]
    001ab347mov rax, [rdx+8]
    001ab34btest al, 1
    001ab34dje 0x1ab394
    001ab34fmov rax, [r12-8]
    001ab354shr rax, 10
    001ab358lea rax, [8*rax-1]
    001ab360movzx rbx, [r12+rax]
    001ab365sub rax, rbx
    001ab368lea r8, [rax+rax+1]
    001ab36dmov esi, 1
    001ab372mov rdi, r12
    001ab375mov rdx, r13
    001ab378mov rcx, [rsp+32]
    001ab37dmov rbx, rsp
    001ab380mov rsp, [r14+64]
    001ab384call caml_blit_string
    001ab389mov rsp, rbx
    001ab38cmov rax, r13
    001ab38fadd rsp, 40
    001ab393ret
    001ab394
    001ab394loc_1ab394:
    001ab394mov [rsp+24], r12
    001ab399mov [rsp+16], rdx
    001ab39emov [rsp+8], rsi
    001ab3a3mov [rsp], rdi
    001ab3a7mov rax, [r12-8]
    001ab3acshr rax, 10
    001ab3b0lea rax, [8*rax-1]
    001ab3b8movzx rbx, [r12+rax]
    001ab3bdsub rax, rbx
    001ab3c0lea r8, [rax+rax+1]
    001ab3c5mov esi, 1
    001ab3camov rdi, r12
    001ab3cdmov rdx, r13
    001ab3d0mov rcx, [rsp+32]
    001ab3d5mov rbx, rsp
    001ab3d8mov rsp, [r14+64]
    001ab3dccall caml_blit_string
    001ab3e1mov rsp, rbx
    001ab3e4mov rax, [r12-8]
    001ab3e9shr rax, 10
    001ab3edlea rax, [8*rax-1]
    001ab3f5movzx rbx, [r12+rax]
    001ab3fasub rax, rbx
    001ab3fdmov rbx, [rsp+32]
    001ab402lea rcx, [rbx+2*rax]
    001ab406mov esi, 1
    001ab40bmov rbp, [rsp]
    001ab40fmov rdi, rbp
    001ab412mov rdx, r13
    001ab415mov r12, [rsp+8]
    001ab41amov r8, r12
    001ab41dmov rbx, rsp
    001ab420mov rsp, [r14+64]
    001ab424call caml_blit_string
    001ab429mov rsp, rbx
    001ab42cmov rax, [rsp+16]
    001ab431mov rdx, [rax+8]
    001ab435mov rbx, [rsp+24]
    001ab43amov rax, [rbx-8]
    001ab43eshr rax, 10
    001ab442lea rax, [8*rax-1]
    001ab44amovzx rbx, [rbx+rax]
    001ab44fsub rax, rbx
    001ab452mov rbx, [rsp+32]
    001ab457lea rax, [rbx+2*rax]
    001ab45blea rbx, [rax+r12-1]
    001ab460mov rax, r13
    001ab463mov rdi, rbp
    001ab466mov rsi, r12
    001ab469jmp 0x1ab324
    001ab46e
    001ab46eloc_1ab46e:
    001ab46ecall caml_call_gc
    001ab473jmp 0x1ab335
    001ab320
    001ab478
    001ab478 // align 0x10
    001ab480
    001ab480Stdlib.String.concat:
    001ab480lea r10, [rsp-344]
    001ab488cmp r10, [r14+40]
    001ab48cjb 0x1ab509
    001ab48e
    001ab48eloc_1ab48e:
    001ab48esub rsp, 24
    001ab492mov rdi, rbx
    001ab495test dil, 1
    001ab499je 0x1ab4a8
    001ab49blea rax, [rip+0x19111e]
    001ab4a2add rsp, 24
    001ab4a6ret
    001ab4a7
    001ab4a7 90 .
    001ab4a8
    001ab4a8loc_1ab4a8:
    001ab4a8mov [rsp+16], rdi
    001ab4admov [rsp], rax
    001ab4b1mov rbx, [rax-8]
    001ab4b5shr rbx, 10
    001ab4b9lea rbx, [8*rbx-1]
    001ab4c1movzx rax, [rax+rbx]
    001ab4c6sub rbx, rax
    001ab4c9lea rbx, [rbx+rbx+1]
    001ab4cemov [rsp+8], rbx
    001ab4d3mov eax, 1
    001ab4d8call Stdlib.String.sum_lengths
    001ab4ddmov rdi, rax
    001ab4e0lea rax, [rip+0x75b49]
    001ab4e7call caml_c_call
    001ab4ecmov ebx, 1
    001ab4f1mov rdi, [rsp]
    001ab4f5mov rsi, [rsp+8]
    001ab4famov rdx, [rsp+16]
    001ab4ffcall Stdlib.String.unsafe_blits
    001ab504add rsp, 24
    001ab508ret
    001ab509
    001ab509loc_1ab509:
    001ab509push 36
    001ab50bcall caml_call_realloc_stack
    001ab510pop r10
    001ab512jmp 0x1ab48e
    001ab480
    001ab517
    001ab517 // align 0x10
    001ab520
    001ab520Stdlib.String.iter:
    001ab520lea r10, [rsp-352]
    001ab528cmp r10, [r14+40]
    001ab52cjb 0x1ab5be
    001ab532
    001ab532loc_1ab532:
    001ab532sub rsp, 32
    001ab536mov edi, 1
    001ab53bmov rsi, [rbx-8]
    001ab53fshr rsi, 10
    001ab543lea rsi, [8*rsi-1]
    001ab54bmovzx rdx, [rbx+rsi]
    001ab550sub rsi, rdx
    001ab553lea rsi, [rsi+rsi-1]
    001ab558cmp rdi, rsi
    001ab55bjg 0x1ab5ad
    001ab55dmov [rsp+24], rsi
    001ab562mov [rsp+16], rdi
    001ab567mov [rsp], rbx
    001ab56bmov [rsp+8], rax
    001ab570
    001ab570loc_1ab570:
    001ab570sar rdi, 1
    001ab573mov rax, [rsp]
    001ab577movzx rax, [rax+rdi]
    001ab57clea rax, [rax+rax+1]
    001ab581mov rbx, [rsp+8]
    001ab586mov rdi, [rbx]
    001ab589call rdi
    001ab58bmov rdi, [rsp+16]
    001ab590mov rax, rdi
    001ab593add rdi, 2
    001ab597mov [rsp+16], rdi
    001ab59cmov rbx, [rsp+24]
    001ab5a1cmp rax, rbx
    001ab5a4je 0x1ab5ad
    001ab5a6cmp r15, [r14]
    001ab5a9ja 0x1ab570
    001ab5abjmp 0x1ab5b7
    001ab5ad
    001ab5adloc_1ab5ad:
    001ab5admov eax, 1
    001ab5b2add rsp, 32
    001ab5b6ret
    001ab5b7
    001ab5b7loc_1ab5b7:
    001ab5b7call caml_call_gc
    001ab5bcjmp 0x1ab570
    001ab5be
    001ab5beloc_1ab5be:
    001ab5bepush 37
    001ab5c0call caml_call_realloc_stack
    001ab5c5pop r10
    001ab5c7jmp 0x1ab532
    001ab520
    001ab5cc
    001ab5cc // align 0x10
    001ab5d0
    001ab5d0Stdlib.String.iteri:
    001ab5d0lea r10, [rsp-352]
    001ab5d8cmp r10, [r14+40]
    001ab5dcjb 0x1ab674
    001ab5e2
    001ab5e2loc_1ab5e2:
    001ab5e2sub rsp, 32
    001ab5e6mov rdi, rax
    001ab5e9mov eax, 1
    001ab5eemov rsi, [rbx-8]
    001ab5f2shr rsi, 10
    001ab5f6lea rsi, [8*rsi-1]
    001ab5femovzx rdx, [rbx+rsi]
    001ab603sub rsi, rdx
    001ab606lea rsi, [rsi+rsi-1]
    001ab60bcmp rax, rsi
    001ab60ejg 0x1ab663
    001ab610mov [rsp+24], rsi
    001ab615mov [rsp+16], rax
    001ab61amov [rsp], rbx
    001ab61emov [rsp+8], rdi
    001ab623
    001ab623loc_1ab623:
    001ab623mov rbx, rax
    001ab626sar rbx, 1
    001ab629mov rdi, [rsp]
    001ab62dmovzx rbx, [rdi+rbx]
    001ab632lea rbx, [rbx+rbx+1]
    001ab637mov rdi, [rsp+8]
    001ab63ccall caml_apply2
    001ab641mov rax, [rsp+16]
    001ab646mov rbx, rax
    001ab649add rax, 2
    001ab64dmov [rsp+16], rax
    001ab652mov rdi, [rsp+24]
    001ab657cmp rbx, rdi
    001ab65aje 0x1ab663
    001ab65ccmp r15, [r14]
    001ab65fja 0x1ab623
    001ab661jmp 0x1ab66d
    001ab663
    001ab663loc_1ab663:
    001ab663mov eax, 1
    001ab668add rsp, 32
    001ab66cret
    001ab66d
    001ab66dloc_1ab66d:
    001ab66dcall caml_call_gc
    001ab672jmp 0x1ab623
    001ab674
    001ab674loc_1ab674:
    001ab674push 37
    001ab676call caml_call_realloc_stack
    001ab67bpop r10
    001ab67djmp 0x1ab5e2
    001ab5d0
    001ab682
    001ab682 // align 0x10
    001ab690
    001ab690Stdlib.String.map:
    001ab690lea r10, [rsp-320]
    001ab698cmp r10, [r14+40]
    001ab69cjb 0x1ab6a4
    001ab69e
    001ab69eloc_1ab69e:
    001ab69ecall Stdlib.Bytes.map
    001ab6a3ret
    001ab6a4
    001ab6a4loc_1ab6a4:
    001ab6a4push 33
    001ab6a6call caml_call_realloc_stack
    001ab6abpop r10
    001ab6adjmp 0x1ab69e
    001ab690
    001ab6af
    001ab6af // align 0x10
    001ab6b0
    001ab6b0Stdlib.String.mapi:
    001ab6b0lea r10, [rsp-320]
    001ab6b8cmp r10, [r14+40]
    001ab6bcjb 0x1ab6c4
    001ab6be
    001ab6beloc_1ab6be:
    001ab6becall Stdlib.Bytes.mapi
    001ab6c3ret
    001ab6c4
    001ab6c4loc_1ab6c4:
    001ab6c4push 33
    001ab6c6call caml_call_realloc_stack
    001ab6cbpop r10
    001ab6cdjmp 0x1ab6be
    001ab6b0
    001ab6cf
    001ab6cf // align 0x10
    001ab6d0
    001ab6d0Stdlib.String.fold_right:
    001ab6d0jmp 0x1a7430
    001ab6d0
    001ab6d5
    001ab6d5 // align 0x10
    001ab6e0
    001ab6e0Stdlib.String.fold_left:
    001ab6e0jmp 0x1a7380
    001ab6e0
    001ab6e5
    001ab6e5 // align 0x10
    001ab6f0
    001ab6f0Stdlib.String.exists:
    001ab6f0jmp 0x1a74e0
    001ab6f0
    001ab6f5
    001ab6f5 // align 0x10
    001ab700
    001ab700Stdlib.String.for_all:
    001ab700jmp 0x1a75e0
    001ab700
    001ab705
    001ab705 // align 0x10
    001ab710
    001ab710Stdlib.String.is_space:
    001ab710add rax, -18
    001ab714cmp rax, 9
    001ab718jbe 0x1ab724
    001ab71acmp rax, 47
    001ab71eje 0x1ab730
    001ab720jmp 0x1ab72a
    001ab722
    001ab722 66 90 f.
    001ab724
    001ab724loc_1ab724:
    001ab724cmp rax, 5
    001ab728jne 0x1ab730
    001ab72a
    001ab72aloc_1ab72a:
    001ab72amov eax, 1
    001ab72fret
    001ab730
    001ab730loc_1ab730:
    001ab730mov eax, 3
    001ab735ret
    001ab710
    001ab736
    001ab736 // align 0x10
    001ab740
    001ab740Stdlib.String.trim:
    001ab740lea r10, [rsp-328]
    001ab748cmp r10, [r14+40]
    001ab74cjb 0x1ab7ea
    001ab752
    001ab752loc_1ab752:
    001ab752sub rsp, 8
    001ab756mov r12, rax
    001ab759lea rsi, [rip+0x190e60]
    001ab760mov rdi, r12
    001ab763mov rbx, rsp
    001ab766mov rsp, [r14+64]
    001ab76acall caml_string_equal
    001ab76fmov rsp, rbx
    001ab772cmp rax, 1
    001ab776je 0x1ab780
    001ab778mov rax, r12
    001ab77badd rsp, 8
    001ab77fret
    001ab780
    001ab780loc_1ab780:
    001ab780mov [rsp], r12
    001ab784movzx rax, [r12]
    001ab789lea rax, [rax+rax+1]
    001ab78ecall Stdlib.String.is_space
    001ab793cmp rax, 1
    001ab797jne 0x1ab7dc
    001ab799mov rdi, [rsp]
    001ab79dmov rax, [rdi-8]
    001ab7a1shr rax, 10
    001ab7a5lea rax, [8*rax-1]
    001ab7admovzx rbx, [rdi+rax]
    001ab7b2sub rax, rbx
    001ab7b5lea rax, [rax+rax-1]
    001ab7basar rax, 1
    001ab7bdmovzx rax, [rdi+rax]
    001ab7c2lea rax, [rax+rax+1]
    001ab7c7call Stdlib.String.is_space
    001ab7cccmp rax, 1
    001ab7d0jne 0x1ab7dc
    001ab7d2mov rax, [rsp]
    001ab7d6add rsp, 8
    001ab7daret
    001ab7db
    001ab7db 90 .
    001ab7dc
    001ab7dcloc_1ab7dc:
    001ab7dcmov rax, [rsp]
    001ab7e0call Stdlib.Bytes.trim
    001ab7e5add rsp, 8
    001ab7e9ret
    001ab7ea
    001ab7ealoc_1ab7ea:
    001ab7eapush 34
    001ab7eccall caml_call_realloc_stack
    001ab7f1pop r10
    001ab7f3jmp 0x1ab752
    001ab740
    001ab7f8
    001ab7f8 // align 0x10
    001ab800
    001ab800Stdlib.String.escaped:
    001ab800lea r10, [rsp-336]
    001ab808cmp r10, [r14+40]
    001ab80cjb 0x1ab839
    001ab80e
    001ab80eloc_1ab80e:
    001ab80esub rsp, 16
    001ab812mov [rsp+8], rax
    001ab817mov [rsp], rax
    001ab81bcall Stdlib.Bytes.unsafe_escape
    001ab820mov rbx, [rsp]
    001ab824cmp rbx, rax
    001ab827jne 0x1ab834
    001ab829mov rax, [rsp+8]
    001ab82eadd rsp, 16
    001ab832ret
    001ab833
    001ab833 90 .
    001ab834
    001ab834loc_1ab834:
    001ab834add rsp, 16
    001ab838ret
    001ab839
    001ab839loc_1ab839:
    001ab839push 35
    001ab83bcall caml_call_realloc_stack
    001ab840pop r10
    001ab842jmp 0x1ab80e
    001ab800
    001ab844
    001ab844 // align 0x10
    001ab850
    001ab850Stdlib.String.index_rec:
    001ab850mov rdx, rax
    001ab853cmp r15, [r14]
    001ab856jbe 0x1ab895
    001ab858
    001ab858loc_1ab858:
    001ab858cmp rdi, rbx
    001ab85bjl 0x1ab870
    001ab85dlea rax, [rip+0x181db4]
    001ab864mov rax, [rax+56]
    001ab868call caml_raise_exn
    001ab86dnop [rax]
    001ab870
    001ab870loc_1ab870:
    001ab870mov rax, rdi
    001ab873sar rax, 1
    001ab876movzx rax, [rdx+rax]
    001ab87blea rax, [rax+rax+1]
    001ab880cmp rax, rsi
    001ab883jne 0x1ab88c
    001ab885mov rax, rdi
    001ab888ret
    001ab889
    001ab889 0f 1f 00 ...
    001ab88c
    001ab88cloc_1ab88c:
    001ab88cadd rdi, 2
    001ab890mov rax, rdx
    001ab893jmp 0x1ab850
    001ab895
    001ab895loc_1ab895:
    001ab895call caml_call_gc
    001ab89ajmp 0x1ab858
    001ab850
    001ab89c
    001ab89c // align 0x10
    001ab8a0
    001ab8a0Stdlib.String.index:
    001ab8a0mov rsi, rbx
    001ab8a3mov edi, 1
    001ab8a8mov rbx, [rax-8]
    001ab8acshr rbx, 10
    001ab8b0lea rbx, [8*rbx-1]
    001ab8b8movzx rdx, [rax+rbx]
    001ab8bdsub rbx, rdx
    001ab8c0lea rbx, [rbx+rbx+1]
    001ab8c5jmp 0x1ab850
    001ab8a0
    001ab8ca
    001ab8ca // align 0x10
    001ab8d0
    001ab8d0Stdlib.String.index_rec_opt:
    001ab8d0cmp r15, [r14]
    001ab8d3jbe 0x1ab91d
    001ab8d5
    001ab8d5loc_1ab8d5:
    001ab8d5cmp rdi, rbx
    001ab8d8jl 0x1ab8e0
    001ab8damov eax, 1
    001ab8dfret
    001ab8e0
    001ab8e0loc_1ab8e0:
    001ab8e0mov rdx, rdi
    001ab8e3sar rdx, 1
    001ab8e6movzx rdx, [rax+rdx]
    001ab8eblea rdx, [rdx+rdx+1]
    001ab8f0cmp rdx, rsi
    001ab8f3jne 0x1ab910
    001ab8f5sub r15, 16
    001ab8f9cmp r15, [r14]
    001ab8fcjb 0x1ab916
    001ab8fe
    001ab8feloc_1ab8fe:
    001ab8felea rax, [r15+8]
    001ab902mov [rax-8], 1024
    001ab90amov [rax], rdi
    001ab90dret
    001ab90e
    001ab90e 66 90 f.
    001ab910
    001ab910loc_1ab910:
    001ab910add rdi, 2
    001ab914jmp 0x1ab8d0
    001ab916
    001ab916loc_1ab916:
    001ab916call caml_call_gc
    001ab91bjmp 0x1ab8fe
    001ab91d
    001ab91dloc_1ab91d:
    001ab91dcall caml_call_gc
    001ab922jmp 0x1ab8d5
    001ab8d0
    001ab924
    001ab924 // align 0x10
    001ab930
    001ab930Stdlib.String.index_opt:
    001ab930mov rsi, rbx
    001ab933mov edi, 1
    001ab938mov rbx, [rax-8]
    001ab93cshr rbx, 10
    001ab940lea rbx, [8*rbx-1]
    001ab948movzx rdx, [rax+rbx]
    001ab94dsub rbx, rdx
    001ab950lea rbx, [rbx+rbx+1]
    001ab955jmp 0x1ab8d0
    001ab930
    001ab95a
    001ab95a // align 0x10
    001ab960
    001ab960Stdlib.String.index_from:
    001ab960mov rdx, rbx
    001ab963mov rsi, rdi
    001ab966mov rbx, [rax-8]
    001ab96ashr rbx, 10
    001ab96elea rbx, [8*rbx-1]
    001ab976movzx rdi, [rax+rbx]
    001ab97bsub rbx, rdi
    001ab97elea rbx, [rbx+rbx+1]
    001ab983cmp rdx, 1
    001ab987jl 0x1ab998
    001ab989cmp rdx, rbx
    001ab98cjg 0x1ab998
    001ab98emov rdi, rdx
    001ab991jmp 0x1ab850
    001ab996
    001ab996 66 90 f.
    001ab998
    001ab998loc_1ab998:
    001ab998lea rax, [rip+0x190bd9]
    001ab99fjmp 0x195ab0
    001ab960
    001ab9a4
    001ab9a4 // align 0x10
    001ab9b0
    001ab9b0Stdlib.String.index_from_opt:
    001ab9b0mov rdx, rbx
    001ab9b3mov rsi, rdi
    001ab9b6mov rbx, [rax-8]
    001ab9bashr rbx, 10
    001ab9belea rbx, [8*rbx-1]
    001ab9c6movzx rdi, [rax+rbx]
    001ab9cbsub rbx, rdi
    001ab9celea rbx, [rbx+rbx+1]
    001ab9d3cmp rdx, 1
    001ab9d7jl 0x1ab9e8
    001ab9d9cmp rdx, rbx
    001ab9dcjg 0x1ab9e8
    001ab9demov rdi, rdx
    001ab9e1jmp 0x1ab8d0
    001ab9e6
    001ab9e6 66 90 f.
    001ab9e8
    001ab9e8loc_1ab9e8:
    001ab9e8lea rax, [rip+0x190b51]
    001ab9efjmp 0x195ab0
    001ab9b0
    001ab9f4
    001ab9f4 // align 0x10
    001aba00
    001aba00Stdlib.String.rindex_rec:
    001aba00mov rsi, rax
    001aba03cmp r15, [r14]
    001aba06jbe 0x1aba45
    001aba08
    001aba08loc_1aba08:
    001aba08cmp rbx, 1
    001aba0cjge 0x1aba20
    001aba0elea rax, [rip+0x181c03]
    001aba15mov rax, [rax+56]
    001aba19call caml_raise_exn
    001aba1enop
    001aba20
    001aba20loc_1aba20:
    001aba20mov rax, rbx
    001aba23sar rax, 1
    001aba26movzx rax, [rsi+rax]
    001aba2blea rax, [rax+rax+1]
    001aba30cmp rax, rdi
    001aba33jne 0x1aba3c
    001aba35mov rax, rbx
    001aba38ret
    001aba39
    001aba39 0f 1f 00 ...
    001aba3c
    001aba3cloc_1aba3c:
    001aba3cadd rbx, -2
    001aba40mov rax, rsi
    001aba43jmp 0x1aba00
    001aba45
    001aba45loc_1aba45:
    001aba45call caml_call_gc
    001aba4ajmp 0x1aba08
    001aba00
    001aba4c
    001aba4c // align 0x10
    001aba50
    001aba50Stdlib.String.rindex:
    001aba50mov rdi, rbx
    001aba53mov rbx, [rax-8]
    001aba57shr rbx, 10
    001aba5blea rbx, [8*rbx-1]
    001aba63movzx rsi, [rax+rbx]
    001aba68sub rbx, rsi
    001aba6blea rbx, [rbx+rbx-1]
    001aba70jmp 0x1aba00
    001aba50
    001aba75
    001aba75 // align 0x10
    001aba80
    001aba80Stdlib.String.rindex_from:
    001aba80cmp rbx, -1
    001aba84jl 0x1abab0
    001aba86mov rsi, [rax-8]
    001aba8ashr rsi, 10
    001aba8elea rsi, [8*rsi-1]
    001aba96movzx rdx, [rax+rsi]
    001aba9bsub rsi, rdx
    001aba9elea rsi, [rsi+rsi+1]
    001abaa3cmp rbx, rsi
    001abaa6jge 0x1abab0
    001abaa8jmp 0x1aba00
    001abaad
    001abaad 0f 1f 00 ...
    001abab0
    001abab0loc_1abab0:
    001abab0lea rax, [rip+0x190a59]
    001abab7jmp 0x195ab0
    001aba80
    001ababc
    001ababc // align 0x10
    001abac0
    001abac0Stdlib.String.rindex_rec_opt:
    001abac0cmp r15, [r14]
    001abac3jbe 0x1abb11
    001abac5
    001abac5loc_1abac5:
    001abac5cmp rbx, 1
    001abac9jge 0x1abad4
    001abacbmov eax, 1
    001abad0ret
    001abad1
    001abad1 0f 1f 00 ...
    001abad4
    001abad4loc_1abad4:
    001abad4mov rsi, rbx
    001abad7sar rsi, 1
    001abadamovzx rsi, [rax+rsi]
    001abadflea rsi, [rsi+rsi+1]
    001abae4cmp rsi, rdi
    001abae7jne 0x1abb04
    001abae9sub r15, 16
    001abaedcmp r15, [r14]
    001abaf0jb 0x1abb0a
    001abaf2
    001abaf2loc_1abaf2:
    001abaf2lea rax, [r15+8]
    001abaf6mov [rax-8], 1024
    001abafemov [rax], rbx
    001abb01ret
    001abb02
    001abb02 66 90 f.
    001abb04
    001abb04loc_1abb04:
    001abb04add rbx, -2
    001abb08jmp 0x1abac0
    001abb0a
    001abb0aloc_1abb0a:
    001abb0acall caml_call_gc
    001abb0fjmp 0x1abaf2
    001abb11
    001abb11loc_1abb11:
    001abb11call caml_call_gc
    001abb16jmp 0x1abac5
    001abac0
    001abb18
    001abb18 // align 0x10
    001abb20
    001abb20Stdlib.String.rindex_opt:
    001abb20mov rdi, rbx
    001abb23mov rbx, [rax-8]
    001abb27shr rbx, 10
    001abb2blea rbx, [8*rbx-1]
    001abb33movzx rsi, [rax+rbx]
    001abb38sub rbx, rsi
    001abb3blea rbx, [rbx+rbx-1]
    001abb40jmp 0x1abac0
    001abb20
    001abb45
    001abb45 // align 0x10
    001abb50
    001abb50Stdlib.String.rindex_from_opt:
    001abb50cmp rbx, -1
    001abb54jl 0x1abb80
    001abb56mov rsi, [rax-8]
    001abb5ashr rsi, 10
    001abb5elea rsi, [8*rsi-1]
    001abb66movzx rdx, [rax+rsi]
    001abb6bsub rsi, rdx
    001abb6elea rsi, [rsi+rsi+1]
    001abb73cmp rbx, rsi
    001abb76jge 0x1abb80
    001abb78jmp 0x1abac0
    001abb7d
    001abb7d 0f 1f 00 ...
    001abb80
    001abb80loc_1abb80:
    001abb80lea rax, [rip+0x190951]
    001abb87jmp 0x195ab0
    001abb50
    001abb8c
    001abb8c // align 0x10
    001abb90
    001abb90Stdlib.String.contains_from:
    001abb90lea r10, [rsp-336]
    001abb98cmp r10, [r14+40]
    001abb9cjb 0x1abc28
    001abba2
    001abba2loc_1abba2:
    001abba2mov rdx, rbx
    001abba5mov rsi, rdi
    001abba8mov rbx, [rax-8]
    001abbacshr rbx, 10
    001abbb0lea rbx, [8*rbx-1]
    001abbb8movzx rdi, [rax+rbx]
    001abbbdsub rbx, rdi
    001abbc0lea rbx, [rbx+rbx+1]
    001abbc5cmp rdx, 1
    001abbc9jl 0x1abc1c
    001abbcbcmp rdx, rbx
    001abbcejg 0x1abc1c
    001abbd0lea r11, [rip+33]
    001abbd7push r11
    001abbd9push [r14+48]
    001abbddmov [r14+48], rsp
    001abbe1mov rdi, rdx
    001abbe4call Stdlib.String.index_rec
    001abbe9mov eax, 3
    001abbeepop [r14+48]
    001abbf2add rsp, 8
    001abbf6jmp 0x1abc18
    001abbf8lea rbx, [rip+0x181a19]
    001abbffmov rbx, [rbx+56]
    001abc03cmp rax, rbx
    001abc06jne 0x1abc10
    001abc08mov eax, 1
    001abc0dret
    001abc0e
    001abc0e 66 90 f.
    001abc10
    001abc10loc_1abc10:
    001abc10call caml_reraise_exn
    001abc15nop [rax]
    001abc18
    001abc18loc_1abc18:
    001abc18ret
    001abc19
    001abc19 0f 1f 00 ...
    001abc1c
    001abc1cloc_1abc1c:
    001abc1clea rax, [rip+0x19087d]
    001abc23jmp 0x195ab0
    001abc28
    001abc28loc_1abc28:
    001abc28push 35
    001abc2acall caml_call_realloc_stack
    001abc2fpop r10
    001abc31jmp 0x1abba2
    001abb90
    001abc36
    001abc36 // align 0x10
    001abc40
    001abc40Stdlib.String.contains:
    001abc40mov rdi, rbx
    001abc43mov ebx, 1
    001abc48jmp 0x1abb90
    001abc40
    001abc4d
    001abc4d // align 0x10
    001abc50
    001abc50Stdlib.String.rcontains_from:
    001abc50lea r10, [rsp-336]
    001abc58cmp r10, [r14+40]
    001abc5cjb 0x1abcdc
    001abc5e
    001abc5eloc_1abc5e:
    001abc5ecmp rbx, 1
    001abc62jl 0x1abcd0
    001abc64mov rsi, [rax-8]
    001abc68shr rsi, 10
    001abc6clea rsi, [8*rsi-1]
    001abc74movzx rdx, [rax+rsi]
    001abc79sub rsi, rdx
    001abc7clea rsi, [rsi+rsi+1]
    001abc81cmp rbx, rsi
    001abc84jge 0x1abcd0
    001abc86lea r11, [rip+31]
    001abc8dpush r11
    001abc8fpush [r14+48]
    001abc93mov [r14+48], rsp
    001abc97call Stdlib.String.rindex_rec
    001abc9cmov eax, 3
    001abca1pop [r14+48]
    001abca5add rsp, 8
    001abca9jmp 0x1abccc
    001abcab
    001abcab 90 .
    001abcaclea rbx, [rip+0x181965]
    001abcb3mov rbx, [rbx+56]
    001abcb7cmp rax, rbx
    001abcbajne 0x1abcc4
    001abcbcmov eax, 1
    001abcc1ret
    001abcc2
    001abcc2 66 90 f.
    001abcc4
    001abcc4loc_1abcc4:
    001abcc4call caml_reraise_exn
    001abcc9nop [rax]
    001abccc
    001abcccloc_1abccc:
    001abcccret
    001abccd
    001abccd 0f 1f 00 ...
    001abcd0
    001abcd0loc_1abcd0:
    001abcd0lea rax, [rip+0x190791]
    001abcd7jmp 0x195ab0
    001abcdc
    001abcdcloc_1abcdc:
    001abcdcpush 35
    001abcdecall caml_call_realloc_stack
    001abce3pop r10
    001abce5jmp 0x1abc5e
    001abc50
    001abcea
    001abcea // align 0x10
    001abcf0
    001abcf0Stdlib.String.uppercase_ascii:
    001abcf0lea r10, [rsp-320]
    001abcf8cmp r10, [r14+40]
    001abcfcjb 0x1abd12
    001abcfe
    001abcfeloc_1abcfe:
    001abcfemov rbx, rax
    001abd01lea rax, [rip+0x188278]
    001abd08mov rax, [rax+24]
    001abd0ccall Stdlib.Bytes.map
    001abd11ret
    001abd12
    001abd12loc_1abd12:
    001abd12push 33
    001abd14call caml_call_realloc_stack
    001abd19pop r10
    001abd1bjmp 0x1abcfe
    001abcf0
    001abd1d
    001abd1d // align 0x10
    001abd20
    001abd20Stdlib.String.lowercase_ascii:
    001abd20lea r10, [rsp-320]
    001abd28cmp r10, [r14+40]
    001abd2cjb 0x1abd42
    001abd2e
    001abd2eloc_1abd2e:
    001abd2emov rbx, rax
    001abd31lea rax, [rip+0x188248]
    001abd38mov rax, [rax+16]
    001abd3ccall Stdlib.Bytes.map
    001abd41ret
    001abd42
    001abd42loc_1abd42:
    001abd42push 33
    001abd44call caml_call_realloc_stack
    001abd49pop r10
    001abd4bjmp 0x1abd2e
    001abd20
    001abd4d
    001abd4d // align 0x10
    001abd50
    001abd50Stdlib.String.capitalize_ascii:
    001abd50lea r10, [rsp-320]
    001abd58cmp r10, [r14+40]
    001abd5cjb 0x1abd72
    001abd5e
    001abd5eloc_1abd5e:
    001abd5emov rbx, rax
    001abd61lea rax, [rip+0x188218]
    001abd68mov rax, [rax+24]
    001abd6ccall Stdlib.Bytes.apply1
    001abd71ret
    001abd72
    001abd72loc_1abd72:
    001abd72push 33
    001abd74call caml_call_realloc_stack
    001abd79pop r10
    001abd7bjmp 0x1abd5e
    001abd50
    001abd7d
    001abd7d // align 0x10
    001abd80
    001abd80Stdlib.String.uncapitalize_ascii:
    001abd80lea r10, [rsp-320]
    001abd88cmp r10, [r14+40]
    001abd8cjb 0x1abda2
    001abd8e
    001abd8eloc_1abd8e:
    001abd8emov rbx, rax
    001abd91lea rax, [rip+0x1881e8]
    001abd98mov rax, [rax+16]
    001abd9ccall Stdlib.Bytes.apply1
    001abda1ret
    001abda2
    001abda2loc_1abda2:
    001abda2push 33
    001abda4call caml_call_realloc_stack
    001abda9pop r10
    001abdabjmp 0x1abd8e
    001abd80
    001abdad
    001abdad // align 0x10
    001abdb0
    001abdb0Stdlib.String.starts_with:
    001abdb0mov rdi, [rbx-8]
    001abdb4shr rdi, 10
    001abdb8lea rdi, [8*rdi-1]
    001abdc0movzx rsi, [rbx+rdi]
    001abdc5sub rdi, rsi
    001abdc8lea rdi, [rdi+rdi+1]
    001abdcdmov rsi, [rax-8]
    001abdd1shr rsi, 10
    001abdd5lea rsi, [8*rsi-1]
    001abdddmovzx rdx, [rax+rsi]
    001abde2sub rsi, rdx
    001abde5lea rsi, [rsi+rsi+1]
    001abdeasub r15, 48
    001abdeecmp r15, [r14]
    001abdf1jb 0x1abe3e
    001abdf3
    001abdf3loc_1abdf3:
    001abdf3lea rdx, [r15+8]
    001abdf7mov [rdx-8], 5367
    001abdfflea rcx, [rip+74]
    001abe06mov [rdx], rcx
    001abe09mov rcx, 0x100000000000005
    001abe13mov [rdx+8], rcx
    001abe17mov [rdx+16], rax
    001abe1bmov [rdx+24], rbx
    001abe1fmov [rdx+32], rsi
    001abe23cmp rdi, rsi
    001abe26jl 0x1abe38
    001abe28mov eax, 1
    001abe2dmov rbx, rdx
    001abe30jmp 0x1abe50
    001abe35
    001abe35 0f 1f 00 ...
    001abe38
    001abe38loc_1abe38:
    001abe38mov eax, 1
    001abe3dret
    001abe3e
    001abe3eloc_1abe3e:
    001abe3ecall caml_call_gc
    001abe43jmp 0x1abdf3
    001abdb0
    001abe45
    001abe45 // align 0x10
    001abe50
    001abe50Stdlib.String.aux:
    001abe50cmp r15, [r14]
    001abe53jbe 0x1abe9a
    001abe55
    001abe55loc_1abe55:
    001abe55mov rdi, [rbx+32]
    001abe59cmp rax, rdi
    001abe5cjne 0x1abe64
    001abe5emov eax, 3
    001abe63ret
    001abe64
    001abe64loc_1abe64:
    001abe64mov rdi, rax
    001abe67sar rdi, 1
    001abe6amov rsi, [rbx+16]
    001abe6emovzx rsi, [rsi+rdi]
    001abe73lea rsi, [rsi+rsi+1]
    001abe78mov rdx, [rbx+24]
    001abe7cmovzx rdi, [rdx+rdi]
    001abe81lea rdi, [rdi+rdi+1]
    001abe86cmp rdi, rsi
    001abe89je 0x1abe94
    001abe8bmov eax, 1
    001abe90ret
    001abe91
    001abe91 0f 1f 00 ...
    001abe94
    001abe94loc_1abe94:
    001abe94add rax, 2
    001abe98jmp 0x1abe50
    001abe9a
    001abe9aloc_1abe9a:
    001abe9acall caml_call_gc
    001abe9fjmp 0x1abe55
    001abe50
    001abea1
    001abea1 // align 0x10
    001abeb0
    001abeb0Stdlib.String.ends_with:
    001abeb0mov rdi, [rbx-8]
    001abeb4shr rdi, 10
    001abeb8lea rdi, [8*rdi-1]
    001abec0movzx rsi, [rbx+rdi]
    001abec5sub rdi, rsi
    001abec8lea rdi, [rdi+rdi+1]
    001abecdmov rsi, [rax-8]
    001abed1shr rsi, 10
    001abed5lea rsi, [8*rsi-1]
    001abeddmovzx rdx, [rax+rsi]
    001abee2sub rsi, rdx
    001abee5lea rsi, [rsi+rsi+1]
    001abeeasub rdi, rsi
    001abeedinc rdi
    001abef0sub r15, 56
    001abef4cmp r15, [r14]
    001abef7jb 0x1abf46
    001abef9
    001abef9loc_1abef9:
    001abef9lea rdx, [r15+8]
    001abefdmov [rdx-8], 6391
    001abf05lea rcx, [rip+68]
    001abf0cmov [rdx], rcx
    001abf0fmov rcx, 0x100000000000005
    001abf19mov [rdx+8], rcx
    001abf1dmov [rdx+16], rax
    001abf21mov [rdx+24], rbx
    001abf25mov [rdx+32], rsi
    001abf29mov [rdx+40], rdi
    001abf2dcmp rdi, 1
    001abf31jl 0x1abf40
    001abf33mov eax, 1
    001abf38mov rbx, rdx
    001abf3bjmp 0x1abf50
    001abf40
    001abf40loc_1abf40:
    001abf40mov eax, 1
    001abf45ret
    001abf46
    001abf46loc_1abf46:
    001abf46call caml_call_gc
    001abf4bjmp 0x1abef9
    001abeb0
    001abf4d
    001abf4d // align 0x10
    001abf50
    001abf50Stdlib.String.aux:
    001abf50cmp r15, [r14]
    001abf53jbe 0x1abfa6
    001abf55
    001abf55loc_1abf55:
    001abf55mov rdi, [rbx+32]
    001abf59cmp rax, rdi
    001abf5cjne 0x1abf64
    001abf5emov eax, 3
    001abf63ret
    001abf64
    001abf64loc_1abf64:
    001abf64mov rdi, rax
    001abf67sar rdi, 1
    001abf6amov rsi, [rbx+16]
    001abf6emovzx rdi, [rsi+rdi]
    001abf73lea rdi, [rdi+rdi+1]
    001abf78mov rsi, [rbx+40]
    001abf7clea rsi, [rsi+rax-1]
    001abf81sar rsi, 1
    001abf84mov rdx, [rbx+24]
    001abf88movzx rsi, [rdx+rsi]
    001abf8dlea rsi, [rsi+rsi+1]
    001abf92cmp rsi, rdi
    001abf95je 0x1abfa0
    001abf97mov eax, 1
    001abf9cret
    001abf9d
    001abf9d 0f 1f 00 ...
    001abfa0
    001abfa0loc_1abfa0:
    001abfa0add rax, 2
    001abfa4jmp 0x1abf50
    001abfa6
    001abfa6loc_1abfa6:
    001abfa6call caml_call_gc
    001abfabjmp 0x1abf55
    001abf50
    001abfad
    001abfad // align 0x10
    001abfb0
    001abfb0Stdlib.String.hash:
    001abfb0mov edi, 1
    001abfb5mov rsi, rax
    001abfb8mov rbx, rsp
    001abfbbmov rsp, [r14+64]
    001abfbfcall caml_string_hash
    001abfc4mov rsp, rbx
    001abfc7ret
    001abfb0
    001abfc8
    001abfc8 // align 0x10
    001abfd0
    001abfd0Stdlib.String.split_on_char:
    001abfd0lea r10, [rsp-352]
    001abfd8cmp r10, [r14+40]
    001abfdcjb 0x1ac0f7
    001abfe2
    001abfe2loc_1abfe2:
    001abfe2sub rsp, 32
    001abfe6mov [rsp], rbx
    001abfeamov edi, 1
    001abfefmov [rsp+16], rdi
    001abff4mov rdi, [rbx-8]
    001abff8shr rdi, 10
    001abffclea rsi, [8*rdi-1]
    001ac004movzx rbx, [rbx+rsi]
    001ac009sub rsi, rbx
    001ac00clea rdi, [rsi+rsi+1]
    001ac011lea rbx, [rsi+rsi-1]
    001ac016cmp rbx, 1
    001ac01ajl 0x1ac0a5
    001ac020mov [rsp+24], rbx
    001ac025mov [rsp+8], rax
    001ac02a
    001ac02aloc_1ac02a:
    001ac02amov rsi, rbx
    001ac02dsar rsi, 1
    001ac030mov rax, [rsp]
    001ac034movzx rsi, [rax+rsi]
    001ac039lea rsi, [rsi+rsi+1]
    001ac03emov rdx, [rsp+8]
    001ac043cmp rsi, rdx
    001ac046jne 0x1ac08c
    001ac048sub rdi, rbx
    001ac04bdec rdi
    001ac04eadd rbx, 2
    001ac052call Stdlib.Bytes.sub
    001ac057sub r15, 24
    001ac05bcmp r15, [r14]
    001ac05ejb 0x1ac0ed
    001ac064
    001ac064loc_1ac064:
    001ac064lea rbx, [r15+8]
    001ac068mov [rbx-8], 2048
    001ac070mov [rbx], rax
    001ac073mov rax, [rsp+16]
    001ac078mov [rbx+8], rax
    001ac07cmov rax, rbx
    001ac07fmov [rsp+16], rax
    001ac084mov rbx, [rsp+24]
    001ac089mov rdi, rbx
    001ac08c
    001ac08cloc_1ac08c:
    001ac08cmov rax, rbx
    001ac08fsub rbx, 2
    001ac093mov [rsp+24], rbx
    001ac098cmp rax, 1
    001ac09cje 0x1ac0a5
    001ac09ecmp r15, [r14]
    001ac0a1ja 0x1ac02a
    001ac0a3jmp 0x1ac0e3
    001ac0a5
    001ac0a5loc_1ac0a5:
    001ac0a5mov ebx, 1
    001ac0aamov rax, [rsp]
    001ac0aecall Stdlib.Bytes.sub
    001ac0b3sub r15, 24
    001ac0b7cmp r15, [r14]
    001ac0bajb 0x1ac0dc
    001ac0bc
    001ac0bcloc_1ac0bc:
    001ac0bclea rbx, [r15+8]
    001ac0c0mov [rbx-8], 2048
    001ac0c8mov [rbx], rax
    001ac0cbmov rax, [rsp+16]
    001ac0d0mov [rbx+8], rax
    001ac0d4mov rax, rbx
    001ac0d7add rsp, 32
    001ac0dbret
    001ac0dc
    001ac0dcloc_1ac0dc:
    001ac0dccall caml_call_gc
    001ac0e1jmp 0x1ac0bc
    001ac0e3
    001ac0e3loc_1ac0e3:
    001ac0e3call caml_call_gc
    001ac0e8jmp 0x1ac02a
    001ac0ed
    001ac0edloc_1ac0ed:
    001ac0edcall caml_call_gc
    001ac0f2jmp 0x1ac064
    001ac0f7
    001ac0f7loc_1ac0f7:
    001ac0f7push 37
    001ac0f9call caml_call_realloc_stack
    001ac0fepop r10
    001ac100jmp 0x1abfe2
    001abfd0
    001ac105
    001ac105 // align 0x10
    001ac110
    001ac110Stdlib.String.compare:
    001ac110mov rdi, rax
    001ac113mov rsi, rbx
    001ac116mov rbx, rsp
    001ac119mov rsp, [r14+64]
    001ac11dcall caml_string_compare
    001ac122mov rsp, rbx
    001ac125ret
    001ac110
    001ac126
    001ac126 // align 0x10
    001ac130
    001ac130Stdlib.String.to_seq:
    001ac130jmp 0x1a7ff0
    001ac130
    001ac135
    001ac135 // align 0x10
    001ac140
    001ac140Stdlib.String.to_seqi:
    001ac140jmp 0x1a8150
    001ac140
    001ac145
    001ac145 // align 0x10
    001ac150
    001ac150Stdlib.String.of_seq:
    001ac150lea r10, [rsp-320]
    001ac158cmp r10, [r14+40]
    001ac15cjb 0x1ac164
    001ac15e
    001ac15eloc_1ac15e:
    001ac15ecall Stdlib.Bytes.of_seq
    001ac163ret
    001ac164
    001ac164loc_1ac164:
    001ac164push 33
    001ac166call caml_call_realloc_stack
    001ac16bpop r10
    001ac16djmp 0x1ac15e
    001ac150
    001ac16f
    001ac16f // align 0x10
    001ac170
    001ac170Stdlib.String.get_utf_8_uchar:
    001ac170jmp 0x1a8d90
    001ac170
    001ac175
    001ac175 // align 0x10
    001ac180
    001ac180Stdlib.String.is_valid_utf_8:
    001ac180jmp 0x1a95c0
    001ac180
    001ac185
    001ac185 // align 0x10
    001ac190
    001ac190Stdlib.String.get_utf_16be_uchar:
    001ac190jmp 0x1a99a0
    001ac190
    001ac195
    001ac195 // align 0x10
    001ac1a0
    001ac1a0Stdlib.String.is_valid_utf_16be:
    001ac1a0jmp 0x1a9c30
    001ac1a0
    001ac1a5
    001ac1a5 // align 0x10
    001ac1b0
    001ac1b0Stdlib.String.get_utf_16le_uchar:
    001ac1b0jmp 0x1a9d40
    001ac1b0
    001ac1b5
    001ac1b5 // align 0x10
    001ac1c0
    001ac1c0Stdlib.String.is_valid_utf_16le:
    001ac1c0jmp 0x1a9fa0
    001ac1c0
    001ac1c5
    001ac1c5 // align 0x10
    001ac1d0
    001ac1d0Stdlib.String.get_int8:
    001ac1d0sar rbx, 1
    001ac1d3mov rdi, [rax-8]
    001ac1d7shr rdi, 10
    001ac1dblea rdi, [8*rdi-1]
    001ac1e3movzx rsi, [rax+rdi]
    001ac1e8sub rdi, rsi
    001ac1ebcmp rdi, rbx
    001ac1eejbe 0x1ac202
    001ac1f0movzx rax, [rax+rbx]
    001ac1f5shl rax, 56
    001ac1f9sar rax, 55
    001ac1fdor rax, 1
    001ac201ret
    001ac202
    001ac202loc_1ac202:
    001ac202call caml_ml_array_bound_error
    001ac1d0
    001ac207
    001ac207 // align 0x10
    001ac210
    001ac210Stdlib.String.get_uint16_le:
    001ac210sar rbx, 1
    001ac213mov rdi, [rax-8]
    001ac217shr rdi, 10
    001ac21blea rdi, [8*rdi-1]
    001ac223movzx rsi, [rax+rdi]
    001ac228sub rdi, rsi
    001ac22bdec rdi
    001ac22emov rsi, rdi
    001ac231sar rsi, 63
    001ac235xor rsi, -1
    001ac239and rsi, rdi
    001ac23ccmp rsi, rbx
    001ac23fjbe 0x1ac24c
    001ac241movzx rax, [rax+rbx]
    001ac246lea rax, [rax+rax+1]
    001ac24bret
    001ac24c
    001ac24cloc_1ac24c:
    001ac24ccall caml_ml_array_bound_error
    001ac210
    001ac251
    001ac251 // align 0x10
    001ac260
    001ac260Stdlib.String.get_uint16_be:
    001ac260sar rbx, 1
    001ac263mov rdi, [rax-8]
    001ac267shr rdi, 10
    001ac26blea rdi, [8*rdi-1]
    001ac273movzx rsi, [rax+rdi]
    001ac278sub rdi, rsi
    001ac27bdec rdi
    001ac27emov rsi, rdi
    001ac281sar rsi, 63
    001ac285xor rsi, -1
    001ac289and rsi, rdi
    001ac28ccmp rsi, rbx
    001ac28fjbe 0x1ac2a2
    001ac291movzx rax, [rax+rbx]
    001ac296xchg al, ah
    001ac298movzx rax, ax
    001ac29clea rax, [rax+rax+1]
    001ac2a1ret
    001ac2a2
    001ac2a2loc_1ac2a2:
    001ac2a2call caml_ml_array_bound_error
    001ac260
    001ac2a7
    001ac2a7 // align 0x10
    001ac2b0
    001ac2b0Stdlib.String.get_int16_ne:
    001ac2b0sar rbx, 1
    001ac2b3mov rdi, [rax-8]
    001ac2b7shr rdi, 10
    001ac2bblea rdi, [8*rdi-1]
    001ac2c3movzx rsi, [rax+rdi]
    001ac2c8sub rdi, rsi
    001ac2cbdec rdi
    001ac2cemov rsi, rdi
    001ac2d1sar rsi, 63
    001ac2d5xor rsi, -1
    001ac2d9and rsi, rdi
    001ac2dccmp rsi, rbx
    001ac2dfjbe 0x1ac2f3
    001ac2e1movzx rax, [rax+rbx]
    001ac2e6shl rax, 48
    001ac2easar rax, 47
    001ac2eeor rax, 1
    001ac2f2ret
    001ac2f3
    001ac2f3loc_1ac2f3:
    001ac2f3call caml_ml_array_bound_error
    001ac2b0
    001ac2f8
    001ac2f8 // align 0x10
    001ac300
    001ac300Stdlib.String.get_int16_le:
    001ac300sar rbx, 1
    001ac303mov rdi, [rax-8]
    001ac307shr rdi, 10
    001ac30blea rdi, [8*rdi-1]
    001ac313movzx rsi, [rax+rdi]
    001ac318sub rdi, rsi
    001ac31bdec rdi
    001ac31emov rsi, rdi
    001ac321sar rsi, 63
    001ac325xor rsi, -1
    001ac329and rsi, rdi
    001ac32ccmp rsi, rbx
    001ac32fjbe 0x1ac343
    001ac331movzx rax, [rax+rbx]
    001ac336shl rax, 48
    001ac33asar rax, 47
    001ac33eor rax, 1
    001ac342ret
    001ac343
    001ac343loc_1ac343:
    001ac343call caml_ml_array_bound_error
    001ac300
    001ac348
    001ac348 // align 0x10
    001ac350
    001ac350Stdlib.String.get_int16_be:
    001ac350sar rbx, 1
    001ac353mov rdi, [rax-8]
    001ac357shr rdi, 10
    001ac35blea rdi, [8*rdi-1]
    001ac363movzx rsi, [rax+rdi]
    001ac368sub rdi, rsi
    001ac36bdec rdi
    001ac36emov rsi, rdi
    001ac371sar rsi, 63
    001ac375xor rsi, -1
    001ac379and rsi, rdi
    001ac37ccmp rsi, rbx
    001ac37fjbe 0x1ac399
    001ac381movzx rax, [rax+rbx]
    001ac386xchg al, ah
    001ac388movzx rax, ax
    001ac38cshl rax, 48
    001ac390sar rax, 47
    001ac394or rax, 1
    001ac398ret
    001ac399
    001ac399loc_1ac399:
    001ac399call caml_ml_array_bound_error
    001ac350
    001ac39e
    001ac39e // align 0x10
    001ac3a0
    001ac3a0Stdlib.String.get_int32_le:
    001ac3a0mov rdi, rax
    001ac3a3sub r15, 24
    001ac3a7cmp r15, [r14]
    001ac3aajb 0x1ac3ff
    001ac3ac
    001ac3acloc_1ac3ac:
    001ac3aclea rax, [r15+8]
    001ac3b0mov [rax-8], 2303
    001ac3b8lea rsi, [rip+0xc9501]
    001ac3bfmov [rax], rsi
    001ac3c2sar rbx, 1
    001ac3c5mov rsi, [rdi-8]
    001ac3c9shr rsi, 10
    001ac3cdlea rsi, [8*rsi-1]
    001ac3d5movzx rdx, [rdi+rsi]
    001ac3dasub rsi, rdx
    001ac3ddadd rsi, -3
    001ac3e1mov rdx, rsi
    001ac3e4sar rdx, 63
    001ac3e8xor rdx, -1
    001ac3ecand rdx, rsi
    001ac3efcmp rdx, rbx
    001ac3f2jbe 0x1ac406
    001ac3f4mov ebx, [rdi+rbx]
    001ac3f7movsxd rbx, ebx
    001ac3famov [rax+8], rbx
    001ac3feret
    001ac3ff
    001ac3ffloc_1ac3ff:
    001ac3ffcall caml_call_gc
    001ac404jmp 0x1ac3ac
    001ac406
    001ac406loc_1ac406:
    001ac406call caml_ml_array_bound_error
    001ac3a0
    001ac40b
    001ac40b // align 0x10
    001ac410
    001ac410Stdlib.String.get_int32_be:
    001ac410mov rdi, rax
    001ac413sub r15, 24
    001ac417cmp r15, [r14]
    001ac41ajb 0x1ac477
    001ac41c
    001ac41cloc_1ac41c:
    001ac41clea rax, [r15+8]
    001ac420mov [rax-8], 2303
    001ac428lea rsi, [rip+0xc9491]
    001ac42fmov [rax], rsi
    001ac432sar rbx, 1
    001ac435mov rsi, [rdi-8]
    001ac439shr rsi, 10
    001ac43dlea rsi, [8*rsi-1]
    001ac445movzx rdx, [rdi+rsi]
    001ac44asub rsi, rdx
    001ac44dadd rsi, -3
    001ac451mov rdx, rsi
    001ac454sar rdx, 63
    001ac458xor rdx, -1
    001ac45cand rdx, rsi
    001ac45fcmp rdx, rbx
    001ac462jbe 0x1ac47e
    001ac464mov ebx, [rdi+rbx]
    001ac467movsxd rbx, ebx
    001ac46abswap ebx
    001ac46cmovsxd rbx, ebx
    001ac46fmovsxd rbx, ebx
    001ac472mov [rax+8], rbx
    001ac476ret
    001ac477
    001ac477loc_1ac477:
    001ac477call caml_call_gc
    001ac47cjmp 0x1ac41c
    001ac47e
    001ac47eloc_1ac47e:
    001ac47ecall caml_ml_array_bound_error
    001ac410
    001ac483
    001ac483 // align 0x10
    001ac490
    001ac490Stdlib.String.get_int64_le:
    001ac490mov rdi, rax
    001ac493sub r15, 24
    001ac497cmp r15, [r14]
    001ac49ajb 0x1ac4ed
    001ac49c
    001ac49cloc_1ac49c:
    001ac49clea rax, [r15+8]
    001ac4a0mov [rax-8], 2303
    001ac4a8lea rsi, [rip+0xc93d1]
    001ac4afmov [rax], rsi
    001ac4b2sar rbx, 1
    001ac4b5mov rsi, [rdi-8]
    001ac4b9shr rsi, 10
    001ac4bdlea rsi, [8*rsi-1]
    001ac4c5movzx rdx, [rdi+rsi]
    001ac4casub rsi, rdx
    001ac4cdadd rsi, -7
    001ac4d1mov rdx, rsi
    001ac4d4sar rdx, 63
    001ac4d8xor rdx, -1
    001ac4dcand rdx, rsi
    001ac4dfcmp rdx, rbx
    001ac4e2jbe 0x1ac4f4
    001ac4e4mov rbx, [rdi+rbx]
    001ac4e8mov [rax+8], rbx
    001ac4ecret
    001ac4ed
    001ac4edloc_1ac4ed:
    001ac4edcall caml_call_gc
    001ac4f2jmp 0x1ac49c
    001ac4f4
    001ac4f4loc_1ac4f4:
    001ac4f4call caml_ml_array_bound_error
    001ac490
    001ac4f9
    001ac4f9 // align 0x10
    001ac500
    001ac500Stdlib.String.get_int64_be:
    001ac500mov rdi, rax
    001ac503sub r15, 24
    001ac507cmp r15, [r14]
    001ac50ajb 0x1ac560
    001ac50c
    001ac50cloc_1ac50c:
    001ac50clea rax, [r15+8]
    001ac510mov [rax-8], 2303
    001ac518lea rsi, [rip+0xc9361]
    001ac51fmov [rax], rsi
    001ac522sar rbx, 1
    001ac525mov rsi, [rdi-8]
    001ac529shr rsi, 10
    001ac52dlea rsi, [8*rsi-1]
    001ac535movzx rdx, [rdi+rsi]
    001ac53asub rsi, rdx
    001ac53dadd rsi, -7
    001ac541mov rdx, rsi
    001ac544sar rdx, 63
    001ac548xor rdx, -1
    001ac54cand rdx, rsi
    001ac54fcmp rdx, rbx
    001ac552jbe 0x1ac567
    001ac554mov rbx, [rdi+rbx]
    001ac558bswap rbx
    001ac55bmov [rax+8], rbx
    001ac55fret
    001ac560
    001ac560loc_1ac560:
    001ac560call caml_call_gc
    001ac565jmp 0x1ac50c
    001ac567
    001ac567loc_1ac567:
    001ac567call caml_ml_array_bound_error
    001ac500
    001ac56c
    001ac56c // align 0x10
    001ac570
    001ac570Stdlib.String.entry:
    001ac570lea rsi, [rip+0x18f4b9]
    001ac577lea rdi, [rip+0x18fc82]
    001ac57eadd rdi, 488
    001ac585mov rbx, rsp
    001ac588mov rsp, [r14+64]
    001ac58ccall caml_initialize
    001ac591mov rsp, rbx
    001ac594lea rsi, [rip+0x18f4b5]
    001ac59blea rdi, [rip+0x18fc5e]
    001ac5a2add rdi, 464
    001ac5a9mov rbx, rsp
    001ac5acmov rsp, [r14+64]
    001ac5b0call caml_initialize
    001ac5b5mov rsp, rbx
    001ac5b8lea rsi, [rip+0x18f4b1]
    001ac5bflea rdi, [rip+0x18fc3a]
    001ac5c6add rdi, 448
    001ac5cdmov rbx, rsp
    001ac5d0mov rsp, [r14+64]
    001ac5d4call caml_initialize
    001ac5d9mov rsp, rbx
    001ac5dclea rsi, [rip+0x18f4ad]
    001ac5e3lea rdi, [rip+0x18fc16]
    001ac5eaadd rdi, 400
    001ac5f1mov rbx, rsp
    001ac5f4mov rsp, [r14+64]
    001ac5f8call caml_initialize
    001ac5fdmov rsp, rbx
    001ac600lea rsi, [rip+0x18f4a9]
    001ac607lea rdi, [rip+0x18fbf2]
    001ac60eadd rdi, 384
    001ac615mov rbx, rsp
    001ac618mov rsp, [r14+64]
    001ac61ccall caml_initialize
    001ac621mov rsp, rbx
    001ac624lea rsi, [rip+0x18f4a5]
    001ac62blea rdi, [rip+0x18fbce]
    001ac632add rdi, 64
    001ac636mov rbx, rsp
    001ac639mov rsp, [r14+64]
    001ac63dcall caml_initialize
    001ac642mov rsp, rbx
    001ac645lea rax, [rip+0x18d6ec]
    001ac64cmov rsi, [rax+344]
    001ac653lea rdi, [rip+0x18fba6]
    001ac65aadd rdi, 512
    001ac661mov rbx, rsp
    001ac664mov rsp, [r14+64]
    001ac668call caml_initialize
    001ac66dmov rsp, rbx
    001ac670lea rax, [rip+0x18d6c1]
    001ac677mov rsi, [rax+352]
    001ac67elea rdi, [rip+0x18fb7b]
    001ac685add rdi, 520
    001ac68cmov rbx, rsp
    001ac68fmov rsp, [r14+64]
    001ac693call caml_initialize
    001ac698mov rsp, rbx
    001ac69blea rsi, [rip+0x18f44e]
    001ac6a2lea rdi, [rip+0x18fb57]
    001ac6a9mov rbx, rsp
    001ac6acmov rsp, [r14+64]
    001ac6b0call caml_initialize
    001ac6b5mov rsp, rbx
    001ac6b8lea rsi, [rip+0x18f451]
    001ac6bflea rdi, [rip+0x18fb3a]
    001ac6c6add rdi, 8
    001ac6camov rbx, rsp
    001ac6cdmov rsp, [r14+64]
    001ac6d1call caml_initialize
    001ac6d6mov rsp, rbx
    001ac6d9lea rsi, [rip+0x18fee0]
    001ac6e0lea rdi, [rip+0x18fb19]
    001ac6e7add rdi, 16
    001ac6ebmov rbx, rsp
    001ac6eemov rsp, [r14+64]
    001ac6f2call caml_initialize
    001ac6f7mov rsp, rbx
    001ac6falea rax, [rip+0x18d637]
    001ac701mov rsi, [rax+40]
    001ac705lea rdi, [rip+0x18faf4]
    001ac70cadd rdi, 24
    001ac710mov rbx, rsp
    001ac713mov rsp, [r14+64]
    001ac717call caml_initialize
    001ac71cmov rsp, rbx
    001ac71flea rax, [rip+0x18d612]
    001ac726mov rsi, [rax+32]
    001ac72alea rdi, [rip+0x18facf]
    001ac731add rdi, 32
    001ac735mov rbx, rsp
    001ac738mov rsp, [r14+64]
    001ac73ccall caml_initialize
    001ac741mov rsp, rbx
    001ac744lea rsi, [rip+0x18f3e5]
    001ac74blea rdi, [rip+0x18faae]
    001ac752add rdi, 120
    001ac756mov rbx, rsp
    001ac759mov rsp, [r14+64]
    001ac75dcall caml_initialize
    001ac762mov rsp, rbx
    001ac765lea rax, [rip+0x18d5cc]
    001ac76cmov rsi, [rax+88]
    001ac770lea rdi, [rip+0x18fa89]
    001ac777add rdi, 40
    001ac77bmov rbx, rsp
    001ac77emov rsp, [r14+64]
    001ac782call caml_initialize
    001ac787mov rsp, rbx
    001ac78alea rsi, [rip+0x18f3bf]
    001ac791lea rdi, [rip+0x18fa68]
    001ac798add rdi, 528
    001ac79fmov rbx, rsp
    001ac7a2mov rsp, [r14+64]
    001ac7a6call caml_initialize
    001ac7abmov rsp, rbx
    001ac7aelea rsi, [rip+0x18f3bb]
    001ac7b5lea rdi, [rip+0x18fa44]
    001ac7bcadd rdi, 536
    001ac7c3mov rbx, rsp
    001ac7c6mov rsp, [r14+64]
    001ac7cacall caml_initialize
    001ac7cfmov rsp, rbx
    001ac7d2lea rsi, [rip+0x18f3b7]
    001ac7d9lea rdi, [rip+0x18fa20]
    001ac7e0add rdi, 544
    001ac7e7mov rbx, rsp
    001ac7eamov rsp, [r14+64]
    001ac7eecall caml_initialize
    001ac7f3mov rsp, rbx
    001ac7f6lea rsi, [rip+0x18f3b3]
    001ac7fdlea rdi, [rip+0x18f9fc]
    001ac804add rdi, 48
    001ac808mov rbx, rsp
    001ac80bmov rsp, [r14+64]
    001ac80fcall caml_initialize
    001ac814mov rsp, rbx
    001ac817lea rax, [rip+0x180dfa]
    001ac81emov rsi, [rax+216]
    001ac825lea rdi, [rip+0x18f9d4]
    001ac82cadd rdi, 56
    001ac830mov rbx, rsp
    001ac833mov rsp, [r14+64]
    001ac837call caml_initialize
    001ac83cmov rsp, rbx
    001ac83flea rsi, [rip+0x18f38a]
    001ac846lea rdi, [rip+0x18f9b3]
    001ac84dadd rdi, 232
    001ac854mov rbx, rsp
    001ac857mov rsp, [r14+64]
    001ac85bcall caml_initialize
    001ac860mov rsp, rbx
    001ac863lea rsi, [rip+0x18f386]
    001ac86alea rdi, [rip+0x18f98f]
    001ac871add rdi, 240
    001ac878mov rbx, rsp
    001ac87bmov rsp, [r14+64]
    001ac87fcall caml_initialize
    001ac884mov rsp, rbx
    001ac887lea rsi, [rip+0x18f382]
    001ac88elea rdi, [rip+0x18f96b]
    001ac895add rdi, 136
    001ac89cmov rbx, rsp
    001ac89fmov rsp, [r14+64]
    001ac8a3call caml_initialize
    001ac8a8mov rsp, rbx
    001ac8ablea rsi, [rip+0x18f37e]
    001ac8b2lea rdi, [rip+0x18f947]
    001ac8b9add rdi, 144
    001ac8c0mov rbx, rsp
    001ac8c3mov rsp, [r14+64]
    001ac8c7call caml_initialize
    001ac8ccmov rsp, rbx
    001ac8cflea rsi, [rip+0x18f37a]
    001ac8d6lea rdi, [rip+0x18f923]
    001ac8ddadd rdi, 160
    001ac8e4mov rbx, rsp
    001ac8e7mov rsp, [r14+64]
    001ac8ebcall caml_initialize
    001ac8f0mov rsp, rbx
    001ac8f3lea rsi, [rip+0x18f376]
    001ac8falea rdi, [rip+0x18f8ff]
    001ac901add rdi, 152
    001ac908mov rbx, rsp
    001ac90bmov rsp, [r14+64]
    001ac90fcall caml_initialize
    001ac914mov rsp, rbx
    001ac917lea rsi, [rip+0x18f372]
    001ac91elea rdi, [rip+0x18f8db]
    001ac925add rdi, 176
    001ac92cmov rbx, rsp
    001ac92fmov rsp, [r14+64]
    001ac933call caml_initialize
    001ac938mov rsp, rbx
    001ac93blea rsi, [rip+0x18f36e]
    001ac942lea rdi, [rip+0x18f8b7]
    001ac949add rdi, 168
    001ac950mov rbx, rsp
    001ac953mov rsp, [r14+64]
    001ac957call caml_initialize
    001ac95cmov rsp, rbx
    001ac95flea rsi, [rip+0x18f36a]
    001ac966lea rdi, [rip+0x18f893]
    001ac96dadd rdi, 552
    001ac974mov rbx, rsp
    001ac977mov rsp, [r14+64]
    001ac97bcall caml_initialize
    001ac980mov rsp, rbx
    001ac983lea rsi, [rip+0x18f35e]
    001ac98alea rdi, [rip+0x18f86f]
    001ac991add rdi, 184
    001ac998mov rbx, rsp
    001ac99bmov rsp, [r14+64]
    001ac99fcall caml_initialize
    001ac9a4mov rsp, rbx
    001ac9a7lea rsi, [rip+0x18f352]
    001ac9aelea rdi, [rip+0x18f84b]
    001ac9b5add rdi, 192
    001ac9bcmov rbx, rsp
    001ac9bfmov rsp, [r14+64]
    001ac9c3call caml_initialize
    001ac9c8mov rsp, rbx
    001ac9cblea rsi, [rip+0x18f346]
    001ac9d2lea rdi, [rip+0x18f827]
    001ac9d9add rdi, 560
    001ac9e0mov rbx, rsp
    001ac9e3mov rsp, [r14+64]
    001ac9e7call caml_initialize
    001ac9ecmov rsp, rbx
    001ac9eflea rsi, [rip+0x18f342]
    001ac9f6lea rdi, [rip+0x18f803]
    001ac9fdadd rdi, 280
    001aca04mov rbx, rsp
    001aca07mov rsp, [r14+64]
    001aca0bcall caml_initialize
    001aca10mov rsp, rbx
    001aca13lea rsi, [rip+0x18f33e]
    001aca1alea rdi, [rip+0x18f7df]
    001aca21add rdi, 568
    001aca28mov rbx, rsp
    001aca2bmov rsp, [r14+64]
    001aca2fcall caml_initialize
    001aca34mov rsp, rbx
    001aca37lea rsi, [rip+0x18f33a]
    001aca3elea rdi, [rip+0x18f7bb]
    001aca45add rdi, 288
    001aca4cmov rbx, rsp
    001aca4fmov rsp, [r14+64]
    001aca53call caml_initialize
    001aca58mov rsp, rbx
    001aca5blea rsi, [rip+0x18f336]
    001aca62lea rdi, [rip+0x18f797]
    001aca69add rdi, 248
    001aca70mov rbx, rsp
    001aca73mov rsp, [r14+64]
    001aca77call caml_initialize
    001aca7cmov rsp, rbx
    001aca7flea rsi, [rip+0x18f332]
    001aca86lea rdi, [rip+0x18f773]
    001aca8dadd rdi, 256
    001aca94mov rbx, rsp
    001aca97mov rsp, [r14+64]
    001aca9bcall caml_initialize
    001acaa0mov rsp, rbx
    001acaa3lea rsi, [rip+0x18f32e]
    001acaaalea rdi, [rip+0x18f74f]
    001acab1add rdi, 576
    001acab8mov rbx, rsp
    001acabbmov rsp, [r14+64]
    001acabfcall caml_initialize
    001acac4mov rsp, rbx
    001acac7lea rsi, [rip+0x18f32a]
    001acacelea rdi, [rip+0x18f72b]
    001acad5add rdi, 296
    001acadcmov rbx, rsp
    001acadfmov rsp, [r14+64]
    001acae3call caml_initialize
    001acae8mov rsp, rbx
    001acaeblea rsi, [rip+0x18f326]
    001acaf2lea rdi, [rip+0x18f707]
    001acaf9add rdi, 264
    001acb00mov rbx, rsp
    001acb03mov rsp, [r14+64]
    001acb07call caml_initialize
    001acb0cmov rsp, rbx
    001acb0flea rsi, [rip+0x18f322]
    001acb16lea rdi, [rip+0x18f6e3]
    001acb1dadd rdi, 584
    001acb24mov rbx, rsp
    001acb27mov rsp, [r14+64]
    001acb2bcall caml_initialize
    001acb30mov rsp, rbx
    001acb33lea rsi, [rip+0x18f31e]
    001acb3alea rdi, [rip+0x18f6bf]
    001acb41add rdi, 304
    001acb48mov rbx, rsp
    001acb4bmov rsp, [r14+64]
    001acb4fcall caml_initialize
    001acb54mov rsp, rbx
    001acb57lea rsi, [rip+0x18f31a]
    001acb5elea rdi, [rip+0x18f69b]
    001acb65add rdi, 272
    001acb6cmov rbx, rsp
    001acb6fmov rsp, [r14+64]
    001acb73call caml_initialize
    001acb78mov rsp, rbx
    001acb7blea rsi, [rip+0x18f316]
    001acb82lea rdi, [rip+0x18f677]
    001acb89add rdi, 96
    001acb8dmov rbx, rsp
    001acb90mov rsp, [r14+64]
    001acb94call caml_initialize
    001acb99mov rsp, rbx
    001acb9clea rsi, [rip+0x18f315]
    001acba3lea rdi, [rip+0x18f656]
    001acbaaadd rdi, 112
    001acbaemov rbx, rsp
    001acbb1mov rsp, [r14+64]
    001acbb5call caml_initialize
    001acbbamov rsp, rbx
    001acbbdlea rsi, [rip+0x18f314]
    001acbc4lea rdi, [rip+0x18f635]
    001acbcbadd rdi, 104
    001acbcfmov rbx, rsp
    001acbd2mov rsp, [r14+64]
    001acbd6call caml_initialize
    001acbdbmov rsp, rbx
    001acbdelea rsi, [rip+0x18f313]
    001acbe5lea rdi, [rip+0x18f614]
    001acbecadd rdi, 200
    001acbf3mov rbx, rsp
    001acbf6mov rsp, [r14+64]
    001acbfacall caml_initialize
    001acbffmov rsp, rbx
    001acc02lea rsi, [rip+0x18f307]
    001acc09lea rdi, [rip+0x18f5f0]
    001acc10add rdi, 208
    001acc17mov rbx, rsp
    001acc1amov rsp, [r14+64]
    001acc1ecall caml_initialize
    001acc23mov rsp, rbx
    001acc26lea rsi, [rip+0x18f2fb]
    001acc2dlea rdi, [rip+0x18f5cc]
    001acc34add rdi, 216
    001acc3bmov rbx, rsp
    001acc3emov rsp, [r14+64]
    001acc42call caml_initialize
    001acc47mov rsp, rbx
    001acc4alea rsi, [rip+0x18f2ef]
    001acc51lea rdi, [rip+0x18f5a8]
    001acc58add rdi, 224
    001acc5fmov rbx, rsp
    001acc62mov rsp, [r14+64]
    001acc66call caml_initialize
    001acc6bmov rsp, rbx
    001acc6elea rsi, [rip+0x18f2e3]
    001acc75lea rdi, [rip+0x18f584]
    001acc7cadd rdi, 80
    001acc80mov rbx, rsp
    001acc83mov rsp, [r14+64]
    001acc87call caml_initialize
    001acc8cmov rsp, rbx
    001acc8flea rsi, [rip+0x18f2e2]
    001acc96lea rdi, [rip+0x18f563]
    001acc9dadd rdi, 88
    001acca1mov rbx, rsp
    001acca4mov rsp, [r14+64]
    001acca8call caml_initialize
    001accadmov rsp, rbx
    001accb0lea rsi, [rip+0x18f2e1]
    001accb7lea rdi, [rip+0x18f542]
    001accbeadd rdi, 456
    001accc5mov rbx, rsp
    001accc8mov rsp, [r14+64]
    001acccccall caml_initialize
    001accd1mov rsp, rbx
    001accd4lea rsi, [rip+0x18f2d5]
    001accdblea rdi, [rip+0x18f51e]
    001acce2add rdi, 128
    001acce9mov rbx, rsp
    001accecmov rsp, [r14+64]
    001accf0call caml_initialize
    001accf5mov rsp, rbx
    001accf8lea rsi, [rip+0x18f2d1]
    001accfflea rdi, [rip+0x18f4fa]
    001acd06add rdi, 72
    001acd0amov rbx, rsp
    001acd0dmov rsp, [r14+64]
    001acd11call caml_initialize
    001acd16mov rsp, rbx
    001acd19lea rsi, [rip+0x18f2d0]
    001acd20lea rdi, [rip+0x18f4d9]
    001acd27add rdi, 312
    001acd2emov rbx, rsp
    001acd31mov rsp, [r14+64]
    001acd35call caml_initialize
    001acd3amov rsp, rbx
    001acd3dlea rsi, [rip+0x18f2c4]
    001acd44lea rdi, [rip+0x18f4b5]
    001acd4badd rdi, 320
    001acd52mov rbx, rsp
    001acd55mov rsp, [r14+64]
    001acd59call caml_initialize
    001acd5emov rsp, rbx
    001acd61lea rsi, [rip+0x18f2b8]
    001acd68lea rdi, [rip+0x18f491]
    001acd6fadd rdi, 328
    001acd76mov rbx, rsp
    001acd79mov rsp, [r14+64]
    001acd7dcall caml_initialize
    001acd82mov rsp, rbx
    001acd85lea rsi, [rip+0x18f2ac]
    001acd8clea rdi, [rip+0x18f46d]
    001acd93add rdi, 336
    001acd9amov rbx, rsp
    001acd9dmov rsp, [r14+64]
    001acda1call caml_initialize
    001acda6mov rsp, rbx
    001acda9lea rsi, [rip+0x18f2a8]
    001acdb0lea rdi, [rip+0x18f449]
    001acdb7add rdi, 344
    001acdbemov rbx, rsp
    001acdc1mov rsp, [r14+64]
    001acdc5call caml_initialize
    001acdcamov rsp, rbx
    001acdcdlea rsi, [rip+0x18f29c]
    001acdd4lea rdi, [rip+0x18f425]
    001acddbadd rdi, 352
    001acde2mov rbx, rsp
    001acde5mov rsp, [r14+64]
    001acde9call caml_initialize
    001acdeemov rsp, rbx
    001acdf1lea rsi, [rip+0x18f298]
    001acdf8lea rdi, [rip+0x18f401]
    001acdffadd rdi, 360
    001ace06mov rbx, rsp
    001ace09mov rsp, [r14+64]
    001ace0dcall caml_initialize
    001ace12mov rsp, rbx
    001ace15lea rsi, [rip+0x18f28c]
    001ace1clea rdi, [rip+0x18f3dd]
    001ace23add rdi, 368
    001ace2amov rbx, rsp
    001ace2dmov rsp, [r14+64]
    001ace31call caml_initialize
    001ace36mov rsp, rbx
    001ace39lea rsi, [rip+0x18f288]
    001ace40lea rdi, [rip+0x18f3b9]
    001ace47add rdi, 376
    001ace4emov rbx, rsp
    001ace51mov rsp, [r14+64]
    001ace55call caml_initialize
    001ace5amov rsp, rbx
    001ace5dlea rsi, [rip+0x18f27c]
    001ace64lea rdi, [rip+0x18f395]
    001ace6badd rdi, 392
    001ace72mov rbx, rsp
    001ace75mov rsp, [r14+64]
    001ace79call caml_initialize
    001ace7emov rsp, rbx
    001ace81lea rsi, [rip+0x18f278]
    001ace88lea rdi, [rip+0x18f371]
    001ace8fadd rdi, 416
    001ace96mov rbx, rsp
    001ace99mov rsp, [r14+64]
    001ace9dcall caml_initialize
    001acea2mov rsp, rbx
    001acea5lea rsi, [rip+0x18f274]
    001aceaclea rdi, [rip+0x18f34d]
    001aceb3add rdi, 408
    001acebamov rbx, rsp
    001acebdmov rsp, [r14+64]
    001acec1call caml_initialize
    001acec6mov rsp, rbx
    001acec9lea rsi, [rip+0x18f270]
    001aced0lea rdi, [rip+0x18f329]
    001aced7add rdi, 424
    001acedemov rbx, rsp
    001acee1mov rsp, [r14+64]
    001acee5call caml_initialize
    001aceeamov rsp, rbx
    001aceedlea rsi, [rip+0x18f26c]
    001acef4lea rdi, [rip+0x18f305]
    001acefbadd rdi, 440
    001acf02mov rbx, rsp
    001acf05mov rsp, [r14+64]
    001acf09call caml_initialize
    001acf0emov rsp, rbx
    001acf11lea rsi, [rip+0x18f268]
    001acf18lea rdi, [rip+0x18f2e1]
    001acf1fadd rdi, 432
    001acf26mov rbx, rsp
    001acf29mov rsp, [r14+64]
    001acf2dcall caml_initialize
    001acf32mov rsp, rbx
    001acf35lea rsi, [rip+0x18f264]
    001acf3clea rdi, [rip+0x18f2bd]
    001acf43add rdi, 480
    001acf4amov rbx, rsp
    001acf4dmov rsp, [r14+64]
    001acf51call caml_initialize
    001acf56mov rsp, rbx
    001acf59lea rsi, [rip+0x18f260]
    001acf60lea rdi, [rip+0x18f299]
    001acf67add rdi, 472
    001acf6emov rbx, rsp
    001acf71mov rsp, [r14+64]
    001acf75call caml_initialize
    001acf7amov rsp, rbx
    001acf7dlea rsi, [rip+0x18f25c]
    001acf84lea rdi, [rip+0x18f275]
    001acf8badd rdi, 504
    001acf92mov rbx, rsp
    001acf95mov rsp, [r14+64]
    001acf99call caml_initialize
    001acf9emov rsp, rbx
    001acfa1lea rsi, [rip+0x18ea68]
    001acfa8lea rdi, [rip+0x18f251]
    001acfafadd rdi, 496
    001acfb6mov rbx, rsp
    001acfb9mov rsp, [r14+64]
    001acfbdcall caml_initialize
    001acfc2mov rsp, rbx
    001acfc5mov eax, 1
    001acfcaret
    001ac570
    001acfcb
    001acfcb // align 0x10
    001acfd0
    001acfd0Stdlib.Array.fun:
    001acfd0mov rdi, rax
    001acfd3lea rax, [rip+0x4d426]
    001acfdacall caml_c_call
    001acfdfret
    001acfd0
    001acfe0
    001acfe0Stdlib.Array.init:
    001acfe0lea r10, [rsp-352]
    001acfe8cmp r10, [r14+40]
    001acfecjb 0x1ad0e4
    001acff2
    001acff2loc_1acff2:
    001acff2sub rsp, 32
    001acff6cmp rax, 1
    001acffajne 0x1ad008
    001acffclea rax, [rip+0x190c9d]
    001ad003add rsp, 32
    001ad007ret
    001ad008
    001ad008loc_1ad008:
    001ad008cmp rax, 1
    001ad00cjge 0x1ad020
    001ad00elea rax, [rip+0x190bab]
    001ad015add rsp, 32
    001ad019jmp 0x195ab0
    001ad01e
    001ad01e 66 90 f.
    001ad020
    001ad020loc_1ad020:
    001ad020mov [rsp+8], rbx
    001ad025mov [rsp], rax
    001ad029mov eax, 1
    001ad02emov rdi, [rbx]
    001ad031call rdi
    001ad033mov rdi, [rsp]
    001ad037mov rsi, rax
    001ad03alea rax, [rip+0x4cc5f]
    001ad041call caml_c_call
    001ad046mov r13, rax
    001ad049mov r12l, 3
    001ad04fmov rax, [rsp]
    001ad053add rax, -2
    001ad057cmp r12, rax
    001ad05ajg 0x1ad0d5
    001ad05cmov [rsp+16], rax
    001ad061mov [rsp+24], r12
    001ad066mov [rsp], r13
    001ad06a
    001ad06aloc_1ad06a:
    001ad06amov rbx, [rsp+8]
    001ad06fmov rdi, [rbx]
    001ad072mov rax, r12
    001ad075call rdi
    001ad077mov r13, [rsp]
    001ad07bmovzx rbx, [r13-8]
    001ad080cmp rbx, 254
    001ad087je 0x1ad0a8
    001ad089mov r12, [rsp+24]
    001ad08elea rdi, [r13+4*r12-4]
    001ad093mov rsi, rax
    001ad096mov rbx, rsp
    001ad099mov rsp, [r14+64]
    001ad09dcall caml_modify
    001ad0a2mov rsp, rbx
    001ad0a5jmp 0x1ad0b8
    001ad0a7
    001ad0a7 90 .
    001ad0a8
    001ad0a8loc_1ad0a8:
    001ad0a8movsd_xmm x0, [rax]
    001ad0acmov r12, [rsp+24]
    001ad0b1movsd_xmm [r13+4*r12-4], x0
    001ad0b8
    001ad0b8loc_1ad0b8:
    001ad0b8mov rax, r12
    001ad0bbadd r12, 2
    001ad0bfmov [rsp+24], r12
    001ad0c4mov rbx, [rsp+16]
    001ad0c9cmp rax, rbx
    001ad0ccje 0x1ad0d5
    001ad0cecmp r15, [r14]
    001ad0d1ja 0x1ad06a
    001ad0d3jmp 0x1ad0dd
    001ad0d5
    001ad0d5loc_1ad0d5:
    001ad0d5mov rax, r13
    001ad0d8add rsp, 32
    001ad0dcret
    001ad0dd
    001ad0ddloc_1ad0dd:
    001ad0ddcall caml_call_gc
    001ad0e2jmp 0x1ad06a
    001ad0e4
    001ad0e4loc_1ad0e4:
    001ad0e4push 37
    001ad0e6call caml_call_realloc_stack
    001ad0ebpop r10
    001ad0edjmp 0x1acff2
    001acfe0
    001ad0f2
    001ad0f2 // align 0x10
    001ad100
    001ad100Stdlib.Array.make_matrix:
    001ad100lea r10, [rsp-360]
    001ad108cmp r10, [r14+40]
    001ad10cjb 0x1ad1e1
    001ad112
    001ad112loc_1ad112:
    001ad112sub rsp, 40
    001ad116mov [rsp], rax
    001ad11amov [rsp+8], rbx
    001ad11fmov [rsp+16], rdi
    001ad124cmp rbx, 1
    001ad128jge 0x1ad136
    001ad12alea rax, [rip+0x1909e7]
    001ad131call camlStdlib.invalid_arg_10
    001ad136
    001ad136loc_1ad136:
    001ad136lea rsi, [rip+0x190b63]
    001ad13dmov rdi, [rsp]
    001ad141lea rax, [rip+0x4cb58]
    001ad148call caml_c_call
    001ad14dmov r13, rax
    001ad150mov rdi, [rsp+8]
    001ad155cmp rdi, 1
    001ad159jle 0x1ad1d2
    001ad15bmov eax, 1
    001ad160mov rbx, [rsp]
    001ad164add rbx, -2
    001ad168cmp rax, rbx
    001ad16bjg 0x1ad1d2
    001ad16dmov [rsp+32], rbx
    001ad172mov [rsp], rax
    001ad176mov [rsp+24], r13
    001ad17bmov [rsp+8], rdi
    001ad180
    001ad180loc_1ad180:
    001ad180mov rdi, [rsp+8]
    001ad185mov rsi, [rsp+16]
    001ad18alea rax, [rip+0x4cb0f]
    001ad191call caml_c_call
    001ad196mov r12, [rsp]
    001ad19amov r13, [rsp+24]
    001ad19flea rdi, [r13+4*r12-4]
    001ad1a4mov rsi, rax
    001ad1a7mov rbx, rsp
    001ad1aamov rsp, [r14+64]
    001ad1aecall caml_modify
    001ad1b3mov rsp, rbx
    001ad1b6mov rax, r12
    001ad1b9add r12, 2
    001ad1bdmov [rsp], r12
    001ad1c1mov rbx, [rsp+32]
    001ad1c6cmp rax, rbx
    001ad1c9je 0x1ad1d2
    001ad1cbcmp r15, [r14]
    001ad1ceja 0x1ad180
    001ad1d0jmp 0x1ad1da
    001ad1d2
    001ad1d2loc_1ad1d2:
    001ad1d2mov rax, r13
    001ad1d5add rsp, 40
    001ad1d9ret
    001ad1da
    001ad1daloc_1ad1da:
    001ad1dacall caml_call_gc
    001ad1dfjmp 0x1ad180
    001ad1e1
    001ad1e1loc_1ad1e1:
    001ad1e1push 38
    001ad1e3call caml_call_realloc_stack
    001ad1e8pop r10
    001ad1eajmp 0x1ad112
    001ad100