File hevea_f46f610a6b0078f4aa208dda361f21de574cc56ad64b32889301afc466d33979.elf
Function:
    001fae50
    001fae50caml_get_exception_raw_backtrace:
    001fae50push r14
    001fae52push r13
    001fae54push r12
    001fae56push rbp
    001fae57push rbx
    001fae58sub rsp, 4096
    001fae5for [rsp], 0
    001fae64sub rsp, 4096
    001fae6bor [rsp], 0
    001fae70sub rsp, 96
    001fae74mov rax, [0x28]
    001fae7dmov [rsp+8280], rax
    001fae85mov rax, [rip+0x7b158]
    001fae8cmov r14, [rax]
    001fae90lea rax, [rsp+16]
    001fae95mov [rsp+8], 1
    001fae9emov rbp, [r14+160]
    001faea5mov [r14+160], rax
    001faeacmov eax, 1
    001faeb1movq x0, rax
    001faeb6cmp [r14+192], 0
    001faebelea rax, [rsp+8]
    001faec3punpcklqdq x0, x0
    001faec7mov [rsp+16], rbp
    001faeccmov [rsp+40], rax
    001faed1movups [rsp+24], x0
    001faed6je 0x1faef4
    001faed8mov rsi, [r14+200]
    001faedftest rsi, rsi
    001faee2je 0x1faef4
    001faee4mov rbx, [r14+184]
    001faeebtest rbx, rbx
    001faeeejne 0x1faf30
    001faef0xor esi, esi
    001faef2xor edi, edi
    001faef4
    001faef4loc_1faef4:
    001faef4call caml_alloc
    001faef9mov [r14+160], rbp
    001faf00mov rdx, [rsp+8280]
    001faf08sub rdx, [0x28]
    001faf11jne 0x1faf95
    001faf13add rsp, 8288
    001faf1apop rbx
    001faf1bpop rbp
    001faf1cpop r12
    001faf1epop r13
    001faf20pop r14
    001faf22ret
    001faf23db 0x5d
    001faf24pop r14
    001faf26ret
    001faf27
    001faf27 66 0f 1f 84 00 00 00 00 00 f........
    001faf30
    001faf30loc_1faf30:
    001faf30mov r12l, 1024
    001faf36lea r13, [rsp+80]
    001faf3bmov ecx, 8192
    001faf40cmp ebx, r12l
    001faf43mov rdi, r13
    001faf46cmovle r12l, ebx
    001faf4amovsxd r12, r12l
    001faf4dlea rdx, [8*r12]
    001faf55call fn_f42c0
    001faf5axor esi, esi
    001faf5cmov rdi, r12
    001faf5fcall caml_alloc
    001faf64mov [rsp+8], rax
    001faf69test ebx, ebx
    001faf6bjle 0x1faefd
    001faf6dxor ebx, ebx
    001faf6fnop
    001faf70
    001faf70loc_1faf70:
    001faf70mov rsi, [r13+8*rbx]
    001faf75lea rdi, [rax+8*rbx]
    001faf79add rbx, 1
    001faf7dor rsi, 1
    001faf81call caml_initialize
    001faf86mov rax, [rsp+8]
    001faf8bcmp rbx, r12
    001faf8ejl 0x1faf70
    001faf90jmp 0x1faefd
    001faf95
    001faf95loc_1faf95:
    001faf95call fn_f4590
    001fae50
    001faf9a
    001faf9a // align 0x40
    001fafc0
    001fafc0caml_restore_raw_backtrace:
    001fafc0mov rax, [rip+0x7b01d]
    001fafc7push r12
    001fafc9push rbp
    001fafcapush rbx
    001fafcbmov rbp, [rax]
    001fafcfmov rbx, rsi
    001fafd2mov rsi, rdi
    001fafd5lea rax, [rbp+208]
    001fafdcmov rdi, rax
    001fafdfcall caml_modify_generational_global_root
    001fafe4mov rax, [rbx-8]
    001fafe8mov r12, rax
    001fafebshr r12, 10
    001fafefcmp rax, 0x1003ff
    001faff5ja 0x1fb070
    001faff7test r12, r12
    001faffaje 0x1fb0a0
    001fb000mov rdx, [rbp+200]
    001fb007test rdx, rdx
    001fb00aje 0x1fb082
    001fb00cmov [rbp+184], r12
    001fb013mov rax, [rbx]
    001fb016and rax, -2
    001fb01amov [rdx], rax
    001fb01dcmp [rbp+184], 1
    001fb025jle 0x1fb063
    001fb027lea rsi, [rbx+8]
    001fb02bmov eax, 1
    001fb030nop [rax+rax]
    001fb03bnop
    001fb03cmov rdx, [rsi]
    001fb03fmov rcx, [rbp+200]
    001fb046add rsi, 8
    001fb04aand rdx, -2
    001fb04emov [rcx+8*rax], rdx
    001fb052add rax, 1
    001fb056cmp [rbp+184], rax
    001fb05djg 0x1fb040
    001fb05fpop rbx
    001fb060mov eax, 1
    001fb065pop rbp
    001fb066pop r12
    001fb068ret
    001fb069db 0x5d
    001fb06apop r12
    001fb06cret
    001fb06d
    001fb06d 0f 1f 00 ...
    001fb070
    001fb070loc_1fb070:
    001fb070mov rdx, [rbp+200]
    001fb077mov r12l, 1024
    001fb07dtest rdx, rdx
    001fb080jne 0x1fb010
    001fb082
    001fb082loc_1fb082:
    001fb082call caml_alloc_backtrace_buffer
    001fb087cmp eax, -1
    001fb08aje 0x1fb063
    001fb08cmov rdx, [rbp+200]
    001fb093jmp 0x1fb010
    001fb098
    001fb098 0f 1f 84 00 00 00 00 00 ........
    001fb0a0
    001fb0a0loc_1fb0a0:
    001fb0a0mov [rbp+184], 0
    001fb0abmov eax, 1
    001fb0b0pop rbx
    001fb0b1pop rbp
    001fb0b2pop r12
    001fb0b4ret
    001fafc0
    001fb0b5
    001fb0b5 // align 0x10
    001fb0c0
    001fb0c0caml_convert_raw_backtrace_slot:
    001fb0c0push rbx
    001fb0c1mov rbx, rdi
    001fb0c4call caml_debug_info_available
    001fb0c9test eax, eax
    001fb0cbje 0x1fb0de
    001fb0cdand rbx, -2
    001fb0d1mov rdi, rbx
    001fb0d4pop rbx
    001fb0d5jmp 0x1fa800
    001fb0dalea rdi, [rip+0x348a3]
    001fb0e1call caml_failwith
    001fb0e6db 0xd6
    001fb0e7db 0xb8
    001fb0e8add [rax], al
    001fb0c0
    001fb0ea
    001fb0ea // align 0x10
    001fb0f0
    001fb0f0caml_convert_raw_backtrace:
    001fb0f0push r14
    001fb0f2push r13
    001fb0f4push r12
    001fb0f6push rbp
    001fb0f7push rbx
    001fb0f8sub rsp, 176
    001fb0ffmov [rsp+8], rdi
    001fb104mov rax, [0x28]
    001fb10dmov [rsp+168], rax
    001fb115mov rax, [rip+0x7aec8]
    001fb11cmov r13, [rax]
    001fb120mov eax, 1
    001fb125mov [rsp+24], 1
    001fb12emovq x0, rax
    001fb133lea rax, [rsp+8]
    001fb138mov [rsp+56], rax
    001fb13dlea rax, [rsp+32]
    001fb142mov r14, [r13+160]
    001fb149punpcklqdq x0, x0
    001fb14dmov [rsp+96], rax
    001fb152lea rax, [rsp+96]
    001fb157mov [r13+160], rax
    001fb15elea rax, [rsp+24]
    001fb163mov [rsp+32], r14
    001fb168mov [rsp+120], rax
    001fb16dmovups [rsp+40], x0
    001fb172movups [rsp+104], x0
    001fb177call caml_debug_info_available
    001fb17ctest eax, eax
    001fb17eje 0x1fb297
    001fb184xor ebx, ebx
    001fb186xor ebp, ebp
    001fb188nop [rax]
    001fb18cmov rdx, [rsp+8]
    001fb191mov rax, [rdx-8]
    001fb195shr rax, 10
    001fb199cmp rbp, rax
    001fb19cjae 0x1fb1e0
    001fb19elea rax, [rdx+8*rbp]
    001fb1a2mov rdi, [rax]
    001fb1a5and rdi, -2
    001fb1a9call caml_debuginfo_extract
    001fb1aemov rdi, rax
    001fb1b1test rax, rax
    001fb1b4je 0x1fb1d1
    001fb1b6nop [rax+rax]
    001fb1bccall caml_debuginfo_next
    001fb1c1add rbx, 1
    001fb1c5mov rdi, rax
    001fb1c8test rax, rax
    001fb1cbjne 0x1fb1c0
    001fb1cdadd rbp, 1
    001fb1d1
    001fb1d1loc_1fb1d1:
    001fb1d1jmp 0x1fb190
    001fb1d3db 0xc5
    001fb1d4add ebx, ebp
    001fb1d6db 0xb9
    001fb1d7
    001fb1d7 66 0f 1f 84 00 00 00 00 00 f........
    001fb1e0
    001fb1e0loc_1fb1e0:
    001fb1e0xor esi, esi
    001fb1e2mov rdi, rbx
    001fb1e5xor ebp, ebp
    001fb1e7xor r12l, r12l
    001fb1eacall caml_alloc
    001fb1efmov [rsp+24], rax
    001fb1f4nop [rax+rax]
    001fb1ffnop
    001fb200
    001fb200loc_1fb200:
    001fb200mov rdx, [rsp+8]
    001fb205mov rax, [rdx-8]
    001fb209shr rax, 10
    001fb20dcmp r12, rax
    001fb210jae 0x1fb268
    001fb212lea rax, [rdx+8*r12]
    001fb216mov rdi, [rax]
    001fb219and rdi, -2
    001fb21dcall caml_debuginfo_extract
    001fb222mov rbx, rax
    001fb225test rax, rax
    001fb228je 0x1fb25d
    001fb22anop [rax+rax]
    001fb230
    001fb230loc_1fb230:
    001fb230mov rdi, rbx
    001fb233call fn_1fa800
    001fb238mov rsi, rax
    001fb23bmov rax, [rsp+24]
    001fb240lea rdi, [rax+8*rbp]
    001fb244add rbp, 1
    001fb248call caml_modify
    001fb24dmov rdi, rbx
    001fb250call caml_debuginfo_next
    001fb255mov rbx, rax
    001fb258test rax, rax
    001fb25bjne 0x1fb230
    001fb25d
    001fb25dloc_1fb25d:
    001fb25dadd r12, 1
    001fb261jmp 0x1fb200
    001fb263
    001fb263 0f 1f 44 00 00 ..D..
    001fb268
    001fb268loc_1fb268:
    001fb268mov [r13+160], r14
    001fb26fmov rax, [rsp+24]
    001fb274mov rdx, [rsp+168]
    001fb27csub rdx, [0x28]
    001fb285jne 0x1fb2a3
    001fb287add rsp, 176
    001fb28epop rbx
    001fb28fpop rbp
    001fb290pop r12
    001fb292pop r13
    001fb294pop r14
    001fb296ret
    001fb297
    001fb297loc_1fb297:
    001fb297lea rdi, [rip+0x346ea]
    001fb29ecall caml_failwith
    001fb2a3
    001fb2a3loc_1fb2a3:
    001fb2a3call fn_f4590
    001fb0f0
    001fb2a8
    001fb2a8 // align 0x10
    001fb2b0
    001fb2b0caml_raw_backtrace_length:
    001fb2b0mov rax, [rdi-8]
    001fb2b4shr rax, 10
    001fb2b8lea rax, [rax+rax+1]
    001fb2bdret
    001fb2bedb 0x44
    001fb2bfadd [rcx], al
    001fb2c1ret
    001fb2b0
    001fb2c2
    001fb2c2 // align 0x10
    001fb2d0
    001fb2d0caml_raw_backtrace_slot:
    001fb2d0sub rsp, 8
    001fb2d4mov rax, [rdi-8]
    001fb2d8sar rsi, 1
    001fb2dbshr rax, 10
    001fb2dfcmp rsi, rax
    001fb2e2jae 0x1fb301
    001fb2e4lea rax, [rdi+8*rsi]
    001fb2e8mov rdi, [rax]
    001fb2eband rdi, -2
    001fb2efcall caml_debuginfo_extract
    001fb2f4add rsp, 8
    001fb2f8or rax, 1
    001fb2fcret
    001fb2fdlea rdi, [rip+0x346a0]
    001fb304call caml_invalid_argument
    001fb309db 0xf3
    001fb30amov dh, 0
    001fb30cdb 0x00
    001fb2d0
    001fb30d
    001fb30d // align 0x10
    001fb310
    001fb310caml_raw_backtrace_next_slot:
    001fb310push rbp
    001fb311push rbx
    001fb312sub rsp, 184
    001fb319mov [rsp+8], rdi
    001fb31eand rdi, -2
    001fb322mov rax, [0x28]
    001fb32bmov [rsp+168], rax
    001fb333mov rax, [rip+0x7acaa]
    001fb33amov rbx, [rax]
    001fb33emov eax, 1
    001fb343mov [rsp+24], 1
    001fb34cmovq x0, rax
    001fb351lea rax, [rsp+8]
    001fb356mov [rsp+56], rax
    001fb35blea rax, [rsp+32]
    001fb360mov rbp, [rbx+160]
    001fb367punpcklqdq x0, x0
    001fb36bmov [rsp+96], rax
    001fb370lea rax, [rsp+96]
    001fb375mov [rbx+160], rax
    001fb37clea rax, [rsp+24]
    001fb381mov [rsp+32], rbp
    001fb386mov [rsp+120], rax
    001fb38bmovups [rsp+40], x0
    001fb390movups [rsp+104], x0
    001fb395call caml_debuginfo_next
    001fb39amov rdi, rax
    001fb39dmov eax, 1
    001fb3a2test rdi, rdi
    001fb3a5je 0x1fb3b4
    001fb3a7or rdi, 1
    001fb3abcall caml_alloc_some
    001fb3b0mov [rbx+160], rbp
    001fb3b7mov rdx, [rsp+168]
    001fb3bfsub rdx, [0x28]
    001fb3c8jne 0x1fb3d8
    001fb3caadd rsp, 184
    001fb3d1pop rbx
    001fb3d2pop rbp
    001fb3d3ret
    001fb3d4call fn_f4590
    001fb3d9db 0xb3
    001fb3daxchg eax, ecx
    001fb3dbout dx, eax
    001fb3dcdb 0xff
    001fb310
    001fb3dd
    001fb3dd // align 0x10
    001fb3e0
    001fb3e0caml_get_exception_backtrace:
    001fb3e0push r13
    001fb3e2push r12
    001fb3e4push rbp
    001fb3e5push rbx
    001fb3e6sub rsp, 120
    001fb3eamovdqa x0, [rip+0x2ecea]
    001fb3f2mov rax, [0x28]
    001fb3fbmov [rsp+104], rax
    001fb400mov rax, [rip+0x7abdd]
    001fb407mov rbp, [rax]
    001fb40blea rax, [rsp+32]
    001fb410movups [rsp+40], x0
    001fb415mov [rsp+8], 1
    001fb41emov [rsp+16], 1
    001fb427mov r12, [rbp+160]
    001fb42emov [rbp+160], rax
    001fb435lea rax, [rsp+8]
    001fb43amovq x0, rax
    001fb43flea rax, [rsp+16]
    001fb444mov [rsp+32], r12
    001fb449mov [rsp+24], 1
    001fb452movq x1, rax
    001fb457lea rax, [rsp+24]
    001fb45cpunpcklqdq x0, x1
    001fb460mov [rsp+72], rax
    001fb465movups [rsp+56], x0
    001fb46acall caml_debug_info_available
    001fb46fmov edx, eax
    001fb471mov eax, 1
    001fb476test edx, edx
    001fb478jne 0x1fb4a8
    001fb47amov [rbp+160], r12
    001fb481mov rdx, [rsp+104]
    001fb486sub rdx, [0x28]
    001fb48fjne 0x1fb524
    001fb495add rsp, 120
    001fb499pop rbx
    001fb49apop rbp
    001fb49bpop r12
    001fb49dpop r13
    001fb49fret
    001fb4a0db 0x5c
    001fb4a1pop r13
    001fb4a3ret
    001fb4a4
    001fb4a4 0f 1f 40 00 ..@.
    001fb4a8
    001fb4a8loc_1fb4a8:
    001fb4a8mov edi, 1
    001fb4adxor r13l, r13l
    001fb4b0call caml_get_exception_raw_backtrace
    001fb4b5xor esi, esi
    001fb4b7mov [rsp+24], rax
    001fb4bcmov rdi, [rax-8]
    001fb4c0shr rdi, 10
    001fb4c4call caml_alloc
    001fb4c9mov [rsp+8], rax
    001fb4cejmp 0x1fb503
    001fb4d0
    001fb4d0loc_1fb4d0:
    001fb4d0lea rbx, [8*r13]
    001fb4d8add r13, 1
    001fb4dcadd rax, rbx
    001fb4dfmov rdi, [rax]
    001fb4e2and rdi, -2
    001fb4e6call caml_debuginfo_extract
    001fb4ebmov rdi, rax
    001fb4eecall fn_1fa800
    001fb4f3add rbx, [rsp+8]
    001fb4f8mov rsi, rax
    001fb4fbmov rdi, rbx
    001fb4fecall caml_modify
    001fb503
    001fb503loc_1fb503:
    001fb503mov rax, [rsp+24]
    001fb508mov rdx, [rax-8]
    001fb50cshr rdx, 10
    001fb510cmp r13, rdx
    001fb513jb 0x1fb4d0
    001fb515mov rdi, [rsp+8]
    001fb51acall caml_alloc_some
    001fb51fjmp 0x1fb47e
    001fb524
    001fb524loc_1fb524:
    001fb524call fn_f4590
    001fb3e0
    001fb529
    001fb529 // align 0x20
    001fb540
    001fb540caml_ba_compare:
    001fb540mov r8, rsi
    001fb543mov r9, [rdi+24]
    001fb547mov rax, [rsi+24]
    001fb54blea rcx, [rdi+8]
    001fb54flea rsi, [rsi+8]
    001fb553mov r10, rdi
    001fb556mov rdx, r9
    001fb559and eax, 511
    001fb55eand edx, 511
    001fb564cmp rdx, rax
    001fb567je 0x1fb570
    001fb569sub eax, edx
    001fb56bret
    001fb56cmov rdi, [rcx+8]
    001fb570
    001fb570loc_1fb570:
    001fb570mov rax, [rsi+8]
    001fb574cmp rdi, rax
    001fb577jne 0x1fb5c8
    001fb579xor edx, edx
    001fb57bxor eax, eax
    001fb57dtest rdi, rdi
    001fb580jg 0x1fb5ab
    001fb582jmp 0x1fb9e3
    001fb587nop [rax+rax]
    001fb592nop [rax+rax]
    001fb59cadd edx, 1
    001fb59fmovsxd rax, edx
    001fb5a2cmp rdi, rax
    001fb5a5jle 0x1fb5d0
    001fb5a7mov r11, [rsi+8*rax+32]
    001fb5accmp [rcx+8*rax+32], r11
    001fb5b1je 0x1fb5a0
    001fb5b3jl 0x1fb679
    001fb5b9mov eax, 1
    001fb5beret
    001fb5bfnop [rax+rax]
    001fb5c4sub eax, edi
    001fb5c6ret
    001fb5c7nop [rax+rax]
    001fb5ccmov esi, 1
    001fb5d1xor edx, edx
    001fb5d3xor eax, eax
    001fb5d5nop [rax]
    001fb5dcadd edx, 1
    001fb5dfimul rsi, [rcx+8*rax+32]
    001fb5e5movsxd rax, edx
    001fb5e8cmp rdi, rax
    001fb5ebjg 0x1fb5e0
    001fb5edmovzx eax, r9b
    001fb5f1cmp r9b, 13
    001fb5f5ja 0xf4880
    001fb5fblea rdx, [rip+0x3606e]
    001fb602movsxd rax, [rdx+4*rax]
    001fb606add rax, rdx
    001fb609jmp rax
    001fb60cadd rsi, rsi
    001fb60fmov rcx, [r10+8]
    001fb613mov rdx, [r8+8]
    001fb617test rsi, rsi
    001fb61aje 0x1fb9e0
    001fb620mov rax, [rip+0x7a9bd]
    001fb627mov rdi, [rax]
    001fb62bxor eax, eax
    001fb62djmp 0x1fb66a
    001fb62fnop [rax+rax]
    001fb634comiss x0, x1
    001fb637ja 0x1fb5bd
    001fb639ucomiss x0, x1
    001fb63cjp 0x1fb644
    001fb63eje 0x1fb65d
    001fb640mov [rdi+216], 1
    001fb64bucomiss x0, x0
    001fb64ejnp 0x1fb5bd
    001fb654ucomiss x1, x1
    001fb657jnp 0x1fb679
    001fb659add rax, 1
    001fb65d
    001fb65dloc_1fb65d:
    001fb65dcmp rax, rsi
    001fb660je 0x1fb9e0
    001fb666movss x0, [rcx+4*rax]
    001fb66bmovss x1, [rdx+4*rax]
    001fb670comiss x1, x0
    001fb673jbe 0x1fb638
    001fb675mov eax, -1
    001fb67aret
    001fb67bmov rdx, [r10+8]
    001fb67fmov rcx, [r8+8]
    001fb683test rsi, rsi
    001fb686je 0x1fb9e0
    001fb68cxor eax, eax
    001fb68ejmp 0x1fb6ab
    001fb690
    001fb690loc_1fb690:
    001fb690nop [rax]
    001fb694jg 0x1fb5bd
    001fb69aadd rax, 1
    001fb69ecmp rsi, rax
    001fb6a1je 0x1fb9e0
    001fb6a7mov rdi, [rcx+8*rax]
    001fb6ab
    001fb6abloc_1fb6ab:
    001fb6abcmp [rdx+8*rax], rdi
    001fb6afjge 0x1fb698
    001fb6b1jmp 0x1fb679
    001fb6b3add rsi, rsi
    001fb6b6mov rcx, [r10+8]
    001fb6bamov rdx, [r8+8]
    001fb6betest rsi, rsi
    001fb6c1je 0x1fb9e0
    001fb6c7mov rax, [rip+0x7a916]
    001fb6cemov rdi, [rax]
    001fb6d2xor eax, eax
    001fb6d4jmp 0x1fb71e
    001fb6d6nop [rax+rax]
    001fb6dccomisd x0, x1
    001fb6e0
    001fb6e0loc_1fb6e0:
    001fb6e0ja 0x1fb5bd
    001fb6e6ucomisd x0, x1
    001fb6eajp 0x1fb6f2
    001fb6ecje 0x1fb711
    001fb6eemov [rdi+216], 1
    001fb6f9ucomisd x0, x0
    001fb6fdjnp 0x1fb5bd
    001fb703ucomisd x1, x1
    001fb707jnp 0x1fb679
    001fb70dadd rax, 1
    001fb711
    001fb711loc_1fb711:
    001fb711cmp rax, rsi
    001fb714je 0x1fb9e0
    001fb71amovsd_xmm x0, [rcx+8*rax]
    001fb71fmovsd_xmm x1, [rdx+8*rax]
    001fb724comisd x1, x0
    001fb728jbe 0x1fb6e0
    001fb72ajmp 0x1fb679
    001fb72fmov rdx, [r10+8]
    001fb733mov rcx, [r8+8]
    001fb737test rsi, rsi
    001fb73aje 0x1fb9e0
    001fb740xor eax, eax
    001fb742jmp 0x1fb763
    001fb744
    001fb744loc_1fb744:
    001fb744nop [rax+rax]
    001fb74cjg 0x1fb5bd
    001fb752add rax, 1
    001fb756cmp rsi, rax
    001fb759je 0x1fb9e0
    001fb75fmov rdi, [rcx+8*rax]
    001fb763
    001fb763loc_1fb763:
    001fb763cmp [rdx+8*rax], rdi
    001fb767jge 0x1fb750
    001fb769jmp 0x1fb679
    001fb76emov rdx, [r10+8]
    001fb772mov rcx, [r8+8]
    001fb776test rsi, rsi
    001fb779je 0x1fb9e0
    001fb77fxor eax, eax
    001fb781jmp 0x1fb7a3
    001fb783
    001fb783loc_1fb783:
    001fb783nop [rax+rax]
    001fb78cjg 0x1fb5bd
    001fb792add rax, 1
    001fb796cmp rsi, rax
    001fb799je 0x1fb9e0
    001fb79fmov edi, [rcx+4*rax]
    001fb7a2cmp [rdx+4*rax], edi
    001fb7a5jge 0x1fb790
    001fb7a7jmp 0x1fb679
    001fb7acmov rdi, [r10+8]
    001fb7b0mov r8, [r8+8]
    001fb7b4test rsi, rsi
    001fb7b7je 0x1fb9e0
    001fb7bdxor eax, eax
    001fb7bfjmp 0x1fb7de
    001fb7c1
    001fb7c1loc_1fb7c1:
    001fb7c1nop [rax]
    001fb7c4cmp cx, dx
    001fb7c7jb 0x1fb5bd
    001fb7cdadd rax, 1
    001fb7d1cmp rsi, rax
    001fb7d4je 0x1fb9e0
    001fb7damovzx edx, [rdi+2*rax]
    001fb7de
    001fb7deloc_1fb7de:
    001fb7demovzx ecx, [r8+2*rax]
    001fb7e3cmp dx, cx
    001fb7e6jae 0x1fb7c8
    001fb7e8jmp 0x1fb679
    001fb7edmov rdx, [r10+8]
    001fb7f1mov rcx, [r8+8]
    001fb7f5test rsi, rsi
    001fb7f8je 0x1fb9e0
    001fb7fexor eax, eax
    001fb800jmp 0x1fb823
    001fb802
    001fb802loc_1fb802:
    001fb802nop [rax+rax]
    001fb80cjg 0x1fb5bd
    001fb812add rax, 1
    001fb816cmp rsi, rax
    001fb819je 0x1fb9e0
    001fb81fmovzx edi, [rcx+2*rax]
    001fb823
    001fb823loc_1fb823:
    001fb823cmp [rdx+2*rax], di
    001fb827jge 0x1fb810
    001fb829jmp 0x1fb679
    001fb82emov rdi, [r10+8]
    001fb832mov r8, [r8+8]
    001fb836test rsi, rsi
    001fb839je 0x1fb9e0
    001fb83fxor eax, eax
    001fb841jmp 0x1fb865
    001fb843
    001fb843loc_1fb843:
    001fb843nop [rax+rax]
    001fb84ccmp cl, dl
    001fb84ejb 0x1fb5bd
    001fb854add rax, 1
    001fb858cmp rsi, rax
    001fb85bje 0x1fb9e0
    001fb861movzx edx, [rdi+rax]
    001fb865
    001fb865loc_1fb865:
    001fb865movzx ecx, [r8+rax]
    001fb86acmp dl, cl
    001fb86cjae 0x1fb850
    001fb86ejmp 0x1fb679
    001fb873mov rdx, [r10+8]
    001fb877mov rcx, [r8+8]
    001fb87btest rsi, rsi
    001fb87eje 0x1fb9e0
    001fb884xor eax, eax
    001fb886jmp 0x1fb8a3
    001fb888
    001fb888loc_1fb888:
    001fb888nop [rax]
    001fb88cjg 0x1fb5bd
    001fb892add rax, 1
    001fb896cmp rsi, rax
    001fb899je 0x1fb9e0
    001fb89fmovzx edi, [rcx+rax]
    001fb8a3
    001fb8a3loc_1fb8a3:
    001fb8a3cmp [rdx+rax], dil
    001fb8a7jge 0x1fb890
    001fb8a9jmp 0x1fb679
    001fb8aemov rdi, [r10+8]
    001fb8b2mov r8, [r8+8]
    001fb8b6test rsi, rsi
    001fb8b9je 0x1fb9e0
    001fb8bfxor eax, eax
    001fb8c1jmp 0x1fb8e5
    001fb8c3
    001fb8c3loc_1fb8c3:
    001fb8c3nop [rax+rax]
    001fb8cccmp cl, dl
    001fb8cejb 0x1fb5bd
    001fb8d4add rax, 1
    001fb8d8cmp rsi, rax
    001fb8dbje 0x1fb9e0
    001fb8e1movzx edx, [rdi+rax]
    001fb8e5
    001fb8e5loc_1fb8e5:
    001fb8e5movzx ecx, [r8+rax]
    001fb8eacmp dl, cl
    001fb8ecjae 0x1fb8d0
    001fb8eejmp 0x1fb679
    001fb8f3mov r9, [r10+8]
    001fb8f7mov rdi, [r8+8]
    001fb8fbtest rsi, rsi
    001fb8feje 0x1fb9e0
    001fb904mov rax, [rip+0x7a6d9]
    001fb90bmovss x2, [rip+0x2e6ed]
    001fb913xor ecx, ecx
    001fb915mov r8, [rax]
    001fb919jmp 0x1fb95a
    001fb91bnop
    001fb91ccomiss x0, x1
    001fb91fja 0x1fb5bd
    001fb925ucomiss x1, x0
    001fb928jp 0x1fb930
    001fb92aje 0x1fb94d
    001fb92cmov [r8+216], 1
    001fb937ucomiss x0, x0
    001fb93ajnp 0x1fb5bd
    001fb940ucomiss x1, x1
    001fb943jnp 0x1fb679
    001fb949add rcx, 1
    001fb94d
    001fb94dloc_1fb94d:
    001fb94dcmp rsi, rcx
    001fb950je 0x1fb9e0
    001fb956movzx eax, [r9+2*rcx]
    001fb95bmov edx, eax
    001fb95dshl edx, 13
    001fb960and edx, 0xfffe000
    001fb966movd x0, edx
    001fb96amulss x0, x2
    001fb96ecomiss x0, [rip+0x2e68f]
    001fb975movd edx, x0
    001fb979jb 0x1fb985
    001fb97bor edx, 0x7f800000
    001fb981shl eax, 16
    001fb984and eax, 0xffffffff80000000
    001fb989or eax, edx
    001fb98bmovd x0, eax
    001fb98fmovzx eax, [rdi+2*rcx]
    001fb993mov edx, eax
    001fb995shl edx, 13
    001fb998and edx, 0xfffe000
    001fb99emovd x1, edx
    001fb9a2mulss x1, x2
    001fb9a6comiss x1, [rip+0x2e657]
    001fb9admovd edx, x1
    001fb9b1jb 0x1fb9bd
    001fb9b3or edx, 0x7f800000
    001fb9b9shl eax, 16
    001fb9bcand eax, 0xffffffff80000000
    001fb9c1or eax, edx
    001fb9c3movd x1, eax
    001fb9c7comiss x1, x0
    001fb9cajbe 0x1fb920
    001fb9d0jmp 0x1fb679
    001fb9d5nop [rax]
    001fb9dcxor eax, eax
    001fb9deret
    001fb9dfmovzx eax, r9b
    001fb9e3
    001fb9e3loc_1fb9e3:
    001fb9e3cmp r9b, 13
    001fb9e7ja 0xf4880
    001fb9edlea rdx, [rip+0x35cb4]
    001fb9f4movsxd rax, [rdx+4*rax]
    001fb9f8add rax, rdx
    001fb9fbjmp rax
    001fb9femov rdx, [r10+8]
    001fba02mov rcx, [r8+8]
    001fba06mov esi, 1
    001fba0bjmp 0x1fb690
    001fba10mov rdx, [r10+8]
    001fba14mov rcx, [r8+8]
    001fba18mov esi, 1
    001fba1djmp 0x1fb744
    001fba22mov rdx, [r10+8]
    001fba26mov rcx, [r8+8]
    001fba2amov esi, 1
    001fba2fjmp 0x1fb783
    001fba34mov rdi, [r10+8]
    001fba38mov r8, [r8+8]
    001fba3cmov esi, 1
    001fba41jmp 0x1fb7c1
    001fba46mov rdx, [r10+8]
    001fba4amov rcx, [r8+8]
    001fba4emov esi, 1
    001fba53jmp 0x1fb802
    001fba58mov rdi, [r10+8]
    001fba5cmov r8, [r8+8]
    001fba60mov esi, 1
    001fba65jmp 0x1fb843
    001fba6amov rdx, [r10+8]
    001fba6emov rcx, [r8+8]
    001fba72mov esi, 1
    001fba77jmp 0x1fb888
    001fba7cmov rcx, [r10+8]
    001fba80mov rdx, [r8+8]
    001fba84mov esi, 1
    001fba89jmp 0x1fb6cb
    001fba8emov rcx, [r10+8]
    001fba92mov rdx, [r8+8]
    001fba96mov esi, 1
    001fba9bjmp 0x1fb624
    001fbaa0mov r9, [r10+8]
    001fbaa4mov rdi, [r8+8]
    001fbaa8mov esi, 1
    001fbaadjmp 0x1fb908
    001fbab2mov rdi, [r10+8]
    001fbab6mov r8, [r8+8]
    001fbabamov esi, 1
    001fbabfjmp 0x1fb8c3
    001fbac4mov rcx, [r10+8]
    001fbac8mov rdx, [r8+8]
    001fbaccmov esi, 2
    001fbad1jmp 0x1fb6cb
    001fbad6mov rcx, [r10+8]
    001fbadamov rdx, [r8+8]
    001fbademov esi, 2
    001fbae3jmp 0x1fb624
    001fbae8db 0x38
    001fbae9sti
    001fbaeadb 0xff
    001fbaebdb 0xff
    001fb540
    001fbaec
    001fbaec // align 0x20
    001fbb00
    001fbb00caml_ba_hash:
    001fbb00push r13
    001fbb02lea rsi, [rdi+8]
    001fbb06mov r8, rdi
    001fbb09push r12
    001fbb0bpush rbp
    001fbb0cpush rbx
    001fbb0dsub rsp, 8
    001fbb11mov rdi, [rsi+8]
    001fbb15test rdi, rdi
    001fbb18jle 0x1fbdf0
    001fbb1exor edx, edx
    001fbb20mov ecx, 1
    001fbb25xor eax, eax
    001fbb27nop [rax+rax]
    001fbb32nop [rax+rax]
    001fbb3cadd edx, 1
    001fbb3fimul rcx, [rsi+8*rax+32]
    001fbb45movsxd rax, edx
    001fbb48cmp rax, rdi
    001fbb4bjl 0x1fbb40
    001fbb4dmovzx eax, [rsi+16]
    001fbb51cmp eax, 13
    001fbb54ja 0xf4882
    001fbb5alea rdx, [rip+0x35b7f]
    001fbb61movsxd rax, [rdx+4*rax]
    001fbb65add rax, rdx
    001fbb68jmp rax
    001fbb6bdb 0xd0
    001fbb6cjmp rax
    001fbb6f
    001fbb6f 90 .
    001fbb70mov ebp, 256
    001fbb75mov rbx, [r8+8]
    001fbb79cmp rcx, rbp
    001fbb7ccmovle rbp, rcx
    001fbb80xor edi, edi
    001fbb82cmp rcx, 3
    001fbb86jle 0x1fbbb6
    001fbb88mov r12l, 4
    001fbb8esub r12, rbx
    001fbb91nop [rax+rax]
    001fbb9cnop [rax]
    001fbba0
    001fbba0loc_1fbba0:
    001fbba0mov esi, [rbx]
    001fbba2add rbx, 4
    001fbba6call caml_hash_mix_uint32
    001fbbabmov edi, eax
    001fbbadlea rax, [rbx+r12]
    001fbbb1cmp rbp, rax
    001fbbb4jge 0x1fbba0
    001fbbb6
    001fbbb6loc_1fbbb6:
    001fbbb6and ebp, 3
    001fbbb9cmp rbp, 2
    001fbbbdje 0x1fbec8
    001fbbc3cmp rbp, 3
    001fbbc7je 0x1fbeb3
    001fbbcdcmp rbp, 1
    001fbbd1je 0x1fbe15
    001fbbd7nop [rax+rax]
    001fbbe0
    001fbbe0loc_1fbbe0:
    001fbbe0mov eax, edi
    001fbbe2
    001fbbe2loc_1fbbe2:
    001fbbe2add rsp, 8
    001fbbe6pop rbx
    001fbbe7pop rbp
    001fbbe8pop r12
    001fbbeapop r13
    001fbbecret
    001fbbed
    001fbbed 0f 1f 00 ...
    001fbbf0mov r12l, 128
    001fbbf6mov rbx, [r8+8]
    001fbbfacmp rcx, r12
    001fbbfdcmovle r12, rcx
    001fbc01cmp rcx, 1
    001fbc05jle 0x1fbecc
    001fbc0bmov ebp, 2
    001fbc10xor edi, edi
    001fbc12nop [rax+rax]
    001fbc1dnop [rax]
    001fbc20
    001fbc20loc_1fbc20:
    001fbc20mov esi, [rbx]
    001fbc22add rbp, 2
    001fbc26add rbx, 4
    001fbc2acall caml_hash_mix_uint32
    001fbc2fmov edi, eax
    001fbc31cmp r12, rbp
    001fbc34jge 0x1fbc20
    001fbc36
    001fbc36loc_1fbc36:
    001fbc36and r12l, 1
    001fbc3aje 0x1fbbe0
    001fbc3c
    001fbc3cloc_1fbc3c:
    001fbc3cmovzx esi, [rbx]
    001fbc3fcall caml_hash_mix_uint32
    001fbc44mov eax, eax
    001fbc46jmp 0x1fbbe2
    001fbc48
    001fbc48 0f 1f 84 00 00 00 00 00 ........
    001fbc50mov ebp, 64
    001fbc55mov r12, [r8+8]
    001fbc59cmp rcx, rbp
    001fbc5ccmovle rbp, rcx
    001fbc60test rcx, rcx
    001fbc63jle 0x1fbe0e
    001fbc69
    001fbc69loc_1fbc69:
    001fbc69xor ebx, ebx
    001fbc6bxor edi, edi
    001fbc6dnop [rax]
    001fbc70
    001fbc70loc_1fbc70:
    001fbc70mov rsi, [r12+8*rbx]
    001fbc74add rbx, 1
    001fbc78call caml_hash_mix_intnat
    001fbc7dmov edi, eax
    001fbc7fcmp rbp, rbx
    001fbc82jg 0x1fbc70
    001fbc84jmp 0x1fbbe0
    001fbc89add rcx, rcx
    001fbc8cmov ebp, 32
    001fbc91mov r12, [r8+8]
    001fbc95cmp rcx, rbp
    001fbc98cmovle rbp, rcx
    001fbc9ctest rcx, rcx
    001fbc9fjle 0x1fbe0e
    001fbca5
    001fbca5loc_1fbca5:
    001fbca5xor ebx, ebx
    001fbca7xor edi, edi
    001fbca9nop [rax]
    001fbcb0
    001fbcb0loc_1fbcb0:
    001fbcb0movsd_xmm x0, [r12+8*rbx]
    001fbcb6add rbx, 1
    001fbcbacall caml_hash_mix_double
    001fbcbfmov edi, eax
    001fbcc1cmp rbp, rbx
    001fbcc4jg 0x1fbcb0
    001fbcc6jmp 0x1fbbe0
    001fbccbadd rcx, rcx
    001fbccemov ebp, 64
    001fbcd3mov r12, [r8+8]
    001fbcd7cmp rcx, rbp
    001fbcdacmovle rbp, rcx
    001fbcdetest rcx, rcx
    001fbce1jle 0x1fbe0e
    001fbce7
    001fbce7loc_1fbce7:
    001fbce7xor ebx, ebx
    001fbce9xor edi, edi
    001fbcebnop [rax+rax]
    001fbcf0
    001fbcf0loc_1fbcf0:
    001fbcf0movss x0, [r12+4*rbx]
    001fbcf6add rbx, 1
    001fbcfacall caml_hash_mix_float
    001fbcffmov edi, eax
    001fbd01cmp rbp, rbx
    001fbd04jg 0x1fbcf0
    001fbd06jmp 0x1fbbe0
    001fbd0bmov ebp, 128
    001fbd10mov r12, [r8+8]
    001fbd14cmp rcx, rbp
    001fbd17cmovle rbp, rcx
    001fbd1btest rcx, rcx
    001fbd1ejle 0x1fbe0e
    001fbd24
    001fbd24loc_1fbd24:
    001fbd24xor ebx, ebx
    001fbd26xor edi, edi
    001fbd28xor r13l, r13l
    001fbd2bjmp 0x1fbd4c
    001fbd2d
    001fbd2d 0f 1f 00 ...
    001fbd30
    001fbd30loc_1fbd30:
    001fbd30cmp ax, -32768
    001fbd34cmove esi, r13l
    001fbd38
    001fbd38loc_1fbd38:
    001fbd38call caml_hash_mix_uint32
    001fbd3dadd rbx, 1
    001fbd41mov edi, eax
    001fbd43cmp rbp, rbx
    001fbd46jle 0x1fbbe0
    001fbd4c
    001fbd4cloc_1fbd4c:
    001fbd4cmovzx eax, [r12+2*rbx]
    001fbd51mov edx, eax
    001fbd53movzx esi, ax
    001fbd56not edx
    001fbd58and dh, 124
    001fbd5bjne 0x1fbd30
    001fbd5dtest ax, 1023
    001fbd61mov eax, 31745
    001fbd66cmovne esi, eax
    001fbd69jmp 0x1fbd38
    001fbd6bmov ebp, 64
    001fbd70mov r12, [r8+8]
    001fbd74cmp rcx, rbp
    001fbd77cmovle rbp, rcx
    001fbd7btest rcx, rcx
    001fbd7ejle 0x1fbe0e
    001fbd84
    001fbd84loc_1fbd84:
    001fbd84xor ebx, ebx
    001fbd86xor edi, edi
    001fbd88nop [rax+rax]
    001fbd90
    001fbd90loc_1fbd90:
    001fbd90mov esi, [r12+4*rbx]
    001fbd94add rbx, 1
    001fbd98call caml_hash_mix_uint32
    001fbd9dmov edi, eax
    001fbd9fcmp rbp, rbx
    001fbda2jg 0x1fbd90
    001fbda4jmp 0x1fbbe0
    001fbda9mov ebp, 32
    001fbdaemov r12, [r8+8]
    001fbdb2cmp rcx, rbp
    001fbdb5cmovle rbp, rcx
    001fbdb9test rcx, rcx
    001fbdbcjle 0x1fbe0e
    001fbdbe
    001fbdbeloc_1fbdbe:
    001fbdbexor ebx, ebx
    001fbdc0xor edi, edi
    001fbdc2nop [rax+rax]
    001fbdcdnop [rax]
    001fbdd0
    001fbdd0loc_1fbdd0:
    001fbdd0mov rsi, [r12+8*rbx]
    001fbdd4add rbx, 1
    001fbdd8call caml_hash_mix_int64
    001fbdddmov edi, eax
    001fbddfcmp rbp, rbx
    001fbde2jg 0x1fbdd0
    001fbde4jmp 0x1fbbe0
    001fbde9
    001fbde9 0f 1f 80 00 00 00 00 .......
    001fbdf0
    001fbdf0loc_1fbdf0:
    001fbdf0movzx eax, [rsi+16]
    001fbdf4cmp eax, 13
    001fbdf7ja 0xf4882
    001fbdfdlea rdx, [rip+0x35918]
    001fbe04movsxd rax, [rdx+4*rax]
    001fbe08add rax, rdx
    001fbe0bjmp rax
    001fbe0e
    001fbe0eloc_1fbe0e:
    001fbe0exor eax, eax
    001fbe10jmp 0x1fbbe2
    001fbe15
    001fbe15loc_1fbe15:
    001fbe15xor eax, eax
    001fbe17
    001fbe17loc_1fbe17:
    001fbe17movzx esi, [rbx]
    001fbe1aor esi, eax
    001fbe1ccall caml_hash_mix_uint32
    001fbe21mov eax, eax
    001fbe23jmp 0x1fbbe2
    001fbe28mov rbx, [r8+8]
    001fbe2cmov ebp, 1
    001fbe31xor edi, edi
    001fbe33jmp 0x1fbbb6
    001fbe38mov r12, [r8+8]
    001fbe3cmov ebp, 1
    001fbe41jmp 0x1fbc69
    001fbe46mov rbx, [r8+8]
    001fbe4axor edi, edi
    001fbe4cjmp 0x1fbc3c
    001fbe51mov r12, [r8+8]
    001fbe55mov ebp, 1
    001fbe5ajmp 0x1fbd84
    001fbe5fmov r12, [r8+8]
    001fbe63mov ebp, 1
    001fbe68jmp 0x1fbca5
    001fbe6dmov r12, [r8+8]
    001fbe71mov ebp, 1
    001fbe76jmp 0x1fbdbe
    001fbe7bmov r12, [r8+8]
    001fbe7fmov ebp, 2
    001fbe84jmp 0x1fbca5
    001fbe89mov r12, [r8+8]
    001fbe8dmov ebp, 2
    001fbe92jmp 0x1fbce7
    001fbe97mov r12, [r8+8]
    001fbe9bmov ebp, 1
    001fbea0jmp 0x1fbce7
    001fbea5mov r12, [r8+8]
    001fbea9mov ebp, 1
    001fbeaejmp 0x1fbd24
    001fbeb3
    001fbeb3loc_1fbeb3:
    001fbeb3movzx edx, [rbx+2]
    001fbeb7shl edx, 16
    001fbeba
    001fbebaloc_1fbeba:
    001fbebamovzx eax, [rbx+1]
    001fbebeshl eax, 8
    001fbec1or eax, edx
    001fbec3jmp 0x1fbe17
    001fbec8
    001fbec8loc_1fbec8:
    001fbec8xor edx, edx
    001fbecajmp 0x1fbeba
    001fbecc
    001fbeccloc_1fbecc:
    001fbeccxor edi, edi
    001fbecejmp 0x1fbc36
    001fbb00
    001fbed3
    001fbed3 // align 0x40
    001fbf00
    001fbf00fn_1fbf00:
    001fbf00mov r8, rsi
    001fbf03test [rdi+17], 1
    001fbf07je 0x1fbf70
    001fbf09mov eax, [rdi+8]
    001fbf0csub eax, 1
    001fbf0fjs 0x1fbfa1
    001fbf15movsxd r9, eax
    001fbf18mov eax, eax
    001fbf1alea rcx, [8*r9]
    001fbf22sub r9, rax
    001fbf25xor eax, eax
    001fbf27shl r9, 3
    001fbf2bjmp 0x1fbf43
    001fbf2d
    001fbf2d 66 66 2e ff.
    001fbf30 0f 1f 84 00 00 00 00 00 0f 1f 84 00 00 00 00 00 ................
    001fbf40
    001fbf40loc_1fbf40:
    001fbf40mov rcx, rdx
    001fbf43
    001fbf43loc_1fbf43:
    001fbf43mov rsi, [r8+rcx]
    001fbf47lea rdx, [rsi-1]
    001fbf4bmov rsi, [rdi+rcx+32]
    001fbf50cmp rdx, rsi
    001fbf53jae 0x1fbfa4
    001fbf55imul rax, rsi
    001fbf59add rax, rdx
    001fbf5clea rdx, [rcx-8]
    001fbf60cmp r9, rcx
    001fbf63jne 0x1fbf40
    001fbf65ret
    001fbf66
    001fbf66 66 2e 0f 1f 84 00 00 00 00 00 f.........
    001fbf70
    001fbf70loc_1fbf70:
    001fbf70mov r9, [rdi+8]
    001fbf74test r9, r9
    001fbf77jle 0x1fbfa1
    001fbf79xor ecx, ecx
    001fbf7bxor eax, eax
    001fbf7dxor edx, edx
    001fbf7fnop
    001fbf80
    001fbf80loc_1fbf80:
    001fbf80mov rsi, [r8+8*rdx]
    001fbf84mov rdx, [rdi+8*rdx+32]
    001fbf89cmp rsi, rdx
    001fbf8cjae 0x1fbfa4
    001fbf8eimul rax, rdx
    001fbf92add ecx, 1
    001fbf95movsxd rdx, ecx
    001fbf98add rax, rsi
    001fbf9bcmp rdx, r9
    001fbf9ejl 0x1fbf80
    001fbfa0ret
    001fbfa1
    001fbfa1loc_1fbfa1:
    001fbfa1xor eax, eax
    001fbfa3ret
    001fbfa4
    001fbfa4loc_1fbfa4:
    001fbfa4sub rsp, 8
    001fbfa8call caml_array_bound_error
    001fbf00
    001fbfad
    001fbfad // align 0x10
    001fbfb0
    001fbfb0caml_ba_finalize:
    001fbfb0push rbx
    001fbfb1mov eax, [rdi+24]
    001fbfb4lea rbx, [rdi+8]
    001fbfb8and eax, 1536
    001fbfbdcmp eax, 512
    001fbfc2je 0x1fbfd8
    001fbfc4cmp eax, 1024
    001fbfc9je 0x1fc00a
    001fbfcbpop rbx
    001fbfccret
    001fbfcddb 0x74
    001fbfcecmp ebx, [rbx-61]
    001fbfd1
    001fbfd1 0f 1f 80 00 00 00 00 .......
    001fbfd8
    001fbfd8loc_1fbfd8:
    001fbfd8mov rax, [rbx+24]
    001fbfdctest rax, rax
    001fbfdfje 0x1fc000
    001fbfe1lock sub [rax], 1
    001fbfe6jne 0x1fbfcf
    001fbfe8mov rax, [rbx+24]
    001fbfecmov rdi, [rax+8]
    001fbff0call fn_f4370
    001fbff5mov rdi, [rbx+24]
    001fbff9pop rbx
    001fbffajmp 0xf4370
    001fbfff
    001fbfff 90 .
    001fc000
    001fc000loc_1fc000:
    001fc000mov rdi, [rdi+8]
    001fc004pop rbx
    001fc005jmp 0xf4370
    001fc00a
    001fc00aloc_1fc00a:
    001fc00ajmp 0xf4884
    001fbfb0
    001fc00f
    001fc00f // align 0x10
    001fc010
    001fc010fn_1fc010:
    001fc010test rsi, rsi
    001fc013jle 0x1fc087
    001fc015push r12
    001fc017xor eax, eax
    001fc019mov r12, rdi
    001fc01cpush rbp
    001fc01dpush rbx
    001fc01emov rbx, rsi
    001fc021jmp 0x1fc036
    001fc023
    001fc023 0f 1f 44 00 00 ..D..
    001fc028
    001fc028loc_1fc028:
    001fc028cmp rdi, rdx
    001fc02bjl 0x1fc03f
    001fc02dadd rax, 1
    001fc031cmp rbx, rax
    001fc034je 0x1fc060
    001fc036
    001fc036loc_1fc036:
    001fc036mov rdi, [r12+8*rax]
    001fc03acmp rdi, rcx
    001fc03djle 0x1fc028
    001fc03f
    001fc03floc_1fc03f:
    001fc03fmov edi, 1
    001fc044call caml_serialize_int_1
    001fc049mov rsi, rbx
    001fc04cmov rdi, r12
    001fc04fpop rbx
    001fc050pop rbp
    001fc051pop r12
    001fc053jmp 0x206180
    001fc058
    001fc058 0f 1f 84 00 00 00 00 00 ........
    001fc060
    001fc060loc_1fc060:
    001fc060xor edi, edi
    001fc062xor ebp, ebp
    001fc064call caml_serialize_int_1
    001fc069nop [rax]
    001fc070
    001fc070loc_1fc070:
    001fc070mov edi, [r12+8*rbp]
    001fc074add rbp, 1
    001fc078call caml_serialize_int_4
    001fc07dcmp rbx, rbp
    001fc080jne 0x1fc070
    001fc082pop rbx
    001fc083pop rbp
    001fc084pop r12
    001fc086ret
    001fc087
    001fc087loc_1fc087:
    001fc087xor edi, edi
    001fc089jmp 0x205c00
    001fc010
    001fc08e
    001fc08e // align 0x20
    001fc0a0
    001fc0a0caml_ba_serialize:
    001fc0a0push r15
    001fc0a2push r14
    001fc0a4mov r14, rsi
    001fc0a7push r13
    001fc0a9mov r13, rdx
    001fc0acpush r12
    001fc0aemov r12, rdi
    001fc0b1push rbp
    001fc0b2lea rbp, [rdi+8]
    001fc0b6push rbx
    001fc0b7sub rsp, 8
    001fc0bbmov edi, [rbp+8]
    001fc0becall caml_serialize_int_4
    001fc0c3mov edi, [rbp+16]
    001fc0c6and edi, 511
    001fc0cccall caml_serialize_int_4
    001fc0d1cmp [rbp+8], 0
    001fc0d6jle 0x1fc230
    001fc0dcxor r15l, r15l
    001fc0dfxor eax, eax
    001fc0e1jmp 0x1fc107
    001fc0e3db 0x31
    001fc0e4shr bl, 32
    001fc0e7
    001fc0e7 66 0f 1f 84 00 00 00 00 00 f........
    001fc0f0
    001fc0f0loc_1fc0f0:
    001fc0f0mov edi, ebx
    001fc0f2add r15l, 1
    001fc0f6call caml_serialize_int_2
    001fc0fbmov rcx, [rbp+8]
    001fc0ffmovsxd rax, r15l
    001fc102cmp rax, rcx
    001fc105jge 0x1fc137
    001fc107
    001fc107loc_1fc107:
    001fc107mov rbx, [rbp+8*rax+32]
    001fc10ccmp rbx, 65534
    001fc113jle 0x1fc0f0
    001fc115mov edi, 65535
    001fc11aadd r15l, 1
    001fc11ecall caml_serialize_int_2
    001fc123mov rdi, rbx
    001fc126call caml_serialize_int_8
    001fc12bmov rcx, [rbp+8]
    001fc12fmovsxd rax, r15l
    001fc132cmp rax, rcx
    001fc135jl 0x1fc107
    001fc137
    001fc137loc_1fc137:
    001fc137test rcx, rcx
    001fc13ajle 0x1fc230
    001fc140xor edx, edx
    001fc142mov esi, 1
    001fc147xor eax, eax
    001fc149nop [rax+rax]
    001fc154nop [rax+rax]
    001fc15fnop
    001fc160
    001fc160loc_1fc160:
    001fc160add edx, 1
    001fc163imul rsi, [rbp+8*rax+32]
    001fc169movsxd rax, edx
    001fc16ccmp rcx, rax
    001fc16fjg 0x1fc160
    001fc171
    001fc171loc_1fc171:
    001fc171movzx eax, [rbp+16]
    001fc175cmp eax, 13
    001fc178ja 0xf4886
    001fc17elea rdx, [rip+0x355cf]
    001fc185movsxd rax, [rdx+4*rax]
    001fc189add rax, rdx
    001fc18cjmp rax
    001fc18fadd rsi, rsi
    001fc192mov rdi, [r12+8]
    001fc197call caml_serialize_block_8
    001fc19c
    001fc19cloc_1fc19c:
    001fc19cmov rax, [rbp+8]
    001fc1a0lea rax, [4*rax+16]
    001fc1a8mov [r14], rax
    001fc1abmov rax, [rbp+8]
    001fc1aflea rax, [8*rax+32]
    001fc1b7mov [r13], rax
    001fc1bbadd rsp, 8
    001fc1bfpop rbx
    001fc1c0pop rbp
    001fc1c1pop r12
    001fc1c3pop r13
    001fc1c5pop r14
    001fc1c7pop r15
    001fc1c9ret
    001fc1caadd rsi, rsi
    001fc1cdmov rdi, [r12+8]
    001fc1d2call caml_serialize_block_4
    001fc1d7jmp 0x1fc19c
    001fc1d9
    001fc1d9 0f 1f 80 00 00 00 00 .......
    001fc1e0mov rdi, [r12+8]
    001fc1e5call caml_serialize_block_2
    001fc1eajmp 0x1fc19c
    001fc1ec
    001fc1ec 0f 1f 40 00 ..@.
    001fc1f0mov rdi, [r12+8]
    001fc1f5call caml_serialize_block_1
    001fc1fajmp 0x1fc19c
    001fc1fcmov rdi, [r12+8]
    001fc201mov ecx, 0x3fffffff
    001fc206mov rdx, 0xffffffffc0000000
    001fc20dcall fn_1fc010
    001fc212jmp 0x1fc19c
    001fc214mov rdi, [r12+8]
    001fc219mov ecx, 0x7fffffff
    001fc21emov rdx, 0xffffffff80000000
    001fc225call fn_1fc010
    001fc22ajmp 0x1fc19c
    001fc22f
    001fc22f 90 .
    001fc230
    001fc230loc_1fc230:
    001fc230mov esi, 1
    001fc235jmp 0x1fc171
    001fc0a0
    001fc23a
    001fc23a // align 0x10
    001fc240
    001fc240caml_ba_deserialize:
    001fc240push r13
    001fc242push r12
    001fc244push rbp
    001fc245mov rbp, rdi
    001fc248push rbx
    001fc249sub rsp, 8
    001fc24dcall caml_deserialize_uint_4
    001fc252mov edi, eax
    001fc254mov [rbp+8], rdi
    001fc258cmp eax, 16
    001fc25bja 0x1fc44a
    001fc261call caml_deserialize_uint_4
    001fc266mov [rbp+24], 0
    001fc26emov r12l, eax
    001fc271or r12l, 512
    001fc278cmp [rbp+8], 0
    001fc27dmov [rbp+16], r12
    001fc281jle 0x1fc426
    001fc287xor r12l, r12l
    001fc28axor ebx, ebx
    001fc28cjmp 0x1fc2ad
    001fc28enop [rax+rax]
    001fc294mov [rbp+8*rbx+32], rdx
    001fc299add r12l, 1
    001fc29dmov rsi, [rbp+8]
    001fc2a1movsxd rbx, r12l
    001fc2a4cmp rbx, rsi
    001fc2a7jge 0x1fc2d0
    001fc2a9call caml_deserialize_uint_2
    001fc2aemovsxd rdx, eax
    001fc2b1cmp eax, 65535
    001fc2b6jne 0x1fc298
    001fc2b8call caml_deserialize_uint_8
    001fc2bdmov rdx, rax
    001fc2c0jmp 0x1fc298
    001fc2c2nop [rax+rax]
    001fc2cctest rsi, rsi
    001fc2cfjle 0x1fc430
    001fc2d5mov ebx, 1
    001fc2daxor ecx, ecx
    001fc2dcxor edx, edx
    001fc2denop [rax+rax]
    001fc2e9nop [rax+rax]
    001fc2f4nop [rax+rax]
    001fc2fcmov rax, rbx
    001fc2ffmul [rbp+8*rdx+32]
    001fc304mov rbx, rax
    001fc307jo 0x1fc43e
    001fc30dadd ecx, 1
    001fc310movsxd rdx, ecx
    001fc313cmp rsi, rdx
    001fc316jg 0x1fc300
    001fc318mov r12, [rbp+16]
    001fc31cmovzx eax, r12b
    001fc320
    001fc320loc_1fc320:
    001fc320cmp rax, 13
    001fc324jg 0x1fc462
    001fc32alea rdx, [rip+0x17bf6b]
    001fc331movsxd rax, [rdx+4*rax]
    001fc335mul rbx
    001fc338jo 0x1fc43e
    001fc33emov rdi, rax
    001fc341call fn_f4250
    001fc346mov [rbp], rax
    001fc34amov r13, rax
    001fc34dtest rax, rax
    001fc350je 0x1fc456
    001fc356movzx eax, r12b
    001fc35acmp r12b, 13
    001fc35eja 0xf4888
    001fc364lea rdx, [rip+0x3541d]
    001fc36bmovsxd rax, [rdx+4*rax]
    001fc36fadd rax, rdx
    001fc372jmp rax
    001fc375nop [rax]
    001fc37cmov rsi, rbx
    001fc37fmov rdi, r13
    001fc382call caml_deserialize_block_2
    001fc387mov rax, [rbp+8]
    001fc38b
    001fc38bloc_1fc38b:
    001fc38badd rsp, 8
    001fc38fpop rbx
    001fc390pop rbp
    001fc391lea rax, [8*rax+32]
    001fc399pop r12
    001fc39bpop r13
    001fc39dret
    001fc39enop [rax+rax]
    001fc3a4mov rsi, rbx
    001fc3a7mov rdi, r13
    001fc3aacall caml_deserialize_block_1
    001fc3afjmp 0x1fc38b
    001fc3b1nop [rax]
    001fc3b4mov rsi, rbx
    001fc3b7mov rdi, r13
    001fc3bacall caml_deserialize_block_8
    001fc3bfjmp 0x1fc38b
    001fc3c1call caml_deserialize_uint_1
    001fc3c6test eax, eax
    001fc3c8jne 0x1fc3b8
    001fc3caxor r12l, r12l
    001fc3cdtest rbx, rbx
    001fc3d0jle 0x1fc38b
    001fc3d2nop [rax+rax]
    001fc3dccall caml_deserialize_sint_4
    001fc3e1cdqe
    001fc3e3mov [r13+8*r12], rax
    001fc3e8add r12, 1
    001fc3eccmp rbx, r12
    001fc3efjne 0x1fc3e0
    001fc3f1jmp 0x1fc38b
    001fc3f3mov rsi, rbx
    001fc3f6mov rdi, r13
    001fc3f9call caml_deserialize_block_4
    001fc3fejmp 0x1fc38b
    001fc400lea rsi, [rbx+rbx]
    001fc404mov rdi, r13
    001fc407call caml_deserialize_block_8
    001fc40cjmp 0x1fc38b
    001fc411lea rsi, [rbx+rbx]
    001fc415mov rdi, r13
    001fc418call caml_deserialize_block_4
    001fc41djmp 0x1fc38b
    001fc422mov ebx, 1
    001fc427jmp 0x1fc320
    001fc42cmov r12, [rbp+16]
    001fc430
    001fc430loc_1fc430:
    001fc430mov ebx, 1
    001fc435jmp 0x1fc320
    001fc43alea rdi, [rip+0x335d3]
    001fc441call caml_deserialize_error
    001fc446lea rdi, [rip+0x3358f]
    001fc44dcall caml_deserialize_error
    001fc452lea rdi, [rip+0x33603]
    001fc459call caml_deserialize_error
    001fc45elea rdi, [rip+0x335d7]
    001fc465call caml_deserialize_error
    001fc46adb 0xe2
    001fc46bor [rcx], eax
    001fc46ddb 0x00
    001fc240
    001fc46e
    001fc46e // align 0x20
    001fc480
    001fc480fn_1fc480:
    001fc480test [rdi+17], 6
    001fc484je 0x1fc4b0
    001fc486push rbp
    001fc487mov rbp, rsi
    001fc48apush rbx
    001fc48bmov rbx, rdi
    001fc48esub rsp, 8
    001fc492mov rax, [rdi+24]
    001fc496test rax, rax
    001fc499je 0x1fc4b8
    001fc49bmov [rsi+24], rax
    001fc49flock add [rax], 1
    001fc4a4add rsp, 8
    001fc4a8pop rbx
    001fc4a9pop rbp
    001fc4aaret
    001fc4ab
    001fc4ab 0f 1f 44 00 00 ..D..
    001fc4b0
    001fc4b0loc_1fc4b0:
    001fc4b0ret
    001fc4b1
    001fc4b1 0f 1f 80 00 00 00 00 .......
    001fc4b8
    001fc4b8loc_1fc4b8:
    001fc4b8mov edi, 24
    001fc4bdcall fn_f4250
    001fc4c2test rax, rax
    001fc4c5je 0x1fc546
    001fc4c7mov [rax], 2
    001fc4cemov rdx, [rbx]
    001fc4d1mov r8, [rbx+16]
    001fc4d5mov [rax+8], rdx
    001fc4d9xor edx, edx
    001fc4dbtest r8l, 1024
    001fc4e2jne 0x1fc500
    001fc4e4
    001fc4e4loc_1fc4e4:
    001fc4e4mov [rbx+24], rax
    001fc4e8mov [rax+16], rdx
    001fc4ecmov [rbp+24], rax
    001fc4f0add rsp, 8
    001fc4f4pop rbx
    001fc4f5pop rbp
    001fc4f6ret
    001fc4f7
    001fc4f7 66 0f 1f 84 00 00 00 00 00 f........
    001fc500
    001fc500loc_1fc500:
    001fc500mov rdi, [rbx+8]
    001fc504mov esi, 1
    001fc509test rdi, rdi
    001fc50cjle 0x1fc531
    001fc50exor ecx, ecx
    001fc510nop [rax+rax]
    001fc51bnop [rax+rax]
    001fc520
    001fc520loc_1fc520:
    001fc520add ecx, 1
    001fc523imul rsi, [rbx+8*rdx+32]
    001fc529movsxd rdx, ecx
    001fc52ccmp rdi, rdx
    001fc52fjg 0x1fc520
    001fc531
    001fc531loc_1fc531:
    001fc531movzx r8l, r8b
    001fc535lea rdx, [rip+0x17bd64]
    001fc53cmovsxd rdx, [rdx+4*r8]
    001fc540imul rdx, rsi
    001fc544jmp 0x1fc4e4
    001fc546
    001fc546loc_1fc546:
    001fc546call caml_raise_out_of_memory
    001fc480
    001fc54b
    001fc54b // align 0x20
    001fc560
    001fc560fn_1fc560:
    001fc560push r12
    001fc562push rbp
    001fc563push rbx
    001fc564sub rsp, 144
    001fc56bmov r12, [0x28]
    001fc574mov [rsp+136], r12
    001fc57clea r12, [rdi+8]
    001fc580mov rax, [r12+8]
    001fc585cmp rax, rdx
    001fc588jne 0x1fc772
    001fc58emov rbx, rdi
    001fc591mov rbp, rcx
    001fc594mov rdi, rsp
    001fc597mov rdx, rsp
    001fc59alea rcx, [rsi+8*rax]
    001fc59etest rax, rax
    001fc5a1jle 0x1fc5d7
    001fc5a3nop [rax+rax]
    001fc5aenop [rax+rax]
    001fc5b9nop [rax]
    001fc5c0
    001fc5c0loc_1fc5c0:
    001fc5c0mov rax, [rsi]
    001fc5c3add rsi, 8
    001fc5c7add rdx, 8
    001fc5cbsar rax, 1
    001fc5cemov [rdx-8], rax
    001fc5d2cmp rcx, rsi
    001fc5d5jne 0x1fc5c0
    001fc5d7
    001fc5d7loc_1fc5d7:
    001fc5d7mov rsi, rdi
    001fc5damov rdi, r12
    001fc5ddcall fn_1fbf00
    001fc5e2mov rdx, rax
    001fc5e5movzx eax, [r12+16]
    001fc5ebcmp eax, 13
    001fc5eeja 0xf488a
    001fc5f4lea rcx, [rip+0x351c9]
    001fc5fbmovsxd rax, [rcx+4*rax]
    001fc5ffadd rax, rcx
    001fc602jmp rax
    001fc605
    001fc605 0f 1f 00 ...
    001fc608mov rax, [rbx+8]
    001fc60csar rbp, 1
    001fc60fmov [rax+rdx], bpl
    001fc613nop [rax+rax]
    001fc61enop
    001fc620
    001fc620loc_1fc620:
    001fc620mov rax, [rsp+136]
    001fc628sub rax, [0x28]
    001fc631jne 0x1fc76d
    001fc637add rsp, 144
    001fc63emov eax, 1
    001fc643pop rbx
    001fc644pop rbp
    001fc645pop r12
    001fc647ret
    001fc648
    001fc648 0f 1f 84 00 00 00 00 00 ........
    001fc650mov rcx, [rbp+8]
    001fc654mov rax, [rbx+8]
    001fc658mov [rax+8*rdx], rcx
    001fc65cjmp 0x1fc620
    001fc65e
    001fc65e 66 90 f.
    001fc660mov rax, [rbx+8]
    001fc664sar rbp, 1
    001fc667mov [rax+2*rdx], bp
    001fc66bjmp 0x1fc620
    001fc66dmov rax, [rbx+8]
    001fc671pxor x0, x0
    001fc675cvtsd2ss x0, [rbp]
    001fc67alea rax, [rax+8*rdx]
    001fc67emovss [rax], x0
    001fc682pxor x0, x0
    001fc686cvtsd2ss x0, [rbp+8]
    001fc68bmovss [rax+4], x0
    001fc690jmp 0x1fc620
    001fc692mov rax, [rbx+8]
    001fc696pxor x0, x0
    001fc69acvtsd2ss x0, [rbp]
    001fc69fmovss [rax+4*rdx], x0
    001fc6a4jmp 0x1fc620
    001fc6a9mov ecx, [rbp+8]
    001fc6acmov rax, [rbx+8]
    001fc6b0mov [rax+4*rdx], ecx
    001fc6b3jmp 0x1fc620
    001fc6b8movsd_xmm x0, [rbp]
    001fc6bdmov rax, [rbx+8]
    001fc6c1movsd_xmm [rax+8*rdx], x0
    001fc6c6jmp 0x1fc620
    001fc6cbmovsd_xmm x0, [rbp]
    001fc6d0shl rdx, 4
    001fc6d4add rdx, [rbx+8]
    001fc6d8movsd_xmm [rdx], x0
    001fc6dcmovsd_xmm x0, [rbp+8]
    001fc6e1movsd_xmm [rdx+8], x0
    001fc6e6jmp 0x1fc620
    001fc6ebmov rax, [rbx+8]
    001fc6efsar rbp, 1
    001fc6f2mov [rax+8*rdx], rbp
    001fc6f6jmp 0x1fc620
    001fc6fbmov rax, [rbx+8]
    001fc6ffpxor x1, x1
    001fc703cvtsd2ss x1, [rbp]
    001fc708lea rcx, [rax+2*rdx]
    001fc70cmovd edx, x1
    001fc710mov eax, edx
    001fc712and eax, 0x7fffffff
    001fc717cmp eax, 0x477fffff
    001fc71cja 0x1fc748
    001fc71ecmp eax, 0x387fffff
    001fc723ja 0x1fc759
    001fc725movd x2, eax
    001fc729addss x2, [rip+0x2d8db]
    001fc731movd eax, x2
    001fc735
    001fc735loc_1fc735:
    001fc735shr edx, 16
    001fc738and edx, 32768
    001fc73eor eax, edx
    001fc740mov [rcx], ax
    001fc743jmp 0x1fc620
    001fc748
    001fc748loc_1fc748:
    001fc748cmp eax, 0x7f800001
    001fc74dsbb eax, eax
    001fc74fand ax, -512
    001fc753add ax, 32256
    001fc757jmp 0x1fc735
    001fc759
    001fc759loc_1fc759:
    001fc759mov esi, eax
    001fc75bshr esi, 13
    001fc75eand esi, 1
    001fc761lea eax, [rax+rsi-0x37fff001]
    001fc768shr eax, 13
    001fc76bjmp 0x1fc735
    001fc76d
    001fc76dloc_1fc76d:
    001fc76dcall fn_f4590
    001fc772
    001fc772loc_1fc772:
    001fc772lea rdi, [rip+0x3330f]
    001fc779call caml_invalid_argument
    001fc560
    001fc77e
    001fc77e // align 0x10
    001fc780
    001fc780caml_double_of_float16:
    001fc780movzx edi, di
    001fc783mov eax, edi
    001fc785shl eax, 13
    001fc788and eax, 0xfffe000
    001fc78dmovd x0, eax
    001fc791mulss x0, [rip+0x2d867]
    001fc799comiss x0, [rip+0x2d864]
    001fc7a0movd eax, x0
    001fc7a4jb 0x1fc7af
    001fc7a6or eax, 0x7f800000
    001fc7abshl edi, 16
    001fc7aepxor x0, x0
    001fc7b2and edi, 0xffffffff80000000
    001fc7b8or edi, eax
    001fc7bamovd x1, edi
    001fc7becvtss2sd x0, x1
    001fc7c2ret
    001fc7c3db 0x0f
    001fc7c4pop rdx
    001fc7c5db 0xc1
    001fc7c6ret
    001fc780
    001fc7c7
    001fc7c7 // align 0x10
    001fc7d0
    001fc7d0caml_float16_of_double:
    001fc7d0pxor x1, x1
    001fc7d4cvtsd2ss x1, x0
    001fc7d8movd edx, x1
    001fc7dcmov eax, edx
    001fc7deand eax, 0x7fffffff
    001fc7e3cmp eax, 0x477fffff
    001fc7e8jbe 0x1fc810
    001fc7eacmp eax, 0x7f800001
    001fc7efsbb eax, eax
    001fc7f1shr edx, 16
    001fc7f4and ax, -512
    001fc7f8and edx, 32768
    001fc7feadd ax, 32256
    001fc802or eax, edx
    001fc804movzx eax, ax
    001fc807ret
    001fc808db 0x0f
    001fc809mov bh, 192
    001fc80bret
    001fc80c
    001fc80c 0f 1f 40 00 ..@.
    001fc810
    001fc810loc_1fc810:
    001fc810cmp eax, 0x387fffff
    001fc815ja 0x1fc840
    001fc817movd x2, eax
    001fc81baddss x2, [rip+0x2d7e9]
    001fc823shr edx, 16
    001fc826and edx, 32768
    001fc82cmovd eax, x2
    001fc830or eax, edx
    001fc832movzx eax, ax
    001fc835ret
    001fc836
    001fc836 66 2e 0f 1f 84 00 00 00 00 00 f.........
    001fc840
    001fc840loc_1fc840:
    001fc840mov ecx, eax
    001fc842shr edx, 16
    001fc845shr ecx, 13
    001fc848and edx, 32768
    001fc84eand ecx, 1
    001fc851lea eax, [rax+rcx-0x37fff001]
    001fc858shr eax, 13
    001fc85bor eax, edx
    001fc85dmovzx eax, ax
    001fc860ret
    001fc7d0
    001fc861
    001fc861 // align 0x20
    001fc880
    001fc880caml_ba_num_elts:
    001fc880mov rsi, [rdi+8]
    001fc884test rsi, rsi
    001fc887jle 0x1fc8b8
    001fc889xor edx, edx
    001fc88bmov ecx, 1
    001fc890xor eax, eax
    001fc892nop [rax+rax]
    001fc89cadd edx, 1
    001fc89fimul rcx, [rdi+8*rax+32]
    001fc8a5movsxd rax, edx
    001fc8a8cmp rax, rsi
    001fc8abjl 0x1fc8a0
    001fc8admov rax, rcx
    001fc8b0ret
    001fc8b1db 0x48
    001fc8b2mov eax, ecx
    001fc8b4ret
    001fc8b5
    001fc8b5 0f 1f 00 ...
    001fc8b8
    001fc8b8loc_1fc8b8:
    001fc8b8mov ecx, 1
    001fc8bdmov rax, rcx
    001fc8c0ret
    001fc880
    001fc8c1
    001fc8c1 // align 0x20
    001fc8e0
    001fc8e0caml_ba_byte_size:
    001fc8e0mov rsi, [rdi+8]
    001fc8e4mov ecx, 1
    001fc8e9test rsi, rsi
    001fc8ecjle 0x1fc911
    001fc8eexor edx, edx
    001fc8f0xor eax, eax
    001fc8f2nop [rax+rax]
    001fc8fcadd edx, 1
    001fc8ffimul rcx, [rdi+8*rax+32]
    001fc905movsxd rax, edx
    001fc908cmp rax, rsi
    001fc90bjl 0x1fc900
    001fc90dmovzx edx, [rdi+16]
    001fc911
    001fc911loc_1fc911:
    001fc911lea rax, [rip+0x17b984]
    001fc918movsxd rax, [rax+4*rdx]
    001fc91cimul rax, rcx
    001fc920ret
    001fc921db 0x0f
    001fc922scasd [rdi], eax
    001fc923db 0xc1
    001fc924ret
    001fc8e0
    001fc925
    001fc925 // align 0x20
    001fc940
    001fc940caml_ba_alloc:
    001fc940push r13
    001fc942push r12
    001fc944mov r12l, edi
    001fc947push rbp
    001fc948mov ebp, esi
    001fc94apush rbx
    001fc94bsub rsp, 168
    001fc952mov rbx, [0x28]
    001fc95bmov [rsp+152], rbx
    001fc963mov rbx, rdx
    001fc966test esi, esi
    001fc968jle 0x1fca9c
    001fc96emov rsi, rcx
    001fc971mov edx, ebp
    001fc973lea rcx, [rsp+16]
    001fc978shl rdx, 3
    001fc97cmov rdi, rcx
    001fc97fcall fn_f47d0
    001fc984mov edx, 1
    001fc989mov rcx, rax
    001fc98cmovsxd rax, ebp
    001fc98flea rsi, [rcx+8*rax]
    001fc993nop [rax+rax]
    001fc99cmov rax, rdx
    001fc99fmul [rcx]
    001fc9a2mov rdx, rax
    001fc9a5jo 0x1fcaa6
    001fc9abadd rcx, 8
    001fc9afcmp rsi, rcx
    001fc9b2jne 0x1fc9a0
    001fc9b4movzx eax, r12b
    001fc9b8
    001fc9b8loc_1fc9b8:
    001fc9b8lea rcx, [rip+0x17b8dd]
    001fc9bfmovsxd rax, [rcx+4*rax]
    001fc9c3mul rdx
    001fc9c6mov r13, rax
    001fc9c9jo 0x1fcaa6
    001fc9cftest rbx, rbx
    001fc9d2je 0x1fca7b
    001fc9d8movd x2, r12l
    001fc9ddmovd x0, ebp
    001fc9e1pxor x1, x1
    001fc9e5movsxd rax, ebp
    001fc9e8punpckldq x0, x2
    001fc9ecand r12l, 3584
    001fc9f3lea rsi, [8*rax+32]
    001fc9fbxor eax, eax
    001fc9fdpcmpgtd x1, x0
    001fca01cmp r12l, 512
    001fca08lea rdi, [rip+0x78ded]
    001fca0fcmove rax, r13
    001fca13punpckldq x0, x1
    001fca17mov rdx, rax
    001fca1amovaps [rsp], x0
    001fca1ecall caml_alloc_custom_mem
    001fca23movdqa x0, [rsp]
    001fca28mov [rax+8], rbx
    001fca2cmov r12, rax
    001fca2fmov [rax+32], 0
    001fca37movups [rax+16], x0
    001fca3btest ebp, ebp
    001fca3djle 0x1fca57
    001fca3fmov edx, ebp
    001fca41lea rdi, [rax+40]
    001fca45lea rsi, [rsp+16]
    001fca4ashl rdx, 3
    001fca4ecall fn_f47d0
    001fca53mov rax, [rsp+152]
    001fca5bsub rax, [0x28]
    001fca64jne 0x1fcaab
    001fca66add rsp, 168
    001fca6dmov rax, r12
    001fca70pop rbx
    001fca71pop rbp
    001fca72pop r12
    001fca74pop r13
    001fca76ret
    001fca77mov rdi, rax
    001fca7acall fn_f4250
    001fca7fmov rbx, rax
    001fca82test r13, r13
    001fca85je 0x1fca90
    001fca87test rax, rax
    001fca8aje 0x1fcaa6
    001fca8cor r12l, 512
    001fca93jmp 0x1fc9dc
    001fca98mov edx, 1
    001fca9djmp 0x1fc9b8
    001fcaa2call caml_raise_out_of_memory
    001fcaa7call fn_f4590
    001fcaacdb 0xe0
    001fcaadjp 0x1fca9e
    001fcaafdb 0xff
    001fc940
    001fcab0
    001fcab0 // align 0x20
    001fcac0
    001fcac0caml_ba_alloc_dims:
    001fcac0push rbx
    001fcac1mov r11l, edi
    001fcac4mov r10l, esi
    001fcac7mov rbx, rdx
    001fcacasub rsp, 224
    001fcad1mov [rsp+216], r9
    001fcad9lea r9, [rsp+32]
    001fcademov [rsp+200], rcx
    001fcae6mov [rsp+208], r8
    001fcaeemov rax, [0x28]
    001fcaf7mov [rsp+168], rax
    001fcaffxor eax, eax
    001fcb01lea rax, [rsp+240]
    001fcb09mov [rsp+8], 24
    001fcb11mov [rsp+16], rax
    001fcb16lea rax, [rsp+176]
    001fcb1emov [rsp+24], rax
    001fcb23test esi, esi
    001fcb25jle 0x1fcb97
    001fcb27lea r9, [rsp+32]
    001fcb2cmovsxd rdx, esi
    001fcb2fmov r8, [rsp+24]
    001fcb34lea rcx, [rsp+240]
    001fcb3clea rsi, [r9+8*rdx]
    001fcb40mov rax, r9
    001fcb43mov edx, 24
    001fcb48jmp 0x1fcb76
    001fcb4adb 0x00
    001fcb4badd bl, ch
    001fcb4ddb 0x28
    001fcb4e
    001fcb4e 66 66 ff
    001fcb50 2e 0f 1f 84 00 00 00 00 00 0f 1f 80 00 00 00 00 ................
    001fcb60
    001fcb60loc_1fcb60:
    001fcb60mov edi, edx
    001fcb62add rax, 8
    001fcb66add edx, 8
    001fcb69mov rdi, [r8+rdi]
    001fcb6dmov [rax-8], rdi
    001fcb71cmp rax, rsi
    001fcb74je 0x1fcb97
    001fcb76
    001fcb76loc_1fcb76:
    001fcb76cmp edx, 47
    001fcb79jbe 0x1fcb60
    001fcb7bnop [rax+rax]
    001fcb80
    001fcb80loc_1fcb80:
    001fcb80mov rdx, rcx
    001fcb83add rax, 8
    001fcb87add rcx, 8
    001fcb8bmov rdx, [rdx]
    001fcb8emov [rax-8], rdx
    001fcb92cmp rsi, rax
    001fcb95jne 0x1fcb80
    001fcb97
    001fcb97loc_1fcb97:
    001fcb97mov rdx, rbx
    001fcb9amov rcx, r9
    001fcb9dmov esi, r10l
    001fcba0mov edi, r11l
    001fcba3call caml_ba_alloc
    001fcba8mov rdx, [rsp+168]
    001fcbb0sub rdx, [0x28]
    001fcbb9jne 0x1fcbc4
    001fcbbbadd rsp, 224
    001fcbc2pop rbx
    001fcbc3ret
    001fcbc4
    001fcbc4loc_1fcbc4:
    001fcbc4call fn_f4590
    001fcac0
    001fcbc9
    001fcbc9 // align 0x20
    001fcbe0
    001fcbe0caml_ba_create:
    001fcbe0sub rsp, 152
    001fcbe7mov r9, rdi
    001fcbeamov rdi, [0x28]
    001fcbf3mov [rsp+136], rdi
    001fcbfbmov rdi, rsi
    001fcbfemov rax, [rdx-8]
    001fcc02mov rsi, rax
    001fcc05shr rsi, 10
    001fcc09cmp rax, 17407
    001fcc0fja 0x1fcc92
    001fcc11mov r10, rsp
    001fcc14test rsi, rsi
    001fcc17je 0x1fcc55
    001fcc19mov rcx, rsp
    001fcc1clea r8, [rdx+8*rsi]
    001fcc20sub rcx, rdx
    001fcc23nop [rax+rax]
    001fcc2enop [rax+rax]
    001fcc39nop [rax]
    001fcc3cmov rax, [rdx]
    001fcc3fsar rax, 1
    001fcc42mov [rcx+rdx], rax
    001fcc46js 0x1fcc86
    001fcc48add rdx, 8
    001fcc4ccmp rdx, r8
    001fcc4fjne 0x1fcc40
    001fcc51sar rdi, 1
    001fcc54sar r9, 1
    001fcc57xor edx, edx
    001fcc59mov rcx, r10
    001fcc5cshl edi, 8
    001fcc5for edi, r9l
    001fcc62call caml_ba_alloc
    001fcc67mov rdx, [rsp+136]
    001fcc6fsub rdx, [0x28]
    001fcc78jne 0x1fcc9e
    001fcc7aadd rsp, 152
    001fcc81ret
    001fcc82lea rdi, [rip+0x32e53]
    001fcc89call caml_invalid_argument
    001fcc8elea rdi, [rip+0x32e17]
    001fcc95call caml_invalid_argument
    001fcc9acall fn_f4590
    001fcc9fdb 0xed
    001fcca0js 0x1fcc91
    001fcca2db 0xff
    001fcbe0
    001fcca3
    001fcca3 // align 0x20
    001fccc0
    001fccc0caml_ba_get_N:
    001fccc0push rbp
    001fccc1movsxd rdx, edx
    001fccc4push rbx
    001fccc5sub rsp, 168
    001fccccmov rax, [0x28]
    001fccd5mov [rsp+152], rax
    001fccddxor eax, eax
    001fccdfcmp rdx, [rdi+16]
    001fcce3jne 0x1fcf6c
    001fcce9mov rbx, rdi
    001fcceclea rbp, [rdi+8]
    001fccf0lea rdi, [rsp+16]
    001fccf5test rdx, rdx
    001fccf8jle 0x1fcd37
    001fccfamov rcx, rdi
    001fccfdlea rdx, [rsi+8*rdx]
    001fcd01nop [rax+rax]
    001fcd0cnop [rax+rax]
    001fcd17nop [rax+rax]
    001fcd1cmov rax, [rsi]
    001fcd1fadd rsi, 8
    001fcd23add rcx, 8
    001fcd27sar rax, 1
    001fcd2amov [rcx-8], rax
    001fcd2ecmp rdx, rsi
    001fcd31jne 0x1fcd20
    001fcd33mov rsi, rdi
    001fcd36mov rdi, rbp
    001fcd39call fn_1fbf00
    001fcd3emov rcx, rax
    001fcd41movzx eax, [rbp+16]
    001fcd45cmp eax, 13
    001fcd48ja 0xf488c
    001fcd4elea rdx, [rip+0x34aa3]
    001fcd55movsxd rax, [rdx+4*rax]
    001fcd59add rax, rdx
    001fcd5cjmp rax
    001fcd5fdb 0xd0
    001fcd60jmp rax
    001fcd63
    001fcd63 0f 1f 44 00 00 ..D..
    001fcd68mov rax, [rbx+8]
    001fcd6cmovzx eax, [rax+rcx]
    001fcd70lea rax, [rax+rax+1]
    001fcd75
    001fcd75loc_1fcd75:
    001fcd75mov rdx, [rsp+152]
    001fcd7dsub rdx, [0x28]
    001fcd86jne 0x1fcf67
    001fcd8cadd rsp, 168
    001fcd93pop rbx
    001fcd94pop rbp
    001fcd95ret
    001fcd96mov rax, [rbx+8]
    001fcd9amovsx rax, [rax+2*rcx]
    001fcd9flea rax, [rax+rax+1]
    001fcda4jmp 0x1fcd75
    001fcda6mov rax, [rbx+8]
    001fcdaamovzx eax, [rax+2*rcx]
    001fcdaelea rax, [rax+rax+1]
    001fcdb3jmp 0x1fcd75
    001fcdb5mov rax, [rsp+152]
    001fcdbdsub rax, [0x28]
    001fcdc6jne 0x1fcf67
    001fcdccmov rax, [rbx+8]
    001fcdd0mov edi, [rax+4*rcx]
    001fcdd3add rsp, 168
    001fcddapop rbx
    001fcddbpop rbp
    001fcddcjmp 0x20d4a0
    001fcde1mov rax, [rsp+152]
    001fcde9sub rax, [0x28]
    001fcdf2jne 0x1fcf67
    001fcdf8mov rax, [rbx+8]
    001fcdfcmov rdi, [rax+8*rcx]
    001fce00add rsp, 168
    001fce07pop rbx
    001fce08pop rbp
    001fce09jmp 0x20d9d0
    001fce0emov rax, [rbx+8]
    001fce12mov rax, [rax+8*rcx]
    001fce16lea rax, [rax+rax+1]
    001fce1bjmp 0x1fcd75
    001fce20mov rax, [rsp+152]
    001fce28sub rax, [0x28]
    001fce31jne 0x1fcf67
    001fce37mov rax, [rbx+8]
    001fce3bmov rdi, [rax+8*rcx]
    001fce3fadd rsp, 168
    001fce46pop rbx
    001fce47pop rbp
    001fce48jmp 0x20e100
    001fce4dmov rax, [rbx+8]
    001fce51cvtps2pd x0, [rax+8*rcx]
    001fce55
    001fce55loc_1fce55:
    001fce55mov esi, 254
    001fce5amov edi, 2
    001fce5fmovaps [rsp], x0
    001fce63call caml_alloc_small
    001fce68movapd x0, [rsp]
    001fce6dmovups [rax], x0
    001fce70jmp 0x1fcd75
    001fce75mov rax, rcx
    001fce78shl rax, 4
    001fce7cadd rax, [rbx+8]
    001fce80movupd x0, [rax]
    001fce84jmp 0x1fce55
    001fce86mov rax, [rbx+8]
    001fce8amovzx eax, [rax+2*rcx]
    001fce8emov edx, eax
    001fce90shl edx, 13
    001fce93and edx, 0xfffe000
    001fce99movd x0, edx
    001fce9dmulss x0, [rip+0x2d15f]
    001fcea5comiss x0, [rip+0x2d15c]
    001fceacmovd edx, x0
    001fceb0jae 0x1fcf5c
    001fceb6
    001fceb6loc_1fceb6:
    001fceb6mov rcx, [rsp+152]
    001fcebesub rcx, [0x28]
    001fcec7jne 0x1fcf67
    001fcecdshl eax, 16
    001fced0add rsp, 168
    001fced7pxor x0, x0
    001fcedband eax, 0xffffffff80000000
    001fcee0pop rbx
    001fcee1pop rbp
    001fcee2or eax, edx
    001fcee4movd x1, eax
    001fcee8cvtss2sd x0, x1
    001fceecjmp 0x2075f0
    001fcef1mov rax, [rsp+152]
    001fcef9sub rax, [0x28]
    001fcf02jne 0x1fcf67
    001fcf04mov rax, [rbx+8]
    001fcf08pxor x0, x0
    001fcf0ccvtss2sd x0, [rax+4*rcx]
    001fcf11add rsp, 168
    001fcf18pop rbx
    001fcf19pop rbp
    001fcf1ajmp 0x2075f0
    001fcf1fmov rax, [rsp+152]
    001fcf27sub rax, [0x28]
    001fcf30jne 0x1fcf67
    001fcf32mov rax, [rbx+8]
    001fcf36movsd_xmm x0, [rax+8*rcx]
    001fcf3badd rsp, 168
    001fcf42pop rbx
    001fcf43pop rbp
    001fcf44jmp 0x2075f0
    001fcf49mov rax, [rbx+8]
    001fcf4dmovsx rax, [rax+rcx]
    001fcf52lea rax, [rax+rax+1]
    001fcf57jmp 0x1fcd75
    001fcf5c
    001fcf5cloc_1fcf5c:
    001fcf5cor edx, 0x7f800000
    001fcf62jmp 0x1fceb6
    001fcf67
    001fcf67loc_1fcf67:
    001fcf67call fn_f4590
    001fcf6c
    001fcf6cloc_1fcf6c:
    001fcf6clea rdi, [rip+0x32b95]
    001fcf73call caml_invalid_argument
    001fccc0
    001fcf78
    001fcf78 // align 0x10