File hevea_f46f610a6b0078f4aa208dda361f21de574cc56ad64b32889301afc466d33979.elf
Function:
    001a7ba0
    001a7ba0Stdlib.Bytes.rindex_rec:
    001a7ba0mov rsi, rax
    001a7ba3cmp r15, [r14]
    001a7ba6jbe 0x1a7be5
    001a7ba8
    001a7ba8loc_1a7ba8:
    001a7ba8cmp rbx, 1
    001a7bacjge 0x1a7bc0
    001a7baelea rax, [rip+0x185a63]
    001a7bb5mov rax, [rax+56]
    001a7bb9call caml_raise_exn
    001a7bbenop
    001a7bc0
    001a7bc0loc_1a7bc0:
    001a7bc0mov rax, rbx
    001a7bc3sar rax, 1
    001a7bc6movzx rax, [rsi+rax]
    001a7bcblea rax, [rax+rax+1]
    001a7bd0cmp rax, rdi
    001a7bd3jne 0x1a7bdc
    001a7bd5mov rax, rbx
    001a7bd8ret
    001a7bd9
    001a7bd9 0f 1f 00 ...
    001a7bdc
    001a7bdcloc_1a7bdc:
    001a7bdcadd rbx, -2
    001a7be0mov rax, rsi
    001a7be3jmp 0x1a7ba0
    001a7be5
    001a7be5loc_1a7be5:
    001a7be5call caml_call_gc
    001a7beajmp 0x1a7ba8
    001a7ba0
    001a7bec
    001a7bec // align 0x10
    001a7bf0
    001a7bf0Stdlib.Bytes.rindex:
    001a7bf0mov rdi, rbx
    001a7bf3mov rbx, [rax-8]
    001a7bf7shr rbx, 10
    001a7bfblea rbx, [8*rbx-1]
    001a7c03movzx rsi, [rax+rbx]
    001a7c08sub rbx, rsi
    001a7c0blea rbx, [rbx+rbx-1]
    001a7c10jmp 0x1a7ba0
    001a7bf0
    001a7c15
    001a7c15 // align 0x10
    001a7c20
    001a7c20Stdlib.Bytes.rindex_from:
    001a7c20cmp rbx, -1
    001a7c24jl 0x1a7c50
    001a7c26mov rsi, [rax-8]
    001a7c2ashr rsi, 10
    001a7c2elea rsi, [8*rsi-1]
    001a7c36movzx rdx, [rax+rsi]
    001a7c3bsub rsi, rdx
    001a7c3elea rsi, [rsi+rsi+1]
    001a7c43cmp rbx, rsi
    001a7c46jge 0x1a7c50
    001a7c48jmp 0x1a7ba0
    001a7c4d
    001a7c4d 0f 1f 00 ...
    001a7c50
    001a7c50loc_1a7c50:
    001a7c50lea rax, [rip+0x192471]
    001a7c57jmp 0x195ab0
    001a7c20
    001a7c5c
    001a7c5c // align 0x10
    001a7c60
    001a7c60Stdlib.Bytes.rindex_rec_opt:
    001a7c60cmp r15, [r14]
    001a7c63jbe 0x1a7cb1
    001a7c65
    001a7c65loc_1a7c65:
    001a7c65cmp rbx, 1
    001a7c69jge 0x1a7c74
    001a7c6bmov eax, 1
    001a7c70ret
    001a7c71
    001a7c71 0f 1f 00 ...
    001a7c74
    001a7c74loc_1a7c74:
    001a7c74mov rsi, rbx
    001a7c77sar rsi, 1
    001a7c7amovzx rsi, [rax+rsi]
    001a7c7flea rsi, [rsi+rsi+1]
    001a7c84cmp rsi, rdi
    001a7c87jne 0x1a7ca4
    001a7c89sub r15, 16
    001a7c8dcmp r15, [r14]
    001a7c90jb 0x1a7caa
    001a7c92
    001a7c92loc_1a7c92:
    001a7c92lea rax, [r15+8]
    001a7c96mov [rax-8], 1024
    001a7c9emov [rax], rbx
    001a7ca1ret
    001a7ca2
    001a7ca2 66 90 f.
    001a7ca4
    001a7ca4loc_1a7ca4:
    001a7ca4add rbx, -2
    001a7ca8jmp 0x1a7c60
    001a7caa
    001a7caaloc_1a7caa:
    001a7caacall caml_call_gc
    001a7cafjmp 0x1a7c92
    001a7cb1
    001a7cb1loc_1a7cb1:
    001a7cb1call caml_call_gc
    001a7cb6jmp 0x1a7c65
    001a7c60
    001a7cb8
    001a7cb8 // align 0x10
    001a7cc0
    001a7cc0Stdlib.Bytes.rindex_opt:
    001a7cc0mov rdi, rbx
    001a7cc3mov rbx, [rax-8]
    001a7cc7shr rbx, 10
    001a7ccblea rbx, [8*rbx-1]
    001a7cd3movzx rsi, [rax+rbx]
    001a7cd8sub rbx, rsi
    001a7cdblea rbx, [rbx+rbx-1]
    001a7ce0jmp 0x1a7c60
    001a7cc0
    001a7ce5
    001a7ce5 // align 0x10
    001a7cf0
    001a7cf0Stdlib.Bytes.rindex_from_opt:
    001a7cf0cmp rbx, -1
    001a7cf4jl 0x1a7d20
    001a7cf6mov rsi, [rax-8]
    001a7cfashr rsi, 10
    001a7cfelea rsi, [8*rsi-1]
    001a7d06movzx rdx, [rax+rsi]
    001a7d0bsub rsi, rdx
    001a7d0elea rsi, [rsi+rsi+1]
    001a7d13cmp rbx, rsi
    001a7d16jge 0x1a7d20
    001a7d18jmp 0x1a7c60
    001a7d1d
    001a7d1d 0f 1f 00 ...
    001a7d20
    001a7d20loc_1a7d20:
    001a7d20lea rax, [rip+0x192661]
    001a7d27jmp 0x195ab0
    001a7cf0
    001a7d2c
    001a7d2c // align 0x10
    001a7d30
    001a7d30Stdlib.Bytes.contains_from:
    001a7d30lea r10, [rsp-336]
    001a7d38cmp r10, [r14+40]
    001a7d3cjb 0x1a7dc8
    001a7d42
    001a7d42loc_1a7d42:
    001a7d42mov rdx, rbx
    001a7d45mov rsi, rdi
    001a7d48mov rbx, [rax-8]
    001a7d4cshr rbx, 10
    001a7d50lea rbx, [8*rbx-1]
    001a7d58movzx rdi, [rax+rbx]
    001a7d5dsub rbx, rdi
    001a7d60lea rbx, [rbx+rbx+1]
    001a7d65cmp rdx, 1
    001a7d69jl 0x1a7dbc
    001a7d6bcmp rdx, rbx
    001a7d6ejg 0x1a7dbc
    001a7d70lea r11, [rip+33]
    001a7d77push r11
    001a7d79push [r14+48]
    001a7d7dmov [r14+48], rsp
    001a7d81mov rdi, rdx
    001a7d84call Stdlib.Bytes.index_rec
    001a7d89mov eax, 3
    001a7d8epop [r14+48]
    001a7d92add rsp, 8
    001a7d96jmp 0x1a7db8
    001a7d98lea rbx, [rip+0x185879]
    001a7d9fmov rbx, [rbx+56]
    001a7da3cmp rax, rbx
    001a7da6jne 0x1a7db0
    001a7da8mov eax, 1
    001a7dadret
    001a7dae
    001a7dae 66 90 f.
    001a7db0
    001a7db0loc_1a7db0:
    001a7db0call caml_reraise_exn
    001a7db5nop [rax]
    001a7db8
    001a7db8loc_1a7db8:
    001a7db8ret
    001a7db9
    001a7db9 0f 1f 00 ...
    001a7dbc
    001a7dbcloc_1a7dbc:
    001a7dbclea rax, [rip+0x19258d]
    001a7dc3jmp 0x195ab0
    001a7dc8
    001a7dc8loc_1a7dc8:
    001a7dc8push 35
    001a7dcacall caml_call_realloc_stack
    001a7dcfpop r10
    001a7dd1jmp 0x1a7d42
    001a7d30
    001a7dd6
    001a7dd6 // align 0x10
    001a7de0
    001a7de0Stdlib.Bytes.contains:
    001a7de0mov rdi, rbx
    001a7de3mov ebx, 1
    001a7de8jmp 0x1a7d30
    001a7de0
    001a7ded
    001a7ded // align 0x10
    001a7df0
    001a7df0Stdlib.Bytes.rcontains_from:
    001a7df0lea r10, [rsp-336]
    001a7df8cmp r10, [r14+40]
    001a7dfcjb 0x1a7e7c
    001a7dfe
    001a7dfeloc_1a7dfe:
    001a7dfecmp rbx, 1
    001a7e02jl 0x1a7e70
    001a7e04mov rsi, [rax-8]
    001a7e08shr rsi, 10
    001a7e0clea rsi, [8*rsi-1]
    001a7e14movzx rdx, [rax+rsi]
    001a7e19sub rsi, rdx
    001a7e1clea rsi, [rsi+rsi+1]
    001a7e21cmp rbx, rsi
    001a7e24jge 0x1a7e70
    001a7e26lea r11, [rip+31]
    001a7e2dpush r11
    001a7e2fpush [r14+48]
    001a7e33mov [r14+48], rsp
    001a7e37call Stdlib.Bytes.rindex_rec
    001a7e3cmov eax, 3
    001a7e41pop [r14+48]
    001a7e45add rsp, 8
    001a7e49jmp 0x1a7e6c
    001a7e4b
    001a7e4b 90 .
    001a7e4clea rbx, [rip+0x1857c5]
    001a7e53mov rbx, [rbx+56]
    001a7e57cmp rax, rbx
    001a7e5ajne 0x1a7e64
    001a7e5cmov eax, 1
    001a7e61ret
    001a7e62
    001a7e62 66 90 f.
    001a7e64
    001a7e64loc_1a7e64:
    001a7e64call caml_reraise_exn
    001a7e69nop [rax]
    001a7e6c
    001a7e6cloc_1a7e6c:
    001a7e6cret
    001a7e6d
    001a7e6d 0f 1f 00 ...
    001a7e70
    001a7e70loc_1a7e70:
    001a7e70lea rax, [rip+0x1924a1]
    001a7e77jmp 0x195ab0
    001a7e7c
    001a7e7cloc_1a7e7c:
    001a7e7cpush 35
    001a7e7ecall caml_call_realloc_stack
    001a7e83pop r10
    001a7e85jmp 0x1a7dfe
    001a7df0
    001a7e8a
    001a7e8a // align 0x10
    001a7e90
    001a7e90Stdlib.Bytes.compare:
    001a7e90mov rdi, rax
    001a7e93mov rsi, rbx
    001a7e96mov rbx, rsp
    001a7e99mov rsp, [r14+64]
    001a7e9dcall caml_bytes_compare
    001a7ea2mov rsp, rbx
    001a7ea5ret
    001a7e90
    001a7ea6
    001a7ea6 // align 0x10
    001a7eb0
    001a7eb0Stdlib.Bytes.split_on_char:
    001a7eb0lea r10, [rsp-352]
    001a7eb8cmp r10, [r14+40]
    001a7ebcjb 0x1a7fd7
    001a7ec2
    001a7ec2loc_1a7ec2:
    001a7ec2sub rsp, 32
    001a7ec6mov [rsp], rbx
    001a7ecamov edi, 1
    001a7ecfmov [rsp+16], rdi
    001a7ed4mov rdi, [rbx-8]
    001a7ed8shr rdi, 10
    001a7edclea rsi, [8*rdi-1]
    001a7ee4movzx rbx, [rbx+rsi]
    001a7ee9sub rsi, rbx
    001a7eeclea rdi, [rsi+rsi+1]
    001a7ef1lea rbx, [rsi+rsi-1]
    001a7ef6cmp rbx, 1
    001a7efajl 0x1a7f85
    001a7f00mov [rsp+24], rbx
    001a7f05mov [rsp+8], rax
    001a7f0a
    001a7f0aloc_1a7f0a:
    001a7f0amov rsi, rbx
    001a7f0dsar rsi, 1
    001a7f10mov rax, [rsp]
    001a7f14movzx rsi, [rax+rsi]
    001a7f19lea rsi, [rsi+rsi+1]
    001a7f1emov rdx, [rsp+8]
    001a7f23cmp rsi, rdx
    001a7f26jne 0x1a7f6c
    001a7f28sub rdi, rbx
    001a7f2bdec rdi
    001a7f2eadd rbx, 2
    001a7f32call Stdlib.Bytes.sub
    001a7f37sub r15, 24
    001a7f3bcmp r15, [r14]
    001a7f3ejb 0x1a7fcd
    001a7f44
    001a7f44loc_1a7f44:
    001a7f44lea rbx, [r15+8]
    001a7f48mov [rbx-8], 2048
    001a7f50mov [rbx], rax
    001a7f53mov rax, [rsp+16]
    001a7f58mov [rbx+8], rax
    001a7f5cmov rax, rbx
    001a7f5fmov [rsp+16], rax
    001a7f64mov rbx, [rsp+24]
    001a7f69mov rdi, rbx
    001a7f6c
    001a7f6cloc_1a7f6c:
    001a7f6cmov rax, rbx
    001a7f6fsub rbx, 2
    001a7f73mov [rsp+24], rbx
    001a7f78cmp rax, 1
    001a7f7cje 0x1a7f85
    001a7f7ecmp r15, [r14]
    001a7f81ja 0x1a7f0a
    001a7f83jmp 0x1a7fc3
    001a7f85
    001a7f85loc_1a7f85:
    001a7f85mov ebx, 1
    001a7f8amov rax, [rsp]
    001a7f8ecall Stdlib.Bytes.sub
    001a7f93sub r15, 24
    001a7f97cmp r15, [r14]
    001a7f9ajb 0x1a7fbc
    001a7f9c
    001a7f9cloc_1a7f9c:
    001a7f9clea rbx, [r15+8]
    001a7fa0mov [rbx-8], 2048
    001a7fa8mov [rbx], rax
    001a7fabmov rax, [rsp+16]
    001a7fb0mov [rbx+8], rax
    001a7fb4mov rax, rbx
    001a7fb7add rsp, 32
    001a7fbbret
    001a7fbc
    001a7fbcloc_1a7fbc:
    001a7fbccall caml_call_gc
    001a7fc1jmp 0x1a7f9c
    001a7fc3
    001a7fc3loc_1a7fc3:
    001a7fc3call caml_call_gc
    001a7fc8jmp 0x1a7f0a
    001a7fcd
    001a7fcdloc_1a7fcd:
    001a7fcdcall caml_call_gc
    001a7fd2jmp 0x1a7f44
    001a7fd7
    001a7fd7loc_1a7fd7:
    001a7fd7push 37
    001a7fd9call caml_call_realloc_stack
    001a7fdepop r10
    001a7fe0jmp 0x1a7ec2
    001a7eb0
    001a7fe5
    001a7fe5 // align 0x10
    001a7ff0
    001a7ff0Stdlib.Bytes.to_seq:
    001a7ff0sub r15, 80
    001a7ff4cmp r15, [r14]
    001a7ff7jb 0x1a8062
    001a7ff9
    001a7ff9loc_1a7ff9:
    001a7ff9lea rbx, [r15+8]
    001a7ffdadd rbx, 40
    001a8001mov [rbx-8], 4343
    001a8009lea rdi, [rip-0xb0ff0]
    001a8010mov [rbx], rdi
    001a8013mov rdi, 0x200000000000007
    001a801dmov [rbx+8], rdi
    001a8021lea rdi, [rip+72]
    001a8028mov [rbx+16], rdi
    001a802cmov [rbx+24], rax
    001a8030mov edi, 1
    001a8035lea rax, [rbx-40]
    001a8039mov [rax-8], 4343
    001a8041lea rsi, [rip+232]
    001a8048mov [rax], rsi
    001a804bmov rsi, 0x100000000000005
    001a8055mov [rax+8], rsi
    001a8059mov [rax+16], rdi
    001a805dmov [rax+24], rbx
    001a8061ret
    001a8062
    001a8062loc_1a8062:
    001a8062call caml_call_gc
    001a8067jmp 0x1a7ff9
    001a7ff0
    001a8069
    001a8069 // align 0x10
    001a8070
    001a8070Stdlib.Bytes.aux:
    001a8070mov rbx, [rdi+24]
    001a8074mov rsi, [rbx-8]
    001a8078shr rsi, 10
    001a807clea rsi, [8*rsi-1]
    001a8084movzx rdx, [rbx+rsi]
    001a8089sub rsi, rdx
    001a808clea rdx, [rsi+rsi+1]
    001a8091cmp rax, rdx
    001a8094jne 0x1a809c
    001a8096mov eax, 1
    001a809bret
    001a809c
    001a809cloc_1a809c:
    001a809cmov rdx, rax
    001a809fsar rdx, 1
    001a80a2cmp rsi, rdx
    001a80a5jbe 0x1a8109
    001a80a7movzx rbx, [rbx+rdx]
    001a80aclea rbx, [rbx+rbx+1]
    001a80b1add rax, 2
    001a80b5sub r15, 64
    001a80b9cmp r15, [r14]
    001a80bcjb 0x1a8102
    001a80be
    001a80beloc_1a80be:
    001a80belea rsi, [r15+8]
    001a80c2add rsi, 24
    001a80c6mov [rsi-8], 4343
    001a80celea rdx, [rip+59]
    001a80d5mov [rsi], rdx
    001a80d8mov rdx, 0x100000000000005
    001a80e2mov [rsi+8], rdx
    001a80e6mov [rsi+16], rax
    001a80eamov [rsi+24], rdi
    001a80eelea rax, [rsi-24]
    001a80f2mov [rax-8], 2048
    001a80famov [rax], rbx
    001a80fdmov [rax+8], rsi
    001a8101ret
    001a8102
    001a8102loc_1a8102:
    001a8102call caml_call_gc
    001a8107jmp 0x1a80be
    001a8109
    001a8109loc_1a8109:
    001a8109call caml_ml_array_bound_error
    001a8070
    001a810e
    001a810e // align 0x10
    001a8110
    001a8110Stdlib.Bytes.fun:
    001a8110mov rsi, rax
    001a8113mov rax, [rbx+16]
    001a8117mov rdi, [rbx+24]
    001a811bmov rbx, rsi
    001a811ejmp 0x1a8070
    001a8110
    001a8123
    001a8123 // align 0x10
    001a8130
    001a8130Stdlib.Bytes.fun:
    001a8130mov rsi, rax
    001a8133mov rax, [rbx+16]
    001a8137mov rdi, [rbx+24]
    001a813bmov rbx, rsi
    001a813ejmp 0x1a8070
    001a8130
    001a8143
    001a8143 // align 0x10
    001a8150
    001a8150Stdlib.Bytes.to_seqi:
    001a8150sub r15, 80
    001a8154cmp r15, [r14]
    001a8157jb 0x1a81c2
    001a8159
    001a8159loc_1a8159:
    001a8159lea rbx, [r15+8]
    001a815dadd rbx, 40
    001a8161mov [rbx-8], 4343
    001a8169lea rdi, [rip-0xb1150]
    001a8170mov [rbx], rdi
    001a8173mov rdi, 0x200000000000007
    001a817dmov [rbx+8], rdi
    001a8181lea rdi, [rip+72]
    001a8188mov [rbx+16], rdi
    001a818cmov [rbx+24], rax
    001a8190mov edi, 1
    001a8195lea rax, [rbx-40]
    001a8199mov [rax-8], 4343
    001a81a1lea rsi, [rip+264]
    001a81a8mov [rax], rsi
    001a81abmov rsi, 0x100000000000005
    001a81b5mov [rax+8], rsi
    001a81b9mov [rax+16], rdi
    001a81bdmov [rax+24], rbx
    001a81c1ret
    001a81c2
    001a81c2loc_1a81c2:
    001a81c2call caml_call_gc
    001a81c7jmp 0x1a8159
    001a8150
    001a81c9
    001a81c9 // align 0x10
    001a81d0
    001a81d0Stdlib.Bytes.aux:
    001a81d0mov rbx, [rdi+24]
    001a81d4mov rsi, [rbx-8]
    001a81d8shr rsi, 10
    001a81dclea rsi, [8*rsi-1]
    001a81e4movzx rdx, [rbx+rsi]
    001a81e9sub rsi, rdx
    001a81eclea rdx, [rsi+rsi+1]
    001a81f1cmp rax, rdx
    001a81f4jne 0x1a81fc
    001a81f6mov eax, 1
    001a81fbret
    001a81fc
    001a81fcloc_1a81fc:
    001a81fcmov rdx, rax
    001a81ffsar rdx, 1
    001a8202cmp rsi, rdx
    001a8205jbe 0x1a827f
    001a8207movzx rbx, [rbx+rdx]
    001a820clea rbx, [rbx+rbx+1]
    001a8211mov rsi, rax
    001a8214add rsi, 2
    001a8218sub r15, 88
    001a821ccmp r15, [r14]
    001a821fjb 0x1a8278
    001a8221
    001a8221loc_1a8221:
    001a8221lea rdx, [r15+8]
    001a8225add rdx, 48
    001a8229mov [rdx-8], 4343
    001a8231lea rcx, [rip+88]
    001a8238mov [rdx], rcx
    001a823bmov rcx, 0x100000000000005
    001a8245mov [rdx+8], rcx
    001a8249mov [rdx+16], rsi
    001a824dmov [rdx+24], rdi
    001a8251lea rdi, [rdx-24]
    001a8255mov [rdi-8], 2048
    001a825dmov [rdi], rax
    001a8260mov [rdi+8], rbx
    001a8264lea rax, [rdi-24]
    001a8268mov [rax-8], 2048
    001a8270mov [rax], rdi
    001a8273mov [rax+8], rdx
    001a8277ret
    001a8278
    001a8278loc_1a8278:
    001a8278call caml_call_gc
    001a827djmp 0x1a8221
    001a827f
    001a827floc_1a827f:
    001a827fcall caml_ml_array_bound_error
    001a81d0
    001a8284
    001a8284 // align 0x10
    001a8290
    001a8290Stdlib.Bytes.fun:
    001a8290mov rsi, rax
    001a8293mov rax, [rbx+16]
    001a8297mov rdi, [rbx+24]
    001a829bmov rbx, rsi
    001a829ejmp 0x1a81d0
    001a8290
    001a82a3
    001a82a3 // align 0x10
    001a82b0
    001a82b0Stdlib.Bytes.fun:
    001a82b0mov rsi, rax
    001a82b3mov rax, [rbx+16]
    001a82b7mov rdi, [rbx+24]
    001a82bbmov rbx, rsi
    001a82bejmp 0x1a81d0
    001a82b0
    001a82c3
    001a82c3 // align 0x10
    001a82d0
    001a82d0Stdlib.Bytes.of_seq:
    001a82d0lea r10, [rsp-344]
    001a82d8cmp r10, [r14+40]
    001a82dcjb 0x1a83df
    001a82e2
    001a82e2loc_1a82e2:
    001a82e2sub rsp, 24
    001a82e6mov [rsp], rax
    001a82easub r15, 16
    001a82eecmp r15, [r14]
    001a82f1jb 0x1a83d5
    001a82f7
    001a82f7loc_1a82f7:
    001a82f7lea rax, [r15+8]
    001a82fbmov [rsp+8], rax
    001a8300mov [rax-8], 1024
    001a8308mov [rax], 1
    001a830fmov ebx, 1
    001a8314mov eax, 513
    001a8319call Stdlib.Bytes.make
    001a831esub r15, 104
    001a8322cmp r15, [r14]
    001a8325jb 0x1a83cb
    001a832b
    001a832bloc_1a832b:
    001a832blea rbx, [r15+8]
    001a832fadd rbx, 88
    001a8333mov [rsp+16], rbx
    001a8338mov [rbx-8], 1024
    001a8340mov [rbx], rax
    001a8343lea rdi, [rbx-40]
    001a8347mov [rdi-8], 4343
    001a834flea rax, [rip+154]
    001a8356mov [rdi], rax
    001a8359mov rax, 0x100000000000005
    001a8363mov [rdi+8], rax
    001a8367mov rdx, [rsp+8]
    001a836cmov [rdi+16], rdx
    001a8370mov [rdi+24], rbx
    001a8374lea rax, [rdi-48]
    001a8378mov [rax-8], 5367
    001a8380lea rsi, [rip+377]
    001a8387mov [rax], rsi
    001a838amov rsi, 0x100000000000005
    001a8394mov [rax+8], rsi
    001a8398mov [rax+16], rdx
    001a839cmov [rax+24], rbx
    001a83a0mov [rax+32], rdi
    001a83a4mov rbx, [rsp]
    001a83a8call Stdlib.Seq.iter
    001a83admov rax, [rsp+8]
    001a83b2mov rdi, [rax]
    001a83b5mov ebx, 1
    001a83bamov rax, [rsp+16]
    001a83bfmov rax, [rax]
    001a83c2add rsp, 24
    001a83c6jmp 0x1a63e0
    001a83cb
    001a83cbloc_1a83cb:
    001a83cbcall caml_call_gc
    001a83d0jmp 0x1a832b
    001a83d5
    001a83d5loc_1a83d5:
    001a83d5call caml_call_gc
    001a83dajmp 0x1a82f7
    001a83df
    001a83dfloc_1a83df:
    001a83dfpush 36
    001a83e1call caml_call_realloc_stack
    001a83e6pop r10
    001a83e8jmp 0x1a82e2
    001a82d0
    001a83ed
    001a83ed // align 0x10
    001a83f0
    001a83f0Stdlib.Bytes.resize:
    001a83f0lea r10, [rsp-336]
    001a83f8cmp r10, [r14+40]
    001a83fcjb 0x1a84e8
    001a8402
    001a8402loc_1a8402:
    001a8402sub rsp, 16
    001a8406mov [rsp+8], rbx
    001a840bmov rax, [rbx+24]
    001a840fmov rax, [rax]
    001a8412mov rdi, [rax-8]
    001a8416shr rdi, 10
    001a841alea rdi, [8*rdi-1]
    001a8422movzx rax, [rax+rdi]
    001a8427sub rdi, rax
    001a842alea rax, [4*rdi+1]
    001a8432mov rdi, 0x3ffffffffffffef
    001a843ccmp rax, rdi
    001a843fjg 0x1a8448
    001a8441mov [rsp], rax
    001a8445jmp 0x1a8456
    001a8447
    001a8447 90 .
    001a8448
    001a8448loc_1a8448:
    001a8448mov rax, 0x3ffffffffffffef
    001a8452mov [rsp], rax
    001a8456
    001a8456loc_1a8456:
    001a8456mov rbx, [rbx+24]
    001a845amov rbx, [rbx]
    001a845dmov rdi, [rbx-8]
    001a8461shr rdi, 10
    001a8465lea rdi, [8*rdi-1]
    001a846dmovzx rbx, [rbx+rdi]
    001a8472sub rdi, rbx
    001a8475lea rbx, [rdi+rdi+1]
    001a847acmp rbx, rax
    001a847djne 0x1a848b
    001a847flea rax, [rip+0x191e6a]
    001a8486call camlStdlib.failwith_7
    001a848b
    001a848bloc_1a848b:
    001a848bmov ebx, 1
    001a8490mov rax, [rsp]
    001a8494call Stdlib.Bytes.make
    001a8499mov rdi, rax
    001a849cmov [rsp], rdi
    001a84a0mov rcx, [rsp+8]
    001a84a5mov rax, [rcx+16]
    001a84a9mov rdx, [rax]
    001a84acmov esi, 1
    001a84b1mov ebx, 1
    001a84b6mov rax, [rcx+24]
    001a84bamov rax, [rax]
    001a84bdcall Stdlib.Bytes.blit
    001a84c2mov rax, [rsp+8]
    001a84c7mov rdi, [rax+24]
    001a84cbmov rsi, [rsp]
    001a84cfmov rbx, rsp
    001a84d2mov rsp, [r14+64]
    001a84d6call caml_modify
    001a84dbmov rsp, rbx
    001a84demov eax, 1
    001a84e3add rsp, 16
    001a84e7ret
    001a84e8
    001a84e8loc_1a84e8:
    001a84e8push 35
    001a84eacall caml_call_realloc_stack
    001a84efpop r10
    001a84f1jmp 0x1a8402
    001a83f0
    001a84f6
    001a84f6 // align 0x10
    001a8500
    001a8500Stdlib.Bytes.fun:
    001a8500lea r10, [rsp-336]
    001a8508cmp r10, [r14+40]
    001a850cjb 0x1a85ad
    001a8512
    001a8512loc_1a8512:
    001a8512sub rsp, 16
    001a8516mov [rsp], rax
    001a851amov [rsp+8], rbx
    001a851fmov rax, [rbx+24]
    001a8523mov rax, [rax]
    001a8526mov rdi, [rax-8]
    001a852ashr rdi, 10
    001a852elea rdi, [8*rdi-1]
    001a8536movzx rax, [rax+rdi]
    001a853bsub rdi, rax
    001a853elea rax, [rdi+rdi+1]
    001a8543mov rdi, [rbx+16]
    001a8547mov rdi, [rdi]
    001a854acmp rdi, rax
    001a854djne 0x1a855d
    001a854fmov rbx, [rbx+32]
    001a8553mov eax, 1
    001a8558call Stdlib.Bytes.resize
    001a855d
    001a855dloc_1a855d:
    001a855dmov rax, [rsp]
    001a8561sar rax, 1
    001a8564mov rsi, [rsp+8]
    001a8569mov rbx, [rsi+16]
    001a856dmov rdi, [rbx]
    001a8570sar rdi, 1
    001a8573mov rsi, [rsi+24]
    001a8577mov rsi, [rsi]
    001a857amov rdx, [rsi-8]
    001a857eshr rdx, 10
    001a8582lea rdx, [8*rdx-1]
    001a858amovzx rcx, [rsi+rdx]
    001a858fsub rdx, rcx
    001a8592cmp rdx, rdi
    001a8595jbe 0x1a85a8
    001a8597mov [rsi+rdi], al
    001a859aadd [rbx], 2
    001a859emov eax, 1
    001a85a3add rsp, 16
    001a85a7ret
    001a85a8
    001a85a8loc_1a85a8:
    001a85a8call caml_ml_array_bound_error
    001a85ad
    001a85adloc_1a85ad:
    001a85adpush 35
    001a85afcall caml_call_realloc_stack
    001a85b4pop r10
    001a85b6jmp 0x1a8512
    001a8500
    001a85bb
    001a85bb // align 0x10
    001a85c0
    001a85c0Stdlib.Bytes.unsafe_get_uint16_le:
    001a85c0sar rbx, 1
    001a85c3movzx rax, [rax+rbx]
    001a85c8lea rax, [rax+rax+1]
    001a85cdret
    001a85c0
    001a85ce
    001a85ce // align 0x10
    001a85d0
    001a85d0Stdlib.Bytes.unsafe_get_uint16_be:
    001a85d0sar rbx, 1
    001a85d3movzx rax, [rax+rbx]
    001a85d8xchg al, ah
    001a85damovzx rax, ax
    001a85delea rax, [rax+rax+1]
    001a85e3ret
    001a85d0
    001a85e4
    001a85e4 // align 0x10
    001a85f0
    001a85f0Stdlib.Bytes.get_int8:
    001a85f0sar rbx, 1
    001a85f3mov rdi, [rax-8]
    001a85f7shr rdi, 10
    001a85fblea rdi, [8*rdi-1]
    001a8603movzx rsi, [rax+rdi]
    001a8608sub rdi, rsi
    001a860bcmp rdi, rbx
    001a860ejbe 0x1a8622
    001a8610movzx rax, [rax+rbx]
    001a8615shl rax, 56
    001a8619sar rax, 55
    001a861dor rax, 1
    001a8621ret
    001a8622
    001a8622loc_1a8622:
    001a8622call caml_ml_array_bound_error
    001a85f0
    001a8627
    001a8627 // align 0x10
    001a8630
    001a8630Stdlib.Bytes.get_uint16_le:
    001a8630sar rbx, 1
    001a8633mov rdi, [rax-8]
    001a8637shr rdi, 10
    001a863blea rdi, [8*rdi-1]
    001a8643movzx rsi, [rax+rdi]
    001a8648sub rdi, rsi
    001a864bdec rdi
    001a864emov rsi, rdi
    001a8651sar rsi, 63
    001a8655xor rsi, -1
    001a8659and rsi, rdi
    001a865ccmp rsi, rbx
    001a865fjbe 0x1a866c
    001a8661movzx rax, [rax+rbx]
    001a8666lea rax, [rax+rax+1]
    001a866bret
    001a866c
    001a866cloc_1a866c:
    001a866ccall caml_ml_array_bound_error
    001a8630
    001a8671
    001a8671 // align 0x10
    001a8680
    001a8680Stdlib.Bytes.get_uint16_be:
    001a8680sar rbx, 1
    001a8683mov rdi, [rax-8]
    001a8687shr rdi, 10
    001a868blea rdi, [8*rdi-1]
    001a8693movzx rsi, [rax+rdi]
    001a8698sub rdi, rsi
    001a869bdec rdi
    001a869emov rsi, rdi
    001a86a1sar rsi, 63
    001a86a5xor rsi, -1
    001a86a9and rsi, rdi
    001a86accmp rsi, rbx
    001a86afjbe 0x1a86c2
    001a86b1movzx rax, [rax+rbx]
    001a86b6xchg al, ah
    001a86b8movzx rax, ax
    001a86bclea rax, [rax+rax+1]
    001a86c1ret
    001a86c2
    001a86c2loc_1a86c2:
    001a86c2call caml_ml_array_bound_error
    001a8680
    001a86c7
    001a86c7 // align 0x10
    001a86d0
    001a86d0Stdlib.Bytes.get_int16_ne:
    001a86d0sar rbx, 1
    001a86d3mov rdi, [rax-8]
    001a86d7shr rdi, 10
    001a86dblea rdi, [8*rdi-1]
    001a86e3movzx rsi, [rax+rdi]
    001a86e8sub rdi, rsi
    001a86ebdec rdi
    001a86eemov rsi, rdi
    001a86f1sar rsi, 63
    001a86f5xor rsi, -1
    001a86f9and rsi, rdi
    001a86fccmp rsi, rbx
    001a86ffjbe 0x1a8713
    001a8701movzx rax, [rax+rbx]
    001a8706shl rax, 48
    001a870asar rax, 47
    001a870eor rax, 1
    001a8712ret
    001a8713
    001a8713loc_1a8713:
    001a8713call caml_ml_array_bound_error
    001a86d0
    001a8718
    001a8718 // align 0x10
    001a8720
    001a8720Stdlib.Bytes.get_int16_le:
    001a8720sar rbx, 1
    001a8723mov rdi, [rax-8]
    001a8727shr rdi, 10
    001a872blea rdi, [8*rdi-1]
    001a8733movzx rsi, [rax+rdi]
    001a8738sub rdi, rsi
    001a873bdec rdi
    001a873emov rsi, rdi
    001a8741sar rsi, 63
    001a8745xor rsi, -1
    001a8749and rsi, rdi
    001a874ccmp rsi, rbx
    001a874fjbe 0x1a8763
    001a8751movzx rax, [rax+rbx]
    001a8756shl rax, 48
    001a875asar rax, 47
    001a875eor rax, 1
    001a8762ret
    001a8763
    001a8763loc_1a8763:
    001a8763call caml_ml_array_bound_error
    001a8720
    001a8768
    001a8768 // align 0x10
    001a8770
    001a8770Stdlib.Bytes.get_int16_be:
    001a8770sar rbx, 1
    001a8773mov rdi, [rax-8]
    001a8777shr rdi, 10
    001a877blea rdi, [8*rdi-1]
    001a8783movzx rsi, [rax+rdi]
    001a8788sub rdi, rsi
    001a878bdec rdi
    001a878emov rsi, rdi
    001a8791sar rsi, 63
    001a8795xor rsi, -1
    001a8799and rsi, rdi
    001a879ccmp rsi, rbx
    001a879fjbe 0x1a87b9
    001a87a1movzx rax, [rax+rbx]
    001a87a6xchg al, ah
    001a87a8movzx rax, ax
    001a87acshl rax, 48
    001a87b0sar rax, 47
    001a87b4or rax, 1
    001a87b8ret
    001a87b9
    001a87b9loc_1a87b9:
    001a87b9call caml_ml_array_bound_error
    001a8770
    001a87be
    001a87be // align 0x10
    001a87c0
    001a87c0Stdlib.Bytes.get_int32_le:
    001a87c0mov rdi, rax
    001a87c3sub r15, 24
    001a87c7cmp r15, [r14]
    001a87cajb 0x1a881f
    001a87cc
    001a87ccloc_1a87cc:
    001a87cclea rax, [r15+8]
    001a87d0mov [rax-8], 2303
    001a87d8lea rsi, [rip+0xcd0e1]
    001a87dfmov [rax], rsi
    001a87e2sar rbx, 1
    001a87e5mov rsi, [rdi-8]
    001a87e9shr rsi, 10
    001a87edlea rsi, [8*rsi-1]
    001a87f5movzx rdx, [rdi+rsi]
    001a87fasub rsi, rdx
    001a87fdadd rsi, -3
    001a8801mov rdx, rsi
    001a8804sar rdx, 63
    001a8808xor rdx, -1
    001a880cand rdx, rsi
    001a880fcmp rdx, rbx
    001a8812jbe 0x1a8826
    001a8814mov ebx, [rdi+rbx]
    001a8817movsxd rbx, ebx
    001a881amov [rax+8], rbx
    001a881eret
    001a881f
    001a881floc_1a881f:
    001a881fcall caml_call_gc
    001a8824jmp 0x1a87cc
    001a8826
    001a8826loc_1a8826:
    001a8826call caml_ml_array_bound_error
    001a87c0
    001a882b
    001a882b // align 0x10
    001a8830
    001a8830Stdlib.Bytes.get_int32_be:
    001a8830mov rdi, rax
    001a8833sub r15, 24
    001a8837cmp r15, [r14]
    001a883ajb 0x1a8897
    001a883c
    001a883cloc_1a883c:
    001a883clea rax, [r15+8]
    001a8840mov [rax-8], 2303
    001a8848lea rsi, [rip+0xcd071]
    001a884fmov [rax], rsi
    001a8852sar rbx, 1
    001a8855mov rsi, [rdi-8]
    001a8859shr rsi, 10
    001a885dlea rsi, [8*rsi-1]
    001a8865movzx rdx, [rdi+rsi]
    001a886asub rsi, rdx
    001a886dadd rsi, -3
    001a8871mov rdx, rsi
    001a8874sar rdx, 63
    001a8878xor rdx, -1
    001a887cand rdx, rsi
    001a887fcmp rdx, rbx
    001a8882jbe 0x1a889e
    001a8884mov ebx, [rdi+rbx]
    001a8887movsxd rbx, ebx
    001a888abswap ebx
    001a888cmovsxd rbx, ebx
    001a888fmovsxd rbx, ebx
    001a8892mov [rax+8], rbx
    001a8896ret
    001a8897
    001a8897loc_1a8897:
    001a8897call caml_call_gc
    001a889cjmp 0x1a883c
    001a889e
    001a889eloc_1a889e:
    001a889ecall caml_ml_array_bound_error
    001a8830
    001a88a3
    001a88a3 // align 0x10
    001a88b0
    001a88b0Stdlib.Bytes.get_int64_le:
    001a88b0mov rdi, rax
    001a88b3sub r15, 24
    001a88b7cmp r15, [r14]
    001a88bajb 0x1a890d
    001a88bc
    001a88bcloc_1a88bc:
    001a88bclea rax, [r15+8]
    001a88c0mov [rax-8], 2303
    001a88c8lea rsi, [rip+0xccfb1]
    001a88cfmov [rax], rsi
    001a88d2sar rbx, 1
    001a88d5mov rsi, [rdi-8]
    001a88d9shr rsi, 10
    001a88ddlea rsi, [8*rsi-1]
    001a88e5movzx rdx, [rdi+rsi]
    001a88easub rsi, rdx
    001a88edadd rsi, -7
    001a88f1mov rdx, rsi
    001a88f4sar rdx, 63
    001a88f8xor rdx, -1
    001a88fcand rdx, rsi
    001a88ffcmp rdx, rbx
    001a8902jbe 0x1a8914
    001a8904mov rbx, [rdi+rbx]
    001a8908mov [rax+8], rbx
    001a890cret
    001a890d
    001a890dloc_1a890d:
    001a890dcall caml_call_gc
    001a8912jmp 0x1a88bc
    001a8914
    001a8914loc_1a8914:
    001a8914call caml_ml_array_bound_error
    001a88b0
    001a8919
    001a8919 // align 0x10
    001a8920
    001a8920Stdlib.Bytes.get_int64_be:
    001a8920mov rdi, rax
    001a8923sub r15, 24
    001a8927cmp r15, [r14]
    001a892ajb 0x1a8980
    001a892c
    001a892cloc_1a892c:
    001a892clea rax, [r15+8]
    001a8930mov [rax-8], 2303
    001a8938lea rsi, [rip+0xccf41]
    001a893fmov [rax], rsi
    001a8942sar rbx, 1
    001a8945mov rsi, [rdi-8]
    001a8949shr rsi, 10
    001a894dlea rsi, [8*rsi-1]
    001a8955movzx rdx, [rdi+rsi]
    001a895asub rsi, rdx
    001a895dadd rsi, -7
    001a8961mov rdx, rsi
    001a8964sar rdx, 63
    001a8968xor rdx, -1
    001a896cand rdx, rsi
    001a896fcmp rdx, rbx
    001a8972jbe 0x1a8987
    001a8974mov rbx, [rdi+rbx]
    001a8978bswap rbx
    001a897bmov [rax+8], rbx
    001a897fret
    001a8980
    001a8980loc_1a8980:
    001a8980call caml_call_gc
    001a8985jmp 0x1a892c
    001a8987
    001a8987loc_1a8987:
    001a8987call caml_ml_array_bound_error
    001a8920
    001a898c
    001a898c // align 0x10
    001a8990
    001a8990Stdlib.Bytes.unsafe_set_uint16_le:
    001a8990sar rdi, 1
    001a8993sar rbx, 1
    001a8996mov [rax+rbx], di
    001a899amov eax, 1
    001a899fret
    001a8990
    001a89a0
    001a89a0Stdlib.Bytes.unsafe_set_uint16_be:
    001a89a0mov rsi, rax
    001a89a3mov rax, rdi
    001a89a6sar rax, 1
    001a89a9xchg al, ah
    001a89abmovzx rax, ax
    001a89afsar rbx, 1
    001a89b2mov [rsi+rbx], ax
    001a89b6mov eax, 1
    001a89bbret
    001a89a0
    001a89bc
    001a89bc // align 0x10
    001a89c0
    001a89c0Stdlib.Bytes.set_int16_le:
    001a89c0sar rdi, 1
    001a89c3sar rbx, 1
    001a89c6mov rsi, [rax-8]
    001a89cashr rsi, 10
    001a89celea rsi, [8*rsi-1]
    001a89d6movzx rdx, [rax+rsi]
    001a89dbsub rsi, rdx
    001a89dedec rsi
    001a89e1mov rdx, rsi
    001a89e4sar rdx, 63
    001a89e8xor rdx, -1
    001a89ecand rdx, rsi
    001a89efcmp rdx, rbx
    001a89f2jbe 0x1a89fe
    001a89f4mov [rax+rbx], di
    001a89f8mov eax, 1
    001a89fdret
    001a89fe
    001a89feloc_1a89fe:
    001a89fecall caml_ml_array_bound_error
    001a89c0
    001a8a03
    001a8a03 // align 0x10
    001a8a10
    001a8a10Stdlib.Bytes.set_int16_be:
    001a8a10mov rsi, rax
    001a8a13mov rax, rdi
    001a8a16sar rax, 1
    001a8a19xchg al, ah
    001a8a1bmovzx rax, ax
    001a8a1fsar rbx, 1
    001a8a22mov rdi, [rsi-8]
    001a8a26shr rdi, 10
    001a8a2alea rdi, [8*rdi-1]
    001a8a32movzx rdx, [rsi+rdi]
    001a8a37sub rdi, rdx
    001a8a3adec rdi
    001a8a3dmov rdx, rdi
    001a8a40sar rdx, 63
    001a8a44xor rdx, -1
    001a8a48and rdx, rdi
    001a8a4bcmp rdx, rbx
    001a8a4ejbe 0x1a8a5a
    001a8a50mov [rsi+rbx], ax
    001a8a54mov eax, 1
    001a8a59ret
    001a8a5a
    001a8a5aloc_1a8a5a:
    001a8a5acall caml_ml_array_bound_error
    001a8a10
    001a8a5f
    001a8a5f // align 0x10
    001a8a60
    001a8a60Stdlib.Bytes.set_int32_le:
    001a8a60movsxd rdi, [rdi+8]
    001a8a64sar rbx, 1
    001a8a67mov rsi, [rax-8]
    001a8a6bshr rsi, 10
    001a8a6flea rsi, [8*rsi-1]
    001a8a77movzx rdx, [rax+rsi]
    001a8a7csub rsi, rdx
    001a8a7fadd rsi, -3
    001a8a83mov rdx, rsi
    001a8a86sar rdx, 63
    001a8a8axor rdx, -1
    001a8a8eand rdx, rsi
    001a8a91cmp rdx, rbx
    001a8a94jbe 0x1a8a9f
    001a8a96mov [rax+rbx], edi
    001a8a99mov eax, 1
    001a8a9eret
    001a8a9f
    001a8a9floc_1a8a9f:
    001a8a9fcall caml_ml_array_bound_error
    001a8a60
    001a8aa4
    001a8aa4 // align 0x10
    001a8ab0
    001a8ab0Stdlib.Bytes.set_int32_be:
    001a8ab0movsxd rdi, [rdi+8]
    001a8ab4bswap edi
    001a8ab6movsxd rdi, edi
    001a8ab9movsxd rdi, edi
    001a8abcsar rbx, 1
    001a8abfmov rsi, [rax-8]
    001a8ac3shr rsi, 10
    001a8ac7lea rsi, [8*rsi-1]
    001a8acfmovzx rdx, [rax+rsi]
    001a8ad4sub rsi, rdx
    001a8ad7add rsi, -3
    001a8adbmov rdx, rsi
    001a8adesar rdx, 63
    001a8ae2xor rdx, -1
    001a8ae6and rdx, rsi
    001a8ae9cmp rdx, rbx
    001a8aecjbe 0x1a8af7
    001a8aeemov [rax+rbx], edi
    001a8af1mov eax, 1
    001a8af6ret
    001a8af7
    001a8af7loc_1a8af7:
    001a8af7call caml_ml_array_bound_error
    001a8ab0
    001a8afc
    001a8afc // align 0x10
    001a8b00
    001a8b00Stdlib.Bytes.set_int64_le:
    001a8b00mov rdi, [rdi+8]
    001a8b04sar rbx, 1
    001a8b07mov rsi, [rax-8]
    001a8b0bshr rsi, 10
    001a8b0flea rsi, [8*rsi-1]
    001a8b17movzx rdx, [rax+rsi]
    001a8b1csub rsi, rdx
    001a8b1fadd rsi, -7
    001a8b23mov rdx, rsi
    001a8b26sar rdx, 63
    001a8b2axor rdx, -1
    001a8b2eand rdx, rsi
    001a8b31cmp rdx, rbx
    001a8b34jbe 0x1a8b40
    001a8b36mov [rax+rbx], rdi
    001a8b3amov eax, 1
    001a8b3fret
    001a8b40
    001a8b40loc_1a8b40:
    001a8b40call caml_ml_array_bound_error
    001a8b00
    001a8b45
    001a8b45 // align 0x10
    001a8b50
    001a8b50Stdlib.Bytes.set_int64_be:
    001a8b50mov rdi, [rdi+8]
    001a8b54bswap rdi
    001a8b57sar rbx, 1
    001a8b5amov rsi, [rax-8]
    001a8b5eshr rsi, 10
    001a8b62lea rsi, [8*rsi-1]
    001a8b6amovzx rdx, [rax+rsi]
    001a8b6fsub rsi, rdx
    001a8b72add rsi, -7
    001a8b76mov rdx, rsi
    001a8b79sar rdx, 63
    001a8b7dxor rdx, -1
    001a8b81and rdx, rsi
    001a8b84cmp rdx, rbx
    001a8b87jbe 0x1a8b93
    001a8b89mov [rax+rbx], rdi
    001a8b8dmov eax, 1
    001a8b92ret
    001a8b93
    001a8b93loc_1a8b93:
    001a8b93call caml_ml_array_bound_error
    001a8b50
    001a8b98
    001a8b98 // align 0x10
    001a8ba0
    001a8ba0Stdlib.Bytes.set_uint8:
    001a8ba0sar rdi, 1
    001a8ba3sar rbx, 1
    001a8ba6mov rsi, [rax-8]
    001a8baashr rsi, 10
    001a8baelea rsi, [8*rsi-1]
    001a8bb6movzx rdx, [rax+rsi]
    001a8bbbsub rsi, rdx
    001a8bbecmp rsi, rbx
    001a8bc1jbe 0x1a8bcd
    001a8bc3mov [rax+rbx], dil
    001a8bc7mov eax, 1
    001a8bccret
    001a8bcd
    001a8bcdloc_1a8bcd:
    001a8bcdcall caml_ml_array_bound_error
    001a8ba0
    001a8bd2
    001a8bd2 // align 0x10
    001a8be0
    001a8be0Stdlib.Bytes.set_uint16_ne:
    001a8be0sar rdi, 1
    001a8be3sar rbx, 1
    001a8be6mov rsi, [rax-8]
    001a8beashr rsi, 10
    001a8beelea rsi, [8*rsi-1]
    001a8bf6movzx rdx, [rax+rsi]
    001a8bfbsub rsi, rdx
    001a8bfedec rsi
    001a8c01mov rdx, rsi
    001a8c04sar rdx, 63
    001a8c08xor rdx, -1
    001a8c0cand rdx, rsi
    001a8c0fcmp rdx, rbx
    001a8c12jbe 0x1a8c1e
    001a8c14mov [rax+rbx], di
    001a8c18mov eax, 1
    001a8c1dret
    001a8c1e
    001a8c1eloc_1a8c1e:
    001a8c1ecall caml_ml_array_bound_error
    001a8be0
    001a8c23
    001a8c23 // align 0x10
    001a8c30
    001a8c30Stdlib.Bytes.dec_ret:
    001a8c30or rax, 17
    001a8c34shl rax, 24
    001a8c38add rax, 0xffffffffff000001
    001a8c3eor rax, rbx
    001a8c41ret
    001a8c30
    001a8c42
    001a8c42 // align 0x10
    001a8c50
    001a8c50Stdlib.Bytes.not_in_x80_to_xBF:
    001a8c50shr rax, 6
    001a8c54or rax, 1
    001a8c58cmp rax, 5
    001a8c5csetne al
    001a8c5fmovzx rax, al
    001a8c63lea rax, [rax+rax+1]
    001a8c68ret
    001a8c50
    001a8c69
    001a8c69 // align 0x10
    001a8c70
    001a8c70Stdlib.Bytes.not_in_xA0_to_xBF:
    001a8c70shr rax, 5
    001a8c74or rax, 1
    001a8c78cmp rax, 11
    001a8c7csetne al
    001a8c7fmovzx rax, al
    001a8c83lea rax, [rax+rax+1]
    001a8c88ret
    001a8c70
    001a8c89
    001a8c89 // align 0x10
    001a8c90
    001a8c90Stdlib.Bytes.not_in_x80_to_x9F:
    001a8c90shr rax, 5
    001a8c94or rax, 1
    001a8c98cmp rax, 9
    001a8c9csetne al
    001a8c9fmovzx rax, al
    001a8ca3lea rax, [rax+rax+1]
    001a8ca8ret
    001a8c90
    001a8ca9
    001a8ca9 // align 0x10
    001a8cb0
    001a8cb0Stdlib.Bytes.not_in_x90_to_xBF:
    001a8cb0cmp rax, 289
    001a8cb6jl 0x1a8ccc
    001a8cb8cmp rax, 383
    001a8cbesetg al
    001a8cc1movzx rax, al
    001a8cc5lea rax, [rax+rax+1]
    001a8ccaret
    001a8ccb
    001a8ccb 90 .
    001a8ccc
    001a8cccloc_1a8ccc:
    001a8cccmov eax, 3
    001a8cd1ret
    001a8cb0
    001a8cd2
    001a8cd2 // align 0x10
    001a8ce0
    001a8ce0Stdlib.Bytes.not_in_x80_to_x8F:
    001a8ce0shr rax, 4
    001a8ce4or rax, 1
    001a8ce8cmp rax, 17
    001a8cecsetne al
    001a8cefmovzx rax, al
    001a8cf3lea rax, [rax+rax+1]
    001a8cf8ret
    001a8ce0
    001a8cf9
    001a8cf9 // align 0x10
    001a8d00
    001a8d00Stdlib.Bytes.utf_8_uchar_2:
    001a8d00and rbx, 127
    001a8d04and rax, 63
    001a8d08shl rax, 6
    001a8d0cadd rax, -63
    001a8d10or rax, rbx
    001a8d13ret
    001a8d00
    001a8d14
    001a8d14 // align 0x10
    001a8d20
    001a8d20Stdlib.Bytes.utf_8_uchar_3:
    001a8d20and rdi, 127
    001a8d24and rbx, 127
    001a8d28shl rbx, 6
    001a8d2cadd rbx, -63
    001a8d30and rax, 31
    001a8d34shl rax, 12
    001a8d38add rax, -4095
    001a8d3eor rax, rbx
    001a8d41or rax, rdi
    001a8d44ret
    001a8d20
    001a8d45
    001a8d45 // align 0x10
    001a8d50
    001a8d50Stdlib.Bytes.utf_8_uchar_4:
    001a8d50and rsi, 127
    001a8d54and rdi, 127
    001a8d58shl rdi, 6
    001a8d5cadd rdi, -63
    001a8d60and rbx, 127
    001a8d64shl rbx, 12
    001a8d68add rbx, -4095
    001a8d6fand rax, 15
    001a8d73shl rax, 18
    001a8d77add rax, 0xfffffffffffc0001
    001a8d7dor rax, rbx
    001a8d80or rax, rdi
    001a8d83or rax, rsi
    001a8d86ret
    001a8d50
    001a8d87
    001a8d87 // align 0x10
    001a8d90
    001a8d90Stdlib.Bytes.get_utf_8_uchar:
    001a8d90mov rsi, rax
    001a8d93mov rax, rbx
    001a8d96sar rax, 1
    001a8d99mov rdi, [rsi-8]
    001a8d9dshr rdi, 10
    001a8da1lea rdi, [8*rdi-1]
    001a8da9movzx rdx, [rsi+rdi]
    001a8daesub rdi, rdx
    001a8db1cmp rdi, rax
    001a8db4jbe 0x1a932c
    001a8dbamovzx rax, [rsi+rax]
    001a8dbflea r8, [rax+rax+1]
    001a8dc4lea rdi, [rdi+rdi-1]
    001a8dc9cmp r8, 449
    001a8dd0jl 0x1a912c
    001a8dd6cmp r8, 475
    001a8dddjl 0x1a9080
    001a8de3cmp r8, 491
    001a8deajge 0x1a91a0
    001a8df0mov rax, r8
    001a8df3add rax, -474
    001a8df9sar rax, 1
    001a8dfclea rdx, [rip+0x84a9d]
    001a8e03movsxd rax, [rdx+4*rax]
    001a8e07add rdx, rax
    001a8e0ajmp rdx
    001a8e0cadd rbx, 2
    001a8e10cmp rbx, rdi
    001a8e13jle 0x1a8e1c
    001a8e15mov eax, 0x201fffb
    001a8e1aret
    001a8e1bnop
    001a8e1c
    001a8e1cloc_1a8e1c:
    001a8e1cmov rax, rbx
    001a8e1fsar rax, 1
    001a8e22movzx rax, [rsi+rax]
    001a8e27lea rdx, [rax+rax+1]
    001a8e2cmov rax, rdx
    001a8e2fshr rax, 5
    001a8e33or rax, 1
    001a8e37cmp rax, 9
    001a8e3bje 0x1a8e44
    001a8e3dmov eax, 0x201fffb
    001a8e42ret
    001a8e43nop
    001a8e44
    001a8e44loc_1a8e44:
    001a8e44add rbx, 2
    001a8e48cmp rbx, rdi
    001a8e4bjle 0x1a8e54
    001a8e4dmov eax, 0x401fffb
    001a8e52ret
    001a8e53nop
    001a8e54
    001a8e54loc_1a8e54:
    001a8e54sar rbx, 1
    001a8e57movzx rax, [rsi+rbx]
    001a8e5clea rax, [rax+rax+1]
    001a8e61mov rbx, rax
    001a8e64shr rbx, 6
    001a8e68or rbx, 1
    001a8e6ccmp rbx, 5
    001a8e70je 0x1a8e78
    001a8e72mov eax, 0x401fffb
    001a8e77ret
    001a8e78
    001a8e78loc_1a8e78:
    001a8e78mov rbx, rax
    001a8e7band rbx, 127
    001a8e7fand rdx, 127
    001a8e83shl rdx, 6
    001a8e87add rdx, -63
    001a8e8bmov rax, r8
    001a8e8eand rax, 31
    001a8e92shl rax, 12
    001a8e96add rax, -4095
    001a8e9cor rax, rdx
    001a8e9for rax, rbx
    001a8ea2or rax, 0x16000001
    001a8ea8ret
    001a8ea9nop [rax]
    001a8eacadd rbx, 2
    001a8eb0cmp rbx, rdi
    001a8eb3jle 0x1a8ebc
    001a8eb5mov eax, 0x201fffb
    001a8ebaret
    001a8ebbnop
    001a8ebc
    001a8ebcloc_1a8ebc:
    001a8ebcmov rax, rbx
    001a8ebfsar rax, 1
    001a8ec2movzx rax, [rsi+rax]
    001a8ec7lea rcx, [rax+rax+1]
    001a8ecccmp rcx, 289
    001a8ed3jl 0x1a8f94
    001a8ed9cmp rcx, 383
    001a8ee0jg 0x1a8f94
    001a8ee6add rbx, 2
    001a8eeacmp rbx, rdi
    001a8eedjle 0x1a8ef8
    001a8eefmov eax, 0x401fffb
    001a8ef4ret
    001a8ef5nop [rax]
    001a8ef8
    001a8ef8loc_1a8ef8:
    001a8ef8mov rax, rbx
    001a8efbsar rax, 1
    001a8efemovzx rax, [rsi+rax]
    001a8f03lea rdx, [rax+rax+1]
    001a8f08mov rax, rdx
    001a8f0bshr rax, 6
    001a8f0for rax, 1
    001a8f13cmp rax, 5
    001a8f17je 0x1a8f20
    001a8f19mov eax, 0x401fffb
    001a8f1eret
    001a8f1fnop
    001a8f20
    001a8f20loc_1a8f20:
    001a8f20add rbx, 2
    001a8f24cmp rbx, rdi
    001a8f27jle 0x1a8f30
    001a8f29mov eax, 0x601fffb
    001a8f2eret
    001a8f2fnop
    001a8f30
    001a8f30loc_1a8f30:
    001a8f30sar rbx, 1
    001a8f33movzx rax, [rsi+rbx]
    001a8f38lea rbx, [rax+rax+1]
    001a8f3dmov rax, rbx
    001a8f40shr rax, 6
    001a8f44or rax, 1
    001a8f48cmp rax, 5
    001a8f4cje 0x1a8f54
    001a8f4emov eax, 0x601fffb
    001a8f53ret
    001a8f54
    001a8f54loc_1a8f54:
    001a8f54and rbx, 127
    001a8f58and rdx, 127
    001a8f5cshl rdx, 6
    001a8f60add rdx, -63
    001a8f64and rcx, 127
    001a8f68shl rcx, 12
    001a8f6cadd rcx, -4095
    001a8f73mov rax, r8
    001a8f76and rax, 15
    001a8f7ashl rax, 18
    001a8f7eadd rax, 0xfffffffffffc0001
    001a8f84or rax, rcx
    001a8f87or rax, rdx
    001a8f8aor rax, rbx
    001a8f8dor rax, 0x18000001
    001a8f93ret
    001a8f94
    001a8f94loc_1a8f94:
    001a8f94mov eax, 0x201fffb
    001a8f99ret
    001a8f9anop
    001a8f9cadd rbx, 2
    001a8fa0cmp rbx, rdi
    001a8fa3jle 0x1a8fac
    001a8fa5mov eax, 0x201fffb
    001a8faaret
    001a8fabnop
    001a8fac
    001a8facloc_1a8fac:
    001a8facmov rax, rbx
    001a8fafsar rax, 1
    001a8fb2movzx rax, [rsi+rax]
    001a8fb7lea rcx, [rax+rax+1]
    001a8fbcmov rax, rcx
    001a8fbfshr rax, 4
    001a8fc3or rax, 1
    001a8fc7cmp rax, 17
    001a8fcbje 0x1a8fd4
    001a8fcdmov eax, 0x201fffb
    001a8fd2ret
    001a8fd3nop
    001a8fd4
    001a8fd4loc_1a8fd4:
    001a8fd4add rbx, 2
    001a8fd8cmp rbx, rdi
    001a8fdbjle 0x1a8fe4
    001a8fddmov eax, 0x401fffb
    001a8fe2ret
    001a8fe3nop
    001a8fe4
    001a8fe4loc_1a8fe4:
    001a8fe4mov rax, rbx
    001a8fe7sar rax, 1
    001a8feamovzx rax, [rsi+rax]
    001a8feflea rdx, [rax+rax+1]
    001a8ff4mov rax, rdx
    001a8ff7shr rax, 6
    001a8ffbor rax, 1
    001a8fffcmp rax, 5
    001a9003je 0x1a900c
    001a9005mov eax, 0x401fffb
    001a900aret
    001a900bnop
    001a900c
    001a900cloc_1a900c:
    001a900cadd rbx, 2
    001a9010cmp rbx, rdi
    001a9013jle 0x1a901c
    001a9015mov eax, 0x601fffb
    001a901aret
    001a901bnop
    001a901c
    001a901cloc_1a901c:
    001a901csar rbx, 1
    001a901fmovzx rax, [rsi+rbx]
    001a9024lea rbx, [rax+rax+1]
    001a9029mov rax, rbx
    001a902cshr rax, 6
    001a9030or rax, 1
    001a9034cmp rax, 5
    001a9038je 0x1a9040
    001a903amov eax, 0x601fffb
    001a903fret
    001a9040
    001a9040loc_1a9040:
    001a9040and rbx, 127
    001a9044and rdx, 127
    001a9048shl rdx, 6
    001a904cadd rdx, -63
    001a9050and rcx, 127
    001a9054shl rcx, 12
    001a9058add rcx, -4095
    001a905fmov rax, r8
    001a9062and rax, 15
    001a9066shl rax, 18
    001a906aadd rax, 0xfffffffffffc0001
    001a9070or rax, rcx
    001a9073or rax, rdx
    001a9076or rax, rbx
    001a9079or rax, 0x18000001
    001a907fret
    001a9080
    001a9080loc_1a9080:
    001a9080cmp r8, 451
    001a9087jge 0x1a91a8
    001a908dadd rbx, 2
    001a9091cmp rbx, rdi
    001a9094jle 0x1a909c
    001a9096mov eax, 0x201fffb
    001a909bret
    001a909c
    001a909cloc_1a909c:
    001a909cmov rax, rbx
    001a909fsar rax, 1
    001a90a2movzx rax, [rsi+rax]
    001a90a7lea rdx, [rax+rax+1]
    001a90acmov rax, rdx
    001a90afshr rax, 5
    001a90b3or rax, 1
    001a90b7cmp rax, 11
    001a90bbje 0x1a90c4
    001a90bdmov eax, 0x201fffb
    001a90c2ret
    001a90c3nop
    001a90c4
    001a90c4loc_1a90c4:
    001a90c4add rbx, 2
    001a90c8cmp rbx, rdi
    001a90cbjle 0x1a90d4
    001a90cdmov eax, 0x401fffb
    001a90d2ret
    001a90d3nop
    001a90d4
    001a90d4loc_1a90d4:
    001a90d4sar rbx, 1
    001a90d7movzx rax, [rsi+rbx]
    001a90dclea rax, [rax+rax+1]
    001a90e1mov rbx, rax
    001a90e4shr rbx, 6
    001a90e8or rbx, 1
    001a90eccmp rbx, 5
    001a90f0je 0x1a90f8
    001a90f2mov eax, 0x401fffb
    001a90f7ret
    001a90f8
    001a90f8loc_1a90f8:
    001a90f8mov rbx, rax
    001a90fband rbx, 127
    001a90ffand rdx, 127
    001a9103shl rdx, 6
    001a9107add rdx, -63
    001a910bmov rax, r8
    001a910eand rax, 31
    001a9112shl rax, 12
    001a9116add rax, -4095
    001a911cor rax, rdx
    001a911for rax, rbx
    001a9122or rax, 0x16000001
    001a9128ret
    001a9129nop [rax]
    001a912c
    001a912cloc_1a912c:
    001a912ccmp r8, 257
    001a9133jl 0x1a9194
    001a9135cmp r8, 389
    001a913cjl 0x1a91a0
    001a913eadd rbx, 2
    001a9142cmp rbx, rdi
    001a9145jle 0x1a9150
    001a9147mov eax, 0x201fffb
    001a914cret
    001a914dnop [rax]
    001a9150
    001a9150loc_1a9150:
    001a9150sar rbx, 1
    001a9153movzx rax, [rsi+rbx]
    001a9158lea rax, [rax+rax+1]
    001a915dmov rbx, rax
    001a9160shr rbx, 6
    001a9164or rbx, 1
    001a9168cmp rbx, 5
    001a916cje 0x1a9174
    001a916emov eax, 0x201fffb
    001a9173ret
    001a9174
    001a9174loc_1a9174:
    001a9174mov rbx, rax
    001a9177and rbx, 127
    001a917bmov rax, r8
    001a917eand rax, 63
    001a9182shl rax, 6
    001a9186add rax, -63
    001a918aor rax, rbx
    001a918dor rax, 0x14000001
    001a9193ret
    001a9194
    001a9194loc_1a9194:
    001a9194mov rax, r8
    001a9197or rax, 0x12000001
    001a919dret
    001a919enop
    001a91a0
    001a91a0loc_1a91a0:
    001a91a0mov eax, 0x201fffb
    001a91a5ret
    001a91a6nop
    001a91a8
    001a91a8loc_1a91a8:
    001a91a8add rbx, 2
    001a91accmp rbx, rdi
    001a91afjle 0x1a91b8
    001a91b1mov eax, 0x201fffb
    001a91b6ret
    001a91b7nop
    001a91b8
    001a91b8loc_1a91b8:
    001a91b8mov rax, rbx
    001a91bbsar rax, 1
    001a91bemovzx rax, [rsi+rax]
    001a91c3lea rdx, [rax+rax+1]
    001a91c8mov rax, rdx
    001a91cbshr rax, 6
    001a91cfor rax, 1
    001a91d3cmp rax, 5
    001a91d7je 0x1a91e0
    001a91d9mov eax, 0x201fffb
    001a91deret
    001a91dfnop
    001a91e0
    001a91e0loc_1a91e0:
    001a91e0add rbx, 2
    001a91e4cmp rbx, rdi
    001a91e7jle 0x1a91f0
    001a91e9mov eax, 0x401fffb
    001a91eeret
    001a91efnop
    001a91f0
    001a91f0loc_1a91f0:
    001a91f0sar rbx, 1
    001a91f3movzx rax, [rsi+rbx]
    001a91f8lea rax, [rax+rax+1]
    001a91fdmov rbx, rax
    001a9200shr rbx, 6
    001a9204or rbx, 1
    001a9208cmp rbx, 5
    001a920cje 0x1a9214
    001a920emov eax, 0x401fffb
    001a9213ret
    001a9214
    001a9214loc_1a9214:
    001a9214mov rbx, rax
    001a9217and rbx, 127
    001a921band rdx, 127
    001a921fshl rdx, 6
    001a9223add rdx, -63
    001a9227mov rax, r8
    001a922aand rax, 31
    001a922eshl rax, 12
    001a9232add rax, -4095
    001a9238or rax, rdx
    001a923bor rax, rbx
    001a923eor rax, 0x16000001
    001a9244ret
    001a9245nop [rax]
    001a9248add rbx, 2
    001a924ccmp rbx, rdi
    001a924fjle 0x1a9258
    001a9251mov eax, 0x201fffb
    001a9256ret
    001a9257nop
    001a9258
    001a9258loc_1a9258:
    001a9258mov rax, rbx
    001a925bsar rax, 1
    001a925emovzx rax, [rsi+rax]
    001a9263lea rcx, [rax+rax+1]
    001a9268mov rax, rcx
    001a926bshr rax, 6
    001a926for rax, 1
    001a9273cmp rax, 5
    001a9277je 0x1a9280
    001a9279mov eax, 0x201fffb
    001a927eret
    001a927fnop
    001a9280
    001a9280loc_1a9280:
    001a9280add rbx, 2
    001a9284cmp rbx, rdi
    001a9287jle 0x1a9290
    001a9289mov eax, 0x401fffb
    001a928eret
    001a928fnop
    001a9290
    001a9290loc_1a9290:
    001a9290mov rax, rbx
    001a9293sar rax, 1
    001a9296movzx rax, [rsi+rax]
    001a929blea rdx, [rax+rax+1]
    001a92a0mov rax, rdx
    001a92a3shr rax, 6
    001a92a7or rax, 1
    001a92abcmp rax, 5
    001a92afje 0x1a92b8
    001a92b1mov eax, 0x401fffb
    001a92b6ret
    001a92b7nop
    001a92b8
    001a92b8loc_1a92b8:
    001a92b8add rbx, 2
    001a92bccmp rbx, rdi
    001a92bfjle 0x1a92c8
    001a92c1mov eax, 0x601fffb
    001a92c6ret
    001a92c7nop
    001a92c8
    001a92c8loc_1a92c8:
    001a92c8sar rbx, 1
    001a92cbmovzx rax, [rsi+rbx]
    001a92d0lea rbx, [rax+rax+1]
    001a92d5mov rax, rbx
    001a92d8shr rax, 6
    001a92dcor rax, 1
    001a92e0cmp rax, 5
    001a92e4je 0x1a92ec
    001a92e6mov eax, 0x601fffb
    001a92ebret
    001a92ec
    001a92ecloc_1a92ec:
    001a92ecand rbx, 127
    001a92f0and rdx, 127
    001a92f4shl rdx, 6
    001a92f8add rdx, -63
    001a92fcand rcx, 127
    001a9300shl rcx, 12
    001a9304add rcx, -4095
    001a930bmov rax, r8
    001a930eand rax, 15
    001a9312shl rax, 18
    001a9316add rax, 0xfffffffffffc0001
    001a931cor rax, rcx
    001a931for rax, rdx
    001a9322or rax, rbx
    001a9325or rax, 0x18000001
    001a932bret
    001a932c
    001a932cloc_1a932c:
    001a932ccall caml_ml_array_bound_error
    001a8d90
    001a9331
    001a9331 // align 0x10
    001a9340
    001a9340Stdlib.Bytes.get:
    001a9340sar rbx, 1
    001a9343movzx rax, [rax+rbx]
    001a9348lea rax, [rax+rax+1]
    001a934dret
    001a9340
    001a934e
    001a934e // align 0x10
    001a9350
    001a9350Stdlib.Bytes.set_utf_8_uchar:
    001a9350mov rsi, [rax-8]
    001a9354shr rsi, 10
    001a9358lea rdx, [8*rsi-1]
    001a9360movzx rsi, [rax+rdx]
    001a9365sub rdx, rsi
    001a9368lea rcx, [rdx+rdx-1]
    001a936dcmp rdi, 1
    001a9371jge 0x1a93a8
    001a9373sub r15, 24
    001a9377cmp r15, [r14]
    001a937ajb 0x1a958e
    001a9380
    001a9380loc_1a9380:
    001a9380lea rax, [r15+8]
    001a9384mov [rax-8], 2048
    001a938clea rbx, [rip+0xcce75]
    001a9393mov [rax], rbx
    001a9396lea rbx, [rip+0x190f1b]
    001a939dmov [rax+8], rbx
    001a93a1call caml_raise_exn
    001a93a6nop
    001a93a8
    001a93a8loc_1a93a8:
    001a93a8cmp rdi, 255
    001a93afjg 0x1a93cc
    001a93b1sar rdi, 1
    001a93b4sar rbx, 1
    001a93b7cmp rdx, rbx
    001a93bajbe 0x1a95a7
    001a93c0mov [rax+rbx], dil
    001a93c4mov eax, 3
    001a93c9ret
    001a93ca
    001a93ca 66 90 f.
    001a93cc
    001a93ccloc_1a93cc:
    001a93cccmp rdi, 4095
    001a93d3jg 0x1a9428
    001a93d5mov rsi, rbx
    001a93d8add rsi, 2
    001a93dccmp rsi, rcx
    001a93dfjle 0x1a93e8
    001a93e1mov eax, 1
    001a93e6ret
    001a93e7
    001a93e7 90 .
    001a93e8
    001a93e8loc_1a93e8:
    001a93e8mov rcx, rdi
    001a93ebshr rcx, 6
    001a93efor rcx, 1
    001a93f3or rcx, 385
    001a93fasar rcx, 1
    001a93fdsar rbx, 1
    001a9400cmp rdx, rbx
    001a9403jbe 0x1a95a2
    001a9409mov [rax+rbx], cl
    001a940cand rdi, 127
    001a9410or rdi, 257
    001a9417sar rsi, 1
    001a941asar rdi, 1
    001a941dmov [rax+rsi], dil
    001a9421mov eax, 5
    001a9426ret
    001a9427
    001a9427 90 .
    001a9428
    001a9428loc_1a9428:
    001a9428cmp rdi, 0x1ffff
    001a942fjg 0x1a94ac
    001a9431mov rsi, rbx
    001a9434add rsi, 4
    001a9438cmp rsi, rcx
    001a943bjle 0x1a9444
    001a943dmov eax, 1
    001a9442ret
    001a9443
    001a9443 90 .
    001a9444
    001a9444loc_1a9444:
    001a9444mov rcx, rdi
    001a9447shr rcx, 12
    001a944bor rcx, 1
    001a944for rcx, 449
    001a9456sar rcx, 1
    001a9459mov r8, rbx
    001a945csar r8, 1
    001a945fcmp rdx, r8
    001a9462jbe 0x1a959d
    001a9468mov [rax+r8], cl
    001a946cmov rdx, rdi
    001a946fshr rdx, 6
    001a9473or rdx, 1
    001a9477and rdx, 127
    001a947bor rdx, 257
    001a9482add rbx, 2
    001a9486sar rbx, 1
    001a9489sar rdx, 1
    001a948cmov [rax+rbx], dl
    001a948fand rdi, 127
    001a9493or rdi, 257
    001a949asar rsi, 1
    001a949dsar rdi, 1
    001a94a0mov [rax+rsi], dil
    001a94a4mov eax, 7
    001a94a9ret
    001a94aa
    001a94aa 66 90 f.
    001a94ac
    001a94acloc_1a94ac:
    001a94accmp rdi, 0x21ffff
    001a94b3jg 0x1a9558
    001a94b9mov rsi, rbx
    001a94bcadd rsi, 6
    001a94c0cmp rsi, rcx
    001a94c3jle 0x1a94cc
    001a94c5mov eax, 1
    001a94caret
    001a94cb
    001a94cb 90 .
    001a94cc
    001a94ccloc_1a94cc:
    001a94ccmov rcx, rdi
    001a94cfshr rcx, 18
    001a94d3or rcx, 1
    001a94d7or rcx, 481
    001a94desar rcx, 1
    001a94e1mov r8, rbx
    001a94e4sar r8, 1
    001a94e7cmp rdx, r8
    001a94eajbe 0x1a9598
    001a94f0mov [rax+r8], cl
    001a94f4mov rdx, rdi
    001a94f7shr rdx, 12
    001a94fbor rdx, 1
    001a94ffand rdx, 127
    001a9503or rdx, 257
    001a950amov rcx, rbx
    001a950dadd rcx, 2
    001a9511sar rcx, 1
    001a9514sar rdx, 1
    001a9517mov [rax+rcx], dl
    001a951amov rdx, rdi
    001a951dshr rdx, 6
    001a9521or rdx, 1
    001a9525and rdx, 127
    001a9529or rdx, 257
    001a9530add rbx, 4
    001a9534sar rbx, 1
    001a9537sar rdx, 1
    001a953amov [rax+rbx], dl
    001a953dand rdi, 127
    001a9541or rdi, 257
    001a9548sar rsi, 1
    001a954bsar rdi, 1
    001a954emov [rax+rsi], dil
    001a9552mov eax, 9
    001a9557ret
    001a9558
    001a9558loc_1a9558:
    001a9558sub r15, 24
    001a955ccmp r15, [r14]
    001a955fjb 0x1a9587
    001a9561
    001a9561loc_1a9561:
    001a9561lea rax, [r15+8]
    001a9565mov [rax-8], 2048
    001a956dlea rbx, [rip+0xccc94]
    001a9574mov [rax], rbx
    001a9577lea rbx, [rip+0x190d1a]
    001a957emov [rax+8], rbx
    001a9582call caml_raise_exn
    001a9587
    001a9587loc_1a9587:
    001a9587call caml_call_gc
    001a958cjmp 0x1a9561
    001a958e
    001a958eloc_1a958e:
    001a958ecall caml_call_gc
    001a9593jmp 0x1a9380
    001a9598
    001a9598loc_1a9598:
    001a9598call caml_ml_array_bound_error
    001a959d
    001a959dloc_1a959d:
    001a959dcall caml_ml_array_bound_error
    001a95a2
    001a95a2loc_1a95a2:
    001a95a2call caml_ml_array_bound_error
    001a95a7
    001a95a7loc_1a95a7:
    001a95a7call caml_ml_array_bound_error
    001a9350
    001a95ac
    001a95ac // align 0x10
    001a95b0
    001a95b0Stdlib.Bytes.set:
    001a95b0sar rbx, 1
    001a95b3sar rdi, 1
    001a95b6mov [rax+rbx], dil
    001a95bamov eax, 1
    001a95bfret
    001a95b0
    001a95c0
    001a95c0Stdlib.Bytes.is_valid_utf_8:
    001a95c0mov rbx, rax
    001a95c3cmp r15, [r14]
    001a95c6jbe 0x1a95ef
    001a95c8
    001a95c8loc_1a95c8:
    001a95c8mov edi, 1
    001a95cdmov rax, [rbx-8]
    001a95d1shr rax, 10
    001a95d5lea rax, [8*rax-1]
    001a95ddmovzx rsi, [rbx+rax]
    001a95e2sub rax, rsi
    001a95e5lea rax, [rax+rax-1]
    001a95eajmp 0x1a9600
    001a95ef
    001a95efloc_1a95ef:
    001a95efcall caml_call_gc
    001a95f4jmp 0x1a95c8
    001a95c0
    001a95f6
    001a95f6 // align 0x10
    001a9600
    001a9600Stdlib.Bytes.loop:
    001a9600mov rcx, rax
    001a9603mov rsi, rdi
    001a9606cmp r15, [r14]
    001a9609jbe 0x1a9982
    001a960f
    001a960floc_1a960f:
    001a960fcmp rsi, rcx
    001a9612jle 0x1a961c
    001a9614mov eax, 3
    001a9619ret
    001a961anop
    001a961c
    001a961cloc_1a961c:
    001a961cmov rax, rsi
    001a961fsar rax, 1
    001a9622movzx rax, [rbx+rax]
    001a9627lea rax, [rax+rax+1]
    001a962ccmp rax, 449
    001a9632jl 0x1a983c
    001a9638cmp rax, 475
    001a963ejl 0x1a97d0
    001a9644cmp rax, 491
    001a964ajge 0x1a989c
    001a9650add rax, -474
    001a9656sar rax, 1
    001a9659lea rdx, [rip+0x84260]
    001a9660movsxd rax, [rdx+4*rax]
    001a9664add rdx, rax
    001a9667jmp rdx
    001a9669nop [rax]
    001a966cmov rdi, rsi
    001a966fadd rdi, 4
    001a9673cmp rdi, rcx
    001a9676jg 0x1a96c4
    001a9678add rsi, 2
    001a967csar rsi, 1
    001a967fmovzx rax, [rbx+rsi]
    001a9684lea rax, [rax+rax+1]
    001a9689shr rax, 5
    001a968dor rax, 1
    001a9691cmp rax, 9
    001a9695jne 0x1a96c4
    001a9697mov rax, rdi
    001a969asar rax, 1
    001a969dmovzx rax, [rbx+rax]
    001a96a2lea rax, [rax+rax+1]
    001a96a7shr rax, 6
    001a96abor rax, 1
    001a96afcmp rax, 5
    001a96b3jne 0x1a96c4
    001a96b5add rdi, 2
    001a96b9mov rax, rcx
    001a96bcjmp 0x1a9600
    001a96c1nop [rax]
    001a96c4
    001a96c4loc_1a96c4:
    001a96c4mov eax, 1
    001a96c9ret
    001a96canop
    001a96ccmov rdi, rsi
    001a96cfadd rdi, 6
    001a96d3cmp rdi, rcx
    001a96d6jg 0x1a9748
    001a96d8mov rax, rsi
    001a96dbadd rax, 2
    001a96dfsar rax, 1
    001a96e2movzx rax, [rbx+rax]
    001a96e7lea rax, [rax+rax+1]
    001a96eccmp rax, 289
    001a96f2jl 0x1a9748
    001a96f4cmp rax, 383
    001a96fajg 0x1a9748
    001a96fcadd rsi, 4
    001a9700sar rsi, 1
    001a9703movzx rax, [rbx+rsi]
    001a9708lea rax, [rax+rax+1]
    001a970dshr rax, 6
    001a9711or rax, 1
    001a9715cmp rax, 5
    001a9719jne 0x1a9748
    001a971bmov rax, rdi
    001a971esar rax, 1
    001a9721movzx rax, [rbx+rax]
    001a9726lea rax, [rax+rax+1]
    001a972bshr rax, 6
    001a972for rax, 1
    001a9733cmp rax, 5
    001a9737jne 0x1a9748
    001a9739add rdi, 2
    001a973dmov rax, rcx
    001a9740jmp 0x1a9600
    001a9745nop [rax]
    001a9748
    001a9748loc_1a9748:
    001a9748mov eax, 1
    001a974dret
    001a974enop
    001a9750mov rdi, rsi
    001a9753add rdi, 6
    001a9757cmp rdi, rcx
    001a975ajg 0x1a97c8
    001a975cmov rax, rsi
    001a975fadd rax, 2
    001a9763sar rax, 1
    001a9766movzx rax, [rbx+rax]
    001a976blea rax, [rax+rax+1]
    001a9770shr rax, 4
    001a9774or rax, 1
    001a9778cmp rax, 17
    001a977cjne 0x1a97c8
    001a977eadd rsi, 4
    001a9782sar rsi, 1
    001a9785movzx rax, [rbx+rsi]
    001a978alea rax, [rax+rax+1]
    001a978fshr rax, 6
    001a9793or rax, 1
    001a9797cmp rax, 5
    001a979bjne 0x1a97c8
    001a979dmov rax, rdi
    001a97a0sar rax, 1
    001a97a3movzx rax, [rbx+rax]
    001a97a8lea rax, [rax+rax+1]
    001a97adshr rax, 6
    001a97b1or rax, 1
    001a97b5cmp rax, 5
    001a97b9jne 0x1a97c8
    001a97bbadd rdi, 2
    001a97bfmov rax, rcx
    001a97c2jmp 0x1a9600
    001a97c7nop
    001a97c8
    001a97c8loc_1a97c8:
    001a97c8mov eax, 1
    001a97cdret
    001a97cenop
    001a97d0
    001a97d0loc_1a97d0:
    001a97d0cmp rax, 451
    001a97d6jge 0x1a98a4
    001a97dcmov rdi, rsi
    001a97dfadd rdi, 4
    001a97e3cmp rdi, rcx
    001a97e6jg 0x1a9834
    001a97e8add rsi, 2
    001a97ecsar rsi, 1
    001a97efmovzx rax, [rbx+rsi]
    001a97f4lea rax, [rax+rax+1]
    001a97f9shr rax, 5
    001a97fdor rax, 1
    001a9801cmp rax, 11
    001a9805jne 0x1a9834
    001a9807mov rax, rdi
    001a980asar rax, 1
    001a980dmovzx rax, [rbx+rax]
    001a9812lea rax, [rax+rax+1]
    001a9817shr rax, 6
    001a981bor rax, 1
    001a981fcmp rax, 5
    001a9823jne 0x1a9834
    001a9825add rdi, 2
    001a9829mov rax, rcx
    001a982cjmp 0x1a9600
    001a9831nop [rax]
    001a9834
    001a9834loc_1a9834:
    001a9834mov eax, 1
    001a9839ret
    001a983anop
    001a983c
    001a983cloc_1a983c:
    001a983ccmp rax, 257
    001a9842jl 0x1a988c
    001a9844cmp rax, 389
    001a984ajl 0x1a989c
    001a984cmov rdi, rsi
    001a984fadd rdi, 2
    001a9853cmp rdi, rcx
    001a9856jg 0x1a9884
    001a9858mov rax, rdi
    001a985bsar rax, 1
    001a985emovzx rax, [rbx+rax]
    001a9863lea rax, [rax+rax+1]
    001a9868shr rax, 6
    001a986cor rax, 1
    001a9870cmp rax, 5
    001a9874jne 0x1a9884
    001a9876add rdi, 2
    001a987amov rax, rcx
    001a987djmp 0x1a9600
    001a9882nop
    001a9884
    001a9884loc_1a9884:
    001a9884mov eax, 1
    001a9889ret
    001a988anop
    001a988c
    001a988cloc_1a988c:
    001a988cmov rdi, rsi
    001a988fadd rdi, 2
    001a9893mov rax, rcx
    001a9896jmp 0x1a9600
    001a989bnop
    001a989c
    001a989cloc_1a989c:
    001a989cmov eax, 1
    001a98a1ret
    001a98a2nop
    001a98a4
    001a98a4loc_1a98a4:
    001a98a4mov rdi, rsi
    001a98a7add rdi, 4
    001a98abcmp rdi, rcx
    001a98aejg 0x1a98fc
    001a98b0add rsi, 2
    001a98b4sar rsi, 1
    001a98b7movzx rax, [rbx+rsi]
    001a98bclea rax, [rax+rax+1]
    001a98c1shr rax, 6
    001a98c5or rax, 1
    001a98c9cmp rax, 5
    001a98cdjne 0x1a98fc
    001a98cfmov rax, rdi
    001a98d2sar rax, 1
    001a98d5movzx rax, [rbx+rax]
    001a98dalea rax, [rax+rax+1]
    001a98dfshr rax, 6
    001a98e3or rax, 1
    001a98e7cmp rax, 5
    001a98ebjne 0x1a98fc
    001a98edadd rdi, 2
    001a98f1mov rax, rcx
    001a98f4jmp 0x1a9600
    001a98f9nop [rax]
    001a98fc
    001a98fcloc_1a98fc:
    001a98fcmov eax, 1
    001a9901ret
    001a9902nop
    001a9904mov rdi, rsi
    001a9907add rdi, 6
    001a990bcmp rdi, rcx
    001a990ejg 0x1a997c
    001a9910mov rax, rsi
    001a9913add rax, 2
    001a9917sar rax, 1
    001a991amovzx rax, [rbx+rax]
    001a991flea rax, [rax+rax+1]
    001a9924shr rax, 6
    001a9928or rax, 1
    001a992ccmp rax, 5
    001a9930jne 0x1a997c
    001a9932add rsi, 4
    001a9936sar rsi, 1
    001a9939movzx rax, [rbx+rsi]
    001a993elea rax, [rax+rax+1]
    001a9943shr rax, 6
    001a9947or rax, 1
    001a994bcmp rax, 5
    001a994fjne 0x1a997c
    001a9951mov rax, rdi
    001a9954sar rax, 1
    001a9957movzx rax, [rbx+rax]
    001a995clea rax, [rax+rax+1]
    001a9961shr rax, 6
    001a9965or rax, 1
    001a9969cmp rax, 5
    001a996djne 0x1a997c
    001a996fadd rdi, 2
    001a9973mov rax, rcx
    001a9976jmp 0x1a9600
    001a997bnop
    001a997c
    001a997cloc_1a997c:
    001a997cmov eax, 1
    001a9981ret
    001a9982
    001a9982loc_1a9982:
    001a9982call caml_call_gc
    001a9987jmp 0x1a960f
    001a9600
    001a998c
    001a998c // align 0x10
    001a9990
    001a9990Stdlib.Bytes.get:
    001a9990sar rbx, 1
    001a9993movzx rax, [rax+rbx]
    001a9998lea rax, [rax+rax+1]
    001a999dret
    001a9990
    001a999e
    001a999e // align 0x10
    001a99a0
    001a99a0Stdlib.Bytes.get_utf_16be_uchar:
    001a99a0mov rdi, rax
    001a99a3mov rax, [rdi-8]
    001a99a7shr rax, 10
    001a99ablea rax, [8*rax-1]
    001a99b3movzx rsi, [rdi+rax]
    001a99b8sub rax, rsi
    001a99bblea rsi, [rax+rax-1]
    001a99c0cmp rbx, 1
    001a99c4jl 0x1a9ab0
    001a99cacmp rbx, rsi
    001a99cdjg 0x1a9ab0
    001a99d3cmp rbx, rsi
    001a99d6jne 0x1a99e0
    001a99d8mov eax, 0x201fffb
    001a99ddret
    001a99de
    001a99de 66 90 f.
    001a99e0
    001a99e0loc_1a99e0:
    001a99e0mov rax, rbx
    001a99e3sar rax, 1
    001a99e6movzx rax, [rdi+rax]
    001a99ebxchg al, ah
    001a99edmovzx rax, ax
    001a99f1lea rdx, [rax+rax+1]
    001a99f6cmp rdx, 0x1b001
    001a99fdjl 0x1a9aa4
    001a9a03cmp rdx, 0x1bfff
    001a9a0ajg 0x1a9aa4
    001a9a10cmp rdx, 0x1b7ff
    001a9a17jle 0x1a9a20
    001a9a19mov eax, 0x401fffb
    001a9a1eret
    001a9a1f
    001a9a1f 90 .
    001a9a20
    001a9a20loc_1a9a20:
    001a9a20mov rax, rbx
    001a9a23add rax, 6
    001a9a27cmp rax, rsi
    001a9a2ajle 0x1a9a48
    001a9a2cmov rax, rsi
    001a9a2fsub rax, rbx
    001a9a32add rax, 3
    001a9a36shl rax, 24
    001a9a3aadd rax, 0xffffffffff000001
    001a9a40or rax, 0x1fffb
    001a9a46ret
    001a9a47
    001a9a47 90 .
    001a9a48
    001a9a48loc_1a9a48:
    001a9a48add rbx, 4
    001a9a4csar rbx, 1
    001a9a4fmovzx rax, [rdi+rbx]
    001a9a54xchg al, ah
    001a9a56movzx rax, ax
    001a9a5alea rax, [rax+rax+1]
    001a9a5fcmp rax, 0x1b801
    001a9a65jl 0x1a9a9c
    001a9a67cmp rax, 0x1bfff
    001a9a6djg 0x1a9a9c
    001a9a6fmov rbx, rax
    001a9a72and rbx, 2047
    001a9a79mov rax, rdx
    001a9a7cand rax, 2047
    001a9a82shl rax, 10
    001a9a86add rax, -1023
    001a9a8cor rax, rbx
    001a9a8fadd rax, 0x20000
    001a9a95or rax, 0x18000001
    001a9a9bret
    001a9a9c
    001a9a9cloc_1a9a9c:
    001a9a9cmov eax, 0x401fffb
    001a9aa1ret
    001a9aa2
    001a9aa2 66 90 f.
    001a9aa4
    001a9aa4loc_1a9aa4:
    001a9aa4mov rax, rdx
    001a9aa7or rax, 0x14000001
    001a9aadret
    001a9aae
    001a9aae 66 90 f.
    001a9ab0
    001a9ab0loc_1a9ab0:
    001a9ab0lea rax, [rip+0x1907c1]
    001a9ab7jmp 0x195ab0
    001a99a0
    001a9abc
    001a9abc // align 0x10
    001a9ac0
    001a9ac0Stdlib.Bytes.set_utf_16be_uchar:
    001a9ac0mov rsi, rax
    001a9ac3mov rax, [rsi-8]
    001a9ac7shr rax, 10
    001a9acblea rax, [8*rax-1]
    001a9ad3movzx rdx, [rsi+rax]
    001a9ad8sub rax, rdx
    001a9adblea rdx, [rax+rax-1]
    001a9ae0cmp rbx, 1
    001a9ae4jl 0x1a9c08
    001a9aeacmp rbx, rdx
    001a9aedjg 0x1a9c08
    001a9af3cmp rdi, 1
    001a9af7jge 0x1a9b2c
    001a9af9sub r15, 24
    001a9afdcmp r15, [r14]
    001a9b00jb 0x1a9c1b
    001a9b06
    001a9b06loc_1a9b06:
    001a9b06lea rax, [r15+8]
    001a9b0amov [rax-8], 2048
    001a9b12lea rbx, [rip+0xcc6ef]
    001a9b19mov [rax], rbx
    001a9b1clea rbx, [rip+0x190735]
    001a9b23mov [rax+8], rbx
    001a9b27call caml_raise_exn
    001a9b2c
    001a9b2cloc_1a9b2c:
    001a9b2ccmp rdi, 0x1ffff
    001a9b33jg 0x1a9b64
    001a9b35mov rax, rbx
    001a9b38add rax, 2
    001a9b3ccmp rax, rdx
    001a9b3fjle 0x1a9b48
    001a9b41mov eax, 1
    001a9b46ret
    001a9b47
    001a9b47 90 .
    001a9b48
    001a9b48loc_1a9b48:
    001a9b48mov rax, rdi
    001a9b4bsar rax, 1
    001a9b4exchg al, ah
    001a9b50movzx rax, ax
    001a9b54sar rbx, 1
    001a9b57mov [rsi+rbx], ax
    001a9b5bmov eax, 5
    001a9b60ret
    001a9b61
    001a9b61 0f 1f 00 ...
    001a9b64
    001a9b64loc_1a9b64:
    001a9b64cmp rdi, 0x21ffff
    001a9b6bjg 0x1a9bd8
    001a9b6dmov rax, rbx
    001a9b70add rax, 6
    001a9b74cmp rax, rdx
    001a9b77jle 0x1a9b80
    001a9b79mov eax, 1
    001a9b7eret
    001a9b7f
    001a9b7f 90 .
    001a9b80
    001a9b80loc_1a9b80:
    001a9b80add rdi, 0xfffffffffffe0000
    001a9b87mov rax, rdi
    001a9b8ashr rax, 10
    001a9b8eor rax, 1
    001a9b92or rax, 0x1b001
    001a9b98and rdi, 2047
    001a9b9for rdi, 0x1b801
    001a9ba6sar rax, 1
    001a9ba9xchg al, ah
    001a9babmovzx rax, ax
    001a9bafmov rdx, rbx
    001a9bb2sar rdx, 1
    001a9bb5mov [rsi+rdx], ax
    001a9bb9add rbx, 4
    001a9bbdmov rax, rdi
    001a9bc0sar rax, 1
    001a9bc3xchg al, ah
    001a9bc5movzx rax, ax
    001a9bc9sar rbx, 1
    001a9bccmov [rsi+rbx], ax
    001a9bd0mov eax, 9
    001a9bd5ret
    001a9bd6
    001a9bd6 66 90 f.
    001a9bd8
    001a9bd8loc_1a9bd8:
    001a9bd8sub r15, 24
    001a9bdccmp r15, [r14]
    001a9bdfjb 0x1a9c14
    001a9be1
    001a9be1loc_1a9be1:
    001a9be1lea rax, [r15+8]
    001a9be5mov [rax-8], 2048
    001a9bedlea rbx, [rip+0xcc614]
    001a9bf4mov [rax], rbx
    001a9bf7lea rbx, [rip+0x190622]
    001a9bfemov [rax+8], rbx
    001a9c02call caml_raise_exn
    001a9c07nop
    001a9c08
    001a9c08loc_1a9c08:
    001a9c08lea rax, [rip+0x190669]
    001a9c0fjmp 0x195ab0
    001a9c14
    001a9c14loc_1a9c14:
    001a9c14call caml_call_gc
    001a9c19jmp 0x1a9be1
    001a9c1b
    001a9c1bloc_1a9c1b:
    001a9c1bcall caml_call_gc
    001a9c20jmp 0x1a9b06
    001a9ac0