File hevea_f46f610a6b0078f4aa208dda361f21de574cc56ad64b32889301afc466d33979.elf
Function:
    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
    0021e0df
    0021e0df // align 0x10
    0021e0e0
    0021e0e0caml_init_shared_heap:
    0021e0e0sub rsp, 8
    0021e0e4mov edi, 1120
    0021e0e9call caml_stat_alloc_noexc
    0021e0eemov rdx, rax
    0021e0f1test rax, rax
    0021e0f4je 0x21e16f
    0021e0f6lea rdi, [rax+8]
    0021e0famov rcx, rax
    0021e0fdmov [rax], 0
    0021e104pxor x0, x0
    0021e108mov [rax+1016], 0
    0021e113and rdi, -8
    0021e117xor eax, eax
    0021e119sub rcx, rdi
    0021e11cadd ecx, 1024
    0021e122shr ecx, 3
    0021e125rep stosq [rdi], rax
    0021e128mov rax, [rip+0x57eb5]
    0021e12fmovups [rdx+1024], x0
    0021e136pxor x0, x0
    0021e13amov [rdx+1040], 0
    0021e144mov rax, [rax]
    0021e148movups [rdx+1056], x0
    0021e14fmovups [rdx+1072], x0
    0021e156mov [rdx+1048], rax
    0021e15dmovups [rdx+1088], x0
    0021e164movups [rdx+1104], x0
    0021e16bmov rax, rdx
    0021e16eadd rsp, 8
    0021e172ret
    0021e173db 0x83
    0021e174db 0xc4
    0021e175or bl, al
    0021e0e0
    0021e177
    0021e177 // align 0x10
    0021e180
    0021e180caml_teardown_shared_heap:
    0021e180push r14
    0021e182push r13
    0021e184push r12
    0021e186mov r12, rdi
    0021e189push rbp
    0021e18apush rbx
    0021e18blea rbx, [rip+0x15ac4a]
    0021e192mov rdi, rbx
    0021e195call fn_f4710
    0021e19amov r13l, eax
    0021e19dtest eax, eax
    0021e19fjne 0x21e35c
    0021e1a5lea rcx, [rip+0x15ada0]
    0021e1acmov rdx, r12
    0021e1afxor ebp, ebp
    0021e1b1lea r8, [rcx+256]
    0021e1b8nop [rax]
    0021e1bcmov rax, [rdx]
    0021e1bflea rsi, [rcx-256]
    0021e1c6test rax, rax
    0021e1c9je 0x21e224
    0021e1cbxor edi, edi
    0021e1cdnop [rax+rax]
    0021e1d8nop [rax+rax]
    0021e1e3nop [rax+rax]
    0021e1eenop [rax+rax]
    0021e1f9nop [rax]
    0021e1fcmov r9, [rax]
    0021e1ffmov [rdx], r9
    0021e202mov [rax+16], 0
    0021e20amov r9, [rsi]
    0021e20dmov [rax], r9
    0021e210xchg [rsi], rax
    0021e213mov rax, [rdx]
    0021e216add edi, 1
    0021e219test rax, rax
    0021e21cjne 0x21e200
    0021e21eadd ebp, edi
    0021e220mov rax, [rdx+256]
    0021e227test rax, rax
    0021e22aje 0x21e26c
    0021e22cxor esi, esi
    0021e22enop [rax+rax]
    0021e239nop [rax]
    0021e23cmov rdi, [rax]
    0021e23fmov [rdx+256], rdi
    0021e246mov [rax+16], 0
    0021e24emov rdi, [rcx]
    0021e251mov [rax], rdi
    0021e254xchg [rcx], rax
    0021e257mov rax, [rdx+256]
    0021e25eadd esi, 1
    0021e261test rax, rax
    0021e264jne 0x21e240
    0021e266add ebp, esi
    0021e268add rcx, 8
    0021e26c
    0021e26cloc_21e26c:
    0021e26cadd rdx, 8
    0021e270cmp rcx, r8
    0021e273jne 0x21e1c0
    0021e279mov rax, [r12+1024]
    0021e281test rax, rax
    0021e284je 0x21e2ee
    0021e286mov rcx, [rip+0x15adbf]
    0021e28djmp 0x21e2c3
    0021e28fdb 0x15
    0021e290add bl, ch
    0021e292db 0x30
    0021e293
    0021e293 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 ff.........ff
    0021e2a0 2e 0f 1f 84 00 00 00 00 00 66 66 2e 0f 1f 84 00 .........ff.....
    0021e2b0 00 00 00 00 66 66 2e 0f 1f 84 00 00 00 00 00 90 ....ff..........
    0021e2c0
    0021e2c0loc_21e2c0:
    0021e2c0mov rax, rdx
    0021e2c3
    0021e2c3loc_21e2c3:
    0021e2c3mov rdx, [rax+8]
    0021e2c7add r13l, 1
    0021e2cbmov [r12+1024], rdx
    0021e2d3mov [rax+8], rcx
    0021e2d7mov rdx, [r12+1024]
    0021e2dfmov rcx, rax
    0021e2e2mov [rip+0x15ad67], rax
    0021e2e9test rdx, rdx
    0021e2ecjne 0x21e2c0
    0021e2ee
    0021e2eeloc_21e2ee:
    0021e2eelea r14, [r12+1056]
    0021e2f6lea rdi, [rip+0x15ab13]
    0021e2fdmov rsi, r14
    0021e300call caml_accum_heap_stats
    0021e305pxor x0, x0
    0021e309mov rdi, rbx
    0021e30cmovups [r12+1056], x0
    0021e315movups [r12+1072], x0
    0021e31emovups [r12+1088], x0
    0021e327movups [r12+1104], x0
    0021e330call fn_f47c0
    0021e335test eax, eax
    0021e337jne 0x21e36a
    0021e339mov rdi, r12
    0021e33ccall caml_stat_free
    0021e341pop rbx
    0021e342mov edx, r13l
    0021e345mov esi, ebp
    0021e347lea rdi, [rip+0x12f62]
    0021e34epop rbp
    0021e34fxor eax, eax
    0021e351pop r12
    0021e353pop r13
    0021e355pop r14
    0021e357jmp 0x21abf0
    0021e35c
    0021e35cloc_21e35c:
    0021e35cmov esi, eax
    0021e35elea rdi, [rip+0x111aa]
    0021e365call caml_plat_fatal_error
    0021e36a
    0021e36aloc_21e36a:
    0021e36amov esi, eax
    0021e36clea rdi, [rip+0x111a7]
    0021e373call caml_plat_fatal_error
    0021e180
    0021e378
    0021e378 // align 0x10
    0021e380
    0021e380caml_shared_try_alloc:
    0021e380push r15
    0021e382push r14
    0021e384push r13
    0021e386lea r13, [rsi+1]
    0021e38apush r12
    0021e38cpush rbp
    0021e38dmov rbp, rsi
    0021e390push rbx
    0021e391mov rbx, rdi
    0021e394sub rsp, 40
    0021e398mov [rsp+12], edx
    0021e39ccmp r13, 128
    0021e3a3ja 0x21e428
    0021e3a5lea rax, [rip+0x14050]
    0021e3acmovzx r12l, [rax+rsi+1]
    0021e3b2lea r15, [rdi+8*r12]
    0021e3b6mov rax, r12
    0021e3b9mov rcx, [r15]
    0021e3bctest rcx, rcx
    0021e3bfje 0x21e4c0
    0021e3c5lea rax, [rip+0x140f0]
    0021e3ccmov r12l, r12l
    0021e3cfmov esi, [rax+4*r12]
    0021e3d3mov rax, [rcx+8]
    0021e3d7mov rdx, [rax+8]
    0021e3db
    0021e3dbloc_21e3db:
    0021e3dbmov [rcx+8], rdx
    0021e3dftest rdx, rdx
    0021e3e2jne 0x21e3ff
    0021e3e4mov rdx, [rcx]
    0021e3e7mov [r15], rdx
    0021e3eamov rdx, [r15+256]
    0021e3f1mov [rcx], rdx
    0021e3f4mov [r15+256], rcx
    0021e3fbmov rdx, [rbx+1088]
    0021e402add [rbx+1080], 1
    0021e40aadd [rbx+1072], r13
    0021e411sub rdx, r13
    0021e414add rdx, rsi
    0021e417mov [rbx+1088], rdx
    0021e41ejmp 0x21e492
    0021e420db 0x00
    0021e421add bl, ch
    0021e423outsb dl, [rsi]
    0021e424
    0021e424 0f 1f 40 00 ..@.
    0021e428
    0021e428loc_21e428:
    0021e428lea r12, [8*r13+16]
    0021e430mov rdi, r12
    0021e433call fn_f4250
    0021e438test rax, rax
    0021e43bje 0x21e795
    0021e441mov rdx, r12
    0021e444shr rdx, 3
    0021e448add rdx, [rbx+1096]
    0021e44fmov [rbx+1096], rdx
    0021e456cmp rdx, [rbx+1104]
    0021e45djle 0x21e466
    0021e45fmov [rbx+1104], rdx
    0021e466
    0021e466loc_21e466:
    0021e466add [rbx+1112], 1
    0021e46emovdqu x1, [rbx+1024]
    0021e476movdqu x0, [rbx+1040]
    0021e47emov [rbx+1024], rax
    0021e485add rax, 16
    0021e489shufpd x0, x1, 1
    0021e48emovups [rax-16], x0
    0021e492
    0021e492loc_21e492:
    0021e492mov ebx, [rsp+12]
    0021e496shl rbp, 10
    0021e49aadd rbx, [rip+0x159f1f]
    0021e4a1add rbx, rbp
    0021e4a4mov [rax], rbx
    0021e4a7
    0021e4a7loc_21e4a7:
    0021e4a7add rsp, 40
    0021e4abpop rbx
    0021e4acpop rbp
    0021e4adpop r12
    0021e4afpop r13
    0021e4b1pop r14
    0021e4b3pop r15
    0021e4b5ret
    0021e4b6
    0021e4b6 66 2e 0f 1f 84 00 00 00 00 00 f.........
    0021e4c0
    0021e4c0loc_21e4c0:
    0021e4c0add rax, 64
    0021e4c4mov [rsp+24], rax
    0021e4c9shl rax, 3
    0021e4cdmov [rsp+16], rax
    0021e4d2lea r14, [rdi+rax]
    0021e4d6jmp 0x21e511
    0021e4d8
    0021e4d8 0f 1f 84 00 00 00 00 00 ........
    0021e4e0
    0021e4e0loc_21e4e0:
    0021e4e0xor ecx, ecx
    0021e4e2mov edx, r12l
    0021e4e5mov rsi, r14
    0021e4e8mov rdi, rbx
    0021e4ebcall fn_21de80
    0021e4f0mov rdx, rax
    0021e4f3mov rax, [rip+0x57aee]
    0021e4famov rax, [rax]
    0021e4feadd [rax+360], rdx
    0021e505mov rcx, [r15]
    0021e508test rcx, rcx
    0021e50bjne 0x21e3c9
    0021e511
    0021e511loc_21e511:
    0021e511cmp [r15+512], 0
    0021e519jne 0x21e4e0
    0021e51bmov rax, [rsp+16]
    0021e520lea r14, [rip+0x15a8b9]
    0021e527lea rdx, [r14+rax-400]
    0021e52fmov rax, [rdx]
    0021e532test rax, rax
    0021e535je 0x21e6f0
    0021e53b
    0021e53bloc_21e53b:
    0021e53bmov rdi, r14
    0021e53emov [rsp+24], rdx
    0021e543call fn_f4710
    0021e548mov rdx, [rsp+24]
    0021e54dtest eax, eax
    0021e54fjne 0x21e7ce
    0021e555mov rax, [rdx]
    0021e558test rax, rax
    0021e55bje 0x21e5b0
    0021e55dmov rcx, [rdx]
    0021e560test rcx, rcx
    0021e563je 0x21e5b0
    0021e565mov rax, [rcx]
    0021e568mov rsi, rcx
    0021e56bmov rdi, rbx
    0021e56emov [rdx], rax
    0021e571mov [rcx], 0
    0021e578mov edx, r12l
    0021e57bmov [r15], rcx
    0021e57emov [rsp+16], rcx
    0021e583call fn_21d840
    0021e588mov rdi, r14
    0021e58bcall fn_f47c0
    0021e590mov rcx, [rsp+16]
    0021e595test eax, eax
    0021e597je 0x21e3c9
    0021e59d
    0021e59dloc_21e59d:
    0021e59dmov esi, eax
    0021e59flea rdi, [rip+0x10f74]
    0021e5a6call caml_plat_fatal_error
    0021e5abnop [rax+rax]
    0021e5b0
    0021e5b0loc_21e5b0:
    0021e5b0mov rax, [rsp+16]
    0021e5b5lea rax, [r14+rax-144]
    0021e5bdmov rsi, [rax]
    0021e5c0test rsi, rsi
    0021e5c3jne 0x21e70e
    0021e5c9mov rdi, r14
    0021e5cccall fn_f47c0
    0021e5d1test eax, eax
    0021e5d3jne 0x21e59d
    0021e5d5
    0021e5d5loc_21e5d5:
    0021e5d5mov rdi, r14
    0021e5d8call fn_f4710
    0021e5ddtest eax, eax
    0021e5dfjne 0x21e7ce
    0021e5e5mov rcx, [rip+0x15a81c]
    0021e5ectest rcx, rcx
    0021e5efje 0x21e79c
    0021e5f5
    0021e5f5loc_21e5f5:
    0021e5f5mov rax, [rcx]
    0021e5f8mov rdi, r14
    0021e5fbmov [rsp+16], rcx
    0021e600mov [rip+0x15a801], rax
    0021e607call fn_f47c0
    0021e60cmov rcx, [rsp+16]
    0021e611test eax, eax
    0021e613jne 0x21e59d
    0021e615mov rax, [rbx+1056]
    0021e61cadd rax, 4096
    0021e622mov [rbx+1056], rax
    0021e629cmp rax, [rbx+1064]
    0021e630jle 0x21e639
    0021e632mov [rbx+1064], rax
    0021e639
    0021e639loc_21e639:
    0021e639mov edx, r12l
    0021e63clea rax, [rip+0x13e5d]
    0021e643pxor x0, x0
    0021e647movzx eax, [rax+rdx]
    0021e64blea rsi, [rip+0x13e6e]
    0021e652lea r14, [rcx+32768]
    0021e659mov esi, [rsi+4*rdx]
    0021e65cadd rax, 4
    0021e660add [rbx+1088], rax
    0021e667mov [r15], rcx
    0021e66amov rdi, [rbx+1048]
    0021e671lea r11, [8*rsi]
    0021e679lea rax, [rcx+8*rax]
    0021e67dmov [rcx+24], r12l
    0021e681mov r12, r11
    0021e684mov [rcx], 0
    0021e68bneg r12
    0021e68emov [rcx+16], rdi
    0021e692movups [rax], x0
    0021e695add rax, r11
    0021e698lea rdx, [rax+r11]
    0021e69ccmp r14, rdx
    0021e69fjb 0x21e6e0
    0021e6a1mov r8, rsi
    0021e6a4mov rdi, rax
    0021e6a7shl r8, 4
    0021e6abnop [rax+rax]
    0021e6b6nop [rax+rax]
    0021e6c0
    0021e6c0loc_21e6c0:
    0021e6c0mov r10, rdi
    0021e6c3mov rax, rdx
    0021e6c6add rdx, r11
    0021e6c9mov [rdi], 0
    0021e6d0sub r10, r11
    0021e6d3mov [rdi+8], r10
    0021e6d7lea rdi, [r8+r10]
    0021e6dbcmp r14, rdx
    0021e6dejae 0x21e6c0
    0021e6e0
    0021e6e0loc_21e6e0:
    0021e6e0add rax, r12
    0021e6e3mov [rcx+8], rax
    0021e6e7jmp 0x21e3db
    0021e6ec
    0021e6ec 0f 1f 40 00 ..@.
    0021e6f0
    0021e6f0loc_21e6f0:
    0021e6f0mov rdi, [rsp+24]
    0021e6f5lea rax, [rip+0x15a654]
    0021e6fcmov rax, [rax+8*rdi]
    0021e700test rax, rax
    0021e703jne 0x21e53b
    0021e709jmp 0x21e5d5
    0021e70e
    0021e70eloc_21e70e:
    0021e70emov rdx, [rsi]
    0021e711mov rdi, rbx
    0021e714mov [rax], rdx
    0021e717mov edx, r12l
    0021e71amov rax, [r15+256]
    0021e721mov [rsi], rax
    0021e724mov [r15+256], rsi
    0021e72bcall fn_21d840
    0021e730mov rdi, r14
    0021e733call fn_f47c0
    0021e738test eax, eax
    0021e73ajne 0x21e59d
    0021e740mov rax, [rsp+16]
    0021e745xor ecx, ecx
    0021e747mov edx, r12l
    0021e74amov rdi, rbx
    0021e74dlea rsi, [rbx+rax-256]
    0021e755call fn_21de80
    0021e75amov rdx, rax
    0021e75dmov rax, [rip+0x57884]
    0021e764mov rax, [rax]
    0021e768add [rax+360], rdx
    0021e76fmov rcx, [r15]
    0021e772test rcx, rcx
    0021e775jne 0x21e3c9
    0021e77bjmp 0x21e5d5
    0021e780
    0021e780loc_21e780:
    0021e780test rax, rax
    0021e783jne 0x21e7dc
    0021e785mov rdi, r14
    0021e788call fn_f47c0
    0021e78dtest eax, eax
    0021e78fjne 0x21e59d
    0021e795
    0021e795loc_21e795:
    0021e795xor eax, eax
    0021e797jmp 0x21e4a7
    0021e79c
    0021e79cloc_21e79c:
    0021e79cxor esi, esi
    0021e79emov edi, 32768
    0021e7a3call caml_mem_map
    0021e7a8mov rcx, rax
    0021e7abmov rax, [rip+0x15a656]
    0021e7b2test rcx, rcx
    0021e7b5je 0x21e780
    0021e7b7mov [rcx], rax
    0021e7bamov [rcx+16], 0
    0021e7c2mov [rip+0x15a63f], rcx
    0021e7c9jmp 0x21e5f5
    0021e7ce
    0021e7celoc_21e7ce:
    0021e7cemov esi, eax
    0021e7d0lea rdi, [rip+0x10d38]
    0021e7d7call caml_plat_fatal_error
    0021e7dc
    0021e7dcloc_21e7dc:
    0021e7dcmov rcx, rax
    0021e7dfjmp 0x21e5f5
    0021e380
    0021e7e4
    0021e7e4 // align 0x20
    0021e800
    0021e800caml_sweep:
    0021e800push r14
    0021e802push r13
    0021e804push r12
    0021e806push rbp
    0021e807mov rbp, rdi
    0021e80apush rbx
    0021e80bsub rsp, 48
    0021e80fmov r12, [0x28]
    0021e818mov [rsp+40], r12
    0021e81dmov r12, rsi
    0021e820nop [rax+rax]
    0021e82bnop
    0021e82ctest r12, r12
    0021e82fjle 0x21e871
    0021e831mov r13l, [rbp+1040]
    0021e838cmp r13l, 31
    0021e83cja 0x21e8b6
    0021e83emov eax, r13l
    0021e841mov ecx, 1
    0021e846mov edx, r13l
    0021e849mov rdi, rbp
    0021e84clea r14, [8*rax+512]
    0021e854lea rsi, [rbp+r14]
    0021e859call fn_21de80
    0021e85esub r12, rax
    0021e861mov rbx, rax
    0021e864test r12, r12
    0021e867jg 0x21e940
    0021e86dmov rax, [rsp+40]
    0021e872sub rax, [0x28]
    0021e87bjne 0x21eacf
    0021e881add rsp, 48
    0021e885mov rax, r12
    0021e888pop rbx
    0021e889pop rbp
    0021e88apop r12
    0021e88cpop r13
    0021e88epop r14
    0021e890ret
    0021e891db 0x5d
    0021e892pop r14
    0021e894ret
    0021e895
    0021e895 0f 1f 00 ...
    0021e898
    0021e898loc_21e898:
    0021e898mov rax, [rbp+1024]
    0021e89fmov [rbx+8], rax
    0021e8a3mov [rbp+1024], rbx
    0021e8aa
    0021e8aaloc_21e8aa:
    0021e8aaadd r13, 1
    0021e8aesub r12, r13
    0021e8b1test r12, r12
    0021e8b4jle 0x21e871
    0021e8b6
    0021e8b6loc_21e8b6:
    0021e8b6mov rbx, [rbp+1032]
    0021e8bdtest rbx, rbx
    0021e8c0je 0x21e98c
    0021e8c6mov rax, [rbx+8]
    0021e8camov [rbp+1032], rax
    0021e8d1mov rax, [rbx+16]
    0021e8d5mov r13, rax
    0021e8d8mov rdx, rax
    0021e8dbshr r13, 10
    0021e8dfand edx, 768
    0021e8e5cmp [rip+0x159ae4], rdx
    0021e8ecjne 0x21e898
    0021e8eemovzx eax, al
    0021e8f1cmp eax, 255
    0021e8f6je 0x21e970
    0021e8f8
    0021e8f8loc_21e8f8:
    0021e8f8mov rax, [rbp+1096]
    0021e8ffmov rdi, rbx
    0021e902sub rax, 3
    0021e906sub rax, r13
    0021e909mov [rbp+1096], rax
    0021e910mov rax, [rbp+1048]
    0021e917mov rdx, [rax+144]
    0021e91elea rdx, [r13+rdx+3]
    0021e923mov [rax+144], rdx
    0021e92asub [rbp+1112], 1
    0021e932call fn_f4370
    0021e937jmp 0x21e8aa
    0021e93c
    0021e93c 0f 1f 40 00 ..@.
    0021e940
    0021e940loc_21e940:
    0021e940lea rsi, [rbp+r14+256]
    0021e948mov ecx, 1
    0021e94dmov edx, r13l
    0021e950mov rdi, rbp
    0021e953call fn_21de80
    0021e958sub r12, rax
    0021e95badd rbx, rax
    0021e95ejne 0x21e830
    0021e964add [rbp+1040], 1
    0021e96bjmp 0x21e830
    0021e970
    0021e970loc_21e970:
    0021e970mov rax, [rbx+24]
    0021e974mov rax, [rax+8]
    0021e978test rax, rax
    0021e97bje 0x21e8f8
    0021e981lea rdi, [rbx+24]
    0021e985call rax
    0021e987jmp 0x21e8f8
    0021e98c
    0021e98cloc_21e98c:
    0021e98cmov rax, [rip+0x56fc5]
    0021e993cmp [rax+56], 0
    0021e998je 0x21e871
    0021e99etest r12, r12
    0021e9a1jle 0x21e871
    0021e9a7mov [rsp+32], 0
    0021e9b0xor r13l, r13l
    0021e9b3xor ecx, ecx
    0021e9b5xor edx, edx
    0021e9b7pxor x0, x0
    0021e9bbxor esi, esi
    0021e9bdmov rbx, rsp
    0021e9c0movaps [rsp], x0
    0021e9c4movaps [rsp+16], x0
    0021e9c9nop [rax]
    0021e9d0
    0021e9d0loc_21e9d0:
    0021e9d0mov r11, [rbp+8*r13]
    0021e9d5test r11, r11
    0021e9d8je 0x21ea12
    0021e9damov r14l, r13l
    0021e9ddnop [rax]
    0021e9e0
    0021e9e0loc_21e9e0:
    0021e9e0mov [rsp], rsi
    0021e9e4mov rdi, r11
    0021e9e7mov esi, r14l
    0021e9eamov [rsp+16], rdx
    0021e9efmov rdx, rbx
    0021e9f2mov [rsp+24], rcx
    0021e9f7call fn_21d740
    0021e9fcmov r11, [r11]
    0021e9ffmov rsi, [rsp]
    0021ea03mov rdx, [rsp+16]
    0021ea08mov rcx, [rsp+24]
    0021ea0dtest r11, r11
    0021ea10jne 0x21e9e0
    0021ea12
    0021ea12loc_21ea12:
    0021ea12mov r11, [rbp+8*r13+256]
    0021ea1atest r11, r11
    0021ea1dje 0x21ea62
    0021ea1fmov r14l, r13l
    0021ea22nop [rax+rax]
    0021ea2dnop [rax]
    0021ea30
    0021ea30loc_21ea30:
    0021ea30mov [rsp], rsi
    0021ea34mov rdi, r11
    0021ea37mov esi, r14l
    0021ea3amov [rsp+16], rdx
    0021ea3fmov rdx, rbx
    0021ea42mov [rsp+24], rcx
    0021ea47call fn_21d740
    0021ea4cmov r11, [r11]
    0021ea4fmov rsi, [rsp]
    0021ea53mov rdx, [rsp+16]
    0021ea58mov rcx, [rsp+24]
    0021ea5dtest r11, r11
    0021ea60jne 0x21ea30
    0021ea62
    0021ea62loc_21ea62:
    0021ea62add r13, 1
    0021ea66cmp r13, 32
    0021ea6ajne 0x21e9d0
    0021ea70xor eax, eax
    0021ea72lea rdi, [rip+0x12877]
    0021ea79call caml_gc_log
    0021ea7emov rax, [rbp+1024]
    0021ea85xor ecx, ecx
    0021ea87xor esi, esi
    0021ea89test rax, rax
    0021ea8cje 0x21eaba
    0021ea8enop [rax+rax]
    0021ea99nop [rax]
    0021eaa0
    0021eaa0loc_21eaa0:
    0021eaa0mov rdx, [rax+16]
    0021eaa4mov rax, [rax+8]
    0021eaa8add rcx, 2
    0021eaacshr rdx, 10
    0021eab0lea rsi, [rsi+rdx+3]
    0021eab5test rax, rax
    0021eab8jne 0x21eaa0
    0021eaba
    0021eabaloc_21eaba:
    0021eabaxor edx, edx
    0021eabclea rdi, [rip+0x12865]
    0021eac3xor eax, eax
    0021eac5call caml_gc_log
    0021eacajmp 0x21e871
    0021eacf
    0021eacfloc_21eacf:
    0021eacfcall fn_f4590
    0021e800
    0021ead4
    0021ead4 // align 0x10
    0021eae0
    0021eae0caml_heap_size:
    0021eae0mov rax, [rdi+1056]
    0021eae7add rax, [rdi+1096]
    0021eaeeshl rax, 3
    0021eaf2ret
    0021eaf3db 0xc1
    0021eaf4loopne 0x21eaf9
    0021eaf6ret
    0021eae0
    0021eaf7
    0021eaf7 // align 0x10
    0021eb00
    0021eb00caml_top_heap_words:
    0021eb00mov rax, [rdi+1064]
    0021eb07add rax, [rdi+1104]
    0021eb0eret
    0021eb0fdb 0x04
    0021eb10add [rax], al
    0021eb12ret
    0021eb00
    0021eb13
    0021eb13 // align 0x10
    0021eb20
    0021eb20caml_heap_blocks:
    0021eb20mov rax, [rdi+1080]
    0021eb27add rax, [rdi+1112]
    0021eb2eret
    0021eb2fdb 0x04
    0021eb30add [rax], al
    0021eb32ret
    0021eb20
    0021eb33
    0021eb33 // align 0x10
    0021eb40
    0021eb40caml_redarken_pool:
    0021eb40push r15
    0021eb42lea r15, [rdi+32768]
    0021eb49push r14
    0021eb4bpush r13
    0021eb4dpush r12
    0021eb4fmov r12, rdx
    0021eb52lea rdx, [rip+0x13943]
    0021eb59push rbp
    0021eb5apush rbx
    0021eb5bsub rsp, 8
    0021eb5fmov eax, [rdi+24]
    0021eb62movzx edx, [rdx+rax]
    0021eb66lea rbx, [rdi+8*rdx+32]
    0021eb6blea rdx, [rip+0x1394a]
    0021eb72mov r14l, [rdx+4*rax]
    0021eb76shl r14, 3
    0021eb7alea r13, [rbx+r14]
    0021eb7ecmp r15, r13
    0021eb81jb 0x21ebcb
    0021eb83mov rbp, rsi
    0021eb86add rbx, 8
    0021eb8anop
    0021eb8cmov rax, [rbx-8]
    0021eb90
    0021eb90loc_21eb90:
    0021eb90test rax, rax
    0021eb93je 0x21ebc0
    0021eb95and eax, 768
    0021eb9acmp [rip+0x15981b], rax
    0021eba1jne 0x21ebc0
    0021eba3xor edx, edx
    0021eba5mov rsi, rbx
    0021eba8mov rdi, r12
    0021ebabcall rbp
    0021ebadnop [rax+rax]
    0021ebb8nop [rax]
    0021ebbcadd r13, r14
    0021ebbfadd rbx, r14
    0021ebc2cmp r15, r13
    0021ebc5jae 0x21eb90
    0021ebc7add rsp, 8
    0021ebcb
    0021ebcbloc_21ebcb:
    0021ebcbpop rbx
    0021ebccpop rbp
    0021ebcdpop r12
    0021ebcfpop r13
    0021ebd1pop r14
    0021ebd3pop r15
    0021ebd5ret
    0021ebd6db 0x5e
    0021ebd7pop r15
    0021ebd9ret
    0021eb40
    0021ebda
    0021ebda // align 0x10
    0021ebe0
    0021ebe0caml_collect_heap_stats_sample:
    0021ebe0movdqu x0, [rdi+1056]
    0021ebe8movups [rsi], x0
    0021ebebmovdqu x0, [rdi+1072]
    0021ebf3movups [rsi+16], x0
    0021ebf7movdqu x0, [rdi+1088]
    0021ebffmovups [rsi+32], x0
    0021ec03movdqu x0, [rdi+1104]
    0021ec0bmovups [rsi+48], x0
    0021ec0fret
    0021ec10db 0x11
    0021ec11xor bl, r8b
    0021ebe0
    0021ec14
    0021ec14 // align 0x10
    0021ec20
    0021ec20caml_accum_orphan_heap_stats:
    0021ec20push rbp
    0021ec21lea rbp, [rip+0x15a1b4]
    0021ec28push rbx
    0021ec29mov rbx, rdi
    0021ec2cmov rdi, rbp
    0021ec2fsub rsp, 8
    0021ec33call fn_f4710
    0021ec38test eax, eax
    0021ec3ajne 0x21ec62
    0021ec3cmov rdi, rbx
    0021ec3flea rsi, [rip+0x15a1c6]
    0021ec46call caml_accum_heap_stats
    0021ec4bmov rdi, rbp
    0021ec4ecall fn_f47c0
    0021ec53test eax, eax
    0021ec55jne 0x21ec70
    0021ec57add rsp, 8
    0021ec5bpop rbx
    0021ec5cpop rbp
    0021ec5dret
    0021ec5emov esi, eax
    0021ec60lea rdi, [rip+0x108a4]
    0021ec67call caml_plat_fatal_error
    0021ec6cmov esi, eax
    0021ec6elea rdi, [rip+0x108a1]
    0021ec75call caml_plat_fatal_error
    0021ec7adb 0x52
    0021ec7bint 255
    0021ec7ddb 0xff
    0021ec20
    0021ec7e
    0021ec7e // align 0x10