File hevea_f46f610a6b0078f4aa208dda361f21de574cc56ad64b32889301afc466d33979.elf
Function:
    0020fa50
    0020fa50caml_ml_close_channel:
    0020fa50push r14
    0020fa52push r13
    0020fa54push r12
    0020fa56push rbp
    0020fa57push rbx
    0020fa58sub rsp, 96
    0020fa5cmov [rsp+8], rdi
    0020fa61mov rax, [0x28]
    0020fa6amov [rsp+88], rax
    0020fa6fmov rax, [rip+0x6656e]
    0020fa76mov rbp, [rax]
    0020fa7alea rax, [rsp+16]
    0020fa7fmov r12, [rbp+160]
    0020fa86mov [rbp+160], rax
    0020fa8dmov eax, 1
    0020fa92movq x0, rax
    0020fa97lea rax, [rsp+8]
    0020fa9cpunpcklqdq x0, x0
    0020faa0mov [rsp+16], r12
    0020faa5mov [rsp+40], rax
    0020faaamovups [rsp+24], x0
    0020faafmov rbx, [rdi+8]
    0020fab3lea r13, [rbx+40]
    0020fab7mov rdi, r13
    0020fabacall fn_f4780
    0020fabfcmp eax, 16
    0020fac2je 0x20fb80
    0020fac8test eax, eax
    0020facajne 0x20fbaa
    0020fad0mov [0xfffffffffffffff0], rbx
    0020fad9mov r14l, [rbx]
    0020fadccmp r14l, -1
    0020fae0je 0x20fb3a
    0020fae2mov [rbx], -1
    0020fae8mov rdi, [rbx+112]
    0020faeccall caml_stat_free
    0020faf1lea rdx, [rip+0x168f54]
    0020faf8cmp [rbx+32], 0
    0020fafdlea rcx, [rdx+1]
    0020fb01mov [rbx+112], rdx
    0020fb05mov rax, rcx
    0020fb08mov [rbx+16], rcx
    0020fb0ccmovne rax, rdx
    0020fb10movq x0, rax
    0020fb15punpcklqdq x0, x0
    0020fb19movups [rbx+24], x0
    0020fb1dcall caml_enter_blocking_section_no_pending
    0020fb22mov edi, r14l
    0020fb25call fn_f4140
    0020fb2amov ebx, eax
    0020fb2ccall caml_leave_blocking_section
    0020fb31cmp ebx, -1
    0020fb34je 0x20fba0
    0020fb36mov rdi, r13
    0020fb39call fn_f47c0
    0020fb3etest eax, eax
    0020fb40jne 0x20fb92
    0020fb42mov [0xfffffffffffffff0], 0
    0020fb4fmov [rbp+160], r12
    0020fb56mov rax, [rsp+88]
    0020fb5bsub rax, [0x28]
    0020fb64jne 0x20fb8d
    0020fb66add rsp, 96
    0020fb6amov eax, 1
    0020fb6fpop rbx
    0020fb70pop rbp
    0020fb71pop r12
    0020fb73pop r13
    0020fb75pop r14
    0020fb77ret
    0020fb78db 0x5d
    0020fb79pop r14
    0020fb7bret
    0020fb7c
    0020fb7c 0f 1f 40 00 ..@.
    0020fb80
    0020fb80loc_20fb80:
    0020fb80mov rdi, r13
    0020fb83call caml_plat_lock_non_blocking_actual
    0020fb88jmp 0x20fad4
    0020fb8d
    0020fb8dloc_20fb8d:
    0020fb8dcall fn_f4590
    0020fb92
    0020fb92loc_20fb92:
    0020fb92mov esi, eax
    0020fb94lea rdi, [rip+0x1f97f]
    0020fb9bcall caml_plat_fatal_error
    0020fba0
    0020fba0loc_20fba0:
    0020fba0mov edi, 1
    0020fba5call caml_sys_error
    0020fbaa
    0020fbaaloc_20fbaa:
    0020fbaamov esi, eax
    0020fbaclea rdi, [rip+0x1f974]
    0020fbb3call caml_plat_fatal_error
    0020fa50
    0020fbb8
    0020fbb8 // align 0x10
    0020fbc0
    0020fbc0caml_ml_channel_size:
    0020fbc0sub rsp, 8
    0020fbc4call fn_20eb80
    0020fbc9mov rdx, 0x3fffffffffffffff
    0020fbd3cmp rax, rdx
    0020fbd6jg 0x20fbe6
    0020fbd8lea rax, [rax+rax+1]
    0020fbddadd rsp, 8
    0020fbe1ret
    0020fbe2call fn_f4570
    0020fbe7mov edi, 1
    0020fbecmov [rax], 75
    0020fbf2call caml_sys_error
    0020fbf7db 0x25
    0020fbf8and al, 1
    0020fbfadb 0x00
    0020fbc0
    0020fbfb
    0020fbfb // align 0x10
    0020fc00
    0020fc00caml_ml_channel_size_64:
    0020fc00sub rsp, 8
    0020fc04call fn_20eb80
    0020fc09add rsp, 8
    0020fc0dmov rdi, rax
    0020fc10jmp 0x20d9d0
    0020fc15db 0xb7
    0020fc16db 0xdd
    0020fc17db 0xff
    0020fc18db 0xff
    0020fc00
    0020fc19
    0020fc19 // align 0x10
    0020fc20
    0020fc20caml_ml_set_binary_mode:
    0020fc20mov eax, 1
    0020fc25ret
    0020fc26db 0x00
    0020fc27add [rax], al
    0020fc29ret
    0020fc20
    0020fc2a
    0020fc2a // align 0x10
    0020fc30
    0020fc30caml_ml_is_binary_mode:
    0020fc30mov rax, [rdi+8]
    0020fc34mov eax, [rax+104]
    0020fc37and eax, 8
    0020fc3acmp eax, 1
    0020fc3dsbb rax, rax
    0020fc40and eax, 2
    0020fc43add rax, 1
    0020fc47ret
    0020fc48db 0x83
    0020fc49rol [rcx], -61
    0020fc30
    0020fc4c
    0020fc4c // align 0x10
    0020fc50
    0020fc50caml_ml_flush:
    0020fc50push r13
    0020fc52push r12
    0020fc54push rbp
    0020fc55push rbx
    0020fc56sub rsp, 104
    0020fc5amov [rsp+8], rdi
    0020fc5fmov rax, [0x28]
    0020fc68mov [rsp+88], rax
    0020fc6dmov rax, [rip+0x66370]
    0020fc74mov rbp, [rax]
    0020fc78lea rax, [rsp+16]
    0020fc7dmov r13, [rbp+160]
    0020fc84mov [rbp+160], rax
    0020fc8bmov eax, 1
    0020fc90movq x0, rax
    0020fc95lea rax, [rsp+8]
    0020fc9apunpcklqdq x0, x0
    0020fc9emov [rsp+16], r13
    0020fca3mov [rsp+40], rax
    0020fca8movups [rsp+24], x0
    0020fcadmov rbx, [rdi+8]
    0020fcb1lea r12, [rbx+40]
    0020fcb5mov rdi, r12
    0020fcb8call fn_f4780
    0020fcbdcmp eax, 16
    0020fcc0je 0x20fd30
    0020fcc2test eax, eax
    0020fcc4jne 0x20fd4d
    0020fccamov [0xfffffffffffffff0], rbx
    0020fcd3cmp [rbx], -1
    0020fcd6je 0x20fcec
    0020fcd8nop [rax]
    0020fcdcmov rdi, rbx
    0020fcdfcall caml_flush_partial
    0020fce4test eax, eax
    0020fce6je 0x20fce0
    0020fce8mov rdi, r12
    0020fcebcall fn_f47c0
    0020fcf0test eax, eax
    0020fcf2jne 0x20fd3f
    0020fcf4mov [0xfffffffffffffff0], 0
    0020fd01mov [rbp+160], r13
    0020fd08mov rax, [rsp+88]
    0020fd0dsub rax, [0x28]
    0020fd16jne 0x20fd3a
    0020fd18add rsp, 104
    0020fd1cmov eax, 1
    0020fd21pop rbx
    0020fd22pop rbp
    0020fd23pop r12
    0020fd25pop r13
    0020fd27ret
    0020fd28db 0x5c
    0020fd29pop r13
    0020fd2bret
    0020fd2c
    0020fd2c 0f 1f 40 00 ..@.
    0020fd30
    0020fd30loc_20fd30:
    0020fd30mov rdi, r12
    0020fd33call caml_plat_lock_non_blocking_actual
    0020fd38jmp 0x20fcce
    0020fd3a
    0020fd3aloc_20fd3a:
    0020fd3acall fn_f4590
    0020fd3f
    0020fd3floc_20fd3f:
    0020fd3fmov esi, eax
    0020fd41lea rdi, [rip+0x1f7d2]
    0020fd48call caml_plat_fatal_error
    0020fd4d
    0020fd4dloc_20fd4d:
    0020fd4dmov esi, eax
    0020fd4flea rdi, [rip+0x1f7d1]
    0020fd56call caml_plat_fatal_error
    0020fc50
    0020fd5b
    0020fd5b // align 0x10
    0020fd60
    0020fd60caml_ml_set_buffered:
    0020fd60push r13
    0020fd62push r12
    0020fd64push rbp
    0020fd65push rbx
    0020fd66sub rsp, 104
    0020fd6amovdqa x0, [rip+0x1a35a]
    0020fd72mov [rsp+8], rdi
    0020fd77movq x1, rsp
    0020fd7cmov [rsp], rsi
    0020fd80mov rax, [0x28]
    0020fd89mov [rsp+88], rax
    0020fd8emov rax, [rip+0x6624f]
    0020fd95mov rbp, [rax]
    0020fd99lea rax, [rsp+16]
    0020fd9emovups [rsp+24], x0
    0020fda3mov r13, [rbp+160]
    0020fdaamov [rbp+160], rax
    0020fdb1lea rax, [rsp+8]
    0020fdb6movq x0, rax
    0020fdbbpunpcklqdq x0, x1
    0020fdbfmov [rsp+16], r13
    0020fdc4movups [rsp+40], x0
    0020fdc9mov rbx, [rdi+8]
    0020fdcdlea r12, [rbx+40]
    0020fdd1mov rdi, r12
    0020fdd4call fn_f4780
    0020fdd9cmp eax, 16
    0020fddcje 0x20fe80
    0020fde2test eax, eax
    0020fde4jne 0x20fea0
    0020fdeamov [0xfffffffffffffff0], rbx
    0020fdf3mov rax, [rsp]
    0020fdf7mov edx, [rbx+104]
    0020fdfasar rax, 1
    0020fdfdtest eax, eax
    0020fdffje 0x20fe50
    0020fe01and edx, -17
    0020fe04mov [rbx+104], edx
    0020fe07mov rdi, r12
    0020fe0acall fn_f47c0
    0020fe0ftest eax, eax
    0020fe11jne 0x20fe92
    0020fe13mov [0xfffffffffffffff0], 0
    0020fe20mov [rbp+160], r13
    0020fe27mov rax, [rsp+88]
    0020fe2csub rax, [0x28]
    0020fe35jne 0x20fe8d
    0020fe37add rsp, 104
    0020fe3bmov eax, 1
    0020fe40pop rbx
    0020fe41pop rbp
    0020fe42pop r12
    0020fe44pop r13
    0020fe46ret
    0020fe47db 0x5c
    0020fe48pop r13
    0020fe4aret
    0020fe4b
    0020fe4b 0f 1f 44 00 00 ..D..
    0020fe50
    0020fe50loc_20fe50:
    0020fe50or edx, 16
    0020fe53cmp [rbx], -1
    0020fe56mov [rbx+104], edx
    0020fe59je 0x20fe0b
    0020fe5bnop [rax+rax]
    0020fe60
    0020fe60loc_20fe60:
    0020fe60mov rdi, rbx
    0020fe63call caml_flush_partial
    0020fe68test eax, eax
    0020fe6ajne 0x20fe0b
    0020fe6cmov rdi, rbx
    0020fe6fcall caml_flush_partial
    0020fe74test eax, eax
    0020fe76je 0x20fe60
    0020fe78jmp 0x20fe0b
    0020fe7a
    0020fe7a 66 0f 1f 44 00 00 f..D..
    0020fe80
    0020fe80loc_20fe80:
    0020fe80mov rdi, r12
    0020fe83call caml_plat_lock_non_blocking_actual
    0020fe88jmp 0x20fdee
    0020fe8d
    0020fe8dloc_20fe8d:
    0020fe8dcall fn_f4590
    0020fe92
    0020fe92loc_20fe92:
    0020fe92mov esi, eax
    0020fe94lea rdi, [rip+0x1f67f]
    0020fe9bcall caml_plat_fatal_error
    0020fea0
    0020fea0loc_20fea0:
    0020fea0mov esi, eax
    0020fea2lea rdi, [rip+0x1f67e]
    0020fea9call caml_plat_fatal_error
    0020fd60
    0020feae
    0020feae // align 0x10
    0020feb0
    0020feb0caml_ml_is_buffered:
    0020feb0mov rax, [rdi+8]
    0020feb4mov eax, [rax+104]
    0020feb7and eax, 16
    0020febacmp eax, 1
    0020febdsbb rax, rax
    0020fec0and eax, 2
    0020fec3add rax, 1
    0020fec7ret
    0020fec8db 0x83
    0020fec9rol [rcx], -61
    0020feb0
    0020fecc
    0020fecc // align 0x10
    0020fed0
    0020fed0caml_ml_output_char:
    0020fed0push r13
    0020fed2push r12
    0020fed4push rbp
    0020fed5push rbx
    0020fed6sub rsp, 104
    0020fedamovdqa x0, [rip+0x1a1ea]
    0020fee2mov [rsp+8], rdi
    0020fee7movq x1, rsp
    0020feecmov [rsp], rsi
    0020fef0mov rax, [0x28]
    0020fef9mov [rsp+88], rax
    0020fefemov rax, [rip+0x660df]
    0020ff05mov rbp, [rax]
    0020ff09lea rax, [rsp+16]
    0020ff0emovups [rsp+24], x0
    0020ff13mov r13, [rbp+160]
    0020ff1amov [rbp+160], rax
    0020ff21lea rax, [rsp+8]
    0020ff26movq x0, rax
    0020ff2bpunpcklqdq x0, x1
    0020ff2fmov [rsp+16], r13
    0020ff34movups [rsp+40], x0
    0020ff39mov rbx, [rdi+8]
    0020ff3dlea r12, [rbx+40]
    0020ff41mov rdi, r12
    0020ff44call fn_f4780
    0020ff49cmp eax, 16
    0020ff4cje 0x20fff0
    0020ff52test eax, eax
    0020ff54jne 0x210011
    0020ff5amov [0xfffffffffffffff0], rbx
    0020ff63mov rax, [rbx+24]
    0020ff67cmp rax, [rbx+16]
    0020ff6bjae 0x210000
    0020ff71mov rdx, [rsp]
    0020ff75
    0020ff75loc_20ff75:
    0020ff75lea rcx, [rax+1]
    0020ff79mov [rbx+24], rcx
    0020ff7dsar rdx, 1
    0020ff80mov [rax], dl
    0020ff82test [rbx+104], 16
    0020ff86jne 0x20ffd0
    0020ff88mov rdi, r12
    0020ff8bcall fn_f47c0
    0020ff90test eax, eax
    0020ff92jne 0x210024
    0020ff98mov [0xfffffffffffffff0], 0
    0020ffa5mov [rbp+160], r13
    0020ffacmov rax, [rsp+88]
    0020ffb1sub rax, [0x28]
    0020ffbajne 0x21001f
    0020ffbcadd rsp, 104
    0020ffc0mov eax, 1
    0020ffc5pop rbx
    0020ffc6pop rbp
    0020ffc7pop r12
    0020ffc9pop r13
    0020ffcbret
    0020ffccmov rdi, rbx
    0020ffcfcall caml_flush_partial
    0020ffd4test eax, eax
    0020ffd6jne 0x20ff8c
    0020ffd8mov rdi, rbx
    0020ffdbcall caml_flush_partial
    0020ffe0test eax, eax
    0020ffe2je 0x20ffd0
    0020ffe4jmp 0x20ff8c
    0020ffe6db 0x74
    0020ffe7db 0xe8
    0020ffe8jmp 0x20ff8c
    0020ffea
    0020ffea 66 0f 1f 44 00 00 f..D..
    0020fff0
    0020fff0loc_20fff0:
    0020fff0mov rdi, r12
    0020fff3call caml_plat_lock_non_blocking_actual
    0020fff8jmp 0x20ff5e
    0020fffd
    0020fffd 0f 1f 00 ...
    00210000
    00210000loc_210000:
    00210000mov rdi, rbx
    00210003call caml_flush_partial
    00210008mov rax, [rbx+24]
    0021000cjmp 0x20ff75
    00210011
    00210011loc_210011:
    00210011mov esi, eax
    00210013lea rdi, [rip+0x1f50d]
    0021001acall caml_plat_fatal_error
    0021001f
    0021001floc_21001f:
    0021001fcall fn_f4590
    00210024
    00210024loc_210024:
    00210024mov esi, eax
    00210026lea rdi, [rip+0x1f4ed]
    0021002dcall caml_plat_fatal_error
    0020fed0
    00210032
    00210032 // align 0x10
    00210040
    00210040caml_ml_output_int:
    00210040push r13
    00210042push r12
    00210044push rbp
    00210045push rbx
    00210046sub rsp, 104
    0021004amovdqa x0, [rip+0x1a07a]
    00210052mov [rsp+8], rdi
    00210057movq x1, rsp
    0021005cmov [rsp], rsi
    00210060mov rax, [0x28]
    00210069mov [rsp+88], rax
    0021006emov rax, [rip+0x65f6f]
    00210075mov rbp, [rax]
    00210079lea rax, [rsp+16]
    0021007emovups [rsp+24], x0
    00210083mov r13, [rbp+160]
    0021008amov [rbp+160], rax
    00210091lea rax, [rsp+8]
    00210096movq x0, rax
    0021009bpunpcklqdq x0, x1
    0021009fmov [rsp+16], r13
    002100a4movups [rsp+40], x0
    002100a9mov rbx, [rdi+8]
    002100adlea r12, [rbx+40]
    002100b1mov rdi, r12
    002100b4call fn_f4780
    002100b9cmp eax, 16
    002100bcje 0x210150
    002100c2test eax, eax
    002100c4jne 0x210170
    002100camov [0xfffffffffffffff0], rbx
    002100d3mov rsi, [rsp]
    002100d7mov rdi, rbx
    002100dasar rsi, 1
    002100ddcall caml_putword
    002100e2test [rbx+104], 16
    002100e6jne 0x210130
    002100e8mov rdi, r12
    002100ebcall fn_f47c0
    002100f0test eax, eax
    002100f2jne 0x210162
    002100f4mov [0xfffffffffffffff0], 0
    00210101mov [rbp+160], r13
    00210108mov rax, [rsp+88]
    0021010dsub rax, [0x28]
    00210116jne 0x21015d
    00210118add rsp, 104
    0021011cmov eax, 1
    00210121pop rbx
    00210122pop rbp
    00210123pop r12
    00210125pop r13
    00210127ret
    00210128db 0x5c
    00210129pop r13
    0021012bret
    0021012c
    0021012c 0f 1f 40 00 ..@.
    00210130
    00210130loc_210130:
    00210130mov rdi, rbx
    00210133call caml_flush_partial
    00210138test eax, eax
    0021013ajne 0x2100ec
    0021013cmov rdi, rbx
    0021013fcall caml_flush_partial
    00210144test eax, eax
    00210146je 0x210130
    00210148jmp 0x2100ec
    0021014a
    0021014a 66 0f 1f 44 00 00 f..D..
    00210150
    00210150loc_210150:
    00210150mov rdi, r12
    00210153call caml_plat_lock_non_blocking_actual
    00210158jmp 0x2100ce
    0021015d
    0021015dloc_21015d:
    0021015dcall fn_f4590
    00210162
    00210162loc_210162:
    00210162mov esi, eax
    00210164lea rdi, [rip+0x1f3af]
    0021016bcall caml_plat_fatal_error
    00210170
    00210170loc_210170:
    00210170mov esi, eax
    00210172lea rdi, [rip+0x1f3ae]
    00210179call caml_plat_fatal_error
    00210040
    0021017e
    0021017e // align 0x10
    00210180
    00210180caml_ml_output_bytes:
    00210180push r15
    00210182push r14
    00210184push r13
    00210186mov r13, rdx
    00210189push r12
    0021018bmov r12, rcx
    0021018esar r13, 1
    00210191push rbp
    00210192sar r12, 1
    00210195push rbx
    00210196sub rsp, 136
    0021019dmovdqa x0, [rip+0x19f47]
    002101a5mov [rsp+40], rdi
    002101aamov [rsp+32], rsi
    002101afmov [rsp+24], rdx
    002101b4mov [rsp+16], rcx
    002101b9mov rax, [0x28]
    002101c2mov [rsp+120], rax
    002101c7mov rax, [rip+0x65e16]
    002101cemov rbp, [rax]
    002101d2movups [rsp+56], x0
    002101d7mov rax, [rbp+160]
    002101demov [rsp+48], rax
    002101e3mov [rsp+8], rax
    002101e8lea rax, [rsp+48]
    002101edmov [rbp+160], rax
    002101f4lea rax, [rsp+40]
    002101f9movq x0, rax
    002101felea rax, [rsp+32]
    00210203movq x1, rax
    00210208lea rax, [rsp+24]
    0021020dpunpcklqdq x0, x1
    00210211movups [rsp+72], x0
    00210216movq x0, rax
    0021021blea rax, [rsp+16]
    00210220movq x2, rax
    00210225punpcklqdq x0, x2
    00210229movups [rsp+88], x0
    0021022emov r14, [rdi+8]
    00210232lea rax, [r14+40]
    00210236mov rdi, rax
    00210239mov [rsp], rax
    0021023dcall fn_f4780
    00210242cmp eax, 16
    00210245je 0x210350
    0021024btest eax, eax
    0021024djne 0x210371
    00210253mov [0xfffffffffffffff0], r14
    0021025ctest r12, r12
    0021025fjg 0x21028d
    00210261jmp 0x2102dc
    00210263db 0x7f
    00210264sub bl, ch
    00210266db 0x75
    00210267
    00210267 66 0f 1f 84 00 00 00 00 00 f........
    00210270
    00210270loc_210270:
    00210270movsxd rbx, eax
    00210273mov rdx, rbx
    00210276call fn_f4520
    0021027bmovsxd rax, r15l
    0021027eadd [r14+24], rbx
    00210282sub r12, rax
    00210285add r13, rax
    00210288test r12, r12
    0021028bjle 0x2102dc
    0021028d
    0021028dloc_21028d:
    0021028dmov rsi, [rsp+32]
    00210292mov eax, 0x7fffffff
    00210297mov rdi, [r14+24]
    0021029bmov rbx, [r14+16]
    0021029fadd rsi, r13
    002102a2cmp r12, rax
    002102a5cmovle rax, r12
    002102a9sub rbx, rdi
    002102acmov r15l, eax
    002102afcmp eax, ebx
    002102b1jl 0x210270
    002102b3movsxd rdx, ebx
    002102b6mov r15l, ebx
    002102b9call fn_f4520
    002102bemov rax, [r14+16]
    002102c2mov rdi, r14
    002102c5mov [r14+24], rax
    002102c9call caml_flush_partial
    002102cemovsxd rax, r15l
    002102d1sub r12, rax
    002102d4add r13, rax
    002102d7test r12, r12
    002102dajg 0x21028d
    002102dc
    002102dcloc_2102dc:
    002102dctest [r14+104], 16
    002102e1jne 0x210330
    002102e3
    002102e3loc_2102e3:
    002102e3mov rdi, [rsp]
    002102e7call fn_f47c0
    002102ectest eax, eax
    002102eejne 0x210363
    002102f0mov [0xfffffffffffffff0], 0
    002102fdmov rax, [rsp+8]
    00210302mov [rbp+160], rax
    00210309mov rax, [rsp+120]
    0021030esub rax, [0x28]
    00210317jne 0x21035e
    00210319add rsp, 136
    00210320mov eax, 1
    00210325pop rbx
    00210326pop rbp
    00210327pop r12
    00210329pop r13
    0021032bpop r14
    0021032dpop r15
    0021032fret
    00210330
    00210330loc_210330:
    00210330mov rdi, r14
    00210333call caml_flush_partial
    00210338test eax, eax
    0021033ajne 0x2102e3
    0021033cmov rdi, r14
    0021033fcall caml_flush_partial
    00210344test eax, eax
    00210346je 0x210330
    00210348jmp 0x2102e3
    0021034a
    0021034a 66 0f 1f 44 00 00 f..D..
    00210350
    00210350loc_210350:
    00210350mov rdi, [rsp]
    00210354call caml_plat_lock_non_blocking_actual
    00210359jmp 0x210257
    0021035e
    0021035eloc_21035e:
    0021035ecall fn_f4590
    00210363
    00210363loc_210363:
    00210363mov esi, eax
    00210365lea rdi, [rip+0x1f1ae]
    0021036ccall caml_plat_fatal_error
    00210371
    00210371loc_210371:
    00210371mov esi, eax
    00210373lea rdi, [rip+0x1f1ad]
    0021037acall caml_plat_fatal_error
    00210180
    0021037f
    0021037f // align 0x10
    00210380
    00210380caml_ml_output:
    00210380jmp 0x210180
    00210385db 0xf7
    00210386std
    00210387db 0xff
    00210388db 0xff
    00210380
    00210389
    00210389 // align 0x10
    00210390
    00210390caml_ml_output_bigarray:
    00210390push r15
    00210392push r14
    00210394push r13
    00210396push r12
    00210398mov r12, rdx
    0021039bpush rbp
    0021039csar r12, 1
    0021039fpush rbx
    002103a0sub rsp, 152
    002103a7movdqa x0, [rip+0x19d3d]
    002103afmov [rsp+56], rdi
    002103b4mov [rsp+48], rsi
    002103b9mov [rsp+40], rdx
    002103bemov [rsp+32], rcx
    002103c3mov rax, [0x28]
    002103ccmov [rsp+136], rax
    002103d4mov rax, [rip+0x65c09]
    002103dbmov rcx, [rax]
    002103dfmovups [rsp+72], x0
    002103e4mov rax, [rcx+160]
    002103ebmov [rsp+16], rcx
    002103f0mov [rsp+64], rax
    002103f5mov [rsp+24], rax
    002103falea rax, [rsp+64]
    002103ffmov [rcx+160], rax
    00210406lea rax, [rsp+56]
    0021040bmovq x0, rax
    00210410lea rax, [rsp+48]
    00210415movq x1, rax
    0021041alea rax, [rsp+40]
    0021041fpunpcklqdq x0, x1
    00210423movups [rsp+88], x0
    00210428movq x0, rax
    0021042dlea rax, [rsp+32]
    00210432movq x2, rax
    00210437punpcklqdq x0, x2
    0021043bmovups [rsp+104], x0
    00210440mov r13, [rdi+8]
    00210444mov r14, [rsp+32]
    00210449lea rax, [r13+40]
    0021044dsar r14, 1
    00210450mov rdi, rax
    00210453mov [rsp+8], rax
    00210458call fn_f4780
    0021045dcmp eax, 16
    00210460je 0x210558
    00210466test eax, eax
    00210468jne 0x21057a
    0021046emov [0xfffffffffffffff0], r13
    00210477mov rax, [rsp+48]
    0021047cadd r12, [rax+8]
    00210480test r14, r14
    00210483jg 0x2104b0
    00210485jmp 0x2104fd
    00210487db 0x7f
    00210488db 0x27
    00210489jmp 0x2104fd
    0021048b
    0021048b 0f 1f 44 00 00 ..D..
    00210490
    00210490loc_210490:
    00210490movsxd rbx, ebx
    00210493mov rsi, r12
    00210496mov rdx, rbx
    00210499add r12, rbx
    0021049ccall fn_f4520
    002104a1movsxd r8, ebp
    002104a4add [r13+24], rbx
    002104a8sub r14, r8
    002104abtest r14, r14
    002104aejle 0x2104fd
    002104b0
    002104b0loc_2104b0:
    002104b0mov ebx, 0x7fffffff
    002104b5mov rdi, [r13+24]
    002104b9mov r15, [r13+16]
    002104bdcmp r14, rbx
    002104c0cmovle rbx, r14
    002104c4sub r15, rdi
    002104c7mov ebp, ebx
    002104c9cmp ebx, r15l
    002104ccjl 0x210490
    002104cemovsxd rbx, r15l
    002104d1mov rsi, r12
    002104d4mov ebp, r15l
    002104d7mov rdx, rbx
    002104daadd r12, rbx
    002104ddcall fn_f4520
    002104e2mov rax, [r13+16]
    002104e6mov rdi, r13
    002104e9mov [r13+24], rax
    002104edcall caml_flush_partial
    002104f2movsxd r8, ebp
    002104f5sub r14, r8
    002104f8test r14, r14
    002104fbjg 0x2104b0
    002104fd
    002104fdloc_2104fd:
    002104fdmov rdi, [rsp+8]
    00210502call fn_f47c0
    00210507test eax, eax
    00210509jne 0x21056c
    0021050bmov [0xfffffffffffffff0], 0
    00210518mov rax, [rsp+16]
    0021051dmov rdx, [rsp+24]
    00210522mov [rax+160], rdx
    00210529mov rax, [rsp+136]
    00210531sub rax, [0x28]
    0021053ajne 0x210567
    0021053cadd rsp, 152
    00210543mov eax, 1
    00210548pop rbx
    00210549pop rbp
    0021054apop r12
    0021054cpop r13
    0021054epop r14
    00210550pop r15
    00210552ret
    00210553
    00210553 0f 1f 44 00 00 ..D..
    00210558
    00210558loc_210558:
    00210558mov rdi, [rsp+8]
    0021055dcall caml_plat_lock_non_blocking_actual
    00210562jmp 0x210472
    00210567
    00210567loc_210567:
    00210567call fn_f4590
    0021056c
    0021056cloc_21056c:
    0021056cmov esi, eax
    0021056elea rdi, [rip+0x1efa5]
    00210575call caml_plat_fatal_error
    0021057a
    0021057aloc_21057a:
    0021057amov esi, eax
    0021057clea rdi, [rip+0x1efa4]
    00210583call caml_plat_fatal_error
    00210390
    00210588
    00210588 // align 0x10
    00210590
    00210590caml_ml_seek_out:
    00210590push r13
    00210592push r12
    00210594push rbp
    00210595push rbx
    00210596sub rsp, 104
    0021059amovdqa x0, [rip+0x19b2a]
    002105a2mov [rsp+8], rdi
    002105a7movq x1, rsp
    002105acmov [rsp], rsi
    002105b0mov rax, [0x28]
    002105b9mov [rsp+88], rax
    002105bemov rax, [rip+0x65a1f]
    002105c5mov rbx, [rax]
    002105c9lea rax, [rsp+16]
    002105cemovups [rsp+24], x0
    002105d3mov rbp, [rbx+160]
    002105damov [rbx+160], rax
    002105e1lea rax, [rsp+8]
    002105e6movq x0, rax
    002105ebpunpcklqdq x0, x1
    002105efmov [rsp+16], rbp
    002105f4movups [rsp+40], x0
    002105f9mov r12, [rdi+8]
    002105fdlea r13, [r12+40]
    00210602mov rdi, r13
    00210605call fn_f4780
    0021060acmp eax, 16
    0021060dje 0x210670
    0021060ftest eax, eax
    00210611jne 0x21068d
    00210613mov [0xfffffffffffffff0], r12
    0021061cmov rsi, [rsp]
    00210620mov rdi, r12
    00210623sar rsi, 1
    00210626call caml_seek_out
    0021062bmov rdi, r13
    0021062ecall fn_f47c0
    00210633test eax, eax
    00210635jne 0x21067f
    00210637mov [0xfffffffffffffff0], 0
    00210644mov [rbx+160], rbp
    0021064bmov rax, [rsp+88]
    00210650sub rax, [0x28]
    00210659jne 0x21067a
    0021065badd rsp, 104
    0021065fmov eax, 1
    00210664pop rbx
    00210665pop rbp
    00210666pop r12
    00210668pop r13
    0021066aret
    0021066bdb 0x5c
    0021066cpop r13
    0021066eret
    0021066f
    0021066f 90 .
    00210670
    00210670loc_210670:
    00210670mov rdi, r13
    00210673call caml_plat_lock_non_blocking_actual
    00210678jmp 0x210617
    0021067a
    0021067aloc_21067a:
    0021067acall fn_f4590
    0021067f
    0021067floc_21067f:
    0021067fmov esi, eax
    00210681lea rdi, [rip+0x1ee92]
    00210688call caml_plat_fatal_error
    0021068d
    0021068dloc_21068d:
    0021068dmov esi, eax
    0021068flea rdi, [rip+0x1ee91]
    00210696call caml_plat_fatal_error
    00210590
    0021069b
    0021069b // align 0x10
    002106a0
    002106a0caml_ml_seek_out_64:
    002106a0push r13
    002106a2push r12
    002106a4push rbp
    002106a5push rbx
    002106a6sub rsp, 104
    002106aamovdqa x0, [rip+0x19a1a]
    002106b2mov [rsp+8], rdi
    002106b7movq x1, rsp
    002106bcmov [rsp], rsi
    002106c0mov rax, [0x28]
    002106c9mov [rsp+88], rax
    002106cemov rax, [rip+0x6590f]
    002106d5mov rbx, [rax]
    002106d9lea rax, [rsp+16]
    002106demovups [rsp+24], x0
    002106e3mov rbp, [rbx+160]
    002106eamov [rbx+160], rax
    002106f1lea rax, [rsp+8]
    002106f6movq x0, rax
    002106fbpunpcklqdq x0, x1
    002106ffmov [rsp+16], rbp
    00210704movups [rsp+40], x0
    00210709mov r12, [rdi+8]
    0021070dlea r13, [r12+40]
    00210712mov rdi, r13
    00210715call fn_f4780
    0021071acmp eax, 16
    0021071dje 0x210780
    0021071ftest eax, eax
    00210721jne 0x21079d
    00210723mov [0xfffffffffffffff0], r12
    0021072cmov rax, [rsp]
    00210730mov rdi, r12
    00210733mov rsi, [rax+8]
    00210737call caml_seek_out
    0021073cmov rdi, r13
    0021073fcall fn_f47c0
    00210744test eax, eax
    00210746jne 0x21078f
    00210748mov [0xfffffffffffffff0], 0
    00210755mov [rbx+160], rbp
    0021075cmov rax, [rsp+88]
    00210761sub rax, [0x28]
    0021076ajne 0x21078a
    0021076cadd rsp, 104
    00210770mov eax, 1
    00210775pop rbx
    00210776pop rbp
    00210777pop r12
    00210779pop r13
    0021077bret
    0021077cmov rdi, r13
    0021077fcall caml_plat_lock_non_blocking_actual
    00210784jmp 0x210727
    00210786call fn_f4590
    0021078bmov esi, eax
    0021078dlea rdi, [rip+0x1ed82]
    00210794call caml_plat_fatal_error
    00210799mov esi, eax
    0021079blea rdi, [rip+0x1ed81]
    002107a2call caml_plat_fatal_error
    002107a7db 0x25
    002107a8mov dl, 0
    002107aadb 0x00
    002106a0
    002107ab
    002107ab // align 0x10
    002107b0
    002107b0caml_ml_pos_out:
    002107b0push r14
    002107b2push r13
    002107b4push r12
    002107b6push rbp
    002107b7push rbx
    002107b8sub rsp, 96
    002107bcmov [rsp+8], rdi
    002107c1mov rax, [0x28]
    002107camov [rsp+88], rax
    002107cfmov rax, [rip+0x6580e]
    002107d6mov r12, [rax]
    002107dalea rax, [rsp+16]
    002107dfmov r13, [r12+160]
    002107e7mov [r12+160], rax
    002107efmov eax, 1
    002107f4movq x0, rax
    002107f9lea rax, [rsp+8]
    002107fepunpcklqdq x0, x0
    00210802mov [rsp+16], r13
    00210807mov [rsp+40], rax
    0021080cmovups [rsp+24], x0
    00210811mov rbp, [rdi+8]
    00210815lea r14, [rbp+40]
    00210819mov rdi, r14
    0021081ccall fn_f4780
    00210821cmp eax, 16
    00210824je 0x2108a0
    00210826test eax, eax
    00210828jne 0x2108d2
    0021082emov [0xfffffffffffffff0], rbp
    00210837mov rdi, r14
    0021083amov rbx, [rbp+24]
    0021083esub rbx, [rbp+112]
    00210842add rbx, [rbp+8]
    00210846call fn_f47c0
    0021084btest eax, eax
    0021084djne 0x2108c4
    0021084fmov rax, 0x3fffffffffffffff
    00210859mov [0xfffffffffffffff0], 0
    00210866cmp rbx, rax
    00210869jg 0x2108af
    0021086bmov [r12+160], r13
    00210873lea rax, [rbx+rbx+1]
    00210878mov rdx, [rsp+88]
    0021087dsub rdx, [0x28]
    00210886jne 0x2108aa
    00210888add rsp, 96
    0021088cpop rbx
    0021088dpop rbp
    0021088epop r12
    00210890pop r13
    00210892pop r14
    00210894ret
    00210895db 0x5d
    00210896pop r14
    00210898ret
    00210899
    00210899 0f 1f 80 00 00 00 00 .......
    002108a0
    002108a0loc_2108a0:
    002108a0mov rdi, r14
    002108a3call caml_plat_lock_non_blocking_actual
    002108a8jmp 0x210832
    002108aa
    002108aaloc_2108aa:
    002108aacall fn_f4590
    002108af
    002108afloc_2108af:
    002108afcall fn_f4570
    002108b4mov edi, 1
    002108b9mov [rax], 75
    002108bfcall caml_sys_error
    002108c4
    002108c4loc_2108c4:
    002108c4mov esi, eax
    002108c6lea rdi, [rip+0x1ec4d]
    002108cdcall caml_plat_fatal_error
    002108d2
    002108d2loc_2108d2:
    002108d2mov esi, eax
    002108d4lea rdi, [rip+0x1ec4c]
    002108dbcall caml_plat_fatal_error
    002107b0
    002108e0
    002108e0caml_ml_pos_out_64:
    002108e0push r14
    002108e2push r13
    002108e4push r12
    002108e6push rbp
    002108e7push rbx
    002108e8sub rsp, 96
    002108ecmov [rsp+8], rdi
    002108f1mov rax, [0x28]
    002108famov [rsp+88], rax
    002108ffmov rax, [rip+0x656de]
    00210906mov r12, [rax]
    0021090alea rax, [rsp+16]
    0021090fmov r13, [r12+160]
    00210917mov [r12+160], rax
    0021091fmov eax, 1
    00210924movq x0, rax
    00210929lea rax, [rsp+8]
    0021092epunpcklqdq x0, x0
    00210932mov [rsp+16], r13
    00210937mov [rsp+40], rax
    0021093cmovups [rsp+24], x0
    00210941mov rbp, [rdi+8]
    00210945lea r14, [rbp+40]
    00210949mov rdi, r14
    0021094ccall fn_f4780
    00210951cmp eax, 16
    00210954je 0x2109c0
    00210956test eax, eax
    00210958jne 0x2109dd
    0021095amov [0xfffffffffffffff0], rbp
    00210963mov rdi, r14
    00210966mov rbx, [rbp+24]
    0021096asub rbx, [rbp+112]
    0021096eadd rbx, [rbp+8]
    00210972call fn_f47c0
    00210977test eax, eax
    00210979jne 0x2109cf
    0021097bmov [0xfffffffffffffff0], 0
    00210988mov rdi, rbx
    0021098bcall caml_copy_int64
    00210990mov [r12+160], r13
    00210998mov rdx, [rsp+88]
    0021099dsub rdx, [0x28]
    002109a6jne 0x2109ca
    002109a8add rsp, 96
    002109acpop rbx
    002109adpop rbp
    002109aepop r12
    002109b0pop r13
    002109b2pop r14
    002109b4ret
    002109b5db 0x5d
    002109b6pop r14
    002109b8ret
    002109b9
    002109b9 0f 1f 80 00 00 00 00 .......
    002109c0
    002109c0loc_2109c0:
    002109c0mov rdi, r14
    002109c3call caml_plat_lock_non_blocking_actual
    002109c8jmp 0x21095e
    002109ca
    002109caloc_2109ca:
    002109cacall fn_f4590
    002109cf
    002109cfloc_2109cf:
    002109cfmov esi, eax
    002109d1lea rdi, [rip+0x1eb42]
    002109d8call caml_plat_fatal_error
    002109dd
    002109ddloc_2109dd:
    002109ddmov esi, eax
    002109dflea rdi, [rip+0x1eb41]
    002109e6call caml_plat_fatal_error
    002108e0
    002109eb
    002109eb // align 0x10
    002109f0
    002109f0caml_ml_input_char:
    002109f0push r13
    002109f2push r12
    002109f4push rbp
    002109f5push rbx
    002109f6sub rsp, 104
    002109famov [rsp+8], rdi
    002109ffmov rax, [0x28]
    00210a08mov [rsp+88], rax
    00210a0dmov rax, [rip+0x655d0]
    00210a14mov rbp, [rax]
    00210a18lea rax, [rsp+16]
    00210a1dmov r13, [rbp+160]
    00210a24mov [rbp+160], rax
    00210a2bmov eax, 1
    00210a30movq x0, rax
    00210a35lea rax, [rsp+8]
    00210a3apunpcklqdq x0, x0
    00210a3emov [rsp+16], r13
    00210a43mov [rsp+40], rax
    00210a48movups [rsp+24], x0
    00210a4dmov rbx, [rdi+8]
    00210a51lea r12, [rbx+40]
    00210a55mov rdi, r12
    00210a58call fn_f4780
    00210a5dcmp eax, 16
    00210a60je 0x210ad0
    00210a62test eax, eax
    00210a64jne 0x210b00
    00210a6amov [0xfffffffffffffff0], rbx
    00210a73mov rax, [rbx+24]
    00210a77cmp rax, [rbx+32]
    00210a7bjae 0x210ae0
    00210a7dlea rdx, [rax+1]
    00210a81mov [rbx+24], rdx
    00210a85movzx ebx, [rax]
    00210a88mov rdi, r12
    00210a8bcall fn_f47c0
    00210a90test eax, eax
    00210a92jne 0x210af2
    00210a94mov [0xfffffffffffffff0], 0
    00210aa1lea rax, [rbx+rbx+1]
    00210aa6mov [rbp+160], r13
    00210aadmov rdx, [rsp+88]
    00210ab2sub rdx, [0x28]
    00210abbjne 0x210aed
    00210abdadd rsp, 104
    00210ac1pop rbx
    00210ac2pop rbp
    00210ac3pop r12
    00210ac5pop r13
    00210ac7ret
    00210ac8db 0x5c
    00210ac9pop r13
    00210acbret
    00210acc
    00210acc 0f 1f 40 00 ..@.
    00210ad0
    00210ad0loc_210ad0:
    00210ad0mov rdi, r12
    00210ad3call caml_plat_lock_non_blocking_actual
    00210ad8jmp 0x210a6e
    00210ada
    00210ada 66 0f 1f 44 00 00 f..D..
    00210ae0
    00210ae0loc_210ae0:
    00210ae0mov rdi, rbx
    00210ae3call caml_refill
    00210ae8movzx ebx, al
    00210aebjmp 0x210a8c
    00210aed
    00210aedloc_210aed:
    00210aedcall fn_f4590
    00210af2
    00210af2loc_210af2:
    00210af2mov esi, eax
    00210af4lea rdi, [rip+0x1ea1f]
    00210afbcall caml_plat_fatal_error
    00210b00
    00210b00loc_210b00:
    00210b00mov esi, eax
    00210b02lea rdi, [rip+0x1ea1e]
    00210b09call caml_plat_fatal_error
    002109f0
    00210b0e
    00210b0e // align 0x10
    00210b10
    00210b10caml_ml_input_int:
    00210b10push r13
    00210b12push r12
    00210b14push rbp
    00210b15push rbx
    00210b16sub rsp, 104
    00210b1amov [rsp+8], rdi
    00210b1fmov rax, [0x28]
    00210b28mov [rsp+88], rax
    00210b2dmov rax, [rip+0x654b0]
    00210b34mov rbp, [rax]
    00210b38lea rax, [rsp+16]
    00210b3dmov r13, [rbp+160]
    00210b44mov [rbp+160], rax
    00210b4bmov eax, 1
    00210b50movq x0, rax
    00210b55lea rax, [rsp+8]
    00210b5apunpcklqdq x0, x0
    00210b5emov [rsp+16], r13
    00210b63mov [rsp+40], rax
    00210b68movups [rsp+24], x0
    00210b6dmov rbx, [rdi+8]
    00210b71lea r12, [rbx+40]
    00210b75mov rdi, r12
    00210b78call fn_f4780
    00210b7dcmp eax, 16
    00210b80je 0x210be0
    00210b82test eax, eax
    00210b84jne 0x210bfd
    00210b86mov [0xfffffffffffffff0], rbx
    00210b8fmov rdi, rbx
    00210b92call caml_getword
    00210b97mov rdi, r12
    00210b9amovsxd rbx, eax
    00210b9dcall fn_f47c0
    00210ba2test eax, eax
    00210ba4jne 0x210bef
    00210ba6mov [0xfffffffffffffff0], 0
    00210bb3lea rax, [rbx+rbx+1]
    00210bb8mov [rbp+160], r13
    00210bbfmov rdx, [rsp+88]
    00210bc4sub rdx, [0x28]
    00210bcdjne 0x210bea
    00210bcfadd rsp, 104
    00210bd3pop rbx
    00210bd4pop rbp
    00210bd5pop r12
    00210bd7pop r13
    00210bd9ret
    00210bdadb 0x5c
    00210bdbpop r13
    00210bddret
    00210bde
    00210bde 66 90 f.
    00210be0
    00210be0loc_210be0:
    00210be0mov rdi, r12
    00210be3call caml_plat_lock_non_blocking_actual
    00210be8jmp 0x210b8a
    00210bea
    00210bealoc_210bea:
    00210beacall fn_f4590
    00210bef
    00210befloc_210bef:
    00210befmov esi, eax
    00210bf1lea rdi, [rip+0x1e922]
    00210bf8call caml_plat_fatal_error
    00210bfd
    00210bfdloc_210bfd:
    00210bfdmov esi, eax
    00210bfflea rdi, [rip+0x1e921]
    00210c06call caml_plat_fatal_error
    00210b10
    00210c0b
    00210c0b // align 0x10
    00210c10
    00210c10caml_ml_input:
    00210c10push r15
    00210c12push r14
    00210c14push r13
    00210c16push r12
    00210c18push rbp
    00210c19push rbx
    00210c1asub rsp, 136
    00210c21movdqa x0, [rip+0x194c3]
    00210c29mov [rsp+40], rdi
    00210c2emov [rsp+32], rsi
    00210c33mov [rsp+24], rdx
    00210c38mov [rsp+16], rcx
    00210c3dmov rax, [0x28]
    00210c46mov [rsp+120], rax
    00210c4bmov rax, [rip+0x65392]
    00210c52mov rbp, [rax]
    00210c56lea rax, [rsp+48]
    00210c5bmovups [rsp+56], x0
    00210c60mov r13, [rbp+160]
    00210c67mov [rbp+160], rax
    00210c6elea rax, [rsp+40]
    00210c73movq x0, rax
    00210c78lea rax, [rsp+32]
    00210c7dmovq x1, rax
    00210c82lea rax, [rsp+24]
    00210c87mov [rsp+48], r13
    00210c8cpunpcklqdq x0, x1
    00210c90movups [rsp+72], x0
    00210c95movq x0, rax
    00210c9alea rax, [rsp+16]
    00210c9fmovq x2, rax
    00210ca4punpcklqdq x0, x2
    00210ca8movups [rsp+88], x0
    00210cadmov r12, [rdi+8]
    00210cb1lea rax, [r12+40]
    00210cb6mov rdi, rax
    00210cb9mov [rsp+8], rax
    00210cbecall fn_f4780
    00210cc3cmp eax, 16
    00210cc6je 0x210df0
    00210ccctest eax, eax
    00210ccejne 0x210e44
    00210cd4mov [0xfffffffffffffff0], r12
    00210cddjmp 0x210d22
    00210cdfdb 0xff
    00210ce0db 0xff
    00210ce1jmp 0x210d22
    00210ce3
    00210ce3 0f 1f 44 00 00 ..D..
    00210ce8
    00210ce8loc_210ce8:
    00210ce8test r15l, r15l
    00210cebjg 0x210dd0
    00210cf1mov rdx, [r12+112]
    00210cf6mov ecx, [r12+16]
    00210cfbmov esi, [r12+104]
    00210d00mov edi, [r12]
    00210d04sub ecx, edx
    00210d06call caml_read_fd
    00210d0bcmp eax, -1
    00210d0ejne 0x210e00
    00210d14call fn_f4570
    00210d19cmp [rax], 4
    00210d1cjne 0x210e3a
    00210d22
    00210d22loc_210d22:
    00210d22mov rdi, r12
    00210d25call fn_20e670
    00210d2amov rax, [rsp+16]
    00210d2fmov r14, [rsp+24]
    00210d34mov edx, 0x7fffffff
    00210d39mov rsi, [r12+24]
    00210d3emov r15, [r12+32]
    00210d43sar rax, 1
    00210d46sar r14, 1
    00210d49cmp rax, rdx
    00210d4ccmovg rax, rdx
    00210d50sub r15, rsi
    00210d53mov ebx, eax
    00210d55cmp eax, r15l
    00210d58jg 0x210ce8
    00210d5amov rdi, [rsp+32]
    00210d5fmovsxd r15, eax
    00210d62mov rdx, r15
    00210d65add rdi, r14
    00210d68call fn_f4520
    00210d6dmov rax, [r12+24]
    00210d72add rax, r15
    00210d75
    00210d75loc_210d75:
    00210d75mov [r12+24], rax
    00210d7amov rdi, [rsp+8]
    00210d7fcall fn_f47c0
    00210d84test eax, eax
    00210d86jne 0x210e52
    00210d8cmov [0xfffffffffffffff0], 0
    00210d99movsxd rbx, ebx
    00210d9cmov [rbp+160], r13
    00210da3lea rax, [rbx+rbx+1]
    00210da8mov rdx, [rsp+120]
    00210dadsub rdx, [0x28]
    00210db6jne 0x210e60
    00210dbcadd rsp, 136
    00210dc3pop rbx
    00210dc4pop rbp
    00210dc5pop r12
    00210dc7pop r13
    00210dc9pop r14
    00210dcbpop r15
    00210dcdret
    00210dce
    00210dce 66 90 f.
    00210dd0
    00210dd0loc_210dd0:
    00210dd0mov rdi, [rsp+32]
    00210dd5movsxd rbx, r15l
    00210dd8mov rdx, rbx
    00210ddbadd rdi, r14
    00210ddecall fn_f4520
    00210de3mov rax, [r12+24]
    00210de8add rax, rbx
    00210debmov ebx, r15l
    00210deejmp 0x210d75
    00210df0
    00210df0loc_210df0:
    00210df0mov rdi, [rsp+8]
    00210df5call caml_plat_lock_non_blocking_actual
    00210dfajmp 0x210cd8
    00210dff
    00210dff 90 .
    00210e00
    00210e00loc_210e00:
    00210e00mov rsi, [r12+112]
    00210e05movsxd rdx, eax
    00210e08add [r12+8], rdx
    00210e0dmov rdi, [rsp+32]
    00210e12add rdx, rsi
    00210e15cmp ebx, eax
    00210e17cmovg ebx, eax
    00210e1amov [r12+32], rdx
    00210e1fadd rdi, r14
    00210e22movsxd r15, ebx
    00210e25mov rdx, r15
    00210e28call fn_f4520
    00210e2dmov rax, [r12+112]
    00210e32add rax, r15
    00210e35jmp 0x210d75
    00210e3a
    00210e3aloc_210e3a:
    00210e3amov edi, 1
    00210e3fcall caml_sys_io_error
    00210e44
    00210e44loc_210e44:
    00210e44mov esi, eax
    00210e46lea rdi, [rip+0x1e6da]
    00210e4dcall caml_plat_fatal_error
    00210e52
    00210e52loc_210e52:
    00210e52mov esi, eax
    00210e54lea rdi, [rip+0x1e6bf]
    00210e5bcall caml_plat_fatal_error
    00210e60
    00210e60loc_210e60:
    00210e60call fn_f4590
    00210c10
    00210e65
    00210e65 // align 0x10
    00210e70
    00210e70caml_ml_input_bigarray:
    00210e70push r15
    00210e72push r14
    00210e74push r13
    00210e76push r12
    00210e78mov r12, rcx
    00210e7bpush rbp
    00210e7csar r12, 1
    00210e7fpush rbx
    00210e80mov rbx, rdx
    00210e83sar rbx, 1
    00210e86sub rsp, 120
    00210e8amovdqa x0, [rip+0x1925a]
    00210e92mov [rsp+24], rdi
    00210e97movq x2, rsp
    00210e9cmov [rsp+16], rsi
    00210ea1mov [rsp+8], rdx
    00210ea6mov [rsp], rcx
    00210eaamov rax, [0x28]
    00210eb3mov [rsp+104], rax
    00210eb8mov rax, [rip+0x65125]
    00210ebfmov rbp, [rax]
    00210ec3lea rax, [rsp+32]
    00210ec8movups [rsp+40], x0
    00210ecdmov r14, [rbp+160]
    00210ed4mov [rbp+160], rax
    00210edblea rax, [rsp+24]
    00210ee0movq x0, rax
    00210ee5lea rax, [rsp+16]
    00210eeamovq x1, rax
    00210eeflea rax, [rsp+8]
    00210ef4mov [rsp+32], r14
    00210ef9punpcklqdq x0, x1
    00210efdmovups [rsp+56], x0
    00210f02movq x0, rax
    00210f07punpcklqdq x0, x2
    00210f0bmovups [rsp+72], x0
    00210f10mov r15, [rdi+8]
    00210f14lea r13, [r15+40]
    00210f18mov rdi, r13
    00210f1bcall fn_f4780
    00210f20cmp eax, 16
    00210f23je 0x210fa0
    00210f25test eax, eax
    00210f27jne 0x210fbd
    00210f2dmov [0xfffffffffffffff0], r15
    00210f36mov rdi, r15
    00210f39mov rdx, r12
    00210f3cmov rax, [rsp+16]
    00210f41mov rsi, [rax+8]
    00210f45add rsi, rbx
    00210f48call caml_getblock
    00210f4dmov rdi, r13
    00210f50movsxd rbx, eax
    00210f53call fn_f47c0
    00210f58test eax, eax
    00210f5ajne 0x210faf
    00210f5cmov [0xfffffffffffffff0], 0
    00210f69lea rax, [rbx+rbx+1]
    00210f6emov [rbp+160], r14
    00210f75mov rdx, [rsp+104]
    00210f7asub rdx, [0x28]
    00210f83jne 0x210faa
    00210f85add rsp, 120
    00210f89pop rbx
    00210f8apop rbp
    00210f8bpop r12
    00210f8dpop r13
    00210f8fpop r14
    00210f91pop r15
    00210f93ret
    00210f94db 0x5e
    00210f95pop r15
    00210f97ret
    00210f98
    00210f98 0f 1f 84 00 00 00 00 00 ........
    00210fa0
    00210fa0loc_210fa0:
    00210fa0mov rdi, r13
    00210fa3call caml_plat_lock_non_blocking_actual
    00210fa8jmp 0x210f31
    00210faa
    00210faaloc_210faa:
    00210faacall fn_f4590
    00210faf
    00210fafloc_210faf:
    00210fafmov esi, eax
    00210fb1lea rdi, [rip+0x1e562]
    00210fb8call caml_plat_fatal_error
    00210fbd
    00210fbdloc_210fbd:
    00210fbdmov esi, eax
    00210fbflea rdi, [rip+0x1e561]
    00210fc6call caml_plat_fatal_error
    00210e70
    00210fcb
    00210fcb // align 0x10
    00210fd0
    00210fd0caml_ml_seek_in:
    00210fd0push r13
    00210fd2push r12
    00210fd4push rbp
    00210fd5push rbx
    00210fd6sub rsp, 104
    00210fdamovdqa x0, [rip+0x190ea]
    00210fe2mov [rsp+8], rdi
    00210fe7movq x1, rsp
    00210fecmov [rsp], rsi
    00210ff0mov rax, [0x28]
    00210ff9mov [rsp+88], rax
    00210ffemov rax, [rip+0x64fdf]
    00211005mov rbx, [rax]
    00211009lea rax, [rsp+16]
    0021100emovups [rsp+24], x0
    00211013mov rbp, [rbx+160]
    0021101amov [rbx+160], rax
    00211021lea rax, [rsp+8]
    00211026movq x0, rax
    0021102bpunpcklqdq x0, x1
    0021102fmov [rsp+16], rbp
    00211034movups [rsp+40], x0
    00211039mov r12, [rdi+8]
    0021103dlea r13, [r12+40]
    00211042mov rdi, r13
    00211045call fn_f4780
    0021104acmp eax, 16
    0021104dje 0x2110b0
    0021104ftest eax, eax
    00211051jne 0x2110cd
    00211053mov [0xfffffffffffffff0], r12
    0021105cmov rsi, [rsp]
    00211060mov rdi, r12
    00211063sar rsi, 1
    00211066call caml_seek_in
    0021106bmov rdi, r13
    0021106ecall fn_f47c0
    00211073test eax, eax
    00211075jne 0x2110bf
    00211077mov [0xfffffffffffffff0], 0
    00211084mov [rbx+160], rbp
    0021108bmov rax, [rsp+88]
    00211090sub rax, [0x28]
    00211099jne 0x2110ba
    0021109badd rsp, 104
    0021109fmov eax, 1
    002110a4pop rbx
    002110a5pop rbp
    002110a6pop r12
    002110a8pop r13
    002110aaret
    002110abdb 0x5c
    002110acpop r13
    002110aeret
    002110af
    002110af 90 .
    002110b0
    002110b0loc_2110b0:
    002110b0mov rdi, r13
    002110b3call caml_plat_lock_non_blocking_actual
    002110b8jmp 0x211057
    002110ba
    002110baloc_2110ba:
    002110bacall fn_f4590
    002110bf
    002110bfloc_2110bf:
    002110bfmov esi, eax
    002110c1lea rdi, [rip+0x1e452]
    002110c8call caml_plat_fatal_error
    002110cd
    002110cdloc_2110cd:
    002110cdmov esi, eax
    002110cflea rdi, [rip+0x1e451]
    002110d6call caml_plat_fatal_error
    00210fd0
    002110db
    002110db // align 0x10
    002110e0
    002110e0caml_ml_seek_in_64:
    002110e0push r13
    002110e2push r12
    002110e4push rbp
    002110e5push rbx
    002110e6sub rsp, 104
    002110eamovdqa x0, [rip+0x18fda]
    002110f2mov [rsp+8], rdi
    002110f7movq x1, rsp
    002110fcmov [rsp], rsi
    00211100mov rax, [0x28]
    00211109mov [rsp+88], rax
    0021110emov rax, [rip+0x64ecf]
    00211115mov rbx, [rax]
    00211119lea rax, [rsp+16]
    0021111emovups [rsp+24], x0
    00211123mov rbp, [rbx+160]
    0021112amov [rbx+160], rax
    00211131lea rax, [rsp+8]
    00211136movq x0, rax
    0021113bpunpcklqdq x0, x1
    0021113fmov [rsp+16], rbp
    00211144movups [rsp+40], x0
    00211149mov r12, [rdi+8]
    0021114dlea r13, [r12+40]
    00211152mov rdi, r13
    00211155call fn_f4780
    0021115acmp eax, 16
    0021115dje 0x2111c0
    0021115ftest eax, eax
    00211161jne 0x2111dd
    00211163mov [0xfffffffffffffff0], r12
    0021116cmov rax, [rsp]
    00211170mov rdi, r12
    00211173mov rsi, [rax+8]
    00211177call caml_seek_in
    0021117cmov rdi, r13
    0021117fcall fn_f47c0
    00211184test eax, eax
    00211186jne 0x2111cf
    00211188mov [0xfffffffffffffff0], 0
    00211195mov [rbx+160], rbp
    0021119cmov rax, [rsp+88]
    002111a1sub rax, [0x28]
    002111aajne 0x2111ca
    002111acadd rsp, 104
    002111b0mov eax, 1
    002111b5pop rbx
    002111b6pop rbp
    002111b7pop r12
    002111b9pop r13
    002111bbret
    002111bcmov rdi, r13
    002111bfcall caml_plat_lock_non_blocking_actual
    002111c4jmp 0x211167
    002111c6call fn_f4590
    002111cbmov esi, eax
    002111cdlea rdi, [rip+0x1e342]
    002111d4call caml_plat_fatal_error
    002111d9mov esi, eax
    002111dblea rdi, [rip+0x1e341]
    002111e2call caml_plat_fatal_error
    002111e7db 0xe5
    002111e8cmpsd [rdi], [rsi]
    002111e9add [rax], al
    002110e0
    002111eb
    002111eb // align 0x10
    002111f0
    002111f0caml_ml_pos_in:
    002111f0push r13
    002111f2push r12
    002111f4push rbp
    002111f5push rbx
    002111f6sub rsp, 104
    002111famov [rsp+8], rdi
    002111ffmov rax, [0x28]
    00211208mov [rsp+88], rax
    0021120dmov rax, [rip+0x64dd0]
    00211214mov rbp, [rax]
    00211218lea rax, [rsp+16]
    0021121dmov r12, [rbp+160]
    00211224mov [rbp+160], rax
    0021122bmov eax, 1
    00211230movq x0, rax
    00211235lea rax, [rsp+8]
    0021123apunpcklqdq x0, x0
    0021123emov [rsp+16], r12
    00211243mov [rsp+40], rax
    00211248movups [rsp+24], x0
    0021124dmov rbx, [rdi+8]
    00211251lea r13, [rbx+40]
    00211255mov rdi, r13
    00211258call fn_f4780
    0021125dcmp eax, 16
    00211260je 0x2112d8
    00211262test eax, eax
    00211264jne 0x21130a
    0021126amov [0xfffffffffffffff0], rbx
    00211273mov rax, [rbx+32]
    00211277mov rdi, r13
    0021127asub rax, [rbx+24]
    0021127emov rbx, [rbx+8]
    00211282sub rbx, rax
    00211285call fn_f47c0
    0021128atest eax, eax
    0021128cjne 0x2112fc
    0021128emov rax, 0x3fffffffffffffff
    00211298mov [0xfffffffffffffff0], 0
    002112a5cmp rbx, rax
    002112a8jg 0x2112e7
    002112aamov [rbp+160], r12
    002112b1lea rax, [rbx+rbx+1]
    002112b6mov rdx, [rsp+88]
    002112bbsub rdx, [0x28]
    002112c4jne 0x2112e2
    002112c6add rsp, 104
    002112capop rbx
    002112cbpop rbp
    002112ccpop r12
    002112cepop r13
    002112d0ret
    002112d1db 0x5c
    002112d2pop r13
    002112d4ret
    002112d5
    002112d5 0f 1f 00 ...
    002112d8
    002112d8loc_2112d8:
    002112d8mov rdi, r13
    002112dbcall caml_plat_lock_non_blocking_actual
    002112e0jmp 0x21126e
    002112e2
    002112e2loc_2112e2:
    002112e2call fn_f4590
    002112e7
    002112e7loc_2112e7:
    002112e7call fn_f4570
    002112ecmov edi, 1
    002112f1mov [rax], 75
    002112f7call caml_sys_error
    002112fc
    002112fcloc_2112fc:
    002112fcmov esi, eax
    002112felea rdi, [rip+0x1e215]
    00211305call caml_plat_fatal_error
    0021130a
    0021130aloc_21130a:
    0021130amov esi, eax
    0021130clea rdi, [rip+0x1e214]
    00211313call caml_plat_fatal_error
    002111f0
    00211318
    00211318 // align 0x10
    00211320
    00211320caml_ml_pos_in_64:
    00211320push r13
    00211322push r12
    00211324push rbp
    00211325push rbx
    00211326sub rsp, 104
    0021132amov [rsp+8], rdi
    0021132fmov rax, [0x28]
    00211338mov [rsp+88], rax
    0021133dmov rax, [rip+0x64ca0]
    00211344mov rbp, [rax]
    00211348lea rax, [rsp+16]
    0021134dmov r12, [rbp+160]
    00211354mov [rbp+160], rax
    0021135bmov eax, 1
    00211360movq x0, rax
    00211365lea rax, [rsp+8]
    0021136apunpcklqdq x0, x0
    0021136emov [rsp+16], r12
    00211373mov [rsp+40], rax
    00211378movups [rsp+24], x0
    0021137dmov rbx, [rdi+8]
    00211381lea r13, [rbx+40]
    00211385mov rdi, r13
    00211388call fn_f4780
    0021138dcmp eax, 16
    00211390je 0x2113f8
    00211392test eax, eax
    00211394jne 0x211415
    00211396mov [0xfffffffffffffff0], rbx
    0021139fmov rax, [rbx+32]
    002113a3mov rdi, r13
    002113a6sub rax, [rbx+24]
    002113aamov rbx, [rbx+8]
    002113aesub rbx, rax
    002113b1call fn_f47c0
    002113b6test eax, eax
    002113b8jne 0x211407
    002113bamov [0xfffffffffffffff0], 0
    002113c7mov rdi, rbx
    002113cacall caml_copy_int64
    002113cfmov [rbp+160], r12
    002113d6mov rdx, [rsp+88]
    002113dbsub rdx, [0x28]
    002113e4jne 0x211402
    002113e6add rsp, 104
    002113eapop rbx
    002113ebpop rbp
    002113ecpop r12
    002113eepop r13
    002113f0ret
    002113f1db 0x5c
    002113f2pop r13
    002113f4ret
    002113f5
    002113f5 0f 1f 00 ...
    002113f8
    002113f8loc_2113f8:
    002113f8mov rdi, r13
    002113fbcall caml_plat_lock_non_blocking_actual
    00211400jmp 0x21139a
    00211402
    00211402loc_211402:
    00211402call fn_f4590
    00211407
    00211407loc_211407:
    00211407mov esi, eax
    00211409lea rdi, [rip+0x1e10a]
    00211410call caml_plat_fatal_error
    00211415
    00211415loc_211415:
    00211415mov esi, eax
    00211417lea rdi, [rip+0x1e109]
    0021141ecall caml_plat_fatal_error
    00211320
    00211423
    00211423 // align 0x10
    00211430
    00211430caml_ml_input_scan_line:
    00211430push r13
    00211432push r12
    00211434push rbp
    00211435push rbx
    00211436sub rsp, 104
    0021143amov [rsp+8], rdi
    0021143fmov rax, [0x28]
    00211448mov [rsp+88], rax
    0021144dmov rax, [rip+0x64b90]
    00211454mov rbx, [rax]
    00211458lea rax, [rsp+16]
    0021145dmov rbp, [rbx+160]
    00211464mov [rbx+160], rax
    0021146bmov eax, 1
    00211470movq x0, rax
    00211475lea rax, [rsp+8]
    0021147apunpcklqdq x0, x0
    0021147emov [rsp+16], rbp
    00211483mov [rsp+40], rax
    00211488movups [rsp+24], x0
    0021148dmov r12, [rdi+8]
    00211491lea r13, [r12+40]
    00211496mov rdi, r13
    00211499call fn_f4780
    0021149ecmp eax, 16
    002114a1je 0x211500
    002114a3test eax, eax
    002114a5jne 0x21151d
    002114a7mov [0xfffffffffffffff0], r12
    002114b0mov rdi, r12
    002114b3call caml_input_scan_line
    002114b8mov rdi, r13
    002114bbmov r12, rax
    002114becall fn_f47c0
    002114c3test eax, eax
    002114c5jne 0x21150f
    002114c7mov [0xfffffffffffffff0], 0
    002114d4lea rax, [r12+r12+1]
    002114d9mov [rbx+160], rbp
    002114e0mov rdx, [rsp+88]
    002114e5sub rdx, [0x28]
    002114eejne 0x21150a
    002114f0add rsp, 104
    002114f4pop rbx
    002114f5pop rbp
    002114f6pop r12
    002114f8pop r13
    002114faret
    002114fbdb 0x5c
    002114fcpop r13
    002114feret
    002114ff
    002114ff 90 .
    00211500
    00211500loc_211500:
    00211500mov rdi, r13
    00211503call caml_plat_lock_non_blocking_actual
    00211508jmp 0x2114ab
    0021150a
    0021150aloc_21150a:
    0021150acall fn_f4590
    0021150f
    0021150floc_21150f:
    0021150fmov esi, eax
    00211511lea rdi, [rip+0x1e002]
    00211518call caml_plat_fatal_error
    0021151d
    0021151dloc_21151d:
    0021151dmov esi, eax
    0021151flea rdi, [rip+0x1e001]
    00211526call caml_plat_fatal_error
    00211430
    0021152b
    0021152b // align 0x10
    00211530
    00211530caml_terminfo_rows:
    00211530sub rsp, 8
    00211534mov rax, [rdi+8]
    00211538mov edi, [rax]
    0021153acall caml_num_rows_fd
    0021153fadd rsp, 8
    00211543cdqe
    00211545lea rax, [rax+rax+1]
    0021154aret
    0021154bdb 0x44
    0021154cadd [rcx], al
    0021154eret
    00211530
    0021154f
    0021154f // align 0x10
    00211550
    00211550caml_lex_engine:
    00211550sar rsi, 1
    00211553mov rcx, rdi
    00211556mov rdi, rdx
    00211559mov r8l, esi
    0021155ctest esi, esi
    0021155ejs 0x211678
    00211564mov rax, [rdx+40]
    00211568mov [rdx+56], -1
    00211570mov [rdx+32], rax
    00211574mov [rdx+48], rax
    00211578mov rdx, [rcx]
    0021157bmovsxd rax, r8l
    0021157elea r9, [rax+rax]
    00211582movsx eax, [rdx+2*rax]
    00211586test eax, eax
    00211588js 0x211668
    0021158emov r10, [rdi+16]
    00211592jmp 0x2115f2
    00211594db 0x57
    00211595adc bl, ch
    00211597pop rdx
    00211598
    00211598 0f 1f 84 00 00 00 00 00 ........
    002115a0
    002115a0loc_2115a0:
    002115a0cmp [rdi+64], 1
    002115a5je 0x211680
    002115abmov esi, 256
    002115b0
    002115b0loc_2115b0:
    002115b0mov rdx, [rcx+32]
    002115b4add eax, esi
    002115b6cdqe
    002115b8movsx edx, [rdx+2*rax]
    002115bccmp edx, r8l
    002115bfje 0x211640
    002115c1mov rax, [rcx+16]
    002115c5movsx rax, [rax+r9]
    002115camovsx r8l, ax
    002115cetest r8l, r8l
    002115d1js 0x211652
    002115d3
    002115d3loc_2115d3:
    002115d3cmp esi, 256
    002115d9jne 0x2115e3
    002115dbmov [rdi+64], 1
    002115e3
    002115e3loc_2115e3:
    002115e3mov rdx, [rcx]
    002115e6lea r9, [rax+rax]
    002115eamovsx eax, [rdx+2*rax]
    002115eetest eax, eax
    002115f0js 0x211668
    002115f2
    002115f2loc_2115f2:
    002115f2mov rdx, [rcx+8]
    002115f6movsx rsi, [rdx+r9]
    002115fbmov rdx, [rdi+40]
    002115fftest si, si
    00211602js 0x21161b
    00211604lea rsi, [rsi+rsi+1]
    00211609movq x0, rdx
    0021160emovq x1, rsi
    00211613punpcklqdq x0, x1
    00211617movups [rdi+48], x0
    0021161b
    0021161bloc_21161b:
    0021161bcmp r10, rdx
    0021161ejle 0x2115a0
    00211620mov r11, rdx
    00211623mov rsi, [rdi+8]
    00211627add rdx, 2
    0021162bsar r11, 1
    0021162emovzx esi, [r11+rsi]
    00211633mov [rdi+40], rdx
    00211637jmp 0x2115b0
    0021163c
    0021163c 0f 1f 40 00 ..@.
    00211640
    00211640loc_211640:
    00211640mov rdx, [rcx+24]
    00211644movsx rax, [rdx+2*rax]
    00211649movsx r8l, ax
    0021164dtest r8l, r8l
    00211650jns 0x2115d3
    00211652
    00211652loc_211652:
    00211652mov rax, [rdi+48]
    00211656mov [rdi+40], rax
    0021165amov rax, [rdi+56]
    0021165ecmp rax, -1
    00211662je 0x21168c
    00211664ret
    00211665
    00211665 0f 1f 00 ...
    00211668
    00211668loc_211668:
    00211668not eax
    0021166acdqe
    0021166clea rax, [rax+rax+1]
    00211671ret
    00211672
    00211672 66 0f 1f 44 00 00 f..D..
    00211678
    00211678loc_211678:
    00211678not r8l
    0021167bjmp 0x21157c
    00211680
    00211680loc_211680:
    00211680not r8l
    00211683movsxd r8, r8l
    00211686lea rax, [r8+r8+1]
    0021168bret
    0021168c
    0021168cloc_21168c:
    0021168cpush rax
    0021168dlea rdi, [rip+0x1da17]
    00211694call caml_failwith
    00211550
    00211699
    00211699 // align 0x40
    002116c0
    002116c0caml_new_lex_engine:
    002116c0sar rsi, 1
    002116c3push rbx
    002116c4mov r8, rdx
    002116c7mov r11l, esi
    002116catest esi, esi
    002116ccjs 0x211980
    002116d2mov rax, [rdx+40]
    002116d6mov [rdx+56], -1
    002116demov [rdx+32], rax
    002116e2mov [rdx+48], rax
    002116e6mov rdx, [rdi]
    002116e9movsxd rax, r11l
    002116eclea r10, [rax+rax]
    002116f0movsx esi, [rdx+2*rax]
    002116f4test esi, esi
    002116f6jns 0x21179c
    002116fcjmp 0x2118f0
    00211701db 0xeb
    00211702add [rax], eax
    00211704db 0x00
    00211705
    00211705 0f 1f 00 ...
    00211708
    00211708loc_211708:
    00211708cmp [r8+64], 1
    0021170dje 0x211988
    00211713mov r9l, 256
    00211719
    00211719loc_211719:
    00211719mov rax, [rdi+32]
    0021171dadd esi, r9l
    00211720movsxd rsi, esi
    00211723movsx eax, [rax+2*rsi]
    00211727cmp eax, r11l
    0021172aje 0x2118b0
    00211730mov rax, [rdi+16]
    00211734movsx rsi, [rax+r10]
    00211739movsx ebx, si
    0021173ctest ebx, ebx
    0021173ejs 0x2118c4
    00211744
    00211744loc_211744:
    00211744mov rax, [rdi+40]
    00211748mov rdx, [rdi+72]
    0021174cmovzx eax, [rax+r10]
    00211751add eax, r9l
    00211754cdqe
    00211756movsx edx, [rdx+2*rax]
    0021175acmp edx, r11l
    0021175dje 0x2118e0
    00211763mov rax, [rdi+56]
    00211767movzx edx, [rax+r10]
    0021176c
    0021176cloc_21176c:
    0021176ctest dx, dx
    0021176fjne 0x211858
    00211775
    00211775loc_211775:
    00211775cmp r9l, 256
    0021177cjne 0x211786
    0021177emov [r8+64], 1
    00211786
    00211786loc_211786:
    00211786mov rax, [rdi]
    00211789lea r10, [rsi+rsi]
    0021178dmovsx esi, [rax+2*rsi]
    00211791test esi, esi
    00211793js 0x2118f0
    00211799mov r11l, ebx
    0021179c
    0021179cloc_21179c:
    0021179cmov rax, [rdi+8]
    002117a0movsx rbx, [rax+r10]
    002117a5test bx, bx
    002117a8jns 0x2117d8
    002117aamov rax, [r8+40]
    002117ae
    002117aeloc_2117ae:
    002117aecmp [r8+16], rax
    002117b2jle 0x211708
    002117b8mov rcx, rax
    002117bbmov rdx, [r8+8]
    002117bfadd rax, 2
    002117c3sar rcx, 1
    002117c6movzx r9l, [rcx+rdx]
    002117cbmov [r8+40], rax
    002117cfjmp 0x211719
    002117d4
    002117d4 0f 1f 40 00 ..@.
    002117d8
    002117d8loc_2117d8:
    002117d8mov rax, [rdi+48]
    002117dcmov r9, [r8+72]
    002117e0movzx edx, [rax+r10]
    002117e5add rdx, [rdi+80]
    002117e9movzx eax, [rdx]
    002117eccmp al, -1
    002117eejne 0x211811
    002117f0jmp 0x211833
    002117f2
    002117f2 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 ff............
    00211800
    00211800loc_211800:
    00211800lea rcx, [r9+8*rcx]
    00211804mov rcx, [rcx]
    00211807mov [rax], rcx
    0021180amovzx eax, [rdx]
    0021180dcmp al, -1
    0021180fje 0x211833
    00211811
    00211811loc_211811:
    00211811mov rcx, rdx
    00211814lea rax, [r9+8*rax]
    00211818add rdx, 2
    0021181cmovzx ecx, [rcx+1]
    00211820cmp cl, -1
    00211823jne 0x211800
    00211825mov [rax], -1
    0021182cmovzx eax, [rdx]
    0021182fcmp al, -1
    00211831jne 0x211811
    00211833
    00211833loc_211833:
    00211833mov rax, [r8+40]
    00211837lea rdx, [rbx+rbx+1]
    0021183cmovq x1, rdx
    00211841movq x0, rax
    00211846punpcklqdq x0, x1
    0021184amovups [r8+48], x0
    0021184fjmp 0x2117ae
    00211854
    00211854 0f 1f 40 00 ..@.
    00211858
    00211858loc_211858:
    00211858add rdx, [rdi+80]
    0021185cmov r11, [r8+40]
    00211860movzx eax, [rdx]
    00211863mov r10, [r8+72]
    00211867cmp al, -1
    00211869jne 0x211895
    0021186bjmp 0x211775
    00211870
    00211870 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 ff...........D..
    00211880
    00211880loc_211880:
    00211880lea rcx, [r10+8*rcx]
    00211884mov rcx, [rcx]
    00211887mov [rax], rcx
    0021188a
    0021188aloc_21188a:
    0021188amovzx eax, [rdx]
    0021188dcmp al, -1
    0021188fje 0x211775
    00211895
    00211895loc_211895:
    00211895mov rcx, rdx
    00211898lea rax, [r10+8*rax]
    0021189cadd rdx, 2
    002118a0movzx ecx, [rcx+1]
    002118a4cmp cl, -1
    002118a7jne 0x211880
    002118a9mov [rax], r11
    002118acjmp 0x21188a
    002118ae
    002118ae 66 90 f.
    002118b0
    002118b0loc_2118b0:
    002118b0mov rax, [rdi+24]
    002118b4movsx rsi, [rax+2*rsi]
    002118b9movsx ebx, si
    002118bctest ebx, ebx
    002118bejns 0x211744
    002118c4
    002118c4loc_2118c4:
    002118c4mov rax, [r8+48]
    002118c8mov [r8+40], rax
    002118ccmov rax, [r8+56]
    002118d0cmp rax, -1
    002118d4je 0x211995
    002118dapop rbx
    002118dbret
    002118dc
    002118dc 0f 1f 40 00 ..@.
    002118e0
    002118e0loc_2118e0:
    002118e0mov rdx, [rdi+64]
    002118e4movzx edx, [rdx+2*rax]
    002118e8jmp 0x21176c
    002118ed
    002118ed 0f 1f 00 ...
    002118f0
    002118f0loc_2118f0:
    002118f0mov rax, [rdi+40]
    002118f4mov r8, [r8+72]
    002118f8movzx edx, [rax+r10]
    002118fdadd rdx, [rdi+80]
    00211901movzx eax, [rdx]
    00211904cmp al, -1
    00211906jne 0x211951
    00211908jmp 0x211973
    0021190a
    0021190a 66 66 2e 0f 1f 84 ff....
    00211910 00 00 00 00 00 66 66 2e 0f 1f 84 00 00 00 00 00 .....ff.........
    00211920 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 2e 0f 1f ff.........ff...
    00211930 84 00 00 00 00 00 66 2e 0f 1f 84 00 00 00 00 00 ......f.........
    00211940
    00211940loc_211940:
    00211940lea rcx, [r8+8*rcx]
    00211944mov rcx, [rcx]
    00211947mov [rax], rcx
    0021194amovzx eax, [rdx]
    0021194dcmp al, -1
    0021194fje 0x211973
    00211951
    00211951loc_211951:
    00211951mov rcx, rdx
    00211954lea rax, [r8+8*rax]
    00211958add rdx, 2
    0021195cmovzx ecx, [rcx+1]
    00211960cmp cl, -1
    00211963jne 0x211940
    00211965mov [rax], -1
    0021196cmovzx eax, [rdx]
    0021196fcmp al, -1
    00211971jne 0x211951
    00211973
    00211973loc_211973:
    00211973not esi
    00211975pop rbx
    00211976movsxd rax, esi
    00211979lea rax, [rax+rax+1]
    0021197eret
    0021197f
    0021197f 90 .
    00211980
    00211980loc_211980:
    00211980not r11l
    00211983jmp 0x2116ea
    00211988
    00211988loc_211988:
    00211988not r11l
    0021198bpop rbx
    0021198cmovsxd rax, r11l
    0021198flea rax, [rax+rax+1]
    00211994ret
    00211995
    00211995loc_211995:
    00211995lea rdi, [rip+0x1d70f]
    0021199ccall caml_failwith
    002116c0
    002119a1
    002119a1 // align 0x10
    002119b0
    002119b0fn_2119b0:
    002119b0push rbp
    002119b1mov rsi, rdi
    002119b4push rbx
    002119b5mov rbx, rdi
    002119b8lea rdi, [rip+0x1ef89]
    002119bfsub rsp, 8
    002119c3mov rax, [rip+0x6461e]
    002119camov rbp, [rax]
    002119cexor eax, eax
    002119d0call caml_gc_log
    002119d5sub [rbp+352], rbx
    002119dclock add [rip+0x16712c], rbx
    002119e4mov rdx, [rip+0x167125]
    002119ebmov rax, [rbp+344]
    002119f2sub rax, rdx
    002119f5test rax, rax
    002119f8jg 0x211a05
    002119famov [rbp+240], 0
    00211a05
    00211a05loc_211a05:
    00211a05add rsp, 8
    00211a09pop rbx
    00211a0apop rbp
    00211a0bret
    002119b0
    00211a0c
    00211a0c // align 0x10
    00211a10
    00211a10fn_211a10:
    00211a10push r15
    00211a12pxor x0, x0
    00211a16push r14
    00211a18push r13
    00211a1apush r12
    00211a1cpush rbp
    00211a1dpush rbx
    00211a1emov rbx, rdi
    00211a21sub rsp, 56
    00211a25mov rax, [rip+0x645bc]
    00211a2cmov [rsp+40], esi
    00211a30mov [rsp+44], edx
    00211a34mov r15, [rax]
    00211a38mov rcx, [r15+136]
    00211a3fmov rax, [r15+128]
    00211a46movups [r15+128], x0
    00211a4eadd [r15+400], rax
    00211a55mov rdi, [r15+280]
    00211a5cmovsd_xmm x6, [r15+312]
    00211a65mov [rsp+32], rcx
    00211a6amov rcx, [r15+336]
    00211a71mov [rsp+8], rax
    00211a76mov [r15+336], 0
    00211a81mov [r15+312], 0
    00211a8cmov [rsp+24], rcx
    00211a91movsd_xmm [rsp+16], x6
    00211a97call caml_heap_size
    00211a9cpxor x3, x3
    00211aa0mov rbp, rax
    00211aa3mov rcx, rax
    00211aa6mov rax, [rip+0x1668f3]
    00211aadshr rbp, 3
    00211ab1cvtsi2sd x3, rbp
    00211ab6test rax, rax
    00211ab9js 0x211e40
    00211abfpxor x2, x2
    00211ac3cvtsi2sd x2, rax
    00211ac8
    00211ac8loc_211ac8:
    00211ac8movsd_xmm x1, [rip+0x18ca8]
    00211ad0movapd x0, x3
    00211ad4mulsd x0, x1
    00211ad8addsd x1, x2
    00211adcdivsd x0, x1
    00211ae0comisd x0, [rip+0x18d50]
    00211ae8jae 0x211da0
    00211aeecvttsd2si rdx, x0
    00211af3add rdx, rbp
    00211af6js 0x211dbb
    00211afc
    00211afcloc_211afc:
    00211afcpxor x1, x1
    00211b00cvtsi2sd x1, rdx
    00211b05
    00211b05loc_211b05:
    00211b05xor r13l, r13l
    00211b08cmp rcx, 7
    00211b0cjbe 0x211b58
    00211b0emov rcx, rax
    00211b11add rcx, 100
    00211b15js 0x211e20
    00211b1bpxor x0, x0
    00211b1fcvtsi2sd x0, rcx
    00211b24
    00211b24loc_211b24:
    00211b24movsd_xmm x4, [rip+0x18d14]
    00211b2cmulsd x4, x1
    00211b30mulsd x0, x4
    00211b34divsd x0, x3
    00211b38pxor x3, x3
    00211b3ccvtsi2sd x3, [rsp+8]
    00211b43divsd x0, x2
    00211b47mulsd x0, [rip+0x18c31]
    00211b4fmulsd x0, x3
    00211b53cvttsd2si r13, x0
    00211b58
    00211b58loc_211b58:
    00211b58mov rcx, [r15+328]
    00211b5fxor r12l, r12l
    00211b62test rcx, rcx
    00211b65je 0x211baf
    00211b67add rax, 100
    00211b6bimul rax, rdx
    00211b6ftest rax, rax
    00211b72js 0x211de0
    00211b78pxor x0, x0
    00211b7ccvtsi2sd x0, rax
    00211b81test rcx, rcx
    00211b84js 0x211e02
    00211b8a
    00211b8aloc_211b8a:
    00211b8apxor x3, x3
    00211b8ecvtsi2sd x3, rcx
    00211b93
    00211b93loc_211b93:
    00211b93divsd x0, x3
    00211b97divsd x0, x2
    00211b9bpxor x2, x2
    00211b9fcvtsi2sd x2, [rsp+24]
    00211ba6mulsd x0, x2
    00211baacvttsd2si r12, x0
    00211baf
    00211bafloc_211baf:
    00211bafmulsd x1, [rsp+16]
    00211bb5xor eax, eax
    00211bb7mov rdx, rbp
    00211bbamov edi, 64
    00211bbflea rsi, [rip+0x1d50a]
    00211bc6cvttsd2si r14, x1
    00211bcbcall caml_gc_message
    00211bd0mov rdx, [rsp+8]
    00211bd5xor eax, eax
    00211bd7lea rsi, [rip+0x1d504]
    00211bdemov edi, 64
    00211be3call caml_gc_message
    00211be8mov rdx, [rsp+32]
    00211bedxor eax, eax
    00211beflea rsi, [rip+0x1d503]
    00211bf6mov edi, 64
    00211bfbcall caml_gc_message
    00211c00xor eax, eax
    00211c02mov rdx, r13
    00211c05mov edi, 64
    00211c0alea rsi, [rip+0x1d506]
    00211c11call caml_gc_message
    00211c16mov rdx, [rsp+24]
    00211c1bxor eax, eax
    00211c1dlea rsi, [rip+0x1d50b]
    00211c24mov edi, 64
    00211c29call caml_gc_message
    00211c2exor eax, eax
    00211c30mov rdx, r12
    00211c33mov edi, 64
    00211c38lea rsi, [rip+0x1d507]
    00211c3fcall caml_gc_message
    00211c44movsd_xmm x0, [rsp+16]
    00211c4amulsd x0, [rip+0x18bf6]
    00211c52comisd x0, [rip+0x18bde]
    00211c5ajae 0x211d80
    00211c60cvttsd2si rdx, x0
    00211c65
    00211c65loc_211c65:
    00211c65xor eax, eax
    00211c67lea rsi, [rip+0x1d4f4]
    00211c6emov edi, 64
    00211c73call caml_gc_message
    00211c78xor eax, eax
    00211c7amov rdx, r14
    00211c7dmov edi, 64
    00211c82lea rsi, [rip+0x1d4f6]
    00211c89call caml_gc_message
    00211c8emov rax, [r15+360]
    00211c95lock add [rip+0x166e73], rax
    00211c9dcmp r13, r14
    00211ca0mov rax, r14
    00211ca3mov [r15+360], 0
    00211caecmovge rax, r13
    00211cb2cmp rax, r12
    00211cb5cmovl rax, r12
    00211cb9lock add [rip+0x166e57], rax
    00211cc1lea rax, [rbx+1]
    00211cc5cmp rax, 1
    00211cc9jbe 0x211e68
    00211ccfmov rax, [rip+0x166e3a]
    00211cd6
    00211cd6loc_211cd6:
    00211cd6mov [r15+344], rax
    00211cddmov esi, 85
    00211ce2mov [r15+352], rbx
    00211ce9mov r8, [rip+0x166e28]
    00211cf0mov rdx, [rip+0x166e19]
    00211cf7mov rcx, [rip+0x166e1a]
    00211cfecmp rcx, rdx
    00211d01lea rcx, [rip+0x1d3b7]
    00211d08lea rdx, [rip+0x1d3b8]
    00211d0fcmovb rdx, rcx
    00211d13mov rdi, [rip+0x166df6]
    00211d1amov ecx, [rsp+40]
    00211d1etest ecx, ecx
    00211d20je 0x211d38
    00211d22mov ecx, [rip+0x166d38]
    00211d28cmp ecx, 2
    00211d2bja 0x211d38
    00211d2dlea rsi, [rip+0x1fe6f]
    00211d34movsx esi, [rsi+rcx]
    00211d38
    00211d38loc_211d38:
    00211d38push rbx
    00211d39mov r9, r12
    00211d3cpush rax
    00211d3dxor eax, eax
    00211d3fpush r8
    00211d41mov r8, r13
    00211d44push rdx
    00211d45mov rdx, rbp
    00211d48push rdi
    00211d49lea rdi, [rip+0x1ec28]
    00211d50push r14
    00211d52mov rcx, [rsp+56]
    00211d57call caml_gc_log
    00211d5cmov eax, [rsp+92]
    00211d60add rsp, 48
    00211d64test eax, eax
    00211d66jne 0x211e80
    00211d6cadd rsp, 56
    00211d70pop rbx
    00211d71pop rbp
    00211d72pop r12
    00211d74pop r13
    00211d76pop r14
    00211d78pop r15
    00211d7aret
    00211d7b
    00211d7b 0f 1f 44 00 00 ..D..
    00211d80
    00211d80loc_211d80:
    00211d80subsd x0, [rip+0x18ab0]
    00211d88cvttsd2si rdx, x0
    00211d8dbtc rdx, 63
    00211d92jmp 0x211c65
    00211d97
    00211d97 66 0f 1f 84 00 00 00 00 00 f........
    00211da0
    00211da0loc_211da0:
    00211da0subsd x0, [rip+0x18a90]
    00211da8cvttsd2si rdx, x0
    00211dadbtc rdx, 63
    00211db2add rdx, rbp
    00211db5jns 0x211afc
    00211dbb
    00211dbbloc_211dbb:
    00211dbbmov rsi, rdx
    00211dbemov rdi, rdx
    00211dc1pxor x1, x1
    00211dc5shr rsi, 1
    00211dc8and edi, 1
    00211dcbor rsi, rdi
    00211dcecvtsi2sd x1, rsi
    00211dd3addsd x1, x1
    00211dd7jmp 0x211b05
    00211ddc
    00211ddc 0f 1f 40 00 ..@.
    00211de0
    00211de0loc_211de0:
    00211de0mov rdx, rax
    00211de3and eax, 1
    00211de6pxor x0, x0
    00211deashr rdx, 1
    00211dedor rdx, rax
    00211df0cvtsi2sd x0, rdx
    00211df5addsd x0, x0
    00211df9test rcx, rcx
    00211dfcjns 0x211b8a
    00211e02
    00211e02loc_211e02:
    00211e02mov rax, rcx
    00211e05and ecx, 1
    00211e08pxor x3, x3
    00211e0cshr rax, 1
    00211e0for rax, rcx
    00211e12cvtsi2sd x3, rax
    00211e17addsd x3, x3
    00211e1bjmp 0x211b93
    00211e20
    00211e20loc_211e20:
    00211e20mov rsi, rcx
    00211e23and ecx, 1
    00211e26pxor x0, x0
    00211e2ashr rsi, 1
    00211e2dor rsi, rcx
    00211e30cvtsi2sd x0, rsi
    00211e35addsd x0, x0
    00211e39jmp 0x211b24
    00211e3e
    00211e3e 66 90 f.
    00211e40
    00211e40loc_211e40:
    00211e40mov rdx, rax
    00211e43mov rsi, rax
    00211e46pxor x2, x2
    00211e4ashr rdx, 1
    00211e4dand esi, 1
    00211e50or rdx, rsi
    00211e53cvtsi2sd x2, rdx
    00211e58addsd x2, x2
    00211e5cjmp 0x211ac8
    00211e61
    00211e61 0f 1f 80 00 00 00 00 .......
    00211e68
    00211e68loc_211e68:
    00211e68mov rax, [rip+0x166ca9]
    00211e6fxor ebx, ebx
    00211e71jmp 0x211cd6
    00211e76
    00211e76 66 2e 0f 1f 84 00 00 00 00 00 f.........
    00211e80
    00211e80loc_211e80:
    00211e80mov rsi, rbp
    00211e83mov edi, 17
    00211e88call caml_ev_counter
    00211e8dmov rsi, [rsp+8]
    00211e92mov edi, 18
    00211e97call caml_ev_counter
    00211e9cmov rsi, r13
    00211e9fmov edi, 19
    00211ea4call caml_ev_counter
    00211ea9mov rsi, r12
    00211eacmov edi, 20
    00211eb1call caml_ev_counter
    00211eb6mov rsi, r14
    00211eb9mov edi, 21
    00211ebecall caml_ev_counter
    00211ec3mov edi, 22
    00211ec8mov rsi, [rip+0x166c41]
    00211ecfcall caml_ev_counter
    00211ed4mov edi, 23
    00211ed9mov rsi, [rip+0x166c38]
    00211ee0call caml_ev_counter
    00211ee5mov rsi, [r15+344]
    00211eecmov edi, 24
    00211ef1call caml_ev_counter
    00211ef6mov rsi, [r15+352]
    00211efdadd rsp, 56
    00211f01mov edi, 25
    00211f06pop rbx
    00211f07pop rbp
    00211f08pop r12
    00211f0apop r13
    00211f0cpop r14
    00211f0epop r15
    00211f10jmp 0x21cb20
    00211a10