File hevea_f46f610a6b0078f4aa208dda361f21de574cc56ad64b32889301afc466d33979.elf
Function:
    0020a700
    0020a700caml_hash:
    0020a700push r15
    0020a702mov eax, 256
    0020a707push r14
    0020a709push r13
    0020a70bpush r12
    0020a70dpush rbp
    0020a70epush rbx
    0020a70fsub rsp, 2088
    0020a716mov rbx, [0x28]
    0020a71fmov [rsp+2072], rbx
    0020a727mov rbx, rsi
    0020a72amov [rsp+16], rcx
    0020a72fsar rbx, 1
    0020a732cmp rsi, 513
    0020a739cmovbe rax, rbx
    0020a73dsar rdx, 1
    0020a740sar rdi, 1
    0020a743mov r13l, edx
    0020a746mov [rsp+8], rax
    0020a74btest rdi, rdi
    0020a74ejle 0x20a7ec
    0020a754mov r14, rdi
    0020a757mov r15l, 1
    0020a75dlea r12, [rsp+16]
    0020a762xor ebx, ebx
    0020a764lea rbp, [rip+0x27281]
    0020a76bnop
    0020a76cadd rbx, 1
    0020a770
    0020a770loc_20a770:
    0020a770mov rsi, [r12+8*rbx-8]
    0020a775test sil, 1
    0020a779jne 0x20aa65
    0020a77flea rcx, [rsi-8]
    0020a783
    0020a783loc_20a783:
    0020a783movzx edi, [rcx]
    0020a786mov r8, rsi
    0020a789lea eax, [rdi+11]
    0020a78ccmp dil, -11
    0020a790jb 0x20aa80
    0020a796movzx eax, al
    0020a799movsxd rax, [rbp+4*rax]
    0020a79eadd rax, rbp
    0020a7a1jmp rax
    0020a7a4nop [rax+rax]
    0020a7acmov rax, [rsi]
    0020a7afmov rax, [rax+24]
    0020a7b3test rax, rax
    0020a7b6je 0x20a7e2
    0020a7b8mov rdi, rsi
    0020a7bbcall rax
    0020a7bdimul eax, eax, 0xffffffffcc9e2d51
    0020a7c3sub r14, 1
    0020a7c7rol eax, 15
    0020a7caimul eax, eax, 0x1b873593
    0020a7d0xor eax, r13l
    0020a7d3rol eax, 13
    0020a7d6lea r13l, [rax+4*rax-0x19ab949c]
    0020a7decmp rbx, r15
    0020a7e1jge 0x20a7ec
    0020a7e3test r14, r14
    0020a7e6jg 0x20a770
    0020a7e8mov eax, r13l
    0020a7ebshr eax, 16
    0020a7eexor eax, r13l
    0020a7f1imul eax, eax, 0xffffffff85ebca6b
    0020a7f7mov edx, eax
    0020a7f9shr edx, 13
    0020a7fcxor edx, eax
    0020a7feimul edx, edx, 0xffffffffc2b2ae35
    0020a804mov eax, edx
    0020a806shr eax, 16
    0020a809xor eax, edx
    0020a80badd rax, rax
    0020a80eand eax, 0x7ffffffe
    0020a813add rax, 1
    0020a817mov rdx, [rsp+2072]
    0020a81fsub rdx, [0x28]
    0020a828jne 0x20ab08
    0020a82eadd rsp, 2088
    0020a835pop rbx
    0020a836pop rbp
    0020a837pop r12
    0020a839pop r13
    0020a83bpop r14
    0020a83dpop r15
    0020a83fret
    0020a840nop [rax]
    0020a844mov rax, [rcx]
    0020a847shr rax, 10
    0020a84bje 0x20a7e2
    0020a84dmov rsi, r14
    0020a850sub rsi, rax
    0020a853jmp 0x20a86d
    0020a855nop [rax]
    0020a85cadd r8, 8
    0020a860
    0020a860loc_20a860:
    0020a860cmp r14, rsi
    0020a863je 0x20a7e2
    0020a869movsd_xmm x0, [r8]
    0020a86emov edi, r13l
    0020a871call caml_hash_mix_double
    0020a876mov r13l, eax
    0020a879sub r14, 1
    0020a87djne 0x20a860
    0020a87fjmp 0x20a7ec
    0020a884nop [rax+rax]
    0020a88cmovsd_xmm x0, [rsi]
    0020a890mov edi, r13l
    0020a893sub r14, 1
    0020a897call caml_hash_mix_double
    0020a89cmov r13l, eax
    0020a89fjmp 0x20a7e2
    0020a8a4nop [rax+rax]
    0020a8acmov edi, r13l
    0020a8afsub r14, 1
    0020a8b3call caml_hash_mix_string
    0020a8b8mov r13l, eax
    0020a8bbjmp 0x20a7e2
    0020a8c0nop [rax]
    0020a8c4mov rax, [rcx]
    0020a8c7shr rax, 10
    0020a8cbimul eax, eax, 0x64f16a88
    0020a8d1rol eax, 15
    0020a8d4imul eax, eax, 0x1b873593
    0020a8daxor eax, r13l
    0020a8ddrol eax, 13
    0020a8e0lea r13l, [rax+4*rax-0x19ab949c]
    0020a8e8mov rax, [rcx]
    0020a8ebshr rax, 10
    0020a8efshl rax, 3
    0020a8f3sub rsi, rax
    0020a8f6jmp 0x20a783
    0020a8fbnop
    0020a8fcmov rcx, [rsi+8]
    0020a900mov rax, rcx
    0020a903mov rsi, rcx
    0020a906sar rcx, 1
    0020a909sar rax, 33
    0020a90dsar rsi, 63
    0020a911xor eax, esi
    0020a913xor eax, ecx
    0020a915jmp 0x20a7c1
    0020a91anop
    0020a91cmov r8, [rcx]
    0020a91fmov rdi, [rsi+8]
    0020a923mov rax, [rcx]
    0020a926shl rdi, 8
    0020a92ashr r8, 10
    0020a92eand ah, 252
    0020a931imul eax, eax, 0xffffffffcc9e2d51
    0020a937rol eax, 15
    0020a93aimul eax, eax, 0x1b873593
    0020a940xor eax, r13l
    0020a943rol eax, 13
    0020a946shr rdi, 9
    0020a94alea r13l, [rax+4*rax-0x19ab949c]
    0020a952je 0x20a9c0
    0020a954lea r9, [rsi+8*rdi]
    0020a958mov rcx, rsi
    0020a95bnop [rax+rax]
    0020a966nop [rax+rax]
    0020a971nop [rax+rax]
    0020a97cmov r10, [rcx]
    0020a97fadd rcx, 8
    0020a983mov rax, r10
    0020a986mov r11, r10
    0020a989sar rax, 32
    0020a98dsar r11, 63
    0020a991xor eax, r11l
    0020a994xor eax, r10l
    0020a997imul eax, eax, 0xffffffffcc9e2d51
    0020a99drol eax, 15
    0020a9a0imul eax, eax, 0x1b873593
    0020a9a6xor eax, r13l
    0020a9a9rol eax, 13
    0020a9aclea r13l, [rax+4*rax-0x19ab949c]
    0020a9b4cmp r9, rcx
    0020a9b7jne 0x20a980
    0020a9b9sub r14, rdi
    0020a9bccmp [rsp+8], r15
    0020a9c1jle 0x20a7e2
    0020a9c7cmp rdi, r8
    0020a9cajae 0x20a7e2
    0020a9d0lea rsi, [rsi+8*rdi]
    0020a9d4mov rax, r15
    0020a9d7jmp 0x20aa07
    0020a9d9nop [rax+rax]
    0020a9e4nop [rax+rax]
    0020a9efnop [rax+rax]
    0020a9fanop
    0020a9fccmp [rsp+8], rax
    0020aa01jle 0x20aa25
    0020aa03mov rcx, [rsi]
    0020aa06add rax, 1
    0020aa0aadd rsi, 8
    0020aa0emov [r12+8*rax-8], rcx
    0020aa13mov rcx, rax
    0020aa16sub rcx, r15
    0020aa19add rcx, rdi
    0020aa1ccmp rcx, r8
    0020aa1fjb 0x20aa00
    0020aa21mov r15, rax
    0020aa24jmp 0x20a7e2
    0020aa29nop [rax]
    0020aa2cmov eax, 1000
    0020aa31jmp 0x20aa5c
    0020aa33nop [rax+rax]
    0020aa3cmovzx edi, [rsi-8]
    0020aa40
    0020aa40loc_20aa40:
    0020aa40lea rcx, [rsi-8]
    0020aa44cmp dil, -6
    0020aa48jne 0x20a787
    0020aa4esub rax, 1
    0020aa52je 0x20a7e2
    0020aa58mov rsi, [rsi]
    0020aa5btest sil, 1
    0020aa5fje 0x20aa40
    0020aa61mov rax, rsi
    0020aa64mov rcx, rsi
    0020aa67sar rax, 32
    0020aa6bsar rcx, 63
    0020aa6fxor eax, ecx
    0020aa71xor eax, esi
    0020aa73jmp 0x20a7c1
    0020aa78nop [rax]
    0020aa7cmov rax, [rcx]
    0020aa7fmov rsi, [rcx]
    0020aa82and ah, 252
    0020aa85shr rsi, 10
    0020aa89imul eax, eax, 0xffffffffcc9e2d51
    0020aa8frol eax, 15
    0020aa92imul eax, eax, 0x1b873593
    0020aa98xor eax, r13l
    0020aa9brol eax, 13
    0020aa9elea r13l, [rax+4*rax-0x19ab949c]
    0020aaa6cmp [rsp+8], r15
    0020aaabjle 0x20a7e2
    0020aab1test rsi, rsi
    0020aab4je 0x20a7e2
    0020aabalea rdi, [r12+8*r15]
    0020aabexor eax, eax
    0020aac0jmp 0x20aaeb
    0020aac2nop [rax+rax]
    0020aacdnop [rax+rax]
    0020aad8nop [rax]
    0020aadccmp [rsp+8], r15
    0020aae1jle 0x20a7e2
    0020aae7mov rcx, [r8]
    0020aaeaadd r15, 1
    0020aaeeadd r8, 8
    0020aaf2mov [rdi+8*rax], rcx
    0020aaf6add rax, 1
    0020aafacmp rax, rsi
    0020aafdjb 0x20aae0
    0020aaffjmp 0x20a7e2
    0020ab04call fn_f4590
    0020ab09db 0x83
    0020ab0adb 0x9a
    0020ab0bout dx, al
    0020ab0cdb 0xff
    0020a700
    0020ab0d
    0020ab0d // align 0x10
    0020ab10
    0020ab10caml_string_hash:
    0020ab10sub rsp, 8
    0020ab14sar rdi, 1
    0020ab17call caml_hash_mix_string
    0020ab1cadd rsp, 8
    0020ab20mov edx, eax
    0020ab22shr eax, 16
    0020ab25xor eax, edx
    0020ab27imul eax, eax, 0xffffffff85ebca6b
    0020ab2dmov edx, eax
    0020ab2fshr edx, 13
    0020ab32xor edx, eax
    0020ab34imul edx, edx, 0xffffffffc2b2ae35
    0020ab3amov eax, edx
    0020ab3cshr eax, 16
    0020ab3fxor eax, edx
    0020ab41add rax, rax
    0020ab44and eax, 0x7ffffffe
    0020ab49add rax, 1
    0020ab4dret
    0020ab4edb 0x83
    0020ab4frol [rcx], -61
    0020ab10
    0020ab52
    0020ab52 // align 0x10
    0020ab60
    0020ab60caml_hash_variant:
    0020ab60movzx edx, [rdi]
    0020ab63mov eax, 1
    0020ab68test dl, dl
    0020ab6aje 0x20aba0
    0020ab6cnop [rax+rax]
    0020ab77nop [rax+rax]
    0020ab7csar rax, 1
    0020ab7fadd rdi, 1
    0020ab83imul eax, eax, 223
    0020ab89add eax, edx
    0020ab8bmovzx edx, [rdi]
    0020ab8ecdqe
    0020ab90lea rax, [rax+rax+1]
    0020ab95test dl, dl
    0020ab97jne 0x20ab80
    0020ab99cdqe
    0020ab9bret
    0020ab9cret
    0020ab9ddb 0x48
    0020ab9ecwde
    0020ab9fret
    0020aba0
    0020aba0loc_20aba0:
    0020aba0ret
    0020ab60
    0020aba1
    0020aba1 // align 0x10
    0020abb0
    0020abb0fn_20abb0:
    0020abb0mov rdx, [rdi]
    0020abb3mov rax, [rdx]
    0020abb6add rdx, 8
    0020abbamov [rdi], rdx
    0020abbdbswap rax
    0020abc0ret
    0020abb0
    0020abc1
    0020abc1 // align 0x10
    0020abd0
    0020abd0fn_20abd0:
    0020abd0push rax
    0020abd1pop rax
    0020abd2xor eax, eax
    0020abd4mov rdx, rsi
    0020abd7sub rsp, 8
    0020abdbmov rsi, rdi
    0020abdelea rdi, [rip+0x24361]
    0020abe5call caml_alloc_sprintf
    0020abeamov rdi, rax
    0020abedcall caml_failwith_value
    0020abd0
    0020abf2
    0020abf2 // align 0x10
    0020ac00
    0020ac00fn_20ac00:
    0020ac00push rbx
    0020ac01mov ecx, 256
    0020ac06mov esi, 256
    0020ac0blea r8, [rip+0x2592e]
    0020ac12sub rsp, 272
    0020ac19mov rax, [0x28]
    0020ac22mov [rsp+264], rax
    0020ac2amov rax, rdi
    0020ac2dmov rbx, rsp
    0020ac30sub rsp, 8
    0020ac34mov rdi, rbx
    0020ac37movzx edx, [rax+15]
    0020ac3bpush rdx
    0020ac3cmovzx edx, [rax+14]
    0020ac40push rdx
    0020ac41movzx edx, [rax+13]
    0020ac45push rdx
    0020ac46movzx edx, [rax+12]
    0020ac4apush rdx
    0020ac4bmovzx edx, [rax+11]
    0020ac4fpush rdx
    0020ac50movzx edx, [rax+10]
    0020ac54push rdx
    0020ac55movzx edx, [rax+9]
    0020ac59push rdx
    0020ac5amovzx edx, [rax+8]
    0020ac5epush rdx
    0020ac5fmovzx edx, [rax+7]
    0020ac63push rdx
    0020ac64movzx edx, [rax+6]
    0020ac68push rdx
    0020ac69movzx edx, [rax+5]
    0020ac6dpush rdx
    0020ac6emovzx edx, [rax+4]
    0020ac72push rdx
    0020ac73movzx edx, [rax+3]
    0020ac77push rdx
    0020ac78movzx edx, [rax+2]
    0020ac7cpush rdx
    0020ac7dmovzx edx, [rax+1]
    0020ac81push rdx
    0020ac82movzx r9l, [rax]
    0020ac86mov edx, 1
    0020ac8bxor eax, eax
    0020ac8dcall fn_f46b0
    0020ac92mov rsp, rbx
    0020ac95mov rdi, rbx
    0020ac98call caml_failwith
    0020ac00
    0020ac9d
    0020ac9d // align 0x10
    0020aca0
    0020aca0fn_20aca0:
    0020aca0push rbx
    0020aca1mov rbx, [rip+0x6b340]
    0020aca8mov rax, [rbx]
    0020acactest rax, rax
    0020acafje 0x20ad18
    0020acb1mov rax, [rax+376]
    0020acb8test rax, rax
    0020acbbje 0x20acc0
    0020acbdpop rbx
    0020acberet
    0020acbf
    0020acbf 90 .
    0020acc0
    0020acc0loc_20acc0:
    0020acc0mov edi, 6208
    0020acc5call caml_stat_alloc
    0020accapxor x0, x0
    0020accelea rdx, [rax+32]
    0020acd2movups [rax], x0
    0020acd5mov [rax+6176], rdx
    0020acdclea rdx, [rax+6176]
    0020ace3mov [rax+16], 0
    0020acebmov [rax+24], 0
    0020acf3mov [rax+6192], 0
    0020acfemov [rax+6184], rdx
    0020ad05mov rdx, [rbx]
    0020ad09mov [rdx+376], rax
    0020ad10pop rbx
    0020ad11ret
    0020ad12
    0020ad12 66 0f 1f 44 00 00 f..D..
    0020ad18
    0020ad18loc_20ad18:
    0020ad18call caml_bad_caml_state
    0020aca0
    0020ad1d
    0020ad1d // align 0x10
    0020ad20
    0020ad20fn_20ad20:
    0020ad20push rbp
    0020ad21push rbx
    0020ad22mov rbx, rdi
    0020ad25sub rsp, 8
    0020ad29mov rdi, [rdi+8]
    0020ad2dtest rdi, rdi
    0020ad30je 0x20ad3f
    0020ad32call fn_f4370
    0020ad37mov [rbx+8], 0
    0020ad3f
    0020ad3floc_20ad3f:
    0020ad3fmov rdi, [rbx+24]
    0020ad43test rdi, rdi
    0020ad46je 0x20ad55
    0020ad48call caml_stat_free
    0020ad4dmov [rbx+24], 0
    0020ad55
    0020ad55loc_20ad55:
    0020ad55mov rdi, [rbx+6176]
    0020ad5clea rbp, [rbx+32]
    0020ad60mov [rbx+6192], 0
    0020ad6bcmp rdi, rbp
    0020ad6eje 0x20ad8a
    0020ad70call caml_stat_free
    0020ad75lea rax, [rbx+6176]
    0020ad7cmov [rbx+6176], rbp
    0020ad83mov [rbx+6184], rax
    0020ad8a
    0020ad8aloc_20ad8a:
    0020ad8aadd rsp, 8
    0020ad8epop rbx
    0020ad8fpop rbp
    0020ad90ret
    0020ad20
    0020ad91
    0020ad91 // align 0x10
    0020ada0
    0020ada0fn_20ada0:
    0020ada0push r15
    0020ada2push r14
    0020ada4push r13
    0020ada6mov r13, rsi
    0020ada9push r12
    0020adabpush rbp
    0020adacpush rbx
    0020adadmov rbx, rdi
    0020adb0sub rsp, 24
    0020adb4mov r14, [rip+0x16dc4d]
    0020adbbtest r14, r14
    0020adbeje 0x20ae1f
    0020adc0mov r15, [rdx+16]
    0020adc4mov rbp, rdx
    0020adc7mov rdi, r15
    0020adcacall fn_f4250
    0020adcfmovq x0, rax
    0020add4mov r12, rax
    0020add7punpcklqdq x0, x0
    0020addbmovaps [rsp], x0
    0020addftest rax, rax
    0020ade2je 0x20ae52
    0020ade4mov rcx, [rbp+8]
    0020ade8mov rdx, [rbx]
    0020adebmov rsi, r15
    0020adeemov rdi, rax
    0020adf1call r14
    0020adf4cmp rax, [rbp+16]
    0020adf8jne 0x20ae33
    0020adfamov rdi, [rbx+8]
    0020adfetest rdi, rdi
    0020ae01je 0x20ae08
    0020ae03call fn_f4370
    0020ae08
    0020ae08loc_20ae08:
    0020ae08movdqa x1, [rsp]
    0020ae0dmovups [rbx], x1
    0020ae10add rsp, 24
    0020ae14pop rbx
    0020ae15pop rbp
    0020ae16pop r12
    0020ae18pop r13
    0020ae1apop r14
    0020ae1cpop r15
    0020ae1eret
    0020ae1f
    0020ae1floc_20ae1f:
    0020ae1fcall fn_20ad20
    0020ae24lea rsi, [rip+0x2577d]
    0020ae2bmov rdi, r13
    0020ae2ecall fn_20abd0
    0020ae33
    0020ae33loc_20ae33:
    0020ae33mov rdi, r12
    0020ae36call fn_f4370
    0020ae3bmov rdi, rbx
    0020ae3ecall fn_20ad20
    0020ae43lea rsi, [rip+0x24103]
    0020ae4amov rdi, r13
    0020ae4dcall fn_20abd0
    0020ae52
    0020ae52loc_20ae52:
    0020ae52mov rdi, rbx
    0020ae55call fn_20ad20
    0020ae5acall caml_raise_out_of_memory
    0020ada0
    0020ae5f
    0020ae5f // align 0x10
    0020ae60
    0020ae60fn_20ae60:
    0020ae60push rbp
    0020ae61xor eax, eax
    0020ae63mov rbp, rdi
    0020ae66lea rdi, [rip+0x240f4]
    0020ae6dpush rbx
    0020ae6esub rsp, 8
    0020ae72call caml_alloc_sprintf
    0020ae77mov rdi, rbp
    0020ae7amov rbx, rax
    0020ae7dcall fn_20ad20
    0020ae82mov rdi, rbx
    0020ae85call caml_failwith_value
    0020ae60
    0020ae8a
    0020ae8a // align 0x10
    0020ae90
    0020ae90fn_20ae90:
    0020ae90push r13
    0020ae92lea rax, [rsi-2]
    0020ae96push r12
    0020ae98mov r12, rdi
    0020ae9bpush rbp
    0020ae9cmov rbp, rdx
    0020ae9fpush rbx
    0020aea0sub rsp, 8
    0020aea4cmp rax, 255
    0020aeaajbe 0x20aec8
    0020aeacmov [r12+16], 0
    0020aeb5test rbp, rbp
    0020aeb8jne 0x20af25
    0020aeba
    0020aebaloc_20aeba:
    0020aebaadd rsp, 8
    0020aebepop rbx
    0020aebfpop rbp
    0020aec0pop r12
    0020aec2pop r13
    0020aec4ret
    0020aec5
    0020aec5 0f 1f 00 ...
    0020aec8
    0020aec8loc_20aec8:
    0020aec8mov rax, [rip+0x6b119]
    0020aecflea rbx, [rsi-1]
    0020aed3lea rdx, [8*rbx]
    0020aedbmov r13, [rax]
    0020aedfmov rax, -8
    0020aee6sub rax, rdx
    0020aee9add [r13+8], rax
    0020aeedmov rdx, [r13]
    0020aef1mov rax, [r13+8]
    0020aef5cmp rax, rdx
    0020aef8jb 0x20af50
    0020aefa
    0020aefaloc_20aefa:
    0020aefashl rbx, 10
    0020aefemov rsi, rbx
    0020af01add rsi, 252
    0020af08mov [rax], rsi
    0020af0bmov rax, [r13+8]
    0020af0fmov [r12+16], 0
    0020af18mov [r12+6192], rax
    0020af20test rbp, rbp
    0020af23je 0x20aeba
    0020af25
    0020af25loc_20af25:
    0020af25lea rdi, [8*rbp]
    0020af2dcall caml_stat_alloc_noexc
    0020af32mov [r12+24], rax
    0020af37test rax, rax
    0020af3ajne 0x20aeba
    0020af40mov rdi, r12
    0020af43call fn_20ad20
    0020af48call caml_raise_out_of_memory
    0020af4dnop [rax]
    0020af50
    0020af50loc_20af50:
    0020af50xor r8l, r8l
    0020af53mov ecx, 1
    0020af58xor edx, edx
    0020af5amov rsi, rbx
    0020af5dmov rdi, r13
    0020af60call caml_alloc_small_dispatch
    0020af65mov rax, [r13+8]
    0020af69jmp 0x20aefa
    0020ae90
    0020af6b
    0020af6b // align 0x10
    0020af70
    0020af70fn_20af70:
    0020af70push r13
    0020af72push r12
    0020af74mov r12, rdi
    0020af77push rbp
    0020af78mov rbp, rdx
    0020af7bpush rbx
    0020af7cmov ebx, ecx
    0020af7esub rsp, 8
    0020af82mov rax, [rdi+6192]
    0020af89test rax, rax
    0020af8cje 0x20afd0
    0020af8eshl rdx, 10
    0020af92lea r13, [rbp+1]
    0020af96mov rsi, rbp
    0020af99mov ecx, 1
    0020af9eadd rdx, rbx
    0020afa1lea rbx, [rax+8]
    0020afa5mov [rax], rdx
    0020afa8mov rdi, rbx
    0020afabmov rdx, r13
    0020afaeshl r13, 3
    0020afb2call caml_memprof_sample_block
    0020afb7add [r12+6192], r13
    0020afbfmov rax, rbx
    0020afc2add rsp, 8
    0020afc6pop rbx
    0020afc7pop rbp
    0020afc8pop r12
    0020afcapop r13
    0020afccret
    0020afcd
    0020afcd 0f 1f 00 ...
    0020afd0
    0020afd0loc_20afd0:
    0020afd0mov rdi, [rsi+280]
    0020afd7mov r13, rsi
    0020afdaxor ecx, ecx
    0020afdcmov edx, ebx
    0020afdemov rsi, rbp
    0020afe1call caml_shared_try_alloc
    0020afe6test rax, rax
    0020afe9je 0x20b043
    0020afeblea rdx, [rbp+1]
    0020afefmov rcx, rbp
    0020aff2mov rsi, rbp
    0020aff5movdqu x1, [r13+128]
    0020affemovq x0, rdx
    0020b003add rbx, [rip+0x16d3b6]
    0020b00ashl rcx, 10
    0020b00epunpcklqdq x0, x0
    0020b012add rbx, rcx
    0020b015mov ecx, 1
    0020b01apaddq x0, x1
    0020b01emovups [r13+128], x0
    0020b026mov [rax], rbx
    0020b029lea rbx, [rax+8]
    0020b02dmov rdi, rbx
    0020b030call caml_memprof_sample_block
    0020b035add rsp, 8
    0020b039mov rax, rbx
    0020b03cpop rbx
    0020b03dpop rbp
    0020b03epop r12
    0020b040pop r13
    0020b042ret
    0020b043
    0020b043loc_20b043:
    0020b043mov rdi, r12
    0020b046call fn_20ad20
    0020b04bcall caml_raise_out_of_memory
    0020af70
    0020b050
    0020b050 // align 0x40
    0020b080
    0020b080fn_20b080:
    0020b080mov rax, [rdi]
    0020b083mov rcx, rdx
    0020b086mov r8, rsi
    0020b089mov edx, [rax]
    0020b08badd rax, 4
    0020b08fmov [rdi], rax
    0020b092mov esi, edx
    0020b094bswap esi
    0020b096mov [rcx], esi
    0020b098cmp edx, 0xffffffffbea69584
    0020b09eje 0x20b348
    0020b0a4push rbp
    0020b0a5push rbx
    0020b0a6sub rsp, 8
    0020b0aacmp edx, 0xffffffffbfa69584
    0020b0b0je 0x20b308
    0020b0b6cmp edx, 0xffffffffbda69584
    0020b0bcjne 0x20b3a7
    0020b0c2mov rax, [rdi]
    0020b0c5lea rdx, [rax+1]
    0020b0c9mov [rdi], rdx
    0020b0ccmovzx eax, [rax]
    0020b0cfmov [rcx+40], 1
    0020b0d6and eax, 63
    0020b0d9mov [rcx+4], eax
    0020b0dcmov rdx, [rdi]
    0020b0dflea rax, [rdx+1]
    0020b0e3mov [rdi], rax
    0020b0e6movzx esi, [rdx]
    0020b0e9mov rax, rsi
    0020b0ecand eax, 127
    0020b0eftest sil, sil
    0020b0f2jns 0x20b3a0
    0020b0f8add rdx, 2
    0020b0fcxor esi, esi
    0020b0femov r11l, -1
    0020b104mov rbx, 0x1ffffffffffffff
    0020b10enop [rax+rax]
    0020b119nop [rax+rax]
    0020b124nop [rax+rax]
    0020b12fnop [rax+rax]
    0020b13anop [rax+rax]
    0020b140
    0020b140loc_20b140:
    0020b140mov [rdi], rdx
    0020b143movzx r9l, [rdx-1]
    0020b148mov r10, rax
    0020b14bshl r10, 7
    0020b14fcmp rbx, rax
    0020b152mov rax, r9
    0020b155cmovb esi, r11l
    0020b159add rdx, 1
    0020b15dand eax, 127
    0020b160or rax, r10
    0020b163test r9b, r9b
    0020b166js 0x20b140
    0020b168
    0020b168loc_20b168:
    0020b168mov [rcx+8], rax
    0020b16cmov rax, [rdi]
    0020b16flea rdx, [rax+1]
    0020b173mov [rdi], rdx
    0020b176movzx r9l, [rax]
    0020b17amov rax, r9
    0020b17dand eax, 127
    0020b180test r9b, r9b
    0020b183jns 0x20b1eb
    0020b185xor r10l, r10l
    0020b188mov ebx, -1
    0020b18dmov rbp, 0x1ffffffffffffff
    0020b197nop [rax+rax]
    0020b1a2nop [rax+rax]
    0020b1adnop [rax+rax]
    0020b1b8nop [rax+rax]
    0020b1c0
    0020b1c0loc_20b1c0:
    0020b1c0add rdx, 1
    0020b1c4mov r11, rax
    0020b1c7mov [rdi], rdx
    0020b1camovzx r9l, [rdx-1]
    0020b1cfshl r11, 7
    0020b1d3cmp rbp, rax
    0020b1d6cmovb r10l, ebx
    0020b1damov rax, r9
    0020b1ddand eax, 127
    0020b1e0or rax, r11
    0020b1e3test r9b, r9b
    0020b1e6js 0x20b1c0
    0020b1e8or esi, r10l
    0020b1eb
    0020b1ebloc_20b1eb:
    0020b1ebmov [rcx+16], rax
    0020b1efmov rax, [rdi]
    0020b1f2lea rdx, [rax+1]
    0020b1f6mov [rdi], rdx
    0020b1f9movzx r9l, [rax]
    0020b1fdmov rax, r9
    0020b200and eax, 127
    0020b203test r9b, r9b
    0020b206jns 0x20b26b
    0020b208xor r10l, r10l
    0020b20bmov ebx, -1
    0020b210mov rbp, 0x1ffffffffffffff
    0020b21anop [rax+rax]
    0020b225nop [rax+rax]
    0020b230nop [rax+rax]
    0020b23bnop [rax+rax]
    0020b240
    0020b240loc_20b240:
    0020b240add rdx, 1
    0020b244mov r11, rax
    0020b247mov [rdi], rdx
    0020b24amovzx r9l, [rdx-1]
    0020b24fshl r11, 7
    0020b253cmp rbp, rax
    0020b256cmovb r10l, ebx
    0020b25amov rax, r9
    0020b25dand eax, 127
    0020b260or rax, r11
    0020b263test r9b, r9b
    0020b266js 0x20b240
    0020b268or esi, r10l
    0020b26b
    0020b26bloc_20b26b:
    0020b26bmov [rcx+24], rax
    0020b26fmov rdx, [rdi]
    0020b272lea rax, [rdx+1]
    0020b276mov [rdi], rax
    0020b279cmp [rdx], 0
    0020b27cjns 0x20b28d
    0020b27enop
    0020b280
    0020b280loc_20b280:
    0020b280add rax, 1
    0020b284mov [rdi], rax
    0020b287cmp [rax-1], 0
    0020b28bjs 0x20b280
    0020b28d
    0020b28dloc_20b28d:
    0020b28dlea rdx, [rax+1]
    0020b291mov [rdi], rdx
    0020b294movzx r9l, [rax]
    0020b298mov rax, r9
    0020b29band eax, 127
    0020b29etest r9b, r9b
    0020b2a1jns 0x20b2eb
    0020b2a3xor r10l, r10l
    0020b2a6mov ebx, -1
    0020b2abmov rbp, 0x1ffffffffffffff
    0020b2b5nop [rax+rax]
    0020b2c0
    0020b2c0loc_20b2c0:
    0020b2c0add rdx, 1
    0020b2c4mov r11, rax
    0020b2c7mov [rdi], rdx
    0020b2camovzx r9l, [rdx-1]
    0020b2cfshl r11, 7
    0020b2d3cmp rbp, rax
    0020b2d6cmovb r10l, ebx
    0020b2damov rax, r9
    0020b2ddand eax, 127
    0020b2e0or rax, r11
    0020b2e3test r9b, r9b
    0020b2e6js 0x20b2c0
    0020b2e8or esi, r10l
    0020b2eb
    0020b2ebloc_20b2eb:
    0020b2ebmov [rcx+32], rax
    0020b2eftest esi, esi
    0020b2f1je 0x20b33e
    0020b2f3lea rsi, [rip+0x252d6]
    0020b2famov rdi, r8
    0020b2fdcall fn_20abd0
    0020b302nop [rax+rax]
    0020b308
    0020b308loc_20b308:
    0020b308mov [rcx+4], 32
    0020b30fmov [rcx+40], 0
    0020b316add [rdi], 4
    0020b31acall fn_20abb0
    0020b31fmovq x0, rax
    0020b324punpcklqdq x0, x0
    0020b328movups [rcx+8], x0
    0020b32ccall fn_20abb0
    0020b331mov [rcx+24], rax
    0020b335call fn_20abb0
    0020b33amov [rcx+32], rax
    0020b33e
    0020b33eloc_20b33e:
    0020b33eadd rsp, 8
    0020b342pop rbx
    0020b343pop rbp
    0020b344ret
    0020b345
    0020b345 0f 1f 00 ...
    0020b348
    0020b348loc_20b348:
    0020b348mov [rcx+4], 20
    0020b34fmov [rcx+40], 0
    0020b356mov rdx, [rdi]
    0020b359mov eax, [rdx]
    0020b35badd rdx, 4
    0020b35fmov [rdi], rdx
    0020b362bswap eax
    0020b364mov eax, eax
    0020b366mov [rcx+16], rax
    0020b36amov [rcx+8], rax
    0020b36emov rax, [rdi]
    0020b371mov edx, [rax]
    0020b373add rax, 4
    0020b377mov [rdi], rax
    0020b37abswap edx
    0020b37cmov eax, edx
    0020b37emov [rcx+24], rax
    0020b382mov rax, [rdi]
    0020b385lea rdx, [rax+4]
    0020b389add rax, 8
    0020b38dmov [rdi], rdx
    0020b390mov edx, [rax-4]
    0020b393mov [rdi], rax
    0020b396bswap edx
    0020b398mov eax, edx
    0020b39amov [rcx+32], rax
    0020b39eret
    0020b39f
    0020b39f 90 .
    0020b3a0
    0020b3a0loc_20b3a0:
    0020b3a0xor esi, esi
    0020b3a2jmp 0x20b168
    0020b3a7
    0020b3a7loc_20b3a7:
    0020b3a7lea rsi, [rip+0x23c85]
    0020b3aemov rdi, r8
    0020b3b1call fn_20abd0
    0020b080
    0020b3b6
    0020b3b6 // align 0x10
    0020b3c0
    0020b3c0fn_20b3c0:
    0020b3c0mov rdx, 0xaaaaaaaaaaaaaaab
    0020b3capush r13
    0020b3ccpush r12
    0020b3cepush rbp
    0020b3cfmov rbp, rdi
    0020b3d2push rbx
    0020b3d3sub rsp, 8
    0020b3d7mov rax, [rdi+6176]
    0020b3demov rbx, [rdi+6184]
    0020b3e5sub rbx, rax
    0020b3e8sub rsi, rax
    0020b3ebsar rbx, 3
    0020b3efimul rbx, rdx
    0020b3f3add rbx, rbx
    0020b3f6cmp rbx, 0x63fffff
    0020b3fdja 0x20b463
    0020b3ffmov r13, rsi
    0020b402mov rdi, rbx
    0020b405mov esi, 24
    0020b40acall caml_stat_calloc_noexc
    0020b40fmov r12, rax
    0020b412test rax, rax
    0020b415je 0x20b463
    0020b417mov rsi, [rbp+6176]
    0020b41emov rdi, rax
    0020b421mov rdx, r13
    0020b424call fn_f47d0
    0020b429mov rdi, [rbp+6176]
    0020b430lea rax, [rbp+32]
    0020b434cmp rdi, rax
    0020b437je 0x20b43e
    0020b439call caml_stat_free
    0020b43e
    0020b43eloc_20b43e:
    0020b43elea rax, [rbx+2*rbx]
    0020b442mov [rbp+6176], r12
    0020b449lea rax, [r12+8*rax]
    0020b44dmov [rbp+6184], rax
    0020b454add rsp, 8
    0020b458lea rax, [r12+r13]
    0020b45cpop rbx
    0020b45dpop rbp
    0020b45epop r12
    0020b460pop r13
    0020b462ret
    0020b463
    0020b463loc_20b463:
    0020b463lea rsi, [rip+0x2519e]
    0020b46amov edi, 4
    0020b46fxor eax, eax
    0020b471call caml_gc_message
    0020b476mov rdi, rbp
    0020b479call fn_20ad20
    0020b47ecall caml_raise_out_of_memory
    0020b3c0
    0020b483
    0020b483 // align 0x20
    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