File hevea_f46f610a6b0078f4aa208dda361f21de574cc56ad64b32889301afc466d33979.elf
Function:
    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
    0021fc20
    0021fc20caml_enter_blocking_section:
    0021fc20mov rax, [rip+0x563bd]
    0021fc27push rbx
    0021fc28mov rbx, [rax]
    0021fc2cjmp 0x21fc75
    0021fc2edb 0x8b
    0021fc2fsbb bl, ch
    0021fc31db 0x43
    0021fc32
    0021fc32 66 0f 1f 44 00 00 f..D..
    0021fc38
    0021fc38loc_21fc38:
    0021fc38cmp [rbx+56], 0
    0021fc3dje 0x21fc60
    0021fc3f
    0021fc3floc_21fc3f:
    0021fc3fcall caml_handle_gc_interrupt
    0021fc44mov rax, [rip+0x159415]
    0021fc4btest rax, rax
    0021fc4eje 0x21fc60
    0021fc50call fn_21fac0
    0021fc55test eax, eax
    0021fc57jne 0x21fc82
    0021fc59nop [rax]
    0021fc60
    0021fc60loc_21fc60:
    0021fc60call [rip+0x15877a]
    0021fc66mov rax, [rbx]
    0021fc69cmp rax, -1
    0021fc6djne 0x21fc80
    0021fc6fcall [rip+0x158763]
    0021fc75
    0021fc75loc_21fc75:
    0021fc75mov rax, [rbx]
    0021fc78cmp [rbx+8], rax
    0021fc7cjae 0x21fc38
    0021fc7ejmp 0x21fc3f
    0021fc80
    0021fc80loc_21fc80:
    0021fc80pop rbx
    0021fc81ret
    0021fc82
    0021fc82loc_21fc82:
    0021fc82mov rdi, rdx
    0021fc85call caml_raise
    0021fc20
    0021fc8a
    0021fc8a // align 0x10
    0021fc90
    0021fc90caml_request_major_slice:
    0021fc90mov rax, [rip+0x5634d]
    0021fc97mov rax, [rax]
    0021fc9btest edi, edi
    0021fc9dje 0x21fcb8
    0021fc9fmov [rax+240], 1
    0021fcaajmp 0x201650
    0021fcafdb 0x9d
    0021fcb0sbb esi, edi
    0021fcb2db 0xff
    0021fcb3
    0021fcb3 0f 1f 44 00 00 ..D..
    0021fcb8
    0021fcb8loc_21fcb8:
    0021fcb8mov [rax+232], 1
    0021fcc3jmp 0x201650
    0021fc90
    0021fcc8
    0021fcc8 // align 0x10
    0021fcd0
    0021fcd0caml_request_minor_gc:
    0021fcd0mov rax, [rip+0x5630d]
    0021fcd7mov rax, [rax]
    0021fcdbmov [rax+248], 1
    0021fce6jmp 0x201650
    0021fcebdb 0x61
    0021fcecsbb esi, edi
    0021fceedb 0xff
    0021fcd0
    0021fcef
    0021fcef // align 0x10
    0021fcf0
    0021fcf0caml_set_action_pending:
    0021fcf0mov [rdi+56], 1
    0021fcf8ret
    0021fcf9db 0x00
    0021fcfaadd [rax], al
    0021fcfcret
    0021fcf0
    0021fcfd
    0021fcfd // align 0x10
    0021fd00
    0021fd00caml_check_pending_actions:
    0021fd00mov rax, [rip+0x562dd]
    0021fd07mov rax, [rax]
    0021fd0btest rax, rax
    0021fd0eje 0x21fd40
    0021fd10mov rdx, [rax]
    0021fd13cmp [rax+8], rdx
    0021fd17jb 0x21fd30
    0021fd19cmp [rax+56], 0
    0021fd1esetne al
    0021fd21movzx eax, al
    0021fd24ret
    0021fd25db 0x0f
    0021fd26mov dh, 192
    0021fd28ret
    0021fd29
    0021fd29 0f 1f 80 00 00 00 00 .......
    0021fd30
    0021fd30loc_21fd30:
    0021fd30mov eax, 1
    0021fd35ret
    0021fd36
    0021fd36 66 2e 0f 1f 84 00 00 00 00 00 f.........
    0021fd40
    0021fd40loc_21fd40:
    0021fd40sub rsp, 8
    0021fd44call caml_bad_caml_state
    0021fd00
    0021fd49
    0021fd49 // align 0x10
    0021fd50
    0021fd50caml_do_pending_actions_res:
    0021fd50push rbx
    0021fd51call caml_handle_gc_interrupt
    0021fd56mov rbx, [rip+0x56287]
    0021fd5dmov rax, [rbx]
    0021fd61mov [rax+56], 0
    0021fd69mov rax, [rip+0x1592ec]
    0021fd70test rax, rax
    0021fd73jne 0x21fe00
    0021fd79call caml_memprof_run_callbacks_res
    0021fd7emov ecx, eax
    0021fd80mov r8, rax
    0021fd83mov r9, rdx
    0021fd86test ecx, ecx
    0021fd88je 0x21fdc0
    0021fd8amov rsi, r9
    0021fd8dmov rdx, [rbx]
    0021fd91
    0021fd91loc_21fd91:
    0021fd91mov rax, r8
    0021fd94mov r11, rsi
    0021fd97mov [rdx+56], 1
    0021fd9fpop rbx
    0021fda0mov rdx, 0xffffffff00000000
    0021fdaaand rax, rdx
    0021fdadmov rdx, r11
    0021fdb0or rax, rcx
    0021fdb3mov r10, rax
    0021fdb6mov eax, r10l
    0021fdb9ret
    0021fdbadb 0x44
    0021fdbbmov eax, edx
    0021fdbdret
    0021fdbe
    0021fdbe 66 90 f.
    0021fdc0
    0021fdc0loc_21fdc0:
    0021fdc0call caml_final_do_calls_res
    0021fdc5mov ecx, eax
    0021fdc7mov r8, rax
    0021fdcamov r9, rdx
    0021fdcdtest ecx, ecx
    0021fdcfjne 0x21fd8e
    0021fdd1call caml_process_external_interrupt
    0021fdd6xor ecx, ecx
    0021fdd8mov r11l, 1
    0021fddepop rbx
    0021fddfmov rsi, 0xffffffff00000000
    0021fde9mov rdx, r11
    0021fdecand rcx, rsi
    0021fdefmov r10, rcx
    0021fdf2mov eax, r10l
    0021fdf5ret
    0021fdf6
    0021fdf6 66 2e 0f 1f 84 00 00 00 00 00 f.........
    0021fe00
    0021fe00loc_21fe00:
    0021fe00call fn_21fac0
    0021fe05mov ecx, eax
    0021fe07mov rsi, rdx
    0021fe0amov r8, rax
    0021fe0dtest ecx, ecx
    0021fe0fjne 0x21fd91
    0021fe11jmp 0x21fd7d
    0021fd50
    0021fe16
    0021fe16 // align 0x10
    0021fe20
    0021fe20caml_process_pending_actions_with_root_res:
    0021fe20push rbp
    0021fe21push rbx
    0021fe22sub rsp, 104
    0021fe26mov [rsp+8], rdi
    0021fe2bmov rax, [0x28]
    0021fe34mov [rsp+88], rax
    0021fe39xor eax, eax
    0021fe3bcall caml_check_pending_actions
    0021fe40test eax, eax
    0021fe42jne 0x21fe70
    0021fe44mov rdi, [rsp+8]
    0021fe49xor esi, esi
    0021fe4bmov eax, esi
    0021fe4dmov rdx, rdi
    0021fe50mov rcx, [rsp+88]
    0021fe55sub rcx, [0x28]
    0021fe5ejne 0x21feda
    0021fe60add rsp, 104
    0021fe64pop rbx
    0021fe65pop rbp
    0021fe66ret
    0021fe67db 0x68
    0021fe68pop rbx
    0021fe69pop rbp
    0021fe6aret
    0021fe6b
    0021fe6b 0f 1f 44 00 00 ..D..
    0021fe70
    0021fe70loc_21fe70:
    0021fe70mov rax, [rip+0x56171]
    0021fe77mov rbx, [rax]
    0021fe7blea rax, [rsp+16]
    0021fe80mov rbp, [rbx+160]
    0021fe87mov [rbx+160], rax
    0021fe8emov eax, 1
    0021fe93movq x0, rax
    0021fe98lea rax, [rsp+8]
    0021fe9dpunpcklqdq x0, x0
    0021fea1mov [rsp+16], rbp
    0021fea6mov [rsp+40], rax
    0021feabmovups [rsp+24], x0
    0021feb0call caml_do_pending_actions_res
    0021feb5mov ecx, eax
    0021feb7test ecx, ecx
    0021feb9jne 0x21fec8
    0021febbmov [rbx+160], rbp
    0021fec2jmp 0x21fe48
    0021fec4
    0021fec4 0f 1f 40 00 ..@.
    0021fec8
    0021fec8loc_21fec8:
    0021fec8mov [rbx+160], rbp
    0021fecfmov rsi, rcx
    0021fed2mov rdi, rdx
    0021fed5jmp 0x21fe4f
    0021feda
    0021fedaloc_21feda:
    0021fedacall fn_f4590
    0021fe20
    0021fedf
    0021fedf // align 0x10
    0021fee0
    0021fee0caml_process_pending_actions_with_root:
    0021fee0push rbp
    0021fee1push rbx
    0021fee2sub rsp, 104
    0021fee6mov rax, [0x28]
    0021feefmov [rsp+88], rax
    0021fef4xor eax, eax
    0021fef6mov [rsp+8], rdi
    0021fefbcall caml_check_pending_actions
    0021ff00test eax, eax
    0021ff02jne 0x21ff28
    0021ff04mov rax, [rsp+8]
    0021ff09mov rdx, [rsp+88]
    0021ff0esub rdx, [0x28]
    0021ff17jne 0x21ff8f
    0021ff19add rsp, 104
    0021ff1dpop rbx
    0021ff1epop rbp
    0021ff1fret
    0021ff20db 0x68
    0021ff21pop rbx
    0021ff22pop rbp
    0021ff23ret
    0021ff24
    0021ff24 0f 1f 40 00 ..@.
    0021ff28
    0021ff28loc_21ff28:
    0021ff28mov rax, [rip+0x560b9]
    0021ff2fmov rbx, [rax]
    0021ff33lea rax, [rsp+16]
    0021ff38mov rbp, [rbx+160]
    0021ff3fmov [rbx+160], rax
    0021ff46mov eax, 1
    0021ff4bmovq x0, rax
    0021ff50lea rax, [rsp+8]
    0021ff55punpcklqdq x0, x0
    0021ff59mov [rsp+16], rbp
    0021ff5emov [rsp+40], rax
    0021ff63movups [rsp+24], x0
    0021ff68call caml_do_pending_actions_res
    0021ff6dtest eax, eax
    0021ff6fjne 0x21ff80
    0021ff71mov [rbx+160], rbp
    0021ff78jmp 0x21ff08
    0021ff7a
    0021ff7a 66 0f 1f 44 00 00 f..D..
    0021ff80
    0021ff80loc_21ff80:
    0021ff80mov [rbx+160], rbp
    0021ff87mov rdi, rdx
    0021ff8acall caml_raise
    0021ff8f
    0021ff8floc_21ff8f:
    0021ff8fcall fn_f4590
    0021fee0
    0021ff94
    0021ff94 // align 0x10
    0021ffa0
    0021ffa0caml_process_pending_actions_res:
    0021ffa0sub rsp, 8
    0021ffa4call caml_check_pending_actions
    0021ffa9test eax, eax
    0021ffabjne 0x21ffd0
    0021ffadxor eax, eax
    0021ffafmov edx, 1
    0021ffb4add rsp, 8
    0021ffb8mov rsi, 0xffffffff00000000
    0021ffc2mov rcx, rax
    0021ffc5and rcx, rsi
    0021ffc8mov rax, rcx
    0021ffcbret
    0021ffccadd rsp, 8
    0021ffd0
    0021ffd0loc_21ffd0:
    0021ffd0jmp 0x21fd50
    0021ffd5db 0x77
    0021ffd6std
    0021ffd7db 0xff
    0021ffd8db 0xff
    0021ffa0
    0021ffd9
    0021ffd9 // align 0x10
    0021ffe0
    0021ffe0caml_process_pending_actions:
    0021ffe0sub rsp, 8
    0021ffe4call caml_check_pending_actions
    0021ffe9test eax, eax
    0021ffebjne 0x220000
    0021ffedadd rsp, 8
    0021fff1
    0021fff1loc_21fff1:
    0021fff1ret
    0021fff2nop [rax+rax]
    0021fffccall caml_do_pending_actions_res
    00220001test eax, eax
    00220003je 0x21fff1
    00220005mov rdi, rdx
    00220008call caml_raise
    0022000ddb 0x8f
    0022000edb 0x60
    0022000fadd [rax], al
    0021ffe0
    00220011
    00220011 // align 0x10
    00220020
    00220020caml_process_pending_actions_exn:
    00220020
    00220020 f3 0f 1e ...
    00220023cli
    00220024sub rsp, 8
    00220028call caml_check_pending_actions
    0022002dmov edx, eax
    0022002fmov eax, 1
    00220034test edx, edx
    00220036jne 0x220040
    00220038add rsp, 8
    0022003cret
    0022003d
    0022003d 0f 1f 00 ...
    00220040
    00220040loc_220040:
    00220040call caml_do_pending_actions_res
    00220045mov rsi, rax
    00220048mov rax, rdx
    0022004bor rdx, 2
    0022004ftest esi, esi
    00220051cmovne rax, rdx
    00220055add rsp, 8
    00220059ret
    00220020
    0022005a
    0022005a // align 0x10
    00220060
    00220060caml_convert_signal_number:
    00220060mov eax, edi
    00220062cmp edi, -28
    00220065jb 0x220079
    00220067not eax
    00220069lea rdx, [rip+0x124cc]
    00220070cdqe
    00220072mov eax, [rdx+4*rax]
    00220075ret
    00220076db 0x8b
    00220077add al, -126
    00220079
    00220079loc_220079:
    00220079ret
    00220060
    0022007a
    0022007a // align 0x10
    00220080
    00220080caml_rev_convert_signal_number:
    00220080xor eax, eax
    00220082lea rdx, [rip+0x124b3]
    00220089jmp 0x22009a
    0022008bdb 0x01
    0022008cadd bl, ch
    0022008edb 0x0b
    0022008f
    0022008f 90 .
    00220090
    00220090loc_220090:
    00220090add rax, 1
    00220094cmp rax, 28
    00220098je 0x2200a8
    0022009a
    0022009aloc_22009a:
    0022009acmp [rdx+4*rax], edi
    0022009djne 0x220090
    0022009fnot eax
    002200a1ret
    002200a2
    002200a2 66 0f 1f 44 00 00 f..D..
    002200a8
    002200a8loc_2200a8:
    002200a8mov eax, edi
    002200aaret
    00220080
    002200ab
    002200ab // align 0x10
    002200b0
    002200b0caml_init_signal_stack:
    002200b0sub rsp, 40
    002200b4mov edi, 8192
    002200b9mov rax, [0x28]
    002200c2mov [rsp+24], rax
    002200c7xor eax, eax
    002200c9mov [rsp+8], 0
    002200d1mov [rsp+16], 8192
    002200dacall fn_f4250
    002200dfmov [rsp], rax
    002200e3test rax, rax
    002200e6je 0x220120
    002200e8mov rdi, rsp
    002200ebxor esi, esi
    002200edcall fn_f47b0
    002200f2mov edx, eax
    002200f4mov rax, [rsp]
    002200f8test edx, edx
    002200fajs 0x220118
    002200fcmov rdx, [rsp+24]
    00220101sub rdx, [0x28]
    0022010ajne 0x220124
    0022010cadd rsp, 40
    00220110ret
    00220111db 0x83
    00220112db 0xc4
    00220113sub bl, al
    00220115
    00220115 0f 1f 00 ...
    00220118
    00220118loc_220118:
    00220118mov rdi, rax
    0022011bcall fn_f4370
    00220120
    00220120loc_220120:
    00220120xor eax, eax
    00220122jmp 0x220100
    00220124
    00220124loc_220124:
    00220124call fn_f4590
    002200b0
    00220129
    00220129 // align 0x10
    00220130
    00220130caml_free_signal_stack:
    00220130push rbp
    00220131push rbx
    00220132sub rsp, 72
    00220136mov rbx, [0x28]
    0022013fmov [rsp+56], rbx
    00220144mov rbx, rdi
    00220147mov rsi, rsp
    0022014alea rdi, [rsp+32]
    0022014fmov [rsp+40], 2
    00220157mov [rsp+32], 0
    00220160mov [rsp+48], 8192
    00220169call fn_f47b0
    0022016etest eax, eax
    00220170js 0x2201ab
    00220172test [rsp+8], 2
    00220177jne 0x22018d
    00220179cmp [rsp], rbx
    0022017dje 0x22018d
    0022017fxor esi, esi
    00220181mov rdi, rsp
    00220184call fn_f47b0
    00220189mov rax, [rsp+56]
    0022018esub rax, [0x28]
    00220197jne 0x2201c0
    00220199add rsp, 72
    0022019dmov rdi, rbx
    002201a0pop rbx
    002201a1pop rbp
    002201a2jmp 0xf4370
    002201a7call fn_f4570
    002201aclea rdi, [rip+0x11209]
    002201b3mov esi, [rax]
    002201b5xor eax, eax
    002201b7call caml_fatal_error
    002201bccall fn_f4590
    002201c1db 0xcb
    002201c2in eax, dx
    002201c4db 0xff
    00220130
    002201c5
    002201c5 // align 0x10
    002201d0
    002201d0caml_init_signals:
    002201d0push rbx
    002201d1sub rsp, 160
    002201d8mov rax, [0x28]
    002201e1mov [rsp+152], rax
    002201e9xor eax, eax
    002201ebcall caml_init_signal_stack
    002201f0mov [rip+0x158e6d], rax
    002201f7test rax, rax
    002201faje 0x22026b
    002201fcmov rdx, rsp
    002201ffxor esi, esi
    00220201mov edi, 27
    00220206mov rbx, rsp
    00220209call fn_f4480
    0022020emov eax, [rsp+136]
    00220215test al, 4
    00220217je 0x220240
    00220219test eax, 0x8000000
    0022021eje 0x22024e
    00220220mov rax, [rsp+152]
    00220228sub rax, [0x28]
    00220231jne 0x220277
    00220233add rsp, 160
    0022023apop rbx
    0022023bret
    0022023ccmp [rsp], 1
    00220241jbe 0x220224
    00220243test eax, 0x8000000
    00220248jne 0x220224
    0022024aor eax, 0x8000000
    0022024fxor edx, edx
    00220251mov rsi, rbx
    00220254mov edi, 27
    00220259mov [rsp+136], eax
    00220260call fn_f4480
    00220265jmp 0x220224
    00220267lea rdi, [rip+0x11176]
    0022026ecall caml_fatal_error
    00220273call fn_f4590
    00220278db 0x14
    00220279in eax, dx
    0022027bdb 0xff
    002201d0
    0022027c
    0022027c // align 0x10
    00220280
    00220280caml_terminate_signals:
    00220280sub rsp, 8
    00220284mov rdi, [rip+0x158dd9]
    0022028bcall caml_free_signal_stack
    00220290mov [rip+0x158dc9], 0
    0022029badd rsp, 8
    0022029fret
    002202a0db 0x83
    002202a1db 0xc4
    002202a2or bl, al
    00220280
    002202a4
    002202a4 // align 0x10
    002202b0
    002202b0caml_install_signal_handler:
    002202b0push r13
    002202b2push r12
    002202b4push rbp
    002202b5push rbx
    002202b6sub rsp, 488
    002202bdmovdqa x1, [rip+40455]
    002202c5mov [rsp+8], rdi
    002202camovq x2, rsp
    002202cfmov [rsp], rsi
    002202d3mov rax, [0x28]
    002202dcmov [rsp+472], rax
    002202e4mov rax, [rip+0x55cf9]
    002202ebmov rbp, [rax]
    002202eflea rax, [rsp+8]
    002202f4movups [rsp+40], x1
    002202f9movq x0, rax
    002202felea rax, [rsp+32]
    00220303movups [rsp+104], x1
    00220308mov [rsp+96], rax
    0022030dlea rax, [rsp+96]
    00220312mov r12, [rbp+160]
    00220319punpcklqdq x0, x2
    0022031dmov [rbp+160], rax
    00220324lea rax, [rsp+16]
    00220329movups [rsp+56], x0
    0022032emovq x0, rax
    00220333lea rax, [rsp+24]
    00220338movq x3, rax
    0022033dmov rax, rdi
    00220340mov [rsp+32], r12
    00220345mov [rsp+16], 1
    0022034epunpcklqdq x0, x3
    00220352sar rax, 1
    00220355mov [rsp+24], 1
    0022035emovups [rsp+120], x0
    00220363cmp eax, -28
    00220366jb 0x2204b8
    0022036cnot eax
    0022036elea rdx, [rip+0x121c7]
    00220375cdqe
    00220377movsxd rbx, [rdx+4*rax]
    0022037bmov edx, ebx
    0022037dsub edx, 1
    00220380cmp edx, 63
    00220383ja 0x22056a
    00220389mov rdx, [rsp]
    0022038dxor eax, eax
    0022038fcmp rdx, 1
    00220393je 0x2203ad
    00220395cmp rdx, 3
    00220399lea rax, [rip-2884]
    002203a0mov edx, 1
    002203a5cmove rax, rdx
    002203a9lea rdi, [rsp+168]
    002203b1lea r13, [rsp+160]
    002203b9mov [rsp+160], rax
    002203c1call fn_f46c0
    002203c6lea rdx, [rsp+320]
    002203cemov rsi, r13
    002203d1mov edi, ebx
    002203d3mov [rsp+296], 0x8000000
    002203decall fn_f4480
    002203e3cmp eax, -1
    002203e6je 0x220560
    002203ecmov rax, [rsp+320]
    002203f4lea rdx, [rip-2975]
    002203fbcmp rax, rdx
    002203feje 0x2204e0
    00220404cmp rax, 1
    00220408sete al
    0022040bmovzx eax, al
    0022040elea rax, [rax+rax+1]
    00220413mov [rsp+16], rax
    00220418test [rsp], 1
    0022041c
    0022041cloc_22041c:
    0022041cjne 0x220477
    0022041ecmp [rip+0x158c46], 0
    00220426je 0x220538
    0022042clea r13, [rip+0x158c49]
    00220433mov rdi, r13
    00220436call fn_f4710
    0022043btest eax, eax
    0022043djne 0x22057b
    00220443mov rax, [rip+0x158c22]
    0022044atest rax, rax
    0022044dje 0x220510
    00220453mov rdx, [rsp]
    00220457
    00220457loc_220457:
    00220457lea rdi, [rax+8*rbx]
    0022045bmov rsi, [rdx]
    0022045ecall caml_modify
    00220463mov rdi, r13
    00220466call fn_f47c0
    0022046btest eax, eax
    0022046djne 0x22054e
    00220473mov rax, [rip+0x158be2]
    0022047atest rax, rax
    0022047djne 0x2204c8
    0022047fmov [rbp+160], r12
    00220486mov rax, [rsp+16]
    0022048bmov rdx, [rsp+472]
    00220493sub rdx, [0x28]
    0022049cjne 0x220576
    002204a2add rsp, 488
    002204a9pop rbx
    002204aapop rbp
    002204abpop r12
    002204adpop r13
    002204afret
    002204b0db 0x5c
    002204b1pop r13
    002204b3ret
    002204b4
    002204b4 0f 1f 40 00 ..@.
    002204b8
    002204b8loc_2204b8:
    002204b8movsxd rbx, eax
    002204bbmov edx, eax
    002204bdjmp 0x220381
    002204c2
    002204c2 66 0f 1f 44 00 00 f..D..
    002204c8
    002204c8loc_2204c8:
    002204c8call fn_21fac0
    002204cdtest eax, eax
    002204cfje 0x220483
    002204d1mov rdi, rdx
    002204d4call caml_raise
    002204d9nop [rax]
    002204e0
    002204e0loc_2204e0:
    002204e0xor esi, esi
    002204e2mov edi, 1
    002204e7call caml_alloc_small
    002204ecmov rcx, [rip+0x158b7d]
    002204f3movsxd rdx, ebx
    002204f6mov [rsp+16], rax
    002204fblea rdx, [rcx+8*rdx]
    002204ffmov rdx, [rdx]
    00220502mov [rax], rdx
    00220505jmp 0x22041c
    0022050a
    0022050a 66 0f 1f 44 00 00 f..D..
    00220510
    00220510loc_220510:
    00220510mov rax, [rsp+24]
    00220515lea rdi, [rip+0x158b54]
    0022051cmov [rip+0x158b4d], rax
    00220523call caml_register_global_root
    00220528mov rax, [rip+0x158b41]
    0022052fjmp 0x220457
    00220534
    00220534 0f 1f 40 00 ..@.
    00220538
    00220538loc_220538:
    00220538xor esi, esi
    0022053amov edi, 65
    0022053fcall caml_alloc
    00220544mov [rsp+24], rax
    00220549jmp 0x220430
    0022054e
    0022054eloc_22054e:
    0022054emov esi, eax
    00220550lea rdi, [rip+61379]
    00220557call caml_plat_fatal_error
    0022055cnop [rax]
    00220560
    00220560loc_220560:
    00220560mov edi, 1
    00220565call caml_sys_error
    0022056a
    0022056aloc_22056a:
    0022056alea rdi, [rip+0x10ea7]
    00220571call caml_invalid_argument
    00220576
    00220576loc_220576:
    00220576call fn_f4590
    0022057b
    0022057bloc_22057b:
    0022057bmov esi, eax
    0022057dlea rdi, [rip+61323]
    00220584call caml_plat_fatal_error
    002202b0