File hevea_f46f610a6b0078f4aa208dda361f21de574cc56ad64b32889301afc466d33979.elf
Function:
    0020a340
    0020a340caml_scan_global_young_roots:
    0020a340push r13
    0020a342mov r13, rsi
    0020a345push r12
    0020a347lea r12, [rip+0x16e68e]
    0020a34epush rbp
    0020a34fmov rbp, rdi
    0020a352mov rdi, r12
    0020a355push rbx
    0020a356sub rsp, 8
    0020a35acall fn_f4710
    0020a35ftest eax, eax
    0020a361jne 0x20a41c
    0020a367mov rbx, [rip+0x16e5ce]
    0020a36etest rbx, rbx
    0020a371je 0x20a397
    0020a373nop [rax+rax]
    0020a37cmov rax, rbx
    0020a37fmov rbx, [rbx+16]
    0020a383mov rdi, r13
    0020a386mov rdx, [rax]
    0020a389mov rsi, [rdx]
    0020a38ccall rbp
    0020a38etest rbx, rbx
    0020a391jne 0x20a380
    0020a393mov rbx, [rip+0x16e502]
    0020a39atest rbx, rbx
    0020a39dje 0x20a3f9
    0020a39fnop [rax+rax]
    0020a3aanop
    0020a3acmov rax, rbx
    0020a3afmov rbx, [rbx+16]
    0020a3b3mov rdi, r13
    0020a3b6mov rdx, [rax]
    0020a3b9mov rsi, [rdx]
    0020a3bccall rbp
    0020a3betest rbx, rbx
    0020a3c1jne 0x20a3b0
    0020a3c3mov rbx, [rip+0x16e4d2]
    0020a3catest rbx, rbx
    0020a3cdje 0x20a3f9
    0020a3cflea rbp, [rip+0x16e426]
    0020a3d6nop [rax+rax]
    0020a3dcmov rax, rbx
    0020a3dfmov rbx, [rbx+16]
    0020a3e3xor edx, edx
    0020a3e5mov rdi, rbp
    0020a3e8mov rsi, [rax]
    0020a3ebcall caml_skiplist_insert
    0020a3f0test rbx, rbx
    0020a3f3jne 0x20a3e0
    0020a3f5lea rdi, [rip+0x16e4a0]
    0020a3fccall caml_skiplist_empty
    0020a401mov rdi, r12
    0020a404call fn_f47c0
    0020a409test eax, eax
    0020a40bjne 0x20a42a
    0020a40dadd rsp, 8
    0020a411pop rbx
    0020a412pop rbp
    0020a413pop r12
    0020a415pop r13
    0020a417ret
    0020a418mov esi, eax
    0020a41alea rdi, [rip+0x250ea]
    0020a421call caml_plat_fatal_error
    0020a426mov esi, eax
    0020a428lea rdi, [rip+0x250e7]
    0020a42fcall caml_plat_fatal_error
    0020a434db 0x98
    0020a435db 0x15
    0020a436add [rax], eax
    0020a340
    0020a438
    0020a438 // align 0x10
    0020a440
    0020a440caml_hash_mix_uint32:
    0020a440imul esi, esi, 0xffffffffcc9e2d51
    0020a446mov eax, esi
    0020a448rol eax, 15
    0020a44bimul esi, eax, 0x1b873593
    0020a451xor esi, edi
    0020a453rol esi, 13
    0020a456lea eax, [rsi+4*rsi-0x19ab949c]
    0020a45dret
    0020a45edb 0x6b
    0020a45fpush rsp
    0020a460out 195, al
    0020a440
    0020a462
    0020a462 // align 0x10
    0020a470
    0020a470caml_hash_mix_intnat:
    0020a470mov rdx, rsi
    0020a473mov rax, rsi
    0020a476sar rax, 63
    0020a47asar rdx, 32
    0020a47exor edx, eax
    0020a480xor edx, esi
    0020a482imul eax, edx, 0xffffffffcc9e2d51
    0020a488rol eax, 15
    0020a48bimul eax, eax, 0x1b873593
    0020a491xor eax, edi
    0020a493rol eax, 13
    0020a496lea eax, [rax+4*rax-0x19ab949c]
    0020a49dret
    0020a49edb 0x6b
    0020a49fpush rsp
    0020a4a0out 195, al
    0020a470
    0020a4a2
    0020a4a2 // align 0x10
    0020a4b0
    0020a4b0caml_hash_mix_int64:
    0020a4b0mov rdx, rsi
    0020a4b3imul esi, esi, 0xffffffffcc9e2d51
    0020a4b9sar rdx, 32
    0020a4bdimul eax, edx, 0xffffffffcc9e2d51
    0020a4c3rol esi, 15
    0020a4c6imul esi, esi, 0x1b873593
    0020a4ccrol eax, 15
    0020a4cfimul eax, eax, 0x1b873593
    0020a4d5xor esi, edi
    0020a4d7rol esi, 13
    0020a4dalea ecx, [rsi+4*rsi-0x19ab949c]
    0020a4e1xor eax, ecx
    0020a4e3rol eax, 13
    0020a4e6lea eax, [rax+4*rax-0x19ab949c]
    0020a4edret
    0020a4eedb 0x6b
    0020a4efpush rsp
    0020a4f0out 195, al
    0020a4b0
    0020a4f2
    0020a4f2 // align 0x10
    0020a500
    0020a500caml_hash_mix_double:
    0020a500movq rax, x0
    0020a505mov rdx, rax
    0020a508shr rdx, 32
    0020a50cmov ecx, edx
    0020a50enot ecx
    0020a510and ecx, 0x7ff00000
    0020a516je 0x20a558
    0020a518imul ecx, eax, 0xffffffffcc9e2d51
    0020a51erol ecx, 15
    0020a521imul ecx, ecx, 0x1b873593
    0020a527xor edi, ecx
    0020a529cmp edx, 0xffffffff80000000
    0020a52fjne 0x20a564
    0020a531xor ecx, ecx
    0020a533test eax, eax
    0020a535jne 0x20a564
    0020a537rol edi, 13
    0020a53alea eax, [rdi+4*rdi-0x19ab949c]
    0020a541xor eax, ecx
    0020a543rol eax, 13
    0020a546lea eax, [rax+4*rax-0x19ab949c]
    0020a54dret
    0020a54edb 0x6b
    0020a54fpush rsp
    0020a550out 195, al
    0020a552
    0020a552 66 0f 1f 44 00 00 f..D..
    0020a558
    0020a558loc_20a558:
    0020a558mov ecx, edx
    0020a55aand ecx, 0xfffff
    0020a560or ecx, eax
    0020a562jne 0x20a578
    0020a564
    0020a564loc_20a564:
    0020a564imul edx, edx, 0xffffffffcc9e2d51
    0020a56arol edx, 15
    0020a56dimul ecx, edx, 0x1b873593
    0020a573jmp 0x20a53b
    0020a575
    0020a575 0f 1f 00 ...
    0020a578
    0020a578loc_20a578:
    0020a578xor edi, 0xffffffffc3539a5d
    0020a57emov ecx, 0xffffffffcc2aebe8
    0020a583jmp 0x20a53b
    0020a500
    0020a585
    0020a585 // align 0x10
    0020a590
    0020a590caml_hash_mix_float:
    0020a590movd eax, x0
    0020a594mov edx, eax
    0020a596not edx
    0020a598and edx, 0x7f800000
    0020a59eje 0x20a5d0
    0020a5a0cmp eax, 0xffffffff80000000
    0020a5a5je 0x20a5bc
    0020a5a7imul eax, eax, 0xffffffffcc9e2d51
    0020a5adrol eax, 15
    0020a5b0imul eax, eax, 0x1b873593
    0020a5b6xor edi, eax
    0020a5b8rol edi, 13
    0020a5bblea eax, [rdi+4*rdi-0x19ab949c]
    0020a5c2ret
    0020a5c3db 0x6b
    0020a5c4push rsp
    0020a5c5out 195, al
    0020a5c7
    0020a5c7 66 0f 1f 84 00 00 00 00 00 f........
    0020a5d0
    0020a5d0loc_20a5d0:
    0020a5d0test eax, 0x7fffff
    0020a5d5je 0x20a5ab
    0020a5d7xor edi, 0x5156b99d
    0020a5ddrol edi, 13
    0020a5e0lea eax, [rdi+4*rdi-0x19ab949c]
    0020a5e7ret
    0020a590
    0020a5e8
    0020a5e8 // align 0x20
    0020a600
    0020a600caml_hash_mix_string:
    0020a600push rbp
    0020a601mov rbp, rsi
    0020a604push rbx
    0020a605mov ebx, edi
    0020a607mov rdi, rsi
    0020a60asub rsp, 8
    0020a60ecall caml_string_length
    0020a613mov rcx, rax
    0020a616cmp rax, 3
    0020a61ajbe 0x20a6d0
    0020a620mov edx, 4
    0020a625nop [rax+rax]
    0020a630nop [rax+rax]
    0020a63bnop
    0020a63cimul eax, [rdx+rbp-4], 0xffffffffcc9e2d51
    0020a644rol eax, 15
    0020a647imul eax, eax, 0x1b873593
    0020a64dxor eax, ebx
    0020a64frol eax, 13
    0020a652lea ebx, [rax+4*rax-0x19ab949c]
    0020a659mov rax, rdx
    0020a65cadd rdx, 4
    0020a660cmp rcx, rdx
    0020a663jae 0x20a640
    0020a665mov rdx, rcx
    0020a668and edx, 3
    0020a66bcmp rdx, 2
    0020a66fje 0x20a6c8
    0020a671cmp rdx, 3
    0020a675je 0x20a6b0
    0020a677cmp rdx, 1
    0020a67bjne 0x20a6a4
    0020a67dxor edx, edx
    0020a67fmovzx eax, [rax+rbp]
    0020a683
    0020a683loc_20a683:
    0020a683or eax, edx
    0020a685imul eax, eax, 0xffffffffcc9e2d51
    0020a68brol eax, 15
    0020a68eimul eax, eax, 0x1b873593
    0020a694xor eax, ebx
    0020a696rol eax, 13
    0020a699lea ebx, [rax+4*rax-0x19ab949c]
    0020a6a0mov eax, ebx
    0020a6a2add rsp, 8
    0020a6a6xor eax, ecx
    0020a6a8pop rbx
    0020a6a9pop rbp
    0020a6aaret
    0020a6abdb 0xc8
    0020a6acpop rbx
    0020a6adpop rbp
    0020a6aeret
    0020a6af
    0020a6af 90 .
    0020a6b0
    0020a6b0loc_20a6b0:
    0020a6b0movzx esi, [rax+rbp+2]
    0020a6b5shl esi, 16
    0020a6b8
    0020a6b8loc_20a6b8:
    0020a6b8movzx edx, [rax+rbp+1]
    0020a6bdshl edx, 8
    0020a6c0or edx, esi
    0020a6c2jmp 0x20a683
    0020a6c4
    0020a6c4 0f 1f 40 00 ..@.
    0020a6c8
    0020a6c8loc_20a6c8:
    0020a6c8xor esi, esi
    0020a6cajmp 0x20a6b8
    0020a6cc
    0020a6cc 0f 1f 40 00 ..@.
    0020a6d0
    0020a6d0loc_20a6d0:
    0020a6d0xor eax, eax
    0020a6d2jmp 0x20a669
    0020a600
    0020a6d4
    0020a6d4 // align 0x40
    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