File hevea_f46f610a6b0078f4aa208dda361f21de574cc56ad64b32889301afc466d33979.elf
Function:
    0020b4a0
    0020b4a0fn_20b4a0:
    0020b4a0push r15
    0020b4a2push r14
    0020b4a4mov r14, rdi
    0020b4a7push r13
    0020b4a9push r12
    0020b4abpush rbp
    0020b4acpush rbx
    0020b4adsub rsp, 72
    0020b4b1mov rax, [rip+0x6ab30]
    0020b4b8mov [rsp+24], rsi
    0020b4bdmov rbp, [0x28]
    0020b4c6mov [rsp+56], rbp
    0020b4cbmov rbp, rdx
    0020b4cemov rax, [rax]
    0020b4d2mov [rsp+8], rax
    0020b4d7mov rax, [rdi+6176]
    0020b4delea rbx, [rax+24]
    0020b4e2cmp rbx, [rdi+6184]
    0020b4e9jae 0x20b7c1
    0020b4ef
    0020b4efloc_20b4ef:
    0020b4efmov [rbx+16], 0
    0020b4f6mov [rbx], rbp
    0020b4f9mov [rbx+8], 1
    0020b501mov rdx, [r14+6176]
    0020b508nop [rax+rax]
    0020b510
    0020b510loc_20b510:
    0020b510cmp rbx, rdx
    0020b513je 0x20b5a4
    0020b519
    0020b519loc_20b519:
    0020b519mov eax, [rbx+16]
    0020b51cmov r13, [rbx]
    0020b51fcmp eax, 1
    0020b522je 0x20b610
    0020b528cmp eax, 2
    0020b52bje 0x20b5f0
    0020b531test eax, eax
    0020b533jne 0x20b510
    0020b535lea rax, [r13+8]
    0020b539sub [rbx+8], 1
    0020b53elea rdx, [rbx-24]
    0020b542mov [rbx], rax
    0020b545mov rax, [r14]
    0020b548lea r15, [rax+1]
    0020b54cmov [r14], r15
    0020b54fmovzx r10l, [rax]
    0020b553cmove rbx, rdx
    0020b557mov rbp, r10
    0020b55acmp r10b, 63
    0020b55ejbe 0x20b638
    0020b564cmp r10l, 127
    0020b568jbe 0x20b6e0
    0020b56eshr r10l, 4
    0020b572and ebp, 15
    0020b575mov r15l, r10l
    0020b578and r15l, 7
    0020b57c
    0020b57cloc_20b57c:
    0020b57ctest r15, r15
    0020b57fjne 0x20b6f0
    0020b585mov edi, ebp
    0020b587call caml_atom
    0020b58cmov r12, rax
    0020b58fnop
    0020b590
    0020b590loc_20b590:
    0020b590mov [r13], r12
    0020b594mov rdx, [r14+6176]
    0020b59bcmp rbx, rdx
    0020b59ejne 0x20b519
    0020b5a4
    0020b5a4loc_20b5a4:
    0020b5a4lea rbp, [r14+32]
    0020b5a8cmp rbx, rbp
    0020b5abje 0x20b5ca
    0020b5admov rdi, rbx
    0020b5b0call caml_stat_free
    0020b5b5lea rax, [r14+6176]
    0020b5bcmov [r14+6176], rbp
    0020b5c3mov [r14+6184], rax
    0020b5ca
    0020b5caloc_20b5ca:
    0020b5camov rax, [rsp+56]
    0020b5cfsub rax, [0x28]
    0020b5d8jne 0x20bd31
    0020b5deadd rsp, 72
    0020b5e2pop rbx
    0020b5e3pop rbp
    0020b5e4pop r12
    0020b5e6pop r13
    0020b5e8pop r14
    0020b5eapop r15
    0020b5ecret
    0020b5ed
    0020b5ed 0f 1f 00 ...
    0020b5f0
    0020b5f0loc_20b5f0:
    0020b5f0mov rax, [r13]
    0020b5f4add rax, [rbx+8]
    0020b5f8sub rbx, 24
    0020b5fcmov [r13], rax
    0020b600mov rdx, [r14+6176]
    0020b607jmp 0x20b510
    0020b60c
    0020b60c 0f 1f 40 00 ..@.
    0020b610
    0020b610loc_20b610:
    0020b610mov rax, [r13+8]
    0020b614test rax, rax
    0020b617js 0x20b628
    0020b619mov rdi, r13
    0020b61ccall caml_set_oo_id
    0020b621mov rdx, [r14+6176]
    0020b628
    0020b628loc_20b628:
    0020b628sub rbx, 24
    0020b62cjmp 0x20b510
    0020b631
    0020b631 0f 1f 80 00 00 00 00 .......
    0020b638
    0020b638loc_20b638:
    0020b638cmp r10l, 31
    0020b63cjbe 0x20b6c0
    0020b642mov eax, r10l
    0020b645and ebp, 31
    0020b648and eax, 31
    0020b64bmov [rsp+16], al
    0020b64f
    0020b64floc_20b64f:
    0020b64flea r15, [rbp+8]
    0020b653mov rsi, [rsp+8]
    0020b658mov ecx, 252
    0020b65dmov rdi, r14
    0020b660mov rdx, r15
    0020b663shr rdx, 3
    0020b667call fn_20af70
    0020b66cmov r12, rax
    0020b66fmov rax, [r14+24]
    0020b673test rax, rax
    0020b676je 0x20b688
    0020b678mov rdx, [r14+16]
    0020b67clea rsi, [rdx+1]
    0020b680mov [r14+16], rsi
    0020b684mov [rax+8*rdx], r12
    0020b688
    0020b688loc_20b688:
    0020b688mov rax, r15
    0020b68bmov rdi, r12
    0020b68eand rax, -8
    0020b692lea rdx, [rax+r12-8]
    0020b697mov [rdx], 0
    0020b69elea rdx, [rax-1]
    0020b6a2sub dl, [rsp+16]
    0020b6a6mov [rax+r12-1], dl
    0020b6abmov rsi, [r14]
    0020b6aemov rdx, rbp
    0020b6b1call fn_f47d0
    0020b6b6add [r14], rbp
    0020b6b9jmp 0x20b590
    0020b6be
    0020b6be 66 90 f.
    0020b6c0
    0020b6c0loc_20b6c0:
    0020b6c0cmp r10b, 25
    0020b6c4ja 0x20bd18
    0020b6calea rcx, [rip+0x2634b]
    0020b6d1movsxd rdx, [rcx+4*r10]
    0020b6d5add rdx, rcx
    0020b6d8jmp rdx
    0020b6db
    0020b6db 0f 1f 44 00 00 ..D..
    0020b6e0
    0020b6e0loc_20b6e0:
    0020b6e0lea rcx, [r10+r10]
    0020b6e4and ecx, 126
    0020b6e7lea r12, [rcx+1]
    0020b6ebjmp 0x20b590
    0020b6f0
    0020b6f0loc_20b6f0:
    0020b6f0mov rsi, [rsp+8]
    0020b6f5mov ecx, ebp
    0020b6f7mov rdx, r15
    0020b6famov rdi, r14
    0020b6fdcall fn_20af70
    0020b702mov r12, rax
    0020b705mov rax, [r14+24]
    0020b709test rax, rax
    0020b70cje 0x20b71e
    0020b70emov rdx, [r14+16]
    0020b712lea rsi, [rdx+1]
    0020b716mov [r14+16], rsi
    0020b71amov [rax+8*rdx], r12
    0020b71e
    0020b71eloc_20b71e:
    0020b71elea rsi, [rbx+24]
    0020b722mov rax, [r14+6184]
    0020b729mov rbx, rsi
    0020b72ccmp ebp, 248
    0020b732je 0x20b750
    0020b734cmp rsi, rax
    0020b737jae 0x20b7d1
    0020b73d
    0020b73dloc_20b73d:
    0020b73dmov [rbx+16], 0
    0020b744mov [rbx], r12
    0020b747mov [rbx+8], r15
    0020b74bjmp 0x20b590
    0020b750
    0020b750loc_20b750:
    0020b750cmp r15, 2
    0020b754je 0x20b77a
    0020b756cmp rsi, rax
    0020b759jae 0x20ba36
    0020b75f
    0020b75floc_20b75f:
    0020b75flea rax, [r12+16]
    0020b764sub r15, 2
    0020b768mov [rbx+16], 0
    0020b76flea rsi, [rbx+24]
    0020b773mov [rbx], rax
    0020b776mov [rbx+8], r15
    0020b77a
    0020b77aloc_20b77a:
    0020b77acmp rsi, [r14+6184]
    0020b781jae 0x20bc2a
    0020b787
    0020b787loc_20b787:
    0020b787mov [rsi+16], 1
    0020b78elea rbx, [rsi+24]
    0020b792mov [rsi], r12
    0020b795mov [rsi+8], 1
    0020b79dcmp rbx, [r14+6184]
    0020b7a4jae 0x20bc3a
    0020b7aa
    0020b7aaloc_20b7aa:
    0020b7aamov [rbx+16], 0
    0020b7b1mov [rbx], r12
    0020b7b4mov [rbx+8], 2
    0020b7bcjmp 0x20b590
    0020b7c1
    0020b7c1loc_20b7c1:
    0020b7c1mov rsi, rbx
    0020b7c4call fn_20b3c0
    0020b7c9mov rbx, rax
    0020b7ccjmp 0x20b4ef
    0020b7d1
    0020b7d1loc_20b7d1:
    0020b7d1mov rdi, r14
    0020b7d4call fn_20b3c0
    0020b7d9mov rbx, rax
    0020b7dcjmp 0x20b73d
    0020b7e1mov rdi, r14
    0020b7e4call fn_20abb0
    0020b7e9mov r15, rax
    0020b7ec
    0020b7ecloc_20b7ec:
    0020b7ecmov rsi, [rsp+8]
    0020b7f1mov ecx, 254
    0020b7f6mov rdx, r15
    0020b7f9mov rdi, r14
    0020b7fcmov [rsp+16], r10l
    0020b801call fn_20af70
    0020b806mov r10l, [rsp+16]
    0020b80bmov r12, rax
    0020b80emov rax, [r14+24]
    0020b812test rax, rax
    0020b815je 0x20b827
    0020b817mov rdx, [r14+16]
    0020b81blea rsi, [rdx+1]
    0020b81fmov [r14+16], rsi
    0020b823mov [rax+8*rdx], r12
    0020b827
    0020b827loc_20b827:
    0020b827lea rbp, [8*r15]
    0020b82fmov rsi, [r14]
    0020b832mov rdi, r12
    0020b835mov [rsp+16], r10l
    0020b83amov rdx, rbp
    0020b83dcall fn_f47d0
    0020b842mov r10l, [rsp+16]
    0020b847add [r14], rbp
    0020b84acmp r10l, 14
    0020b84eje 0x20b590
    0020b854cmp r10l, 7
    0020b858je 0x20b590
    0020b85etest r15, r15
    0020b861je 0x20b590
    0020b867lea rsi, [rbp+r12]
    0020b86cnop [rax+rax]
    0020b877nop [rax+rax]
    0020b880
    0020b880loc_20b880:
    0020b880mov rdx, [rax]
    0020b883add rax, 8
    0020b887bswap rdx
    0020b88amov [rax-8], rdx
    0020b88ecmp rsi, rax
    0020b891jne 0x20b880
    0020b893jmp 0x20b590
    0020b898mov rdi, r15
    0020b89bmov [rsp+16], r10l
    0020b8a0call caml_find_custom_operations
    0020b8a5mov r10l, [rsp+16]
    0020b8aatest rax, rax
    0020b8admov rbp, rax
    0020b8b0je 0x20bd36
    0020b8b6cmp r10l, 25
    0020b8baje 0x20bc93
    0020b8c0
    0020b8c0loc_20b8c0:
    0020b8c0mov rax, [r14]
    0020b8c3nop [rax+rax]
    0020b8cenop
    0020b8d0
    0020b8d0loc_20b8d0:
    0020b8d0mov rdx, rax
    0020b8d3add rax, 1
    0020b8d7mov [r14], rax
    0020b8dacmp [rax-1], 0
    0020b8dejne 0x20b8d0
    0020b8e0cmp r10l, 25
    0020b8e4jne 0x20bc4d
    0020b8eamov rax, [rbp+56]
    0020b8eemov r10, [rax+8]
    0020b8f2
    0020b8f2loc_20b8f2:
    0020b8f2lea rdx, [r10+7]
    0020b8f6mov rsi, [rsp+8]
    0020b8fbmov ecx, 255
    0020b900mov rdi, r14
    0020b903shr rdx, 3
    0020b907mov [rsp+16], r10
    0020b90cadd rdx, 1
    0020b910call fn_20af70
    0020b915mov [rax], rbp
    0020b918mov r12, rax
    0020b91blea rdi, [rax+8]
    0020b91fcall [rbp+40]
    0020b922mov r10, [rsp+16]
    0020b927cmp r10, rax
    0020b92ajne 0x20bcfc
    0020b930mov rax, [r14+24]
    0020b934test rax, rax
    0020b937je 0x20b949
    0020b939mov rdx, [r14+16]
    0020b93dlea rsi, [rdx+1]
    0020b941mov [r14+16], rsi
    0020b945mov [rax+8*rdx], r12
    0020b949
    0020b949loc_20b949:
    0020b949cmp [rbp+8], 0
    0020b94eje 0x20b590
    0020b954cmp r12, [rip+0x16cc6d]
    0020b95bjae 0x20b590
    0020b961cmp [rip+0x16cc68], r12
    0020b968jae 0x20b590
    0020b96emov rax, [rsp+8]
    0020b973mov rbp, [rax+96]
    0020b977mov rax, [rbp+136]
    0020b97ecmp rax, [rbp+144]
    0020b985jae 0x20bce7
    0020b98b
    0020b98bloc_20b98b:
    0020b98bmovdqa x0, [rip+0x1e79d]
    0020b993lea rdx, [rax+24]
    0020b997mov [rbp+136], rdx
    0020b99emov [rax], r12
    0020b9a1movups [rax+8], x0
    0020b9a5jmp 0x20b590
    0020b9aamov r15l, [rax+1]
    0020b9aeadd rax, 5
    0020b9b2mov [r14], rax
    0020b9b5bswap r15l
    0020b9b8mov r15l, r15l
    0020b9bbjmp 0x20b7ec
    0020b9c0mov rsi, [rsp+8]
    0020b9c5mov ecx, 253
    0020b9camov edx, 1
    0020b9cfmov rdi, r14
    0020b9d2mov [rsp+16], r10l
    0020b9d7call fn_20af70
    0020b9dcmov r10l, [rsp+16]
    0020b9e1mov r12, rax
    0020b9e4mov rax, [r14+24]
    0020b9e8test rax, rax
    0020b9ebje 0x20b9fd
    0020b9edmov rdx, [r14+16]
    0020b9f1lea rsi, [rdx+1]
    0020b9f5mov [r14+16], rsi
    0020b9f9mov [rax+8*rdx], r12
    0020b9fd
    0020b9fdloc_20b9fd:
    0020b9fdmov rax, [r14]
    0020ba00mov rax, [rax]
    0020ba03mov [r12], rax
    0020ba07add [r14], 8
    0020ba0bcmp r10l, 12
    0020ba0fje 0x20b590
    0020ba15mov rax, [r12]
    0020ba19bswap rax
    0020ba1cmov [r12], rax
    0020ba20jmp 0x20b590
    0020ba25lea rdx, [rax+2]
    0020ba29mov [r14], rdx
    0020ba2cmovzx r15l, [rax+1]
    0020ba31jmp 0x20b7ec
    0020ba36
    0020ba36loc_20ba36:
    0020ba36mov rdi, r14
    0020ba39call fn_20b3c0
    0020ba3emov rbx, rax
    0020ba41jmp 0x20b75f
    0020ba46mov rdi, r14
    0020ba49call fn_20abb0
    0020ba4emov [rsp+16], al
    0020ba52mov rbp, rax
    0020ba55jmp 0x20b64f
    0020ba5amov ebp, [rax+1]
    0020ba5dadd rax, 5
    0020ba61add rbx, 24
    0020ba65mov [r14], rax
    0020ba68bswap ebp
    0020ba6acmp rbx, [r14+6184]
    0020ba71jae 0x20bcb8
    0020ba77
    0020ba77loc_20ba77:
    0020ba77mov eax, ebp
    0020ba79mov [rbx], r13
    0020ba7cadd rbx, 24
    0020ba80mov [rbx-8], 2
    0020ba87mov [rbx-16], rax
    0020ba8bcmp rbx, [r14+6184]
    0020ba92jae 0x20bc80
    0020ba98
    0020ba98loc_20ba98:
    0020ba98mov [rbx+16], 0
    0020ba9fmov [rbx], r13
    0020baa2mov [rbx+8], 1
    0020baaamov rdx, [r14+6176]
    0020bab1jmp 0x20b510
    0020bab6mov rdi, r14
    0020bab9call fn_20abb0
    0020babemov r15, rax
    0020bac1movzx ebp, al
    0020bac4shr r15, 10
    0020bac8jmp 0x20b57c
    0020bacdmov rdi, r14
    0020bad0call fn_20abb0
    0020bad5
    0020bad5loc_20bad5:
    0020bad5cmp [r14+6200], 0
    0020baddjne 0x20bae9
    0020badfmov rdi, [r14+16]
    0020bae3sub rdi, rax
    0020bae6mov rax, rdi
    0020bae9
    0020bae9loc_20bae9:
    0020bae9mov rdx, [r14+24]
    0020baedmov r12, [rdx+8*rax]
    0020baf1jmp 0x20b590
    0020baf6mov edx, [rax+1]
    0020baf9add rax, 5
    0020bafdmov [r14], rax
    0020bb00bswap edx
    0020bb02movsxd rax, edx
    0020bb05lea r12, [rax+rax+1]
    0020bb0ajmp 0x20b590
    0020bb0fmov rdi, r14
    0020bb12call fn_20abb0
    0020bb17lea r12, [rax+rax+1]
    0020bb1cjmp 0x20b590
    0020bb21lea rdx, [rax+2]
    0020bb25mov [r14], rdx
    0020bb28movzx eax, [rax+1]
    0020bb2cjmp 0x20bad5
    0020bb2emovzx edx, [rax+1]
    0020bb32add rax, 3
    0020bb36mov [r14], rax
    0020bb39rol dx, 8
    0020bb3dmovzx eax, dx
    0020bb40jmp 0x20bad5
    0020bb42mov ebp, [rax+1]
    0020bb45add rax, 5
    0020bb49mov [r14], rax
    0020bb4cmov r15l, ebp
    0020bb4fshr ebp, 24
    0020bb52bswap r15l
    0020bb55mov r15l, r15l
    0020bb58shr r15, 10
    0020bb5cjmp 0x20b57c
    0020bb61lea rdx, [rax+2]
    0020bb65mov [r14], rdx
    0020bb68movzx ebp, [rax+1]
    0020bb6cmov [rsp+16], bpl
    0020bb71jmp 0x20b64f
    0020bb76mov edx, [rax+1]
    0020bb79add rax, 5
    0020bb7dmov [r14], rax
    0020bb80bswap edx
    0020bb82mov eax, edx
    0020bb84jmp 0x20bad5
    0020bb89mov r15l, [rax+1]
    0020bb8dadd rax, 5
    0020bb91mov [r14], rax
    0020bb94bswap r15l
    0020bb97mov [rsp+16], r15b
    0020bb9cmov ebp, r15l
    0020bb9fjmp 0x20b64f
    0020bba4lea rdx, [rax+2]
    0020bba8mov [r14], rdx
    0020bbabmovsx rax, [rax+1]
    0020bbb0lea r12, [rax+rax+1]
    0020bbb5jmp 0x20b590
    0020bbbamovzx edx, [rax+1]
    0020bbbeadd rax, 3
    0020bbc2mov [r14], rax
    0020bbc5rol dx, 8
    0020bbc9movsx rax, dx
    0020bbcdlea r12, [rax+rax+1]
    0020bbd2jmp 0x20b590
    0020bbd7lea rdx, [rax+5]
    0020bbdbmov ebp, [rax+1]
    0020bbdeadd rax, 21
    0020bbe2lea r15, [rsp+32]
    0020bbe7mov [r14], rdx
    0020bbeamovdqu x0, [rax-16]
    0020bbefmov rdi, r15
    0020bbf2mov [r14], rax
    0020bbf5bswap ebp
    0020bbf7mov ebp, ebp
    0020bbf9movaps [rsp+32], x0
    0020bbfecall caml_find_code_fragment_by_digest
    0020bc03test rax, rax
    0020bc06je 0x20bccb
    0020bc0cadd rbp, [rax]
    0020bc0fcmp rbp, [rax+8]
    0020bc13jae 0x20bccb
    0020bc19test rbp, rbp
    0020bc1cje 0x20bccb
    0020bc22mov r12, rbp
    0020bc25jmp 0x20b590
    0020bc2a
    0020bc2aloc_20bc2a:
    0020bc2amov rdi, r14
    0020bc2dcall fn_20b3c0
    0020bc32mov rsi, rax
    0020bc35jmp 0x20b787
    0020bc3a
    0020bc3aloc_20bc3a:
    0020bc3amov rsi, rbx
    0020bc3dmov rdi, r14
    0020bc40call fn_20b3c0
    0020bc45mov rbx, rax
    0020bc48jmp 0x20b7aa
    0020bc4d
    0020bc4dloc_20bc4d:
    0020bc4dadd rdx, 5
    0020bc51mov rdi, r14
    0020bc54mov [r14], rdx
    0020bc57call fn_20abb0
    0020bc5cmov r10, rax
    0020bc5fjmp 0x20b8f2
    0020bc64mov rdi, r14
    0020bc67call fn_20ad20
    0020bc6cmov rdi, [rsp+24]
    0020bc71lea rsi, [rip+0x249b8]
    0020bc78call fn_20abd0
    0020bc7dnop [rax]
    0020bc80
    0020bc80loc_20bc80:
    0020bc80mov rsi, rbx
    0020bc83mov rdi, r14
    0020bc86call fn_20b3c0
    0020bc8bmov rbx, rax
    0020bc8ejmp 0x20ba98
    0020bc93
    0020bc93loc_20bc93:
    0020bc93cmp [rax+56], 0
    0020bc98jne 0x20b8c0
    0020bc9emov rsi, [rsp+24]
    0020bca3mov rcx, r15
    0020bca6lea rdx, [rip+0x249f3]
    0020bcadmov rdi, r14
    0020bcb0call fn_20ae60
    0020bcb5nop [rax]
    0020bcb8
    0020bcb8loc_20bcb8:
    0020bcb8mov rsi, rbx
    0020bcbbmov rdi, r14
    0020bcbecall fn_20b3c0
    0020bcc3mov rbx, rax
    0020bcc6jmp 0x20ba77
    0020bccb
    0020bccbloc_20bccb:
    0020bccblea rdi, [rip+0x23299]
    0020bcd2call caml_named_value
    0020bcd7test rax, rax
    0020bcdaje 0x20bd4d
    0020bcdcmov rax, [rax]
    0020bcdfmov r12, [rax]
    0020bce2jmp 0x20b590
    0020bce7
    0020bce7loc_20bce7:
    0020bce7lea rdi, [rbp+112]
    0020bcebcall caml_realloc_custom_table
    0020bcf0mov rax, [rbp+136]
    0020bcf7jmp 0x20b98b
    0020bcfc
    0020bcfcloc_20bcfc:
    0020bcfcmov rsi, [rsp+24]
    0020bd01mov rcx, r15
    0020bd04lea rdx, [rip+0x249bd]
    0020bd0bmov rdi, r14
    0020bd0ecall fn_20ae60
    0020bd13nop [rax+rax]
    0020bd18
    0020bd18loc_20bd18:
    0020bd18mov rdi, r14
    0020bd1bcall fn_20ad20
    0020bd20mov rdi, [rsp+24]
    0020bd25lea rsi, [rip+0x2325d]
    0020bd2ccall fn_20abd0
    0020bd31
    0020bd31loc_20bd31:
    0020bd31call fn_f4590
    0020bd36
    0020bd36loc_20bd36:
    0020bd36mov rsi, [rsp+24]
    0020bd3bmov rcx, r15
    0020bd3elea rdx, [rip+0x2493b]
    0020bd45mov rdi, r14
    0020bd48call fn_20ae60
    0020bd4d
    0020bd4dloc_20bd4d:
    0020bd4dmov rdi, r14
    0020bd50call fn_20ad20
    0020bd55mov rdi, r15
    0020bd58call fn_20ac00
    0020b4a0
    0020bd5d
    0020bd5d // align 0x10
    0020bd60
    0020bd60fn_20bd60:
    0020bd60push r12
    0020bd62lea r12, [rip+0x23233]
    0020bd69push rbp
    0020bd6apush rbx
    0020bd6bmov rbx, rdi
    0020bd6esub rsp, 96
    0020bd72mov eax, [rsi+40]
    0020bd75mov rbp, [0x28]
    0020bd7emov [rsp+88], rbp
    0020bd83mov rbp, rsi
    0020bd86mov [rdi+6200], al
    0020bd8cmov eax, [rsi+40]
    0020bd8ftest eax, eax
    0020bd91je 0x20bd9e
    0020bd93mov rdx, rbp
    0020bd96mov rsi, r12
    0020bd99call fn_20ada0
    0020bd9e
    0020bd9eloc_20bd9e:
    0020bd9emov rsi, [rbp+32]
    0020bda2test rsi, rsi
    0020bda5je 0x20bdb3
    0020bda7mov rdx, [rbp+24]
    0020bdabmov rdi, rbx
    0020bdaecall fn_20ae90
    0020bdb3
    0020bdb3loc_20bdb3:
    0020bdb3mov rsi, r12
    0020bdb6mov rdx, rsp
    0020bdb9mov rdi, rbx
    0020bdbccall fn_20b4a0
    0020bdc1mov rax, [rsp]
    0020bdc5mov rdi, rbx
    0020bdc8mov [rsp+8], rax
    0020bdcdmov rax, [rip+0x6a214]
    0020bdd4mov rbp, [rax]
    0020bdd8lea rax, [rsp+16]
    0020bdddmov r12, [rbp+160]
    0020bde4mov [rbp+160], rax
    0020bdebmov eax, 1
    0020bdf0movq x0, rax
    0020bdf5lea rax, [rsp+8]
    0020bdfapunpcklqdq x0, x0
    0020bdfemov [rsp+40], rax
    0020be03movups [rsp+24], x0
    0020be08mov [rsp+16], r12
    0020be0dcall fn_20ad20
    0020be12call caml_process_pending_actions
    0020be17mov [rbp+160], r12
    0020be1emov rax, [rsp+8]
    0020be23mov rdx, [rsp+88]
    0020be28sub rdx, [0x28]
    0020be31jne 0x20be3c
    0020be33add rsp, 96
    0020be37pop rbx
    0020be38pop rbp
    0020be39pop r12
    0020be3bret
    0020be3c
    0020be3cloc_20be3c:
    0020be3ccall fn_f4590
    0020bd60
    0020be41
    0020be41 // align 0x10
    0020be50
    0020be50caml_free_intern_state:
    0020be50push rbx
    0020be51mov rbx, [rip+0x6a18c]
    0020be58mov rax, [rbx]
    0020be5cmov rdi, [rax+376]
    0020be63test rdi, rdi
    0020be66je 0x20be80
    0020be68call caml_stat_free
    0020be6dmov rax, [rbx]
    0020be71mov [rax+376], 0
    0020be7cpop rbx
    0020be7dret
    0020be7edb 0x00
    0020be7fadd [rbx-61], bl
    0020be50
    0020be82
    0020be82 // align 0x10
    0020be90
    0020be90caml_input_val:
    0020be90push r15
    0020be92push r14
    0020be94push r13
    0020be96push r12
    0020be98push rbp
    0020be99push rbx
    0020be9asub rsp, 216
    0020bea1mov rbp, [0x28]
    0020beaamov [rsp+200], rbp
    0020beb2mov rbp, rdi
    0020beb5call fn_20aca0
    0020bebamov rbx, rax
    0020bebdmov rdi, rbp
    0020bec0call caml_channel_binary_mode
    0020bec5test eax, eax
    0020bec7je 0x20c0d5
    0020becdlea r13, [rsp+144]
    0020bed5mov edx, 5
    0020bedamov rdi, rbp
    0020beddmov rsi, r13
    0020bee0call caml_really_getblock
    0020bee5test rax, rax
    0020bee8je 0x20c0d0
    0020beeecmp rax, 4
    0020bef2jle 0x20c0c4
    0020bef8mov [rbx], r13
    0020befbmov eax, [rsp+144]
    0020bf02lea rdx, [rsp+148]
    0020bf0amov [rbx], rdx
    0020bf0dcmp eax, 0xffffffffbda69584
    0020bf12je 0x20c098
    0020bf18cmp eax, 0xffffffffbfa69584
    0020bf1djne 0x20c080
    0020bf23mov r12l, 27
    0020bf29lea rsi, [rsp+149]
    0020bf31mov rdx, r12
    0020bf34mov rdi, rbp
    0020bf37call caml_really_getblock
    0020bf3ccmp rax, r12
    0020bf3fjl 0x20c0c4
    0020bf45mov [rbx], r13
    0020bf48lea r15, [rsp+32]
    0020bf4dlea r14, [rip+0x23077]
    0020bf54mov rdi, rbx
    0020bf57mov rdx, r15
    0020bf5amov rsi, r14
    0020bf5dcall fn_20b080
    0020bf62mov r13, [rsp+40]
    0020bf67mov rdi, r13
    0020bf6acall fn_f4250
    0020bf6fmovq x1, rax
    0020bf74mov r12, rax
    0020bf77punpcklqdq x1, x1
    0020bf7bmovaps [rsp], x1
    0020bf7ftest rax, rax
    0020bf82je 0x20c0e1
    0020bf88mov rdx, r13
    0020bf8bmov rsi, rax
    0020bf8emov rdi, rbp
    0020bf91call caml_really_getblock
    0020bf96cmp rax, r13
    0020bf99jb 0x20c0bc
    0020bf9fmovdqa x2, [rsp]
    0020bfa4mov eax, [rsp+72]
    0020bfa8movups [rbx], x2
    0020bfabmov [rbx+6200], al
    0020bfb1test eax, eax
    0020bfb3je 0x20bfc7
    0020bfb5mov rdx, r15
    0020bfb8mov rsi, r14
    0020bfbbmov rdi, rbx
    0020bfbecall fn_20ada0
    0020bfc3mov rsi, [rsp+64]
    0020bfc8test rsi, rsi
    0020bfcbje 0x20bfde
    0020bfcdmov rdx, [rsp+56]
    0020bfd2mov rdi, rbx
    0020bfd5call fn_20ae90
    0020bfdalea rdx, [rsp+16]
    0020bfdfmov rsi, r14
    0020bfe2mov rdi, rbx
    0020bfe5call fn_20b4a0
    0020bfeamov rax, [rsp+16]
    0020bfefmov rdi, rbx
    0020bff2mov [rsp+24], rax
    0020bff7mov rax, [rip+0x69fe6]
    0020bffemov rbp, [rax]
    0020c002lea rax, [rsp+80]
    0020c007mov r12, [rbp+160]
    0020c00emov [rbp+160], rax
    0020c015mov eax, 1
    0020c01amovq x0, rax
    0020c01flea rax, [rsp+24]
    0020c024punpcklqdq x0, x0
    0020c028mov [rsp+104], rax
    0020c02dmovups [rsp+88], x0
    0020c032mov [rsp+80], r12
    0020c037call fn_20ad20
    0020c03ccall caml_process_pending_actions
    0020c041mov [rbp+160], r12
    0020c048mov rax, [rsp+24]
    0020c04dmov rdx, [rsp+200]
    0020c055sub rdx, [0x28]
    0020c05ejne 0x20c0e6
    0020c064add rsp, 216
    0020c06bpop rbx
    0020c06cpop rbp
    0020c06dpop r12
    0020c06fpop r13
    0020c071pop r14
    0020c073pop r15
    0020c075ret
    0020c076db 0x5e
    0020c077pop r15
    0020c079ret
    0020c07a
    0020c07a 66 0f 1f 44 00 00 f..D..
    0020c080
    0020c080loc_20c080:
    0020c080mov r12l, 15
    0020c086lea rsi, [rsp+149]
    0020c08ejmp 0x20bf35
    0020c093
    0020c093 0f 1f 44 00 00 ..D..
    0020c098
    0020c098loc_20c098:
    0020c098lea rsi, [rsp+149]
    0020c0a0mov [rbx], rsi
    0020c0a3movzx r12l, [rsp+148]
    0020c0acand r12l, 63
    0020c0b0sub r12l, 5
    0020c0b4movsxd r12, r12l
    0020c0b7jmp 0x20bf35
    0020c0bc
    0020c0bcloc_20c0bc:
    0020c0bcmov rdi, r12
    0020c0bfcall fn_f4370
    0020c0c4
    0020c0c4loc_20c0c4:
    0020c0c4lea rdi, [rip+0x22ee6]
    0020c0cbcall caml_failwith
    0020c0d0
    0020c0d0loc_20c0d0:
    0020c0d0call caml_raise_end_of_file
    0020c0d5
    0020c0d5loc_20c0d5:
    0020c0d5lea rdi, [rip+0x24614]
    0020c0dccall caml_failwith
    0020c0e1
    0020c0e1loc_20c0e1:
    0020c0e1call caml_raise_out_of_memory
    0020c0e6
    0020c0e6loc_20c0e6:
    0020c0e6call fn_f4590
    0020be90
    0020c0eb
    0020c0eb // align 0x10
    0020c0f0
    0020c0f0caml_input_value:
    0020c0f0push r12
    0020c0f2mov ecx, 1
    0020c0f7push rbp
    0020c0f8movq x0, rcx
    0020c0fdpush rbx
    0020c0fepunpcklqdq x0, x0
    0020c102sub rsp, 176
    0020c109mov [rsp+8], rdi
    0020c10elea rdx, [rsp+8]
    0020c113mov rax, [0x28]
    0020c11cmov [rsp+168], rax
    0020c124mov rax, [rip+0x69eb9]
    0020c12bmov rbx, [rax]
    0020c12flea rax, [rsp+32]
    0020c134mov [rsp+56], rdx
    0020c139movups [rsp+40], x0
    0020c13emov r12, [rbx+160]
    0020c145mov [rbx+160], rax
    0020c14cmov [rsp+32], r12
    0020c151mov rbp, [rdi+8]
    0020c155mov [rsp+96], rax
    0020c15alea rax, [rsp+96]
    0020c15fmov [rbx+160], rax
    0020c166mov rdi, rbp
    0020c169lea rax, [rsp+24]
    0020c16emovups [rsp+104], x0
    0020c173mov [rsp+120], rax
    0020c178mov [rsp+24], 1
    0020c181call caml_channel_lock
    0020c186mov rdi, rbp
    0020c189call caml_input_val
    0020c18emov rdi, rbp
    0020c191mov [rsp+24], rax
    0020c196call caml_channel_unlock
    0020c19bmov [rbx+160], r12
    0020c1a2mov rax, [rsp+24]
    0020c1a7mov rdx, [rsp+168]
    0020c1afsub rdx, [0x28]
    0020c1b8jne 0x20c1ca
    0020c1baadd rsp, 176
    0020c1c1pop rbx
    0020c1c2pop rbp
    0020c1c3pop r12
    0020c1c5ret
    0020c1c6call fn_f4590
    0020c1cbdb 0xc1
    0020c1ccsub esi, -1
    0020c0f0
    0020c1cf
    0020c1cf // align 0x10
    0020c1d0
    0020c1d0caml_input_value_to_outside_heap:
    0020c1d0jmp 0x20c0f0
    0020c1d5db 0x17
    0020c1d6db 0xff
    0020c1d7db 0xff
    0020c1d8db 0xff
    0020c1d0
    0020c1d9
    0020c1d9 // align 0x10
    0020c1e0
    0020c1e0caml_input_val_from_bytes:
    0020c1e0push r15
    0020c1e2push r14
    0020c1e4push r13
    0020c1e6push r12
    0020c1e8lea r12, [rip+0x22de8]
    0020c1efpush rbp
    0020c1f0push rbx
    0020c1f1sub rsp, 312
    0020c1f8mov rax, [rip+0x69de5]
    0020c1ffmov [rsp+24], rdi
    0020c204lea r14, [rsp+32]
    0020c209mov rbx, [0x28]
    0020c212mov [rsp+296], rbx
    0020c21amov rbx, rsi
    0020c21dmov rbp, [rax]
    0020c221mov eax, 1
    0020c226mov [rsp+32], 1
    0020c22fmovq x0, rax
    0020c234lea rax, [rsp+24]
    0020c239mov [rsp+184], r14
    0020c241mov [rsp+120], rax
    0020c246lea rax, [rsp+96]
    0020c24bmov r13, [rbp+160]
    0020c252punpcklqdq x0, x0
    0020c256mov [rsp+160], rax
    0020c25elea rax, [rsp+160]
    0020c266mov [rbp+160], rax
    0020c26dmovups [rsp+104], x0
    0020c272movups [rsp+168], x0
    0020c27amov [rsp+96], r13
    0020c27fcall fn_20aca0
    0020c284mov rsi, r12
    0020c287mov r15, rax
    0020c28amov rax, [rsp+24]
    0020c28fmov [r15+8], 0
    0020c297mov rdi, r15
    0020c29aadd rax, rbx
    0020c29dmov [r15], rax
    0020c2a0lea rax, [rsp+48]
    0020c2a5mov rdx, rax
    0020c2a8mov [rsp+16], rax
    0020c2adcall fn_20b080
    0020c2b2movsxd rax, [rsp+52]
    0020c2b7mov rdx, [rsp+56]
    0020c2bcmov rdi, [rsp+24]
    0020c2c1add rbx, rax
    0020c2c4add rdx, rbx
    0020c2c7mov [rsp+8], rdx
    0020c2cccall caml_string_length
    0020c2d1mov rdx, [rsp+8]
    0020c2d6cmp rax, rdx
    0020c2d9jb 0x20c3ca
    0020c2dfmov rsi, [rsp+80]
    0020c2e4test rsi, rsi
    0020c2e7je 0x20c2fa
    0020c2e9mov rdx, [rsp+72]
    0020c2eemov rdi, r15
    0020c2f1call fn_20ae90
    0020c2f6mov eax, [rsp+88]
    0020c2fa
    0020c2faloc_20c2fa:
    0020c2faadd rbx, [rsp+24]
    0020c2ffmov [r15], rbx
    0020c302mov [r15+6200], al
    0020c309test eax, eax
    0020c30bje 0x20c321
    0020c30dmov rdx, [rsp+16]
    0020c312mov rsi, r12
    0020c315mov rdi, r15
    0020c318call fn_20ada0
    0020c31dmov rsi, r12
    0020c320mov rdx, r14
    0020c323mov rdi, r15
    0020c326call fn_20b4a0
    0020c32bmov rax, [rsp+32]
    0020c330mov rdi, r15
    0020c333mov [rsp+40], rax
    0020c338mov rax, [rip+0x69ca5]
    0020c33fmov rbx, [rax]
    0020c343lea rax, [rsp+224]
    0020c34bmov r12, [rbx+160]
    0020c352mov [rbx+160], rax
    0020c359mov eax, 1
    0020c35emovq x0, rax
    0020c363lea rax, [rsp+40]
    0020c368punpcklqdq x0, x0
    0020c36cmov [rsp+248], rax
    0020c374movups [rsp+232], x0
    0020c37cmov [rsp+224], r12
    0020c384call fn_20ad20
    0020c389call caml_process_pending_actions
    0020c38emov [rbx+160], r12
    0020c395mov rax, [rsp+40]
    0020c39amov [rbp+160], r13
    0020c3a1mov rdx, [rsp+296]
    0020c3a9sub rdx, [0x28]
    0020c3b2jne 0x20c3d6
    0020c3b4add rsp, 312
    0020c3bbpop rbx
    0020c3bcpop rbp
    0020c3bdpop r12
    0020c3bfpop r13
    0020c3c1pop r14
    0020c3c3pop r15
    0020c3c5ret
    0020c3c6lea rdi, [rip+0x24347]
    0020c3cdcall caml_failwith
    0020c3d2call fn_f4590
    0020c3d7db 0xb5
    0020c3d8db 0x81
    0020c3d9out dx, al
    0020c3dadb 0xff
    0020c1e0
    0020c3db
    0020c3db // align 0x10
    0020c3e0
    0020c3e0caml_input_value_from_bytes:
    0020c3e0sar rsi, 1
    0020c3e3jmp 0x20c1e0
    0020c3e8db 0xf4
    0020c3e9std
    0020c3eadb 0xff
    0020c3ebdb 0xff
    0020c3e0
    0020c3ec
    0020c3ec // align 0x10
    0020c3f0
    0020c3f0caml_input_value_from_malloc:
    0020c3f0push r13
    0020c3f2push r12
    0020c3f4push rbp
    0020c3f5push rbx
    0020c3f6sub rsp, 72
    0020c3famov r13, [0x28]
    0020c403mov [rsp+56], r13
    0020c408mov r13, [rip+0x69bd5]
    0020c40fmov rax, [r13]
    0020c414test rax, rax
    0020c417je 0x20c4e0
    0020c41dmov rbx, [rax+376]
    0020c424mov r12, rdi
    0020c427mov rbp, rsi
    0020c42atest rbx, rbx
    0020c42dje 0x20c480
    0020c42flea rsi, [r12+rbp]
    0020c433
    0020c433loc_20c433:
    0020c433mov [rbx+8], r12
    0020c437mov rdx, rsp
    0020c43amov rdi, rbx
    0020c43dmov [rbx], rsi
    0020c440lea rsi, [rip+0x22ba6]
    0020c447call fn_20b080
    0020c44cmov rsi, rsp
    0020c44fmov rdi, rbx
    0020c452call fn_20bd60
    0020c457mov rdx, [rsp+56]
    0020c45csub rdx, [0x28]
    0020c465jne 0x20c4e5
    0020c467add rsp, 72
    0020c46bpop rbx
    0020c46cpop rbp
    0020c46dpop r12
    0020c46fpop r13
    0020c471ret
    0020c472db 0x5c
    0020c473pop r13
    0020c475ret
    0020c476
    0020c476 66 2e 0f 1f 84 00 00 00 00 00 f.........
    0020c480
    0020c480loc_20c480:
    0020c480mov edi, 6208
    0020c485call caml_stat_alloc
    0020c48apxor x0, x0
    0020c48emov [rax+16], 0
    0020c496mov rbx, rax
    0020c499lea rax, [rax+32]
    0020c49dmovups [rax-32], x0
    0020c4a1mov [rax-8], 0
    0020c4a9mov [rax+6160], 0
    0020c4b4mov [rbx+6176], rax
    0020c4bblea rax, [rbx+6176]
    0020c4c2mov [rbx+6184], rax
    0020c4c9mov rax, [r13]
    0020c4cemov [rax+376], rbx
    0020c4d5jmp 0x20c433
    0020c4da
    0020c4da 66 0f 1f 44 00 00 f..D..
    0020c4e0
    0020c4e0loc_20c4e0:
    0020c4e0call caml_bad_caml_state
    0020c4e5
    0020c4e5loc_20c4e5:
    0020c4e5call fn_f4590
    0020c3f0
    0020c4ea
    0020c4ea // align 0x10
    0020c4f0
    0020c4f0caml_input_value_from_block:
    0020c4f0push r13
    0020c4f2push r12
    0020c4f4push rbp
    0020c4f5push rbx
    0020c4f6sub rsp, 72
    0020c4famov r13, [0x28]
    0020c503mov [rsp+56], r13
    0020c508mov r13, [rip+0x69ad5]
    0020c50fmov rax, [r13]
    0020c514test rax, rax
    0020c517je 0x20c5f0
    0020c51dmov rbx, [rax+376]
    0020c524mov r12, rdi
    0020c527mov rbp, rsi
    0020c52atest rbx, rbx
    0020c52dje 0x20c590
    0020c52fmov [rbx], r12
    0020c532mov rdx, rsp
    0020c535lea rsi, [rip+0x22ac9]
    0020c53cmov rdi, rbx
    0020c53fmov [rbx+8], 0
    0020c547call fn_20b080
    0020c54cmovsxd rax, [rsp+4]
    0020c551add rax, [rsp+8]
    0020c556cmp rbp, rax
    0020c559jb 0x20c5f5
    0020c55fmov rsi, rsp
    0020c562mov rdi, rbx
    0020c565call fn_20bd60
    0020c56amov rdx, [rsp+56]
    0020c56fsub rdx, [0x28]
    0020c578jne 0x20c601
    0020c57eadd rsp, 72
    0020c582pop rbx
    0020c583pop rbp
    0020c584pop r12
    0020c586pop r13
    0020c588ret
    0020c589db 0x5c
    0020c58apop r13
    0020c58cret
    0020c58d
    0020c58d 0f 1f 00 ...
    0020c590
    0020c590loc_20c590:
    0020c590mov edi, 6208
    0020c595call caml_stat_alloc
    0020c59apxor x0, x0
    0020c59emov [rax+16], 0
    0020c5a6mov rbx, rax
    0020c5a9lea rax, [rax+32]
    0020c5admovups [rax-32], x0
    0020c5b1mov [rax-8], 0
    0020c5b9mov [rax+6160], 0
    0020c5c4mov [rbx+6176], rax
    0020c5cblea rax, [rbx+6176]
    0020c5d2mov [rbx+6184], rax
    0020c5d9mov rax, [r13]
    0020c5demov [rax+376], rbx
    0020c5e5jmp 0x20c533
    0020c5ea
    0020c5ea 66 0f 1f 44 00 00 f..D..
    0020c5f0
    0020c5f0loc_20c5f0:
    0020c5f0call caml_bad_caml_state
    0020c5f5
    0020c5f5loc_20c5f5:
    0020c5f5lea rdi, [rip+0x24144]
    0020c5fccall caml_failwith
    0020c601
    0020c601loc_20c601:
    0020c601call fn_f4590
    0020c4f0
    0020c606
    0020c606 // align 0x40
    0020c640
    0020c640caml_marshal_data_size:
    0020c640push rbp
    0020c641mov rbp, rdi
    0020c644push rbx
    0020c645mov rbx, rsi
    0020c648sar rbx, 1
    0020c64bsub rsp, 8
    0020c64fcall fn_20aca0
    0020c654lea rdi, [rbx+rbp]
    0020c658mov [rax], rdi
    0020c65bmov rcx, rax
    0020c65emov eax, [rdi]
    0020c660lea rdx, [rdi+4]
    0020c664mov [rcx], rdx
    0020c667cmp eax, 0xffffffffbea69584
    0020c66cje 0x20c770
    0020c672cmp eax, 0xffffffffbfa69584
    0020c677je 0x20c748
    0020c67dcmp eax, 0xffffffffbda69584
    0020c682jne 0x20c792
    0020c688lea rax, [rdi+5]
    0020c68cmov [rcx], rax
    0020c68fmovzx edx, [rdi+4]
    0020c693mov r9l, edx
    0020c696lea rdx, [rdi+6]
    0020c69amov [rcx], rdx
    0020c69dmovzx esi, [rdi+5]
    0020c6a1and r9l, 63
    0020c6a5mov rax, rsi
    0020c6a8and eax, 127
    0020c6abtest sil, sil
    0020c6aejns 0x20c72d
    0020c6b0xor edi, edi
    0020c6b2mov r10l, -1
    0020c6b8mov r11, 0x1ffffffffffffff
    0020c6c2nop [rax+rax]
    0020c6cdnop [rax+rax]
    0020c6d8nop [rax+rax]
    0020c6e3nop [rax+rax]
    0020c6eenop [rax+rax]
    0020c6f9nop [rax]
    0020c6fcmov rsi, rdx
    0020c6ffadd rdx, 1
    0020c703mov r8, rax
    0020c706mov [rcx], rdx
    0020c709movzx esi, [rsi]
    0020c70cshl r8, 7
    0020c710cmp r11, rax
    0020c713cmovb edi, r10l
    0020c717mov rax, rsi
    0020c71aand eax, 127
    0020c71dor rax, r8
    0020c720test sil, sil
    0020c723js 0x20c700
    0020c725test edi, edi
    0020c727jne 0x20c79e
    0020c729lea edx, [r9-16]
    0020c72d
    0020c72dloc_20c72d:
    0020c72dadd rsp, 8
    0020c731movsxd rdx, edx
    0020c734pop rbx
    0020c735pop rbp
    0020c736add rax, rdx
    0020c739lea rax, [rax+rax+1]
    0020c73eret
    0020c73fdb 0x44
    0020c740add [rcx], al
    0020c742ret
    0020c743
    0020c743 0f 1f 44 00 00 ..D..
    0020c748
    0020c748loc_20c748:
    0020c748add rdi, 8
    0020c74cmov [rcx], rdi
    0020c74fmov rdi, rcx
    0020c752call fn_20abb0
    0020c757mov edx, 16
    0020c75cadd rsp, 8
    0020c760add rax, rdx
    0020c763pop rbx
    0020c764pop rbp
    0020c765lea rax, [rax+rax+1]
    0020c76aret
    0020c76b
    0020c76b 0f 1f 44 00 00 ..D..
    0020c770
    0020c770loc_20c770:
    0020c770mov eax, [rdi+4]
    0020c773mov edx, 4
    0020c778add rdi, 8
    0020c77cmov [rcx], rdi
    0020c77fadd rsp, 8
    0020c783bswap eax
    0020c785mov eax, eax
    0020c787pop rbx
    0020c788pop rbp
    0020c789add rax, rdx
    0020c78clea rax, [rax+rax+1]
    0020c791ret
    0020c792
    0020c792loc_20c792:
    0020c792lea rdi, [rip+0x22887]
    0020c799call caml_failwith
    0020c79e
    0020c79eloc_20c79e:
    0020c79elea rdi, [rip+0x23fc3]
    0020c7a5call caml_failwith
    0020c640
    0020c7aa
    0020c7aa // align 0x10
    0020c7b0
    0020c7b0caml_deserialize_uint_1:
    0020c7b0sub rsp, 8
    0020c7b4mov rax, [rip+0x69829]
    0020c7bbmov rax, [rax]
    0020c7bftest rax, rax
    0020c7c2je 0x20c7f0
    0020c7c4mov rax, [rax+376]
    0020c7cbtest rax, rax
    0020c7ceje 0x20c7f5
    0020c7d0mov rdx, [rax]
    0020c7d3lea rcx, [rdx+1]
    0020c7d7mov [rax], rcx
    0020c7damovzx eax, [rdx]
    0020c7ddadd rsp, 8
    0020c7e1ret
    0020c7e2db 0x83
    0020c7e3db 0xc4
    0020c7e4or bl, al
    0020c7e6
    0020c7e6 66 2e 0f 1f 84 00 00 00 00 00 f.........
    0020c7f0
    0020c7f0loc_20c7f0:
    0020c7f0call caml_bad_caml_state
    0020c7f5
    0020c7f5loc_20c7f5:
    0020c7f5lea rdi, [rip+0x23fb4]
    0020c7fccall caml_fatal_error
    0020c7b0
    0020c801
    0020c801 // align 0x10
    0020c810
    0020c810caml_deserialize_sint_1:
    0020c810sub rsp, 8
    0020c814mov rax, [rip+0x697c9]
    0020c81bmov rax, [rax]
    0020c81ftest rax, rax
    0020c822je 0x20c850
    0020c824mov rax, [rax+376]
    0020c82btest rax, rax
    0020c82eje 0x20c855
    0020c830mov rdx, [rax]
    0020c833lea rcx, [rdx+1]
    0020c837mov [rax], rcx
    0020c83amovsx eax, [rdx]
    0020c83dadd rsp, 8
    0020c841ret
    0020c842db 0x83
    0020c843db 0xc4
    0020c844or bl, al
    0020c846
    0020c846 66 2e 0f 1f 84 00 00 00 00 00 f.........
    0020c850
    0020c850loc_20c850:
    0020c850call caml_bad_caml_state
    0020c855
    0020c855loc_20c855:
    0020c855lea rdi, [rip+0x23f54]
    0020c85ccall caml_fatal_error
    0020c810
    0020c861
    0020c861 // align 0x10
    0020c870
    0020c870caml_deserialize_uint_2:
    0020c870sub rsp, 8
    0020c874mov rax, [rip+0x69769]
    0020c87bmov rax, [rax]
    0020c87ftest rax, rax
    0020c882je 0x20c8b0
    0020c884mov rcx, [rax+376]
    0020c88btest rcx, rcx
    0020c88eje 0x20c8b5
    0020c890mov rdx, [rcx]
    0020c893movzx eax, [rdx]
    0020c896add rdx, 2
    0020c89amov [rcx], rdx
    0020c89dadd rsp, 8
    0020c8a1rol ax, 8
    0020c8a5movzx eax, ax
    0020c8a8ret
    0020c8a9db 0x0f
    0020c8aamov bh, 192
    0020c8acret
    0020c8ad
    0020c8ad 0f 1f 00 ...
    0020c8b0
    0020c8b0loc_20c8b0:
    0020c8b0call caml_bad_caml_state
    0020c8b5
    0020c8b5loc_20c8b5:
    0020c8b5lea rdi, [rip+0x23ef4]
    0020c8bcxor eax, eax
    0020c8becall caml_fatal_error
    0020c870
    0020c8c3
    0020c8c3 // align 0x10
    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