File hevea_f46f610a6b0078f4aa208dda361f21de574cc56ad64b32889301afc466d33979.elf
Function:
    0021dbe0
    0021dbe0fn_21dbe0:
    0021dbe0test sil, 1
    0021dbe4jne 0x21dc18
    0021dbe6push rbp
    0021dbe7mov rbp, rsi
    0021dbeapush rbx
    0021dbebmov rbx, rdi
    0021dbeesub rsp, 8
    0021dbf2movsxd rdx, [rdi+12]
    0021dbf6mov rdi, [rdi]
    0021dbf9cmp edx, [rbx+8]
    0021dbfcje 0x21dc20
    0021dbfelea eax, [rdx+1]
    0021dc01mov [rbx+12], eax
    0021dc04mov [rdi+8*rdx], rbp
    0021dc08add rsp, 8
    0021dc0cpop rbx
    0021dc0dpop rbp
    0021dc0eret
    0021dc0fdb 0x08
    0021dc10pop rbx
    0021dc11pop rbp
    0021dc12ret
    0021dc13
    0021dc13 0f 1f 44 00 00 ..D..
    0021dc18
    0021dc18loc_21dc18:
    0021dc18ret
    0021dc19
    0021dc19 0f 1f 80 00 00 00 00 .......
    0021dc20
    0021dc20loc_21dc20:
    0021dc20lea esi, [rdx+rdx+100]
    0021dc24mov [rbx+8], esi
    0021dc27movsxd rsi, esi
    0021dc2ashl rsi, 3
    0021dc2ecall caml_stat_resize
    0021dc33movsxd rdx, [rbx+12]
    0021dc37mov [rbx], rax
    0021dc3amov rdi, rax
    0021dc3djmp 0x21dc02
    0021dbe0
    0021dc3f
    0021dc3f // align 0x10
    0021dc40
    0021dc40caml_verify_root:
    0021dc40test sil, 1
    0021dc44jne 0x21dc78
    0021dc46push rbp
    0021dc47mov rbp, rsi
    0021dc4apush rbx
    0021dc4bmov rbx, rdi
    0021dc4esub rsp, 8
    0021dc52movsxd rdx, [rdi+12]
    0021dc56mov rdi, [rdi]
    0021dc59cmp edx, [rbx+8]
    0021dc5cje 0x21dc80
    0021dc5elea eax, [rdx+1]
    0021dc61mov [rbx+12], eax
    0021dc64mov [rdi+8*rdx], rbp
    0021dc68add rsp, 8
    0021dc6cpop rbx
    0021dc6dpop rbp
    0021dc6eret
    0021dc6fdb 0x08
    0021dc70pop rbx
    0021dc71pop rbp
    0021dc72ret
    0021dc73
    0021dc73 0f 1f 44 00 00 ..D..
    0021dc78
    0021dc78loc_21dc78:
    0021dc78ret
    0021dc79
    0021dc79 0f 1f 80 00 00 00 00 .......
    0021dc80
    0021dc80loc_21dc80:
    0021dc80lea esi, [rdx+rdx+100]
    0021dc84mov [rbx+8], esi
    0021dc87movsxd rsi, esi
    0021dc8ashl rsi, 3
    0021dc8ecall caml_stat_resize
    0021dc93movsxd rdx, [rbx+12]
    0021dc97mov [rbx], rax
    0021dc9amov rdi, rax
    0021dc9djmp 0x21dc62
    0021dc40
    0021dc9f
    0021dc9f // align 0x10
    0021dca0
    0021dca0fn_21dca0:
    0021dca0mov rax, [rdi]
    0021dca3movzx edx, al
    0021dca6cmp al, -11
    0021dca8je 0x21dd60
    0021dcaecmp edx, 247
    0021dcb4je 0x21dcc8
    0021dcb6cmp edx, 250
    0021dcbcjbe 0x21dda0
    0021dcc2
    0021dcc2loc_21dcc2:
    0021dcc2ret
    0021dcc3
    0021dcc3 0f 1f 44 00 00 ..D..
    0021dcc8
    0021dcc8loc_21dcc8:
    0021dcc8mov rcx, [rdi+16]
    0021dcccshl rcx, 8
    0021dcd0shr rcx, 9
    0021dcd4
    0021dcd4loc_21dcd4:
    0021dcd4shr rax, 10
    0021dcd8mov rdx, rax
    0021dcdbcmp rcx, rax
    0021dcdejae 0x21dcc2
    0021dce0lea rax, [rdi+8*rcx+8]
    0021dce5lea r8, [rdi+8*rdx+8]
    0021dceajmp 0x21dd09
    0021dcec
    0021dcec 66 66 2e 0f ff..
    0021dcf0 1f 84 00 00 00 00 00 66 0f 1f 84 00 00 00 00 00 .......f........
    0021dd00
    0021dd00loc_21dd00:
    0021dd00add rax, 8
    0021dd04cmp r8, rax
    0021dd07je 0x21dcc2
    0021dd09
    0021dd09loc_21dd09:
    0021dd09mov rdx, [rax]
    0021dd0ctest dl, 1
    0021dd0fjne 0x21dd00
    0021dd11movzx ecx, [rdx-8]
    0021dd15lea rsi, [rdx-8]
    0021dd19xor edi, edi
    0021dd1bcmp cl, -7
    0021dd1eje 0x21dd88
    0021dd20
    0021dd20loc_21dd20:
    0021dd20mov rcx, [rsi]
    0021dd23not rcx
    0021dd26and ch, 3
    0021dd29je 0x21dd00
    0021dd2bmov rcx, [rsi]
    0021dd2eshr rcx, 10
    0021dd32add rcx, 1
    0021dd36cmp rcx, 128
    0021dd3dja 0x21dd00
    0021dd3fmov rcx, [rsi]
    0021dd42and ecx, 768
    0021dd48cmp [rip+0x15a671], rcx
    0021dd4fjne 0x21dd00
    0021dd51mov rdx, [rdx]
    0021dd54movsxd rdi, edi
    0021dd57add rdi, rdx
    0021dd5amov [rax], rdi
    0021dd5djmp 0x21dd00
    0021dd5f
    0021dd5f 90 .
    0021dd60
    0021dd60loc_21dd60:
    0021dd60mov rcx, [rdi+8]
    0021dd64cmp rcx, 1
    0021dd68je 0x21dcc2
    0021dd6esub rcx, 1
    0021dd72xor r8l, r8l
    0021dd75xor edx, edx
    0021dd77xor esi, esi
    0021dd79lea rdi, [rip-1072]
    0021dd80jmp 0x206e00
    0021dd85
    0021dd85 0f 1f 00 ...
    0021dd88
    0021dd88loc_21dd88:
    0021dd88mov rdi, [rdx-8]
    0021dd8cshr rdi, 10
    0021dd90shl edi, 3
    0021dd93movsxd rcx, edi
    0021dd96sub rdx, rcx
    0021dd99lea rsi, [rdx-8]
    0021dd9djmp 0x21dd20
    0021dd9f
    0021dd9f 90 .
    0021dda0
    0021dda0loc_21dda0:
    0021dda0xor ecx, ecx
    0021dda2jmp 0x21dcd4
    0021dca0
    0021dda7
    0021dda7 // align 0x20
    0021ddc0
    0021ddc0fn_21ddc0:
    0021ddc0test rdi, rdi
    0021ddc3je 0x21de77
    0021ddc9push r15
    0021ddcblea rcx, [rip+0x146ce]
    0021ddd2lea r15, [rip+0x146e7]
    0021ddd9push r14
    0021dddbmov r14, rdi
    0021dddepush r13
    0021dde0push r12
    0021dde2push rbp
    0021dde3push rbx
    0021dde4sub rsp, 8
    0021dde8nop [rax+rax]
    0021ddf0
    0021ddf0loc_21ddf0:
    0021ddf0mov eax, [r14+24]
    0021ddf4lea r13, [r14+32768]
    0021ddfbmovzx edx, [rcx+rax]
    0021ddffmov r12l, [r15+4*rax]
    0021de03lea rbx, [r14+8*rdx+32]
    0021de08shl r12, 3
    0021de0clea rbp, [rbx+r12]
    0021de10cmp r13, rbp
    0021de13jae 0x21de2b
    0021de15jmp 0x21de60
    0021de17
    0021de17 66 0f 1f 84 00 00 00 00 00 f........
    0021de20
    0021de20loc_21de20:
    0021de20add rbp, r12
    0021de23add rbx, r12
    0021de26cmp r13, rbp
    0021de29jb 0x21de60
    0021de2b
    0021de2bloc_21de2b:
    0021de2bcmp [rbx], 0
    0021de2fje 0x21de20
    0021de31mov rax, [rbx]
    0021de34and eax, 768
    0021de39cmp [rip+0x15a588], rax
    0021de40jne 0x21de20
    0021de42mov rdi, rbx
    0021de45add rbp, r12
    0021de48add rbx, r12
    0021de4bcall fn_21dca0
    0021de50lea rcx, [rip+0x14649]
    0021de57cmp r13, rbp
    0021de5ajae 0x21de2b
    0021de5cnop [rax]
    0021de60
    0021de60loc_21de60:
    0021de60mov r14, [r14]
    0021de63test r14, r14
    0021de66jne 0x21ddf0
    0021de68add rsp, 8
    0021de6cpop rbx
    0021de6dpop rbp
    0021de6epop r12
    0021de70pop r13
    0021de72pop r14
    0021de74pop r15
    0021de76ret
    0021de77
    0021de77loc_21de77:
    0021de77ret
    0021ddc0
    0021de78
    0021de78 // align 0x10
    0021de80
    0021de80fn_21de80:
    0021de80push r15
    0021de82push r14
    0021de84push r13
    0021de86push r12
    0021de88push rbp
    0021de89push rbx
    0021de8asub rsp, 56
    0021de8emov r15, [rsi]
    0021de91test r15, r15
    0021de94je 0x21e0c0
    0021de9amov rax, [r15]
    0021de9dmov edx, edx
    0021de9fmov r13, rdi
    0021dea2mov r10l, 1
    0021dea8mov [rsi], rax
    0021deablea rax, [rip+0x145ee]
    0021deb2lea rsi, [rip+0x14607]
    0021deb9movzx eax, [rax+rdx]
    0021debdmov esi, [rsi+4*rdx]
    0021dec0lea r9, [rax+4]
    0021dec4lea r14, [8*rsi]
    0021decclea r8, [8*r9]
    0021ded4lea rax, [r15+32768]
    0021dedblea r12, [r15+r8]
    0021dedflea rbx, [r12+r14]
    0021dee3jmp 0x21df07
    0021dee5
    0021dee5 0f 1f 00 ...
    0021dee8
    0021dee8loc_21dee8:
    0021dee8mov rdi, rbp
    0021deeband edi, 768
    0021def1cmp [rip+0x15a4d8], rdi
    0021def8je 0x21df60
    0021defamov r12, rbx
    0021defdadd rbx, r14
    0021df00xor ecx, ecx
    0021df02cmp rax, rbx
    0021df05jb 0x21df1e
    0021df07
    0021df07loc_21df07:
    0021df07mov rbp, [r12]
    0021df0btest rbp, rbp
    0021df0ejne 0x21dee8
    0021df10xor r10l, r10l
    0021df13
    0021df13loc_21df13:
    0021df13mov r12, rbx
    0021df16add rbx, r14
    0021df19cmp rax, rbx
    0021df1cjae 0x21df07
    0021df1e
    0021df1eloc_21df1e:
    0021df1etest ecx, ecx
    0021df20jne 0x21e050
    0021df26test r10l, r10l
    0021df29jne 0x21dfe0
    0021df2flea rax, [r13+8*rdx]
    0021df34mov rdx, [r13+8*rdx]
    0021df39
    0021df39loc_21df39:
    0021df39mov [r15], rdx
    0021df3cmov [rax], r15
    0021df3f
    0021df3floc_21df3f:
    0021df3fmov eax, 32768
    0021df44add rsp, 56
    0021df48sub rax, r8
    0021df4bpop rbx
    0021df4cpop rbp
    0021df4dsar rax, 3
    0021df51pop r12
    0021df53pop r13
    0021df55pop r14
    0021df57pop r15
    0021df59ret
    0021df5a
    0021df5a 66 0f 1f 44 00 00 f..D..
    0021df60
    0021df60loc_21df60:
    0021df60movzx edi, bpl
    0021df64cmp edi, 255
    0021df6aje 0x21dff8
    0021df70
    0021df70loc_21df70:
    0021df70mov [r12], 0
    0021df78shr rbp, 10
    0021df7cmov rdi, [r15+8]
    0021df80mov [r12+8], rdi
    0021df85mov rdi, rbp
    0021df88mov [r15+8], r12
    0021df8cnot rdi
    0021df8fadd [r13+1072], rdi
    0021df96mov rdi, [r13+1048]
    0021df9dsub [r13+1080], 1
    0021dfa5mov r10, [rdi+144]
    0021dfaclea r10, [rbp+r10+1]
    0021dfb1sub rbp, rsi
    0021dfb4mov [rdi+144], r10
    0021dfbbmov rdi, [r13+1088]
    0021dfc2xor r10l, r10l
    0021dfc5lea rdi, [rbp+rdi+1]
    0021dfcamov [r13+1088], rdi
    0021dfd1jmp 0x21df13
    0021dfd6
    0021dfd6 66 2e 0f 1f 84 00 00 00 00 00 f.........
    0021dfe0
    0021dfe0loc_21dfe0:
    0021dfe0add rdx, 32
    0021dfe4lea rax, [r13+8*rdx]
    0021dfe9mov rdx, [r13+8*rdx]
    0021dfeejmp 0x21df39
    0021dff3
    0021dff3 0f 1f 44 00 00 ..D..
    0021dff8
    0021dff8loc_21dff8:
    0021dff8mov rdi, [r12+8]
    0021dffdmov r10, [rdi+8]
    0021e001test r10, r10
    0021e004je 0x21df70
    0021e00amov [rsp+40], rdx
    0021e00flea rdi, [r12+8]
    0021e014mov [rsp+32], r9
    0021e019mov [rsp+28], ecx
    0021e01dmov [rsp+16], rsi
    0021e022mov [rsp+8], rax
    0021e027mov [rsp], r8
    0021e02bcall r10
    0021e02emov rdx, [rsp+40]
    0021e033mov r9, [rsp+32]
    0021e038mov ecx, [rsp+28]
    0021e03cmov rsi, [rsp+16]
    0021e041mov rax, [rsp+8]
    0021e046mov r8, [rsp]
    0021e04ajmp 0x21df70
    0021e04f
    0021e04f 90 .
    0021e050
    0021e050loc_21e050:
    0021e050mov [r15+16], 0
    0021e058lea rbx, [rip+0x15ad81]
    0021e05fsub [r13+1056], 4096
    0021e06amov rdi, rbx
    0021e06dsub [r13+1088], r9
    0021e074mov [rsp], r8
    0021e078call fn_f4710
    0021e07dmov r8, [rsp]
    0021e081test eax, eax
    0021e083jne 0x21e0d1
    0021e085mov rax, [rip+0x15ad7c]
    0021e08cmov rdi, rbx
    0021e08fmov [rsp], r8
    0021e093mov [r15], rax
    0021e096mov [rip+0x15ad6b], r15
    0021e09dcall fn_f47c0
    0021e0a2mov r8, [rsp]
    0021e0a6test eax, eax
    0021e0a8je 0x21df3f
    0021e0aemov esi, eax
    0021e0b0lea rdi, [rip+0x11463]
    0021e0b7call caml_plat_fatal_error
    0021e0bcnop [rax]
    0021e0c0
    0021e0c0loc_21e0c0:
    0021e0c0add rsp, 56
    0021e0c4xor eax, eax
    0021e0c6pop rbx
    0021e0c7pop rbp
    0021e0c8pop r12
    0021e0capop r13
    0021e0ccpop r14
    0021e0cepop r15
    0021e0d0ret
    0021e0d1
    0021e0d1loc_21e0d1:
    0021e0d1mov esi, eax
    0021e0d3lea rdi, [rip+0x11435]
    0021e0dacall caml_plat_fatal_error
    0021de80
    0021e0df
    0021e0df // align 0x10
    0021e0e0
    0021e0e0caml_init_shared_heap:
    0021e0e0sub rsp, 8
    0021e0e4mov edi, 1120
    0021e0e9call caml_stat_alloc_noexc
    0021e0eemov rdx, rax
    0021e0f1test rax, rax
    0021e0f4je 0x21e16f
    0021e0f6lea rdi, [rax+8]
    0021e0famov rcx, rax
    0021e0fdmov [rax], 0
    0021e104pxor x0, x0
    0021e108mov [rax+1016], 0
    0021e113and rdi, -8
    0021e117xor eax, eax
    0021e119sub rcx, rdi
    0021e11cadd ecx, 1024
    0021e122shr ecx, 3
    0021e125rep stosq [rdi], rax
    0021e128mov rax, [rip+0x57eb5]
    0021e12fmovups [rdx+1024], x0
    0021e136pxor x0, x0
    0021e13amov [rdx+1040], 0
    0021e144mov rax, [rax]
    0021e148movups [rdx+1056], x0
    0021e14fmovups [rdx+1072], x0
    0021e156mov [rdx+1048], rax
    0021e15dmovups [rdx+1088], x0
    0021e164movups [rdx+1104], x0
    0021e16bmov rax, rdx
    0021e16eadd rsp, 8
    0021e172ret
    0021e173db 0x83
    0021e174db 0xc4
    0021e175or bl, al
    0021e0e0
    0021e177
    0021e177 // align 0x10
    0021e180
    0021e180caml_teardown_shared_heap:
    0021e180push r14
    0021e182push r13
    0021e184push r12
    0021e186mov r12, rdi
    0021e189push rbp
    0021e18apush rbx
    0021e18blea rbx, [rip+0x15ac4a]
    0021e192mov rdi, rbx
    0021e195call fn_f4710
    0021e19amov r13l, eax
    0021e19dtest eax, eax
    0021e19fjne 0x21e35c
    0021e1a5lea rcx, [rip+0x15ada0]
    0021e1acmov rdx, r12
    0021e1afxor ebp, ebp
    0021e1b1lea r8, [rcx+256]
    0021e1b8nop [rax]
    0021e1bcmov rax, [rdx]
    0021e1bflea rsi, [rcx-256]
    0021e1c6test rax, rax
    0021e1c9je 0x21e224
    0021e1cbxor edi, edi
    0021e1cdnop [rax+rax]
    0021e1d8nop [rax+rax]
    0021e1e3nop [rax+rax]
    0021e1eenop [rax+rax]
    0021e1f9nop [rax]
    0021e1fcmov r9, [rax]
    0021e1ffmov [rdx], r9
    0021e202mov [rax+16], 0
    0021e20amov r9, [rsi]
    0021e20dmov [rax], r9
    0021e210xchg [rsi], rax
    0021e213mov rax, [rdx]
    0021e216add edi, 1
    0021e219test rax, rax
    0021e21cjne 0x21e200
    0021e21eadd ebp, edi
    0021e220mov rax, [rdx+256]
    0021e227test rax, rax
    0021e22aje 0x21e26c
    0021e22cxor esi, esi
    0021e22enop [rax+rax]
    0021e239nop [rax]
    0021e23cmov rdi, [rax]
    0021e23fmov [rdx+256], rdi
    0021e246mov [rax+16], 0
    0021e24emov rdi, [rcx]
    0021e251mov [rax], rdi
    0021e254xchg [rcx], rax
    0021e257mov rax, [rdx+256]
    0021e25eadd esi, 1
    0021e261test rax, rax
    0021e264jne 0x21e240
    0021e266add ebp, esi
    0021e268add rcx, 8
    0021e26c
    0021e26cloc_21e26c:
    0021e26cadd rdx, 8
    0021e270cmp rcx, r8
    0021e273jne 0x21e1c0
    0021e279mov rax, [r12+1024]
    0021e281test rax, rax
    0021e284je 0x21e2ee
    0021e286mov rcx, [rip+0x15adbf]
    0021e28djmp 0x21e2c3
    0021e28fdb 0x15
    0021e290add bl, ch
    0021e292db 0x30
    0021e293
    0021e293 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 ff.........ff
    0021e2a0 2e 0f 1f 84 00 00 00 00 00 66 66 2e 0f 1f 84 00 .........ff.....
    0021e2b0 00 00 00 00 66 66 2e 0f 1f 84 00 00 00 00 00 90 ....ff..........
    0021e2c0
    0021e2c0loc_21e2c0:
    0021e2c0mov rax, rdx
    0021e2c3
    0021e2c3loc_21e2c3:
    0021e2c3mov rdx, [rax+8]
    0021e2c7add r13l, 1
    0021e2cbmov [r12+1024], rdx
    0021e2d3mov [rax+8], rcx
    0021e2d7mov rdx, [r12+1024]
    0021e2dfmov rcx, rax
    0021e2e2mov [rip+0x15ad67], rax
    0021e2e9test rdx, rdx
    0021e2ecjne 0x21e2c0
    0021e2ee
    0021e2eeloc_21e2ee:
    0021e2eelea r14, [r12+1056]
    0021e2f6lea rdi, [rip+0x15ab13]
    0021e2fdmov rsi, r14
    0021e300call caml_accum_heap_stats
    0021e305pxor x0, x0
    0021e309mov rdi, rbx
    0021e30cmovups [r12+1056], x0
    0021e315movups [r12+1072], x0
    0021e31emovups [r12+1088], x0
    0021e327movups [r12+1104], x0
    0021e330call fn_f47c0
    0021e335test eax, eax
    0021e337jne 0x21e36a
    0021e339mov rdi, r12
    0021e33ccall caml_stat_free
    0021e341pop rbx
    0021e342mov edx, r13l
    0021e345mov esi, ebp
    0021e347lea rdi, [rip+0x12f62]
    0021e34epop rbp
    0021e34fxor eax, eax
    0021e351pop r12
    0021e353pop r13
    0021e355pop r14
    0021e357jmp 0x21abf0
    0021e35c
    0021e35cloc_21e35c:
    0021e35cmov esi, eax
    0021e35elea rdi, [rip+0x111aa]
    0021e365call caml_plat_fatal_error
    0021e36a
    0021e36aloc_21e36a:
    0021e36amov esi, eax
    0021e36clea rdi, [rip+0x111a7]
    0021e373call caml_plat_fatal_error
    0021e180
    0021e378
    0021e378 // align 0x10
    0021e380
    0021e380caml_shared_try_alloc:
    0021e380push r15
    0021e382push r14
    0021e384push r13
    0021e386lea r13, [rsi+1]
    0021e38apush r12
    0021e38cpush rbp
    0021e38dmov rbp, rsi
    0021e390push rbx
    0021e391mov rbx, rdi
    0021e394sub rsp, 40
    0021e398mov [rsp+12], edx
    0021e39ccmp r13, 128
    0021e3a3ja 0x21e428
    0021e3a5lea rax, [rip+0x14050]
    0021e3acmovzx r12l, [rax+rsi+1]
    0021e3b2lea r15, [rdi+8*r12]
    0021e3b6mov rax, r12
    0021e3b9mov rcx, [r15]
    0021e3bctest rcx, rcx
    0021e3bfje 0x21e4c0
    0021e3c5lea rax, [rip+0x140f0]
    0021e3ccmov r12l, r12l
    0021e3cfmov esi, [rax+4*r12]
    0021e3d3mov rax, [rcx+8]
    0021e3d7mov rdx, [rax+8]
    0021e3db
    0021e3dbloc_21e3db:
    0021e3dbmov [rcx+8], rdx
    0021e3dftest rdx, rdx
    0021e3e2jne 0x21e3ff
    0021e3e4mov rdx, [rcx]
    0021e3e7mov [r15], rdx
    0021e3eamov rdx, [r15+256]
    0021e3f1mov [rcx], rdx
    0021e3f4mov [r15+256], rcx
    0021e3fbmov rdx, [rbx+1088]
    0021e402add [rbx+1080], 1
    0021e40aadd [rbx+1072], r13
    0021e411sub rdx, r13
    0021e414add rdx, rsi
    0021e417mov [rbx+1088], rdx
    0021e41ejmp 0x21e492
    0021e420db 0x00
    0021e421add bl, ch
    0021e423outsb dl, [rsi]
    0021e424
    0021e424 0f 1f 40 00 ..@.
    0021e428
    0021e428loc_21e428:
    0021e428lea r12, [8*r13+16]
    0021e430mov rdi, r12
    0021e433call fn_f4250
    0021e438test rax, rax
    0021e43bje 0x21e795
    0021e441mov rdx, r12
    0021e444shr rdx, 3
    0021e448add rdx, [rbx+1096]
    0021e44fmov [rbx+1096], rdx
    0021e456cmp rdx, [rbx+1104]
    0021e45djle 0x21e466
    0021e45fmov [rbx+1104], rdx
    0021e466
    0021e466loc_21e466:
    0021e466add [rbx+1112], 1
    0021e46emovdqu x1, [rbx+1024]
    0021e476movdqu x0, [rbx+1040]
    0021e47emov [rbx+1024], rax
    0021e485add rax, 16
    0021e489shufpd x0, x1, 1
    0021e48emovups [rax-16], x0
    0021e492
    0021e492loc_21e492:
    0021e492mov ebx, [rsp+12]
    0021e496shl rbp, 10
    0021e49aadd rbx, [rip+0x159f1f]
    0021e4a1add rbx, rbp
    0021e4a4mov [rax], rbx
    0021e4a7
    0021e4a7loc_21e4a7:
    0021e4a7add rsp, 40
    0021e4abpop rbx
    0021e4acpop rbp
    0021e4adpop r12
    0021e4afpop r13
    0021e4b1pop r14
    0021e4b3pop r15
    0021e4b5ret
    0021e4b6
    0021e4b6 66 2e 0f 1f 84 00 00 00 00 00 f.........
    0021e4c0
    0021e4c0loc_21e4c0:
    0021e4c0add rax, 64
    0021e4c4mov [rsp+24], rax
    0021e4c9shl rax, 3
    0021e4cdmov [rsp+16], rax
    0021e4d2lea r14, [rdi+rax]
    0021e4d6jmp 0x21e511
    0021e4d8
    0021e4d8 0f 1f 84 00 00 00 00 00 ........
    0021e4e0
    0021e4e0loc_21e4e0:
    0021e4e0xor ecx, ecx
    0021e4e2mov edx, r12l
    0021e4e5mov rsi, r14
    0021e4e8mov rdi, rbx
    0021e4ebcall fn_21de80
    0021e4f0mov rdx, rax
    0021e4f3mov rax, [rip+0x57aee]
    0021e4famov rax, [rax]
    0021e4feadd [rax+360], rdx
    0021e505mov rcx, [r15]
    0021e508test rcx, rcx
    0021e50bjne 0x21e3c9
    0021e511
    0021e511loc_21e511:
    0021e511cmp [r15+512], 0
    0021e519jne 0x21e4e0
    0021e51bmov rax, [rsp+16]
    0021e520lea r14, [rip+0x15a8b9]
    0021e527lea rdx, [r14+rax-400]
    0021e52fmov rax, [rdx]
    0021e532test rax, rax
    0021e535je 0x21e6f0
    0021e53b
    0021e53bloc_21e53b:
    0021e53bmov rdi, r14
    0021e53emov [rsp+24], rdx
    0021e543call fn_f4710
    0021e548mov rdx, [rsp+24]
    0021e54dtest eax, eax
    0021e54fjne 0x21e7ce
    0021e555mov rax, [rdx]
    0021e558test rax, rax
    0021e55bje 0x21e5b0
    0021e55dmov rcx, [rdx]
    0021e560test rcx, rcx
    0021e563je 0x21e5b0
    0021e565mov rax, [rcx]
    0021e568mov rsi, rcx
    0021e56bmov rdi, rbx
    0021e56emov [rdx], rax
    0021e571mov [rcx], 0
    0021e578mov edx, r12l
    0021e57bmov [r15], rcx
    0021e57emov [rsp+16], rcx
    0021e583call fn_21d840
    0021e588mov rdi, r14
    0021e58bcall fn_f47c0
    0021e590mov rcx, [rsp+16]
    0021e595test eax, eax
    0021e597je 0x21e3c9
    0021e59d
    0021e59dloc_21e59d:
    0021e59dmov esi, eax
    0021e59flea rdi, [rip+0x10f74]
    0021e5a6call caml_plat_fatal_error
    0021e5abnop [rax+rax]
    0021e5b0
    0021e5b0loc_21e5b0:
    0021e5b0mov rax, [rsp+16]
    0021e5b5lea rax, [r14+rax-144]
    0021e5bdmov rsi, [rax]
    0021e5c0test rsi, rsi
    0021e5c3jne 0x21e70e
    0021e5c9mov rdi, r14
    0021e5cccall fn_f47c0
    0021e5d1test eax, eax
    0021e5d3jne 0x21e59d
    0021e5d5
    0021e5d5loc_21e5d5:
    0021e5d5mov rdi, r14
    0021e5d8call fn_f4710
    0021e5ddtest eax, eax
    0021e5dfjne 0x21e7ce
    0021e5e5mov rcx, [rip+0x15a81c]
    0021e5ectest rcx, rcx
    0021e5efje 0x21e79c
    0021e5f5
    0021e5f5loc_21e5f5:
    0021e5f5mov rax, [rcx]
    0021e5f8mov rdi, r14
    0021e5fbmov [rsp+16], rcx
    0021e600mov [rip+0x15a801], rax
    0021e607call fn_f47c0
    0021e60cmov rcx, [rsp+16]
    0021e611test eax, eax
    0021e613jne 0x21e59d
    0021e615mov rax, [rbx+1056]
    0021e61cadd rax, 4096
    0021e622mov [rbx+1056], rax
    0021e629cmp rax, [rbx+1064]
    0021e630jle 0x21e639
    0021e632mov [rbx+1064], rax
    0021e639
    0021e639loc_21e639:
    0021e639mov edx, r12l
    0021e63clea rax, [rip+0x13e5d]
    0021e643pxor x0, x0
    0021e647movzx eax, [rax+rdx]
    0021e64blea rsi, [rip+0x13e6e]
    0021e652lea r14, [rcx+32768]
    0021e659mov esi, [rsi+4*rdx]
    0021e65cadd rax, 4
    0021e660add [rbx+1088], rax
    0021e667mov [r15], rcx
    0021e66amov rdi, [rbx+1048]
    0021e671lea r11, [8*rsi]
    0021e679lea rax, [rcx+8*rax]
    0021e67dmov [rcx+24], r12l
    0021e681mov r12, r11
    0021e684mov [rcx], 0
    0021e68bneg r12
    0021e68emov [rcx+16], rdi
    0021e692movups [rax], x0
    0021e695add rax, r11
    0021e698lea rdx, [rax+r11]
    0021e69ccmp r14, rdx
    0021e69fjb 0x21e6e0
    0021e6a1mov r8, rsi
    0021e6a4mov rdi, rax
    0021e6a7shl r8, 4
    0021e6abnop [rax+rax]
    0021e6b6nop [rax+rax]
    0021e6c0
    0021e6c0loc_21e6c0:
    0021e6c0mov r10, rdi
    0021e6c3mov rax, rdx
    0021e6c6add rdx, r11
    0021e6c9mov [rdi], 0
    0021e6d0sub r10, r11
    0021e6d3mov [rdi+8], r10
    0021e6d7lea rdi, [r8+r10]
    0021e6dbcmp r14, rdx
    0021e6dejae 0x21e6c0
    0021e6e0
    0021e6e0loc_21e6e0:
    0021e6e0add rax, r12
    0021e6e3mov [rcx+8], rax
    0021e6e7jmp 0x21e3db
    0021e6ec
    0021e6ec 0f 1f 40 00 ..@.
    0021e6f0
    0021e6f0loc_21e6f0:
    0021e6f0mov rdi, [rsp+24]
    0021e6f5lea rax, [rip+0x15a654]
    0021e6fcmov rax, [rax+8*rdi]
    0021e700test rax, rax
    0021e703jne 0x21e53b
    0021e709jmp 0x21e5d5
    0021e70e
    0021e70eloc_21e70e:
    0021e70emov rdx, [rsi]
    0021e711mov rdi, rbx
    0021e714mov [rax], rdx
    0021e717mov edx, r12l
    0021e71amov rax, [r15+256]
    0021e721mov [rsi], rax
    0021e724mov [r15+256], rsi
    0021e72bcall fn_21d840
    0021e730mov rdi, r14
    0021e733call fn_f47c0
    0021e738test eax, eax
    0021e73ajne 0x21e59d
    0021e740mov rax, [rsp+16]
    0021e745xor ecx, ecx
    0021e747mov edx, r12l
    0021e74amov rdi, rbx
    0021e74dlea rsi, [rbx+rax-256]
    0021e755call fn_21de80
    0021e75amov rdx, rax
    0021e75dmov rax, [rip+0x57884]
    0021e764mov rax, [rax]
    0021e768add [rax+360], rdx
    0021e76fmov rcx, [r15]
    0021e772test rcx, rcx
    0021e775jne 0x21e3c9
    0021e77bjmp 0x21e5d5
    0021e780
    0021e780loc_21e780:
    0021e780test rax, rax
    0021e783jne 0x21e7dc
    0021e785mov rdi, r14
    0021e788call fn_f47c0
    0021e78dtest eax, eax
    0021e78fjne 0x21e59d
    0021e795
    0021e795loc_21e795:
    0021e795xor eax, eax
    0021e797jmp 0x21e4a7
    0021e79c
    0021e79cloc_21e79c:
    0021e79cxor esi, esi
    0021e79emov edi, 32768
    0021e7a3call caml_mem_map
    0021e7a8mov rcx, rax
    0021e7abmov rax, [rip+0x15a656]
    0021e7b2test rcx, rcx
    0021e7b5je 0x21e780
    0021e7b7mov [rcx], rax
    0021e7bamov [rcx+16], 0
    0021e7c2mov [rip+0x15a63f], rcx
    0021e7c9jmp 0x21e5f5
    0021e7ce
    0021e7celoc_21e7ce:
    0021e7cemov esi, eax
    0021e7d0lea rdi, [rip+0x10d38]
    0021e7d7call caml_plat_fatal_error
    0021e7dc
    0021e7dcloc_21e7dc:
    0021e7dcmov rcx, rax
    0021e7dfjmp 0x21e5f5
    0021e380
    0021e7e4
    0021e7e4 // align 0x20
    0021e800
    0021e800caml_sweep:
    0021e800push r14
    0021e802push r13
    0021e804push r12
    0021e806push rbp
    0021e807mov rbp, rdi
    0021e80apush rbx
    0021e80bsub rsp, 48
    0021e80fmov r12, [0x28]
    0021e818mov [rsp+40], r12
    0021e81dmov r12, rsi
    0021e820nop [rax+rax]
    0021e82bnop
    0021e82ctest r12, r12
    0021e82fjle 0x21e871
    0021e831mov r13l, [rbp+1040]
    0021e838cmp r13l, 31
    0021e83cja 0x21e8b6
    0021e83emov eax, r13l
    0021e841mov ecx, 1
    0021e846mov edx, r13l
    0021e849mov rdi, rbp
    0021e84clea r14, [8*rax+512]
    0021e854lea rsi, [rbp+r14]
    0021e859call fn_21de80
    0021e85esub r12, rax
    0021e861mov rbx, rax
    0021e864test r12, r12
    0021e867jg 0x21e940
    0021e86dmov rax, [rsp+40]
    0021e872sub rax, [0x28]
    0021e87bjne 0x21eacf
    0021e881add rsp, 48
    0021e885mov rax, r12
    0021e888pop rbx
    0021e889pop rbp
    0021e88apop r12
    0021e88cpop r13
    0021e88epop r14
    0021e890ret
    0021e891db 0x5d
    0021e892pop r14
    0021e894ret
    0021e895
    0021e895 0f 1f 00 ...
    0021e898
    0021e898loc_21e898:
    0021e898mov rax, [rbp+1024]
    0021e89fmov [rbx+8], rax
    0021e8a3mov [rbp+1024], rbx
    0021e8aa
    0021e8aaloc_21e8aa:
    0021e8aaadd r13, 1
    0021e8aesub r12, r13
    0021e8b1test r12, r12
    0021e8b4jle 0x21e871
    0021e8b6
    0021e8b6loc_21e8b6:
    0021e8b6mov rbx, [rbp+1032]
    0021e8bdtest rbx, rbx
    0021e8c0je 0x21e98c
    0021e8c6mov rax, [rbx+8]
    0021e8camov [rbp+1032], rax
    0021e8d1mov rax, [rbx+16]
    0021e8d5mov r13, rax
    0021e8d8mov rdx, rax
    0021e8dbshr r13, 10
    0021e8dfand edx, 768
    0021e8e5cmp [rip+0x159ae4], rdx
    0021e8ecjne 0x21e898
    0021e8eemovzx eax, al
    0021e8f1cmp eax, 255
    0021e8f6je 0x21e970
    0021e8f8
    0021e8f8loc_21e8f8:
    0021e8f8mov rax, [rbp+1096]
    0021e8ffmov rdi, rbx
    0021e902sub rax, 3
    0021e906sub rax, r13
    0021e909mov [rbp+1096], rax
    0021e910mov rax, [rbp+1048]
    0021e917mov rdx, [rax+144]
    0021e91elea rdx, [r13+rdx+3]
    0021e923mov [rax+144], rdx
    0021e92asub [rbp+1112], 1
    0021e932call fn_f4370
    0021e937jmp 0x21e8aa
    0021e93c
    0021e93c 0f 1f 40 00 ..@.
    0021e940
    0021e940loc_21e940:
    0021e940lea rsi, [rbp+r14+256]
    0021e948mov ecx, 1
    0021e94dmov edx, r13l
    0021e950mov rdi, rbp
    0021e953call fn_21de80
    0021e958sub r12, rax
    0021e95badd rbx, rax
    0021e95ejne 0x21e830
    0021e964add [rbp+1040], 1
    0021e96bjmp 0x21e830
    0021e970
    0021e970loc_21e970:
    0021e970mov rax, [rbx+24]
    0021e974mov rax, [rax+8]
    0021e978test rax, rax
    0021e97bje 0x21e8f8
    0021e981lea rdi, [rbx+24]
    0021e985call rax
    0021e987jmp 0x21e8f8
    0021e98c
    0021e98cloc_21e98c:
    0021e98cmov rax, [rip+0x56fc5]
    0021e993cmp [rax+56], 0
    0021e998je 0x21e871
    0021e99etest r12, r12
    0021e9a1jle 0x21e871
    0021e9a7mov [rsp+32], 0
    0021e9b0xor r13l, r13l
    0021e9b3xor ecx, ecx
    0021e9b5xor edx, edx
    0021e9b7pxor x0, x0
    0021e9bbxor esi, esi
    0021e9bdmov rbx, rsp
    0021e9c0movaps [rsp], x0
    0021e9c4movaps [rsp+16], x0
    0021e9c9nop [rax]
    0021e9d0
    0021e9d0loc_21e9d0:
    0021e9d0mov r11, [rbp+8*r13]
    0021e9d5test r11, r11
    0021e9d8je 0x21ea12
    0021e9damov r14l, r13l
    0021e9ddnop [rax]
    0021e9e0
    0021e9e0loc_21e9e0:
    0021e9e0mov [rsp], rsi
    0021e9e4mov rdi, r11
    0021e9e7mov esi, r14l
    0021e9eamov [rsp+16], rdx
    0021e9efmov rdx, rbx
    0021e9f2mov [rsp+24], rcx
    0021e9f7call fn_21d740
    0021e9fcmov r11, [r11]
    0021e9ffmov rsi, [rsp]
    0021ea03mov rdx, [rsp+16]
    0021ea08mov rcx, [rsp+24]
    0021ea0dtest r11, r11
    0021ea10jne 0x21e9e0
    0021ea12
    0021ea12loc_21ea12:
    0021ea12mov r11, [rbp+8*r13+256]
    0021ea1atest r11, r11
    0021ea1dje 0x21ea62
    0021ea1fmov r14l, r13l
    0021ea22nop [rax+rax]
    0021ea2dnop [rax]
    0021ea30
    0021ea30loc_21ea30:
    0021ea30mov [rsp], rsi
    0021ea34mov rdi, r11
    0021ea37mov esi, r14l
    0021ea3amov [rsp+16], rdx
    0021ea3fmov rdx, rbx
    0021ea42mov [rsp+24], rcx
    0021ea47call fn_21d740
    0021ea4cmov r11, [r11]
    0021ea4fmov rsi, [rsp]
    0021ea53mov rdx, [rsp+16]
    0021ea58mov rcx, [rsp+24]
    0021ea5dtest r11, r11
    0021ea60jne 0x21ea30
    0021ea62
    0021ea62loc_21ea62:
    0021ea62add r13, 1
    0021ea66cmp r13, 32
    0021ea6ajne 0x21e9d0
    0021ea70xor eax, eax
    0021ea72lea rdi, [rip+0x12877]
    0021ea79call caml_gc_log
    0021ea7emov rax, [rbp+1024]
    0021ea85xor ecx, ecx
    0021ea87xor esi, esi
    0021ea89test rax, rax
    0021ea8cje 0x21eaba
    0021ea8enop [rax+rax]
    0021ea99nop [rax]
    0021eaa0
    0021eaa0loc_21eaa0:
    0021eaa0mov rdx, [rax+16]
    0021eaa4mov rax, [rax+8]
    0021eaa8add rcx, 2
    0021eaacshr rdx, 10
    0021eab0lea rsi, [rsi+rdx+3]
    0021eab5test rax, rax
    0021eab8jne 0x21eaa0
    0021eaba
    0021eabaloc_21eaba:
    0021eabaxor edx, edx
    0021eabclea rdi, [rip+0x12865]
    0021eac3xor eax, eax
    0021eac5call caml_gc_log
    0021eacajmp 0x21e871
    0021eacf
    0021eacfloc_21eacf:
    0021eacfcall fn_f4590
    0021e800
    0021ead4
    0021ead4 // align 0x10
    0021eae0
    0021eae0caml_heap_size:
    0021eae0mov rax, [rdi+1056]
    0021eae7add rax, [rdi+1096]
    0021eaeeshl rax, 3
    0021eaf2ret
    0021eaf3db 0xc1
    0021eaf4loopne 0x21eaf9
    0021eaf6ret
    0021eae0
    0021eaf7
    0021eaf7 // align 0x10
    0021eb00
    0021eb00caml_top_heap_words:
    0021eb00mov rax, [rdi+1064]
    0021eb07add rax, [rdi+1104]
    0021eb0eret
    0021eb0fdb 0x04
    0021eb10add [rax], al
    0021eb12ret
    0021eb00
    0021eb13
    0021eb13 // align 0x10
    0021eb20
    0021eb20caml_heap_blocks:
    0021eb20mov rax, [rdi+1080]
    0021eb27add rax, [rdi+1112]
    0021eb2eret
    0021eb2fdb 0x04
    0021eb30add [rax], al
    0021eb32ret
    0021eb20
    0021eb33
    0021eb33 // align 0x10
    0021eb40
    0021eb40caml_redarken_pool:
    0021eb40push r15
    0021eb42lea r15, [rdi+32768]
    0021eb49push r14
    0021eb4bpush r13
    0021eb4dpush r12
    0021eb4fmov r12, rdx
    0021eb52lea rdx, [rip+0x13943]
    0021eb59push rbp
    0021eb5apush rbx
    0021eb5bsub rsp, 8
    0021eb5fmov eax, [rdi+24]
    0021eb62movzx edx, [rdx+rax]
    0021eb66lea rbx, [rdi+8*rdx+32]
    0021eb6blea rdx, [rip+0x1394a]
    0021eb72mov r14l, [rdx+4*rax]
    0021eb76shl r14, 3
    0021eb7alea r13, [rbx+r14]
    0021eb7ecmp r15, r13
    0021eb81jb 0x21ebcb
    0021eb83mov rbp, rsi
    0021eb86add rbx, 8
    0021eb8anop
    0021eb8cmov rax, [rbx-8]
    0021eb90
    0021eb90loc_21eb90:
    0021eb90test rax, rax
    0021eb93je 0x21ebc0
    0021eb95and eax, 768
    0021eb9acmp [rip+0x15981b], rax
    0021eba1jne 0x21ebc0
    0021eba3xor edx, edx
    0021eba5mov rsi, rbx
    0021eba8mov rdi, r12
    0021ebabcall rbp
    0021ebadnop [rax+rax]
    0021ebb8nop [rax]
    0021ebbcadd r13, r14
    0021ebbfadd rbx, r14
    0021ebc2cmp r15, r13
    0021ebc5jae 0x21eb90
    0021ebc7add rsp, 8
    0021ebcb
    0021ebcbloc_21ebcb:
    0021ebcbpop rbx
    0021ebccpop rbp
    0021ebcdpop r12
    0021ebcfpop r13
    0021ebd1pop r14
    0021ebd3pop r15
    0021ebd5ret
    0021ebd6db 0x5e
    0021ebd7pop r15
    0021ebd9ret
    0021eb40
    0021ebda
    0021ebda // align 0x10
    0021ebe0
    0021ebe0caml_collect_heap_stats_sample:
    0021ebe0movdqu x0, [rdi+1056]
    0021ebe8movups [rsi], x0
    0021ebebmovdqu x0, [rdi+1072]
    0021ebf3movups [rsi+16], x0
    0021ebf7movdqu x0, [rdi+1088]
    0021ebffmovups [rsi+32], x0
    0021ec03movdqu x0, [rdi+1104]
    0021ec0bmovups [rsi+48], x0
    0021ec0fret
    0021ec10db 0x11
    0021ec11xor bl, r8b
    0021ebe0
    0021ec14
    0021ec14 // align 0x10
    0021ec20
    0021ec20caml_accum_orphan_heap_stats:
    0021ec20push rbp
    0021ec21lea rbp, [rip+0x15a1b4]
    0021ec28push rbx
    0021ec29mov rbx, rdi
    0021ec2cmov rdi, rbp
    0021ec2fsub rsp, 8
    0021ec33call fn_f4710
    0021ec38test eax, eax
    0021ec3ajne 0x21ec62
    0021ec3cmov rdi, rbx
    0021ec3flea rsi, [rip+0x15a1c6]
    0021ec46call caml_accum_heap_stats
    0021ec4bmov rdi, rbp
    0021ec4ecall fn_f47c0
    0021ec53test eax, eax
    0021ec55jne 0x21ec70
    0021ec57add rsp, 8
    0021ec5bpop rbx
    0021ec5cpop rbp
    0021ec5dret
    0021ec5emov esi, eax
    0021ec60lea rdi, [rip+0x108a4]
    0021ec67call caml_plat_fatal_error
    0021ec6cmov esi, eax
    0021ec6elea rdi, [rip+0x108a1]
    0021ec75call caml_plat_fatal_error
    0021ec7adb 0x52
    0021ec7bint 255
    0021ec7ddb 0xff
    0021ec20
    0021ec7e
    0021ec7e // align 0x10
    0021ec80
    0021ec80caml_atom:
    0021ec80mov edi, edi
    0021ec82lea rax, [rip+0x12f73]
    0021ec89lea rax, [rax+8*rdi+8]
    0021ec8eret
    0021ec8fdb 0x44
    0021ec90clc
    0021ec91or bl, al
    0021ec80
    0021ec93
    0021ec93 // align 0x10
    0021eca0
    0021eca0caml_init_major_heap:
    0021eca0ret
    0021eca1db 0x0f
    0021eca2db 0x1e
    0021eca3cli
    0021eca4ret
    0021eca0
    0021eca5
    0021eca5 // align 0x10
    0021ecb0
    0021ecb0caml_verify_begin:
    0021ecb0sub rsp, 8
    0021ecb4mov edi, 40
    0021ecb9call caml_stat_alloc
    0021ecbemov [rax], 0
    0021ecc5mov [rax+8], 0
    0021eccdmov [rax+16], 0
    0021ecd5mov [rax+24], 0
    0021ecddmov [rax+32], 0
    0021ece5add rsp, 8
    0021ece9ret
    0021eceadb 0x83
    0021ecebdb 0xc4
    0021ececor bl, al
    0021ecb0
    0021ecee
    0021ecee // align 0x10
    0021ecf0
    0021ecf0caml_verify_heap_from_stw:
    0021ecf0push r15
    0021ecf2push r14
    0021ecf4push r13
    0021ecf6push r12
    0021ecf8push rbp
    0021ecf9mov rbp, rdi
    0021ecfcmov edi, 40
    0021ed01push rbx
    0021ed02sub rsp, 8
    0021ed06call caml_stat_alloc
    0021ed0bmov rcx, rbp
    0021ed0emov r8l, 1
    0021ed14xor esi, esi
    0021ed16mov [rax], 0
    0021ed1dmov rbx, rax
    0021ed20mov rdx, rax
    0021ed23lea rbp, [rip-4334]
    0021ed2amov [rax+8], 0
    0021ed32mov rdi, rbp
    0021ed35lea r12, [rbx+24]
    0021ed39mov [rax+16], 0
    0021ed41mov [rax+24], 0
    0021ed49mov [rax+32], 0
    0021ed51call caml_do_roots
    0021ed56mov rsi, rbx
    0021ed59mov rdi, rbp
    0021ed5ccall caml_scan_global_roots
    0021ed61nop [rax+rax]
    0021ed6cmov eax, [rbx+12]
    0021ed6ftest eax, eax
    0021ed71je 0x21ee60
    0021ed77sub eax, 1
    0021ed7amov rdx, [rbx]
    0021ed7dmovsxd rcx, eax
    0021ed80mov [rbx+12], eax
    0021ed83mov rbp, [rdx+8*rcx]
    0021ed87test bpl, 1
    0021ed8bjne 0x21ed73
    0021ed8dmovzx eax, [rbp-8]
    0021ed91cmp al, -7
    0021ed93je 0x21ee48
    0021ed99mov rsi, rbp
    0021ed9cmov rdi, r12
    0021ed9fcall caml_addrmap_insert_pos
    0021eda4cmp [rax], 0
    0021eda8jne 0x21ed70
    0021edaamov [rax], 1
    0021edb1mov rax, [rbp-8]
    0021edb5lea r15, [rbp-8]
    0021edb9not rax
    0021edbctest ah, 3
    0021edbfje 0x21ed70
    0021edc1add [rbx+16], 1
    0021edc6movzx eax, [rbp-8]
    0021edcacmp al, -11
    0021edccje 0x21ee90
    0021edd2movzx eax, [rbp-8]
    0021edd6cmp al, -6
    0021edd8ja 0x21ed70
    0021eddamovzx eax, [rbp-8]
    0021eddexor r13l, r13l
    0021ede1cmp al, -9
    0021ede3jne 0x21ee1e
    0021ede5mov r13, [rbp+8]
    0021ede9shl r13, 31
    0021ededshr r13, 32
    0021edf1jmp 0x21ee1e
    0021edf3db 0xed
    0021edf4and bl, ch
    0021edf6db 0x27
    0021edf7
    0021edf7 66 0f 1f 84 00 00 00 00 00 f........
    0021ee00
    0021ee00loc_21ee00:
    0021ee00movsxd rdx, [rbx+12]
    0021ee04mov rdi, [rbx]
    0021ee07cmp edx, [rbx+8]
    0021ee0aje 0x21eec0
    0021ee10
    0021ee10loc_21ee10:
    0021ee10lea eax, [rdx+1]
    0021ee13mov [rbx+12], eax
    0021ee16mov [rdi+8*rdx], r14
    0021ee1a
    0021ee1aloc_21ee1a:
    0021ee1aadd r13l, 1
    0021ee1e
    0021ee1eloc_21ee1e:
    0021ee1emov rax, [r15]
    0021ee21movsxd rdx, r13l
    0021ee24shr rax, 10
    0021ee28cmp rdx, rax
    0021ee2bjae 0x21ed70
    0021ee31lea rax, [rbp+8*rdx]
    0021ee36mov r14, [rax]
    0021ee39test r14b, 1
    0021ee3djne 0x21ee1a
    0021ee3fjmp 0x21ee00
    0021ee41
    0021ee41 0f 1f 80 00 00 00 00 .......
    0021ee48
    0021ee48loc_21ee48:
    0021ee48mov rax, [rbp-8]
    0021ee4cshr rax, 10
    0021ee50shl rax, 3
    0021ee54sub rbp, rax
    0021ee57jmp 0x21ed9d
    0021ee5c
    0021ee5c 0f 1f 40 00 ..@.
    0021ee60
    0021ee60loc_21ee60:
    0021ee60mov rdi, r12
    0021ee63call caml_addrmap_clear
    0021ee68mov rdi, [rbx]
    0021ee6bcall caml_stat_free
    0021ee70add rsp, 8
    0021ee74mov rdi, rbx
    0021ee77pop rbx
    0021ee78pop rbp
    0021ee79pop r12
    0021ee7bpop r13
    0021ee7dpop r14
    0021ee7fpop r15
    0021ee81jmp 0x216690
    0021ee86
    0021ee86 66 2e 0f 1f 84 00 00 00 00 00 f.........
    0021ee90
    0021ee90loc_21ee90:
    0021ee90mov rcx, [rbp]
    0021ee94cmp rcx, 1
    0021ee98je 0x21ed70
    0021ee9esub rcx, 1
    0021eea2xor r8l, r8l
    0021eea5mov rdx, rbx
    0021eea8xor esi, esi
    0021eeaalea rdi, [rip-4817]
    0021eeb1call caml_scan_stack
    0021eeb6jmp 0x21ed70
    0021eebb
    0021eebb 0f 1f 44 00 00 ..D..
    0021eec0
    0021eec0loc_21eec0:
    0021eec0lea eax, [rdx+rdx+100]
    0021eec4mov [rbx+8], eax
    0021eec7cdqe
    0021eec9lea rsi, [8*rax]
    0021eed1call caml_stat_resize
    0021eed6movsxd rdx, [rbx+12]
    0021eedamov [rbx], rax
    0021eeddmov rdi, rax
    0021eee0jmp 0x21ee10
    0021ecf0
    0021eee5
    0021eee5 // align 0x20
    0021ef00
    0021ef00caml_compact_heap:
    0021ef00push r15
    0021ef02lea rdi, [rip+0x1054c]
    0021ef09xor eax, eax
    0021ef0bmov r15l, esi
    0021ef0epush r14
    0021ef10push r13
    0021ef12push r12
    0021ef14push rbp
    0021ef15push rbx
    0021ef16sub rsp, 72
    0021ef1amov [rsp+32], rdx
    0021ef1fcall caml_gc_log
    0021ef24mov edi, 44
    0021ef29call caml_ev_begin
    0021ef2ecmp r15l, 1
    0021ef32je 0x21ef40
    0021ef34mov edi, r15l
    0021ef37call caml_enter_global_barrier
    0021ef3cmov edi, 45
    0021ef41mov r14l, 1
    0021ef47xor ebp, ebp
    0021ef49call caml_ev_begin
    0021ef4emov rax, [rip+0x5708f]
    0021ef55mov rax, [rax]
    0021ef59mov [rsp+60], r15l
    0021ef5emov rbx, [rax+280]
    0021ef65lea r12, [rbx+520]
    0021ef6cmov [rsp+40], rbx
    0021ef71mov [rsp+48], r12
    0021ef76mov r13, r12
    0021ef79nop [rax]
    0021ef7cmov rax, [r13]
    0021ef80
    0021ef80loc_21ef80:
    0021ef80test rax, rax
    0021ef83je 0x21f226
    0021ef89xor edx, edx
    0021ef8bnop
    0021ef8cmov rax, [rax]
    0021ef8fadd edx, 1
    0021ef92test rax, rax
    0021ef95jne 0x21ef90
    0021ef97movsxd rdx, edx
    0021ef9alea rdi, [8*rdx]
    0021efa2call caml_stat_alloc_noexc
    0021efa7mov r11, rax
    0021efaatest rax, rax
    0021efadje 0x21f409
    0021efb3mov r8, [r13]
    0021efb7test r8, r8
    0021efbaje 0x21f226
    0021efc0lea rax, [rip+0x134d5]
    0021efc7xor r9l, r9l
    0021efcaxor r10l, r10l
    0021efcdmovzx eax, [rax+r14]
    0021efd2lea r12, [8*rax+32]
    0021efdalea rax, [rip+0x134db]
    0021efe1mov ebx, [rax+4*r14]
    0021efe5shl rbx, 3
    0021efe9nop [rax]
    0021efeclea rdx, [r8+r12]
    0021eff0
    0021eff0loc_21eff0:
    0021eff0movsxd rax, r10l
    0021eff3lea rdi, [r8+32768]
    0021effalea rsi, [r11+8*rax]
    0021effelea rcx, [rdx+rbx]
    0021f002mov [rsi], 0
    0021f009cmp rdi, rcx
    0021f00cjae 0x21f02e
    0021f00ejmp 0x21f060
    0021f010db 0x73
    0021f011sbb al, -21
    0021f013db 0x4c
    0021f014
    0021f014 66 66 2e 0f 1f 84 00 00 00 00 00 90 ff..........
    0021f020
    0021f020loc_21f020:
    0021f020add [rsi], 1
    0021f023
    0021f023loc_21f023:
    0021f023add rcx, rbx
    0021f026add rdx, rbx
    0021f029cmp rdi, rcx
    0021f02cjb 0x21f060
    0021f02e
    0021f02eloc_21f02e:
    0021f02emov rax, [rdx]
    0021f031test rax, rax
    0021f034je 0x21f020
    0021f036and eax, 768
    0021f03bcmp [rip+0x159386], rax
    0021f042jne 0x21f023
    0021f044add rcx, rbx
    0021f047add [rsi+4], 1
    0021f04badd r9l, 1
    0021f04fadd rdx, rbx
    0021f052cmp rdi, rcx
    0021f055jae 0x21f02e
    0021f057nop [rax+rax]
    0021f060
    0021f060loc_21f060:
    0021f060mov r8, [r8]
    0021f063add r10l, 1
    0021f067test r8, r8
    0021f06ajne 0x21eff0
    0021f06ctest r9l, r9l
    0021f06fje 0x21f226
    0021f075mov r15, [r13]
    0021f079jle 0x21f431
    0021f07ftest r15, r15
    0021f082je 0x21f431
    0021f088xor eax, eax
    0021f08axor ecx, ecx
    0021f08cjmp 0x21f0a5
    0021f08e
    0021f08e 66 66 ff
    0021f090 2e 0f 1f 84 00 00 00 00 00 0f 1f 80 00 00 00 00 ................
    0021f0a0
    0021f0a0loc_21f0a0:
    0021f0a0cmp ecx, r9l
    0021f0a3jge 0x21f0c0
    0021f0a5
    0021f0a5loc_21f0a5:
    0021f0a5movsxd rdx, eax
    0021f0a8mov rsi, r15
    0021f0abmov r15, [r15]
    0021f0aeadd eax, 1
    0021f0b1lea rdx, [r11+8*rdx]
    0021f0b5add ecx, [rdx]
    0021f0b7sub r9l, [rdx+4]
    0021f0bbtest r15, r15
    0021f0bejne 0x21f0a0
    0021f0c0
    0021f0c0loc_21f0c0:
    0021f0c0mov rdi, r11
    0021f0c3mov [rsp], rsi
    0021f0c7call caml_stat_free
    0021f0ccmov rsi, [rsp]
    0021f0d0mov [rsi], 0
    0021f0d7test r15, r15
    0021f0daje 0x21f226
    0021f0e0mov [rsp+16], r12
    0021f0e5mov rax, rbp
    0021f0e8mov rbp, r13
    0021f0ebmov r13, rbx
    0021f0eemov [rsp+24], r14
    0021f0f3mov r14, r15
    0021f0f6nop [rax+rax]
    0021f100
    0021f100loc_21f100:
    0021f100mov rsi, [rsp+16]
    0021f105lea rcx, [r14+32768]
    0021f10clea r15, [r14+rsi]
    0021f110lea r12, [r15+r13]
    0021f114cmp rcx, r12
    0021f117jb 0x21f1d9
    0021f11dmov [rsp], r14
    0021f121mov r14, rcx
    0021f124mov [rsp+8], rax
    0021f129jmp 0x21f14c
    0021f12b
    0021f12b 0f 1f 44 00 00 ..D..
    0021f130
    0021f130loc_21f130:
    0021f130cmp [rip+0x159299], rax
    0021f137je 0x21f1f0
    0021f13d
    0021f13dloc_21f13d:
    0021f13dadd r12, r13
    0021f140add r15, r13
    0021f143cmp r14, r12
    0021f146jb 0x21f1d0
    0021f14c
    0021f14cloc_21f14c:
    0021f14cmov rbx, [r15]
    0021f14ftest rbx, rbx
    0021f152je 0x21f13d
    0021f154mov rax, rbx
    0021f157and eax, 768
    0021f15ccmp [rip+0x159265], rax
    0021f163jne 0x21f130
    0021f165mov rax, [rbp]
    0021f169mov rdi, [rax+8]
    0021f16dmov rdx, [rdi+8]
    0021f171mov [rax+8], rdx
    0021f175test rdx, rdx
    0021f178jne 0x21f192
    0021f17amov rdx, [rax]
    0021f17dmov [rbp], rdx
    0021f181mov rdx, [rbp+256]
    0021f188mov [rax], rdx
    0021f18bmov [rbp+256], rax
    0021f192
    0021f192loc_21f192:
    0021f192mov rax, rbx
    0021f195mov rsi, r15
    0021f198and bh, 252
    0021f19badd r12, r13
    0021f19eshr rax, 10
    0021f1a2lea rdx, [8*rax+8]
    0021f1aacall fn_f47d0
    0021f1afor rbx, [rip+0x15920a]
    0021f1b6mov rdi, rax
    0021f1b9mov [r15], rbx
    0021f1bcadd rdi, 8
    0021f1c0mov [r15+8], rdi
    0021f1c4add r15, r13
    0021f1c7cmp r14, r12
    0021f1cajae 0x21f14c
    0021f1ccnop [rax]
    0021f1d0
    0021f1d0loc_21f1d0:
    0021f1d0mov r14, [rsp]
    0021f1d4mov rax, [rsp+8]
    0021f1d9
    0021f1d9loc_21f1d9:
    0021f1d9mov rcx, [r14]
    0021f1dcmov [r14], rax
    0021f1dfmov rax, r14
    0021f1e2test rcx, rcx
    0021f1e5je 0x21f21b
    0021f1e7mov r14, rcx
    0021f1eajmp 0x21f100
    0021f1ef
    0021f1ef 90 .
    0021f1f0
    0021f1f0loc_21f1f0:
    0021f1f0movzx ebx, bl
    0021f1f3cmp ebx, 255
    0021f1f9jne 0x21f13d
    0021f1ffmov rax, [r15+8]
    0021f203mov rax, [rax+8]
    0021f207test rax, rax
    0021f20aje 0x21f13d
    0021f210lea rdi, [r15+8]
    0021f214call rax
    0021f216jmp 0x21f13d
    0021f21b
    0021f21bloc_21f21b:
    0021f21bmov r13, rbp
    0021f21emov rbp, r14
    0021f221mov r14, [rsp+24]
    0021f226
    0021f226loc_21f226:
    0021f226add r14, 1
    0021f22aadd r13, 8
    0021f22ecmp r14, 32
    0021f232jne 0x21ef80
    0021f238
    0021f238loc_21f238:
    0021f238mov r15l, [rsp+60]
    0021f23dmov edi, 45
    0021f242mov rbx, [rsp+40]
    0021f247mov r12, [rsp+48]
    0021f24ccall caml_ev_end
    0021f251cmp r15l, 1
    0021f255je 0x21f25f
    0021f257mov edi, r15l
    0021f25acall caml_enter_global_barrier
    0021f25f
    0021f25floc_21f25f:
    0021f25fmov edi, 46
    0021f264lea r13, [rip-6427]
    0021f26bcall caml_ev_begin
    0021f270mov rax, [rip+0x56d71]
    0021f277xor edx, edx
    0021f279xor esi, esi
    0021f27bmov r8l, 1
    0021f281mov rdi, r13
    0021f284mov rcx, [rax]
    0021f288call caml_do_roots
    0021f28dmov rax, [rip+0x56d54]
    0021f294xor esi, esi
    0021f296xor edx, edx
    0021f298mov r8l, 1
    0021f29emov rdi, r13
    0021f2a1mov rcx, [rax]
    0021f2a5call caml_memprof_scan_roots
    0021f2aamov rsi, [rip+0x56d37]
    0021f2b1mov rax, [rsp+32]
    0021f2b6mov rsi, [rsi]
    0021f2bacmp [rax], rsi
    0021f2bdje 0x21f46b
    0021f2c3
    0021f2c3loc_21f2c3:
    0021f2c3lea r13, [rbx+768]
    0021f2canop [rax+rax]
    0021f2d0
    0021f2d0loc_21f2d0:
    0021f2d0mov rdi, [r12]
    0021f2d4add r12, 8
    0021f2d8call fn_21ddc0
    0021f2ddmov rdi, [r12+248]
    0021f2e5call fn_21ddc0
    0021f2eacmp r12, r13
    0021f2edjne 0x21f2d0
    0021f2efmov r12, [rbx+1032]
    0021f2f6test r12, r12
    0021f2f9jne 0x21f30a
    0021f2fbjmp 0x21f331
    0021f2fd
    0021f2fd 0f 1f 00 ...
    0021f300
    0021f300loc_21f300:
    0021f300mov r12, [r12+8]
    0021f305test r12, r12
    0021f308je 0x21f331
    0021f30a
    0021f30aloc_21f30a:
    0021f30amov rax, [r12+16]
    0021f30fand eax, 768
    0021f314cmp [rip+0x1590ad], rax
    0021f31bjne 0x21f300
    0021f31dlea rdi, [r12+16]
    0021f322call fn_21dca0
    0021f327mov r12, [r12+8]
    0021f32ctest r12, r12
    0021f32fjne 0x21f30a
    0021f331
    0021f331loc_21f331:
    0021f331mov rax, [rip+0x56cb0]
    0021f338mov rax, [rax]
    0021f33cmov r11, [rax+168]
    0021f343mov rdi, r11
    0021f346call fn_21d9e0
    0021f34blea rdi, [r11+8]
    0021f34fcall fn_21d9e0
    0021f354mov edi, 46
    0021f359call caml_ev_end
    0021f35ecmp r15l, 1
    0021f362jne 0x21f439
    0021f368mov edi, 47
    0021f36dcall caml_ev_begin
    0021f372test rbp, rbp
    0021f375je 0x21f4d7
    0021f37b
    0021f37bloc_21f37b:
    0021f37blea r12, [rip+0x1311e]
    0021f382
    0021f382loc_21f382:
    0021f382mov rdi, rbp
    0021f385mov rbp, [rbp]
    0021f389mov esi, 32768
    0021f38emov eax, [rdi+24]
    0021f391sub [rbx+1056], 4096
    0021f39cmovzx eax, [r12+rax]
    0021f3a1add rax, 4
    0021f3a5sub [rbx+1088], rax
    0021f3accall caml_mem_unmap
    0021f3b1test rbp, rbp
    0021f3b4jne 0x21f382
    0021f3b6mov edi, 47
    0021f3bbcall caml_ev_end
    0021f3c0cmp r15l, 1
    0021f3c4jne 0x21f45e
    0021f3ca
    0021f3caloc_21f3ca:
    0021f3camov rsi, [rip+0x56c17]
    0021f3d1mov rax, [rsp+32]
    0021f3d6mov rsi, [rsi]
    0021f3dacmp [rax], rsi
    0021f3ddje 0x21f47a
    0021f3e3
    0021f3e3loc_21f3e3:
    0021f3e3lea rdi, [rip+0x10085]
    0021f3eaxor eax, eax
    0021f3eccall caml_gc_log
    0021f3f1add rsp, 72
    0021f3f5mov edi, 44
    0021f3fapop rbx
    0021f3fbpop rbp
    0021f3fcpop r12
    0021f3fepop r13
    0021f400pop r14
    0021f402pop r15
    0021f404jmp 0x21cae0
    0021f409
    0021f409loc_21f409:
    0021f409mov esi, r14l
    0021f40clea rdi, [rip+0x11f4d]
    0021f413xor eax, eax
    0021f415add r14, 1
    0021f419call caml_gc_log
    0021f41eadd r13, 8
    0021f422cmp r14, 32
    0021f426jne 0x21ef80
    0021f42cjmp 0x21f238
    0021f431
    0021f431loc_21f431:
    0021f431mov rsi, r13
    0021f434jmp 0x21f0c0
    0021f439
    0021f439loc_21f439:
    0021f439mov edi, r15l
    0021f43ccall caml_enter_global_barrier
    0021f441mov edi, 47
    0021f446call caml_ev_begin
    0021f44btest rbp, rbp
    0021f44ejne 0x21f37b
    0021f454mov edi, 47
    0021f459call caml_ev_end
    0021f45e
    0021f45eloc_21f45e:
    0021f45emov edi, r15l
    0021f461call caml_enter_global_barrier
    0021f466jmp 0x21f3ca
    0021f46b
    0021f46bloc_21f46b:
    0021f46bxor esi, esi
    0021f46dmov rdi, r13
    0021f470call caml_scan_global_roots
    0021f475jmp 0x21f2c3
    0021f47a
    0021f47aloc_21f47a:
    0021f47alea rbp, [rip+0x15995f]
    0021f481mov rdi, rbp
    0021f484call fn_f4710
    0021f489mov esi, eax
    0021f48btest eax, eax
    0021f48djne 0x21f4e6
    0021f48fmov rbx, [rip+0x159972]
    0021f496test rbx, rbx
    0021f499je 0x21f4b0
    0021f49b
    0021f49bloc_21f49b:
    0021f49bmov rdi, rbx
    0021f49emov rbx, [rbx]
    0021f4a1mov esi, 32768
    0021f4a6call caml_mem_unmap
    0021f4abtest rbx, rbx
    0021f4aejne 0x21f49b
    0021f4b0
    0021f4b0loc_21f4b0:
    0021f4b0mov [rip+0x15994d], 0
    0021f4bbmov rdi, rbp
    0021f4becall fn_f47c0
    0021f4c3mov esi, eax
    0021f4c5test eax, eax
    0021f4c7jne 0x21f4f2
    0021f4c9lock add [rip+0x1598ee], 1
    0021f4d2jmp 0x21f3e3
    0021f4d7
    0021f4d7loc_21f4d7:
    0021f4d7mov edi, 47
    0021f4dccall caml_ev_end
    0021f4e1jmp 0x21f3ca
    0021f4e6
    0021f4e6loc_21f4e6:
    0021f4e6lea rdi, [rip+0x10022]
    0021f4edcall caml_plat_fatal_error
    0021f4f2
    0021f4f2loc_21f4f2:
    0021f4f2lea rdi, [rip+0x10021]
    0021f4f9call caml_plat_fatal_error
    0021ef00
    0021f4fe
    0021f4fe // align 0x10
    0021f500
    0021f500caml_cycle_heap_from_stw_single:
    0021f500movq x0, [rip+0x158ec4]
    0021f508mov rax, [rip+0x158eb5]
    0021f50fmovhps x0, [rip+0x158ea6]
    0021f516mov [rip+0x158eaf], rax
    0021f51dmovaps [rip+0x158e98], x0
    0021f524ret
    0021f525db 0x8e
    0021f526db 0x15
    0021f527add bl, al
    0021f500
    0021f529
    0021f529 // align 0x20
    0021f540
    0021f540caml_cycle_heap:
    0021f540push r13
    0021f542push r12
    0021f544mov r12, rdi
    0021f547push rbp
    0021f548lea rbp, [r12+512]
    0021f550push rbx
    0021f551sub rsp, 8
    0021f555mov rax, [rdi+1048]
    0021f55clea rdi, [rip+65313]
    0021f563mov esi, [rax+288]
    0021f569xor eax, eax
    0021f56bcall caml_gc_log
    0021f570mov rax, r12
    0021f573pxor x0, x0
    0021f577lea rdx, [r12+256]
    0021f57fnop [rax+rax]
    0021f58anop [rax+rax]
    0021f595nop [rax+rax]
    0021f5a0nop [rax+rax]
    0021f5abnop [rax+rax]
    0021f5b6nop [rax+rax]
    0021f5bcmovdqu x1, [rax]
    0021f5c0
    0021f5c0loc_21f5c0:
    0021f5c0movups [rax], x0
    0021f5c3add rax, 16
    0021f5c7movups [rax+496], x1
    0021f5cemovdqu x1, [rax+240]
    0021f5d6movups [rax+240], x0
    0021f5ddmovups [rax+752], x1
    0021f5e4cmp rax, rdx
    0021f5e7jne 0x21f5c0
    0021f5e9mov rax, [r12+1024]
    0021f5f1lea rbx, [rip+0x1597e4]
    0021f5f8mov [r12+1024], 0
    0021f604mov rdi, rbx
    0021f607mov [r12+1032], rax
    0021f60fcall fn_f4710
    0021f614mov r13l, eax
    0021f617test eax, eax
    0021f619jne 0x21f80d
    0021f61flea rdx, [rip+0x159826]
    0021f626mov rcx, rbp
    0021f629xor ebp, ebp
    0021f62blea r9, [rdx+256]
    0021f632nop [rax+rax]
    0021f63cmov rax, [rdx]
    0021f63fmov rdi, [r12+1048]
    0021f647test rax, rax
    0021f64aje 0x21f6a8
    0021f64cxor esi, esi
    0021f64enop [rax+rax]
    0021f659nop [rax+rax]
    0021f664nop [rax+rax]
    0021f66fnop [rax+rax]
    0021f67anop
    0021f67cmov r8, [rax]
    0021f67fmov [rdx], r8
    0021f682mov [rax+16], rdi
    0021f686mov r8, [rcx]
    0021f689mov [rax], r8
    0021f68cxchg [rcx], rax
    0021f68fmov rax, [rdx]
    0021f692add esi, 1
    0021f695test rax, rax
    0021f698jne 0x21f680
    0021f69amov rdi, [r12+1048]
    0021f6a2add ebp, esi
    0021f6a4mov rax, [rdx+256]
    0021f6ablea rsi, [rcx+256]
    0021f6b2test rax, rax
    0021f6b5je 0x21f6ea
    0021f6b7xor r8l, r8l
    0021f6banop
    0021f6bcmov r10, [rax]
    0021f6bfmov [rdx+256], r10
    0021f6c6mov [rax+16], rdi
    0021f6camov r10, [rsi]
    0021f6cdmov [rax], r10
    0021f6d0xchg [rsi], rax
    0021f6d3mov rax, [rdx+256]
    0021f6daadd r8l, 1
    0021f6detest rax, rax
    0021f6e1jne 0x21f6c0
    0021f6e3add ebp, r8l
    0021f6e6add rdx, 8
    0021f6ea
    0021f6ealoc_21f6ea:
    0021f6eaadd rcx, 8
    0021f6eecmp r9, rdx
    0021f6f1jne 0x21f640
    0021f6f7mov rax, [rip+0x15994e]
    0021f6fetest rax, rax
    0021f701je 0x21f7fb
    0021f707nop [rax+rax]
    0021f712nop [rax+rax]
    0021f71dnop [rax+rax]
    0021f728nop [rax+rax]
    0021f733nop [rax+rax]
    0021f73cmov rdx, [rax+8]
    0021f740
    0021f740loc_21f740:
    0021f740add r13l, 1
    0021f744mov [rip+0x159901], rdx
    0021f74bmov rdx, [r12+1048]
    0021f753mov [rax], rdx
    0021f756mov rdx, [r12+1032]
    0021f75emov [rax+8], rdx
    0021f762mov [r12+1032], rax
    0021f76amov rax, [rip+0x1598db]
    0021f771test rax, rax
    0021f774jne 0x21f740
    0021f776mov eax, ebp
    0021f778or eax, r13l
    0021f77btest eax, eax
    0021f77djne 0x21f7a6
    0021f77f
    0021f77floc_21f77f:
    0021f77fmov rdi, rbx
    0021f782call fn_f47c0
    0021f787test eax, eax
    0021f789jne 0x21f7ff
    0021f78bmov [r12+1040], 0
    0021f797add rsp, 8
    0021f79bpop rbx
    0021f79cpop rbp
    0021f79dpop r12
    0021f79fpop r13
    0021f7a1ret
    0021f7a2lea rdi, [r12+1056]
    0021f7aalea rsi, [rip+0x15965b]
    0021f7b1call caml_accum_heap_stats
    0021f7b6pxor x0, x0
    0021f7bamov rdi, rbx
    0021f7bdmovaps [rip+0x159648], x0
    0021f7c4movaps [rip+0x159651], x0
    0021f7cbmovaps [rip+0x15965a], x0
    0021f7d2movaps [rip+0x159663], x0
    0021f7d9call fn_f47c0
    0021f7detest eax, eax
    0021f7e0jne 0x21f7ff
    0021f7e2mov edx, r13l
    0021f7e5mov esi, ebp
    0021f7e7lea rdi, [rip+0x11b9e]
    0021f7eexor eax, eax
    0021f7f0call caml_gc_log
    0021f7f5jmp 0x21f78f
    0021f7f7mov eax, ebp
    0021f7f9jmp 0x21f77f
    0021f7fb
    0021f7fbloc_21f7fb:
    0021f7fbmov esi, eax
    0021f7fdlea rdi, [rip+64786]
    0021f804call caml_plat_fatal_error
    0021f809mov esi, eax
    0021f80blea rdi, [rip+64761]
    0021f812call caml_plat_fatal_error
    0021f817db 0xb5
    0021f818sar edi, -1
    0021f540
    0021f81b
    0021f81b // align 0x10
    0021f820
    0021f820fn_21f820:
    0021f820sub rsp, 8
    0021f824call caml_bt_exit_ocaml
    0021f829add rsp, 8
    0021f82djmp 0x203050
    0021f832db 0x1a
    0021f833cmp dh, bh
    0021f835db 0xff
    0021f820
    0021f836
    0021f836 // align 0x10
    0021f840
    0021f840fn_21f840:
    0021f840sub rsp, 8
    0021f844call caml_bt_enter_ocaml
    0021f849add rsp, 8
    0021f84djmp 0x202fe0
    0021f852db 0x8a
    0021f853db 0x37
    0021f854db 0xfe
    0021f855db 0xff
    0021f840
    0021f856
    0021f856 // align 0x10
    0021f860
    0021f860fn_21f860:
    0021f860push r12
    0021f862push rbp
    0021f863push rbx
    0021f864mov ebx, edi
    0021f866call fn_f4570
    0021f86blea ecx, [rbx-1]
    0021f86emov r12l, [rax]
    0021f871mov rbp, rax
    0021f874cmp ecx, 63
    0021f877ja 0x21f892
    0021f879mov eax, 1
    0021f87eshl rax, cl
    0021f881lock or [rip+0x1597d3], rax
    0021f889call caml_interrupt_all_signal_safe
    0021f88emov [rbp], r12l
    0021f892
    0021f892loc_21f892:
    0021f892pop rbx
    0021f893pop rbp
    0021f894pop r12
    0021f896ret
    0021f897db 0x5d
    0021f898pop r12
    0021f89aret
    0021f860
    0021f89b
    0021f89b // align 0x10
    0021f8a0
    0021f8a0caml_check_pending_signals:
    0021f8a0mov rax, [rip+0x1597b5]
    0021f8a7test rax, rax
    0021f8aasetne al
    0021f8admovzx eax, al
    0021f8b0ret
    0021f8b1db 0x0f
    0021f8b2mov dh, 192
    0021f8b4ret
    0021f8a0
    0021f8b5
    0021f8b5 // align 0x10
    0021f8c0
    0021f8c0caml_record_signal:
    0021f8c0lea ecx, [rdi-1]
    0021f8c3cmp ecx, 63
    0021f8c6jbe 0x21f8d0
    0021f8c8ret
    0021f8c9db 0x3f
    0021f8cajbe 0x21f8d0
    0021f8ccret
    0021f8cd
    0021f8cd 0f 1f 00 ...
    0021f8d0
    0021f8d0loc_21f8d0:
    0021f8d0mov eax, 1
    0021f8d5shl rax, cl
    0021f8d8lock or [rip+0x159780], rax
    0021f8e0jmp 0x201680
    0021f8c0
    0021f8e5
    0021f8e5 // align 0x10
    0021f8f0
    0021f8f0caml_enter_blocking_section_no_pending:
    0021f8f0jmp [rip+0x158ae6]
    0021f8f6db 0xe6
    0021f8f7db 0x8a
    0021f8f8db 0x15
    0021f8f9db 0x00
    0021f8f0
    0021f8fa
    0021f8fa // align 0x10
    0021f900
    0021f900caml_leave_blocking_section:
    0021f900push rbp
    0021f901push rbx
    0021f902sub rsp, 8
    0021f906call fn_f4570
    0021f90bmov ebp, [rax]
    0021f90dmov rbx, rax
    0021f910call [rip+0x158abe]
    0021f916mov rax, [rip+0x566c7]
    0021f91dcmp [rax], 0
    0021f922je 0x21f950
    0021f924mov rdx, [rip+0x159731]
    0021f92btest rdx, rdx
    0021f92eje 0x21f940
    0021f930mov rax, [rax]
    0021f934mov [rax+56], 1
    0021f93cmov [rbx], ebp
    0021f93eadd rsp, 8
    0021f942pop rbx
    0021f943pop rbp
    0021f944ret
    0021f945db 0x08
    0021f946pop rbx
    0021f947pop rbp
    0021f948ret
    0021f949
    0021f949 0f 1f 80 00 00 00 00 .......
    0021f950
    0021f950loc_21f950:
    0021f950call caml_bad_caml_state
    0021f900
    0021f955
    0021f955 // align 0x10
    0021f960
    0021f960caml_init_signal_handling:
    0021f960sub rsp, 8
    0021f964xor esi, esi
    0021f966mov edi, 65
    0021f96bcall caml_alloc_shr
    0021f970mov [rip+0x1596f5], rax
    0021f977mov [rax], 1
    0021f97emov eax, 8
    0021f983nop [rax+rax]
    0021f98enop [rax+rax]
    0021f999nop [rax]
    0021f99cmov rdx, [rip+0x1596c9]
    0021f9a3add rdx, rax
    0021f9a6add rax, 8
    0021f9aamov [rdx], 1
    0021f9b1cmp rax, 520
    0021f9b7jne 0x21f9a0
    0021f9b9lea rdi, [rip+0x1596ac]
    0021f9c0add rsp, 8
    0021f9c4jmp 0x209dd0
    0021f9c9db 0x03
    0021f9camovsb [rdi], [rsi]
    0021f9cbdb 0xfe
    0021f9ccdb 0xff
    0021f960
    0021f9cd
    0021f9cd // align 0x10
    0021f9d0
    0021f9d0caml_execute_signal_res:
    0021f9d0push r13
    0021f9d2push r12
    0021f9d4push rbp
    0021f9d5push rbx
    0021f9d6sub rsp, 280
    0021f9ddmov rbx, [0x28]
    0021f9e6mov [rsp+264], rbx
    0021f9eemov ebx, edi
    0021f9f0mov rdi, rsp
    0021f9f3lea rbp, [rsp+128]
    0021f9fbcall fn_f46c0
    0021fa00mov rdi, rsp
    0021fa03mov esi, ebx
    0021fa05call fn_f4580
    0021fa0amov rdx, rbp
    0021fa0dxor edi, edi
    0021fa0fmov rsi, rsp
    0021fa12call fn_f4130
    0021fa17mov rax, [rip+0x15964e]
    0021fa1emovsxd rcx, ebx
    0021fa21lea rdx, [rip+0x12b14]
    0021fa28lea rax, [rax+8*rcx]
    0021fa2cmov rdi, [rax]
    0021fa2fxor eax, eax
    0021fa31jmp 0x21fa4a
    0021fa33db 0x31
    0021fa34shr bl, 19
    0021fa37
    0021fa37 66 0f 1f 84 00 00 00 00 00 f........
    0021fa40
    0021fa40loc_21fa40:
    0021fa40add rax, 1
    0021fa44cmp rax, 28
    0021fa48je 0x21fa56
    0021fa4a
    0021fa4aloc_21fa4a:
    0021fa4acmp ebx, [rdx+4*rax]
    0021fa4djne 0x21fa40
    0021fa4fmov ebx, eax
    0021fa51not ebx
    0021fa53movsxd rcx, ebx
    0021fa56
    0021fa56loc_21fa56:
    0021fa56lea rsi, [rcx+rcx+1]
    0021fa5bcall caml_callback_res
    0021fa60mov rsi, rbp
    0021fa63mov edi, 2
    0021fa68mov r12, rax
    0021fa6bmov r13, rdx
    0021fa6exor edx, edx
    0021fa70call fn_f4130
    0021fa75mov rax, r12
    0021fa78mov rdx, r13
    0021fa7bmov rcx, [rsp+264]
    0021fa83sub rcx, [0x28]
    0021fa8cjne 0x21fa9c
    0021fa8eadd rsp, 280
    0021fa95pop rbx
    0021fa96pop rbp
    0021fa97pop r12
    0021fa99pop r13
    0021fa9bret
    0021fa9c
    0021fa9cloc_21fa9c:
    0021fa9ccall fn_f4590
    0021f9d0
    0021faa1
    0021faa1 // align 0x20
    0021fac0
    0021fac0fn_21fac0:
    0021fac0push r14
    0021fac2xor esi, esi
    0021fac4xor edi, edi
    0021fac6push r13
    0021fac8push r12
    0021facapush rbp
    0021facbpush rbx
    0021faccsub rsp, 144
    0021fad3mov rdx, [0x28]
    0021fadcmov [rsp+136], rdx
    0021fae4mov rdx, rsp
    0021fae7call fn_f4130
    0021faecmov r12, [rip+0x15956d]
    0021faf3test r12, r12
    0021faf6jne 0x21fb40
    0021faf8
    0021faf8loc_21faf8:
    0021faf8xor ecx, ecx
    0021fafamov ebp, 1
    0021faffmov rsi, 0xffffffff00000000
    0021fb09and rcx, rsi
    0021fb0cmov rdi, rcx
    0021fb0f
    0021fb0floc_21fb0f:
    0021fb0fmov eax, edi
    0021fb11mov rdx, rbp
    0021fb14mov rcx, [rsp+136]
    0021fb1csub rcx, [0x28]
    0021fb25jne 0x21fbd7
    0021fb2badd rsp, 144
    0021fb32pop rbx
    0021fb33pop rbp
    0021fb34pop r12
    0021fb36pop r13
    0021fb38pop r14
    0021fb3aret
    0021fb3b
    0021fb3b 0f 1f 44 00 00 ..D..
    0021fb40
    0021fb40loc_21fb40:
    0021fb40mov r14, rsp
    0021fb43xor ecx, ecx
    0021fb45mov r13l, 1
    0021fb4bjmp 0x21fb67
    0021fb4d
    0021fb4d 66 66 2e ff.
    0021fb50 0f 1f 84 00 00 00 00 00 0f 1f 84 00 00 00 00 00 ................
    0021fb60
    0021fb60loc_21fb60:
    0021fb60mov ecx, ebx
    0021fb62cmp ebx, 64
    0021fb65je 0x21faf8
    0021fb67
    0021fb67loc_21fb67:
    0021fb67mov rbp, r13
    0021fb6alea ebx, [rcx+1]
    0021fb6dshl rbp, cl
    0021fb70test rbp, r12
    0021fb73je 0x21fb60
    0021fb75mov esi, ebx
    0021fb77mov rdi, r14
    0021fb7acall fn_f42b0
    0021fb7fmov rdx, rbp
    0021fb82not rdx
    0021fb85test eax, eax
    0021fb87jne 0x21fb60
    0021fb89
    0021fb89loc_21fb89:
    0021fb89mov rcx, rdx
    0021fb8cmov rax, r12
    0021fb8fand rcx, r12
    0021fb92lock cmpxchg [rip+0x1594c5], rcx
    0021fb9bmov r12, rax
    0021fb9ejne 0x21fbc7
    0021fba0mov edi, ebx
    0021fba2call caml_execute_signal_res
    0021fba7test eax, eax
    0021fba9jne 0x21fbbc
    0021fbabmov r12, [rip+0x1594ae]
    0021fbb2test r12, r12
    0021fbb5jne 0x21fb60
    0021fbb7jmp 0x21faf8
    0021fbbc
    0021fbbcloc_21fbbc:
    0021fbbcmov rdi, rax
    0021fbbfmov rbp, rdx
    0021fbc2jmp 0x21fb0f
    0021fbc7
    0021fbc7loc_21fbc7:
    0021fbc7test r12, r12
    0021fbcaje 0x21faf8
    0021fbd0test rbp, r12
    0021fbd3jne 0x21fb89
    0021fbd5jmp 0x21fb60
    0021fbd7
    0021fbd7loc_21fbd7:
    0021fbd7call fn_f4590
    0021fac0
    0021fbdc
    0021fbdc // align 0x10
    0021fbe0
    0021fbe0caml_process_pending_signals_res:
    0021fbe0mov rax, [rip+0x159475]
    0021fbe7test rax, rax
    0021fbeajne 0x21fc10
    0021fbecxor eax, eax
    0021fbeemov edx, 1
    0021fbf3mov rsi, 0xffffffff00000000
    0021fbfdmov rcx, rax
    0021fc00and rcx, rsi
    0021fc03mov rax, rcx
    0021fc06ret
    0021fc07db 0x48
    0021fc08mov eax, ecx
    0021fc0aret
    0021fc0b
    0021fc0b 0f 1f 44 00 00 ..D..
    0021fc10
    0021fc10loc_21fc10:
    0021fc10jmp 0x21fac0
    0021fbe0
    0021fc15
    0021fc15 // align 0x10