File hevea_f46f610a6b0078f4aa208dda361f21de574cc56ad64b32889301afc466d33979.elf
Function:
    0021bf50
    0021bf50caml_mem_unmap:
    0021bf50push rbp
    0021bf51mov rcx, rdi
    0021bf54mov rbp, rsi
    0021bf57mov rdx, rsi
    0021bf5apush rbx
    0021bf5blea rsi, [rip+0x15202]
    0021bf62mov rbx, rdi
    0021bf65xor eax, eax
    0021bf67mov edi, 4096
    0021bf6csub rsp, 8
    0021bf70call caml_gc_message
    0021bf75add rsp, 8
    0021bf79mov rsi, rbp
    0021bf7cmov rdi, rbx
    0021bf7fpop rbx
    0021bf80pop rbp
    0021bf81jmp 0x223d60
    0021bf86db 0xd6
    0021bf87jge 0x21bf89
    0021bf89db 0x00
    0021bf50
    0021bf8a
    0021bf8a // align 0x10
    0021bf90
    0021bf90caml_plat_spin_back_off:
    0021bf90push rbp
    0021bf91mov eax, 10000
    0021bf96push rbx
    0021bf97mov ebx, 0x3b9aca00
    0021bf9csub rsp, 8
    0021bfa0cmp edi, ebx
    0021bfa2cmovbe ebx, edi
    0021bfa5cmp ebx, eax
    0021bfa7cmovb ebx, eax
    0021bfaamov ebp, ebx
    0021bfacshr ebp, 2
    0021bfafadd ebp, ebx
    0021bfb1cmp ebp, 0xf423f
    0021bfb7jbe 0x21bfc5
    0021bfb9cmp edi, 0xf423f
    0021bfbfjbe 0x21bfe0
    0021bfc1mov edi, ebx
    0021bfc3imul rdi, rdi, 0x10624dd3
    0021bfcashr rdi, 38
    0021bfcecall fn_f4460
    0021bfd3add rsp, 8
    0021bfd7mov eax, ebp
    0021bfd9pop rbx
    0021bfdapop rbp
    0021bfdbret
    0021bfdcmov ecx, [rsi+8]
    0021bfdfmov rdx, [rsi]
    0021bfe2lea rdi, [rip+0x151a3]
    0021bfe9xor eax, eax
    0021bfebmov rsi, [rsi+16]
    0021bfefcall caml_gc_log
    0021bff4jmp 0x21bfc5
    0021bff6db 0xff
    0021bff7db 0xff
    0021bff8jmp 0x21bfc5
    0021bf90
    0021bffa
    0021bffa // align 0x10
    0021c000
    0021c000caml_lxm_next_unboxed:
    0021c000mov r8, 0xdaba0b6eb09322e3
    0021c00amov rcx, [rdi+8]
    0021c00emov rdx, [rcx+16]
    0021c012mov rdi, [rcx+8]
    0021c016lea rsi, [rdi+rdx]
    0021c01amov rax, rsi
    0021c01dshr rax, 32
    0021c021xor rax, rsi
    0021c024imul rax, r8
    0021c028mov rsi, rax
    0021c02bshr rsi, 32
    0021c02fxor rsi, rax
    0021c032imul rsi, r8
    0021c036mov r8, 0xd1342543de82ef95
    0021c040imul rdi, r8
    0021c044add rdi, [rcx]
    0021c047mov [rcx+8], rdi
    0021c04bmov rdi, [rcx+24]
    0021c04fmov rax, rsi
    0021c052xor rdi, rdx
    0021c055rol rdx, 24
    0021c059mov r8, rdi
    0021c05cxor rdx, rdi
    0021c05fshr rax, 32
    0021c063shl r8, 16
    0021c067ror rdi, 27
    0021c06bxor rax, rsi
    0021c06exor rdx, r8
    0021c071mov [rcx+24], rdi
    0021c075mov [rcx+16], rdx
    0021c079ret
    0021c07adb 0x89
    0021c07bpush rcx
    0021c07cadc bl, al
    0021c000
    0021c07e
    0021c07e // align 0x10
    0021c080
    0021c080caml_lxm_next:
    0021c080sub rsp, 8
    0021c084call caml_lxm_next_unboxed
    0021c089add rsp, 8
    0021c08dmov rdi, rax
    0021c090jmp 0x20d9d0
    0021c095db 0x37
    0021c096sbb edi, edi
    0021c098db 0xff
    0021c080
    0021c099
    0021c099 // align 0x10
    0021c0a0
    0021c0a0caml_do_local_roots:
    0021c0a0push r15
    0021c0a2push r14
    0021c0a4push r13
    0021c0a6mov r13, rcx
    0021c0a9push r12
    0021c0abmov r12, rdx
    0021c0aepush rbp
    0021c0afmov rbp, rdi
    0021c0b2push rbx
    0021c0b3sub rsp, 40
    0021c0b7mov [rsp+12], esi
    0021c0bbmov [rsp+16], r8
    0021c0c0mov [rsp+24], r9
    0021c0c5test rcx, rcx
    0021c0c8je 0x21c138
    0021c0canop
    0021c0ccxor ebx, ebx
    0021c0cecmp [r13+8], 0
    0021c0d3jle 0x21c12f
    0021c0d5nop [rax]
    0021c0dcxor r15l, r15l
    0021c0dfmovsxd r8, ebx
    0021c0e2xor eax, eax
    0021c0e4cmp [r13+16], 0
    0021c0e9lea r14, [r8+2]
    0021c0edjle 0x21c123
    0021c0efnop [rax+rax]
    0021c0fanop
    0021c0fcmov rdx, [r13+8*r14+8]
    0021c101lea rdx, [rdx+8*rax]
    0021c105mov rsi, [rdx]
    0021c108test rsi, rsi
    0021c10bje 0x21c116
    0021c10dmov rdi, r12
    0021c110call rbp
    0021c112add r15l, 1
    0021c116
    0021c116loc_21c116:
    0021c116movsxd rax, r15l
    0021c119cmp rax, [r13+16]
    0021c11djl 0x21c100
    0021c11fadd ebx, 1
    0021c122movsxd r8, ebx
    0021c125cmp r8, [r13+8]
    0021c129jl 0x21c0e0
    0021c12bmov r13, [r13]
    0021c12f
    0021c12floc_21c12f:
    0021c12ftest r13, r13
    0021c132jne 0x21c0d0
    0021c134mov r8, [rsp+24]
    0021c139mov rcx, [rsp+16]
    0021c13emov rdx, r12
    0021c141mov rdi, rbp
    0021c144mov esi, [rsp+12]
    0021c148add rsp, 40
    0021c14cpop rbx
    0021c14dpop rbp
    0021c14epop r12
    0021c150pop r13
    0021c152pop r14
    0021c154pop r15
    0021c156jmp 0x206e00
    0021c15bdb 0xa1
    0021c15clodsb al, [rsi]
    0021c15ddb 0xfe
    0021c15edb 0xff
    0021c0a0
    0021c15f
    0021c15f // align 0x10
    0021c160
    0021c160caml_do_roots:
    0021c160push r14
    0021c162mov r14l, r8l
    0021c165push r13
    0021c167mov r13, rdx
    0021c16apush r12
    0021c16cmov r12l, esi
    0021c16fpush rbp
    0021c170mov rbp, rdi
    0021c173push rbx
    0021c174mov rbx, rcx
    0021c177mov rcx, [rcx+160]
    0021c17emov r9, [rbx+88]
    0021c182mov r8, [rbx+40]
    0021c186call caml_do_local_roots
    0021c18bmov rax, [rip+0x15caea]
    0021c192test rax, rax
    0021c195je 0x21c1a9
    0021c197mov rcx, rbx
    0021c19amov rdx, r13
    0021c19dmov esi, r12l
    0021c1a0mov rdi, rbp
    0021c1a3call rax
    0021c1a5mov r8l, r14l
    0021c1a8mov rcx, rbx
    0021c1abmov rdx, r13
    0021c1aepop rbx
    0021c1afmov esi, r12l
    0021c1b2mov rdi, rbp
    0021c1b5pop rbp
    0021c1b6pop r12
    0021c1b8pop r13
    0021c1bapop r14
    0021c1bcjmp 0x228480
    0021c1c1db 0xbb
    0021c1c2ret 0
    0021c160
    0021c1c5
    0021c1c5 // align 0x10
    0021c1d0
    0021c1d0fn_21c1d0:
    0021c1d0push rbp
    0021c1d1push rbx
    0021c1d2mov rbx, rsi
    0021c1d5sub rsp, 8
    0021c1d9cmp edx, 1
    0021c1dcje 0x21c248
    0021c1demov edi, edx
    0021c1e0call caml_global_barrier_and_check_final
    0021c1e5mov rbp, rax
    0021c1e8test rax, rax
    0021c1ebje 0x21c283
    0021c1f1mov ebx, [rbx]
    0021c1f3movsxd rsi, [rip+0x15cb9a]
    0021c1famov rdi, [rip+0x15cb9b]
    0021c201call fn_f4610
    0021c206test ebx, ebx
    0021c208jne 0x21c2c8
    0021c20emov rdi, [rip+0x15cb6f]
    0021c215call caml_stat_free
    0021c21amov rdi, rbp
    0021c21dmov [rip+0x15cb74], 0
    0021c228mov [rip+0x15cb41], 0
    0021c233add rsp, 8
    0021c237pop rbx
    0021c238pop rbp
    0021c239jmp 0x201620
    0021c23edb 0xde
    0021c23fpush rbx
    0021c240db 0xfe
    0021c241db 0xff
    0021c242
    0021c242 66 0f 1f 44 00 00 f..D..
    0021c248
    0021c248loc_21c248:
    0021c248mov ebx, [rsi]
    0021c24amov rdi, [rip+0x15cb4f]
    0021c251movsxd rsi, [rip+0x15cb40]
    0021c258call fn_f4610
    0021c25dtest ebx, ebx
    0021c25fjne 0x21c290
    0021c261mov rdi, [rip+0x15cb20]
    0021c268call caml_stat_free
    0021c26dmov [rip+0x15cb28], 0
    0021c278mov [rip+0x15caf5], 0
    0021c283
    0021c283loc_21c283:
    0021c283add rsp, 8
    0021c287pop rbx
    0021c288pop rbp
    0021c289ret
    0021c28a
    0021c28a 66 0f 1f 44 00 00 f..D..
    0021c290
    0021c290loc_21c290:
    0021c290mov rbx, [rip+0x15caf1]
    0021c297mov rdi, rbx
    0021c29acall fn_f4290
    0021c29fmov rdi, rbx
    0021c2a2call caml_stat_free
    0021c2a7mov [rip+0x15caee], 0
    0021c2b2mov [rip+0x15cabb], 0
    0021c2bdadd rsp, 8
    0021c2c1pop rbx
    0021c2c2pop rbp
    0021c2c3ret
    0021c2c4
    0021c2c4 0f 1f 40 00 ..@.
    0021c2c8
    0021c2c8loc_21c2c8:
    0021c2c8mov rbx, [rip+0x15cab9]
    0021c2cfmov rdi, rbx
    0021c2d2call fn_f4290
    0021c2d7mov rdi, rbx
    0021c2dacall caml_stat_free
    0021c2dfmov rdi, rbp
    0021c2e2mov [rip+0x15cab3], 0
    0021c2edmov [rip+0x15ca80], 0
    0021c2f8add rsp, 8
    0021c2fcpop rbx
    0021c2fdpop rbp
    0021c2fejmp 0x201620
    0021c1d0
    0021c303
    0021c303 // align 0x40
    0021c340
    0021c340fn_21c340:
    0021c340push r15
    0021c342push r14
    0021c344lea r14l, [rcx+2]
    0021c348push r13
    0021c34amovsxd r14, r14l
    0021c34dpush r12
    0021c34fpush rbp
    0021c350push rbx
    0021c351sub rsp, 72
    0021c355mov rax, [rip+0x59c8c]
    0021c35cmov rbp, [rip+0x15ca3d]
    0021c363mov [rsp+24], esi
    0021c367mov [rsp+40], r8
    0021c36cmov r12, [rbp+16]
    0021c370mov [rsp+32], edx
    0021c374mov [rsp+60], ecx
    0021c378mov [rsp+16], edi
    0021c37cmov rax, [rax]
    0021c380movsxd rax, [rax+288]
    0021c387imul r12, rax
    0021c38badd r12, [rbp+40]
    0021c38fadd r12, rbp
    0021c392imul rax, [rbp+24]
    0021c397add rax, [rbp+48]
    0021c39bmov rbx, [r12]
    0021c39fadd rbp, rax
    0021c3a2mov rdi, [r12+8]
    0021c3a7mov rdx, rdi
    0021c3aamov rax, [rip+0x15c9ef]
    0021c3b1mov [rsp+8], rdi
    0021c3b6mov r15, [rax+32]
    0021c3balea r13, [r15-1]
    0021c3beand rdx, r13
    0021c3c1mov [rsp+48], rdx
    0021c3c6sub r15, rdx
    0021c3c9call caml_time_counter
    0021c3cemov rdi, [rsp+8]
    0021c3d3mov rdx, [rsp+48]
    0021c3d8mov r10, rax
    0021c3dbmovsxd r11, [rip+0x15c9a2]
    0021c3e2lea r8, [r14+rdi]
    0021c3e6lea rsi, [8*rdx]
    0021c3eemov rax, r8
    0021c3f1lea r9, [rbp+rsi]
    0021c3f6sub rax, rbx
    0021c3f9cmp r15, r14
    0021c3fcjae 0x21c4e8
    0021c402add rax, r15
    0021c405cmp rax, r11
    0021c408jb 0x21c52d
    0021c40elea rcx, [r15+r8]
    0021c412mov rdi, r15
    0021c415nop [rax+rax]
    0021c420nop [rax+rax]
    0021c42bnop [rax+rax]
    0021c436nop [rax+rax]
    0021c440
    0021c440loc_21c440:
    0021c440mov rax, r13
    0021c443mov r11, rcx
    0021c446and rax, rbx
    0021c449mov rax, [rbp+8*rax]
    0021c44eshr rax, 54
    0021c452add rbx, rax
    0021c455mov [r12], rbx
    0021c459sub r11, rbx
    0021c45cmovsxd rax, [rip+0x15c921]
    0021c463cmp r11, rax
    0021c466jae 0x21c440
    0021c468
    0021c468loc_21c468:
    0021c468test rdi, rdi
    0021c46bjne 0x21c500
    0021c471
    0021c471loc_21c471:
    0021c471add rdx, 2
    0021c475add rsi, 8
    0021c479
    0021c479loc_21c479:
    0021c479mov rax, [rsp+24]
    0021c47emov rcx, [rsp+32]
    0021c483shl r14, 54
    0021c487shl rcx, 36
    0021c48bshl rax, 49
    0021c48for rax, rcx
    0021c492mov rcx, [rsp+16]
    0021c497shl rcx, 53
    0021c49bor rax, rcx
    0021c49eor r14, rax
    0021c4a1mov [r9], r14
    0021c4a4mov [rbp+rsi], r10
    0021c4a9mov rsi, [rsp+40]
    0021c4aetest rsi, rsi
    0021c4b1je 0x21c4d0
    0021c4b3lea rdi, [rbp+8*rdx]
    0021c4b8movsxd rdx, [rsp+60]
    0021c4bdmov [rsp+8], r8
    0021c4c2shl rdx, 3
    0021c4c6call fn_f47d0
    0021c4cbmov r8, [rsp+8]
    0021c4d0
    0021c4d0loc_21c4d0:
    0021c4d0mov [r12+8], r8
    0021c4d5add rsp, 72
    0021c4d9pop rbx
    0021c4dapop rbp
    0021c4dbpop r12
    0021c4ddpop r13
    0021c4dfpop r14
    0021c4e1pop r15
    0021c4e3ret
    0021c4e4
    0021c4e4 0f 1f 40 00 ..@.
    0021c4e8
    0021c4e8loc_21c4e8:
    0021c4e8mov rcx, r8
    0021c4ebxor edi, edi
    0021c4edcmp rax, r11
    0021c4f0jae 0x21c440
    0021c4f6jmp 0x21c471
    0021c4fb
    0021c4fb 0f 1f 44 00 00 ..D..
    0021c500
    0021c500loc_21c500:
    0021c500mov rax, r15
    0021c503mov rdi, [rsp+8]
    0021c508mov esi, 8
    0021c50dmov edx, 2
    0021c512shl rax, 54
    0021c516mov [r9], rax
    0021c519add rdi, r15
    0021c51cmov r9, rbp
    0021c51flea r8, [r14+rdi]
    0021c523mov [r12+8], rdi
    0021c528jmp 0x21c479
    0021c52d
    0021c52dloc_21c52d:
    0021c52dmov rdi, r15
    0021c530jmp 0x21c468
    0021c340
    0021c535
    0021c535 // align 0x10
    0021c540
    0021c540caml_runtime_events_post_fork:
    0021c540mov rax, [rip+0x15c82d]
    0021c547test rax, rax
    0021c54ajne 0x21c558
    0021c54cret
    0021c54ddb 0xc0
    0021c54ejne 0x21c558
    0021c550ret
    0021c551
    0021c551 0f 1f 80 00 00 00 00 .......
    0021c558
    0021c558loc_21c558:
    0021c558movsxd rsi, [rip+0x15c839]
    0021c55fmov rdi, [rip+0x15c83a]
    0021c566push rbx
    0021c567lea rbx, [rip+2578]
    0021c56ecall fn_f4610
    0021c573mov rdi, [rip+0x15c80e]
    0021c57acall caml_stat_free
    0021c57fmov [rip+0x15c816], 0
    0021c58amov [rip+0x15c7e3], 0
    0021c595jmp 0x21c5ac
    0021c597
    0021c597 66 0f 1f 84 00 00 00 00 00 f........
    0021c5a0
    0021c5a0loc_21c5a0:
    0021c5a0xor edx, edx
    0021c5a2xor esi, esi
    0021c5a4mov rdi, rbx
    0021c5a7call caml_try_run_on_all_domains
    0021c5ac
    0021c5acloc_21c5ac:
    0021c5acmov rax, [rip+0x15c7c5]
    0021c5b3test rax, rax
    0021c5b6je 0x21c5a0
    0021c5b8pop rbx
    0021c5b9ret
    0021c540
    0021c5ba
    0021c5ba // align 0x10
    0021c5c0
    0021c5c0caml_runtime_events_current_location:
    0021c5c0mov rax, [rip+0x15c7ad]
    0021c5c7test rax, rax
    0021c5caje 0x21c5e0
    0021c5ccmov rdi, [rip+0x15c7b1]
    0021c5d3jmp 0x2168e0
    0021c5d8db 0x04
    0021c5d9db 0xa3
    0021c5dadb 0xff
    0021c5dbdb 0xff
    0021c5dc
    0021c5dc 0f 1f 40 00 ..@.
    0021c5e0
    0021c5e0loc_21c5e0:
    0021c5e0xor eax, eax
    0021c5e2ret
    0021c5c0
    0021c5e3
    0021c5e3 // align 0x10
    0021c5f0
    0021c5f0caml_runtime_events_destroy:
    0021c5f0push rbp
    0021c5f1push rbx
    0021c5f2sub rsp, 24
    0021c5f6mov rax, [0x28]
    0021c5ffmov [rsp+8], rax
    0021c604mov rax, [rip+0x15c769]
    0021c60btest rax, rax
    0021c60ejne 0x21c630
    0021c610mov rax, [rsp+8]
    0021c615sub rax, [0x28]
    0021c61ejne 0x21c68b
    0021c620add rsp, 24
    0021c624pop rbx
    0021c625pop rbp
    0021c626ret
    0021c627db 0x18
    0021c628pop rbx
    0021c629pop rbp
    0021c62aret
    0021c62b
    0021c62b 0f 1f 44 00 00 ..D..
    0021c630
    0021c630loc_21c630:
    0021c630xor r8l, r8l
    0021c633xor ecx, ecx
    0021c635mov edx, 1
    0021c63axor edi, edi
    0021c63cmov esi, 1
    0021c641lea rbp, [rsp+4]
    0021c646lea rbx, [rip-1149]
    0021c64dcall fn_21c340
    0021c652mov edx, [rip+0x15c728]
    0021c658xor eax, eax
    0021c65atest edx, edx
    0021c65csete al
    0021c65fmov [rsp+4], eax
    0021c663nop [rax+rax]
    0021c66enop
    0021c670
    0021c670loc_21c670:
    0021c670xor edx, edx
    0021c672mov rsi, rbp
    0021c675mov rdi, rbx
    0021c678call caml_try_run_on_all_domains
    0021c67dmov rax, [rip+0x15c6f4]
    0021c684test rax, rax
    0021c687jne 0x21c670
    0021c689jmp 0x21c614
    0021c68b
    0021c68bloc_21c68b:
    0021c68bcall fn_f4590
    0021c5f0
    0021c690
    0021c690caml_runtime_events_start:
    0021c690push rbx
    0021c691lea rbx, [rip+2276]
    0021c698jmp 0x21c6ac
    0021c69adb 0x00
    0021c69badd bl, ch
    0021c69ddb 0x0e
    0021c69e
    0021c69e 66 90 f.
    0021c6a0
    0021c6a0loc_21c6a0:
    0021c6a0xor edx, edx
    0021c6a2xor esi, esi
    0021c6a4mov rdi, rbx
    0021c6a7call caml_try_run_on_all_domains
    0021c6ac
    0021c6acloc_21c6ac:
    0021c6acmov rax, [rip+0x15c6c5]
    0021c6b3test rax, rax
    0021c6b6je 0x21c6a0
    0021c6b8pop rbx
    0021c6b9ret
    0021c690
    0021c6ba
    0021c6ba // align 0x10
    0021c6c0
    0021c6c0caml_runtime_events_pause:
    0021c6c0sub rsp, 24
    0021c6c4mov rax, [0x28]
    0021c6cdmov [rsp+8], rax
    0021c6d2xor eax, eax
    0021c6d4mov rdx, [rip+0x15c699]
    0021c6dbtest rdx, rdx
    0021c6deje 0x21c708
    0021c6e0mov edx, 1
    0021c6e5lock cmpxchg [rip+0x15c67e], rdx
    0021c6eejne 0x21c708
    0021c6f0mov [rsp], 0
    0021c6f8mov rax, [rip+0x15c675]
    0021c6fftest rax, rax
    0021c702jne 0x21c720
    0021c704mov rax, [rsp+8]
    0021c709sub rax, [0x28]
    0021c712jne 0x21c747
    0021c714add rsp, 24
    0021c718ret
    0021c719db 0x83
    0021c71adb 0xc4
    0021c71bsbb bl, al
    0021c71d
    0021c71d 0f 1f 00 ...
    0021c720
    0021c720loc_21c720:
    0021c720mov rax, [rip+0x15c649]
    0021c727test rax, rax
    0021c72ajne 0x21c708
    0021c72cmov r8, rsp
    0021c72fmov ecx, 1
    0021c734mov edx, 2
    0021c739xor edi, edi
    0021c73bmov esi, 1
    0021c740call fn_21c340
    0021c745jmp 0x21c708
    0021c747
    0021c747loc_21c747:
    0021c747call fn_f4590
    0021c6c0
    0021c74c
    0021c74c // align 0x10
    0021c750
    0021c750caml_runtime_events_resume:
    0021c750sub rsp, 24
    0021c754mov rdx, [0x28]
    0021c75dmov [rsp+8], rdx
    0021c762xor edx, edx
    0021c764mov rax, [rip+0x15c609]
    0021c76btest rax, rax
    0021c76eje 0x21c798
    0021c770mov eax, 1
    0021c775lock cmpxchg [rip+0x15c5ee], rdx
    0021c77ejne 0x21c798
    0021c780mov [rsp], 0
    0021c788mov rax, [rip+0x15c5e5]
    0021c78ftest rax, rax
    0021c792jne 0x21c7b0
    0021c794mov rax, [rsp+8]
    0021c799sub rax, [0x28]
    0021c7a2jne 0x21c7d7
    0021c7a4add rsp, 24
    0021c7a8ret
    0021c7a9db 0x83
    0021c7aadb 0xc4
    0021c7absbb bl, al
    0021c7ad
    0021c7ad 0f 1f 00 ...
    0021c7b0
    0021c7b0loc_21c7b0:
    0021c7b0mov rax, [rip+0x15c5b9]
    0021c7b7test rax, rax
    0021c7bajne 0x21c798
    0021c7bcmov r8, rsp
    0021c7bfmov ecx, 1
    0021c7c4mov edx, 3
    0021c7c9xor edi, edi
    0021c7cbmov esi, 1
    0021c7d0call fn_21c340
    0021c7d5jmp 0x21c798
    0021c7d7
    0021c7d7loc_21c7d7:
    0021c7d7call fn_f4590
    0021c750
    0021c7dc
    0021c7dc // align 0x10
    0021c7e0
    0021c7e0caml_runtime_events_are_active:
    0021c7e0mov rdx, [rip+0x15c58d]
    0021c7e7xor eax, eax
    0021c7e9test rdx, rdx
    0021c7ecjne 0x21c7f8
    0021c7eeret
    0021c7efdb 0xd2
    0021c7f0jne 0x21c7f8
    0021c7f2ret
    0021c7f3
    0021c7f3 0f 1f 44 00 00 ..D..
    0021c7f8
    0021c7f8loc_21c7f8:
    0021c7f8mov rax, [rip+0x15c571]
    0021c7fftest rax, rax
    0021c802sete al
    0021c805movzx eax, al
    0021c808ret
    0021c7e0
    0021c809
    0021c809 // align 0x10
    0021c810
    0021c810caml_ml_runtime_events_start:
    0021c810push rbx
    0021c811lea rbx, [rip+1892]
    0021c818jmp 0x21c82c
    0021c81adb 0x00
    0021c81badd bl, ch
    0021c81ddb 0x0e
    0021c81e
    0021c81e 66 90 f.
    0021c820
    0021c820loc_21c820:
    0021c820xor edx, edx
    0021c822xor esi, esi
    0021c824mov rdi, rbx
    0021c827call caml_try_run_on_all_domains
    0021c82c
    0021c82cloc_21c82c:
    0021c82cmov rax, [rip+0x15c545]
    0021c833test rax, rax
    0021c836je 0x21c820
    0021c838mov eax, 1
    0021c83dpop rbx
    0021c83eret
    0021c810
    0021c83f
    0021c83f // align 0x10
    0021c840
    0021c840caml_ml_runtime_events_pause:
    0021c840sub rsp, 24
    0021c844mov rax, [0x28]
    0021c84dmov [rsp+8], rax
    0021c852xor eax, eax
    0021c854mov rdx, [rip+0x15c519]
    0021c85btest rdx, rdx
    0021c85eje 0x21c888
    0021c860mov edx, 1
    0021c865lock cmpxchg [rip+0x15c4fe], rdx
    0021c86ejne 0x21c888
    0021c870mov [rsp], 0
    0021c878mov rax, [rip+0x15c4f5]
    0021c87ftest rax, rax
    0021c882jne 0x21c8a8
    0021c884mov rax, [rsp+8]
    0021c889sub rax, [0x28]
    0021c892jne 0x21c8cf
    0021c894mov eax, 1
    0021c899add rsp, 24
    0021c89dret
    0021c89edb 0x83
    0021c89fdb 0xc4
    0021c8a0sbb bl, al
    0021c8a2
    0021c8a2 66 0f 1f 44 00 00 f..D..
    0021c8a8
    0021c8a8loc_21c8a8:
    0021c8a8mov rax, [rip+0x15c4c1]
    0021c8aftest rax, rax
    0021c8b2jne 0x21c888
    0021c8b4mov r8, rsp
    0021c8b7mov ecx, 1
    0021c8bcmov edx, 2
    0021c8c1xor edi, edi
    0021c8c3mov esi, 1
    0021c8c8call fn_21c340
    0021c8cdjmp 0x21c888
    0021c8cf
    0021c8cfloc_21c8cf:
    0021c8cfcall fn_f4590
    0021c840
    0021c8d4
    0021c8d4 // align 0x10
    0021c8e0
    0021c8e0caml_ml_runtime_events_resume:
    0021c8e0sub rsp, 24
    0021c8e4mov rdx, [0x28]
    0021c8edmov [rsp+8], rdx
    0021c8f2xor edx, edx
    0021c8f4mov rax, [rip+0x15c479]
    0021c8fbtest rax, rax
    0021c8feje 0x21c928
    0021c900mov eax, 1
    0021c905lock cmpxchg [rip+0x15c45e], rdx
    0021c90ejne 0x21c928
    0021c910mov [rsp], 0
    0021c918mov rax, [rip+0x15c455]
    0021c91ftest rax, rax
    0021c922jne 0x21c948
    0021c924mov rax, [rsp+8]
    0021c929sub rax, [0x28]
    0021c932jne 0x21c96f
    0021c934mov eax, 1
    0021c939add rsp, 24
    0021c93dret
    0021c93edb 0x83
    0021c93fdb 0xc4
    0021c940sbb bl, al
    0021c942
    0021c942 66 0f 1f 44 00 00 f..D..
    0021c948
    0021c948loc_21c948:
    0021c948mov rax, [rip+0x15c421]
    0021c94ftest rax, rax
    0021c952jne 0x21c928
    0021c954mov r8, rsp
    0021c957mov ecx, 1
    0021c95cmov edx, 3
    0021c961xor edi, edi
    0021c963mov esi, 1
    0021c968call fn_21c340
    0021c96djmp 0x21c928
    0021c96f
    0021c96floc_21c96f:
    0021c96fcall fn_f4590
    0021c8e0
    0021c974
    0021c974 // align 0x10
    0021c980
    0021c980caml_ml_runtime_events_path:
    0021c980push r12
    0021c982push rbp
    0021c983push rbx
    0021c984sub rsp, 96
    0021c988mov rax, [0x28]
    0021c991mov [rsp+88], rax
    0021c996mov rax, [rip+0x59647]
    0021c99dmov rbx, [rax]
    0021c9a1lea rax, [rsp+16]
    0021c9a6mov [rsp+8], 1
    0021c9afmov rbp, [rbx+160]
    0021c9b6mov [rbx+160], rax
    0021c9bdmov eax, 1
    0021c9c2movq x0, rax
    0021c9c7lea rax, [rsp+8]
    0021c9ccmov [rsp+16], rbp
    0021c9d1punpcklqdq x0, x0
    0021c9d5mov [rsp+40], rax
    0021c9damovups [rsp+24], x0
    0021c9dfmov rax, [rip+0x15c38e]
    0021c9e6test rax, rax
    0021c9e9jne 0x21ca18
    0021c9ebmov rax, [rsp+8]
    0021c9f0mov [rbx+160], rbp
    0021c9f7mov rdx, [rsp+88]
    0021c9fcsub rdx, [0x28]
    0021ca05jne 0x21ca51
    0021ca07add rsp, 96
    0021ca0bpop rbx
    0021ca0cpop rbp
    0021ca0dpop r12
    0021ca0fret
    0021ca10db 0x5d
    0021ca11pop r12
    0021ca13ret
    0021ca14
    0021ca14 0f 1f 40 00 ..@.
    0021ca18
    0021ca18loc_21ca18:
    0021ca18xor esi, esi
    0021ca1amov edi, 1
    0021ca1fcall caml_alloc_small
    0021ca24mov [rsp+8], rax
    0021ca29mov rdx, [rip+0x15c348]
    0021ca30mov eax, 1
    0021ca35test rdx, rdx
    0021ca38je 0x21c9f4
    0021ca3amov rdi, [rip+0x15c347]
    0021ca41mov r12, [rsp+8]
    0021ca46call caml_copy_string
    0021ca4bmov [r12], rax
    0021ca4fjmp 0x21c9ef
    0021ca51
    0021ca51loc_21ca51:
    0021ca51call fn_f4590
    0021c980
    0021ca56
    0021ca56 // align 0x10
    0021ca60
    0021ca60caml_ml_runtime_events_are_active:
    0021ca60mov rax, [rip+0x15c30d]
    0021ca67test rax, rax
    0021ca6ajne 0x21ca80
    0021ca6cmov eax, 1
    0021ca71ret
    0021ca72db 0x00
    0021ca73add [rax], al
    0021ca75ret
    0021ca76
    0021ca76 66 2e 0f 1f 84 00 00 00 00 00 f.........
    0021ca80
    0021ca80loc_21ca80:
    0021ca80mov rdx, [rip+0x15c2e9]
    0021ca87mov eax, 3
    0021ca8ctest rdx, rdx
    0021ca8fjne 0x21ca70
    0021ca91ret
    0021ca60
    0021ca92
    0021ca92 // align 0x10
    0021caa0
    0021caa0caml_ev_begin:
    0021caa0mov rax, [rip+0x15c2cd]
    0021caa7test rax, rax
    0021caaajne 0x21cab8
    0021caacret
    0021caaddb 0xc0
    0021caaejne 0x21cab8
    0021cab0
    0021cab0loc_21cab0:
    0021cab0ret
    0021cab1
    0021cab1 0f 1f 80 00 00 00 00 .......
    0021cab8
    0021cab8loc_21cab8:
    0021cab8mov rax, [rip+0x15c2b1]
    0021cabftest rax, rax
    0021cac2jne 0x21cab0
    0021cac4mov edx, edi
    0021cac6xor r8l, r8l
    0021cac9xor ecx, ecx
    0021cacbmov esi, 2
    0021cad0xor edi, edi
    0021cad2jmp 0x21c340
    0021caa0
    0021cad7
    0021cad7 // align 0x10
    0021cae0
    0021cae0caml_ev_end:
    0021cae0mov rax, [rip+0x15c28d]
    0021cae7test rax, rax
    0021caeajne 0x21caf8
    0021caecret
    0021caeddb 0xc0
    0021caeejne 0x21caf8
    0021caf0
    0021caf0loc_21caf0:
    0021caf0ret
    0021caf1
    0021caf1 0f 1f 80 00 00 00 00 .......
    0021caf8
    0021caf8loc_21caf8:
    0021caf8mov rax, [rip+0x15c271]
    0021cafftest rax, rax
    0021cb02jne 0x21caf0
    0021cb04mov edx, edi
    0021cb06xor r8l, r8l
    0021cb09xor ecx, ecx
    0021cb0bmov esi, 3
    0021cb10xor edi, edi
    0021cb12jmp 0x21c340
    0021cae0
    0021cb17
    0021cb17 // align 0x10
    0021cb20
    0021cb20caml_ev_counter:
    0021cb20sub rsp, 24
    0021cb24mov rax, [0x28]
    0021cb2dmov [rsp+8], rax
    0021cb32mov rax, [rip+0x15c23b]
    0021cb39test rax, rax
    0021cb3cjne 0x21cb60
    0021cb3emov rax, [rsp+8]
    0021cb43sub rax, [0x28]
    0021cb4cjne 0x21cb88
    0021cb4eadd rsp, 24
    0021cb52ret
    0021cb53db 0x83
    0021cb54db 0xc4
    0021cb55sbb bl, al
    0021cb57
    0021cb57 66 0f 1f 84 00 00 00 00 00 f........
    0021cb60
    0021cb60loc_21cb60:
    0021cb60mov rax, [rip+0x15c209]
    0021cb67test rax, rax
    0021cb6ajne 0x21cb42
    0021cb6cmov [rsp], rsi
    0021cb70mov edx, edi
    0021cb72mov r8, rsp
    0021cb75mov ecx, 1
    0021cb7amov esi, 4
    0021cb7fxor edi, edi
    0021cb81call fn_21c340
    0021cb86jmp 0x21cb42
    0021cb88
    0021cb88loc_21cb88:
    0021cb88call fn_f4590
    0021cb20
    0021cb8d
    0021cb8d // align 0x10
    0021cb90
    0021cb90caml_ev_lifecycle:
    0021cb90sub rsp, 24
    0021cb94mov [rsp+8], rsi
    0021cb99mov rax, [rip+0x15c1d4]
    0021cba0test rax, rax
    0021cba3jne 0x21cbb0
    0021cba5add rsp, 24
    0021cba9
    0021cba9loc_21cba9:
    0021cba9ret
    0021cbaadb 0x83
    0021cbabdb 0xc4
    0021cbacsbb bl, al
    0021cbae
    0021cbae 66 90 f.
    0021cbb0
    0021cbb0loc_21cbb0:
    0021cbb0mov rax, [rip+0x15c1b9]
    0021cbb7test rax, rax
    0021cbbajne 0x21cba9
    0021cbbclea r8, [rsp+8]
    0021cbc1mov edx, edi
    0021cbc3mov ecx, 1
    0021cbc8xor edi, edi
    0021cbcamov esi, 1
    0021cbcfcall fn_21c340
    0021cbd4add rsp, 24
    0021cbd8ret
    0021cb90
    0021cbd9
    0021cbd9 // align 0x40
    0021cc00
    0021cc00fn_21cc00:
    0021cc00push r13
    0021cc02push r12
    0021cc04push rbp
    0021cc05push rbx
    0021cc06sub rsp, 8
    0021cc0acall fn_f42f0
    0021cc0fmov edi, 1024
    0021cc14movsxd rbp, eax
    0021cc17call caml_stat_alloc
    0021cc1cmov r9, [rip+0x15c16d]
    0021cc23mov [rip+0x15c15e], rax
    0021cc2amov rdi, rax
    0021cc2dtest r9, r9
    0021cc30je 0x21ce50
    0021cc36sub rsp, 8
    0021cc3amov edx, 1
    0021cc3fmov esi, 1024
    0021cc44xor eax, eax
    0021cc46push rbp
    0021cc47lea r8, [rip+0x12777]
    0021cc4emov rcx, -1
    0021cc55call fn_f46b0
    0021cc5apop rax
    0021cc5bpop rdx
    0021cc5c
    0021cc5cloc_21cc5c:
    0021cc5cmov rbx, [rip+0x58cf5]
    0021cc63mov edx, 384
    0021cc68mov esi, 66
    0021cc6dmovsxd rax, [rip+0x15c110]
    0021cc74mov rdi, [rip+0x15c10d]
    0021cc7badd rax, 10
    0021cc7fimul rax, [rbx+160]
    0021cc87lea eax, [8*rax+0x100040]
    0021cc8emov [rip+0x15c104], eax
    0021cc94xor eax, eax
    0021cc96call fn_f4470
    0021cc9bmov r12l, eax
    0021cc9etest eax, eax
    0021cca0js 0x21cead
    0021cca6movsxd r13, [rip+0x15c0eb]
    0021ccadmov edi, eax
    0021ccafmov rsi, r13
    0021ccb2call fn_f44b0
    0021ccb7test eax, eax
    0021ccb9js 0x21ce9f
    0021ccbfxor r9l, r9l
    0021ccc2mov r8l, r12l
    0021ccc5mov ecx, 1
    0021cccamov edx, 3
    0021cccfmov rsi, r13
    0021ccd2xor edi, edi
    0021ccd4call fn_f4110
    0021ccd9mov [rip+0x15c0c0], rax
    0021cce0test rax, rax
    0021cce3je 0x21ce93
    0021cce9mov edi, r12l
    0021cceccall fn_f4140
    0021ccf1mov rdx, [rip+0x15c0a8]
    0021ccf8mov rsi, [rbx+160]
    0021ccffmov eax, [rip+0x15c07f]
    0021cd05mov [rdx], 1
    0021cd0cmov rcx, [rbx+160]
    0021cd13mov [rdx+16], 80
    0021cd1bmov [rdx+8], rcx
    0021cd1fmovsxd rcx, eax
    0021cd22imul eax, esi
    0021cd25mov [rdx+32], rcx
    0021cd29lea rdi, [8*rcx]
    0021cd31lea ecx, [rsi+4*rsi]
    0021cd34shl ecx, 4
    0021cd37mov [rdx+24], rdi
    0021cd3bshl eax, 3
    0021cd3emovsxd rcx, ecx
    0021cd41mov [rdx+40], 64
    0021cd49add rcx, 64
    0021cd4dcdqe
    0021cd4fadd rax, rcx
    0021cd52mov [rdx+48], rcx
    0021cd56mov [rdx+56], rax
    0021cd5acmp [rbx+160], 0
    0021cd62je 0x21cdb5
    0021cd64mov edi, 64
    0021cd69xor ecx, ecx
    0021cd6bxor eax, eax
    0021cd6dxor esi, esi
    0021cd6fjmp 0x21cd8b
    0021cd71
    0021cd71 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 ff...........@.
    0021cd80
    0021cd80loc_21cd80:
    0021cd80mov rdx, [rip+0x15c019]
    0021cd87mov rdi, [rdx+40]
    0021cd8b
    0021cd8bloc_21cd8b:
    0021cd8blea rax, [rax+4*rax]
    0021cd8fshl rax, 4
    0021cd93add rax, rdi
    0021cd96add rax, rdx
    0021cd99mov rdx, rsi
    0021cd9cxchg [rax], rdx
    0021cd9fmov rdx, rsi
    0021cda2xchg [rax+8], rdx
    0021cda6add ecx, 1
    0021cda9movsxd rax, ecx
    0021cdaccmp rax, [rbx+160]
    0021cdb3jb 0x21cd80
    0021cdb5
    0021cdb5loc_21cdb5:
    0021cdb5lea r12, [rip+0x15bf84]
    0021cdbcmov rdi, r12
    0021cdbfcall fn_f4710
    0021cdc4test eax, eax
    0021cdc6jne 0x21ce85
    0021cdccmov rbx, [rip+0x15b5dd]
    0021cdd3mov rdi, r12
    0021cdd6mov [rip+0x15bf97], 1
    0021cde1call fn_f47c0
    0021cde6test eax, eax
    0021cde8jne 0x21ce77
    0021cdeemov rsi, rbp
    0021cdf1xor edi, edi
    0021cdf3mov [rip+0x15bf72], 0
    0021cdfecall caml_ev_lifecycle
    0021ce03mov rbp, [rip+0x15bf96]
    0021ce0atest bl, 1
    0021ce0djne 0x21ce3e
    0021ce0fnop
    0021ce10
    0021ce10loc_21ce10:
    0021ce10mov rax, [rbx]
    0021ce13mov edx, 127
    0021ce18mov rsi, [rax+8]
    0021ce1cmov rdi, [rax]
    0021ce1fsar rdi, 1
    0021ce22movsxd rdi, edi
    0021ce25shl rdi, 7
    0021ce29add rdi, [rbp+56]
    0021ce2dadd rdi, rbp
    0021ce30call fn_f4630
    0021ce35mov rbx, [rbx+8]
    0021ce39test bl, 1
    0021ce3cje 0x21ce10
    0021ce3e
    0021ce3eloc_21ce3e:
    0021ce3eadd rsp, 8
    0021ce42pop rbx
    0021ce43pop rbp
    0021ce44pop r12
    0021ce46pop r13
    0021ce48ret
    0021ce49
    0021ce49 0f 1f 80 00 00 00 00 .......
    0021ce50
    0021ce50loc_21ce50:
    0021ce50mov r9, rbp
    0021ce53mov edx, 1
    0021ce58mov esi, 1024
    0021ce5dxor eax, eax
    0021ce5flea r8, [rip+0x12562]
    0021ce66mov rcx, -1
    0021ce6dcall fn_f46b0
    0021ce72jmp 0x21cc5c
    0021ce77
    0021ce77loc_21ce77:
    0021ce77mov esi, eax
    0021ce79lea rdi, [rip+0x1269a]
    0021ce80call caml_plat_fatal_error
    0021ce85
    0021ce85loc_21ce85:
    0021ce85mov esi, eax
    0021ce87lea rdi, [rip+0x12681]
    0021ce8ecall caml_plat_fatal_error
    0021ce93
    0021ce93loc_21ce93:
    0021ce93lea rdi, [rip+0x12552]
    0021ce9acall caml_fatal_error
    0021ce9f
    0021ce9floc_21ce9f:
    0021ce9flea rdi, [rip+0x1252d]
    0021cea6xor eax, eax
    0021cea8call caml_fatal_error
    0021cead
    0021ceadloc_21cead:
    0021ceadmov rsi, [rip+0x15bed4]
    0021ceb4lea rdi, [rip+0x142fd]
    0021cebbxor eax, eax
    0021cebdcall caml_fatal_error
    0021cc00
    0021cec2
    0021cec2 // align 0x10
    0021ced0
    0021ced0caml_runtime_events_init:
    0021ced0sub rsp, 8
    0021ced4lea rdi, [rip+0x15be61]
    0021cedbcall caml_plat_mutex_init
    0021cee0lea rdi, [rip+0x15b4c5]
    0021cee7call caml_register_generational_global_root
    0021ceeclea rdi, [rip+0x12510]
    0021cef3call caml_secure_getenv
    0021cef8mov [rip+0x15be8d], rax
    0021cefftest rax, rax
    0021cf02je 0x21cf17
    0021cf04mov rdi, rax
    0021cf07call caml_stat_strdup
    0021cf0cmov [rip+0x15be79], rax
    0021cf13mov rax, [rip+0x58a3a]
    0021cf1alea rdi, [rip+0x124fb]
    0021cf21mov rcx, [rax+48]
    0021cf25mov eax, 1
    0021cf2ashl eax, cl
    0021cf2cmov [rip+0x15be4e], eax
    0021cf32call caml_secure_getenv
    0021cf37lea rdi, [rip+0x124fc]
    0021cf3etest rax, rax
    0021cf41setne al
    0021cf44movzx eax, al
    0021cf47mov [rip+0x15be2f], eax
    0021cf4dcall caml_secure_getenv
    0021cf52test rax, rax
    0021cf55je 0x21cf67
    0021cf57mov rax, [rip+0x15be16]
    0021cf5etest rax, rax
    0021cf61je 0x21cf70
    0021cf63add rsp, 8
    0021cf67
    0021cf67loc_21cf67:
    0021cf67ret
    0021cf68db 0x83
    0021cf69db 0xc4
    0021cf6aor bl, al
    0021cf6c
    0021cf6c 0f 1f 40 00 ..@.
    0021cf70
    0021cf70loc_21cf70:
    0021cf70add rsp, 8
    0021cf74jmp 0x21cc00
    0021ced0
    0021cf79
    0021cf79 // align 0x10
    0021cf80
    0021cf80fn_21cf80:
    0021cf80cmp edx, 1
    0021cf83je 0x21cfb8
    0021cf85push rbx
    0021cf86mov edi, edx
    0021cf88call caml_global_barrier_and_check_final
    0021cf8dmov rbx, rax
    0021cf90test rax, rax
    0021cf93je 0x21cfb0
    0021cf95mov rax, [rip+0x15bdd8]
    0021cf9ctest rax, rax
    0021cf9fje 0x21cfd0
    0021cfa1mov rdi, rbx
    0021cfa4pop rbx
    0021cfa5jmp 0x201620
    0021cfaadb 0x72
    0021cfabdb 0x46
    0021cfacdb 0xfe
    0021cfaddb 0xff
    0021cfae
    0021cfae 66 90 f.
    0021cfb0
    0021cfb0loc_21cfb0:
    0021cfb0pop rbx
    0021cfb1ret
    0021cfb2
    0021cfb2 66 0f 1f 44 00 00 f..D..
    0021cfb8
    0021cfb8loc_21cfb8:
    0021cfb8mov rax, [rip+0x15bdb9]
    0021cfbftest rax, rax
    0021cfc2je 0x21cfc8
    0021cfc4ret
    0021cfc5
    0021cfc5 0f 1f 00 ...
    0021cfc8
    0021cfc8loc_21cfc8:
    0021cfc8jmp 0x21cc00
    0021cfcd
    0021cfcd 0f 1f 00 ...
    0021cfd0
    0021cfd0loc_21cfd0:
    0021cfd0call fn_21cc00
    0021cfd5mov rdi, rbx
    0021cfd8pop rbx
    0021cfd9jmp 0x201620
    0021cf80
    0021cfde
    0021cfde // align 0x10
    0021cfe0
    0021cfe0caml_ev_alloc:
    0021cfe0mov rax, [rip+0x15bd8d]
    0021cfe7test rax, rax
    0021cfeajne 0x21cff8
    0021cfecret
    0021cfeddb 0xc0
    0021cfeejne 0x21cff8
    0021cff0
    0021cff0loc_21cff0:
    0021cff0ret
    0021cff1
    0021cff1 0f 1f 80 00 00 00 00 .......
    0021cff8
    0021cff8loc_21cff8:
    0021cff8mov rax, [rip+0x15bd71]
    0021cffftest rax, rax
    0021d002jne 0x21cff0
    0021d004cmp rdi, 9
    0021d008ja 0x21d020
    0021d00alea rax, [rip+0x15bc8f]
    0021d011add [rax+8*rdi], 1
    0021d016ret
    0021d017
    0021d017 66 0f 1f 84 00 00 00 00 00 f........
    0021d020
    0021d020loc_21d020:
    0021d020lea rax, [rdi-10]
    0021d024cmp rax, 89
    0021d028ja 0x21d050
    0021d02amov rax, 0xcccccccccccccccd
    0021d034mul rdi
    0021d037lea rax, [rip+0x15bc62]
    0021d03eshr rdx, 3
    0021d042add [rax+8*rdx+72], 1
    0021d048ret
    0021d049
    0021d049 0f 1f 80 00 00 00 00 .......
    0021d050
    0021d050loc_21d050:
    0021d050add [rip+0x15bce0], 1
    0021d058ret
    0021cfe0
    0021d059
    0021d059 // align 0x10
    0021d060
    0021d060caml_ev_alloc_flush:
    0021d060mov rax, [rip+0x15bd0d]
    0021d067test rax, rax
    0021d06ajne 0x21d078
    0021d06cret
    0021d06ddb 0xc0
    0021d06ejne 0x21d078
    0021d070ret
    0021d071
    0021d071 0f 1f 80 00 00 00 00 .......
    0021d078
    0021d078loc_21d078:
    0021d078push rbx
    0021d079mov rbx, [rip+0x15bcf0]
    0021d080test rbx, rbx
    0021d083jne 0x21d0b4
    0021d085mov ecx, 20
    0021d08axor edx, edx
    0021d08cxor edi, edi
    0021d08emov esi, 5
    0021d093lea r8, [rip+0x15bc06]
    0021d09acall fn_21c340
    0021d09flea rdx, [rip+0x15bc02]
    0021d0a6mov ecx, 19
    0021d0abmov rax, rbx
    0021d0aemov rdi, rdx
    0021d0b1rep stosq [rdi], rax
    0021d0b4
    0021d0b4loc_21d0b4:
    0021d0b4pop rbx
    0021d0b5ret
    0021d060
    0021d0b6
    0021d0b6 // align 0x10
    0021d0c0
    0021d0c0caml_runtime_events_user_register:
    0021d0c0push r13
    0021d0c2push r12
    0021d0c4push rbp
    0021d0c5push rbx
    0021d0c6mov ebx, 1
    0021d0cbsub rsp, 200
    0021d0d2movdqa x0, [rip+53250]
    0021d0damov [rsp+24], rdi
    0021d0dfmov [rsp+16], rsi
    0021d0e4mov [rsp+8], rdx
    0021d0e9mov rax, [0x28]
    0021d0f2mov [rsp+184], rax
    0021d0famov rax, [rip+0x58ee3]
    0021d101mov rbp, [rax]
    0021d105lea rax, [rsp+24]
    0021d10amovups [rsp+56], x0
    0021d10fmov [rsp+32], 1
    0021d118movq x0, rax
    0021d11dlea rax, [rsp+16]
    0021d122movq x1, rax
    0021d127lea rax, [rsp+8]
    0021d12cmov r12, [rbp+160]
    0021d133mov [rsp+40], 1
    0021d13cpunpcklqdq x0, x1
    0021d140mov [rsp+88], rax
    0021d145lea rax, [rsp+48]
    0021d14amov [rsp+112], rax
    0021d14flea rax, [rsp+112]
    0021d154movups [rsp+72], x0
    0021d159movdqa x0, [rip+53099]
    0021d161mov [rbp+160], rax
    0021d168lea rax, [rsp+32]
    0021d16dmovups [rsp+120], x0
    0021d172movq x0, rax
    0021d177lea rax, [rsp+40]
    0021d17cmovq x2, rax
    0021d181mov [rsp+48], r12
    0021d186punpcklqdq x0, x2
    0021d18amovups [rsp+136], x0
    0021d192lock xadd [rip+0x15bbc9], rbx
    0021d19bcmp ebx, 8192
    0021d1a1jg 0x21d2fc
    0021d1a7mov rdi, [rsp+24]
    0021d1accall caml_string_length
    0021d1b1cmp eax, 127
    0021d1b4jg 0x21d2f0
    0021d1bamov rdi, [rsp+24]
    0021d1bfcall caml_string_is_c_safe
    0021d1c4test eax, eax
    0021d1c6je 0x21d2e4
    0021d1ccxor esi, esi
    0021d1cemov edi, 4
    0021d1d3movsxd rbx, ebx
    0021d1d6call caml_alloc_small
    0021d1dblea rdx, [rbx+rbx+1]
    0021d1e0lea r13, [rip+0x15bb55]
    0021d1e7mov [rsp+40], rax
    0021d1ecmov rdi, r13
    0021d1efmov [rax], rdx
    0021d1f2mov rdx, [rsp+24]
    0021d1f7mov rax, [rsp+40]
    0021d1fcmov [rax+8], rdx
    0021d200mov rdx, [rsp+8]
    0021d205mov rax, [rsp+40]
    0021d20amov [rax+16], rdx
    0021d20emov rdx, [rsp+16]
    0021d213mov rax, [rsp+40]
    0021d218mov [rax+24], rdx
    0021d21ccall fn_f4710
    0021d221test eax, eax
    0021d223jne 0x21d2d6
    0021d229mov rax, [rip+0x15bb44]
    0021d230test rax, rax
    0021d233jne 0x21d2b0
    0021d235xor esi, esi
    0021d237mov edi, 2
    0021d23ccall caml_alloc_small
    0021d241mov rdx, [rsp+40]
    0021d246lea rdi, [rip+0x15b15f]
    0021d24dmov [rsp+32], rax
    0021d252mov [rax], rdx
    0021d255mov rdx, [rip+0x15b150]
    0021d25cmov rax, [rsp+32]
    0021d261mov [rax+8], rdx
    0021d265mov rsi, [rsp+32]
    0021d26acall caml_modify_generational_global_root
    0021d26fmov rdi, r13
    0021d272call fn_f47c0
    0021d277test eax, eax
    0021d279jne 0x21d30d
    0021d27fmov [rbp+160], r12
    0021d286mov rax, [rsp+40]
    0021d28bmov rdx, [rsp+184]
    0021d293sub rdx, [0x28]
    0021d29cjne 0x21d308
    0021d29eadd rsp, 200
    0021d2a5pop rbx
    0021d2a6pop rbp
    0021d2a7pop r12
    0021d2a9pop r13
    0021d2abret
    0021d2acmov rdi, [rip+0x15bae9]
    0021d2b3shl rbx, 7
    0021d2b7mov rsi, [rsp+24]
    0021d2bcmov edx, 127
    0021d2c1add rbx, [rdi+56]
    0021d2c5add rdi, rbx
    0021d2c8call fn_f4630
    0021d2cdjmp 0x21d239
    0021d2d2mov esi, eax
    0021d2d4lea rdi, [rip+0x12230]
    0021d2dbcall caml_plat_fatal_error
    0021d2e0lea rdi, [rip+0x13f85]
    0021d2e7call caml_invalid_argument
    0021d2eclea rdi, [rip+0x13f31]
    0021d2f3call caml_invalid_argument
    0021d2f8lea rdi, [rip+0x13edd]
    0021d2ffcall caml_invalid_argument
    0021d304call fn_f4590
    0021d309mov esi, eax
    0021d30blea rdi, [rip+0x12204]
    0021d312call caml_plat_fatal_error
    0021d317db 0xb5
    0021d318out 255, al
    0021d31adb 0xff
    0021d0c0
    0021d31b
    0021d31b // align 0x10
    0021d320
    0021d320caml_runtime_events_user_write:
    0021d320push rbp
    0021d321push rbx
    0021d322sub rsp, 216
    0021d329movdqa x1, [rip+52651]
    0021d331mov [rsp+24], rdi
    0021d336mov [rsp+16], rsi
    0021d33bmov [rsp+8], rdx
    0021d340mov rax, [0x28]
    0021d349mov [rsp+200], rax
    0021d351mov rax, [rip+0x58c8c]
    0021d358mov rbx, [rax]
    0021d35clea rax, [rsp+24]
    0021d361mov [rsp+32], 1
    0021d36amovq x0, rax
    0021d36flea rax, [rsp+16]
    0021d374mov [rsp+40], 1
    0021d37dmovq x2, rax
    0021d382lea rax, [rsp+8]
    0021d387mov rbp, [rbx+160]
    0021d38emov [rsp+48], 1
    0021d397mov [rsp+104], rax
    0021d39clea rax, [rsp+64]
    0021d3a1punpcklqdq x0, x2
    0021d3a5mov [rsp+128], rax
    0021d3adlea rax, [rsp+128]
    0021d3b5mov [rbx+160], rax
    0021d3bclea rax, [rsp+32]
    0021d3c1movups [rsp+88], x0
    0021d3c6movq x0, rax
    0021d3cblea rax, [rsp+40]
    0021d3d0movq x3, rax
    0021d3d5lea rax, [rsp+48]
    0021d3damov [rsp+64], rbp
    0021d3dfpunpcklqdq x0, x3
    0021d3e3mov [rsp+168], rax
    0021d3ebmovups [rsp+72], x1
    0021d3f0movups [rsp+136], x1
    0021d3f8movups [rsp+152], x0
    0021d400mov rax, [rip+0x15b96d]
    0021d407test rax, rax
    0021d40ajne 0x21d440
    0021d40cmov [rbx+160], rbp
    0021d413mov rax, [rsp+200]
    0021d41bsub rax, [0x28]
    0021d424jne 0x21d580
    0021d42aadd rsp, 216
    0021d431mov eax, 1
    0021d436pop rbx
    0021d437pop rbp
    0021d438ret
    0021d439db 0x00
    0021d43apop rbx
    0021d43bpop rbp
    0021d43cret
    0021d43d
    0021d43d 0f 1f 00 ...
    0021d440
    0021d440loc_21d440:
    0021d440mov rax, [rip+0x15b929]
    0021d447test rax, rax
    0021d44ajne 0x21d410
    0021d44cmov rdx, [rsi]
    0021d44fmov [rsp+32], rdx
    0021d454mov rax, [rsi+16]
    0021d458mov [rsp+40], rax
    0021d45dtest al, 1
    0021d45fje 0x21d4a8
    0021d461sar rax, 1
    0021d464test eax, eax
    0021d466je 0x21d530
    0021d46ccmp eax, 1
    0021d46fje 0x21d550
    0021d475cmp eax, 2
    0021d478jne 0x21d410
    0021d47amov rax, [rsp+8]
    0021d47fmov esi, 2
    0021d484mov edi, 1
    0021d489sar rax, 1
    0021d48ccmp eax, 1
    0021d48fsbb esi, -1
    0021d492sar rdx, 1
    0021d495xor r8l, r8l
    0021d498xor ecx, ecx
    0021d49acall fn_21c340
    0021d49fjmp 0x21d410
    0021d4a4
    0021d4a4 0f 1f 40 00 ..@.
    0021d4a8
    0021d4a8loc_21d4a8:
    0021d4a8mov rax, [rax]
    0021d4abmov rdx, [rsp+8]
    0021d4b0mov rsi, [rsp+24]
    0021d4b5mov rdi, [rax]
    0021d4b8call caml_callback2
    0021d4bdmov [rsp+48], rax
    0021d4c2mov rdx, [rip+0x15b8af]
    0021d4c9test rdx, rdx
    0021d4ccje 0x21d410
    0021d4d2mov rdx, [rip+0x15b897]
    0021d4d9test rdx, rdx
    0021d4dcjne 0x21d410
    0021d4e2sar rax, 1
    0021d4e5mov edi, 1
    0021d4eamovsxd rcx, eax
    0021d4edadd rcx, 8
    0021d4f1mov rsi, rcx
    0021d4f4shr rcx, 3
    0021d4f8and rsi, -8
    0021d4fclea rdx, [rsi-1]
    0021d500sub edx, eax
    0021d502mov rax, [rsp+24]
    0021d507mov [rsi+rax-1], dl
    0021d50bmov rdx, [rsp+32]
    0021d510mov esi, 4
    0021d515mov r8, [rsp+24]
    0021d51asar rdx, 1
    0021d51dcall fn_21c340
    0021d522jmp 0x21d410
    0021d527
    0021d527 66 0f 1f 84 00 00 00 00 00 f........
    0021d530
    0021d530loc_21d530:
    0021d530sar rdx, 1
    0021d533xor r8l, r8l
    0021d536xor ecx, ecx
    0021d538xor esi, esi
    0021d53amov edi, 1
    0021d53fcall fn_21c340
    0021d544jmp 0x21d410
    0021d549
    0021d549 0f 1f 80 00 00 00 00 .......
    0021d550
    0021d550loc_21d550:
    0021d550mov rax, [rsp+8]
    0021d555sar rdx, 1
    0021d558lea r8, [rsp+56]
    0021d55dmov ecx, 1
    0021d562mov esi, 1
    0021d567mov edi, 1
    0021d56csar rax, 1
    0021d56fcdqe
    0021d571mov [rsp+56], rax
    0021d576call fn_21c340
    0021d57bjmp 0x21d410
    0021d580
    0021d580loc_21d580:
    0021d580call fn_f4590
    0021d320
    0021d585
    0021d585 // align 0x10
    0021d590
    0021d590caml_runtime_events_user_resolve:
    0021d590push r15
    0021d592mov r15l, esi
    0021d595push r14
    0021d597push r13
    0021d599push r12
    0021d59bmov r12, rdi
    0021d59epush rbp
    0021d59flea rbp, [rip+0x15b796]
    0021d5a6push rbx
    0021d5a7mov rdi, rbp
    0021d5aasub rsp, 120
    0021d5aemovdqa x0, [rip+52006]
    0021d5b6mov rax, [0x28]
    0021d5bfmov [rsp+104], rax
    0021d5c4mov rax, [rip+0x58a19]
    0021d5cbmov r13, [rax]
    0021d5cflea rax, [rsp+32]
    0021d5d4movups [rsp+40], x0
    0021d5d9mov [rsp+8], 1
    0021d5e2mov [rsp+16], 1
    0021d5ebmov r14, [r13+160]
    0021d5f2mov [r13+160], rax
    0021d5f9lea rax, [rsp+8]
    0021d5femovq x0, rax
    0021d603lea rax, [rsp+16]
    0021d608mov [rsp+32], r14
    0021d60dmov [rsp+24], 1
    0021d616movq x1, rax
    0021d61blea rax, [rsp+24]
    0021d620punpcklqdq x0, x1
    0021d624mov [rsp+72], rax
    0021d629movups [rsp+56], x0
    0021d62ecall fn_f4710
    0021d633test eax, eax
    0021d635jne 0x21d707
    0021d63bmov rdi, rbp
    0021d63emov rbx, [rip+0x15ad67]
    0021d645call fn_f47c0
    0021d64atest eax, eax
    0021d64cje 0x21d686
    0021d64ejmp 0x21d6f9
    0021d653db 0xa2
    0021d654add [rax], al
    0021d656db 0x00
    0021d657
    0021d657 66 0f 1f 84 00 00 00 00 00 f........
    0021d660
    0021d660loc_21d660:
    0021d660mov rbp, [rbx]
    0021d663mov edx, 128
    0021d668mov rsi, r12
    0021d66bmov [rsp+8], rbp
    0021d670mov rdi, [rbp+8]
    0021d674mov [rsp+16], rdi
    0021d679call fn_f4240
    0021d67etest eax, eax
    0021d680je 0x21d696
    0021d682mov rbx, [rbx+8]
    0021d686
    0021d686loc_21d686:
    0021d686test bl, 1
    0021d689je 0x21d660
    0021d68bmov ebp, 1
    0021d690cmp r15l, 3
    0021d694jne 0x21d6c0
    0021d696
    0021d696loc_21d696:
    0021d696mov [r13+160], r14
    0021d69dmov rax, [rsp+104]
    0021d6a2sub rax, [0x28]
    0021d6abjne 0x21d6f4
    0021d6adadd rsp, 120
    0021d6b1mov rax, rbp
    0021d6b4pop rbx
    0021d6b5pop rbp
    0021d6b6pop r12
    0021d6b8pop r13
    0021d6bapop r14
    0021d6bcpop r15
    0021d6beret
    0021d6bf
    0021d6bf 90 .
    0021d6c0
    0021d6c0loc_21d6c0:
    0021d6c0mov esi, 128
    0021d6c5mov rdi, r12
    0021d6c8call fn_f4330
    0021d6cdmov rsi, r12
    0021d6d0mov rdi, rax
    0021d6d3call caml_alloc_initialized_string
    0021d6d8lea rdx, [r15+r15+1]
    0021d6ddmov esi, 1
    0021d6e2mov rdi, rax
    0021d6e5mov [rsp+24], rax
    0021d6eacall caml_runtime_events_user_register
    0021d6efmov rbp, rax
    0021d6f2jmp 0x21d696
    0021d6f4
    0021d6f4loc_21d6f4:
    0021d6f4call fn_f4590
    0021d6f9
    0021d6f9loc_21d6f9:
    0021d6f9mov esi, eax
    0021d6fblea rdi, [rip+0x11e18]
    0021d702call caml_plat_fatal_error
    0021d707
    0021d707loc_21d707:
    0021d707mov esi, eax
    0021d709lea rdi, [rip+0x11dff]
    0021d710call caml_plat_fatal_error
    0021d590
    0021d715
    0021d715 // align 0x40
    0021d740
    0021d740fn_21d740:
    0021d740mov rax, rdx
    0021d743mov rdx, [rdi+8]
    0021d747test rdx, rdx
    0021d74aje 0x21d759
    0021d74cnop [rax]
    0021d750
    0021d750loc_21d750:
    0021d750mov rdx, [rdx+8]
    0021d754test rdx, rdx
    0021d757jne 0x21d750
    0021d759
    0021d759loc_21d759:
    0021d759mov esi, esi
    0021d75blea rdx, [rip+0x14d3e]
    0021d762lea r9, [rdi+32768]
    0021d769movzx edx, [rdx+rsi]
    0021d76dadd rdx, 4
    0021d771add [rax+24], rdx
    0021d775lea rcx, [rdi+8*rdx]
    0021d779lea rdi, [rip+0x14d40]
    0021d780mov r10l, [rdi+4*rsi]
    0021d784lea rdi, [8*r10]
    0021d78clea rsi, [rcx+rdi]
    0021d790cmp r9, rsi
    0021d793jae 0x21d7f1
    0021d795jmp 0x21d808
    0021d797
    0021d797 66 66 2e 0f 1f 84 00 00 00 ff.......
    0021d7a0 00 00 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 2e ..ff.........ff.
    0021d7b0 0f 1f 84 00 00 00 00 00 0f 1f 84 00 00 00 00 00 ................
    0021d7c0
    0021d7c0loc_21d7c0:
    0021d7c0mov r8, [rax+8]
    0021d7c4shr rdx, 10
    0021d7c8add rsi, rdi
    0021d7cbadd [rax+32], 1
    0021d7d0add rcx, rdi
    0021d7d3lea r8, [rdx+r8+1]
    0021d7d8mov [rax+8], r8
    0021d7dcmov r8, [rax+24]
    0021d7e0lea r8, [r10+r8-1]
    0021d7e5sub r8, rdx
    0021d7e8mov [rax+24], r8
    0021d7eccmp r9, rsi
    0021d7efjb 0x21d808
    0021d7f1
    0021d7f1loc_21d7f1:
    0021d7f1mov rdx, [rcx]
    0021d7f4test rdx, rdx
    0021d7f7jne 0x21d7c0
    0021d7f9add rsi, rdi
    0021d7fcadd [rax+16], r10
    0021d800add rcx, rdi
    0021d803cmp r9, rsi
    0021d806jae 0x21d7f1
    0021d808
    0021d808loc_21d808:
    0021d808add [rax], 4096
    0021d80fret
    0021d740
    0021d810
    0021d810 // align 0x40
    0021d840
    0021d840fn_21d840:
    0021d840push rbx
    0021d841lea r9, [rsi+32768]
    0021d848pxor x0, x0
    0021d84csub rsp, 80
    0021d850mov rax, [0x28]
    0021d859mov [rsp+72], rax
    0021d85exor eax, eax
    0021d860mov eax, edx
    0021d862lea rdx, [rip+0x14c37]
    0021d869movaps [rsp], x0
    0021d86dmovzx edx, [rdx+rax]
    0021d871movaps [rsp+32], x0
    0021d876movaps [rsp+16], x0
    0021d87blea rcx, [rdx+4]
    0021d87fmovaps [rsp+48], x0
    0021d884lea rdx, [rsi+8*rcx]
    0021d888lea rsi, [rip+0x14c31]
    0021d88fmov [rsp+32], rcx
    0021d894mov r10l, [rsi+4*rax]
    0021d898lea rsi, [8*r10]
    0021d8a0lea rcx, [rdx+rsi]
    0021d8a4cmp r9, rcx
    0021d8a7jb 0x21d940
    0021d8adnop [rax+rax]
    0021d8b8nop [rax+rax]
    0021d8c0
    0021d8c0loc_21d8c0:
    0021d8c0mov rax, [rdx]
    0021d8c3test rax, rax
    0021d8c6je 0x21d8f3
    0021d8c8mov r8, [rsp+16]
    0021d8cdshr rax, 10
    0021d8d1add [rsp+24], 1
    0021d8d7lea r8, [rax+r8+1]
    0021d8dcmov [rsp+16], r8
    0021d8e1mov r8, [rsp+32]
    0021d8e6lea r8, [r10+r8-1]
    0021d8ebsub r8, rax
    0021d8eemov [rsp+32], r8
    0021d8f3
    0021d8f3loc_21d8f3:
    0021d8f3add rcx, rsi
    0021d8f6add rdx, rsi
    0021d8f9cmp r9, rcx
    0021d8fcjae 0x21d8c0
    0021d8femov rax, [rsp]
    0021d902add rax, 4096
    0021d908
    0021d908loc_21d908:
    0021d908add rdi, 1056
    0021d90fmov rsi, rsp
    0021d912mov [rsp], rax
    0021d916call caml_accum_heap_stats
    0021d91bmov rsi, rsp
    0021d91elea rdi, [rip+0x15b4eb]
    0021d925call caml_remove_heap_stats
    0021d92amov rax, [rsp+72]
    0021d92fsub rax, [0x28]
    0021d938jne 0x21d947
    0021d93aadd rsp, 80
    0021d93epop rbx
    0021d93fret
    0021d940
    0021d940loc_21d940:
    0021d940mov eax, 4096
    0021d945jmp 0x21d908
    0021d947
    0021d947loc_21d947:
    0021d947call fn_f4590
    0021d840
    0021d94c
    0021d94c // align 0x10
    0021d950
    0021d950fn_21d950:
    0021d950mov rax, rsi
    0021d953mov rcx, rdx
    0021d956test sil, 1
    0021d95ajne 0x21d98e
    0021d95cmovzx edx, [rax-8]
    0021d960lea rsi, [rsi-8]
    0021d964xor edi, edi
    0021d966cmp dl, -7
    0021d969je 0x21d9b0
    0021d96bmov rdx, [rsi]
    0021d96enot rdx
    0021d971and dh, 3
    0021d974je 0x21d98e
    0021d976mov rdx, [rsi]
    0021d979shr rdx, 10
    0021d97dadd rdx, 1
    0021d981cmp rdx, 128
    0021d988jbe 0x21d990
    0021d98aret
    0021d98bdb 0x00
    0021d98cjbe 0x21d990
    0021d98e
    0021d98eloc_21d98e:
    0021d98eret
    0021d98f
    0021d98f 90 .
    0021d990
    0021d990loc_21d990:
    0021d990mov rdx, [rsi]
    0021d993and edx, 768
    0021d999cmp [rip+0x15aa20], rdx
    0021d9a0jne 0x21d98e
    0021d9a2mov rax, [rax]
    0021d9a5movsxd rdi, edi
    0021d9a8add rdi, rax
    0021d9abmov [rcx], rdi
    0021d9aeret
    0021d9af
    0021d9af 90 .
    0021d9b0
    0021d9b0loc_21d9b0:
    0021d9b0mov rdi, [rax-8]
    0021d9b4shr rdi, 10
    0021d9b8shl edi, 3
    0021d9bbmovsxd rdx, edi
    0021d9besub rax, rdx
    0021d9c1mov rdx, [rax-8]
    0021d9c5lea rsi, [rax-8]
    0021d9c9not rdx
    0021d9ccand dh, 3
    0021d9cfjne 0x21d97a
    0021d9d1ret
    0021d950
    0021d9d2
    0021d9d2 // align 0x10
    0021d9e0
    0021d9e0fn_21d9e0:
    0021d9e0mov rax, [rdi]
    0021d9e3mov rsi, rdi
    0021d9e6test rax, rax
    0021d9e9je 0x21db98
    0021d9efnop
    0021d9f0
    0021d9f0loc_21d9f0:
    0021d9f0mov rax, [rsi]
    0021d9f3test al, 1
    0021d9f5jne 0x21da2d
    0021d9f7movzx edx, [rax-8]
    0021d9fblea rcx, [rax-8]
    0021d9ffxor edi, edi
    0021da01cmp dl, -7
    0021da04je 0x21dbc0
    0021da0a
    0021da0aloc_21da0a:
    0021da0amov rdx, [rcx]
    0021da0dnot rdx
    0021da10and dh, 3
    0021da13je 0x21da2d
    0021da15mov rdx, [rcx]
    0021da18shr rdx, 10
    0021da1cadd rdx, 1
    0021da20cmp rdx, 128
    0021da27jbe 0x21db40
    0021da2d
    0021da2dloc_21da2d:
    0021da2dmov rsi, [rsi]
    0021da30mov r9, [rsi-8]
    0021da34mov rax, [rsi+8]
    0021da38shr r9, 10
    0021da3ctest al, 1
    0021da3ejne 0x21da76
    0021da40movzx edx, [rax-8]
    0021da44lea rcx, [rax-8]
    0021da48xor edi, edi
    0021da4acmp dl, -7
    0021da4dje 0x21dba0
    0021da53
    0021da53loc_21da53:
    0021da53mov rdx, [rcx]
    0021da56not rdx
    0021da59and dh, 3
    0021da5cje 0x21da76
    0021da5emov rdx, [rcx]
    0021da61shr rdx, 10
    0021da65add rdx, 1
    0021da69cmp rdx, 128
    0021da70jbe 0x21db70
    0021da76
    0021da76loc_21da76:
    0021da76mov edx, 2
    0021da7bmov eax, 2
    0021da80cmp r9, 2
    0021da84ja 0x21daab
    0021da86jmp 0x21db10
    0021da8b
    0021da8b 66 66 2e 0f 1f ff...
    0021da90 84 00 00 00 00 00 66 2e 0f 1f 84 00 00 00 00 00 ......f.........
    0021daa0
    0021daa0loc_21daa0:
    0021daa0add edx, 1
    0021daa3movsxd rax, edx
    0021daa6cmp rax, r9
    0021daa9jae 0x21db10
    0021daab
    0021daabloc_21daab:
    0021daablea rdi, [rsi+8*rax]
    0021daafmov rax, [rdi]
    0021dab2test al, 1
    0021dab4jne 0x21daa0
    0021dab6movzx ecx, [rax-8]
    0021dabalea r8, [rax-8]
    0021dabexor r10l, r10l
    0021dac1cmp cl, -7
    0021dac4je 0x21db20
    0021dac6
    0021dac6loc_21dac6:
    0021dac6mov rcx, [r8]
    0021dac9not rcx
    0021daccand ch, 3
    0021dacfje 0x21daa0
    0021dad1mov rcx, [r8]
    0021dad4shr rcx, 10
    0021dad8add rcx, 1
    0021dadccmp rcx, 128
    0021dae3ja 0x21daa0
    0021dae5mov rcx, [r8]
    0021dae8and ecx, 768
    0021daeecmp [rip+0x15a8cb], rcx
    0021daf5jne 0x21daa0
    0021daf7mov rax, [rax]
    0021dafamovsxd r10, r10l
    0021dafdadd edx, 1
    0021db00add r10, rax
    0021db03movsxd rax, edx
    0021db06mov [rdi], r10
    0021db09cmp rax, r9
    0021db0cjb 0x21daab
    0021db0enop
    0021db10
    0021db10loc_21db10:
    0021db10mov rax, [rsi]
    0021db13test rax, rax
    0021db16jne 0x21d9f0
    0021db1cret
    0021db1d
    0021db1d 0f 1f 00 ...
    0021db20
    0021db20loc_21db20:
    0021db20mov r10, [rax-8]
    0021db24shr r10, 10
    0021db28shl r10l, 3
    0021db2cmovsxd rcx, r10l
    0021db2fsub rax, rcx
    0021db32lea r8, [rax-8]
    0021db36jmp 0x21dac6
    0021db38
    0021db38 0f 1f 84 00 00 00 00 00 ........
    0021db40
    0021db40loc_21db40:
    0021db40mov rdx, [rcx]
    0021db43and edx, 768
    0021db49cmp [rip+0x15a870], rdx
    0021db50jne 0x21da2d
    0021db56mov rdx, [rax]
    0021db59movsxd rax, edi
    0021db5cadd rax, rdx
    0021db5fmov [rsi], rax
    0021db62jmp 0x21da2d
    0021db67
    0021db67 66 0f 1f 84 00 00 00 00 00 f........
    0021db70
    0021db70loc_21db70:
    0021db70mov rdx, [rcx]
    0021db73and edx, 768
    0021db79cmp [rip+0x15a840], rdx
    0021db80jne 0x21da76
    0021db86mov rdx, [rax]
    0021db89movsxd rax, edi
    0021db8cadd rax, rdx
    0021db8fmov [rsi+8], rax
    0021db93jmp 0x21da76
    0021db98
    0021db98loc_21db98:
    0021db98ret
    0021db99
    0021db99 0f 1f 80 00 00 00 00 .......
    0021dba0
    0021dba0loc_21dba0:
    0021dba0mov rdi, [rax-8]
    0021dba4shr rdi, 10
    0021dba8shl edi, 3
    0021dbabmovsxd rdx, edi
    0021dbaesub rax, rdx
    0021dbb1lea rcx, [rax-8]
    0021dbb5jmp 0x21da53
    0021dbba
    0021dbba 66 0f 1f 44 00 00 f..D..
    0021dbc0
    0021dbc0loc_21dbc0:
    0021dbc0mov rdi, [rax-8]
    0021dbc4shr rdi, 10
    0021dbc8shl edi, 3
    0021dbcbmovsxd rdx, edi
    0021dbcesub rax, rdx
    0021dbd1lea rcx, [rax-8]
    0021dbd5jmp 0x21da0a
    0021d9e0
    0021dbda
    0021dbda // align 0x10
    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