File hevea_f46f610a6b0078f4aa208dda361f21de574cc56ad64b32889301afc466d33979.elf
Function:
    001f8a30
    001f8a30caml_alloc_small:
    001f8a30mov rax, [rip+0x7d5ad]
    001f8a37push r12
    001f8a39lea rdx, [8*rdi]
    001f8a41mov r12l, esi
    001f8a44push rbp
    001f8a45push rbx
    001f8a46mov rbp, [rax]
    001f8a4amov rax, -8
    001f8a51mov rbx, rdi
    001f8a54sub rax, rdx
    001f8a57add [rbp+8], rax
    001f8a5bmov rdx, [rbp]
    001f8a5fmov rax, [rbp+8]
    001f8a63cmp rax, rdx
    001f8a66jb 0x1f8a88
    001f8a68shl rbx, 10
    001f8a6c
    001f8a6cloc_1f8a6c:
    001f8a6cadd rbx, r12
    001f8a6fmov [rax], rbx
    001f8a72mov rax, [rbp+8]
    001f8a76pop rbx
    001f8a77pop rbp
    001f8a78add rax, 8
    001f8a7cpop r12
    001f8a7eret
    001f8a7fdb 0x08
    001f8a80pop r12
    001f8a82ret
    001f8a83
    001f8a83 0f 1f 44 00 00 ..D..
    001f8a88
    001f8a88loc_1f8a88:
    001f8a88mov rsi, rdi
    001f8a8bxor r8l, r8l
    001f8a8emov ecx, 1
    001f8a93mov edx, 1
    001f8a98mov rdi, rbp
    001f8a9bcall caml_alloc_small_dispatch
    001f8aa0mov rax, [rbp+8]
    001f8aa4jmp 0x1f8a6c
    001f8a30
    001f8aa6
    001f8aa6 // align 0x10
    001f8ab0
    001f8ab0caml_alloc_tuple:
    001f8ab0xor esi, esi
    001f8ab2jmp 0x1f7ac0
    001f8ab7db 0x05
    001f8ab8db 0xf0
    001f8ab9db 0xff
    001f8abadb 0xff
    001f8ab0
    001f8abb
    001f8abb // align 0x10
    001f8ac0
    001f8ac0caml_alloc_string:
    001f8ac0push r13
    001f8ac2push r12
    001f8ac4push rbp
    001f8ac5mov rbp, rdi
    001f8ac8push rbx
    001f8ac9lea rbx, [rdi+8]
    001f8acdmov r13, rbx
    001f8ad0shr r13, 3
    001f8ad4sub rsp, 8
    001f8ad8cmp rbx, 2055
    001f8adfja 0x1f8b58
    001f8ae1mov rax, [rip+0x7d4fc]
    001f8ae8mov r12, [rax]
    001f8aectest r12, r12
    001f8aefje 0x1f8b90
    001f8af5mov rax, rbx
    001f8af8not rax
    001f8afband rax, -8
    001f8affadd [r12+8], rax
    001f8b04mov rdx, [r12]
    001f8b08mov rax, [r12+8]
    001f8b0dcmp rax, rdx
    001f8b10jb 0x1f8b70
    001f8b12shl r13, 10
    001f8b16
    001f8b16loc_1f8b16:
    001f8b16add r13, 252
    001f8b1dmov [rax], r13
    001f8b20mov rax, [r12+8]
    001f8b25add rax, 8
    001f8b29and rbx, -8
    001f8b2d
    001f8b2dloc_1f8b2d:
    001f8b2dlea rdx, [rbx+rax-8]
    001f8b32mov [rdx], 0
    001f8b39lea rdx, [rbx-1]
    001f8b3dsub edx, ebp
    001f8b3fmov [rbx+rax-1], dl
    001f8b43add rsp, 8
    001f8b47pop rbx
    001f8b48pop rbp
    001f8b49pop r12
    001f8b4bpop r13
    001f8b4dret
    001f8b4edb 0x5c
    001f8b4fpop r13
    001f8b51ret
    001f8b52
    001f8b52 66 0f 1f 44 00 00 f..D..
    001f8b58
    001f8b58loc_1f8b58:
    001f8b58mov rdi, r13
    001f8b5bmov esi, 252
    001f8b60call caml_alloc_shr
    001f8b65mov rdi, rax
    001f8b68call caml_check_urgent_gc
    001f8b6djmp 0x1f8b2d
    001f8b6f
    001f8b6f 90 .
    001f8b70
    001f8b70loc_1f8b70:
    001f8b70xor r8l, r8l
    001f8b73mov ecx, 1
    001f8b78mov edx, 1
    001f8b7dmov rsi, r13
    001f8b80mov rdi, r12
    001f8b83call caml_alloc_small_dispatch
    001f8b88mov rax, [r12+8]
    001f8b8djmp 0x1f8b16
    001f8b8f
    001f8b8f 90 .
    001f8b90
    001f8b90loc_1f8b90:
    001f8b90call caml_bad_caml_state
    001f8ac0
    001f8b95
    001f8b95 // align 0x10
    001f8ba0
    001f8ba0caml_copy_string:
    001f8ba0push rbp
    001f8ba1push rbx
    001f8ba2mov rbx, rdi
    001f8ba5sub rsp, 8
    001f8ba9call fn_f43a0
    001f8baemov rdi, rax
    001f8bb1mov rbp, rax
    001f8bb4call caml_alloc_string
    001f8bb9mov rdx, rbp
    001f8bbcmov rsi, rbx
    001f8bbfmov rdi, rax
    001f8bc2call fn_f47d0
    001f8bc7add rsp, 8
    001f8bcbpop rbx
    001f8bccpop rbp
    001f8bcdret
    001f8bcedb 0x08
    001f8bcfpop rbx
    001f8bd0pop rbp
    001f8bd1ret
    001f8ba0
    001f8bd2
    001f8bd2 // align 0x10
    001f8be0
    001f8be0caml_alloc_initialized_string:
    001f8be0push rbp
    001f8be1mov rbp, rsi
    001f8be4push rbx
    001f8be5mov rbx, rdi
    001f8be8sub rsp, 8
    001f8beccall caml_alloc_string
    001f8bf1mov rdx, rbx
    001f8bf4mov rsi, rbp
    001f8bf7mov rdi, rax
    001f8bfacall fn_f47d0
    001f8bffadd rsp, 8
    001f8c03pop rbx
    001f8c04pop rbp
    001f8c05ret
    001f8c06db 0x08
    001f8c07pop rbx
    001f8c08pop rbp
    001f8c09ret
    001f8be0
    001f8c0a
    001f8c0a // align 0x10
    001f8c10
    001f8c10caml_alloc_final:
    001f8c10push r12
    001f8c12mov r12, rcx
    001f8c15push rbp
    001f8c16mov rbp, rdx
    001f8c19push rbx
    001f8c1amov rbx, rdi
    001f8c1dmov rdi, rsi
    001f8c20call caml_final_custom_operations
    001f8c25lea rsi, [8*rbx]
    001f8c2dmov rcx, r12
    001f8c30pop rbx
    001f8c31mov rdx, rbp
    001f8c34mov rdi, rax
    001f8c37pop rbp
    001f8c38pop r12
    001f8c3ajmp 0x200bd0
    001f8c3fdb 0x8d
    001f8c40jg 0x1f8c42
    001f8c42db 0x00
    001f8c10
    001f8c43
    001f8c43 // align 0x10
    001f8c50
    001f8c50caml_alloc_array:
    001f8c50push r15
    001f8c52push r14
    001f8c54push r13
    001f8c56push r12
    001f8c58push rbp
    001f8c59push rbx
    001f8c5asub rsp, 104
    001f8c5emovdqa x0, [rip+0x31466]
    001f8c66mov rax, [0x28]
    001f8c6fmov [rsp+88], rax
    001f8c74mov rax, [rip+0x7d369]
    001f8c7bmov r12, [rax]
    001f8c7flea rax, [rsp+16]
    001f8c84movups [rsp+24], x0
    001f8c89movq x0, rsp
    001f8c8emov [rsp], 1
    001f8c96mov r13, [r12+160]
    001f8c9emov [r12+160], rax
    001f8ca6lea rax, [rsp+8]
    001f8cabmovq x1, rax
    001f8cb0cmp [rsi], 0
    001f8cb4mov [rsp+8], 1
    001f8cbdpunpcklqdq x0, x1
    001f8cc1mov [rsp+16], r13
    001f8cc6movups [rsp+40], x0
    001f8ccbje 0x1f8d68
    001f8cd1mov rbp, rdi
    001f8cd4mov r15, rsi
    001f8cd7xor ebx, ebx
    001f8cd9nop [rax]
    001f8cdcmov r14, rbx
    001f8cdflea rbx, [rbx+1]
    001f8ce3cmp [r15+8*r14+8], 0
    001f8ce9jne 0x1f8ce0
    001f8cebxor esi, esi
    001f8cedmov rdi, rbx
    001f8cf0call caml_alloc
    001f8cf5mov [rsp+8], rax
    001f8cfatest rbx, rbx
    001f8cfdje 0x1f8d3c
    001f8cffxor ebx, ebx
    001f8d01nop [rax+rax]
    001f8d0cmov rdi, [r15+8*rbx]
    001f8d10
    001f8d10loc_1f8d10:
    001f8d10call rbp
    001f8d12mov [rsp], rax
    001f8d16mov rsi, rax
    001f8d19mov rax, [rsp+8]
    001f8d1elea rdi, [rax+8*rbx]
    001f8d22call caml_modify
    001f8d27mov rax, rbx
    001f8d2aadd rbx, 1
    001f8d2ecmp r14, rax
    001f8d31jne 0x1f8d10
    001f8d33mov rax, [rsp+8]
    001f8d38mov [r12+160], r13
    001f8d40mov rdx, [rsp+88]
    001f8d45sub rdx, [0x28]
    001f8d4ejne 0x1f8d73
    001f8d50add rsp, 104
    001f8d54pop rbx
    001f8d55pop rbp
    001f8d56pop r12
    001f8d58pop r13
    001f8d5apop r14
    001f8d5cpop r15
    001f8d5eret
    001f8d5fdb 0x5e
    001f8d60pop r15
    001f8d62ret
    001f8d63
    001f8d63 0f 1f 44 00 00 ..D..
    001f8d68
    001f8d68loc_1f8d68:
    001f8d68xor esi, esi
    001f8d6axor edi, edi
    001f8d6ccall caml_alloc
    001f8d71jmp 0x1f8d3c
    001f8d73
    001f8d73loc_1f8d73:
    001f8d73call fn_f4590
    001f8c50
    001f8d78
    001f8d78 // align 0x10
    001f8d80
    001f8d80caml_alloc_float_array:
    001f8d80push rbp
    001f8d81push rbx
    001f8d82sub rsp, 8
    001f8d86mov rax, [rip+0x7d257]
    001f8d8dmov rbp, [rax]
    001f8d91test rbp, rbp
    001f8d94je 0x1f8e20
    001f8d9amov rbx, rdi
    001f8d9dcmp rdi, 256
    001f8da4ja 0x1f8e00
    001f8da6test rdi, rdi
    001f8da9je 0x1f8df0
    001f8dablea rdx, [8*rdi]
    001f8db3mov rax, -8
    001f8dbasub rax, rdx
    001f8dbdadd [rbp+8], rax
    001f8dc1mov rdx, [rbp]
    001f8dc5mov rax, [rbp+8]
    001f8dc9cmp rax, rdx
    001f8dccjb 0x1f8e28
    001f8dceshl rbx, 10
    001f8dd2
    001f8dd2loc_1f8dd2:
    001f8dd2add rbx, 254
    001f8dd9mov [rax], rbx
    001f8ddcmov rax, [rbp+8]
    001f8de0add rsp, 8
    001f8de4pop rbx
    001f8de5pop rbp
    001f8de6add rax, 8
    001f8dearet
    001f8debdb 0x83
    001f8decror [rax], -61
    001f8def
    001f8def 90 .
    001f8df0
    001f8df0loc_1f8df0:
    001f8df0add rsp, 8
    001f8df4xor edi, edi
    001f8df6pop rbx
    001f8df7pop rbp
    001f8df8jmp 0x21ec80
    001f8dfd
    001f8dfd 0f 1f 00 ...
    001f8e00
    001f8e00loc_1f8e00:
    001f8e00mov esi, 254
    001f8e05call caml_alloc_shr
    001f8e0aadd rsp, 8
    001f8e0epop rbx
    001f8e0fmov rdi, rax
    001f8e12pop rbp
    001f8e13jmp 0x21aac0
    001f8e18
    001f8e18 0f 1f 84 00 00 00 00 00 ........
    001f8e20
    001f8e20loc_1f8e20:
    001f8e20call caml_bad_caml_state
    001f8e25nop [rax]
    001f8e28
    001f8e28loc_1f8e28:
    001f8e28mov rsi, rdi
    001f8e2bxor r8l, r8l
    001f8e2emov ecx, 1
    001f8e33mov edx, 1
    001f8e38mov rdi, rbp
    001f8e3bcall caml_alloc_small_dispatch
    001f8e40mov rax, [rbp+8]
    001f8e44jmp 0x1f8dd2
    001f8d80
    001f8e46
    001f8e46 // align 0x10
    001f8e50
    001f8e50caml_copy_string_array:
    001f8e50mov rsi, rdi
    001f8e53lea rdi, [rip-702]
    001f8e5ajmp 0x1f8c50
    001f8e5fdb 0xed
    001f8e60std
    001f8e61db 0xff
    001f8e62db 0xff
    001f8e50
    001f8e63
    001f8e63 // align 0x20
    001f8e80
    001f8e80caml_convert_flag_list:
    001f8e80xor edx, edx
    001f8e82cmp rdi, 1
    001f8e86je 0x1f8eb5
    001f8e88nop [rax+rax]
    001f8e93nop [rax+rax]
    001f8e9cmov rax, [rdi]
    001f8e9fmov rdi, [rdi+8]
    001f8ea3sar rax, 1
    001f8ea6cdqe
    001f8ea8or edx, [rsi+4*rax]
    001f8eabcmp rdi, 1
    001f8eafjne 0x1f8ea0
    001f8eb1mov eax, edx
    001f8eb3ret
    001f8eb4db 0xeb
    001f8eb5
    001f8eb5loc_1f8eb5:
    001f8eb5mov eax, edx
    001f8eb7ret
    001f8e80
    001f8eb8
    001f8eb8 // align 0x10
    001f8ec0
    001f8ec0caml_alloc_dummy:
    001f8ec0sar rdi, 1
    001f8ec3xor esi, esi
    001f8ec5jmp 0x1f7ac0
    001f8ecadb 0xf2
    001f8ecbjmp 0x1f8ecc
    001f8ecddb 0xff
    001f8ec0
    001f8ece
    001f8ece // align 0x10
    001f8ed0
    001f8ed0caml_alloc_dummy_function:
    001f8ed0sar rdi, 1
    001f8ed3xor esi, esi
    001f8ed5jmp 0x1f7ac0
    001f8edadb 0xe2
    001f8edbjmp 0x1f8edc
    001f8edddb 0xff
    001f8ed0
    001f8ede
    001f8ede // align 0x10
    001f8ee0
    001f8ee0caml_alloc_dummy_float:
    001f8ee0sar rdi, 1
    001f8ee3xor esi, esi
    001f8ee5jmp 0x1f7ac0
    001f8eeadb 0xd2
    001f8eebjmp 0x1f8eec
    001f8eeddb 0xff
    001f8ee0
    001f8eee
    001f8eee // align 0x10
    001f8ef0
    001f8ef0caml_alloc_dummy_infix:
    001f8ef0push rbp
    001f8ef1sar rsi, 1
    001f8ef4mov rbp, rdi
    001f8ef7sar rdi, 1
    001f8efapush rbx
    001f8efbmov rbx, rsi
    001f8efemov esi, 247
    001f8f03or rbp, 1
    001f8f07sub rsp, 8
    001f8f0bcall caml_alloc
    001f8f10mov [rax+8], rbp
    001f8f14test rbx, rbx
    001f8f17je 0x1f8f30
    001f8f19lea rax, [rax+8*rbx]
    001f8f1dshl rbx, 10
    001f8f21add rbx, 249
    001f8f28mov [rax-8], rbx
    001f8f2cadd rsp, 8
    001f8f30
    001f8f30loc_1f8f30:
    001f8f30pop rbx
    001f8f31pop rbp
    001f8f32ret
    001f8f33db 0x08
    001f8f34pop rbx
    001f8f35pop rbp
    001f8f36ret
    001f8ef0
    001f8f37
    001f8f37 // align 0x10
    001f8f40
    001f8f40caml_update_dummy:
    001f8f40movzx edx, [rsi-8]
    001f8f44mov rax, [rdi-8]
    001f8f48shr rax, 10
    001f8f4cje 0x1f8fb0
    001f8f4epush r12
    001f8f50mov rcx, rdi
    001f8f53movzx eax, dl
    001f8f56push rbp
    001f8f57push rbx
    001f8f58mov rbx, rsi
    001f8f5bcmp dl, -2
    001f8f5eje 0x1f8fc0
    001f8f60cmp eax, 249
    001f8f65je 0x1f8ff8
    001f8f6bmov [rdi-8], dl
    001f8f6emov rax, [rsi-8]
    001f8f72shr rax, 10
    001f8f76je 0x1f8fa6
    001f8f78sub rcx, rsi
    001f8f7blea r12, [rsi+8*rax]
    001f8f7fmov rbp, rcx
    001f8f82nop [rax+rax]
    001f8f8cmov rsi, [rbx]
    001f8f8flea rdi, [rbp+rbx]
    001f8f94add rbx, 8
    001f8f98call caml_modify
    001f8f9dcmp rbx, r12
    001f8fa0jne 0x1f8f90
    001f8fa2pop rbx
    001f8fa3mov eax, 1
    001f8fa8pop rbp
    001f8fa9pop r12
    001f8fabret
    001f8facmov eax, 1
    001f8fb1ret
    001f8fb2db 0x00
    001f8fb3add [rax], al
    001f8fb5ret
    001f8fb6
    001f8fb6 66 2e 0f 1f 84 00 00 00 00 00 f.........
    001f8fc0
    001f8fc0loc_1f8fc0:
    001f8fc0mov [rdi-8], -2
    001f8fc4mov rax, [rsi-8]
    001f8fc8shr rax, 10
    001f8fccje 0x1f8fa6
    001f8fcesub rcx, rsi
    001f8fd1lea rax, [rsi+8*rax]
    001f8fd5mov rbp, rcx
    001f8fd8nop [rax+rax]
    001f8fe0
    001f8fe0loc_1f8fe0:
    001f8fe0movsd_xmm x0, [rbx]
    001f8fe4movsd_xmm [rbp+rbx], x0
    001f8feaadd rbx, 8
    001f8feecmp rbx, rax
    001f8ff1jne 0x1f8fe0
    001f8ff3jmp 0x1f8fa6
    001f8ff5
    001f8ff5 0f 1f 00 ...
    001f8ff8
    001f8ff8loc_1f8ff8:
    001f8ff8mov rax, [rsi-8]
    001f8ffcmov rdx, [rdi-8]
    001f9000mov rbp, rsi
    001f9003shr rax, 10
    001f9007shr rdx, 10
    001f900bshl rax, 3
    001f900fshl rdx, 3
    001f9013sub rbp, rax
    001f9016sub rcx, rdx
    001f9019mov rdx, [rbp-8]
    001f901dshr rdx, 10
    001f9021je 0x1f8fa6
    001f9023sub rax, rsi
    001f9026lea r12, [rbp+8*rdx]
    001f902blea rbx, [rax+rcx]
    001f902fnop
    001f9030
    001f9030loc_1f9030:
    001f9030mov rsi, [rbp]
    001f9034lea rdi, [rbx+rbp]
    001f9038add rbp, 8
    001f903ccall caml_modify
    001f9041cmp rbp, r12
    001f9044jne 0x1f9030
    001f9046pop rbx
    001f9047mov eax, 1
    001f904cpop rbp
    001f904dpop r12
    001f904fret
    001f8f40
    001f9050
    001f9050caml_alloc_some:
    001f9050push rbp
    001f9051push rbx
    001f9052sub rsp, 104
    001f9056mov [rsp+8], rdi
    001f905bmov rax, [0x28]
    001f9064mov [rsp+88], rax
    001f9069mov rax, [rip+0x7cf74]
    001f9070mov rbx, [rax]
    001f9074lea rax, [rsp+16]
    001f9079mov rbp, [rbx+160]
    001f9080mov [rbx+160], rax
    001f9087mov eax, 1
    001f908cmovq x0, rax
    001f9091lea rax, [rsp+8]
    001f9096punpcklqdq x0, x0
    001f909amov [rsp+40], rax
    001f909fmovups [rsp+24], x0
    001f90a4mov [rsp+16], rbp
    001f90a9sub [rbx+8], 16
    001f90aemov rdx, [rbx]
    001f90b1mov rax, [rbx+8]
    001f90b5cmp rax, rdx
    001f90b8jb 0x1f90f8
    001f90bamov [rax], 1024
    001f90c1mov rax, [rbx+8]
    001f90c5mov rdx, [rsp+8]
    001f90caadd rax, 8
    001f90cemov [rax], rdx
    001f90d1mov [rbx+160], rbp
    001f90d8mov rdx, [rsp+88]
    001f90ddsub rdx, [0x28]
    001f90e6jne 0x1f9118
    001f90e8add rsp, 104
    001f90ecpop rbx
    001f90edpop rbp
    001f90eeret
    001f90efdb 0x68
    001f90f0pop rbx
    001f90f1pop rbp
    001f90f2ret
    001f90f3
    001f90f3 0f 1f 44 00 00 ..D..
    001f90f8
    001f90f8loc_1f90f8:
    001f90f8xor r8l, r8l
    001f90fbmov ecx, 1
    001f9100mov edx, 1
    001f9105mov esi, 1
    001f910amov rdi, rbx
    001f910dcall caml_alloc_small_dispatch
    001f9112mov rax, [rbx+8]
    001f9116jmp 0x1f90be
    001f9118
    001f9118loc_1f9118:
    001f9118call fn_f4590
    001f9050
    001f911d
    001f911d // align 0x10
    001f9120
    001f9120caml_atomic_make_contended:
    001f9120push r12
    001f9122xor esi, esi
    001f9124push rbp
    001f9125push rbx
    001f9126sub rsp, 96
    001f912amov [rsp+8], rdi
    001f912fmov edi, 7
    001f9134mov rax, [0x28]
    001f913dmov [rsp+88], rax
    001f9142mov rax, [rip+0x7ce9b]
    001f9149mov rbp, [rax]
    001f914dlea rax, [rsp+16]
    001f9152mov r12, [rbp+160]
    001f9159mov [rbp+160], rax
    001f9160mov eax, 1
    001f9165movq x0, rax
    001f916alea rax, [rsp+8]
    001f916fpunpcklqdq x0, x0
    001f9173mov [rsp+16], r12
    001f9178movups [rsp+24], x0
    001f917dmov [rsp+40], rax
    001f9182call caml_alloc_shr
    001f9187mov rsi, [rsp+8]
    001f918cmov rbx, rax
    001f918fmov rdi, rax
    001f9192call caml_initialize
    001f9197lea rdx, [rbx+8]
    001f919blea rax, [rbx+56]
    001f919fmov [rdx], 1
    001f91a6add rdx, 16
    001f91aamov [rdx-8], 1
    001f91b2cmp rdx, rax
    001f91b5jne 0x1f91a3
    001f91b7mov [rbp+160], r12
    001f91bemov rax, [rsp+88]
    001f91c3sub rax, [0x28]
    001f91ccjne 0x1f91de
    001f91ceadd rsp, 96
    001f91d2mov rax, rbx
    001f91d5pop rbx
    001f91d6pop rbp
    001f91d7pop r12
    001f91d9ret
    001f91dacall fn_f4590
    001f91dfdb 0xad
    001f91e0mov bl, 239
    001f91e2db 0xff
    001f9120
    001f91e3
    001f91e3 // align 0x20
    001f9200
    001f9200fn_1f9200:
    001f9200push r15
    001f9202push r14
    001f9204push r13
    001f9206push r12
    001f9208push rbp
    001f9209push rbx
    001f920asub rsp, 104
    001f920emov rax, [rip+0x7cdd3]
    001f9215mov rbx, [0x28]
    001f921emov [rsp+88], rbx
    001f9223mov rbx, rcx
    001f9226mov rcx, [rax]
    001f922amov [rsp+32], rdi
    001f922fmov [rsp+24], 1
    001f9238mov rax, [rcx+160]
    001f923fmov [rsp], rcx
    001f9243mov [rsp+40], rsi
    001f9248mov [rsp+8], rax
    001f924dmov [rsp+16], rax
    001f9252lea rax, [rsp+16]
    001f9257mov [rcx+160], rax
    001f925etest rdi, rdi
    001f9261je 0x1f934c
    001f9267mov r13, rdx
    001f926amov rbp, rdi
    001f926dmov r15, rsi
    001f9270xor eax, eax
    001f9272xor edx, edx
    001f9274nop [rax+rax]
    001f927fnop
    001f9280
    001f9280loc_1f9280:
    001f9280add rdx, [rbx+8*rax]
    001f9284setb r12b
    001f9288mov r14, rdx
    001f928bmovzx r12l, r12b
    001f928fjb 0x1f9364
    001f9295add rax, 1
    001f9299cmp rax, rbp
    001f929cjne 0x1f9280
    001f929etest rdx, rdx
    001f92a1je 0x1f9340
    001f92a7shr rdx, 54
    001f92abjne 0x1f9364
    001f92b1
    001f92b1loc_1f92b1:
    001f92b1mov rdi, r14
    001f92b4mov esi, 254
    001f92b9lea rbp, [rbx+8*rbp]
    001f92bdcall caml_alloc
    001f92c2mov r14, rax
    001f92c5nop [rax+rax]
    001f92d0
    001f92d0loc_1f92d0:
    001f92d0mov rax, [rbx]
    001f92d3mov rsi, [r13]
    001f92d7lea rdi, [r14+8*r12]
    001f92dbadd rbx, 8
    001f92dfadd r13, 8
    001f92e3add r15, 8
    001f92e7lea rdx, [8*rax]
    001f92efmov rax, [r15-8]
    001f92f3lea rsi, [rax+8*rsi]
    001f92f7call fn_f47d0
    001f92fcadd r12, [rbx-8]
    001f9300cmp rbp, rbx
    001f9303jne 0x1f92d0
    001f9305
    001f9305loc_1f9305:
    001f9305mov rax, [rsp]
    001f9309mov rcx, [rsp+8]
    001f930emov [rax+160], rcx
    001f9315mov rax, [rsp+88]
    001f931asub rax, [0x28]
    001f9323jne 0x1f9370
    001f9325add rsp, 104
    001f9329mov rax, r14
    001f932cpop rbx
    001f932dpop rbp
    001f932epop r12
    001f9330pop r13
    001f9332pop r14
    001f9334pop r15
    001f9336ret
    001f9337
    001f9337 66 0f 1f 84 00 00 00 00 00 f........
    001f9340
    001f9340loc_1f9340:
    001f9340xor edi, edi
    001f9342call caml_atom
    001f9347jmp 0x1f92b1
    001f934c
    001f934cloc_1f934c:
    001f934cxor edi, edi
    001f934ecall caml_atom
    001f9353mov esi, 254
    001f9358xor edi, edi
    001f935acall caml_alloc
    001f935fmov r14, rax
    001f9362jmp 0x1f9305
    001f9364
    001f9364loc_1f9364:
    001f9364lea rdi, [rip+0x35941]
    001f936bcall caml_invalid_argument
    001f9370
    001f9370loc_1f9370:
    001f9370call fn_f4590
    001f9200
    001f9375
    001f9375 // align 0x10
    001f9380
    001f9380fn_1f9380:
    001f9380push r15
    001f9382push r14
    001f9384push r13
    001f9386push r12
    001f9388push rbp
    001f9389push rbx
    001f938asub rsp, 152
    001f9391mov [rsp+24], rsi
    001f9396mov [rsp+32], rdx
    001f939bmov [rsp+8], rcx
    001f93a0mov rax, [0x28]
    001f93a9mov [rsp+136], rax
    001f93b1mov rax, [rip+0x7cc30]
    001f93b8mov rcx, [rax]
    001f93bcmov [rsp+80], rdi
    001f93c1mov [rsp+72], 1
    001f93camov rax, [rcx+160]
    001f93d1mov [rsp+48], rcx
    001f93d6mov [rsp+88], rsi
    001f93dbmov [rsp+56], rax
    001f93e0mov [rsp+64], rax
    001f93e5lea rax, [rsp+64]
    001f93eamov [rcx+160], rax
    001f93f1test rdi, rdi
    001f93f4je 0x1f959a
    001f93famov r14, rdi
    001f93fdxor r12l, r12l
    001f9400xor edi, edi
    001f9402nop [rax+rax]
    001f940dnop [rax+rax]
    001f9418nop [rax+rax]
    001f9420
    001f9420loc_1f9420:
    001f9420mov rax, [rsp+8]
    001f9425xor r13l, r13l
    001f9428add rdi, [rax+8*r12]
    001f942csetb r13b
    001f9430jb 0x1f95a9
    001f9436add r12, 1
    001f943acmp r12, r14
    001f943djne 0x1f9420
    001f943ftest rdi, rdi
    001f9442je 0x1f959a
    001f9448cmp rdi, 256
    001f944fjbe 0x1f9533
    001f9455mov rax, rdi
    001f9458shr rax, 54
    001f945cjne 0x1f95a9
    001f9462xor esi, esi
    001f9464xor r15l, r15l
    001f9467call caml_alloc_shr
    001f946cmov [rsp+40], rax
    001f9471nop [rax+rax]
    001f947cnop [rax]
    001f9480
    001f9480loc_1f9480:
    001f9480mov rax, [rsp+32]
    001f9485mov rdx, [rax+8*r15]
    001f9489mov rax, [rsp+24]
    001f948emov rax, [rax+8*r15]
    001f9492lea rbp, [rax+8*rdx]
    001f9496mov rax, [rsp+8]
    001f949bmov rbx, [rax+8*r15]
    001f949fmov [rsp+16], rbx
    001f94a4test rbx, rbx
    001f94a7je 0x1f94e0
    001f94a9mov rax, [rsp+40]
    001f94aelea r12, [rax+8*r13]
    001f94b2sub r12, rbp
    001f94b5nop [rax+rax]
    001f94c0
    001f94c0loc_1f94c0:
    001f94c0mov rsi, [rbp]
    001f94c4lea rdi, [rbp+r12]
    001f94c9add rbp, 8
    001f94cdcall caml_initialize
    001f94d2sub rbx, 1
    001f94d6jne 0x1f94c0
    001f94d8mov rax, [rsp+16]
    001f94ddadd r13, rax
    001f94e0
    001f94e0loc_1f94e0:
    001f94e0add r15, 1
    001f94e4cmp r15, r14
    001f94e7jne 0x1f9480
    001f94e9mov rdi, [rsp+40]
    001f94eecall caml_process_pending_actions_with_root
    001f94f3mov rbx, rax
    001f94f6
    001f94f6loc_1f94f6:
    001f94f6mov rax, [rsp+48]
    001f94fbmov rdx, [rsp+56]
    001f9500mov [rax+160], rdx
    001f9507mov rax, [rsp+136]
    001f950fsub rax, [0x28]
    001f9518jne 0x1f95b5
    001f951eadd rsp, 152
    001f9525mov rax, rbx
    001f9528pop rbx
    001f9529pop rbp
    001f952apop r12
    001f952cpop r13
    001f952epop r14
    001f9530pop r15
    001f9532ret
    001f9533
    001f9533loc_1f9533:
    001f9533xor esi, esi
    001f9535call caml_alloc_small
    001f953amov rbp, [rsp+8]
    001f953fmov r15, [rsp+32]
    001f9544mov r14, [rsp+24]
    001f9549mov rbx, rax
    001f954clea r12, [rbp+8*r12]
    001f9551nop [rax+rax]
    001f955cnop [rax]
    001f9560
    001f9560loc_1f9560:
    001f9560mov rax, [rbp]
    001f9564mov rcx, [r15]
    001f9567lea rdi, [rbx+8*r13]
    001f956badd rbp, 8
    001f956fadd r15, 8
    001f9573add r14, 8
    001f9577lea rdx, [8*rax]
    001f957fmov rax, [r14-8]
    001f9583lea rsi, [rax+8*rcx]
    001f9587call fn_f47d0
    001f958cadd r13, [rbp-8]
    001f9590cmp r12, rbp
    001f9593jne 0x1f9560
    001f9595jmp 0x1f94f6
    001f959a
    001f959aloc_1f959a:
    001f959axor edi, edi
    001f959ccall caml_atom
    001f95a1mov rbx, rax
    001f95a4jmp 0x1f94f6
    001f95a9
    001f95a9loc_1f95a9:
    001f95a9lea rdi, [rip+0x356fc]
    001f95b0call caml_invalid_argument
    001f95b5
    001f95b5loc_1f95b5:
    001f95b5call fn_f4590
    001f9380
    001f95ba
    001f95ba // align 0x10
    001f95c0
    001f95c0caml_array_length:
    001f95c0movzx eax, [rdi-8]
    001f95c4mov rax, [rdi-8]
    001f95c8shr rax, 10
    001f95ccret
    001f95cddb 0xc1
    001f95cedb 0xe8
    001f95cfor al, bl
    001f95c0
    001f95d1
    001f95d1 // align 0x10
    001f95e0
    001f95e0caml_is_double_array:
    001f95e0movzx eax, [rdi-8]
    001f95e4cmp al, -2
    001f95e6sete al
    001f95e9movzx eax, al
    001f95ecret
    001f95eddb 0x0f
    001f95eemov dh, 192
    001f95f0ret
    001f95e0
    001f95f1
    001f95f1 // align 0x10
    001f9600
    001f9600caml_array_get_addr:
    001f9600sar rsi, 1
    001f9603js 0x1f961e
    001f9605mov rax, [rdi-8]
    001f9609shr rax, 10
    001f960dcmp rsi, rax
    001f9610jae 0x1f961e
    001f9612lea rax, [rdi+8*rsi]
    001f9616mov rax, [rax]
    001f9619ret
    001f961apush rax
    001f961bcall caml_array_bound_error
    001f9620db 0xdc
    001f9621db 0xd4
    001f9622add [rax], al
    001f9600
    001f9624
    001f9624 // align 0x10
    001f9630
    001f9630caml_floatarray_get:
    001f9630push rbx
    001f9631sub rsp, 16
    001f9635sar rsi, 1
    001f9638js 0x1f96bc
    001f963amov rax, [rdi-8]
    001f963eshr rax, 10
    001f9642cmp rsi, rax
    001f9645jae 0x1f96bc
    001f9647mov rax, [rip+0x7c996]
    001f964emovsd_xmm x0, [rdi+8*rsi]
    001f9653mov rbx, [rax]
    001f9657sub [rbx+8], 16
    001f965cmov rdx, [rbx]
    001f965fmov rax, [rbx+8]
    001f9663cmp rax, rdx
    001f9666jb 0x1f9690
    001f9668mov [rax], 1277
    001f966fmov rax, [rbx+8]
    001f9673movsd_xmm [rax+8], x0
    001f9678add rsp, 16
    001f967cadd rax, 8
    001f9680pop rbx
    001f9681ret
    001f9682db 0xc0
    001f9683or [rbx-61], bl
    001f9686
    001f9686 66 2e 0f 1f 84 00 00 00 00 00 f.........
    001f9690
    001f9690loc_1f9690:
    001f9690xor r8l, r8l
    001f9693mov ecx, 1
    001f9698mov edx, 1
    001f969dmov rdi, rbx
    001f96a0movsd_xmm [rsp+8], x0
    001f96a6mov esi, 1
    001f96abcall caml_alloc_small_dispatch
    001f96b0mov rax, [rbx+8]
    001f96b4movsd_xmm x0, [rsp+8]
    001f96bajmp 0x1f966c
    001f96bc
    001f96bcloc_1f96bc:
    001f96bccall caml_array_bound_error
    001f9630
    001f96c1
    001f96c1 // align 0x10
    001f96d0
    001f96d0caml_array_get:
    001f96d0movzx eax, [rdi-8]
    001f96d4cmp al, -2
    001f96d6je 0x1f9700
    001f96d8sar rsi, 1
    001f96dbjs 0x1f9705
    001f96ddmov rax, [rdi-8]
    001f96e1shr rax, 10
    001f96e5cmp rsi, rax
    001f96e8jae 0x1f9705
    001f96ealea rax, [rdi+8*rsi]
    001f96eemov rax, [rax]
    001f96f1ret
    001f96f2db 0x48
    001f96f3mov eax, [rax]
    001f96f5ret
    001f96f6
    001f96f6 66 2e 0f 1f 84 00 00 00 00 00 f.........
    001f9700
    001f9700loc_1f9700:
    001f9700jmp 0x1f9630
    001f9705
    001f9705loc_1f9705:
    001f9705push rax
    001f9706call caml_array_bound_error
    001f96d0
    001f970b
    001f970b // align 0x10
    001f9710
    001f9710caml_array_set_addr:
    001f9710sub rsp, 8
    001f9714sar rsi, 1
    001f9717js 0x1f9740
    001f9719mov rax, [rdi-8]
    001f971dshr rax, 10
    001f9721cmp rsi, rax
    001f9724jae 0x1f9740
    001f9726lea rdi, [rdi+8*rsi]
    001f972amov rsi, rdx
    001f972dcall caml_modify
    001f9732mov eax, 1
    001f9737add rsp, 8
    001f973bret
    001f973ccall caml_array_bound_error
    001f9741db 0xbb
    001f9742rol [rax], cl
    001f9744db 0x00
    001f9710
    001f9745
    001f9745 // align 0x10
    001f9750
    001f9750caml_floatarray_set:
    001f9750sar rsi, 1
    001f9753movsd_xmm x0, [rdx]
    001f9757js 0x1f9775
    001f9759mov rax, [rdi-8]
    001f975dshr rax, 10
    001f9761cmp rsi, rax
    001f9764jae 0x1f9775
    001f9766movsd_xmm [rdi+8*rsi], x0
    001f976bmov eax, 1
    001f9770ret
    001f9771push rax
    001f9772call caml_array_bound_error
    001f9777db 0x85
    001f9778rol [rax], cl
    001f977adb 0x00
    001f9750
    001f977b
    001f977b // align 0x10
    001f9780
    001f9780caml_array_set:
    001f9780sub rsp, 8
    001f9784movzx eax, [rdi-8]
    001f9788sar rsi, 1
    001f978bcmp al, -2
    001f978dje 0x1f97c0
    001f978ftest rsi, rsi
    001f9792js 0x1f97e5
    001f9794mov rax, [rdi-8]
    001f9798shr rax, 10
    001f979ccmp rsi, rax
    001f979fjae 0x1f97e5
    001f97a1lea rdi, [rdi+8*rsi]
    001f97a5mov rsi, rdx
    001f97a8call caml_modify
    001f97admov eax, 1
    001f97b2add rsp, 8
    001f97b6ret
    001f97b7db 0x83
    001f97b8db 0xc4
    001f97b9or bl, al
    001f97bb
    001f97bb 0f 1f 44 00 00 ..D..
    001f97c0
    001f97c0loc_1f97c0:
    001f97c0movsd_xmm x0, [rdx]
    001f97c4test rsi, rsi
    001f97c7js 0x1f97e5
    001f97c9mov rax, [rdi-8]
    001f97cdshr rax, 10
    001f97d1cmp rsi, rax
    001f97d4jae 0x1f97e5
    001f97d6movsd_xmm [rdi+8*rsi], x0
    001f97dbmov eax, 1
    001f97e0add rsp, 8
    001f97e4ret
    001f97e5
    001f97e5loc_1f97e5:
    001f97e5call caml_array_bound_error
    001f9780
    001f97ea
    001f97ea // align 0x10
    001f97f0
    001f97f0caml_floatarray_unsafe_get:
    001f97f0push rbx
    001f97f1sar rsi, 1
    001f97f4sub rsp, 16
    001f97f8mov rax, [rip+0x7c7e5]
    001f97ffmovsd_xmm x0, [rdi+8*rsi]
    001f9804mov rbx, [rax]
    001f9808sub [rbx+8], 16
    001f980dmov rdx, [rbx]
    001f9810mov rax, [rbx+8]
    001f9814cmp rax, rdx
    001f9817jb 0x1f9840
    001f9819mov [rax], 1277
    001f9820mov rax, [rbx+8]
    001f9824movsd_xmm [rax+8], x0
    001f9829add rsp, 16
    001f982dadd rax, 8
    001f9831pop rbx
    001f9832ret
    001f9833db 0xc0
    001f9834or [rbx-61], bl
    001f9837
    001f9837 66 0f 1f 84 00 00 00 00 00 f........
    001f9840
    001f9840loc_1f9840:
    001f9840xor r8l, r8l
    001f9843mov ecx, 1
    001f9848mov edx, 1
    001f984dmov rdi, rbx
    001f9850movsd_xmm [rsp+8], x0
    001f9856mov esi, 1
    001f985bcall caml_alloc_small_dispatch
    001f9860mov rax, [rbx+8]
    001f9864movsd_xmm x0, [rsp+8]
    001f986ajmp 0x1f981d
    001f97f0
    001f986c
    001f986c // align 0x10
    001f9870
    001f9870caml_array_unsafe_get:
    001f9870movzx eax, [rdi-8]
    001f9874cmp al, -2
    001f9876je 0x1f9890
    001f9878sar rsi, 1
    001f987blea rax, [rdi+8*rsi]
    001f987fmov rax, [rax]
    001f9882ret
    001f9883db 0x48
    001f9884mov eax, [rax]
    001f9886ret
    001f9887
    001f9887 66 0f 1f 84 00 00 00 00 00 f........
    001f9890
    001f9890loc_1f9890:
    001f9890jmp 0x1f97f0
    001f9870
    001f9895
    001f9895 // align 0x10
    001f98a0
    001f98a0caml_floatarray_unsafe_set:
    001f98a0movsd_xmm x0, [rdx]
    001f98a4sar rsi, 1
    001f98a7mov eax, 1
    001f98acmovsd_xmm [rdi+8*rsi], x0
    001f98b1ret
    001f98b2db 0x11
    001f98b3add al, -9
    001f98b5ret
    001f98a0
    001f98b6
    001f98b6 // align 0x10
    001f98c0
    001f98c0caml_array_unsafe_set:
    001f98c0movzx eax, [rdi-8]
    001f98c4sar rsi, 1
    001f98c7lea rdi, [rdi+8*rsi]
    001f98cbcmp al, -2
    001f98cdje 0x1f98f0
    001f98cfsub rsp, 8
    001f98d3mov rsi, rdx
    001f98d6call caml_modify
    001f98dbmov eax, 1
    001f98e0add rsp, 8
    001f98e4ret
    001f98e5db 0x83
    001f98e6db 0xc4
    001f98e7or bl, al
    001f98e9
    001f98e9 0f 1f 80 00 00 00 00 .......
    001f98f0
    001f98f0loc_1f98f0:
    001f98f0movsd_xmm x0, [rdx]
    001f98f4mov eax, 1
    001f98f9movsd_xmm [rdi], x0
    001f98fdret
    001f98c0
    001f98fe
    001f98fe // align 0x10
    001f9900
    001f9900caml_floatarray_create:
    001f9900push rbp
    001f9901push rbx
    001f9902mov rbx, rdi
    001f9905sar rbx, 1
    001f9908sub rsp, 8
    001f990ccmp rdi, 513
    001f9913ja 0x1f9970
    001f9915test rbx, rbx
    001f9918je 0x1f9998
    001f991amov rax, [rip+0x7c6c3]
    001f9921lea rdx, [8*rbx]
    001f9929mov rbp, [rax]
    001f992dmov rax, -8
    001f9934sub rax, rdx
    001f9937add [rbp+8], rax
    001f993bmov rdx, [rbp]
    001f993fmov rax, [rbp+8]
    001f9943cmp rax, rdx
    001f9946jb 0x1f99a8
    001f9948shl rbx, 10
    001f994c
    001f994cloc_1f994c:
    001f994cadd rbx, 254
    001f9953mov [rax], rbx
    001f9956mov rdi, [rbp+8]
    001f995aadd rsp, 8
    001f995epop rbx
    001f995fpop rbp
    001f9960add rdi, 8
    001f9964jmp 0x21fee0
    001f9969db 0x73
    001f996aadd al, [rax]
    001f996d
    001f996d 0f 1f 00 ...
    001f9970
    001f9970loc_1f9970:
    001f9970mov rax, rbx
    001f9973shr rax, 54
    001f9977jne 0x1f99c6
    001f9979mov rdi, rbx
    001f997cmov esi, 254
    001f9981call caml_alloc_shr
    001f9986add rsp, 8
    001f998apop rbx
    001f998bmov rdi, rax
    001f998epop rbp
    001f998fjmp 0x21fee0
    001f9994
    001f9994 0f 1f 40 00 ..@.
    001f9998
    001f9998loc_1f9998:
    001f9998add rsp, 8
    001f999cxor edi, edi
    001f999epop rbx
    001f999fpop rbp
    001f99a0jmp 0x21ec80
    001f99a5
    001f99a5 0f 1f 00 ...
    001f99a8
    001f99a8loc_1f99a8:
    001f99a8xor r8l, r8l
    001f99abmov ecx, 1
    001f99b0mov edx, 1
    001f99b5mov rsi, rbx
    001f99b8mov rdi, rbp
    001f99bbcall caml_alloc_small_dispatch
    001f99c0mov rax, [rbp+8]
    001f99c4jmp 0x1f994c
    001f99c6
    001f99c6loc_1f99c6:
    001f99c6lea rdi, [rip+0x352ec]
    001f99cdcall caml_invalid_argument
    001f9900
    001f99d2
    001f99d2 // align 0x10
    001f99e0
    001f99e0caml_floatarray_make_unboxed:
    001f99e0test rdi, rdi
    001f99e3je 0x1f9a60
    001f99e5push rbx
    001f99e6mov rax, rdi
    001f99e9mov rbx, rdi
    001f99ecsub rsp, 16
    001f99f0shr rax, 54
    001f99f4jne 0x1f9a67
    001f99f6mov esi, 254
    001f99fbmovsd_xmm [rsp+8], x0
    001f9a01call caml_alloc
    001f9a06movsd_xmm x0, [rsp+8]
    001f9a0cmov rdi, rax
    001f9a0fmov rdx, rax
    001f9a12lea rax, [rax+8*rbx]
    001f9a16and ebx, 1
    001f9a19je 0x1f9a40
    001f9a1blea rdx, [rdi+8]
    001f9a1fmovsd_xmm [rdi], x0
    001f9a23cmp rdx, rax
    001f9a26je 0x1f9a52
    001f9a28nop [rax+rax]
    001f9a33nop [rax+rax]
    001f9a3cmovsd_xmm [rdx], x0
    001f9a40
    001f9a40loc_1f9a40:
    001f9a40add rdx, 16
    001f9a44movsd_xmm [rdx-8], x0
    001f9a49cmp rdx, rax
    001f9a4cjne 0x1f9a40
    001f9a4eadd rsp, 16
    001f9a52
    001f9a52loc_1f9a52:
    001f9a52pop rbx
    001f9a53jmp 0x21fee0
    001f9a58db 0x84
    001f9a59add al, [rax]
    001f9a5c
    001f9a5c 0f 1f 40 00 ..@.
    001f9a60
    001f9a60loc_1f9a60:
    001f9a60xor edi, edi
    001f9a62jmp 0x21ec80
    001f9a67
    001f9a67loc_1f9a67:
    001f9a67lea rdi, [rip+0x3525e]
    001f9a6ecall caml_invalid_argument
    001f99e0
    001f9a73
    001f9a73 // align 0x10
    001f9a80
    001f9a80caml_floatarray_make:
    001f9a80movsd_xmm x0, [rsi]
    001f9a84sar rdi, 1
    001f9a87jmp 0x1f99e0
    001f9a8cdb 0x50
    001f9a8ddb 0xff
    001f9a8edb 0xff
    001f9a8fdb 0xff
    001f9a80
    001f9a90
    001f9a90 // align 0x20
    001f9aa0
    001f9aa0caml_uniform_array_make:
    001f9aa0push r12
    001f9aa2push rbp
    001f9aa3push rbx
    001f9aa4mov rbx, rdi
    001f9aa7sub rsp, 176
    001f9aaemovdqa x0, [rip+0x30616]
    001f9ab6sar rbx, 1
    001f9ab9mov [rsp+8], rdi
    001f9abemovq x1, rsp
    001f9ac3mov [rsp], rsi
    001f9ac7mov rax, [0x28]
    001f9ad0mov [rsp+168], rax
    001f9ad8mov rax, [rip+0x7c505]
    001f9adfmov r12, [rax]
    001f9ae3lea rax, [rsp+8]
    001f9ae8movups [rsp+40], x0
    001f9aedmov [rsp+24], 1
    001f9af6movq x0, rax
    001f9afblea rax, [rsp+32]
    001f9b00mov [rsp+96], rax
    001f9b05lea rax, [rsp+96]
    001f9b0amov rbp, [r12+160]
    001f9b12punpcklqdq x0, x1
    001f9b16mov [r12+160], rax
    001f9b1emov eax, 1
    001f9b23movups [rsp+56], x0
    001f9b28movq x0, rax
    001f9b2dlea rax, [rsp+24]
    001f9b32punpcklqdq x0, x0
    001f9b36mov [rsp+32], rbp
    001f9b3bmov [rsp+120], rax
    001f9b40movups [rsp+104], x0
    001f9b45je 0x1f9c80
    001f9b4bcmp rbx, 256
    001f9b52jbe 0x1f9c28
    001f9b58mov rax, rbx
    001f9b5bshr rax, 54
    001f9b5fjne 0x1f9c91
    001f9b65mov rax, [rsp]
    001f9b69test al, 1
    001f9b6bje 0x1f9bf0
    001f9b6dxor esi, esi
    001f9b6fmov rdi, rbx
    001f9b72call caml_alloc_shr
    001f9b77mov rdx, [rsp]
    001f9b7bmov [rsp+24], rax
    001f9b80mov [rax], rdx
    001f9b83lea rdx, [8*rbx]
    001f9b8bmov eax, 8
    001f9b90nop [rax+rax]
    001f9b9bnop
    001f9b9cmov rcx, [rsp+24]
    001f9ba1mov rsi, [rsp]
    001f9ba5add rcx, rax
    001f9ba8add rax, 8
    001f9bacmov [rcx], rsi
    001f9bafcmp rax, rdx
    001f9bb2jne 0x1f9ba0
    001f9bb4call caml_process_pending_actions
    001f9bb9mov rax, [rsp+24]
    001f9bbemov [r12+160], rbp
    001f9bc6mov rdx, [rsp+168]
    001f9bcesub rdx, [0x28]
    001f9bd7jne 0x1f9c8c
    001f9bddadd rsp, 176
    001f9be4pop rbx
    001f9be5pop rbp
    001f9be6pop r12
    001f9be8ret
    001f9be9db 0x5d
    001f9beapop r12
    001f9becret
    001f9bed
    001f9bed 0f 1f 00 ...
    001f9bf0
    001f9bf0loc_1f9bf0:
    001f9bf0cmp rax, [rip+0x17e9d1]
    001f9bf7jae 0x1f9b71
    001f9bfdcmp [rip+0x17e9cc], rax
    001f9c04jae 0x1f9b71
    001f9c0amov esi, 1
    001f9c0fmov edi, 1
    001f9c14call caml_ev_counter
    001f9c19call caml_minor_collection
    001f9c1ejmp 0x1f9b71
    001f9c23
    001f9c23 0f 1f 44 00 00 ..D..
    001f9c28
    001f9c28loc_1f9c28:
    001f9c28xor esi, esi
    001f9c2amov rdi, rbx
    001f9c2dcall caml_alloc_small
    001f9c32mov rdx, [rsp]
    001f9c36mov [rsp+24], rax
    001f9c3bmov [rax], rdx
    001f9c3ecmp rbx, 1
    001f9c42jbe 0x1f9bb8
    001f9c48lea rdx, [8*rbx]
    001f9c50mov eax, 8
    001f9c55nop [rax+rax]
    001f9c60
    001f9c60loc_1f9c60:
    001f9c60mov rcx, [rsp+24]
    001f9c65mov rsi, [rsp]
    001f9c69add rcx, rax
    001f9c6cadd rax, 8
    001f9c70mov [rcx], rsi
    001f9c73cmp rdx, rax
    001f9c76jne 0x1f9c60
    001f9c78jmp 0x1f9bb8
    001f9c7d
    001f9c7d 0f 1f 00 ...
    001f9c80
    001f9c80loc_1f9c80:
    001f9c80xor edi, edi
    001f9c82call caml_atom
    001f9c87jmp 0x1f9bc2
    001f9c8c
    001f9c8cloc_1f9c8c:
    001f9c8ccall fn_f4590
    001f9c91
    001f9c91loc_1f9c91:
    001f9c91lea rdi, [rip+0x35034]
    001f9c98call caml_invalid_argument
    001f9aa0
    001f9c9d
    001f9c9d // align 0x10
    001f9ca0
    001f9ca0caml_array_make:
    001f9ca0test sil, 1
    001f9ca4jne 0x1f9cb2
    001f9ca6movzx eax, [rsi-8]
    001f9caacmp al, -3
    001f9cacje 0x1f9cc0
    001f9caejmp 0x1f9aa0
    001f9cb3db 0xe9
    001f9cb4std
    001f9cb5db 0xff
    001f9cb6db 0xff
    001f9cb7
    001f9cb7 66 0f 1f 84 00 00 00 00 00 f........
    001f9cc0
    001f9cc0loc_1f9cc0:
    001f9cc0movsd_xmm x0, [rsi]
    001f9cc4sar rdi, 1
    001f9cc7jmp 0x1f99e0
    001f9ca0
    001f9ccc
    001f9ccc // align 0x10
    001f9cd0
    001f9cd0caml_array_create_float:
    001f9cd0jmp 0x1f9900
    001f9cd5db 0x27
    001f9cd6cld
    001f9cd7db 0xff
    001f9cd8db 0xff
    001f9cd0
    001f9cd9
    001f9cd9 // align 0x40
    001f9d00
    001f9d00caml_array_of_uniform_array:
    001f9d00push rbp
    001f9d01mov rcx, rdi
    001f9d04push rbx
    001f9d05sub rsp, 184
    001f9d0cmov [rsp+8], rdi
    001f9d11mov rax, [0x28]
    001f9d1amov [rsp+168], rax
    001f9d22mov rax, [rip+0x7c2bb]
    001f9d29mov rbx, [rax]
    001f9d2dmov eax, 1
    001f9d32mov [rsp+16], 1
    001f9d3bmov [rsp+24], 1
    001f9d44movq x0, rax
    001f9d49lea rax, [rsp+8]
    001f9d4emov [rsp+56], rax
    001f9d53punpcklqdq x0, x0
    001f9d57lea rax, [rsp+32]
    001f9d5cmov rbp, [rbx+160]
    001f9d63mov [rsp+96], rax
    001f9d68lea rax, [rsp+96]
    001f9d6dmovups [rsp+40], x0
    001f9d72movdqa x0, [rip+0x30352]
    001f9d7amov [rbx+160], rax
    001f9d81lea rax, [rsp+16]
    001f9d86movups [rsp+104], x0
    001f9d8bmovq x0, rax
    001f9d90lea rax, [rsp+24]
    001f9d95movq x1, rax
    001f9d9amov [rsp+32], rbp
    001f9d9fpunpcklqdq x0, x1
    001f9da3movups [rsp+120], x0
    001f9da8mov rdx, [rdi-8]
    001f9dacshr rdx, 10
    001f9db0je 0x1f9dca
    001f9db2mov rax, [rdi]
    001f9db5mov [rsp+16], rax
    001f9dbatest al, 1
    001f9dbcjne 0x1f9dca
    001f9dbemovzx eax, [rax-8]
    001f9dc2cmp al, -3
    001f9dc4je 0x1f9df8
    001f9dc6mov [rbx+160], rbp
    001f9dcdmov rax, [rsp+168]
    001f9dd5sub rax, [0x28]
    001f9ddejne 0x1f9e98
    001f9de4add rsp, 184
    001f9debmov rax, rcx
    001f9deepop rbx
    001f9defpop rbp
    001f9df0ret
    001f9df1db 0xc8
    001f9df2pop rbx
    001f9df3pop rbp
    001f9df4ret
    001f9df5
    001f9df5 0f 1f 00 ...
    001f9df8
    001f9df8loc_1f9df8:
    001f9df8mov [rsp], rdx
    001f9dfcmov esi, 254
    001f9e01mov rdi, rdx
    001f9e04cmp rdx, 256
    001f9e0bja 0x1f9e78
    001f9e0dcall caml_alloc_small
    001f9e12mov rcx, [rsp+8]
    001f9e17mov rdx, [rsp]
    001f9e1bmov [rsp+24], rax
    001f9e20mov rcx, [rcx]
    001f9e23movsd_xmm x0, [rcx]
    001f9e27movsd_xmm [rax], x0
    001f9e2bcmp rdx, 1
    001f9e2fjbe 0x1f9e62
    001f9e31
    001f9e31loc_1f9e31:
    001f9e31shl rdx, 3
    001f9e35mov eax, 8
    001f9e3anop [rax+rax]
    001f9e40
    001f9e40loc_1f9e40:
    001f9e40mov rcx, [rsp+8]
    001f9e45add rcx, rax
    001f9e48mov rcx, [rcx]
    001f9e4bmovsd_xmm x0, [rcx]
    001f9e4fmov rcx, [rsp+24]
    001f9e54movsd_xmm [rcx+rax], x0
    001f9e59add rax, 8
    001f9e5dcmp rdx, rax
    001f9e60jne 0x1f9e40
    001f9e62
    001f9e62loc_1f9e62:
    001f9e62call caml_process_pending_actions
    001f9e67mov rcx, [rsp+24]
    001f9e6cjmp 0x1f9dca
    001f9e71
    001f9e71 0f 1f 80 00 00 00 00 .......
    001f9e78
    001f9e78loc_1f9e78:
    001f9e78call caml_alloc_shr
    001f9e7dmov rcx, [rsp+8]
    001f9e82mov rdx, [rsp]
    001f9e86mov [rsp+24], rax
    001f9e8bmov rcx, [rcx]
    001f9e8emovsd_xmm x0, [rcx]
    001f9e92movsd_xmm [rax], x0
    001f9e96jmp 0x1f9e31
    001f9e98
    001f9e98loc_1f9e98:
    001f9e98call fn_f4590
    001f9d00
    001f9e9d
    001f9e9d // align 0x10
    001f9ea0
    001f9ea0caml_make_vect:
    001f9ea0test sil, 1
    001f9ea4jne 0x1f9eb2
    001f9ea6movzx eax, [rsi-8]
    001f9eaacmp al, -3
    001f9eacje 0x1f9ec0
    001f9eaejmp 0x1f9aa0
    001f9eb3db 0xe9
    001f9eb4sti
    001f9eb5db 0xff
    001f9eb6db 0xff
    001f9eb7
    001f9eb7 66 0f 1f 84 00 00 00 00 00 f........
    001f9ec0
    001f9ec0loc_1f9ec0:
    001f9ec0movsd_xmm x0, [rsi]
    001f9ec4sar rdi, 1
    001f9ec7jmp 0x1f99e0
    001f9ea0
    001f9ecc
    001f9ecc // align 0x10
    001f9ed0
    001f9ed0caml_make_float_vect:
    001f9ed0jmp 0x1f9900
    001f9ed5db 0x27
    001f9ed6cli
    001f9ed7db 0xff
    001f9ed8db 0xff
    001f9ed0
    001f9ed9
    001f9ed9 // align 0x10
    001f9ee0
    001f9ee0caml_make_array:
    001f9ee0jmp 0x1f9d00
    001f9ee5db 0x17
    001f9ee6db 0xfe
    001f9ee7db 0xff
    001f9ee8db 0xff
    001f9ee0
    001f9ee9
    001f9ee9 // align 0x10
    001f9ef0
    001f9ef0caml_floatarray_blit:
    001f9ef0sar r8, 1
    001f9ef3jne 0x1f9f00
    001f9ef5mov eax, 1
    001f9efaret
    001f9efbdb 0x00
    001f9efcadd [rax], al
    001f9eferet
    001f9eff
    001f9eff 90 .
    001f9f00
    001f9f00loc_1f9f00:
    001f9f00sar rcx, 1
    001f9f03sub rsp, 8
    001f9f07mov rax, rdx
    001f9f0asar rsi, 1
    001f9f0dlea rsi, [rdi+8*rsi]
    001f9f11lea rdx, [8*r8]
    001f9f19lea rdi, [rax+8*rcx]
    001f9f1dcall fn_f4520
    001f9f22mov eax, 1
    001f9f27add rsp, 8
    001f9f2bret
    001f9ef0
    001f9f2c
    001f9f2c // align 0x20
    001f9f40
    001f9f40caml_uniform_array_blit:
    001f9f40push r12
    001f9f42push rbp
    001f9f43push rbx
    001f9f44mov rbx, r8
    001f9f47sar rbx, 1
    001f9f4aje 0x1f9fb2
    001f9f4csar rsi, 1
    001f9f4fsar rcx, 1
    001f9f52cmp rdx, [rip+0x17e66b]
    001f9f59mov rax, rdi
    001f9f5cjae 0x1f9f6f
    001f9f5ecmp [rip+0x17e667], rdx
    001f9f65jb 0x1fa000
    001f9f6bcmp rdx, rax
    001f9f6eje 0x1f9fc0
    001f9f70lea r12, [rdx+8*rcx]
    001f9f74
    001f9f74loc_1f9f74:
    001f9f74lea rbp, [rax+8*rsi]
    001f9f78test rbx, rbx
    001f9f7bjle 0x1f9fa8
    001f9f7dsub r12, rbp
    001f9f80nop [rax+rax]
    001f9f8bnop
    001f9f8cmov rsi, [rbp]
    001f9f90
    001f9f90loc_1f9f90:
    001f9f90lea rdi, [rbp+r12]
    001f9f95add rbp, 8
    001f9f99call caml_modify
    001f9f9esub rbx, 1
    001f9fa2jne 0x1f9f90
    001f9fa4mov edi, 1
    001f9fa9call caml_check_urgent_gc
    001f9faepop rbx
    001f9fafmov eax, 1
    001f9fb4pop rbp
    001f9fb5pop r12
    001f9fb7ret
    001f9fb8db 0x5d
    001f9fb9pop r12
    001f9fbbret
    001f9fbc
    001f9fbc 0f 1f 40 00 ..@.
    001f9fc0
    001f9fc0loc_1f9fc0:
    001f9fc0cmp rsi, rcx
    001f9fc3jge 0x1f9f74
    001f9fc5sub rdx, 8
    001f9fc9add rcx, rbx
    001f9fccadd rsi, rbx
    001f9fcflea r12, [rdx+8*rcx]
    001f9fd3lea rbp, [rdx+8*rsi]
    001f9fd7sub r12, rbp
    001f9fdatest rbx, rbx
    001f9fddjle 0x1f9fa8
    001f9fdfnop
    001f9fe0
    001f9fe0loc_1f9fe0:
    001f9fe0mov rsi, [rbp]
    001f9fe4lea rdi, [rbp+r12]
    001f9fe9sub rbp, 8
    001f9fedcall caml_modify
    001f9ff2sub rbx, 1
    001f9ff6jne 0x1f9fe0
    001f9ff8jmp 0x1f9fa8
    001f9ffa
    001f9ffa 66 0f 1f 44 00 00 f..D..
    001fa000
    001fa000loc_1fa000:
    001fa000mov rax, [rip+0x17e5d9]
    001fa007lea rsi, [rdi+8*rsi]
    001fa00blea rdi, [rdx+8*rcx]
    001fa00fcmp rax, 1
    001fa013je 0x1fa045
    001fa015cmp rdi, rsi
    001fa018jae 0x1fa057
    001fa01alea rdx, [rsi+8*rbx]
    001fa01esub rdi, rsi
    001fa021nop [rax+rax]
    001fa02cnop [rax]
    001fa030
    001fa030loc_1fa030:
    001fa030mov rax, [rsi]
    001fa033mov [rdi+rsi], rax
    001fa037add rsi, 8
    001fa03bcmp rdx, rsi
    001fa03ejne 0x1fa030
    001fa040jmp 0x1f9fb2
    001fa045
    001fa045loc_1fa045:
    001fa045lea rdx, [8*rbx]
    001fa04dcall fn_f4520
    001fa052jmp 0x1f9fb2
    001fa057
    001fa057loc_1fa057:
    001fa057lea rax, [rsi+8*rbx-8]
    001fa05csub rdi, rsi
    001fa05fnop
    001fa060
    001fa060loc_1fa060:
    001fa060mov rcx, [rax]
    001fa063mov rdx, rax
    001fa066mov [rdi+rax], rcx
    001fa06asub rax, 8
    001fa06ecmp rsi, rdx
    001fa071jne 0x1fa060
    001fa073jmp 0x1f9fb2
    001f9f40
    001fa078
    001fa078 // align 0x10
    001fa080
    001fa080caml_array_blit:
    001fa080movzx eax, [rdx-8]
    001fa084cmp al, -2
    001fa086je 0x1fa098
    001fa088jmp 0x1f9f40
    001fa08ddb 0xaf
    001fa08edb 0xfe
    001fa08fdb 0xff
    001fa090db 0xff
    001fa091
    001fa091 0f 1f 80 00 00 00 00 .......
    001fa098
    001fa098loc_1fa098:
    001fa098sar r8, 1
    001fa09bjne 0x1fa0a8
    001fa09dmov eax, 1
    001fa0a2ret
    001fa0a3
    001fa0a3 0f 1f 44 00 00 ..D..
    001fa0a8
    001fa0a8loc_1fa0a8:
    001fa0a8shl r8, 3
    001fa0acsub rsp, 8
    001fa0b0sar rcx, 1
    001fa0b3sar rsi, 1
    001fa0b6lea rsi, [rdi+8*rsi]
    001fa0balea rdi, [rdx+8*rcx]
    001fa0bemov rdx, r8
    001fa0c1call fn_f4520
    001fa0c6mov eax, 1
    001fa0cbadd rsp, 8
    001fa0cfret
    001fa080
    001fa0d0
    001fa0d0caml_floatarray_sub:
    001fa0d0sar rsi, 1
    001fa0d3sub rsp, 40
    001fa0d7sar rdx, 1
    001fa0damov rax, [0x28]
    001fa0e3mov [rsp+24], rax
    001fa0e8xor eax, eax
    001fa0ealea rcx, [rsp+16]
    001fa0efmov [rsp], rdi
    001fa0f3mov edi, 1
    001fa0f8mov [rsp+8], rsi
    001fa0fdmov rsi, rsp
    001fa100mov [rsp+16], rdx
    001fa105lea rdx, [rsp+8]
    001fa10acall fn_1f9200
    001fa10fmov rdx, [rsp+24]
    001fa114sub rdx, [0x28]
    001fa11djne 0x1fa128
    001fa11fadd rsp, 40
    001fa123ret
    001fa124call fn_f4590
    001fa129db 0x63
    001fa12amovsb [rdi], [rsi]
    001fa12bout dx, eax
    001fa12cdb 0xff
    001fa0d0
    001fa12d
    001fa12d // align 0x10
    001fa130
    001fa130caml_uniform_array_sub:
    001fa130sar rsi, 1
    001fa133sub rsp, 40
    001fa137sar rdx, 1
    001fa13amov rax, [0x28]
    001fa143mov [rsp+24], rax
    001fa148xor eax, eax
    001fa14alea rcx, [rsp+16]
    001fa14fmov [rsp], rdi
    001fa153mov edi, 1
    001fa158mov [rsp+8], rsi
    001fa15dmov rsi, rsp
    001fa160mov [rsp+16], rdx
    001fa165lea rdx, [rsp+8]
    001fa16acall fn_1f9380
    001fa16fmov rdx, [rsp+24]
    001fa174sub rdx, [0x28]
    001fa17djne 0x1fa188
    001fa17fadd rsp, 40
    001fa183ret
    001fa184call fn_f4590
    001fa189db 0x03
    001fa18amovsb [rdi], [rsi]
    001fa18bout dx, eax
    001fa18cdb 0xff
    001fa130
    001fa18d
    001fa18d // align 0x10
    001fa190
    001fa190caml_array_sub:
    001fa190sar rsi, 1
    001fa193sub rsp, 40
    001fa197sar rdx, 1
    001fa19amov rax, [0x28]
    001fa1a3mov [rsp+24], rax
    001fa1a8xor eax, eax
    001fa1aamov [rsp+8], rsi
    001fa1aflea rcx, [rsp+16]
    001fa1b4mov rsi, rsp
    001fa1b7mov [rsp+16], rdx
    001fa1bclea rdx, [rsp+8]
    001fa1c1mov [rsp], rdi
    001fa1c5mov rax, [rdi-8]
    001fa1c9shr rax, 10
    001fa1cdje 0x1fa1db
    001fa1cfmovzx eax, [rdi-8]
    001fa1d3cmp al, -2
    001fa1d5je 0x1fa200
    001fa1d7mov edi, 1
    001fa1dccall fn_1f9380
    001fa1e1mov rdx, [rsp+24]
    001fa1e6sub rdx, [0x28]
    001fa1efjne 0x1fa20c
    001fa1f1add rsp, 40
    001fa1f5ret
    001fa1f6db 0x83
    001fa1f7db 0xc4
    001fa1f8sub bl, al
    001fa1fa
    001fa1fa 66 0f 1f 44 00 00 f..D..
    001fa200
    001fa200loc_1fa200:
    001fa200mov edi, 1
    001fa205call fn_1f9200
    001fa20ajmp 0x1fa1e5
    001fa20c
    001fa20cloc_1fa20c:
    001fa20ccall fn_f4590
    001fa190
    001fa211
    001fa211 // align 0x10
    001fa220
    001fa220caml_floatarray_append:
    001fa220sub rsp, 72
    001fa224pxor x0, x0
    001fa228mov rax, [0x28]
    001fa231mov [rsp+56], rax
    001fa236xor eax, eax
    001fa238mov [rsp], rdi
    001fa23clea rdx, [rsp+16]
    001fa241lea rcx, [rsp+32]
    001fa246mov [rsp+8], rsi
    001fa24bmovzx eax, [rdi-8]
    001fa24fmovaps [rsp+16], x0
    001fa254mov rax, [rdi-8]
    001fa258mov edi, 2
    001fa25dshr rax, 10
    001fa261mov [rsp+32], rax
    001fa266movzx eax, [rsi-8]
    001fa26amov rax, [rsi-8]
    001fa26emov rsi, rsp
    001fa271shr rax, 10
    001fa275mov [rsp+40], rax
    001fa27acall fn_1f9200
    001fa27fmov rdx, [rsp+56]
    001fa284sub rdx, [0x28]
    001fa28djne 0x1fa298
    001fa28fadd rsp, 72
    001fa293ret
    001fa294call fn_f4590
    001fa299db 0xf3
    001fa29adb 0xa2
    001fa29bout dx, eax
    001fa29cdb 0xff
    001fa220
    001fa29d
    001fa29d // align 0x10
    001fa2a0
    001fa2a0caml_uniform_array_append:
    001fa2a0sub rsp, 72
    001fa2a4pxor x0, x0
    001fa2a8mov rax, [0x28]
    001fa2b1mov [rsp+56], rax
    001fa2b6xor eax, eax
    001fa2b8mov [rsp], rdi
    001fa2bclea rdx, [rsp+16]
    001fa2c1lea rcx, [rsp+32]
    001fa2c6mov [rsp+8], rsi
    001fa2cbmovzx eax, [rdi-8]
    001fa2cfmovaps [rsp+16], x0
    001fa2d4mov rax, [rdi-8]
    001fa2d8mov edi, 2
    001fa2ddshr rax, 10
    001fa2e1mov [rsp+32], rax
    001fa2e6movzx eax, [rsi-8]
    001fa2eamov rax, [rsi-8]
    001fa2eemov rsi, rsp
    001fa2f1shr rax, 10
    001fa2f5mov [rsp+40], rax
    001fa2facall fn_1f9380
    001fa2ffmov rdx, [rsp+56]
    001fa304sub rdx, [0x28]
    001fa30djne 0x1fa318
    001fa30fadd rsp, 72
    001fa313ret
    001fa314call fn_f4590
    001fa319db 0x73
    001fa31adb 0xa2
    001fa31bout dx, eax
    001fa31cdb 0xff
    001fa2a0
    001fa31d
    001fa31d // align 0x10
    001fa320
    001fa320caml_array_append:
    001fa320sub rsp, 72
    001fa324pxor x0, x0
    001fa328mov rax, [0x28]
    001fa331mov [rsp+56], rax
    001fa336xor eax, eax
    001fa338mov [rsp], rdi
    001fa33cmov rcx, rsp
    001fa33fmov [rsp+8], rsi
    001fa344movzx eax, [rdi-8]
    001fa348movaps [rsp+16], x0
    001fa34dmov rax, [rdi-8]
    001fa351shr rax, 10
    001fa355mov [rsp+32], rax
    001fa35amovzx eax, [rsi-8]
    001fa35emov rax, [rsi-8]
    001fa362shr rax, 10
    001fa366mov [rsp+40], rax
    001fa36bmov rdx, [rdi-8]
    001fa36fmov rax, rsp
    001fa372shr rdx, 10
    001fa376je 0x1fa3b8
    001fa378mov rdx, [rcx]
    001fa37bmovzx edx, [rdx-8]
    001fa37fcmp dl, -2
    001fa382je 0x1fa3d3
    001fa384lea rcx, [rsp+32]
    001fa389lea rdx, [rsp+16]
    001fa38emov rsi, rax
    001fa391mov edi, 2
    001fa396call fn_1f9380
    001fa39bmov rdx, [rsp+56]
    001fa3a0sub rdx, [0x28]
    001fa3a9jne 0x1fa3ec
    001fa3abadd rsp, 72
    001fa3afret
    001fa3b0db 0x83
    001fa3b1db 0xc4
    001fa3b2ret
    001fa3b4
    001fa3b4 0f 1f 40 00 ..@.
    001fa3b8
    001fa3b8loc_1fa3b8:
    001fa3b8mov rdx, [rsi-8]
    001fa3bclea rcx, [rsp+8]
    001fa3c1shr rdx, 10
    001fa3c5je 0x1fa388
    001fa3c7mov rdx, [rcx]
    001fa3camovzx edx, [rdx-8]
    001fa3cecmp dl, -2
    001fa3d1jne 0x1fa388
    001fa3d3
    001fa3d3loc_1fa3d3:
    001fa3d3lea rcx, [rsp+32]
    001fa3d8lea rdx, [rsp+16]
    001fa3ddmov rsi, rax
    001fa3e0mov edi, 2
    001fa3e5call fn_1f9200
    001fa3eajmp 0x1fa39f
    001fa3ec
    001fa3ecloc_1fa3ec:
    001fa3eccall fn_f4590
    001fa320
    001fa3f1
    001fa3f1 // align 0x10
    001fa400
    001fa400caml_array_concat:
    001fa400push r14
    001fa402push r13
    001fa404push r12
    001fa406push rbp
    001fa407push rbx
    001fa408sub rsp, 400
    001fa40fmov rax, [0x28]
    001fa418mov [rsp+392], rax
    001fa420xor eax, eax
    001fa422cmp rdi, 1
    001fa426je 0x1fa5a0
    001fa42cmov rbx, rdi
    001fa42fmov rax, rdi
    001fa432xor ebp, ebp
    001fa434nop [rax+rax]
    001fa43cmov rax, [rax+8]
    001fa440
    001fa440loc_1fa440:
    001fa440add rbp, 1
    001fa444cmp rax, 1
    001fa448jne 0x1fa440
    001fa44acmp rbp, 16
    001fa44ejg 0x1fa550
    001fa454lea r14, [rsp+256]
    001fa45clea r13, [rsp+128]
    001fa464mov r12, rsp
    001fa467xor eax, eax
    001fa469nop [rax+rax]
    001fa474nop [rax+rax]
    001fa47cmov rdx, [rbx]
    001fa47fmov [r12+8*rax], rdx
    001fa483mov [r13+8*rax], 0
    001fa48cmov rdx, [rbx]
    001fa48fmovzx ecx, [rdx-8]
    001fa493mov rdx, [rdx-8]
    001fa497shr rdx, 10
    001fa49bmov [r14+8*rax], rdx
    001fa49fmov rbx, [rbx+8]
    001fa4a3add rax, 1
    001fa4a7cmp rbx, 1
    001fa4abjne 0x1fa480
    001fa4adtest rbp, rbp
    001fa4b0je 0x1fa5b3
    001fa4b6mov rcx, r12
    001fa4b9xor esi, esi
    001fa4bbmov rdx, [rcx]
    001fa4bemov rax, [rdx-8]
    001fa4c2shr rax, 10
    001fa4c6je 0x1fa538
    001fa4c8movzx eax, [rdx-8]
    001fa4cccmp al, -2
    001fa4ceje 0x1fa5d0
    001fa4d4mov rcx, r14
    001fa4d7mov rdx, r13
    001fa4damov rsi, r12
    001fa4ddmov rdi, rbp
    001fa4e0call fn_1f9380
    001fa4e5mov rbx, rax
    001fa4e8cmp rbp, 16
    001fa4ec
    001fa4ecloc_1fa4ec:
    001fa4ecjle 0x1fa50a
    001fa4eemov rdi, r12
    001fa4f1call caml_stat_free
    001fa4f6mov rdi, r13
    001fa4f9call caml_stat_free
    001fa4femov rdi, r14
    001fa501call caml_stat_free
    001fa506mov rax, [rsp+392]
    001fa50esub rax, [0x28]
    001fa517jne 0x1fa5e9
    001fa51dadd rsp, 400
    001fa524mov rax, rbx
    001fa527pop rbx
    001fa528pop rbp
    001fa529pop r12
    001fa52bpop r13
    001fa52dpop r14
    001fa52fret
    001fa530db 0x5d
    001fa531pop r14
    001fa533ret
    001fa534
    001fa534 0f 1f 40 00 ..@.
    001fa538
    001fa538loc_1fa538:
    001fa538add rsi, 1
    001fa53cadd rcx, 8
    001fa540cmp rsi, rbp
    001fa543jb 0x1fa4bf
    001fa549jmp 0x1fa4d8
    001fa54b
    001fa54b 0f 1f 44 00 00 ..D..
    001fa550
    001fa550loc_1fa550:
    001fa550lea r14, [8*rbp]
    001fa558mov rdi, r14
    001fa55bcall caml_stat_alloc
    001fa560mov rdi, r14
    001fa563mov r12, rax
    001fa566call caml_stat_alloc_noexc
    001fa56bmov r13, rax
    001fa56etest rax, rax
    001fa571je 0x1fa58f
    001fa573mov rdi, r14
    001fa576call caml_stat_alloc_noexc
    001fa57bmov r14, rax
    001fa57etest rax, rax
    001fa581jne 0x1fa46b
    001fa587mov rdi, r13
    001fa58acall caml_stat_free
    001fa58f
    001fa58floc_1fa58f:
    001fa58fmov rdi, r12
    001fa592call caml_stat_free
    001fa597call caml_raise_out_of_memory
    001fa59cnop [rax]
    001fa5a0
    001fa5a0loc_1fa5a0:
    001fa5a0lea r14, [rsp+256]
    001fa5a8mov r12, rsp
    001fa5ablea r13, [rsp+128]
    001fa5b3
    001fa5b3loc_1fa5b3:
    001fa5b3mov rcx, r14
    001fa5b6mov rdx, r13
    001fa5b9mov rsi, r12
    001fa5bcxor edi, edi
    001fa5becall fn_1f9380
    001fa5c3mov rbx, rax
    001fa5c6jmp 0x1fa50a
    001fa5cb
    001fa5cb 0f 1f 44 00 00 ..D..
    001fa5d0
    001fa5d0loc_1fa5d0:
    001fa5d0mov rcx, r14
    001fa5d3mov rdx, r13
    001fa5d6mov rsi, r12
    001fa5d9mov rdi, rbp
    001fa5dccall fn_1f9200
    001fa5e1mov rbx, rax
    001fa5e4jmp 0x1fa4ec
    001fa5e9
    001fa5e9loc_1fa5e9:
    001fa5e9call fn_f4590
    001fa400
    001fa5ee
    001fa5ee // align 0x10
    001fa5f0
    001fa5f0caml_floatarray_fill_unboxed:
    001fa5f0lea rax, [rdi+8*rsi]
    001fa5f4test rdx, rdx
    001fa5f7jle 0x1fa60e
    001fa5f9nop [rax]
    001fa5fcmovsd_xmm [rax], x0
    001fa600
    001fa600loc_1fa600:
    001fa600add rax, 8
    001fa604sub rdx, 1
    001fa608jne 0x1fa600
    001fa60amov eax, 1
    001fa60fret
    001fa610db 0x00
    001fa611add [rax], al
    001fa613ret
    001fa5f0
    001fa614
    001fa614 // align 0x10
    001fa620
    001fa620caml_floatarray_fill:
    001fa620sar rsi, 1
    001fa623sar rdx, 1
    001fa626movsd_xmm x0, [rcx]
    001fa62alea rax, [rdi+8*rsi]
    001fa62etest rdx, rdx
    001fa631jle 0x1fa64e
    001fa633nop [rax+rax]
    001fa63cmovsd_xmm [rax], x0
    001fa640
    001fa640loc_1fa640:
    001fa640add rax, 8
    001fa644sub rdx, 1
    001fa648jne 0x1fa640
    001fa64amov eax, 1
    001fa64fret
    001fa650db 0x00
    001fa651add [rax], al
    001fa653ret
    001fa620
    001fa654
    001fa654 // align 0x10
    001fa660
    001fa660caml_uniform_array_fill:
    001fa660mov rax, [rip+0x17df5d]
    001fa667sar rdx, 1
    001fa66asar rsi, 1
    001fa66dpush r14
    001fa66fpush r13
    001fa671push r12
    001fa673mov r12, rcx
    001fa676push rbp
    001fa677mov rbp, rdx
    001fa67apush rbx
    001fa67blea rbx, [rdi+8*rsi]
    001fa67fcmp rdi, rax
    001fa682jae 0x1fa6c0
    001fa684cmp [rip+0x17df41], rdi
    001fa68bjae 0x1fa6c0
    001fa68dtest rdx, rdx
    001fa690jle 0x1fa6ad
    001fa692nop [rax+rax]
    001fa69cmov [rbx], r12
    001fa69fadd rbx, 8
    001fa6a3sub rbp, 1
    001fa6a7jne 0x1fa6a0
    001fa6a9pop rbx
    001fa6aamov eax, 1
    001fa6afpop rbp
    001fa6b0pop r12
    001fa6b2pop r13
    001fa6b4pop r14
    001fa6b6ret
    001fa6b7db 0x5d
    001fa6b8pop r14
    001fa6baret
    001fa6bb
    001fa6bb 0f 1f 44 00 00 ..D..
    001fa6c0
    001fa6c0loc_1fa6c0:
    001fa6c0test r12b, 1
    001fa6c4je 0x1fa758
    001fa6ca
    001fa6caloc_1fa6ca:
    001fa6caxor r14l, r14l
    001fa6cdtest rbp, rbp
    001fa6d0jg 0x1fa6f1
    001fa6d2jmp 0x1fa6ad
    001fa6d4
    001fa6d4 0f 1f 40 00 ..@.
    001fa6d8
    001fa6d8loc_1fa6d8:
    001fa6d8lea rdx, [rax+8]
    001fa6dcmov [r13+24], rdx
    001fa6e0mov [rax], rbx
    001fa6e3
    001fa6e3loc_1fa6e3:
    001fa6e3add rbx, 8
    001fa6e7sub rbp, 1
    001fa6ebje 0x1fa780
    001fa6f1
    001fa6f1loc_1fa6f1:
    001fa6f1mov rsi, [rbx]
    001fa6f4cmp r12, rsi
    001fa6f7je 0x1fa6e3
    001fa6f9mov [rbx], r12
    001fa6fctest sil, 1
    001fa700jne 0x1fa726
    001fa702cmp rsi, [rip+0x17debf]
    001fa709jae 0x1fa714
    001fa70bcmp [rip+0x17debe], rsi
    001fa712jb 0x1fa6e3
    001fa714
    001fa714loc_1fa714:
    001fa714mov rax, [rip+0x7b8cd]
    001fa71bxor edx, edx
    001fa71dmov rdi, [rax]
    001fa721call caml_darken
    001fa726
    001fa726loc_1fa726:
    001fa726test r14l, r14l
    001fa729je 0x1fa6e3
    001fa72bmov rax, [rip+0x7b8b6]
    001fa732mov rax, [rax]
    001fa736mov r13, [rax+96]
    001fa73amov rax, [r13+24]
    001fa73ecmp rax, [r13+32]
    001fa742jb 0x1fa6d8
    001fa744mov rdi, r13
    001fa747call caml_realloc_ref_table
    001fa74cmov rax, [r13+24]
    001fa750jmp 0x1fa6d8
    001fa752
    001fa752 66 0f 1f 44 00 00 f..D..
    001fa758
    001fa758loc_1fa758:
    001fa758cmp r12, rax
    001fa75bjae 0x1fa6ca
    001fa761xor r14l, r14l
    001fa764cmp [rip+0x17de65], r12
    001fa76bsetb r14b
    001fa76ftest rbp, rbp
    001fa772jg 0x1fa6f1
    001fa778nop [rax+rax]
    001fa780
    001fa780loc_1fa780:
    001fa780test r14l, r14l
    001fa783je 0x1fa6ad
    001fa789mov edi, 1
    001fa78ecall caml_check_urgent_gc
    001fa793pop rbx
    001fa794mov eax, 1
    001fa799pop rbp
    001fa79apop r12
    001fa79cpop r13
    001fa79epop r14
    001fa7a0ret
    001fa660
    001fa7a1
    001fa7a1 // align 0x10
    001fa7b0
    001fa7b0caml_array_fill:
    001fa7b0movzx eax, [rdi-8]
    001fa7b4cmp al, -2
    001fa7b6je 0x1fa7c8
    001fa7b8jmp 0x1fa660
    001fa7bddb 0x9f
    001fa7bedb 0xfe
    001fa7bfdb 0xff
    001fa7c0db 0xff
    001fa7c1
    001fa7c1 0f 1f 80 00 00 00 00 .......
    001fa7c8
    001fa7c8loc_1fa7c8:
    001fa7c8sar rsi, 1
    001fa7cbsar rdx, 1
    001fa7cemovsd_xmm x0, [rcx]
    001fa7d2lea rax, [rdi+8*rsi]
    001fa7d6test rdx, rdx
    001fa7d9jle 0x1fa7ee
    001fa7dbnop [rax+rax]
    001fa7e0
    001fa7e0loc_1fa7e0:
    001fa7e0movsd_xmm [rax], x0
    001fa7e4add rax, 8
    001fa7e8sub rdx, 1
    001fa7ecjne 0x1fa7e0
    001fa7ee
    001fa7eeloc_1fa7ee:
    001fa7eemov eax, 1
    001fa7f3ret
    001fa7b0
    001fa7f4
    001fa7f4 // align 0x10
    001fa800
    001fa800fn_1fa800:
    001fa800push rbp
    001fa801push rbx
    001fa802sub rsp, 168
    001fa809movdqa x0, [rip+0x2f8cf]
    001fa811mov rax, [0x28]
    001fa81amov [rsp+152], rax
    001fa822mov rax, [rip+0x7b7bf]
    001fa829lea rsi, [rsp+32]
    001fa82emov rbx, [rax]
    001fa832lea rax, [rsp+80]
    001fa837movups [rsp+88], x0
    001fa83cmov [rsp+8], 1
    001fa845mov [rsp+16], 1
    001fa84emov rbp, [rbx+160]
    001fa855mov [rbx+160], rax
    001fa85clea rax, [rsp+8]
    001fa861movq x0, rax
    001fa866lea rax, [rsp+16]
    001fa86bmov [rsp+80], rbp
    001fa870mov [rsp+24], 1
    001fa879movq x1, rax
    001fa87elea rax, [rsp+24]
    001fa883punpcklqdq x0, x1
    001fa887mov [rsp+120], rax
    001fa88cmovups [rsp+104], x0
    001fa891call caml_debuginfo_location
    001fa896mov r8l, [rsp+32]
    001fa89btest r8l, r8l
    001fa89eje 0x1fa9a8
    001fa8a4mov rdi, [rsp+40]
    001fa8a9call caml_copy_string
    001fa8aemov rdi, [rsp+48]
    001fa8b3mov [rsp+16], rax
    001fa8b8call caml_copy_string
    001fa8bdmov edi, 9
    001fa8c2xor esi, esi
    001fa8c4mov [rsp+24], rax
    001fa8c9call caml_alloc_small
    001fa8cemov edi, [rsp+36]
    001fa8d2mov edx, 1
    001fa8d7mov [rsp+8], rax
    001fa8dctest edi, edi
    001fa8deje 0x1fa8e5
    001fa8e0mov edx, 3
    001fa8e5
    001fa8e5loc_1fa8e5:
    001fa8e5mov [rax], rdx
    001fa8e8mov rdx, [rsp+16]
    001fa8edmov rax, [rsp+8]
    001fa8f2mov [rax+8], rdx
    001fa8f6movsxd rax, [rsp+56]
    001fa8fblea rdx, [rax+rax+1]
    001fa900mov rax, [rsp+8]
    001fa905mov [rax+16], rdx
    001fa909movsxd rax, [rsp+60]
    001fa90elea rdx, [rax+rax+1]
    001fa913mov rax, [rsp+8]
    001fa918mov [rax+24], rdx
    001fa91cmovsxd rax, [rsp+72]
    001fa921lea rdx, [rax+rax+1]
    001fa926mov rax, [rsp+8]
    001fa92bmov [rax+32], rdx
    001fa92fmovsxd rax, [rsp+64]
    001fa934lea rdx, [rax+rax+1]
    001fa939mov rax, [rsp+8]
    001fa93emov [rax+40], rdx
    001fa942movsxd rax, [rsp+68]
    001fa947lea rdx, [rax+rax+1]
    001fa94cmov rax, [rsp+8]
    001fa951mov [rax+48], rdx
    001fa955mov esi, [rsp+76]
    001fa959mov eax, 1
    001fa95etest esi, esi
    001fa960jne 0x1fa9d8
    001fa962
    001fa962loc_1fa962:
    001fa962mov rdx, [rsp+8]
    001fa967mov [rdx+56], rax
    001fa96bmov rdx, [rsp+24]
    001fa970mov rax, [rsp+8]
    001fa975mov [rax+64], rdx
    001fa979
    001fa979loc_1fa979:
    001fa979mov [rbx+160], rbp
    001fa980mov rax, [rsp+8]
    001fa985mov rdx, [rsp+152]
    001fa98dsub rdx, [0x28]
    001fa996jne 0x1fa9df
    001fa998add rsp, 168
    001fa99fpop rbx
    001fa9a0pop rbp
    001fa9a1ret
    001fa9a2
    001fa9a2 66 0f 1f 44 00 00 f..D..
    001fa9a8
    001fa9a8loc_1fa9a8:
    001fa9a8mov esi, 1
    001fa9admov edi, 1
    001fa9b2call caml_alloc_small
    001fa9b7mov ecx, [rsp+36]
    001fa9bbmov edx, 1
    001fa9c0mov [rsp+8], rax
    001fa9c5test ecx, ecx
    001fa9c7je 0x1fa9ce
    001fa9c9mov edx, 3
    001fa9ce
    001fa9celoc_1fa9ce:
    001fa9cemov [rax], rdx
    001fa9d1jmp 0x1fa979
    001fa9d3
    001fa9d3 0f 1f 44 00 00 ..D..
    001fa9d8
    001fa9d8loc_1fa9d8:
    001fa9d8mov eax, 3
    001fa9ddjmp 0x1fa962
    001fa9df
    001fa9dfloc_1fa9df:
    001fa9dfcall fn_f4590
    001fa800
    001fa9e4
    001fa9e4 // align 0x10
    001fa9f0
    001fa9f0caml_record_backtraces:
    001fa9f0mov rax, [rip+0x7b5ed]
    001fa9f7movsxd rdi, edi
    001fa9famov rax, [rax]
    001fa9fecmp rdi, [rax+192]
    001faa05jne 0x1faa10
    001faa07ret
    001faa08db 0x00
    001faa09jne 0x1faa10
    001faa0bret
    001faa0c
    001faa0c 0f 1f 40 00 ..@.
    001faa10
    001faa10loc_1faa10:
    001faa10mov [rax+192], rdi
    001faa17mov esi, 1
    001faa1clea rdi, [rax+208]
    001faa23mov [rax+184], 0
    001faa2ejmp 0x209f70
    001fa9f0
    001faa33
    001faa33 // align 0x10
    001faa40
    001faa40caml_record_backtrace:
    001faa40mov rdx, [rip+0x7b59d]
    001faa47sar rdi, 1
    001faa4amovsxd rax, edi
    001faa4dmov rdi, [rdx]
    001faa51cmp rax, [rdi+192]
    001faa58jne 0x1faa68
    001faa5amov eax, 1
    001faa5fret
    001faa60db 0x00
    001faa61add [rax], al
    001faa63ret
    001faa64
    001faa64 0f 1f 40 00 ..@.
    001faa68
    001faa68loc_1faa68:
    001faa68sub rsp, 8
    001faa6cmov [rdi+192], rax
    001faa73mov esi, 1
    001faa78add rdi, 208
    001faa7fmov [rdi-24], 0
    001faa87call caml_modify_generational_global_root
    001faa8cmov eax, 1
    001faa91add rsp, 8
    001faa95ret
    001faa40