File hevea_f46f610a6b0078f4aa208dda361f21de574cc56ad64b32889301afc466d33979.elf
Function:
    0020c8d0
    0020c8d0caml_deserialize_sint_2:
    0020c8d0sub rsp, 8
    0020c8d4mov rax, [rip+0x69709]
    0020c8dbmov rax, [rax]
    0020c8dftest rax, rax
    0020c8e2je 0x20c910
    0020c8e4mov rcx, [rax+376]
    0020c8ebtest rcx, rcx
    0020c8eeje 0x20c915
    0020c8f0mov rdx, [rcx]
    0020c8f3movzx eax, [rdx]
    0020c8f6add rdx, 2
    0020c8famov [rcx], rdx
    0020c8fdadd rsp, 8
    0020c901rol ax, 8
    0020c905cwde
    0020c906ret
    0020c907db 0xc0
    0020c908db 0x08
    0020c909cwde
    0020c90aret
    0020c90b
    0020c90b 0f 1f 44 00 00 ..D..
    0020c910
    0020c910loc_20c910:
    0020c910call caml_bad_caml_state
    0020c915
    0020c915loc_20c915:
    0020c915lea rdi, [rip+0x23e94]
    0020c91cxor eax, eax
    0020c91ecall caml_fatal_error
    0020c8d0
    0020c923
    0020c923 // align 0x10
    0020c930
    0020c930caml_deserialize_uint_4:
    0020c930sub rsp, 8
    0020c934mov rax, [rip+0x696a9]
    0020c93bmov rax, [rax]
    0020c93ftest rax, rax
    0020c942je 0x20c970
    0020c944mov rcx, [rax+376]
    0020c94btest rcx, rcx
    0020c94eje 0x20c975
    0020c950mov rdx, [rcx]
    0020c953mov eax, [rdx]
    0020c955add rdx, 4
    0020c959mov [rcx], rdx
    0020c95cadd rsp, 8
    0020c960bswap eax
    0020c962ret
    0020c963db 0x08
    0020c964bswap eax
    0020c966ret
    0020c967
    0020c967 66 0f 1f 84 00 00 00 00 00 f........
    0020c970
    0020c970loc_20c970:
    0020c970call caml_bad_caml_state
    0020c975
    0020c975loc_20c975:
    0020c975lea rdi, [rip+0x23e34]
    0020c97cxor eax, eax
    0020c97ecall caml_fatal_error
    0020c930
    0020c983
    0020c983 // align 0x10
    0020c990
    0020c990caml_deserialize_sint_4:
    0020c990sub rsp, 8
    0020c994mov rax, [rip+0x69649]
    0020c99bmov rax, [rax]
    0020c99ftest rax, rax
    0020c9a2je 0x20c9d0
    0020c9a4mov rcx, [rax+376]
    0020c9abtest rcx, rcx
    0020c9aeje 0x20c9d5
    0020c9b0mov rdx, [rcx]
    0020c9b3mov eax, [rdx]
    0020c9b5add rdx, 4
    0020c9b9mov [rcx], rdx
    0020c9bcadd rsp, 8
    0020c9c0bswap eax
    0020c9c2ret
    0020c9c3db 0x08
    0020c9c4bswap eax
    0020c9c6ret
    0020c9c7
    0020c9c7 66 0f 1f 84 00 00 00 00 00 f........
    0020c9d0
    0020c9d0loc_20c9d0:
    0020c9d0call caml_bad_caml_state
    0020c9d5
    0020c9d5loc_20c9d5:
    0020c9d5lea rdi, [rip+0x23dd4]
    0020c9dcxor eax, eax
    0020c9decall caml_fatal_error
    0020c990
    0020c9e3
    0020c9e3 // align 0x10
    0020c9f0
    0020c9f0caml_deserialize_uint_8:
    0020c9f0sub rsp, 8
    0020c9f4mov rax, [rip+0x695e9]
    0020c9fbmov rax, [rax]
    0020c9fftest rax, rax
    0020ca02je 0x20ca30
    0020ca04mov rcx, [rax+376]
    0020ca0btest rcx, rcx
    0020ca0eje 0x20ca35
    0020ca10mov rdx, [rcx]
    0020ca13mov rax, [rdx]
    0020ca16add rdx, 8
    0020ca1amov [rcx], rdx
    0020ca1dadd rsp, 8
    0020ca21bswap rax
    0020ca24ret
    0020ca25db 0x48
    0020ca26bswap eax
    0020ca28ret
    0020ca29
    0020ca29 0f 1f 80 00 00 00 00 .......
    0020ca30
    0020ca30loc_20ca30:
    0020ca30call caml_bad_caml_state
    0020ca35
    0020ca35loc_20ca35:
    0020ca35lea rdi, [rip+0x23d74]
    0020ca3cxor eax, eax
    0020ca3ecall caml_fatal_error
    0020c9f0
    0020ca43
    0020ca43 // align 0x10
    0020ca50
    0020ca50caml_deserialize_sint_8:
    0020ca50sub rsp, 8
    0020ca54mov rax, [rip+0x69589]
    0020ca5bmov rax, [rax]
    0020ca5ftest rax, rax
    0020ca62je 0x20ca90
    0020ca64mov rcx, [rax+376]
    0020ca6btest rcx, rcx
    0020ca6eje 0x20ca95
    0020ca70mov rdx, [rcx]
    0020ca73mov rax, [rdx]
    0020ca76add rdx, 8
    0020ca7amov [rcx], rdx
    0020ca7dadd rsp, 8
    0020ca81bswap rax
    0020ca84ret
    0020ca85db 0x48
    0020ca86bswap eax
    0020ca88ret
    0020ca89
    0020ca89 0f 1f 80 00 00 00 00 .......
    0020ca90
    0020ca90loc_20ca90:
    0020ca90call caml_bad_caml_state
    0020ca95
    0020ca95loc_20ca95:
    0020ca95lea rdi, [rip+0x23d14]
    0020ca9cxor eax, eax
    0020ca9ecall caml_fatal_error
    0020ca50
    0020caa3
    0020caa3 // align 0x10
    0020cab0
    0020cab0caml_deserialize_float_4:
    0020cab0sub rsp, 8
    0020cab4mov rax, [rip+0x69529]
    0020cabbmov rax, [rax]
    0020cabftest rax, rax
    0020cac2je 0x20caf0
    0020cac4mov rdx, [rax+376]
    0020cacbtest rdx, rdx
    0020caceje 0x20caf5
    0020cad0mov rax, [rdx]
    0020cad3mov ecx, [rax]
    0020cad5add rax, 4
    0020cad9mov [rdx], rax
    0020cadcadd rsp, 8
    0020cae0bswap ecx
    0020cae2movd x0, ecx
    0020cae6ret
    0020cae7db 0x0f
    0020cae8outsb dl, [rsi]
    0020cae9db 0xc1
    0020caearet
    0020caeb
    0020caeb 0f 1f 44 00 00 ..D..
    0020caf0
    0020caf0loc_20caf0:
    0020caf0call caml_bad_caml_state
    0020caf5
    0020caf5loc_20caf5:
    0020caf5lea rdi, [rip+0x23cb4]
    0020cafcxor eax, eax
    0020cafecall caml_fatal_error
    0020cab0
    0020cb03
    0020cb03 // align 0x10
    0020cb10
    0020cb10caml_deserialize_float_8:
    0020cb10sub rsp, 8
    0020cb14mov rax, [rip+0x694c9]
    0020cb1bmov rax, [rax]
    0020cb1ftest rax, rax
    0020cb22je 0x20cb50
    0020cb24mov rdx, [rax+376]
    0020cb2btest rdx, rdx
    0020cb2eje 0x20cb55
    0020cb30mov rax, [rdx]
    0020cb33movq x0, [rax]
    0020cb37add rax, 8
    0020cb3bmov [rdx], rax
    0020cb3eadd rsp, 8
    0020cb42ret
    0020cb43db 0x83
    0020cb44db 0xc4
    0020cb45or bl, al
    0020cb47
    0020cb47 66 0f 1f 84 00 00 00 00 00 f........
    0020cb50
    0020cb50loc_20cb50:
    0020cb50call caml_bad_caml_state
    0020cb55
    0020cb55loc_20cb55:
    0020cb55lea rdi, [rip+0x23c54]
    0020cb5cxor eax, eax
    0020cb5ecall caml_fatal_error
    0020cb10
    0020cb63
    0020cb63 // align 0x10
    0020cb70
    0020cb70caml_deserialize_block_1:
    0020cb70push rbp
    0020cb71push rbx
    0020cb72sub rsp, 8
    0020cb76mov rax, [rip+0x69467]
    0020cb7dmov rax, [rax]
    0020cb81test rax, rax
    0020cb84je 0x20cbb0
    0020cb86mov rbp, [rax+376]
    0020cb8dtest rbp, rbp
    0020cb90je 0x20cbb5
    0020cb92mov rbx, rsi
    0020cb95mov rsi, [rbp]
    0020cb99mov rdx, rbx
    0020cb9ccall fn_f47d0
    0020cba1add [rbp], rbx
    0020cba5add rsp, 8
    0020cba9pop rbx
    0020cbaapop rbp
    0020cbabret
    0020cbaccall caml_bad_caml_state
    0020cbb1lea rdi, [rip+0x23bf4]
    0020cbb8xor eax, eax
    0020cbbacall caml_fatal_error
    0020cbbfdb 0x6d
    0020cbc0loop 0x20cbc2
    0020cbc2db 0x00
    0020cb70
    0020cbc3
    0020cbc3 // align 0x20
    0020cbe0
    0020cbe0caml_deserialize_block_2:
    0020cbe0sub rsp, 8
    0020cbe4mov rax, [rip+0x693f9]
    0020cbebmov rax, [rax]
    0020cbeftest rax, rax
    0020cbf2je 0x20cc48
    0020cbf4mov r10, [rax+376]
    0020cbfbtest r10, r10
    0020cbfeje 0x20cc4d
    0020cc00mov r9, [r10]
    0020cc03test rsi, rsi
    0020cc06jle 0x20cc3d
    0020cc08add rsi, rsi
    0020cc0bmov rax, r9
    0020cc0elea r8, [r9+rsi]
    0020cc12nop [rax+rax]
    0020cc1cmovzx edx, [rax]
    0020cc1fmovzx ecx, [rax+1]
    0020cc23add rax, 2
    0020cc27add rdi, 2
    0020cc2bmov [rdi-2], cl
    0020cc2emov [rdi-1], dl
    0020cc31cmp rax, r8
    0020cc34jne 0x20cc20
    0020cc36add r9, rsi
    0020cc39mov [r10], r9
    0020cc3cadd rsp, 8
    0020cc40ret
    0020cc41db 0x83
    0020cc42db 0xc4
    0020cc43or bl, al
    0020cc45
    0020cc45 0f 1f 00 ...
    0020cc48
    0020cc48loc_20cc48:
    0020cc48call caml_bad_caml_state
    0020cc4d
    0020cc4dloc_20cc4d:
    0020cc4dlea rdi, [rip+0x23b5c]
    0020cc54xor eax, eax
    0020cc56call caml_fatal_error
    0020cbe0
    0020cc5b
    0020cc5b // align 0x40
    0020cc80
    0020cc80caml_deserialize_block_4:
    0020cc80sub rsp, 8
    0020cc84mov rax, [rip+0x69359]
    0020cc8bmov rax, [rax]
    0020cc8ftest rax, rax
    0020cc92je 0x20cd00
    0020cc94mov r9, [rax+376]
    0020cc9btest r9, r9
    0020cc9eje 0x20cd05
    0020cca0mov r8, rdi
    0020cca3mov rcx, [r9]
    0020cca6mov rdi, rsi
    0020cca9test rsi, rsi
    0020ccacjle 0x20ccf3
    0020ccaexor edx, edx
    0020ccb0nop [rax+rax]
    0020ccbbnop
    0020ccbcmovzx eax, [rcx+4*rdx]
    0020ccc0
    0020ccc0loc_20ccc0:
    0020ccc0movzx esi, [rcx+4*rdx+1]
    0020ccc5shl eax, 8
    0020ccc8or eax, esi
    0020cccamovzx esi, [rcx+4*rdx+2]
    0020cccfshl eax, 8
    0020ccd2or eax, esi
    0020ccd4movzx esi, [rcx+4*rdx+3]
    0020ccd9shl eax, 8
    0020ccdcor eax, esi
    0020ccdemov [r8+4*rdx], eax
    0020cce2add rdx, 1
    0020cce6cmp rdi, rdx
    0020cce9jne 0x20ccc0
    0020cceblea rcx, [rcx+4*rdi]
    0020ccefmov [r9], rcx
    0020ccf2add rsp, 8
    0020ccf6ret
    0020ccf7db 0x83
    0020ccf8db 0xc4
    0020ccf9or bl, al
    0020ccfb
    0020ccfb 0f 1f 44 00 00 ..D..
    0020cd00
    0020cd00loc_20cd00:
    0020cd00call caml_bad_caml_state
    0020cd05
    0020cd05loc_20cd05:
    0020cd05lea rdi, [rip+0x23aa4]
    0020cd0cxor eax, eax
    0020cd0ecall caml_fatal_error
    0020cc80
    0020cd13
    0020cd13 // align 0x10
    0020cd20
    0020cd20caml_deserialize_block_8:
    0020cd20sub rsp, 8
    0020cd24mov rax, [rip+0x692b9]
    0020cd2bmov rax, [rax]
    0020cd2ftest rax, rax
    0020cd32je 0x20cdd8
    0020cd38mov r9, [rax+376]
    0020cd3ftest r9, r9
    0020cd42je 0x20cddd
    0020cd48mov rcx, rdi
    0020cd4bmov r8, [r9]
    0020cd4emov rdi, rsi
    0020cd51test rsi, rsi
    0020cd54jle 0x20cdcd
    0020cd56mov rdx, r8
    0020cd59nop [rax]
    0020cd5cmovzx eax, [rdx]
    0020cd5fmovzx r10l, [rdx+1]
    0020cd64add rcx, 8
    0020cd68add rdx, 8
    0020cd6cshl rax, 8
    0020cd70or rax, r10
    0020cd73movzx r10l, [rdx-6]
    0020cd78shl rax, 8
    0020cd7cor rax, r10
    0020cd7fmovzx r10l, [rdx-5]
    0020cd84shl rax, 8
    0020cd88or rax, r10
    0020cd8bmovzx r10l, [rdx-4]
    0020cd90shl rax, 8
    0020cd94or rax, r10
    0020cd97movzx r10l, [rdx-3]
    0020cd9cshl rax, 8
    0020cda0or rax, r10
    0020cda3movzx r10l, [rdx-2]
    0020cda8shl rax, 8
    0020cdacor rax, r10
    0020cdafmovzx r10l, [rdx-1]
    0020cdb4shl rax, 8
    0020cdb8or rax, r10
    0020cdbbmov [rcx-8], rax
    0020cdbfsub rsi, 1
    0020cdc3jne 0x20cd60
    0020cdc5lea r8, [r8+8*rdi]
    0020cdc9mov [r9], r8
    0020cdccadd rsp, 8
    0020cdd0ret
    0020cdd1db 0x83
    0020cdd2db 0xc4
    0020cdd3or bl, al
    0020cdd5
    0020cdd5 0f 1f 00 ...
    0020cdd8
    0020cdd8loc_20cdd8:
    0020cdd8call caml_bad_caml_state
    0020cddd
    0020cdddloc_20cddd:
    0020cdddlea rdi, [rip+0x239cc]
    0020cde4xor eax, eax
    0020cde6call caml_fatal_error
    0020cd20
    0020cdeb
    0020cdeb // align 0x10
    0020cdf0
    0020cdf0caml_deserialize_block_float_8:
    0020cdf0push rbp
    0020cdf1push rbx
    0020cdf2sub rsp, 8
    0020cdf6mov rax, [rip+0x691e7]
    0020cdfdmov rax, [rax]
    0020ce01test rax, rax
    0020ce04je 0x20ce38
    0020ce06mov rbp, [rax+376]
    0020ce0dtest rbp, rbp
    0020ce10je 0x20ce3d
    0020ce12lea rbx, [8*rsi]
    0020ce1amov rsi, [rbp]
    0020ce1emov rdx, rbx
    0020ce21call fn_f47d0
    0020ce26add [rbp], rbx
    0020ce2aadd rsp, 8
    0020ce2epop rbx
    0020ce2fpop rbp
    0020ce30ret
    0020ce31db 0x08
    0020ce32pop rbx
    0020ce33pop rbp
    0020ce34ret
    0020ce35
    0020ce35 0f 1f 00 ...
    0020ce38
    0020ce38loc_20ce38:
    0020ce38call caml_bad_caml_state
    0020ce3d
    0020ce3dloc_20ce3d:
    0020ce3dlea rdi, [rip+0x2396c]
    0020ce44xor eax, eax
    0020ce46call caml_fatal_error
    0020cdf0
    0020ce4b
    0020ce4b // align 0x10
    0020ce50
    0020ce50caml_deserialize_error:
    0020ce50mov rax, [rip+0x6918d]
    0020ce57push rbx
    0020ce58mov rax, [rax]
    0020ce5ctest rax, rax
    0020ce5fje 0x20ce81
    0020ce61mov rbx, rdi
    0020ce64mov rdi, [rax+376]
    0020ce6btest rdi, rdi
    0020ce6eje 0x20ce86
    0020ce70call fn_20ad20
    0020ce75mov rdi, rbx
    0020ce78call caml_failwith
    0020ce7dcall caml_bad_caml_state
    0020ce82lea rdi, [rip+0x23923]
    0020ce89xor eax, eax
    0020ce8bcall caml_fatal_error
    0020ce90db 0x9c
    0020ce91fild [rax]
    0020ce93db 0x00
    0020ce50
    0020ce94
    0020ce94 // align 0x10
    0020cea0
    0020cea0fn_20cea0:
    0020cea0mov [rcx], 1
    0020cea6movzx eax, [rdi]
    0020cea9cmp al, 45
    0020ceabje 0x20cef0
    0020ceadcmp al, 43
    0020ceafsete al
    0020ceb2movzx eax, al
    0020ceb5add rax, rdi
    0020ceb8
    0020ceb8loc_20ceb8:
    0020ceb8mov [rsi], 10
    0020cebemov [rdx], 1
    0020cec4cmp [rax], 48
    0020cec7je 0x20ced0
    0020cec9
    0020cec9loc_20cec9:
    0020cec9ret
    0020cecanop [rax+rax]
    0020ced0
    0020ced0loc_20ced0:
    0020ced0movzx edi, [rax+1]
    0020ced4lea ecx, [rdi-66]
    0020ced7cmp cl, 54
    0020cedaja 0x20cec9
    0020cedclea rdi, [rip+0x24bad]
    0020cee3movzx ecx, cl
    0020cee6movsxd rcx, [rdi+4*rcx]
    0020ceeaadd rcx, rdi
    0020ceedjmp rcx
    0020cef0
    0020cef0loc_20cef0:
    0020cef0mov [rcx], -1
    0020cef6lea rax, [rdi+1]
    0020cefajmp 0x20ceb8
    0020cefcnop [rax]
    0020cf00mov [rsi], 16
    0020cf06add rax, 2
    0020cf0amov [rdx], 0
    0020cf10ret
    0020cf11nop [rax]
    0020cf18mov [rdx], 0
    0020cf1eadd rax, 2
    0020cf22ret
    0020cf23nop [rax+rax]
    0020cf28mov [rsi], 8
    0020cf2eadd rax, 2
    0020cf32mov [rdx], 0
    0020cf38ret
    0020cf39nop [rax]
    0020cf40mov [rsi], 2
    0020cf46add rax, 2
    0020cf4amov [rdx], 0
    0020cf50ret
    0020cea0
    0020cf51
    0020cf51 // align 0x10
    0020cf60
    0020cf60fn_20cf60:
    0020cf60mov eax, [rsi+8]
    0020cf63cmp [rdi+8], eax
    0020cf66setg al
    0020cf69setl dl
    0020cf6cmovzx edx, dl
    0020cf6fmovzx eax, al
    0020cf72sub eax, edx
    0020cf74ret
    0020cf75db 0xc0
    0020cf76sub eax, edx
    0020cf78ret
    0020cf60
    0020cf79
    0020cf79 // align 0x10
    0020cf80
    0020cf80fn_20cf80:
    0020cf80movsxd rax, [rdi+8]
    0020cf84ret
    0020cf85db 0x63
    0020cf86or r11b, r8b
    0020cf80
    0020cf89
    0020cf89 // align 0x10
    0020cf90
    0020cf90fn_20cf90:
    0020cf90mov rax, [rsi+8]
    0020cf94cmp [rdi+8], rax
    0020cf98setg al
    0020cf9bsetl dl
    0020cf9emovzx edx, dl
    0020cfa1movzx eax, al
    0020cfa4sub eax, edx
    0020cfa6ret
    0020cfa7db 0xc0
    0020cfa8sub eax, edx
    0020cfaaret
    0020cf90
    0020cfab
    0020cfab // align 0x10
    0020cfb0
    0020cfb0fn_20cfb0:
    0020cfb0mov rdx, [rdi+8]
    0020cfb4mov rax, rdx
    0020cfb7sar rax, 32
    0020cfbbxor eax, edx
    0020cfbdret
    0020cfbedb 0x20
    0020cfbfxor eax, edx
    0020cfc1ret
    0020cfb0
    0020cfc2
    0020cfc2 // align 0x10
    0020cfd0
    0020cfd0fn_20cfd0:
    0020cfd0mov rdx, [rdi+8]
    0020cfd4mov rax, rdx
    0020cfd7mov rcx, rdx
    0020cfdasar rax, 32
    0020cfdesar rcx, 63
    0020cfe2xor rax, rcx
    0020cfe5xor rax, rdx
    0020cfe8ret
    0020cfe9db 0x48
    0020cfeaxor eax, edx
    0020cfecret
    0020cfd0
    0020cfed
    0020cfed // align 0x10
    0020cff0
    0020cff0fn_20cff0:
    0020cff0push r14
    0020cff2mov r14, rdx
    0020cff5push r13
    0020cff7mov r13, rdi
    0020cffapush r12
    0020cffcmov r12, rsi
    0020cfffpush rbp
    0020d000push rbx
    0020d001call caml_string_length
    0020d006mov rdi, r12
    0020d009mov rbp, rax
    0020d00ccall fn_f43a0
    0020d011mov rbx, rax
    0020d014lea rax, [rbp+rax+1]
    0020d019cmp rax, 31
    0020d01dja 0x20d07c
    0020d01fmov rdx, rbp
    0020d022mov rdi, r14
    0020d025mov rsi, r13
    0020d028call fn_f4520
    0020d02dlea rdi, [r14+rbp-1]
    0020d032movzx eax, [rdi-1]
    0020d036movzx ebp, [rdi]
    0020d039lea ecx, [rax-76]
    0020d03ccmp cl, 34
    0020d03fja 0x20d059
    0020d041mov rax, 0x500000001
    0020d04bshr rax, cl
    0020d04eand eax, 1
    0020d051cmp rax, 1
    0020d055adc rdi, -1
    0020d059
    0020d059loc_20d059:
    0020d059mov rdx, rbx
    0020d05cmov rsi, r12
    0020d05fcall fn_f4520
    0020d064mov rdi, rax
    0020d067mov eax, ebp
    0020d069add rdi, rbx
    0020d06cmov [rdi], bpl
    0020d06fmov [rdi+1], 0
    0020d073pop rbx
    0020d074pop rbp
    0020d075pop r12
    0020d077pop r13
    0020d079pop r14
    0020d07bret
    0020d07c
    0020d07cloc_20d07c:
    0020d07clea rdi, [rip+0x21fbb]
    0020d083call caml_invalid_argument
    0020cff0
    0020d088
    0020d088 // align 0x10
    0020d090
    0020d090fn_20d090:
    0020d090push rbx
    0020d091mov rbx, rdi
    0020d094call caml_deserialize_sint_4
    0020d099mov [rbx], eax
    0020d09bmov eax, 4
    0020d0a0pop rbx
    0020d0a1ret
    0020d0a2db 0x00
    0020d0a3add [rbx-61], bl
    0020d090
    0020d0a6
    0020d0a6 // align 0x10
    0020d0b0
    0020d0b0fn_20d0b0:
    0020d0b0push rbp
    0020d0b1mov rbp, rdx
    0020d0b4push rbx
    0020d0b5mov rbx, rsi
    0020d0b8sub rsp, 8
    0020d0bcmov edi, [rdi+8]
    0020d0bfcall caml_serialize_int_4
    0020d0c4mov [rbp], 4
    0020d0ccmov [rbx], 4
    0020d0d3add rsp, 8
    0020d0d7pop rbx
    0020d0d8pop rbp
    0020d0d9ret
    0020d0dadb 0x08
    0020d0dbpop rbx
    0020d0dcpop rbp
    0020d0ddret
    0020d0b0
    0020d0de
    0020d0de // align 0x10
    0020d0e0
    0020d0e0fn_20d0e0:
    0020d0e0push rbx
    0020d0e1mov rbx, rdi
    0020d0e4call caml_deserialize_sint_8
    0020d0e9mov [rbx], rax
    0020d0ecmov eax, 8
    0020d0f1pop rbx
    0020d0f2ret
    0020d0f3db 0x00
    0020d0f4add [rbx-61], bl
    0020d0e0
    0020d0f7
    0020d0f7 // align 0x10
    0020d100
    0020d100fn_20d100:
    0020d100push rbp
    0020d101mov rbp, rdx
    0020d104push rbx
    0020d105mov rbx, rsi
    0020d108sub rsp, 8
    0020d10cmov rdi, [rdi+8]
    0020d110call caml_serialize_int_8
    0020d115mov [rbp], 8
    0020d11dmov [rbx], 8
    0020d124add rsp, 8
    0020d128pop rbx
    0020d129pop rbp
    0020d12aret
    0020d12bdb 0x08
    0020d12cpop rbx
    0020d12dpop rbp
    0020d12eret
    0020d100
    0020d12f
    0020d12f // align 0x10
    0020d130
    0020d130fn_20d130:
    0020d130push rbx
    0020d131mov rbx, rdi
    0020d134call caml_deserialize_uint_1
    0020d139cmp eax, 1
    0020d13cje 0x20d160
    0020d13ecmp eax, 2
    0020d141jne 0x20d171
    0020d143call caml_deserialize_sint_8
    0020d148mov [rbx], rax
    0020d14bmov eax, 8
    0020d150pop rbx
    0020d151ret
    0020d152db 0x00
    0020d153add [rbx-61], bl
    0020d156
    0020d156 66 2e 0f 1f 84 00 00 00 00 00 f.........
    0020d160
    0020d160loc_20d160:
    0020d160call caml_deserialize_sint_4
    0020d165cdqe
    0020d167mov [rbx], rax
    0020d16amov eax, 8
    0020d16fpop rbx
    0020d170ret
    0020d171
    0020d171loc_20d171:
    0020d171lea rdi, [rip+0x236b8]
    0020d178call caml_deserialize_error
    0020d130
    0020d17d
    0020d17d // align 0x10
    0020d180
    0020d180fn_20d180:
    0020d180push r12
    0020d182mov eax, 0xffffffff80000000
    0020d187push rbp
    0020d188mov rbp, rsi
    0020d18bpush rbx
    0020d18cmov r12, [rdi+8]
    0020d190mov rbx, rdx
    0020d193add rax, r12
    0020d196shr rax, 32
    0020d19ajne 0x20d1d0
    0020d19cmov edi, 1
    0020d1a1call caml_serialize_int_1
    0020d1a6mov edi, r12l
    0020d1a9call caml_serialize_int_4
    0020d1aemov [rbp], 4
    0020d1b6mov [rbx], 8
    0020d1bdpop rbx
    0020d1bepop rbp
    0020d1bfpop r12
    0020d1c1ret
    0020d1c2db 0x5d
    0020d1c3pop r12
    0020d1c5ret
    0020d1c6
    0020d1c6 66 2e 0f 1f 84 00 00 00 00 00 f.........
    0020d1d0
    0020d1d0loc_20d1d0:
    0020d1d0mov edi, 2
    0020d1d5call caml_serialize_int_1
    0020d1damov rdi, r12
    0020d1ddcall caml_serialize_int_8
    0020d1e2jmp 0x20d1b2
    0020d180
    0020d1e4
    0020d1e4 // align 0x10
    0020d1f0
    0020d1f0fn_20d1f0:
    0020d1f0mov rax, [rsi+8]
    0020d1f4cmp [rdi+8], rax
    0020d1f8setg al
    0020d1fbsetl dl
    0020d1femovzx edx, dl
    0020d201movzx eax, al
    0020d204sub eax, edx
    0020d206ret
    0020d207db 0xc0
    0020d208sub eax, edx
    0020d20aret
    0020d1f0
    0020d20b
    0020d20b // align 0x10
    0020d210
    0020d210fn_20d210:
    0020d210push r14
    0020d212push r13
    0020d214push r12
    0020d216push rbp
    0020d217mov ebp, esi
    0020d219push rbx
    0020d21amov rbx, rdi
    0020d21dsub rsp, 32
    0020d221mov r12, [0x28]
    0020d22amov [rsp+24], r12
    0020d22fmov r12, rdx
    0020d232lea rcx, [rsp+12]
    0020d237lea rdx, [rsp+20]
    0020d23clea rsi, [rsp+16]
    0020d241call fn_20cea0
    0020d246movsxd rcx, [rsp+16]
    0020d24bmovzx edx, [rax]
    0020d24emov rdi, rcx
    0020d251movsx r13l, dl
    0020d255lea esi, [rdx-48]
    0020d258sub r13l, 48
    0020d25ccmp sil, 9
    0020d260jbe 0x20d288
    0020d262movsx r13l, dl
    0020d266lea esi, [rdx-65]
    0020d269sub r13l, 55
    0020d26dcmp sil, 5
    0020d271jbe 0x20d288
    0020d273lea esi, [rdx-97]
    0020d276cmp sil, 5
    0020d27aja 0x20d368
    0020d280movsx r13l, dl
    0020d284sub r13l, 87
    0020d288
    0020d288loc_20d288:
    0020d288cmp edi, r13l
    0020d28bjle 0x20d368
    0020d291lea r14, [rax+1]
    0020d295movsxd r13, r13l
    0020d298jmp 0x20d2d8
    0020d29a
    0020d29a 66 0f 1f 44 00 00 f..D..
    0020d2a0
    0020d2a0loc_20d2a0:
    0020d2a0lea eax, [rsi-65]
    0020d2a3cmp al, 5
    0020d2a5jbe 0x20d348
    0020d2ablea eax, [rsi-97]
    0020d2aecmp al, 5
    0020d2b0ja 0x20d2f0
    0020d2b2sub esi, 87
    0020d2b5
    0020d2b5loc_20d2b5:
    0020d2b5cmp edi, esi
    0020d2b7jle 0x20d2f0
    0020d2b9
    0020d2b9loc_20d2b9:
    0020d2b9mov rax, r13
    0020d2bcmul rcx
    0020d2bfmov r13, rax
    0020d2c2jo 0x20d368
    0020d2c8movsxd rsi, esi
    0020d2cbadd r13, rsi
    0020d2cejb 0x20d368
    0020d2d4
    0020d2d4loc_20d2d4:
    0020d2d4add r14, 1
    0020d2d8
    0020d2d8loc_20d2d8:
    0020d2d8movsx esi, [r14]
    0020d2dccmp sil, 95
    0020d2e0je 0x20d2d4
    0020d2e2lea eax, [rsi-48]
    0020d2e5cmp al, 9
    0020d2e7ja 0x20d2a0
    0020d2e9sub esi, 48
    0020d2eccmp edi, esi
    0020d2eejg 0x20d2b9
    0020d2f0
    0020d2f0loc_20d2f0:
    0020d2f0mov rdi, rbx
    0020d2f3call caml_string_length
    0020d2f8add rbx, rax
    0020d2fbcmp r14, rbx
    0020d2fejne 0x20d368
    0020d300mov ecx, [rsp+20]
    0020d304test ecx, ecx
    0020d306jne 0x20d350
    0020d308cmp ebp, 63
    0020d30bja 0x20d31c
    0020d30dmov eax, 1
    0020d312mov ecx, ebp
    0020d314shl rax, cl
    0020d317cmp r13, rax
    0020d31ajae 0x20d368
    0020d31c
    0020d31cloc_20d31c:
    0020d31cmov eax, [rsp+12]
    0020d320test eax, eax
    0020d322js 0x20d375
    0020d324
    0020d324loc_20d324:
    0020d324mov rax, r13
    0020d327
    0020d327loc_20d327:
    0020d327mov rdx, [rsp+24]
    0020d32csub rdx, [0x28]
    0020d335jne 0x20d37d
    0020d337add rsp, 32
    0020d33bpop rbx
    0020d33cpop rbp
    0020d33dpop r12
    0020d33fpop r13
    0020d341pop r14
    0020d343ret
    0020d344
    0020d344 0f 1f 40 00 ..@.
    0020d348
    0020d348loc_20d348:
    0020d348sub esi, 55
    0020d34bjmp 0x20d2b5
    0020d350
    0020d350loc_20d350:
    0020d350mov edx, [rsp+12]
    0020d354lea ecx, [rbp-1]
    0020d357mov eax, 1
    0020d35cshl rax, cl
    0020d35ftest edx, edx
    0020d361js 0x20d370
    0020d363cmp r13, rax
    0020d366jb 0x20d324
    0020d368
    0020d368loc_20d368:
    0020d368mov rdi, r12
    0020d36bcall caml_failwith
    0020d370
    0020d370loc_20d370:
    0020d370cmp rax, r13
    0020d373jb 0x20d368
    0020d375
    0020d375loc_20d375:
    0020d375mov rax, r13
    0020d378neg rax
    0020d37bjmp 0x20d327
    0020d37d
    0020d37dloc_20d37d:
    0020d37dcall fn_f4590
    0020d210
    0020d382
    0020d382 // align 0x10
    0020d390
    0020d390caml_bswap16_direct:
    0020d390movzx eax, di
    0020d393bswap rax
    0020d396rol rax, 16
    0020d39aret
    0020d39bdb 0xc1
    0020d39crcl [rax], -61
    0020d390
    0020d39f
    0020d39f // align 0x10
    0020d3a0
    0020d3a0caml_bswap16:
    0020d3a0sar rdi, 1
    0020d3a3movzx edi, di
    0020d3a6bswap rdi
    0020d3a9rol rdi, 16
    0020d3adlea rax, [rdi+rdi+1]
    0020d3b2ret
    0020d3b3db 0x44
    0020d3b4db 0x3f
    0020d3b5add ebx, eax
    0020d3a0
    0020d3b7
    0020d3b7 // align 0x10
    0020d3c0
    0020d3c0caml_int_compare:
    0020d3c0xor eax, eax
    0020d3c2cmp rdi, rsi
    0020d3c5setl dl
    0020d3c8setg al
    0020d3cbmovzx edx, dl
    0020d3cesub rax, rdx
    0020d3d1lea rax, [rax+rax+1]
    0020d3d6ret
    0020d3d7db 0x44
    0020d3d8add [rcx], al
    0020d3daret
    0020d3c0
    0020d3db
    0020d3db // align 0x10
    0020d3e0
    0020d3e0caml_int_of_string:
    0020d3e0sub rsp, 8
    0020d3e4lea rdx, [rip+0x21c6b]
    0020d3ebmov esi, 63
    0020d3f0call fn_20d210
    0020d3f5add rsp, 8
    0020d3f9lea rax, [rax+rax+1]
    0020d3feret
    0020d3ffdb 0x44
    0020d400add [rcx], al
    0020d402ret
    0020d3e0
    0020d403
    0020d403 // align 0x10
    0020d410
    0020d410caml_format_int:
    0020d410push rbp
    0020d411push rbx
    0020d412sub rsp, 56
    0020d416mov rbx, [0x28]
    0020d41fmov [rsp+40], rbx
    0020d424mov rbx, rsi
    0020d427mov rdx, rsp
    0020d42alea rsi, [rip+0x2212a]
    0020d431mov rbp, rsp
    0020d434call fn_20cff0
    0020d439sub eax, 88
    0020d43ccmp al, 32
    0020d43eja 0x20d480
    0020d440mov rdx, 0x120800001
    0020d44abt rdx, rax
    0020d44ejae 0x20d480
    0020d450shr rbx, 1
    0020d453mov rdi, rsp
    0020d456xor eax, eax
    0020d458mov rsi, rbx
    0020d45bcall caml_alloc_sprintf
    0020d460mov rdx, [rsp+40]
    0020d465sub rdx, [0x28]
    0020d46ejne 0x20d492
    0020d470add rsp, 56
    0020d474pop rbx
    0020d475pop rbp
    0020d476ret
    0020d477db 0x38
    0020d478pop rbx
    0020d479pop rbp
    0020d47aret
    0020d47b
    0020d47b 0f 1f 44 00 00 ..D..
    0020d480
    0020d480loc_20d480:
    0020d480sar rbx, 1
    0020d483mov rdi, rbp
    0020d486xor eax, eax
    0020d488mov rsi, rbx
    0020d48bcall caml_alloc_sprintf
    0020d490jmp 0x20d464
    0020d492
    0020d492loc_20d492:
    0020d492call fn_f4590
    0020d410
    0020d497
    0020d497 // align 0x10
    0020d4a0
    0020d4a0caml_copy_int32:
    0020d4a0push rbx
    0020d4a1mov ecx, 1
    0020d4a6mov ebx, edi
    0020d4a8xor edx, edx
    0020d4aamov esi, 4
    0020d4aflea rdi, [rip+0x68406]
    0020d4b6call caml_alloc_custom
    0020d4bbmov [rax+8], ebx
    0020d4bepop rbx
    0020d4bfret
    0020d4c0db 0x58
    0020d4c1or [rbx-61], bl
    0020d4a0
    0020d4c4
    0020d4c4 // align 0x10
    0020d4d0
    0020d4d0caml_int32_neg:
    0020d4d0push rbx
    0020d4d1mov ebx, [rdi+8]
    0020d4d4mov ecx, 1
    0020d4d9xor edx, edx
    0020d4dbmov esi, 4
    0020d4e0lea rdi, [rip+0x683d5]
    0020d4e7neg ebx
    0020d4e9call caml_alloc_custom
    0020d4eemov [rax+8], ebx
    0020d4f1pop rbx
    0020d4f2ret
    0020d4f3db 0x58
    0020d4f4or [rbx-61], bl
    0020d4d0
    0020d4f7
    0020d4f7 // align 0x10
    0020d500
    0020d500caml_int32_add:
    0020d500push rbx
    0020d501mov ecx, 1
    0020d506mov ebx, [rsi+8]
    0020d509xor edx, edx
    0020d50badd ebx, [rdi+8]
    0020d50emov esi, 4
    0020d513lea rdi, [rip+0x683a2]
    0020d51acall caml_alloc_custom
    0020d51fmov [rax+8], ebx
    0020d522pop rbx
    0020d523ret
    0020d524db 0x58
    0020d525or [rbx-61], bl
    0020d500
    0020d528
    0020d528 // align 0x10
    0020d530
    0020d530caml_int32_sub:
    0020d530push rbx
    0020d531mov ecx, 1
    0020d536mov ebx, [rdi+8]
    0020d539xor edx, edx
    0020d53bsub ebx, [rsi+8]
    0020d53elea rdi, [rip+0x68377]
    0020d545mov esi, 4
    0020d54acall caml_alloc_custom
    0020d54fmov [rax+8], ebx
    0020d552pop rbx
    0020d553ret
    0020d554db 0x58
    0020d555or [rbx-61], bl
    0020d530
    0020d558
    0020d558 // align 0x10
    0020d560
    0020d560caml_int32_mul:
    0020d560push rbx
    0020d561mov ebx, [rdi+8]
    0020d564mov ecx, 1
    0020d569xor edx, edx
    0020d56bimul ebx, [rsi+8]
    0020d56flea rdi, [rip+0x68346]
    0020d576mov esi, 4
    0020d57bcall caml_alloc_custom
    0020d580mov [rax+8], ebx
    0020d583pop rbx
    0020d584ret
    0020d585db 0x58
    0020d586or [rbx-61], bl
    0020d560
    0020d589
    0020d589 // align 0x10
    0020d590
    0020d590caml_int32_div:
    0020d590push rbx
    0020d591mov ecx, [rsi+8]
    0020d594mov eax, [rdi+8]
    0020d597test ecx, ecx
    0020d599je 0x20d5d8
    0020d59bcmp eax, 0xffffffff80000000
    0020d5a0jne 0x20d5b0
    0020d5a2cmp ecx, -1
    0020d5a5jne 0x20d5b0
    0020d5a7mov rax, rdi
    0020d5aapop rbx
    0020d5abret
    0020d5accdq
    0020d5adlea rdi, [rip+0x68308]
    0020d5b4mov esi, 4
    0020d5b9idiv ecx
    0020d5bbmov ecx, 1
    0020d5c0xor edx, edx
    0020d5c2mov ebx, eax
    0020d5c4call caml_alloc_custom
    0020d5c9mov rdi, rax
    0020d5ccmov [rax+8], ebx
    0020d5cfpop rbx
    0020d5d0mov rax, rdi
    0020d5d3ret
    0020d5d4call caml_raise_zero_divide
    0020d5d9db 0xe3
    0020d5daxchg eax, esp
    0020d5dbdb 0xff
    0020d5dcdb 0xff
    0020d590
    0020d5dd
    0020d5dd // align 0x10
    0020d5e0
    0020d5e0caml_int32_mod:
    0020d5e0push rbx
    0020d5e1mov ecx, [rsi+8]
    0020d5e4mov eax, [rdi+8]
    0020d5e7test ecx, ecx
    0020d5e9je 0x20d642
    0020d5ebcmp eax, 0xffffffff80000000
    0020d5f0jne 0x20d620
    0020d5f2cmp ecx, -1
    0020d5f5jne 0x20d620
    0020d5f7mov ecx, 1
    0020d5fcxor edx, edx
    0020d5femov esi, 4
    0020d603lea rdi, [rip+0x682b2]
    0020d60acall caml_alloc_custom
    0020d60fmov [rax+8], 0
    0020d616pop rbx
    0020d617ret
    0020d618db 0x00
    0020d619add [rbx-61], bl
    0020d61c
    0020d61c 0f 1f 40 00 ..@.
    0020d620
    0020d620loc_20d620:
    0020d620cdq
    0020d621mov esi, 4
    0020d626lea rdi, [rip+0x68293]
    0020d62didiv ecx
    0020d62fmov ecx, 1
    0020d634mov ebx, edx
    0020d636xor edx, edx
    0020d638call caml_alloc_custom
    0020d63dmov [rax+8], ebx
    0020d640pop rbx
    0020d641ret
    0020d642
    0020d642loc_20d642:
    0020d642call caml_raise_zero_divide
    0020d5e0
    0020d647
    0020d647 // align 0x10
    0020d650
    0020d650caml_int32_and:
    0020d650push rbx
    0020d651mov ecx, 1
    0020d656mov ebx, [rdi+8]
    0020d659xor edx, edx
    0020d65band ebx, [rsi+8]
    0020d65elea rdi, [rip+0x68257]
    0020d665mov esi, 4
    0020d66acall caml_alloc_custom
    0020d66fmov [rax+8], ebx
    0020d672pop rbx
    0020d673ret
    0020d674db 0x58
    0020d675or [rbx-61], bl
    0020d650
    0020d678
    0020d678 // align 0x10
    0020d680
    0020d680caml_int32_or:
    0020d680push rbx
    0020d681mov ecx, 1
    0020d686mov ebx, [rdi+8]
    0020d689xor edx, edx
    0020d68bor ebx, [rsi+8]
    0020d68elea rdi, [rip+0x68227]
    0020d695mov esi, 4
    0020d69acall caml_alloc_custom
    0020d69fmov [rax+8], ebx
    0020d6a2pop rbx
    0020d6a3ret
    0020d6a4db 0x58
    0020d6a5or [rbx-61], bl
    0020d680
    0020d6a8
    0020d6a8 // align 0x10
    0020d6b0
    0020d6b0caml_int32_xor:
    0020d6b0push rbx
    0020d6b1mov ecx, 1
    0020d6b6mov ebx, [rdi+8]
    0020d6b9xor edx, edx
    0020d6bbxor ebx, [rsi+8]
    0020d6belea rdi, [rip+0x681f7]
    0020d6c5mov esi, 4
    0020d6cacall caml_alloc_custom
    0020d6cfmov [rax+8], ebx
    0020d6d2pop rbx
    0020d6d3ret
    0020d6d4db 0x58
    0020d6d5or [rbx-61], bl
    0020d6b0
    0020d6d8
    0020d6d8 // align 0x10
    0020d6e0
    0020d6e0caml_int32_shift_left:
    0020d6e0push rbx
    0020d6e1mov rcx, rsi
    0020d6e4mov ebx, [rdi+8]
    0020d6e7xor edx, edx
    0020d6e9sar rcx, 1
    0020d6ecmov esi, 4
    0020d6f1lea rdi, [rip+0x681c4]
    0020d6f8shl ebx, cl
    0020d6famov ecx, 1
    0020d6ffcall caml_alloc_custom
    0020d704mov [rax+8], ebx
    0020d707pop rbx
    0020d708ret
    0020d709db 0x58
    0020d70aor [rbx-61], bl
    0020d6e0
    0020d70d
    0020d70d // align 0x10
    0020d710
    0020d710caml_int32_shift_right:
    0020d710push rbx
    0020d711mov rcx, rsi
    0020d714mov ebx, [rdi+8]
    0020d717xor edx, edx
    0020d719sar rcx, 1
    0020d71cmov esi, 4
    0020d721lea rdi, [rip+0x68194]
    0020d728sar ebx, cl
    0020d72amov ecx, 1
    0020d72fcall caml_alloc_custom
    0020d734mov [rax+8], ebx
    0020d737pop rbx
    0020d738ret
    0020d739db 0x58
    0020d73aor [rbx-61], bl
    0020d710
    0020d73d
    0020d73d // align 0x10
    0020d740
    0020d740caml_int32_shift_right_unsigned:
    0020d740push rbx
    0020d741mov rcx, rsi
    0020d744mov ebx, [rdi+8]
    0020d747xor edx, edx
    0020d749sar rcx, 1
    0020d74cmov esi, 4
    0020d751lea rdi, [rip+0x68164]
    0020d758shr ebx, cl
    0020d75amov ecx, 1
    0020d75fcall caml_alloc_custom
    0020d764mov [rax+8], ebx
    0020d767pop rbx
    0020d768ret
    0020d769db 0x58
    0020d76aor [rbx-61], bl
    0020d740
    0020d76d
    0020d76d // align 0x10
    0020d770
    0020d770caml_int32_direct_bswap:
    0020d770bswap edi
    0020d772movsxd rax, edi
    0020d775ret
    0020d776db 0x48
    0020d777movsxd rax, edi
    0020d779ret
    0020d770
    0020d77a
    0020d77a // align 0x10
    0020d780
    0020d780caml_int32_bswap:
    0020d780push rbx
    0020d781mov ecx, 1
    0020d786mov ebx, [rdi+8]
    0020d789xor edx, edx
    0020d78bmov esi, 4
    0020d790lea rdi, [rip+0x68125]
    0020d797bswap ebx
    0020d799call caml_alloc_custom
    0020d79emov [rax+8], ebx
    0020d7a1pop rbx
    0020d7a2ret
    0020d7a3db 0x58
    0020d7a4or [rbx-61], bl
    0020d780
    0020d7a7
    0020d7a7 // align 0x10
    0020d7b0
    0020d7b0caml_int32_of_int:
    0020d7b0push rbx
    0020d7b1mov ecx, 1
    0020d7b6mov rbx, rdi
    0020d7b9xor edx, edx
    0020d7bbmov esi, 4
    0020d7c0lea rdi, [rip+0x680f5]
    0020d7c7sar rbx, 1
    0020d7cacall caml_alloc_custom
    0020d7cfmov [rax+8], ebx
    0020d7d2pop rbx
    0020d7d3ret
    0020d7d4db 0x58
    0020d7d5or [rbx-61], bl
    0020d7b0
    0020d7d8
    0020d7d8 // align 0x10
    0020d7e0
    0020d7e0caml_int32_to_int:
    0020d7e0movsxd rax, [rdi+8]
    0020d7e4lea rax, [rax+rax+1]
    0020d7e9ret
    0020d7eadb 0x44
    0020d7ebadd [rcx], al
    0020d7edret
    0020d7e0
    0020d7ee
    0020d7ee // align 0x10
    0020d7f0
    0020d7f0caml_int32_of_float_unboxed:
    0020d7f0cvttsd2si eax, x0
    0020d7f4ret
    0020d7f5db 0x0f
    0020d7f6sub al, -64
    0020d7f8ret
    0020d7f0
    0020d7f9
    0020d7f9 // align 0x10
    0020d800
    0020d800caml_int32_of_float:
    0020d800push rbx
    0020d801cvttsd2si ebx, [rdi]
    0020d805mov ecx, 1
    0020d80axor edx, edx
    0020d80cmov esi, 4
    0020d811lea rdi, [rip+0x680a4]
    0020d818call caml_alloc_custom
    0020d81dmov [rax+8], ebx
    0020d820pop rbx
    0020d821ret
    0020d822db 0x58
    0020d823or [rbx-61], bl
    0020d800
    0020d826
    0020d826 // align 0x10
    0020d830
    0020d830caml_int32_to_float_unboxed:
    0020d830pxor x0, x0
    0020d834cvtsi2sd x0, edi
    0020d838ret
    0020d839db 0x0f
    0020d83asub al, bh
    0020d83cret
    0020d830
    0020d83d
    0020d83d // align 0x10
    0020d840
    0020d840caml_int32_to_float:
    0020d840pxor x0, x0
    0020d844cvtsi2sd x0, [rdi+8]
    0020d849jmp 0x2075f0
    0020d84edb 0x9e
    0020d84fpopf
    0020d850db 0xff
    0020d851db 0xff
    0020d840
    0020d852
    0020d852 // align 0x10
    0020d860
    0020d860caml_int32_compare_unboxed:
    0020d860xor eax, eax
    0020d862cmp edi, esi
    0020d864setl dl
    0020d867setg al
    0020d86amovzx edx, dl
    0020d86dsub rax, rdx
    0020d870ret
    0020d871db 0x48
    0020d872sub eax, edx
    0020d874ret
    0020d860
    0020d875
    0020d875 // align 0x10
    0020d880
    0020d880caml_int32_compare:
    0020d880mov eax, [rdi+8]
    0020d883cmp [rsi+8], eax
    0020d886setl al
    0020d889setg dl
    0020d88cmovzx edx, dl
    0020d88fmovzx eax, al
    0020d892sub rax, rdx
    0020d895lea rax, [rax+rax+1]
    0020d89aret
    0020d89bdb 0x44
    0020d89cadd [rcx], al
    0020d89eret
    0020d880
    0020d89f
    0020d89f // align 0x10
    0020d8a0
    0020d8a0caml_int32_format:
    0020d8a0push rbp
    0020d8a1push rbx
    0020d8a2sub rsp, 56
    0020d8a6mov rbx, [0x28]
    0020d8afmov [rsp+40], rbx
    0020d8b4mov rbx, rsi
    0020d8b7mov rdx, rsp
    0020d8balea rsi, [rip+0x21667]
    0020d8c1call fn_20cff0
    0020d8c6xor eax, eax
    0020d8c8mov rdi, rsp
    0020d8cbmov esi, [rbx+8]
    0020d8cecall caml_alloc_sprintf
    0020d8d3mov rdx, [rsp+40]
    0020d8d8sub rdx, [0x28]
    0020d8e1jne 0x20d8ee
    0020d8e3add rsp, 56
    0020d8e7pop rbx
    0020d8e8pop rbp
    0020d8e9ret
    0020d8eacall fn_f4590
    0020d8efdb 0x9d
    0020d8f0insb [rdi], dl
    0020d8f1out dx, al
    0020d8f2db 0xff
    0020d8a0
    0020d8f3
    0020d8f3 // align 0x10
    0020d900
    0020d900caml_int32_of_string:
    0020d900push rbx
    0020d901lea rdx, [rip+0x2175c]
    0020d908mov esi, 32
    0020d90dcall fn_20d210
    0020d912mov ecx, 1
    0020d917xor edx, edx
    0020d919mov esi, 4
    0020d91elea rdi, [rip+0x67f97]
    0020d925mov rbx, rax
    0020d928call caml_alloc_custom
    0020d92dmov [rax+8], ebx
    0020d930pop rbx
    0020d931ret
    0020d932db 0x58
    0020d933or [rbx-61], bl
    0020d900
    0020d936
    0020d936 // align 0x10
    0020d940
    0020d940caml_int32_bits_of_float_unboxed:
    0020d940pxor x1, x1
    0020d944cvtsd2ss x1, x0
    0020d948movd eax, x1
    0020d94cret
    0020d94ddb 0x0f
    0020d94ejle 0x20d918
    0020d950ret
    0020d940
    0020d951
    0020d951 // align 0x10
    0020d960
    0020d960caml_int32_float_of_bits_unboxed:
    0020d960movd x1, edi
    0020d964pxor x0, x0
    0020d968cvtss2sd x0, x1
    0020d96cret
    0020d96ddb 0x0f
    0020d96epop rdx
    0020d96fdb 0xc1
    0020d970ret
    0020d960
    0020d971
    0020d971 // align 0x10
    0020d980
    0020d980caml_int32_bits_of_float:
    0020d980push rbx
    0020d981pxor x0, x0
    0020d985mov ecx, 1
    0020d98axor edx, edx
    0020d98cmov esi, 4
    0020d991cvtsd2ss x0, [rdi]
    0020d995lea rdi, [rip+0x67f20]
    0020d99cmovd ebx, x0
    0020d9a0call caml_alloc_custom
    0020d9a5mov [rax+8], ebx
    0020d9a8pop rbx
    0020d9a9ret
    0020d9aadb 0x58
    0020d9abor [rbx-61], bl
    0020d980
    0020d9ae
    0020d9ae // align 0x10
    0020d9b0
    0020d9b0caml_int32_float_of_bits:
    0020d9b0pxor x0, x0
    0020d9b4cvtss2sd x0, [rdi+8]
    0020d9b9jmp 0x2075f0
    0020d9bedb 0x2e
    0020d9bfpushf
    0020d9c0db 0xff
    0020d9c1db 0xff
    0020d9b0
    0020d9c2
    0020d9c2 // align 0x10
    0020d9d0
    0020d9d0caml_copy_int64:
    0020d9d0push rbx
    0020d9d1mov ecx, 1
    0020d9d6mov rbx, rdi
    0020d9d9xor edx, edx
    0020d9dbmov esi, 8
    0020d9e0lea rdi, [rip+0x67e95]
    0020d9e7call caml_alloc_custom
    0020d9ecmov [rax+8], rbx
    0020d9f0pop rbx
    0020d9f1ret
    0020d9f2db 0x58
    0020d9f3or [rbx-61], bl
    0020d9d0
    0020d9f6
    0020d9f6 // align 0x10
    0020da00
    0020da00caml_int64_neg:
    0020da00push rbx
    0020da01mov rbx, [rdi+8]
    0020da05mov ecx, 1
    0020da0axor edx, edx
    0020da0cmov esi, 8
    0020da11lea rdi, [rip+0x67e64]
    0020da18neg rbx
    0020da1bcall caml_alloc_custom
    0020da20mov [rax+8], rbx
    0020da24pop rbx
    0020da25ret
    0020da26db 0x58
    0020da27or [rbx-61], bl
    0020da00
    0020da2a
    0020da2a // align 0x10
    0020da30
    0020da30caml_int64_add:
    0020da30push rbx
    0020da31mov ecx, 1
    0020da36mov rbx, [rsi+8]
    0020da3axor edx, edx
    0020da3cadd rbx, [rdi+8]
    0020da40mov esi, 8
    0020da45lea rdi, [rip+0x67e30]
    0020da4ccall caml_alloc_custom
    0020da51mov [rax+8], rbx
    0020da55pop rbx
    0020da56ret
    0020da57db 0x58
    0020da58or [rbx-61], bl
    0020da30
    0020da5b
    0020da5b // align 0x10
    0020da60
    0020da60caml_int64_sub:
    0020da60push rbx
    0020da61mov ecx, 1
    0020da66mov rbx, [rdi+8]
    0020da6axor edx, edx
    0020da6csub rbx, [rsi+8]
    0020da70lea rdi, [rip+0x67e05]
    0020da77mov esi, 8
    0020da7ccall caml_alloc_custom
    0020da81mov [rax+8], rbx
    0020da85pop rbx
    0020da86ret
    0020da87db 0x58
    0020da88or [rbx-61], bl
    0020da60
    0020da8b
    0020da8b // align 0x10
    0020da90
    0020da90caml_int64_mul:
    0020da90push rbx
    0020da91mov rbx, [rdi+8]
    0020da95mov ecx, 1
    0020da9axor edx, edx
    0020da9cimul rbx, [rsi+8]
    0020daa1lea rdi, [rip+0x67dd4]
    0020daa8mov esi, 8
    0020daadcall caml_alloc_custom
    0020dab2mov [rax+8], rbx
    0020dab6pop rbx
    0020dab7ret
    0020dab8db 0x58
    0020dab9or [rbx-61], bl
    0020da90
    0020dabc
    0020dabc // align 0x10
    0020dac0
    0020dac0caml_int64_div:
    0020dac0push rbx
    0020dac1mov rcx, [rsi+8]
    0020dac5mov rax, [rdi+8]
    0020dac9test rcx, rcx
    0020daccje 0x20db1c
    0020dacemov rdx, 0x8000000000000000
    0020dad8cmp rax, rdx
    0020dadbjne 0x20daf0
    0020daddcmp rcx, -1
    0020dae1jne 0x20daf0
    0020dae3mov rax, rdi
    0020dae6pop rbx
    0020dae7ret
    0020dae8db 0x89
    0020dae9clc
    0020daeapop rbx
    0020daebret
    0020daec
    0020daec 0f 1f 40 00 ..@.
    0020daf0
    0020daf0loc_20daf0:
    0020daf0cqo
    0020daf2lea rdi, [rip+0x67d87]
    0020daf9mov esi, 8
    0020dafeidiv rcx
    0020db01mov ecx, 1
    0020db06xor edx, edx
    0020db08mov rbx, rax
    0020db0bcall caml_alloc_custom
    0020db10mov rdi, rax
    0020db13mov [rax+8], rbx
    0020db17pop rbx
    0020db18mov rax, rdi
    0020db1bret
    0020db1c
    0020db1cloc_20db1c:
    0020db1ccall caml_raise_zero_divide
    0020dac0
    0020db21
    0020db21 // align 0x10
    0020db30
    0020db30caml_int64_mod:
    0020db30push rbx
    0020db31mov rbx, [rsi+8]
    0020db35mov rax, [rdi+8]
    0020db39test rbx, rbx
    0020db3cje 0x20dba6
    0020db3emov rcx, 0x8000000000000000
    0020db48cmp rax, rcx
    0020db4bjne 0x20db80
    0020db4dcmp rbx, -1
    0020db51jne 0x20db80
    0020db53mov ecx, 1
    0020db58xor edx, edx
    0020db5amov esi, 8
    0020db5flea rdi, [rip+0x67d16]
    0020db66call caml_alloc_custom
    0020db6bmov [rax+8], 0
    0020db73pop rbx
    0020db74ret
    0020db75db 0x00
    0020db76add [rbx-61], bl
    0020db79
    0020db79 0f 1f 80 00 00 00 00 .......
    0020db80
    0020db80loc_20db80:
    0020db80cqo
    0020db82mov ecx, 1
    0020db87mov esi, 8
    0020db8cidiv rbx
    0020db8flea rdi, [rip+0x67cea]
    0020db96mov rbx, rdx
    0020db99xor edx, edx
    0020db9bcall caml_alloc_custom
    0020dba0mov [rax+8], rbx
    0020dba4pop rbx
    0020dba5ret
    0020dba6
    0020dba6loc_20dba6:
    0020dba6call caml_raise_zero_divide
    0020db30
    0020dbab
    0020dbab // align 0x10
    0020dbb0
    0020dbb0caml_int64_and:
    0020dbb0push rbx
    0020dbb1mov ecx, 1
    0020dbb6mov rbx, [rdi+8]
    0020dbbaxor edx, edx
    0020dbbcand rbx, [rsi+8]
    0020dbc0lea rdi, [rip+0x67cb5]
    0020dbc7mov esi, 8
    0020dbcccall caml_alloc_custom
    0020dbd1mov [rax+8], rbx
    0020dbd5pop rbx
    0020dbd6ret
    0020dbd7db 0x58
    0020dbd8or [rbx-61], bl
    0020dbb0
    0020dbdb
    0020dbdb // align 0x10
    0020dbe0
    0020dbe0caml_int64_or:
    0020dbe0push rbx
    0020dbe1mov ecx, 1
    0020dbe6mov rbx, [rdi+8]
    0020dbeaxor edx, edx
    0020dbecor rbx, [rsi+8]
    0020dbf0lea rdi, [rip+0x67c85]
    0020dbf7mov esi, 8
    0020dbfccall caml_alloc_custom
    0020dc01mov [rax+8], rbx
    0020dc05pop rbx
    0020dc06ret
    0020dc07db 0x58
    0020dc08or [rbx-61], bl
    0020dbe0
    0020dc0b
    0020dc0b // align 0x10
    0020dc10
    0020dc10caml_int64_xor:
    0020dc10push rbx
    0020dc11mov ecx, 1
    0020dc16mov rbx, [rdi+8]
    0020dc1axor edx, edx
    0020dc1cxor rbx, [rsi+8]
    0020dc20lea rdi, [rip+0x67c55]
    0020dc27mov esi, 8
    0020dc2ccall caml_alloc_custom
    0020dc31mov [rax+8], rbx
    0020dc35pop rbx
    0020dc36ret
    0020dc37db 0x58
    0020dc38or [rbx-61], bl
    0020dc10
    0020dc3b
    0020dc3b // align 0x10
    0020dc40
    0020dc40caml_int64_shift_left:
    0020dc40push rbx
    0020dc41mov rcx, rsi
    0020dc44mov rbx, [rdi+8]
    0020dc48xor edx, edx
    0020dc4asar rcx, 1
    0020dc4dmov esi, 8
    0020dc52lea rdi, [rip+0x67c23]
    0020dc59shl rbx, cl
    0020dc5cmov ecx, 1
    0020dc61call caml_alloc_custom
    0020dc66mov [rax+8], rbx
    0020dc6apop rbx
    0020dc6bret
    0020dc6cdb 0x58
    0020dc6dor [rbx-61], bl
    0020dc40
    0020dc70
    0020dc70caml_int64_shift_right:
    0020dc70push rbx
    0020dc71mov rcx, rsi
    0020dc74mov rbx, [rdi+8]
    0020dc78xor edx, edx
    0020dc7asar rcx, 1
    0020dc7dmov esi, 8
    0020dc82lea rdi, [rip+0x67bf3]
    0020dc89sar rbx, cl
    0020dc8cmov ecx, 1
    0020dc91call caml_alloc_custom
    0020dc96mov [rax+8], rbx
    0020dc9apop rbx
    0020dc9bret
    0020dc9cdb 0x58
    0020dc9dor [rbx-61], bl
    0020dc70
    0020dca0
    0020dca0caml_int64_shift_right_unsigned:
    0020dca0push rbx
    0020dca1mov rcx, rsi
    0020dca4mov rbx, [rdi+8]
    0020dca8xor edx, edx
    0020dcaasar rcx, 1
    0020dcadmov esi, 8
    0020dcb2lea rdi, [rip+0x67bc3]
    0020dcb9shr rbx, cl
    0020dcbcmov ecx, 1
    0020dcc1call caml_alloc_custom
    0020dcc6mov [rax+8], rbx
    0020dccapop rbx
    0020dccbret
    0020dcccdb 0x58
    0020dccdor [rbx-61], bl
    0020dca0
    0020dcd0
    0020dcd0caml_int64_direct_bswap:
    0020dcd0mov rax, rdi
    0020dcd3bswap rax
    0020dcd6ret
    0020dcd7db 0x48
    0020dcd8bswap eax
    0020dcdaret
    0020dcd0
    0020dcdb
    0020dcdb // align 0x10
    0020dce0
    0020dce0caml_int64_bswap:
    0020dce0push rbx
    0020dce1mov ecx, 1
    0020dce6mov rbx, [rdi+8]
    0020dceaxor edx, edx
    0020dcecmov esi, 8
    0020dcf1lea rdi, [rip+0x67b84]
    0020dcf8bswap rbx
    0020dcfbcall caml_alloc_custom
    0020dd00mov [rax+8], rbx
    0020dd04pop rbx
    0020dd05ret
    0020dd06db 0x58
    0020dd07or [rbx-61], bl
    0020dce0
    0020dd0a
    0020dd0a // align 0x10
    0020dd10
    0020dd10caml_int64_of_int:
    0020dd10push rbx
    0020dd11mov ecx, 1
    0020dd16mov rbx, rdi
    0020dd19xor edx, edx
    0020dd1bmov esi, 8
    0020dd20lea rdi, [rip+0x67b55]
    0020dd27sar rbx, 1
    0020dd2acall caml_alloc_custom
    0020dd2fmov [rax+8], rbx
    0020dd33pop rbx
    0020dd34ret
    0020dd35db 0x58
    0020dd36or [rbx-61], bl
    0020dd10
    0020dd39
    0020dd39 // align 0x10
    0020dd40
    0020dd40caml_int64_to_int:
    0020dd40mov rax, [rdi+8]
    0020dd44lea rax, [rax+rax+1]
    0020dd49ret
    0020dd4adb 0x44
    0020dd4badd [rcx], al
    0020dd4dret
    0020dd40
    0020dd4e
    0020dd4e // align 0x10
    0020dd50
    0020dd50caml_int64_of_float_unboxed:
    0020dd50cvttsd2si rax, x0
    0020dd55ret
    0020dd56db 0x0f
    0020dd57sub al, -64
    0020dd59ret
    0020dd50
    0020dd5a
    0020dd5a // align 0x10
    0020dd60
    0020dd60caml_int64_of_float:
    0020dd60push rbx
    0020dd61cvttsd2si rbx, [rdi]
    0020dd66mov ecx, 1
    0020dd6bxor edx, edx
    0020dd6dmov esi, 8
    0020dd72lea rdi, [rip+0x67b03]
    0020dd79call caml_alloc_custom
    0020dd7emov [rax+8], rbx
    0020dd82pop rbx
    0020dd83ret
    0020dd84db 0x58
    0020dd85or [rbx-61], bl
    0020dd60
    0020dd88
    0020dd88 // align 0x10
    0020dd90
    0020dd90caml_int64_to_float_unboxed:
    0020dd90pxor x0, x0
    0020dd94cvtsi2sd x0, rdi
    0020dd99ret
    0020dd9adb 0x0f
    0020dd9bsub al, bh
    0020dd9dret
    0020dd90
    0020dd9e
    0020dd9e // align 0x10
    0020dda0
    0020dda0caml_int64_to_float:
    0020dda0pxor x0, x0
    0020dda4cvtsi2sd x0, [rdi+8]
    0020ddaajmp 0x2075f0
    0020ddafdb 0x3d
    0020ddb0cwde
    0020ddb1db 0xff
    0020ddb2db 0xff
    0020dda0
    0020ddb3
    0020ddb3 // align 0x10
    0020ddc0
    0020ddc0caml_int64_of_int32:
    0020ddc0push rbx
    0020ddc1mov ecx, 1
    0020ddc6movsxd rbx, [rdi+8]
    0020ddcaxor edx, edx
    0020ddccmov esi, 8
    0020ddd1lea rdi, [rip+0x67aa4]
    0020ddd8call caml_alloc_custom
    0020ddddmov [rax+8], rbx
    0020dde1pop rbx
    0020dde2ret
    0020dde3db 0x58
    0020dde4or [rbx-61], bl
    0020ddc0
    0020dde7
    0020dde7 // align 0x10
    0020ddf0
    0020ddf0caml_int64_to_int32:
    0020ddf0push rbx
    0020ddf1mov ecx, 1
    0020ddf6mov rbx, [rdi+8]
    0020ddfaxor edx, edx
    0020ddfcmov esi, 4
    0020de01lea rdi, [rip+0x67ab4]
    0020de08call caml_alloc_custom
    0020de0dmov [rax+8], ebx
    0020de10pop rbx
    0020de11ret
    0020de12db 0x58
    0020de13or [rbx-61], bl
    0020ddf0
    0020de16
    0020de16 // align 0x10
    0020de20
    0020de20caml_int64_of_nativeint:
    0020de20push rbx
    0020de21mov ecx, 1
    0020de26mov rbx, [rdi+8]
    0020de2axor edx, edx
    0020de2cmov esi, 8
    0020de31lea rdi, [rip+0x67a44]
    0020de38call caml_alloc_custom
    0020de3dmov [rax+8], rbx
    0020de41pop rbx
    0020de42ret
    0020de43db 0x58
    0020de44or [rbx-61], bl
    0020de20
    0020de47
    0020de47 // align 0x10
    0020de50
    0020de50caml_int64_to_nativeint:
    0020de50push rbx
    0020de51mov ecx, 1
    0020de56mov rbx, [rdi+8]
    0020de5axor edx, edx
    0020de5cmov esi, 8
    0020de61lea rdi, [rip+0x679d4]
    0020de68call caml_alloc_custom
    0020de6dmov [rax+8], rbx
    0020de71pop rbx
    0020de72ret
    0020de73db 0x58
    0020de74or [rbx-61], bl
    0020de50
    0020de77
    0020de77 // align 0x10
    0020de80
    0020de80caml_int64_compare_unboxed:
    0020de80xor eax, eax
    0020de82cmp rdi, rsi
    0020de85setl dl
    0020de88setg al
    0020de8bmovzx edx, dl
    0020de8esub rax, rdx
    0020de91ret
    0020de92db 0x48
    0020de93sub eax, edx
    0020de95ret
    0020de80
    0020de96
    0020de96 // align 0x10
    0020dea0
    0020dea0caml_int64_compare:
    0020dea0mov rax, [rdi+8]
    0020dea4cmp [rsi+8], rax
    0020dea8setl al
    0020deabsetg dl
    0020deaemovzx edx, dl
    0020deb1movzx eax, al
    0020deb4sub rax, rdx
    0020deb7lea rax, [rax+rax+1]
    0020debcret
    0020debddb 0x44
    0020debeadd [rcx], al
    0020dec0ret
    0020dea0
    0020dec1
    0020dec1 // align 0x10
    0020ded0
    0020ded0caml_int64_format:
    0020ded0push rbp
    0020ded1push rbx
    0020ded2sub rsp, 56
    0020ded6mov rbx, [0x28]
    0020dedfmov [rsp+40], rbx
    0020dee4mov rbx, rsi
    0020dee7mov rdx, rsp
    0020deealea rsi, [rip+0x2166a]
    0020def1call fn_20cff0
    0020def6xor eax, eax
    0020def8mov rdi, rsp
    0020defbmov rsi, [rbx+8]
    0020deffcall caml_alloc_sprintf
    0020df04mov rdx, [rsp+40]
    0020df09sub rdx, [0x28]
    0020df12jne 0x20df1f
    0020df14add rsp, 56
    0020df18pop rbx
    0020df19pop rbp
    0020df1aret
    0020df1bcall fn_f4590
    0020df20db 0x6c
    0020df21out dx, al
    0020df23db 0xff
    0020ded0
    0020df24
    0020df24 // align 0x10
    0020df30
    0020df30caml_int64_of_string:
    0020df30push r12
    0020df32push rbp
    0020df33push rbx
    0020df34sub rsp, 32
    0020df38mov rbx, [0x28]
    0020df41mov [rsp+24], rbx
    0020df46mov rbx, rdi
    0020df49lea rcx, [rsp+12]
    0020df4elea rdx, [rsp+20]
    0020df53lea rsi, [rsp+16]
    0020df58call fn_20cea0
    0020df5dmovsxd rsi, [rsp+16]
    0020df62movzx edx, [rax]
    0020df65mov rdi, rsi
    0020df68movsx ebp, dl
    0020df6blea ecx, [rdx-48]
    0020df6esub ebp, 48
    0020df71cmp cl, 9
    0020df74jbe 0x20df9a
    0020df76movsx ebp, dl
    0020df79lea ecx, [rdx-65]
    0020df7csub ebp, 55
    0020df7fcmp cl, 5
    0020df82jbe 0x20df9a
    0020df84lea ecx, [rdx-97]
    0020df87cmp cl, 5
    0020df8aja 0x20e069
    0020df90movsx ebp, dl
    0020df93sub ebp, 87
    0020df96cmp edi, ebp
    0020df98jle 0x20e069
    0020df9emovsxd rbp, ebp
    0020dfa1lea r12, [rax+1]
    0020dfa5jmp 0x20dfe8
    0020dfa7db 0x60
    0020dfa8add ebx, ebp
    0020dfaadb 0x3d
    0020dfab
    0020dfab 0f 1f 44 00 00 ..D..
    0020dfb0
    0020dfb0loc_20dfb0:
    0020dfb0lea eax, [rcx-65]
    0020dfb3cmp al, 5
    0020dfb5jbe 0x20e058
    0020dfbblea eax, [rcx-97]
    0020dfbecmp al, 5
    0020dfc0ja 0x20e000
    0020dfc2sub ecx, 87
    0020dfc5
    0020dfc5loc_20dfc5:
    0020dfc5cmp edi, ecx
    0020dfc7jle 0x20e000
    0020dfc9
    0020dfc9loc_20dfc9:
    0020dfc9mov rax, rbp
    0020dfccmul rsi
    0020dfcfmov rbp, rax
    0020dfd2jo 0x20e069
    0020dfd8movsxd rcx, ecx
    0020dfdbadd rbp, rcx
    0020dfdejb 0x20e069
    0020dfe4
    0020dfe4loc_20dfe4:
    0020dfe4add r12, 1
    0020dfe8
    0020dfe8loc_20dfe8:
    0020dfe8movsx ecx, [r12]
    0020dfedcmp cl, 95
    0020dff0je 0x20dfe4
    0020dff2lea eax, [rcx-48]
    0020dff5cmp al, 9
    0020dff7ja 0x20dfb0
    0020dff9sub ecx, 48
    0020dffccmp edi, ecx
    0020dffejg 0x20dfc9
    0020e000
    0020e000loc_20e000:
    0020e000mov rdi, rbx
    0020e003call caml_string_length
    0020e008add rbx, rax
    0020e00bcmp r12, rbx
    0020e00ejne 0x20e069
    0020e010mov edx, [rsp+20]
    0020e014mov eax, [rsp+12]
    0020e018test edx, edx
    0020e01ajne 0x20e060
    0020e01ctest eax, eax
    0020e01ejs 0x20e087
    0020e020
    0020e020loc_20e020:
    0020e020mov ecx, 1
    0020e025xor edx, edx
    0020e027mov esi, 8
    0020e02clea rdi, [rip+0x6784d]
    0020e033call caml_alloc_custom
    0020e038mov [rax+8], rbp
    0020e03cmov rdx, [rsp+24]
    0020e041sub rdx, [0x28]
    0020e04ajne 0x20e08c
    0020e04cadd rsp, 32
    0020e050pop rbx
    0020e051pop rbp
    0020e052pop r12
    0020e054ret
    0020e055
    0020e055 0f 1f 00 ...
    0020e058
    0020e058loc_20e058:
    0020e058sub ecx, 55
    0020e05bjmp 0x20dfc5
    0020e060
    0020e060loc_20e060:
    0020e060test eax, eax
    0020e062js 0x20e078
    0020e064test rbp, rbp
    0020e067jns 0x20e020
    0020e069
    0020e069loc_20e069:
    0020e069lea rdi, [rip+0x21008]
    0020e070call caml_failwith
    0020e075nop [rax]
    0020e078
    0020e078loc_20e078:
    0020e078mov rax, 0x8000000000000000
    0020e082cmp rax, rbp
    0020e085jb 0x20e069
    0020e087
    0020e087loc_20e087:
    0020e087neg rbp
    0020e08ajmp 0x20e020
    0020e08c
    0020e08cloc_20e08c:
    0020e08ccall fn_f4590
    0020df30
    0020e091
    0020e091 // align 0x10
    0020e0a0
    0020e0a0caml_int64_bits_of_float_unboxed:
    0020e0a0movq rax, x0
    0020e0a5ret
    0020e0a6db 0x0f
    0020e0a7jle 0x20e069
    0020e0a9ret
    0020e0a0
    0020e0aa
    0020e0aa // align 0x10
    0020e0b0
    0020e0b0caml_int64_float_of_bits_unboxed:
    0020e0b0movq x0, rdi
    0020e0b5ret
    0020e0b6db 0x0f
    0020e0b7outsb dl, [rsi]
    0020e0b8db 0xc7
    0020e0b9ret
    0020e0b0
    0020e0ba
    0020e0ba // align 0x10
    0020e0c0
    0020e0c0caml_int64_bits_of_float:
    0020e0c0push rbx
    0020e0c1mov ecx, 1
    0020e0c6mov rbx, [rdi]
    0020e0c9xor edx, edx
    0020e0cbmov esi, 8
    0020e0d0lea rdi, [rip+0x677a5]
    0020e0d7call caml_alloc_custom
    0020e0dcmov [rax+8], rbx
    0020e0e0pop rbx
    0020e0e1ret
    0020e0e2db 0x58
    0020e0e3or [rbx-61], bl
    0020e0c0
    0020e0e6
    0020e0e6 // align 0x10
    0020e0f0
    0020e0f0caml_int64_float_of_bits:
    0020e0f0movsd_xmm x0, [rdi+8]
    0020e0f5jmp 0x2075f0
    0020e0fadb 0xf2
    0020e0fbxchg eax, esp
    0020e0fcdb 0xff
    0020e0fddb 0xff
    0020e0f0
    0020e0fe
    0020e0fe // align 0x10
    0020e100
    0020e100caml_copy_nativeint:
    0020e100push rbx
    0020e101mov ecx, 1
    0020e106mov rbx, rdi
    0020e109xor edx, edx
    0020e10bmov esi, 8
    0020e110lea rdi, [rip+0x67725]
    0020e117call caml_alloc_custom
    0020e11cmov [rax+8], rbx
    0020e120pop rbx
    0020e121ret
    0020e122db 0x58
    0020e123or [rbx-61], bl
    0020e100
    0020e126
    0020e126 // align 0x10
    0020e130
    0020e130caml_nativeint_neg:
    0020e130push rbx
    0020e131mov rbx, [rdi+8]
    0020e135mov ecx, 1
    0020e13axor edx, edx
    0020e13cmov esi, 8
    0020e141lea rdi, [rip+0x676f4]
    0020e148neg rbx
    0020e14bcall caml_alloc_custom
    0020e150mov [rax+8], rbx
    0020e154pop rbx
    0020e155ret
    0020e156db 0x58
    0020e157or [rbx-61], bl
    0020e130
    0020e15a
    0020e15a // align 0x10
    0020e160
    0020e160caml_nativeint_add:
    0020e160push rbx
    0020e161mov ecx, 1
    0020e166mov rbx, [rsi+8]
    0020e16axor edx, edx
    0020e16cadd rbx, [rdi+8]
    0020e170mov esi, 8
    0020e175lea rdi, [rip+0x676c0]
    0020e17ccall caml_alloc_custom
    0020e181mov [rax+8], rbx
    0020e185pop rbx
    0020e186ret
    0020e187db 0x58
    0020e188or [rbx-61], bl
    0020e160
    0020e18b
    0020e18b // align 0x10
    0020e190
    0020e190caml_nativeint_sub:
    0020e190push rbx
    0020e191mov ecx, 1
    0020e196mov rbx, [rdi+8]
    0020e19axor edx, edx
    0020e19csub rbx, [rsi+8]
    0020e1a0lea rdi, [rip+0x67695]
    0020e1a7mov esi, 8
    0020e1accall caml_alloc_custom
    0020e1b1mov [rax+8], rbx
    0020e1b5pop rbx
    0020e1b6ret
    0020e1b7db 0x58
    0020e1b8or [rbx-61], bl
    0020e190
    0020e1bb
    0020e1bb // align 0x10
    0020e1c0
    0020e1c0caml_nativeint_mul:
    0020e1c0push rbx
    0020e1c1mov rbx, [rdi+8]
    0020e1c5mov ecx, 1
    0020e1caxor edx, edx
    0020e1ccimul rbx, [rsi+8]
    0020e1d1lea rdi, [rip+0x67664]
    0020e1d8mov esi, 8
    0020e1ddcall caml_alloc_custom
    0020e1e2mov [rax+8], rbx
    0020e1e6pop rbx
    0020e1e7ret
    0020e1e8db 0x58
    0020e1e9or [rbx-61], bl
    0020e1c0
    0020e1ec
    0020e1ec // align 0x10
    0020e1f0
    0020e1f0caml_nativeint_div:
    0020e1f0push rbx
    0020e1f1mov rcx, [rsi+8]
    0020e1f5mov rax, [rdi+8]
    0020e1f9test rcx, rcx
    0020e1fcje 0x20e24c
    0020e1femov rdx, 0x8000000000000000
    0020e208cmp rax, rdx
    0020e20bjne 0x20e220
    0020e20dcmp rcx, -1
    0020e211jne 0x20e220
    0020e213mov rax, rdi
    0020e216pop rbx
    0020e217ret
    0020e218db 0x89
    0020e219clc
    0020e21apop rbx
    0020e21bret
    0020e21c
    0020e21c 0f 1f 40 00 ..@.
    0020e220
    0020e220loc_20e220:
    0020e220cqo
    0020e222lea rdi, [rip+0x67617]
    0020e229mov esi, 8
    0020e22eidiv rcx
    0020e231mov ecx, 1
    0020e236xor edx, edx
    0020e238mov rbx, rax
    0020e23bcall caml_alloc_custom
    0020e240mov rdi, rax
    0020e243mov [rax+8], rbx
    0020e247pop rbx
    0020e248mov rax, rdi
    0020e24bret
    0020e24c
    0020e24cloc_20e24c:
    0020e24ccall caml_raise_zero_divide
    0020e1f0
    0020e251
    0020e251 // align 0x10
    0020e260
    0020e260caml_nativeint_mod:
    0020e260push rbx
    0020e261mov rbx, [rsi+8]
    0020e265mov rax, [rdi+8]
    0020e269test rbx, rbx
    0020e26cje 0x20e2d6
    0020e26emov rcx, 0x8000000000000000
    0020e278cmp rax, rcx
    0020e27bjne 0x20e2b0
    0020e27dcmp rbx, -1
    0020e281jne 0x20e2b0
    0020e283mov ecx, 1
    0020e288xor edx, edx
    0020e28amov esi, 8
    0020e28flea rdi, [rip+0x675a6]
    0020e296call caml_alloc_custom
    0020e29bmov [rax+8], 0
    0020e2a3pop rbx
    0020e2a4ret
    0020e2a5db 0x00
    0020e2a6add [rbx-61], bl
    0020e2a9
    0020e2a9 0f 1f 80 00 00 00 00 .......
    0020e2b0
    0020e2b0loc_20e2b0:
    0020e2b0cqo
    0020e2b2mov ecx, 1
    0020e2b7mov esi, 8
    0020e2bcidiv rbx
    0020e2bflea rdi, [rip+0x6757a]
    0020e2c6mov rbx, rdx
    0020e2c9xor edx, edx
    0020e2cbcall caml_alloc_custom
    0020e2d0mov [rax+8], rbx
    0020e2d4pop rbx
    0020e2d5ret
    0020e2d6
    0020e2d6loc_20e2d6:
    0020e2d6call caml_raise_zero_divide
    0020e260
    0020e2db
    0020e2db // align 0x10
    0020e2e0
    0020e2e0caml_nativeint_and:
    0020e2e0push rbx
    0020e2e1mov ecx, 1
    0020e2e6mov rbx, [rdi+8]
    0020e2eaxor edx, edx
    0020e2ecand rbx, [rsi+8]
    0020e2f0lea rdi, [rip+0x67545]
    0020e2f7mov esi, 8
    0020e2fccall caml_alloc_custom
    0020e301mov [rax+8], rbx
    0020e305pop rbx
    0020e306ret
    0020e307db 0x58
    0020e308or [rbx-61], bl
    0020e2e0
    0020e30b
    0020e30b // align 0x10
    0020e310
    0020e310caml_nativeint_or:
    0020e310push rbx
    0020e311mov ecx, 1
    0020e316mov rbx, [rdi+8]
    0020e31axor edx, edx
    0020e31cor rbx, [rsi+8]
    0020e320lea rdi, [rip+0x67515]
    0020e327mov esi, 8
    0020e32ccall caml_alloc_custom
    0020e331mov [rax+8], rbx
    0020e335pop rbx
    0020e336ret
    0020e337db 0x58
    0020e338or [rbx-61], bl
    0020e310
    0020e33b
    0020e33b // align 0x10
    0020e340
    0020e340caml_nativeint_xor:
    0020e340push rbx
    0020e341mov ecx, 1
    0020e346mov rbx, [rdi+8]
    0020e34axor edx, edx
    0020e34cxor rbx, [rsi+8]
    0020e350lea rdi, [rip+0x674e5]
    0020e357mov esi, 8
    0020e35ccall caml_alloc_custom
    0020e361mov [rax+8], rbx
    0020e365pop rbx
    0020e366ret
    0020e367db 0x58
    0020e368or [rbx-61], bl
    0020e340
    0020e36b
    0020e36b // align 0x10
    0020e370
    0020e370caml_nativeint_shift_left:
    0020e370push rbx
    0020e371mov rcx, rsi
    0020e374mov rbx, [rdi+8]
    0020e378xor edx, edx
    0020e37asar rcx, 1
    0020e37dmov esi, 8
    0020e382lea rdi, [rip+0x674b3]
    0020e389shl rbx, cl
    0020e38cmov ecx, 1
    0020e391call caml_alloc_custom
    0020e396mov [rax+8], rbx
    0020e39apop rbx
    0020e39bret
    0020e39cdb 0x58
    0020e39dor [rbx-61], bl
    0020e370
    0020e3a0
    0020e3a0caml_nativeint_shift_right:
    0020e3a0push rbx
    0020e3a1mov rcx, rsi
    0020e3a4mov rbx, [rdi+8]
    0020e3a8xor edx, edx
    0020e3aasar rcx, 1
    0020e3admov esi, 8
    0020e3b2lea rdi, [rip+0x67483]
    0020e3b9sar rbx, cl
    0020e3bcmov ecx, 1
    0020e3c1call caml_alloc_custom
    0020e3c6mov [rax+8], rbx
    0020e3capop rbx
    0020e3cbret
    0020e3ccdb 0x58
    0020e3cdor [rbx-61], bl
    0020e3a0
    0020e3d0
    0020e3d0caml_nativeint_shift_right_unsigned:
    0020e3d0push rbx
    0020e3d1mov rcx, rsi
    0020e3d4mov rbx, [rdi+8]
    0020e3d8xor edx, edx
    0020e3dasar rcx, 1
    0020e3ddmov esi, 8
    0020e3e2lea rdi, [rip+0x67453]
    0020e3e9shr rbx, cl
    0020e3ecmov ecx, 1
    0020e3f1call caml_alloc_custom
    0020e3f6mov [rax+8], rbx
    0020e3fapop rbx
    0020e3fbret
    0020e3fcdb 0x58
    0020e3fdor [rbx-61], bl
    0020e3d0
    0020e400
    0020e400caml_nativeint_direct_bswap:
    0020e400mov rax, rdi
    0020e403bswap rax
    0020e406ret
    0020e407db 0x48
    0020e408bswap eax
    0020e40aret
    0020e400
    0020e40b
    0020e40b // align 0x10
    0020e410
    0020e410caml_nativeint_bswap:
    0020e410push rbx
    0020e411mov ecx, 1
    0020e416mov rbx, [rdi+8]
    0020e41axor edx, edx
    0020e41cmov esi, 8
    0020e421lea rdi, [rip+0x67414]
    0020e428bswap rbx
    0020e42bcall caml_alloc_custom
    0020e430mov [rax+8], rbx
    0020e434pop rbx
    0020e435ret
    0020e436db 0x58
    0020e437or [rbx-61], bl
    0020e410
    0020e43a
    0020e43a // align 0x10
    0020e440
    0020e440caml_nativeint_of_int:
    0020e440push rbx
    0020e441mov ecx, 1
    0020e446mov rbx, rdi
    0020e449xor edx, edx
    0020e44bmov esi, 8
    0020e450lea rdi, [rip+0x673e5]
    0020e457sar rbx, 1
    0020e45acall caml_alloc_custom
    0020e45fmov [rax+8], rbx
    0020e463pop rbx
    0020e464ret
    0020e465db 0x58
    0020e466or [rbx-61], bl
    0020e440
    0020e469
    0020e469 // align 0x10
    0020e470
    0020e470caml_nativeint_to_int:
    0020e470mov rax, [rdi+8]
    0020e474lea rax, [rax+rax+1]
    0020e479ret
    0020e47adb 0x44
    0020e47badd [rcx], al
    0020e47dret
    0020e470
    0020e47e
    0020e47e // align 0x10
    0020e480
    0020e480caml_nativeint_of_float_unboxed:
    0020e480cvttsd2si rax, x0
    0020e485ret
    0020e486db 0x0f
    0020e487sub al, -64
    0020e489ret
    0020e480
    0020e48a
    0020e48a // align 0x10
    0020e490
    0020e490caml_nativeint_of_float:
    0020e490push rbx
    0020e491cvttsd2si rbx, [rdi]
    0020e496mov ecx, 1
    0020e49bxor edx, edx
    0020e49dmov esi, 8
    0020e4a2lea rdi, [rip+0x67393]
    0020e4a9call caml_alloc_custom
    0020e4aemov [rax+8], rbx
    0020e4b2pop rbx
    0020e4b3ret
    0020e4b4db 0x58
    0020e4b5or [rbx-61], bl
    0020e490
    0020e4b8
    0020e4b8 // align 0x10
    0020e4c0
    0020e4c0caml_nativeint_to_float_unboxed:
    0020e4c0pxor x0, x0
    0020e4c4cvtsi2sd x0, rdi
    0020e4c9ret
    0020e4cadb 0x0f
    0020e4cbsub al, bh
    0020e4cdret
    0020e4c0
    0020e4ce
    0020e4ce // align 0x10
    0020e4d0
    0020e4d0caml_nativeint_to_float:
    0020e4d0pxor x0, x0
    0020e4d4cvtsi2sd x0, [rdi+8]
    0020e4dajmp 0x2075f0
    0020e4dfdb 0x0d
    0020e4e0xchg eax, ecx
    0020e4e1db 0xff
    0020e4e2db 0xff
    0020e4d0
    0020e4e3
    0020e4e3 // align 0x10
    0020e4f0
    0020e4f0caml_nativeint_of_int32:
    0020e4f0push rbx
    0020e4f1mov ecx, 1
    0020e4f6movsxd rbx, [rdi+8]
    0020e4faxor edx, edx
    0020e4fcmov esi, 8
    0020e501lea rdi, [rip+0x67334]
    0020e508call caml_alloc_custom
    0020e50dmov [rax+8], rbx
    0020e511pop rbx
    0020e512ret
    0020e513db 0x58
    0020e514or [rbx-61], bl
    0020e4f0
    0020e517
    0020e517 // align 0x10
    0020e520
    0020e520caml_nativeint_to_int32:
    0020e520push rbx
    0020e521mov ecx, 1
    0020e526mov rbx, [rdi+8]
    0020e52axor edx, edx
    0020e52cmov esi, 4
    0020e531lea rdi, [rip+0x67384]
    0020e538call caml_alloc_custom
    0020e53dmov [rax+8], ebx
    0020e540pop rbx
    0020e541ret
    0020e542db 0x58
    0020e543or [rbx-61], bl
    0020e520
    0020e546
    0020e546 // align 0x10
    0020e550
    0020e550caml_nativeint_compare_unboxed:
    0020e550xor eax, eax
    0020e552cmp rdi, rsi
    0020e555setl dl
    0020e558setg al
    0020e55bmovzx edx, dl
    0020e55esub rax, rdx
    0020e561ret
    0020e562db 0x48
    0020e563sub eax, edx
    0020e565ret
    0020e550
    0020e566
    0020e566 // align 0x10
    0020e570
    0020e570caml_nativeint_compare:
    0020e570mov rax, [rdi+8]
    0020e574cmp [rsi+8], rax
    0020e578setl al
    0020e57bsetg dl
    0020e57emovzx edx, dl
    0020e581movzx eax, al
    0020e584sub rax, rdx
    0020e587lea rax, [rax+rax+1]
    0020e58cret
    0020e58ddb 0x44
    0020e58eadd [rcx], al
    0020e590ret
    0020e570
    0020e591
    0020e591 // align 0x10
    0020e5a0
    0020e5a0caml_nativeint_format:
    0020e5a0push rbp
    0020e5a1push rbx
    0020e5a2sub rsp, 56
    0020e5a6mov rbx, [0x28]
    0020e5afmov [rsp+40], rbx
    0020e5b4mov rbx, rsi
    0020e5b7mov rdx, rsp
    0020e5balea rsi, [rip+0x20f9a]
    0020e5c1call fn_20cff0
    0020e5c6xor eax, eax
    0020e5c8mov rdi, rsp
    0020e5cbmov rsi, [rbx+8]
    0020e5cfcall caml_alloc_sprintf
    0020e5d4mov rdx, [rsp+40]
    0020e5d9sub rdx, [0x28]
    0020e5e2jne 0x20e5ef
    0020e5e4add rsp, 56
    0020e5e8pop rbx
    0020e5e9pop rbp
    0020e5earet
    0020e5ebcall fn_f4590
    0020e5f0db 0x9c
    0020e5f1pop rdi
    0020e5f2out dx, al
    0020e5f3db 0xff
    0020e5a0
    0020e5f4
    0020e5f4 // align 0x10
    0020e600
    0020e600caml_nativeint_of_string:
    0020e600push rbx
    0020e601lea rdx, [rip+0x20a7c]
    0020e608mov esi, 64
    0020e60dcall fn_20d210
    0020e612mov ecx, 1
    0020e617xor edx, edx
    0020e619mov esi, 8
    0020e61elea rdi, [rip+0x67217]
    0020e625mov rbx, rax
    0020e628call caml_alloc_custom
    0020e62dmov [rax+8], rbx
    0020e631pop rbx
    0020e632ret
    0020e633db 0x58
    0020e634or [rbx-61], bl
    0020e600
    0020e637
    0020e637 // align 0x10
    0020e640
    0020e640fn_20e640:
    0020e640mov rdx, [rsi+8]
    0020e644xor eax, eax
    0020e646cmp [rdi+8], rdx
    0020e64aje 0x20e655
    0020e64csbb eax, eax
    0020e64eor eax, 1
    0020e651ret
    0020e652db 0x83
    0020e653db 0xc8
    0020e654add ebx, eax
    0020e640
    0020e656
    0020e656 // align 0x10
    0020e660
    0020e660fn_20e660:
    0020e660mov rax, [rdi+8]
    0020e664ret
    0020e665db 0x8b
    0020e666or r11b, r8b
    0020e660
    0020e669
    0020e669 // align 0x10
    0020e670
    0020e670fn_20e670:
    0020e670push rbp
    0020e671push rbx
    0020e672mov rbx, rdi
    0020e675sub rsp, 8
    0020e679call caml_check_pending_actions
    0020e67etest eax, eax
    0020e680je 0x20e693
    0020e682test [rbx+104], 4
    0020e686jne 0x20e6c8
    0020e688call caml_process_pending_actions
    0020e68dtest [rbx+104], 4
    0020e691jne 0x20e6a0
    0020e693
    0020e693loc_20e693:
    0020e693add rsp, 8
    0020e697pop rbx
    0020e698pop rbp
    0020e699ret
    0020e69a
    0020e69a 66 0f 1f 44 00 00 f..D..
    0020e6a0
    0020e6a0loc_20e6a0:
    0020e6a0lea rbp, [rbx+40]
    0020e6a4mov rdi, rbp
    0020e6a7call fn_f4780
    0020e6accmp eax, 16
    0020e6afje 0x20e6f0
    0020e6b1test eax, eax
    0020e6b3jne 0x20e6fa
    0020e6b5
    0020e6b5loc_20e6b5:
    0020e6b5mov [0xfffffffffffffff0], rbx
    0020e6beadd rsp, 8
    0020e6c2pop rbx
    0020e6c3pop rbp
    0020e6c4ret
    0020e6c5
    0020e6c5 0f 1f 00 ...
    0020e6c8
    0020e6c8loc_20e6c8:
    0020e6c8lea rdi, [rbx+40]
    0020e6cccall fn_f47c0
    0020e6d1test eax, eax
    0020e6d3jne 0x20e708
    0020e6d5mov [0xfffffffffffffff0], 0
    0020e6e2call caml_process_pending_actions
    0020e6e7test [rbx+104], 4
    0020e6ebje 0x20e693
    0020e6edjmp 0x20e6a0
    0020e6ef
    0020e6ef 90 .
    0020e6f0
    0020e6f0loc_20e6f0:
    0020e6f0mov rdi, rbp
    0020e6f3call caml_plat_lock_non_blocking_actual
    0020e6f8jmp 0x20e6b5
    0020e6fa
    0020e6faloc_20e6fa:
    0020e6famov esi, eax
    0020e6fclea rdi, [rip+0x20e24]
    0020e703call caml_plat_fatal_error
    0020e708
    0020e708loc_20e708:
    0020e708mov esi, eax
    0020e70alea rdi, [rip+0x20e09]
    0020e711call caml_plat_fatal_error
    0020e670
    0020e716
    0020e716 // align 0x10
    0020e720
    0020e720caml_finalize_channel:
    0020e720push rbp
    0020e721push rbx
    0020e722sub rsp, 8
    0020e726mov rbx, [rdi+8]
    0020e72atest [rbx+104], 4
    0020e72eje 0x20e786
    0020e730cmp [rbx], -1
    0020e733je 0x20e74d
    0020e735cmp [rbx+120], 0
    0020e73aje 0x20e74d
    0020e73ccall caml_runtime_warnings_active
    0020e741test eax, eax
    0020e743jne 0x20e880
    0020e749cmp [rbx+32], 0
    0020e74eje 0x20e800
    0020e754lea rbp, [rip+0x16a2c1]
    0020e75bmov rdi, rbp
    0020e75ecall fn_f4710
    0020e763test eax, eax
    0020e765jne 0x20e8d8
    0020e76bsub [rbx+96], 1
    0020e770je 0x20e790
    0020e772mov rdi, rbp
    0020e775call fn_f47c0
    0020e77atest eax, eax
    0020e77cjne 0x20e8ca
    0020e782add rsp, 8
    0020e786
    0020e786loc_20e786:
    0020e786pop rbx
    0020e787pop rbp
    0020e788ret
    0020e789db 0x08
    0020e78apop rbx
    0020e78bpop rbp
    0020e78cret
    0020e78d
    0020e78d 0f 1f 00 ...
    0020e790
    0020e790loc_20e790:
    0020e790mov rax, [rbx+88]
    0020e794test rax, rax
    0020e797je 0x20e850
    0020e79dmov rdx, [rbx+80]
    0020e7a1mov [rax+80], rdx
    0020e7a5test rdx, rdx
    0020e7a8je 0x20e7b2
    0020e7aamov rax, [rbx+88]
    0020e7aemov [rdx+88], rax
    0020e7b2
    0020e7b2loc_20e7b2:
    0020e7b2pxor x0, x0
    0020e7b6mov rdi, rbp
    0020e7b9movups [rbx+80], x0
    0020e7bdcall fn_f47c0
    0020e7c2test eax, eax
    0020e7c4jne 0x20e8ca
    0020e7calea rdi, [rbx+40]
    0020e7cecall caml_plat_mutex_free
    0020e7d3mov rdi, [rbx+120]
    0020e7d7call caml_stat_free
    0020e7dccmp [rbx], -1
    0020e7dfje 0x20e7ea
    0020e7e1mov rdi, [rbx+112]
    0020e7e5call caml_stat_free
    0020e7ea
    0020e7ealoc_20e7ea:
    0020e7eaadd rsp, 8
    0020e7eemov rdi, rbx
    0020e7f1pop rbx
    0020e7f2pop rbp
    0020e7f3jmp 0x216690
    0020e7f8
    0020e7f8 0f 1f 84 00 00 00 00 00 ........
    0020e800
    0020e800loc_20e800:
    0020e800mov rax, [rbx+112]
    0020e804cmp [rbx+24], rax
    0020e808je 0x20e758
    0020e80ecmp [rbx+120], 0
    0020e813je 0x20e822
    0020e815call caml_runtime_warnings_active
    0020e81atest eax, eax
    0020e81cjne 0x20e8a8
    0020e822
    0020e822loc_20e822:
    0020e822lea rbp, [rip+0x16a1f7]
    0020e829mov rdi, rbp
    0020e82ccall fn_f4710
    0020e831test eax, eax
    0020e833jne 0x20e8d8
    0020e839sub [rbx+96], 1
    0020e83emov rdi, rbp
    0020e841call fn_f47c0
    0020e846test eax, eax
    0020e848je 0x20e786
    0020e84ejmp 0x20e8ca
    0020e850
    0020e850loc_20e850:
    0020e850mov rax, [rip+0x16a1f1]
    0020e857mov rax, [rax+80]
    0020e85bmov [rip+0x16a1e6], rax
    0020e862test rax, rax
    0020e865je 0x20e7b2
    0020e86bmov [rax+88], 0
    0020e873jmp 0x20e7b2
    0020e878
    0020e878 0f 1f 84 00 00 00 00 00 ........
    0020e880
    0020e880loc_20e880:
    0020e880mov rcx, [rbx+120]
    0020e884mov rdi, [rip+0x169c55]
    0020e88blea rdx, [rip+0x21fc6]
    0020e892xor eax, eax
    0020e894mov esi, 1
    0020e899call fn_f41b0
    0020e89ejmp 0x20e74d
    0020e8a3
    0020e8a3 0f 1f 44 00 00 ..D..
    0020e8a8
    0020e8a8loc_20e8a8:
    0020e8a8mov rcx, [rip+0x169c31]
    0020e8afmov edx, 42
    0020e8b4mov esi, 1
    0020e8b9lea rdi, [rip+0x21fd8]
    0020e8c0call fn_f4700
    0020e8c5jmp 0x20e822
    0020e8ca
    0020e8caloc_20e8ca:
    0020e8camov esi, eax
    0020e8cclea rdi, [rip+0x20c47]
    0020e8d3call caml_plat_fatal_error
    0020e8d8
    0020e8d8loc_20e8d8:
    0020e8d8mov esi, eax
    0020e8dalea rdi, [rip+0x20c2e]
    0020e8e1call caml_plat_fatal_error
    0020e720
    0020e8e6
    0020e8e6 // align 0x10