File hevea_f46f610a6b0078f4aa208dda361f21de574cc56ad64b32889301afc466d33979.elf
Function:
    00217500
    00217500fn_217500:
    00217500push r15
    00217502mov r15, rdi
    00217505add rdi, 8
    00217509push r14
    0021750bmov r14, r8
    0021750epush r13
    00217510mov r13, rcx
    00217513push r12
    00217515mov r12, rdx
    00217518push rbp
    00217519movzx ebp, sil
    0021751dpush rbx
    0021751emov esi, ebp
    00217520sub rsp, 8
    00217524call fn_217460
    00217529mov rbx, [r15+88]
    0021752dtest rbx, rbx
    00217530je 0x21755d
    00217532nop [rax+rax]
    0021753dnop [rax]
    00217540
    00217540loc_217540:
    00217540lea rdi, [rbx+24]
    00217544mov r8, r14
    00217547mov rcx, r13
    0021754amov rdx, r12
    0021754dmov esi, ebp
    0021754fcall fn_217460
    00217554mov rbx, [rbx+96]
    00217558test rbx, rbx
    0021755bjne 0x217540
    0021755d
    0021755dloc_21755d:
    0021755dmov rbx, [r15+72]
    00217561test rbx, rbx
    00217564je 0x21758c
    00217566nop [rax+rax]
    00217570
    00217570loc_217570:
    00217570mov rdi, rbx
    00217573mov r8, r14
    00217576mov rcx, r13
    00217579mov rdx, r12
    0021757cmov esi, ebp
    0021757ecall fn_217460
    00217583mov rbx, [rbx+64]
    00217587test rbx, rbx
    0021758ajne 0x217570
    0021758c
    0021758cloc_21758c:
    0021758cadd rsp, 8
    00217590pop rbx
    00217591pop rbp
    00217592pop r12
    00217594pop r13
    00217596pop r14
    00217598pop r15
    0021759aret
    00217500
    0021759b
    0021759b // align 0x10
    002175a0
    002175a0fn_2175a0:
    002175a0push r15
    002175a2lea rax, [rdx+2*rdx]
    002175a6push r14
    002175a8shl rax, 4
    002175acpush r13
    002175aepush r12
    002175b0push rbp
    002175b1push rbx
    002175b2sub rsp, 40
    002175b6add rax, [rsi]
    002175b9cmp [rax+32], 0
    002175beje 0x2175f8
    002175c0
    002175c0loc_2175c0:
    002175c0xor r12l, r12l
    002175c3mov r13l, 1
    002175c9mov rsi, 0xffffffff00000000
    002175d3mov rcx, r12
    002175d6and rcx, rsi
    002175d9mov r12, rcx
    002175dc
    002175dcloc_2175dc:
    002175dcadd rsp, 40
    002175e0mov eax, r12l
    002175e3mov rdx, r13
    002175e6pop rbx
    002175e7pop rbp
    002175e8pop r12
    002175eapop r13
    002175ecpop r14
    002175eepop r15
    002175f0ret
    002175f1
    002175f1 0f 1f 80 00 00 00 00 .......
    002175f8
    002175f8loc_2175f8:
    002175f8mov rbx, rdi
    002175fbmov rdi, rcx
    002175felea ecx, [r9-1]
    00217602mov rbp, r9
    00217605mov [rbx+8], rdx
    00217609mov edx, 1
    0021760eshl edx, cl
    00217610mov [rbx+16], rsi
    00217614mov rsi, r8
    00217617mov ecx, edx
    00217619movzx edx, [rax+41]
    0021761dmov [rax+32], rbx
    00217621mov [rax+8], 1
    00217629shr dl, 1
    0021762band edx, 7
    0021762eor edx, ecx
    00217630mov ecx, r9l
    00217633shl ecx, 7
    00217636shl edx, 9
    00217639or edx, ecx
    0021763bmovzx ecx, [rax+40]
    0021763fand dx, 3968
    00217644and cx, -3969
    00217649or edx, ecx
    0021764bmov [rax+40], dx
    0021764fcall caml_callback_res
    00217654mov r14, [rbx+16]
    00217658mov r15, [rbx+8]
    0021765cmov [rbx+16], 0
    00217664mov [rsp+28], eax
    00217668mov r12, rax
    0021766bmov r13, rdx
    0021766emov rcx, [r14]
    00217671lea rbx, [r15+2*r15]
    00217675mov [rsp+8], rdx
    0021767amov rdi, r14
    0021767dshl rbx, 4
    00217681add rcx, rbx
    00217684and [rcx+40], -385
    0021768amov [rcx+32], 0
    00217692mov [rsp+16], rcx
    00217697call fn_2173a0
    0021769cmov rcx, [rsp+16]
    002176a1cmp rax, 1
    002176a5je 0x217720
    002176a7mov eax, [rsp+28]
    002176abtest eax, eax
    002176adjne 0x21772c
    002176afcmp [rsp+8], 1
    002176b5je 0x21772c
    002176b7mov rax, [rsp+8]
    002176bcmov rax, [rax]
    002176bfmov [rcx+8], rax
    002176c3test al, 1
    002176c5jne 0x2176f0
    002176c7cmp rax, [rip+0x160efa]
    002176cejae 0x2176f0
    002176d0cmp [rip+0x160ef9], rax
    002176d7jae 0x2176f0
    002176d9cmp r15, [r14+32]
    002176ddjae 0x2176f0
    002176dfmov [r14+32], r15
    002176e3nop [rax+rax]
    002176eenop
    002176f0
    002176f0loc_2176f0:
    002176f0cmp r15, [r14+48]
    002176f4jae 0x2175c0
    002176famovzx eax, [rcx+40]
    002176fetest al, 32
    00217700jne 0x217714
    00217702test al, 16
    00217704je 0x2175c0
    0021770acmp rbp, 2
    0021770eje 0x2175c0
    00217714
    00217714loc_217714:
    00217714mov [r14+48], r15
    00217718jmp 0x2175c0
    0021771d
    0021771d 0f 1f 00 ...
    00217720
    00217720loc_217720:
    00217720mov edx, [rsp+28]
    00217724test edx, edx
    00217726je 0x2175c0
    0021772c
    0021772cloc_21772c:
    0021772cadd rbx, [r14]
    0021772fmovzx eax, [rbx+40]
    00217733and eax, -69
    00217736or eax, 64
    00217739mov [rbx+40], al
    0021773cmov eax, 1
    00217741movq x0, rax
    00217746punpcklqdq x0, x0
    0021774amovups [rbx], x0
    0021774dcmp r15, [r14+40]
    00217751jae 0x2175dc
    00217757mov [r14+40], r15
    0021775bjmp 0x2175dc
    002175a0
    00217760
    00217760fn_217760:
    00217760push r14
    00217762mov r14, rdi
    00217765push r13
    00217767push r12
    00217769push rbp
    0021776apush rbx
    0021776bsub rsp, 16
    0021776fmov rbx, [rdi+72]
    00217773test rbx, rbx
    00217776je 0x21789d
    0021777cmov eax, 1
    00217781lea r13, [rdi+72]
    00217785xor r12l, r12l
    00217788movq x2, rax
    0021778dpunpcklqdq x2, x2
    00217791movaps [rsp], x2
    00217795jmp 0x2177b7
    00217797
    00217797 66 0f 1f 84 00 00 00 00 00 f........
    002177a0
    002177a0loc_2177a0:
    002177a0cmp [rbx+48], rax
    002177a4lea r13, [rbx+64]
    002177a8mov rbx, [rbx+64]
    002177acsetb al
    002177afor r12l, eax
    002177b2test rbx, rbx
    002177b5je 0x217816
    002177b7
    002177b7loc_2177b7:
    002177b7mov rdi, rbx
    002177bamov rbp, [rbx+64]
    002177becall fn_2173a0
    002177c3cmp rax, 1
    002177c7je 0x217830
    002177c9
    002177c9loc_2177c9:
    002177c9mov rax, [rbx+24]
    002177cdtest rax, rax
    002177d0jne 0x2177a0
    002177d2mov rdi, [rbx]
    002177d5test rdi, rdi
    002177d8je 0x2177e6
    002177dacall caml_stat_free
    002177dfmov [rbx], 0
    002177e6
    002177e6loc_2177e6:
    002177e6mov [rbx+48], 0
    002177eepxor x0, x0
    002177f2mov rdi, rbx
    002177f5mov [rbx+56], 1
    002177fdmovups [rbx+16], x0
    00217801movups [rbx+32], x0
    00217805mov rbx, rbp
    00217808call caml_stat_free
    0021780dmov [r13], rbp
    00217811test rbx, rbx
    00217814jne 0x2177b7
    00217816
    00217816loc_217816:
    00217816mov [r14+80], r12b
    0021781aadd rsp, 16
    0021781epop rbx
    0021781fpop rbp
    00217820pop r12
    00217822pop r13
    00217824pop r14
    00217826ret
    00217827
    00217827 66 0f 1f 84 00 00 00 00 00 f........
    00217830
    00217830loc_217830:
    00217830xor edx, edx
    00217832xor eax, eax
    00217834cmp [rbx+24], 0
    00217839jne 0x21784e
    0021783bjmp 0x217890
    0021783d
    0021783d 0f 1f 00 ...
    00217840
    00217840loc_217840:
    00217840add rax, 1
    00217844add rdx, 48
    00217848cmp rax, [rbx+24]
    0021784cjae 0x217890
    0021784e
    0021784eloc_21784e:
    0021784emov rcx, [rbx]
    00217851add rcx, rdx
    00217854cmp [rcx+32], 0
    00217859jne 0x217840
    0021785bmovzx esi, [rcx+40]
    0021785fmovdqa x1, [rsp]
    00217864and esi, -69
    00217867movups [rcx], x1
    0021786aor esi, 64
    0021786dmov [rcx+40], sil
    00217871cmp rax, [rbx+40]
    00217875jae 0x217840
    00217877mov [rbx+40], rax
    0021787badd rdx, 48
    0021787fadd rax, 1
    00217883cmp rax, [rbx+24]
    00217887jb 0x21784e
    00217889nop [rax]
    00217890
    00217890loc_217890:
    00217890mov rdi, rbx
    00217893call fn_216f50
    00217898jmp 0x2177c9
    0021789d
    0021789dloc_21789d:
    0021789dxor r12l, r12l
    002178a0jmp 0x217816
    00217760
    002178a5
    002178a5 // align 0x20
    002178c0
    002178c0fn_2178c0:
    002178c0cmp [rdi+24], 0
    002178c5je 0x217946
    002178c7mov eax, 1
    002178ccxor esi, esi
    002178cexor edx, edx
    002178d0movq x0, rax
    002178d5punpcklqdq x0, x0
    002178d9jmp 0x21790e
    002178db
    002178db 0f 1f 44 00 00 ..D..
    002178e0
    002178e0loc_2178e0:
    002178e0and eax, -37
    002178e3mov [rcx], 1
    002178eaor eax, 32
    002178edmov [rcx+40], al
    002178f0cmp rdx, [rdi+48]
    002178f4jae 0x217900
    002178f6mov [rdi+48], rdx
    002178fanop [rax+rax]
    00217900
    00217900loc_217900:
    00217900add rdx, 1
    00217904add rsi, 48
    00217908cmp rdx, [rdi+24]
    0021790cjae 0x217946
    0021790e
    0021790eloc_21790e:
    0021790emov rcx, [rdi]
    00217911add rcx, rsi
    00217914movzx eax, [rcx+40]
    00217918test al, 4
    0021791aje 0x217900
    0021791ctest [rcx+41], 2
    00217920jne 0x2178e0
    00217922and eax, -69
    00217925movups [rcx], x0
    00217928or eax, 64
    0021792bmov [rcx+40], al
    0021792ecmp rdx, [rdi+40]
    00217932jae 0x217900
    00217934mov [rdi+40], rdx
    00217938add rsi, 48
    0021793cadd rdx, 1
    00217940cmp rdx, [rdi+24]
    00217944jb 0x21790e
    00217946
    00217946loc_217946:
    00217946jmp 0x216f50
    002178c0
    0021794b
    0021794b // align 0x10
    00217950
    00217950fn_217950:
    00217950cmp [rdi+24], 0
    00217955jne 0x217960
    00217957ret
    00217958
    00217958 0f 1f 84 00 00 00 00 00 ........
    00217960
    00217960loc_217960:
    00217960push rbp
    00217961mov rbp, rsi
    00217964push rbx
    00217965mov rbx, rdi
    00217968sub rsp, 8
    0021796ccall fn_2173a0
    00217971mov rdi, rbp
    00217974call fn_2173a0
    00217979mov rsi, [rbx+24]
    0021797dmov rdi, rbp
    00217980call fn_216eb0
    00217985test al, al
    00217987je 0x217a40
    0021798dmov rdi, [rbp+24]
    00217991mov rax, [rbx+24]
    00217995add rax, rdi
    00217998mov [rbp+24], rax
    0021799ccmp [rbx+24], 0
    002179a1je 0x217a50
    002179a7mov eax, 1
    002179aclea r8, [rdi+2*rdi]
    002179b0xor ecx, ecx
    002179b2xor esi, esi
    002179b4movq x1, rax
    002179b9shl r8, 4
    002179bdpunpcklqdq x1, x1
    002179c1jmp 0x217a12
    002179c3
    002179c3 0f 1f 44 00 00 ..D..
    002179c8
    002179c8loc_2179c8:
    002179c8mov rdx, [rbp]
    002179ccmovdqu x0, [rax]
    002179d0add rdx, rcx
    002179d3add rdx, r8
    002179d6movups [rdx], x0
    002179d9movdqu x0, [rax+16]
    002179demovups [rdx+16], x0
    002179e2movdqu x0, [rax+32]
    002179e7movups [rdx+32], x0
    002179ebmov rax, [rbx]
    002179eemov rax, [rax+rcx+32]
    002179f3test rax, rax
    002179f6je 0x217a04
    002179f8lea rdx, [rdi+rsi]
    002179fcmov [rax+16], rbp
    00217a00mov [rax+8], rdx
    00217a04
    00217a04loc_217a04:
    00217a04add rsi, 1
    00217a08add rcx, 48
    00217a0ccmp rsi, [rbx+24]
    00217a10jae 0x217a50
    00217a12
    00217a12loc_217a12:
    00217a12mov rax, [rbx]
    00217a15add rax, rcx
    00217a18test [rax+41], 14
    00217a1cjne 0x2179c8
    00217a1emovzx edx, [rax+40]
    00217a22movups [rax], x1
    00217a25and edx, -69
    00217a28or edx, 64
    00217a2bmov [rax+40], dl
    00217a2emov rax, [rbx]
    00217a31cmp rsi, [rbx+40]
    00217a35jae 0x217a3b
    00217a37mov [rbx+40], rsi
    00217a3b
    00217a3bloc_217a3b:
    00217a3badd rax, rcx
    00217a3ejmp 0x2179c8
    00217a40
    00217a40loc_217a40:
    00217a40add rsp, 8
    00217a44pop rbx
    00217a45pop rbp
    00217a46ret
    00217a47
    00217a47 66 0f 1f 84 00 00 00 00 00 f........
    00217a50
    00217a50loc_217a50:
    00217a50cmp rdi, [rbp+32]
    00217a54jne 0x217a61
    00217a56mov rax, [rbx+32]
    00217a5aadd rax, rdi
    00217a5dmov [rbp+32], rax
    00217a61
    00217a61loc_217a61:
    00217a61cmp rdi, [rbp+40]
    00217a65jne 0x217a72
    00217a67mov rax, [rbx+40]
    00217a6badd rax, rdi
    00217a6emov [rbp+40], rax
    00217a72
    00217a72loc_217a72:
    00217a72cmp rdi, [rbp+48]
    00217a76jne 0x217a80
    00217a78add rdi, [rbx+48]
    00217a7cmov [rbp+48], rdi
    00217a80
    00217a80loc_217a80:
    00217a80pxor x0, x0
    00217a84mov rdi, rbx
    00217a87xor esi, esi
    00217a89movups [rbx+24], x0
    00217a8dmovups [rbx+40], x0
    00217a91add rsp, 8
    00217a95pop rbx
    00217a96pop rbp
    00217a97jmp 0x216eb0
    00217950
    00217a9c
    00217a9c // align 0x10
    00217aa0
    00217aa0fn_217aa0:
    00217aa0push r13
    00217aa2push r12
    00217aa4mov r12, rdi
    00217aa7push rbp
    00217aa8xor ebp, ebp
    00217aaapush rbx
    00217aabsub rsp, 8
    00217aafmov rbx, [rdi+88]
    00217ab3test rbx, rbx
    00217ab6je 0x217ad6
    00217ab8nop [rax+rax]
    00217ac0
    00217ac0loc_217ac0:
    00217ac0lea rdi, [rbx+24]
    00217ac4call fn_2178c0
    00217ac9add rbp, [rbx+48]
    00217acdmov rbx, [rbx+96]
    00217ad1test rbx, rbx
    00217ad4jne 0x217ac0
    00217ad6
    00217ad6loc_217ad6:
    00217ad6lea rbx, [r12+8]
    00217adbmov rdi, rbx
    00217adecall fn_216f50
    00217ae3add rbp, [r12+32]
    00217ae8jne 0x217b00
    00217aea
    00217aealoc_217aea:
    00217aeaadd rsp, 8
    00217aeemov eax, 1
    00217af3pop rbx
    00217af4pop rbp
    00217af5pop r12
    00217af7pop r13
    00217af9ret
    00217afa
    00217afa 66 0f 1f 44 00 00 f..D..
    00217b00
    00217b00loc_217b00:
    00217b00mov edi, 72
    00217b05call caml_stat_alloc
    00217b0amov r13, rax
    00217b0dtest rax, rax
    00217b10je 0x217ba8
    00217b16mov rax, [r12+64]
    00217b1bmovdqa x0, [rip+0x1263d]
    00217b23mov rsi, rbp
    00217b26mov rdi, r13
    00217b29mov [r13], 0
    00217b31mov [r13+56], rax
    00217b35movups [r13+8], x0
    00217b3apxor x0, x0
    00217b3emovups [r13+24], x0
    00217b43movups [r13+40], x0
    00217b48call fn_216eb0
    00217b4dtest al, al
    00217b4fje 0x217ba0
    00217b51mov rdi, rbx
    00217b54mov rsi, r13
    00217b57call fn_217950
    00217b5cmov rbx, [r12+88]
    00217b61test rbx, rbx
    00217b64je 0x217b85
    00217b66nop [rax+rax]
    00217b70
    00217b70loc_217b70:
    00217b70lea rdi, [rbx+24]
    00217b74mov rsi, r13
    00217b77call fn_217950
    00217b7cmov rbx, [rbx+96]
    00217b80test rbx, rbx
    00217b83jne 0x217b70
    00217b85
    00217b85loc_217b85:
    00217b85mov rax, [r12+72]
    00217b8amov [r13+64], rax
    00217b8emov [r12+72], r13
    00217b93jmp 0x217aea
    00217b98
    00217b98 0f 1f 84 00 00 00 00 00 ........
    00217ba0
    00217ba0loc_217ba0:
    00217ba0mov rdi, r13
    00217ba3call caml_stat_free
    00217ba8
    00217ba8loc_217ba8:
    00217ba8add rsp, 8
    00217bacxor eax, eax
    00217baepop rbx
    00217bafpop rbp
    00217bb0pop r12
    00217bb2pop r13
    00217bb4ret
    00217aa0
    00217bb5
    00217bb5 // align 0x10
    00217bc0
    00217bc0fn_217bc0:
    00217bc0push r12
    00217bc2push rbp
    00217bc3mov rbp, rdi
    00217bc6push rbx
    00217bc7call fn_217aa0
    00217bccmov rax, [rbp+72]
    00217bd0test rax, rax
    00217bd3je 0x217c3c
    00217bd5nop [rax+rax]
    00217be0
    00217be0loc_217be0:
    00217be0mov rbx, rax
    00217be3mov rax, [rax+64]
    00217be7test rax, rax
    00217beajne 0x217be0
    00217beclea r12, [rip+0x160fcd]
    00217bf3mov rdi, r12
    00217bf6call fn_f4710
    00217bfbtest eax, eax
    00217bfdjne 0x217ca8
    00217c03mov rax, [rip+0x160fde]
    00217c0amov rdi, r12
    00217c0dmov [rbx+64], rax
    00217c11mov rax, [rbp+72]
    00217c15mov [rip+0x160fcc], rax
    00217c1cmov [rip+0x160f79], 1
    00217c27call fn_f47c0
    00217c2ctest eax, eax
    00217c2ejne 0x217cb6
    00217c34mov [rbp+72], 0
    00217c3c
    00217c3cloc_217c3c:
    00217c3cmov rbx, [rbp+88]
    00217c40test rbx, rbx
    00217c43je 0x217c61
    00217c45nop [rax+rax]
    00217c50
    00217c50loc_217c50:
    00217c50mov rdi, rbx
    00217c53mov rbx, [rbx+96]
    00217c57call fn_217310
    00217c5ctest rbx, rbx
    00217c5fjne 0x217c50
    00217c61
    00217c61loc_217c61:
    00217c61mov rdi, [rbp+8]
    00217c65test rdi, rdi
    00217c68je 0x217c77
    00217c6acall caml_stat_free
    00217c6fmov [rbp+8], 0
    00217c77
    00217c77loc_217c77:
    00217c77mov [rbp+56], 0
    00217c7fmov rdi, [rbp+104]
    00217c83pxor x0, x0
    00217c87mov [rbp+64], 1
    00217c8fmovups [rbp+24], x0
    00217c93movups [rbp+40], x0
    00217c97call caml_stat_free
    00217c9cpop rbx
    00217c9dmov rdi, rbp
    00217ca0pop rbp
    00217ca1pop r12
    00217ca3jmp 0x216690
    00217ca8
    00217ca8loc_217ca8:
    00217ca8mov esi, eax
    00217caalea rdi, [rip+0x1785e]
    00217cb1call caml_plat_fatal_error
    00217cb6
    00217cb6loc_217cb6:
    00217cb6mov esi, eax
    00217cb8lea rdi, [rip+0x1785b]
    00217cbfcall caml_plat_fatal_error
    00217bc0
    00217cc4
    00217cc4 // align 0x20
    00217ce0
    00217ce0fn_217ce0:
    00217ce0push r15
    00217ce2push r14
    00217ce4mov r14l, 1
    00217ceapush r13
    00217cecpush r12
    00217ceepush rbp
    00217cefpush rbx
    00217cf0sub rsp, 120
    00217cf4mov rax, [rsi+24]
    00217cf8mov [rsp], rdi
    00217cfcmov rbx, [0x28]
    00217d05mov [rsp+104], rbx
    00217d0amov rbx, rsi
    00217d0dcmp [rsi+48], rax
    00217d11jb 0x217d54
    00217d13jmp 0x217d5e
    00217d15
    00217d15 0f 1f 00 ...
    00217d18
    00217d18loc_217d18:
    00217d18mov rdx, [rax]
    00217d1bsar rdx, 1
    00217d1ecmp edx, 2
    00217d21je 0x217eb0
    00217d27
    00217d27loc_217d27:
    00217d27mov r15, [rbx+48]
    00217d2blea rbp, [r15+2*r15]
    00217d2fshl rbp, 4
    00217d33add rbp, [rbx]
    00217d36movzx ecx, [rbp+40]
    00217d3atest cl, 64
    00217d3djne 0x217d46
    00217d3fcmp [rbp+32], 0
    00217d44je 0x217da8
    00217d46
    00217d46loc_217d46:
    00217d46lea rax, [r15+1]
    00217d4amov [rbx+48], rax
    00217d4e
    00217d4eloc_217d4e:
    00217d4ecmp rax, [rbx+24]
    00217d52jae 0x217d5e
    00217d54
    00217d54loc_217d54:
    00217d54mov rax, [rbx+56]
    00217d58cmp rax, 1
    00217d5cjne 0x217d18
    00217d5e
    00217d5eloc_217d5e:
    00217d5exor ebp, ebp
    00217d60
    00217d60loc_217d60:
    00217d60mov rdi, rbx
    00217d63call fn_216f50
    00217d68mov rdx, r14
    00217d6bmov rax, 0xffffffff00000000
    00217d75and r12, rax
    00217d78or r12, rbp
    00217d7bmov rax, r12
    00217d7emov rcx, [rsp+104]
    00217d83sub rcx, [0x28]
    00217d8cjne 0x2180bb
    00217d92add rsp, 120
    00217d96pop rbx
    00217d97pop rbp
    00217d98pop r12
    00217d9apop r13
    00217d9cpop r14
    00217d9epop r15
    00217da0ret
    00217da1
    00217da1 0f 1f 80 00 00 00 00 .......
    00217da8
    00217da8loc_217da8:
    00217da8movzx esi, [rbp+41]
    00217dacshr sil, 1
    00217dafand esi, 7
    00217db2test sil, 1
    00217db6jne 0x217f50
    00217dbcmov rax, [rax]
    00217dbfsar rax, 1
    00217dc2test eax, eax
    00217dc4jne 0x217fb0
    00217dcamov r13, [rbp+8]
    00217dcemov rax, [rip+0x5e213]
    00217dd5mov [rsp+24], r13
    00217ddamov r14, [rax]
    00217ddelea rax, [rsp+32]
    00217de3mov r8, [r14+160]
    00217deamov [r14+160], rax
    00217df1mov eax, 1
    00217df6movq x0, rax
    00217dfblea rax, [rsp+24]
    00217e00punpcklqdq x0, x0
    00217e04mov [rsp+32], r8
    00217e09mov [rsp+56], rax
    00217e0emovups [rsp+40], x0
    00217e13test r13b, 1
    00217e17jne 0x218028
    00217e1d
    00217e1dloc_217e1d:
    00217e1dmov [r14+160], r8
    00217e24xor esi, esi
    00217e26mov edi, 4
    00217e2bmov [rbp+8], r13
    00217e2fcall caml_alloc_small
    00217e34mov r8, rax
    00217e37mov rax, [rbp+16]
    00217e3blea rax, [rax+rax+1]
    00217e40mov [r8], rax
    00217e43mov rax, [rbp+24]
    00217e47lea rax, [rax+rax+1]
    00217e4cmov [r8+8], rax
    00217e50movzx eax, [rbp+40]
    00217e54and eax, 3
    00217e57lea rax, [rax+rax+1]
    00217e5cmov [r8+16], rax
    00217e60mov rax, [rbp+8]
    00217e64mov [r8+24], rax
    00217e68mov rax, [rbx+56]
    00217e6ctest [rbp+40], 8
    00217e70jne 0x218010
    00217e76mov rcx, [rax+40]
    00217e7a
    00217e7aloc_217e7a:
    00217e7amov rdi, [rsp]
    00217e7emov rdx, r15
    00217e81mov r9l, 1
    00217e87mov rsi, rbx
    00217e8acall fn_2175a0
    00217e8fmov ebp, eax
    00217e91mov r12, rax
    00217e94mov r14, rdx
    00217e97test ebp, ebp
    00217e99jne 0x217d60
    00217e9f
    00217e9floc_217e9f:
    00217e9fmov rax, [rbx+48]
    00217ea3jmp 0x217d4e
    00217ea8
    00217ea8 0f 1f 84 00 00 00 00 00 ........
    00217eb0
    00217eb0loc_217eb0:
    00217eb0xor edx, edx
    00217eb2xor eax, eax
    00217eb4cmp [rbx+24], 0
    00217eb9mov [rbx+56], 1
    00217ec1jne 0x217eee
    00217ec3jmp 0x217f30
    00217ec5
    00217ec5 66 66 2e 0f 1f 84 00 00 00 00 00 ff.........
    00217ed0 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 ff...........D..
    00217ee0
    00217ee0loc_217ee0:
    00217ee0add rax, 1
    00217ee4add rdx, 48
    00217ee8cmp rax, [rbx+24]
    00217eecjae 0x217f30
    00217eee
    00217eeeloc_217eee:
    00217eeemov rcx, [rbx]
    00217ef1add rcx, rdx
    00217ef4cmp [rcx+32], 0
    00217ef9jne 0x217ee0
    00217efbmovzx esi, [rcx+40]
    00217effmovdqa x1, [rip+0x12249]
    00217f07and esi, -69
    00217f0amovups [rcx], x1
    00217f0dor esi, 64
    00217f10mov [rcx+40], sil
    00217f14cmp rax, [rbx+40]
    00217f18jae 0x217ee0
    00217f1amov [rbx+40], rax
    00217f1eadd rdx, 48
    00217f22add rax, 1
    00217f26cmp rax, [rbx+24]
    00217f2ajb 0x217eee
    00217f2cnop [rax]
    00217f30
    00217f30loc_217f30:
    00217f30mov rdi, rbx
    00217f33call fn_216f50
    00217f38mov rax, [rbx+56]
    00217f3ccmp rax, 1
    00217f40jne 0x217d27
    00217f46jmp 0x217d5e
    00217f4b
    00217f4b 0f 1f 44 00 00 ..D..
    00217f50
    00217f50loc_217f50:
    00217f50test cl, 16
    00217f53je 0x217fe8
    00217f59test sil, 2
    00217f5dje 0x218019
    00217f63and ecx, 32
    00217f66je 0x217d46
    00217f6ccmp sil, 3
    00217f70ja 0x217d46
    00217f76
    00217f76loc_217f76:
    00217f76mov rcx, [rax+64]
    00217f7a
    00217f7aloc_217f7a:
    00217f7amov r9l, 3
    00217f80
    00217f80loc_217f80:
    00217f80mov r8, [rbp+8]
    00217f84mov rdi, [rsp]
    00217f88mov rdx, r15
    00217f8bmov rsi, rbx
    00217f8ecall fn_2175a0
    00217f93mov ebp, eax
    00217f95mov r12, rax
    00217f98mov r14, rdx
    00217f9btest ebp, ebp
    00217f9dje 0x217e9f
    00217fa3jmp 0x217d60
    00217fa8
    00217fa8 0f 1f 84 00 00 00 00 00 ........
    00217fb0
    00217fb0loc_217fb0:
    00217fb0mov eax, 1
    00217fb5and ecx, -69
    00217fb8movq x0, rax
    00217fbdor ecx, 64
    00217fc0punpcklqdq x0, x0
    00217fc4mov [rbp+40], cl
    00217fc7movups [rbp], x0
    00217fcbmov rax, [rbx+48]
    00217fcfcmp r15, [rbx+40]
    00217fd3jae 0x217d4e
    00217fd9mov [rbx+40], r15
    00217fddjmp 0x217d4e
    00217fe2
    00217fe2 66 0f 1f 44 00 00 f..D..
    00217fe8
    00217fe8loc_217fe8:
    00217fe8test cl, 32
    00217febje 0x217d46
    00217ff1cmp sil, 3
    00217ff5ja 0x217d46
    00217ffband ecx, 8
    00217ffeje 0x217f76
    00218004mov rcx, [rax+56]
    00218008jmp 0x217f7a
    0021800d
    0021800d 0f 1f 00 ...
    00218010
    00218010loc_218010:
    00218010mov rcx, [rax+32]
    00218014jmp 0x217e7a
    00218019
    00218019loc_218019:
    00218019mov rcx, [rax+48]
    0021801dmov r9l, 2
    00218023jmp 0x217f80
    00218028
    00218028loc_218028:
    00218028mov rdi, [r13-1]
    0021802cxor esi, esi
    0021802emov [rsp+8], r8
    00218033lea r12, [r13-1]
    00218037call caml_alloc
    0021803cmov r8, [rsp+8]
    00218041mov [rsp+24], rax
    00218046cmp [r13-1], 0
    0021804bje 0x21809f
    0021804dmov rcx, [r12+8]
    00218052or rcx, 1
    00218056mov [rax], rcx
    00218059cmp [r13-1], 1
    0021805emov eax, 1
    00218063jbe 0x21809f
    00218065nop [rax+rax]
    00218070nop [rax+rax]
    0021807bnop [rax+rax]
    00218080
    00218080loc_218080:
    00218080mov rcx, [rsp+24]
    00218085lea rsi, [rcx+8*rax]
    00218089mov rcx, [r12+8*rax+8]
    0021808eadd rax, 1
    00218092or rcx, 1
    00218096mov [rsi], rcx
    00218099cmp rax, [r12]
    0021809djb 0x218080
    0021809f
    0021809floc_21809f:
    0021809fmov rdi, r12
    002180a2mov [rsp+8], r8
    002180a7call caml_stat_free
    002180acmov r13, [rsp+24]
    002180b1mov r8, [rsp+8]
    002180b6jmp 0x217e1d
    002180bb
    002180bbloc_2180bb:
    002180bbcall fn_f4590
    00217ce0
    002180c0
    002180c0caml_memprof_scan_roots:
    002180c0push r14
    002180c2push r13
    002180c4mov r13, rdi
    002180c7push r12
    002180c9mov r12, rdx
    002180ccpush rbp
    002180cdpush rbx
    002180cemov ebx, esi
    002180d0sub rsp, 48
    002180d4mov r14, [rcx+464]
    002180dbmov rbp, [0x28]
    002180e4mov [rsp+40], rbp
    002180e9mov ebp, r8l
    002180ecmov rax, [rip+0x160aa9]
    002180f3test rax, rax
    002180f6je 0x218104
    002180f8mov rdi, r14
    002180fbcall fn_2170f0
    00218100mov [rsp+8], ebx
    00218104
    00218104loc_218104:
    00218104and ebx, 1
    00218107mov rcx, rsp
    0021810amov rdi, r14
    0021810dmov esi, ebx
    0021810flea r8, [rip-4858]
    00218116lea rdx, [rip-4401]
    0021811dmov [rsp], r13
    00218121mov [rsp+16], r12
    00218126mov [rsp+24], bpl
    0021812bcall fn_217500
    00218130mov rax, [rsp+40]
    00218135sub rax, [0x28]
    0021813ejne 0x218151
    00218140add rsp, 48
    00218144pop rbx
    00218145pop rbp
    00218146pop r12
    00218148pop r13
    0021814apop r14
    0021814cret
    0021814dcall fn_f4590
    00218152db 0x3a
    00218153db 0xc4
    00218154in eax, dx
    00218155db 0xff
    002180c0
    00218156
    00218156 // align 0x10
    00218160
    00218160caml_memprof_after_minor_gc:
    00218160push rbx
    00218161mov rbx, [rdi+464]
    00218168mov rax, [rip+0x160a2d]
    0021816ftest rax, rax
    00218172je 0x218180
    00218174mov rdi, rbx
    00218177call fn_2170f0
    0021817cmov rdi, rbx
    0021817flea r8, [rip-4938]
    00218186xor ecx, ecx
    00218188mov esi, 1
    0021818dlea rdx, [rip-4440]
    00218194call fn_217500
    00218199mov rdi, rbx
    0021819ccall fn_217760
    002181a1mov rdi, rbx
    002181a4pop rbx
    002181a5jmp 0x2170b0
    002181aadb 0x02
    002181about dx, eax
    002181acdb 0xff
    002181addb 0xff
    00218160
    002181ae
    002181ae // align 0x10
    002181b0
    002181b0caml_memprof_after_major_gc:
    002181b0push rbx
    002181b1mov rbx, [rdi+464]
    002181b8mov rax, [rip+0x1609dd]
    002181bftest rax, rax
    002181c2je 0x2181d0
    002181c4mov rdi, rbx
    002181c7call fn_2170f0
    002181ccmov rdi, rbx
    002181cfxor r8l, r8l
    002181d2xor ecx, ecx
    002181d4xor esi, esi
    002181d6lea rdx, [rip-5009]
    002181ddcall fn_217500
    002181e2mov rdi, rbx
    002181e5call fn_217760
    002181eamov rdi, rbx
    002181edpop rbx
    002181eejmp 0x2170b0
    002181f3db 0xb9
    002181f4out dx, al
    002181f5db 0xff
    002181f6db 0xff
    002181b0
    002181f7
    002181f7 // align 0x10
    00218200
    00218200caml_memprof_new_domain:
    00218200push r12
    00218202mov r12, rdi
    00218205mov edi, 1672
    0021820apush rbp
    0021820bmov rbp, rsi
    0021820epush rbx
    0021820fcall caml_stat_alloc
    00218214test rax, rax
    00218217je 0x2183ec
    0021821dmovdqa x0, [rip+0x11f47]
    00218225mov [rax], rbp
    00218228mov rbx, rax
    0021822bmov edi, 104
    00218230mov [rax+8], 0
    00218238movups [rax+16], x0
    0021823cpxor x0, x0
    00218240movups [rax+32], x0
    00218244movups [rax+48], x0
    00218248mov [rax+64], 1
    00218250mov [rax+72], 0
    00218258xor eax, eax
    0021825amov [rbx+80], ax
    0021825emov [rbx+104], 0
    00218266mov [rbx+112], 0
    0021826emovups [rbx+88], x0
    00218272call caml_stat_alloc
    00218277pxor x0, x0
    0021827bmovq x1, rax
    00218280test rax, rax
    00218283punpcklqdq x1, x1
    00218287je 0x2183e4
    0021828dmov [rax], 0
    00218290movdqa x2, [rip+0x11ec4]
    00218298mov [rax+8], 0
    002182a0mov [rax+16], 0
    002182a8mov rdx, [rbx+64]
    002182acmov [rax+24], 0
    002182b4mov [rax+80], rdx
    002182b8mov [rax+88], rbx
    002182bcmovups [rax+32], x2
    002182c0movups [rax+48], x0
    002182c4movups [rax+64], x0
    002182c8mov rdx, [rbx+88]
    002182ccmov [rax+96], rdx
    002182d0movups [rbx+88], x1
    002182d4mov [rbp+464], rbx
    002182dbtest r12, r12
    002182deje 0x2182fc
    002182e0mov rax, [r12+464]
    002182e8mov rdx, [rbx+96]
    002182ecmov rax, [rax+64]
    002182f0mov [rbx+64], rax
    002182f4mov [rdx+80], rax
    002182f8movsxd rcx, [rbp+288]
    002182fflea rsi, [rbx+120]
    00218303mov r9, 0x1bbcdcbfa53e0a80
    0021830dmov r11, 0x9e3779b97f4a7c15
    00218317mov r8, 0xbf58476d1ce4e5b9
    00218321mov rdi, 0x94d049bb133111eb
    0021832bmov r10, 0x3c6ef372fe94f82a
    00218335add r9, rcx
    00218338nop [rax]
    0021833clea rdx, [rcx+r11]
    00218340
    00218340loc_218340:
    00218340add rcx, r10
    00218343add rsi, 4
    00218347mov rax, rdx
    0021834ashr rax, 30
    0021834exor rax, rdx
    00218351imul rax, r8
    00218355mov rdx, rax
    00218358shr rdx, 27
    0021835cxor rdx, rax
    0021835fimul rdx, rdi
    00218363mov rax, rdx
    00218366shr rax, 31
    0021836axor rax, rdx
    0021836dmov [rsi-4], eax
    00218370shr rax, 32
    00218374mov [rsi+252], eax
    0021837amov rax, rcx
    0021837dshr rax, 30
    00218381xor rax, rcx
    00218384imul rax, r8
    00218388mov rdx, rax
    0021838bshr rdx, 27
    0021838fxor rdx, rax
    00218392imul rdx, rdi
    00218396mov rax, rdx
    00218399shr rax, 31
    0021839dxor rax, rdx
    002183a0mov [rsi+508], eax
    002183a6shr rax, 32
    002183aamov [rsi+764], eax
    002183b0cmp rcx, r9
    002183b3jne 0x218340
    002183b5mov [rbx+1656], 64
    002183bfmov rax, [rbx+64]
    002183c3cmp rax, 1
    002183c7je 0x2183df
    002183c9mov rax, [rax+16]
    002183cdmovsd_xmm x0, [rip+0x1247f]
    002183d5ucomisd x0, [rax]
    002183d9jbe 0x2183fc
    002183dbpop rbx
    002183dcpop rbp
    002183ddpop r12
    002183df
    002183dfloc_2183df:
    002183dfret
    002183e0mov rdi, rbx
    002183e3call fn_217bc0
    002183e8mov [rbp+464], 0
    002183f3pop rbx
    002183f4pop rbp
    002183f5pop r12
    002183f7ret
    002183f8mov rdi, rbx
    002183fbcall fn_216ba0
    00218400mov eax, [rbx+1656]
    00218406lea edx, [rax+1]
    00218409mov [rbx+1656], edx
    0021840fmov rax, [rbx+8*rax+1144]
    00218417sub rax, 1
    0021841bmov [rbx+1664], rax
    00218422pop rbx
    00218423pop rbp
    00218424pop r12
    00218426ret
    00218427db 0x5d
    00218428pop r12
    0021842aret
    00218200
    0021842b
    0021842b // align 0x10
    00218430
    00218430caml_memprof_delete_domain:
    00218430push rbx
    00218431mov rbx, rdi
    00218434mov rdi, [rdi+464]
    0021843bcall fn_217bc0
    00218440mov [rbx+464], 0
    0021844bpop rbx
    0021844cret
    0021844ddb 0x00
    0021844eadd [rbx-61], bl
    00218430
    00218451
    00218451 // align 0x10
    00218460
    00218460caml_memprof_set_trigger:
    00218460push r12
    00218462push rbp
    00218463push rbx
    00218464mov rbp, [rdi+464]
    0021846bmov rbx, rdi
    0021846emov r12, [rdi+16]
    00218472mov rdi, [rbp+96]
    00218476test rdi, rdi
    00218479je 0x218484
    0021847bcmp [rdi], 0
    0021847eje 0x218490
    00218480mov [rbx+472], r12
    00218487pop rbx
    00218488pop rbp
    00218489pop r12
    0021848bret
    0021848cadd rdi, 24
    00218490
    00218490loc_218490:
    00218490call fn_2173a0
    00218495cmp rax, 1
    00218499je 0x218484
    0021849bmov rdx, [rax]
    0021849esar rdx, 1
    002184a1test edx, edx
    002184a3jne 0x218484
    002184a5mov rax, [rax+16]
    002184a9movsd_xmm x0, [rip+0x123a3]
    002184b1ucomisd x0, [rax]
    002184b5ja 0x218484
    002184b7mov eax, [rbp+1656]
    002184bdcmp eax, 64
    002184c0je 0x218508
    002184c2lea edx, [rax+1]
    002184c5mov [rbp+1656], edx
    002184cbmov rdx, [rbx+8]
    002184cfmov rcx, [rbp+8*rax+1144]
    002184d7mov rax, rdx
    002184dasub rax, [rbx+16]
    002184desar rax, 3
    002184e2cmp rcx, rax
    002184e5jae 0x218484
    002184e7mov eax, 1
    002184ecsub rax, rcx
    002184eflea r12, [rdx+8*rax]
    002184f3mov [rbx+472], r12
    002184fapop rbx
    002184fbpop rbp
    002184fcpop r12
    002184feret
    002184ffdb 0x5d
    00218500pop r12
    00218502ret
    00218503
    00218503 0f 1f 44 00 00 ..D..
    00218508
    00218508loc_218508:
    00218508mov rdi, rbp
    0021850bcall fn_216ba0
    00218510mov eax, [rbp+1656]
    00218516jmp 0x2184c6
    00218460
    00218518
    00218518 // align 0x10
    00218520
    00218520caml_memprof_update_suspended:
    00218520mov rax, [rip+0x5dabd]
    00218527push rbx
    00218528mov rax, [rax]
    0021852cmov rbx, [rax+464]
    00218533mov rax, [rbx+96]
    00218537mov [rax], dil
    0021853atest dil, dil
    0021853dje 0x218558
    0021853fmov rdi, [rbx]
    00218542call caml_memprof_set_trigger
    00218547mov rdi, [rbx]
    0021854apop rbx
    0021854bjmp 0x201700
    00218550db 0xac
    00218551xchg eax, ecx
    00218552db 0xfe
    00218553db 0xff
    00218554
    00218554 0f 1f 40 00 ..@.
    00218558
    00218558loc_218558:
    00218558mov rdi, rbx
    0021855bcall fn_2170b0
    00218560jmp 0x218543
    00218520
    00218562
    00218562 // align 0x10
    00218570
    00218570caml_memprof_run_callbacks_res:
    00218570push r15
    00218572push r14
    00218574push r13
    00218576push r12
    00218578push rbp
    00218579push rbx
    0021857asub rsp, 24
    0021857emov rax, [rip+0x5da5f]
    00218585mov rax, [rax]
    00218589mov rbx, [rax+464]
    00218590mov r15, [rbx+96]
    00218594cmp [r15], 0
    00218598jne 0x2185a4
    0021859acmp [rbx+81], 0
    0021859ejne 0x2185e0
    002185a0mov [rsp], 1
    002185a8xor ebp, ebp
    002185aamov r8, r12
    002185admov r13, [rsp]
    002185b1add rsp, 24
    002185b5mov rax, 0xffffffff00000000
    002185bfand r8, rax
    002185c2pop rbx
    002185c3or r8, rbp
    002185c6mov rdx, r13
    002185c9pop rbp
    002185capop r12
    002185ccmov rax, r8
    002185cfpop r13
    002185d1pop r14
    002185d3pop r15
    002185d5ret
    002185d6db 0x5e
    002185d7pop r15
    002185d9ret
    002185da
    002185da 66 0f 1f 44 00 00 f..D..
    002185e0
    002185e0loc_2185e0:
    002185e0mov rax, [rip+0x1605b9]
    002185e7test rax, rax
    002185eaje 0x2185f4
    002185ecmov rdi, rbx
    002185efcall fn_2170f0
    002185f4
    002185f4loc_2185f4:
    002185f4mov rax, [rbx+96]
    002185f8lea r14, [rbx+8]
    002185fcmov [rax], 1
    002185ffmov rdi, [rbx]
    00218602call caml_memprof_set_trigger
    00218607mov rdi, [rbx]
    0021860acall caml_reset_young_limit
    0021860fmov rsi, r14
    00218612mov rdi, r15
    00218615call fn_217ce0
    0021861amov ebp, eax
    0021861cmov r12, rax
    0021861ftest ebp, ebp
    00218621je 0x218658
    00218623mov [rsp], rdx
    00218627
    00218627loc_218627:
    00218627mov rdi, rbx
    0021862acall fn_217760
    0021862fmov rax, [rbx+96]
    00218633mov rdi, rbx
    00218636mov [rax], 0
    00218639call fn_2170b0
    0021863emov rdi, [rbx]
    00218641call caml_memprof_set_trigger
    00218646mov rdi, [rbx]
    00218649call caml_reset_young_limit
    0021864ejmp 0x2185ae
    00218653
    00218653 0f 1f 44 00 00 ..D..
    00218658
    00218658loc_218658:
    00218658lea rax, [r15+24]
    0021865cmov rdi, r15
    0021865fmov rsi, rax
    00218662mov [rsp+8], rax
    00218667call fn_217ce0
    0021866cmov ebp, eax
    0021866emov [rsp], rdx
    00218672mov r12, rax
    00218675test ebp, ebp
    00218677jne 0x218627
    00218679mov rdi, [rsp+8]
    0021867emov rsi, r14
    00218681call fn_217950
    00218686mov r14, [rbx+72]
    0021868atest r14, r14
    0021868djne 0x2186a1
    0021868fjmp 0x218627
    00218691
    00218691 0f 1f 80 00 00 00 00 .......
    00218698
    00218698loc_218698:
    00218698mov r14, [r14+64]
    0021869ctest r14, r14
    0021869fje 0x218627
    002186a1
    002186a1loc_2186a1:
    002186a1mov rdi, r14
    002186a4call fn_2173a0
    002186a9cmp rax, 1
    002186adje 0x218698
    002186afmov rax, [r14+24]
    002186b3cmp [r14+48], rax
    002186b7jae 0x218698
    002186b9mov rsi, r14
    002186bcmov rdi, r15
    002186bfcall fn_217ce0
    002186c4mov [rsp], rdx
    002186c8mov r12, rax
    002186cbtest eax, eax
    002186cdje 0x218698
    002186cfmov ebp, eax
    002186d1jmp 0x218627
    00218570
    002186d6
    002186d6 // align 0x40
    00218700
    00218700caml_memprof_sample_block:
    00218700push r15
    00218702push r14
    00218704push r13
    00218706push r12
    00218708push rbp
    00218709push rbx
    0021870asub rsp, 24
    0021870emov rax, [rip+0x5d8cf]
    00218715mov [rsp+8], rdi
    0021871amov rax, [rax]
    0021871emov r14, [rax+464]
    00218725mov rdi, [r14+96]
    00218729test rdi, rdi
    0021872cje 0x218737
    0021872ecmp [rdi], 0
    00218731je 0x218750
    00218733add rsp, 24
    00218737
    00218737loc_218737:
    00218737pop rbx
    00218738pop rbp
    00218739pop r12
    0021873bpop r13
    0021873dpop r14
    0021873fpop r15
    00218741ret
    00218742db 0x5e
    00218743pop r15
    00218745ret
    00218746
    00218746 66 2e 0f 1f 84 00 00 00 00 00 f.........
    00218750
    00218750loc_218750:
    00218750add rdi, 24
    00218754mov r12, rsi
    00218757mov rbp, rdx
    0021875amov r13l, ecx
    0021875dcall fn_2173a0
    00218762cmp rax, 1
    00218766je 0x218737
    00218768mov rdx, [rax]
    0021876bsar rdx, 1
    0021876etest edx, edx
    00218770jne 0x218737
    00218772mov rax, [rax+16]
    00218776movsd_xmm x0, [rip+0x120da]
    0021877eucomisd x0, [rax]
    00218782ja 0x218737
    00218784mov rbx, [r14+1664]
    0021878bcmp rbx, rbp
    0021878ejae 0x218837
    00218794mov edx, [r14+1656]
    0021879bxor r15l, r15l
    0021879ejmp 0x2187e2
    002187a0
    002187a0 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 2e 0f 1f ff.........ff...
    002187b0 84 00 00 00 00 00 66 2e 0f 1f 84 00 00 00 00 00 ......f.........
    002187c0
    002187c0loc_2187c0:
    002187c0lea edx, [rax+1]
    002187c3add r15, 1
    002187c7mov [r14+1656], edx
    002187ceadd rbx, [r14+8*rax+1144]
    002187d6mov [r14+1664], rbx
    002187ddcmp rbx, rbp
    002187e0jae 0x218800
    002187e2
    002187e2loc_2187e2:
    002187e2mov eax, edx
    002187e4cmp eax, 64
    002187e7jne 0x2187c0
    002187e9mov rdi, r14
    002187eccall fn_216ba0
    002187f1mov eax, [r14+1656]
    002187f8jmp 0x2187c0
    002187fa
    002187fa 66 0f 1f 44 00 00 f..D..
    00218800
    00218800loc_218800:
    00218800sub rbx, rbp
    00218803mov [r14+1664], rbx
    0021880atest r15, r15
    0021880dje 0x218737
    00218813mov rsi, [rsp+8]
    00218818add rsp, 24
    0021881cmov r8l, r13l
    0021881fmov rcx, r12
    00218822pop rbx
    00218823mov rdx, r15
    00218826pop rbp
    00218827mov rdi, r14
    0021882apop r12
    0021882cpop r13
    0021882epop r14
    00218830pop r15
    00218832jmp 0x217190
    00218837
    00218837loc_218837:
    00218837sub rbx, rbp
    0021883amov [r14+1664], rbx
    00218841jmp 0x218737
    00218700
    00218846
    00218846 // align 0x40
    00218880
    00218880caml_memprof_sample_young:
    00218880push r15
    00218882push r14
    00218884push r13
    00218886push r12
    00218888push rbp
    00218889push rbx
    0021888asub rsp, 264
    00218891mov [rsp+16], rdi
    00218896mov [rsp+24], rcx
    0021889bmov rax, [0x28]
    002188a4mov [rsp+248], rax
    002188acmov rax, [rip+0x5d731]
    002188b3mov r13, [rax]
    002188b7mov [rsp+96], 0
    002188bfmov [rsp+104], 1
    002188c8mov rax, [r13+160]
    002188cfmov rbx, [r13+464]
    002188d6mov [rsp+56], rax
    002188dbmov r15, [rbx+96]
    002188dfmov [rsp+112], rax
    002188e4mov eax, 1
    002188e9movq x0, rax
    002188eelea rax, [rsp+104]
    002188f3mov [rsp+136], rax
    002188fblea rax, [rsp+112]
    00218900punpcklqdq x0, x0
    00218904mov [rsp+176], rax
    0021890clea rax, [rsp+176]
    00218914mov [r13+160], rax
    0021891blea rax, [rsp+88]
    00218920movups [rsp+120], x0
    00218925movups [rsp+184], x0
    0021892dmov [rsp+200], rax
    00218935mov rax, [r15+80]
    00218939mov rbp, [r13+472]
    00218940mov [rsp+88], rax
    00218945mov rax, [r13+8]
    00218949test esi, esi
    0021894bje 0x218cb8
    00218951lea rcx, [r15+24]
    00218955sub rbp, rax
    00218958movsxd r14, edx
    0021895bmov [rsp+32], rcx
    00218960mov rcx, [rsp+16]
    00218965sar rbp, 3
    00218969add rcx, 1
    0021896dmov [rsp+8], rcx
    00218972shl rcx, 3
    00218976add rax, rcx
    00218979mov [rsp+72], rcx
    0021897emov [r13+8], rax
    00218982mov rax, [rbx+96]
    00218986mov [rax], 1
    00218989mov rdi, [rbx]
    0021898ccall caml_memprof_set_trigger
    00218991mov rdi, [rbx]
    00218994call caml_reset_young_limit
    00218999mov [rsp+64], r13
    0021899emov [rsp+48], r15
    002189a3mov r15, rbx
    002189a6nop [rax+rax]
    002189acmov rax, [rsp+24]
    002189b1mov r12, [rsp+16]
    002189b6sub r14, 1
    002189batest rax, rax
    002189bdje 0x2189cc
    002189bfmovzx r12l, [rax+r14]
    002189c4add r12, 1
    002189c8mov r10, [rsp+8]
    002189cdsub r10, 1
    002189d1sub r10, r12
    002189d4mov [rsp+8], r10
    002189d9mov r13, r10
    002189dccmp rbp, r10
    002189dfjle 0x218a41
    002189e1mov edx, [r15+1656]
    002189e8xor ebx, ebx
    002189eajmp 0x218a17
    002189ecdb 0x31
    002189edfucomi f3
    002189efdb 0x27
    002189f0
    002189f0 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 ff...........D..
    00218a00
    00218a00loc_218a00:
    00218a00lea edx, [rax+1]
    00218a03mov [r15+1656], edx
    00218a0asub rbp, [r15+8*rax+1144]
    00218a12cmp r13, rbp
    00218a15jge 0x218a38
    00218a17
    00218a17loc_218a17:
    00218a17mov eax, edx
    00218a19add rbx, 1
    00218a1dcmp eax, 64
    00218a20jne 0x218a00
    00218a22mov rdi, r15
    00218a25call fn_216ba0
    00218a2amov eax, [r15+1656]
    00218a31jmp 0x218a00
    00218a33
    00218a33 0f 1f 44 00 00 ..D..
    00218a38
    00218a38loc_218a38:
    00218a38test rbx, rbx
    00218a3bjne 0x218ba0
    00218a41
    00218a41loc_218a41:
    00218a41test r14, r14
    00218a44jne 0x2189b0
    00218a4a
    00218a4aloc_218a4a:
    00218a4amov rbx, r15
    00218a4dmov r15, [rsp+48]
    00218a52mov rsi, [rsp+32]
    00218a57mov r13, [rsp+64]
    00218a5cmov rdi, r15
    00218a5fcall fn_217ce0
    00218a64mov [rsp+96], eax
    00218a68mov [rsp+104], rdx
    00218a6dtest eax, eax
    00218a6fjne 0x218ca9
    00218a75mov rax, [rip+0x5d56c]
    00218a7cmov rcx, [rsp+72]
    00218a81mov rax, [rax]
    00218a85mov rbp, rcx
    00218a88neg rbp
    00218a8bmov rdx, [rax+8]
    00218a8fsub rdx, rcx
    00218a92cmp rdx, [rax+32]
    00218a96jae 0x218acc
    00218a98nop [rax+rax]
    00218aa0
    00218aa0loc_218aa0:
    00218aa0mov esi, 1
    00218aa5mov edi, 3
    00218aaacall caml_ev_counter
    00218aafcall caml_poll_gc_work
    00218ab4mov rax, [rip+0x5d52d]
    00218abbmov rax, [rax]
    00218abfmov rdx, [rax+8]
    00218ac3add rdx, rbp
    00218ac6cmp rdx, [rax+32]
    00218acajb 0x218aa0
    00218acc
    00218accloc_218acc:
    00218accmov [rax+8], rdx
    00218ad0xor esi, esi
    00218ad2cmp [r15+48], 0
    00218ad7je 0x218b28
    00218ad9nop [rax]
    00218ae0
    00218ae0loc_218ae0:
    00218ae0mov rax, [r15+24]
    00218ae4add rax, rsi
    00218ae7movzx edx, [rax+40]
    00218aebtest dl, 4
    00218aeeje 0x218b1a
    00218af0mov rcx, [rip+0x5d4f1]
    00218af7mov rdi, [rax]
    00218afaand edx, -5
    00218afdmov rcx, [rcx]
    00218b01mov rcx, [rcx+8]
    00218b05mov [rax+40], dl
    00218b08lea rcx, [rcx+8*rdi+8]
    00218b0dmov [rax], rcx
    00218b10cmp r14, [r15+56]
    00218b14jae 0x218b1a
    00218b16mov [r15+56], r14
    00218b1a
    00218b1aloc_218b1a:
    00218b1aadd r14, 1
    00218b1eadd rsi, 48
    00218b22cmp r14, [r15+48]
    00218b26jb 0x218ae0
    00218b28
    00218b28loc_218b28:
    00218b28mov rdi, [rsp+32]
    00218b2dlea rsi, [rbx+8]
    00218b31call fn_217950
    00218b36
    00218b36loc_218b36:
    00218b36mov rax, [rbx+96]
    00218b3amov rdi, rbx
    00218b3dmov [rax], 0
    00218b40call fn_2170b0
    00218b45mov rdi, [rbx]
    00218b48call caml_memprof_set_trigger
    00218b4dmov rdi, [rbx]
    00218b50call caml_reset_young_limit
    00218b55mov eax, [rsp+96]
    00218b59test eax, eax
    00218b5bjne 0x218ddd
    00218b61
    00218b61loc_218b61:
    00218b61mov rax, [rsp+56]
    00218b66mov [r13+160], rax
    00218b6dmov rax, [rsp+248]
    00218b75sub rax, [0x28]
    00218b7ejne 0x218de7
    00218b84add rsp, 264
    00218b8bpop rbx
    00218b8cpop rbp
    00218b8dpop r12
    00218b8fpop r13
    00218b91pop r14
    00218b93pop r15
    00218b95ret
    00218b96
    00218b96 66 2e 0f 1f 84 00 00 00 00 00 f.........
    00218ba0
    00218ba0loc_218ba0:
    00218ba0mov rax, [r15+64]
    00218ba4movsxd rcx, r14l
    00218ba7lea rdx, [r15+112]
    00218bablea rsi, [r15+104]
    00218bafmov rdi, [rax+24]
    00218bb3sar rdi, 1
    00218bb6movsxd rdi, edi
    00218bb9call caml_get_callstack
    00218bbexor esi, esi
    00218bc0mov rdi, rax
    00218bc3mov [rsp+40], rax
    00218bc8call caml_alloc
    00218bcdmov rcx, [rsp+40]
    00218bd2mov rdx, rax
    00218bd5test rcx, rcx
    00218bd8je 0x218d3b
    00218bdemov rdi, rax
    00218be1xor eax, eax
    00218be3nop [rax+rax]
    00218beenop [rax+rax]
    00218bf9nop [rax]
    00218c00
    00218c00loc_218c00:
    00218c00mov rsi, [r15+104]
    00218c04add rdi, 8
    00218c08mov rsi, [rsi+8*rax]
    00218c0cadd rax, 1
    00218c10or rsi, 1
    00218c14mov [rdi-8], rsi
    00218c18cmp rcx, rax
    00218c1bjne 0x218c00
    00218c1dmov rax, [r15+112]
    00218c21cmp rax, 256
    00218c27jbe 0x218c36
    00218c29shl rcx, 3
    00218c2dcmp rcx, rax
    00218c30jb 0x218d49
    00218c36
    00218c36loc_218c36:
    00218c36mov rdi, [rsp+32]
    00218c3bmov esi, 1
    00218c40mov [rsp+40], rdx
    00218c45call fn_216eb0
    00218c4atest al, al
    00218c4cje 0x218a41
    00218c52mov rdi, [rsp+48]
    00218c57mov rdx, [rsp+40]
    00218c5cmov rax, [rdi+48]
    00218c60lea rcx, [rax+1]
    00218c64lea rax, [rax+2*rax]
    00218c68shl rax, 4
    00218c6cadd rax, [rdi+24]
    00218c70mov [rdi+48], rcx
    00218c74mov [rax+8], rdx
    00218c78movzx edx, [rax+40]
    00218c7cmov [rax], r13
    00218c7fand dx, -4096
    00218c84mov [rax+16], rbx
    00218c88or edx, 12
    00218c8bmov [rax+24], r12
    00218c8fmov [rax+32], 0
    00218c97mov [rax+40], dx
    00218c9btest r14, r14
    00218c9ejne 0x2189b0
    00218ca4jmp 0x218a4a
    00218ca9
    00218ca9loc_218ca9:
    00218ca9mov rdi, [rsp+32]
    00218caecall fn_2178c0
    00218cb3jmp 0x218b36
    00218cb8
    00218cb8loc_218cb8:
    00218cb8lea r12, [rbp-8]
    00218cbcmov rbp, [rbx+1664]
    00218cc3sub r12, rax
    00218cc6sar r12, 3
    00218ccacmp rbp, r12
    00218ccdjae 0x218dc3
    00218cd3mov ecx, [rbx+1656]
    00218cd9xor r14l, r14l
    00218cdcjmp 0x218d24
    00218cde
    00218cde 66 66 ff
    00218ce0 2e 0f 1f 84 00 00 00 00 00 66 66 2e 0f 1f 84 00 .........ff.....
    00218cf0 00 00 00 00 66 66 2e 0f 1f 84 00 00 00 00 00 90 ....ff..........
    00218d00
    00218d00loc_218d00:
    00218d00lea ecx, [rax+1]
    00218d03mov [rbx+1656], ecx
    00218d09add rbp, [rbx+8*rax+1144]
    00218d11lea rax, [r14+1]
    00218d15mov [rbx+1664], rbp
    00218d1ccmp rbp, r12
    00218d1fjae 0x218d71
    00218d21mov r14, rax
    00218d24
    00218d24loc_218d24:
    00218d24mov eax, ecx
    00218d26cmp eax, 64
    00218d29jne 0x218d00
    00218d2bmov rdi, rbx
    00218d2ecall fn_216ba0
    00218d33mov eax, [rbx+1656]
    00218d39jmp 0x218d00
    00218d3b
    00218d3bloc_218d3b:
    00218d3bcmp [r15+112], 256
    00218d43jbe 0x218c36
    00218d49
    00218d49loc_218d49:
    00218d49mov rdi, [r15+104]
    00218d4dmov [rsp+40], rdx
    00218d52call caml_stat_free
    00218d57mov [r15+104], 0
    00218d5fmov rdx, [rsp+40]
    00218d64mov [r15+112], 0
    00218d6cjmp 0x218c36
    00218d71
    00218d71loc_218d71:
    00218d71sub rbp, r12
    00218d74mov [rbx+1664], rbp
    00218d7badd r14, 2
    00218d7fjne 0x218da6
    00218d81
    00218d81loc_218d81:
    00218d81mov rax, [rip+0x5d260]
    00218d88mov rdi, [rax]
    00218d8ccall caml_memprof_set_trigger
    00218d91mov rax, [rip+0x5d250]
    00218d98mov rdi, [rax]
    00218d9ccall caml_reset_young_limit
    00218da1jmp 0x218b61
    00218da6
    00218da6loc_218da6:
    00218da6mov rax, [r13+8]
    00218daalea rsi, [rax+8]
    00218dae
    00218daeloc_218dae:
    00218daemov rcx, [rsp+16]
    00218db3xor r8l, r8l
    00218db6mov rdx, r14
    00218db9mov rdi, rbx
    00218dbccall fn_217190
    00218dc1jmp 0x218d81
    00218dc3
    00218dc3loc_218dc3:
    00218dc3sub rbp, r12
    00218dc6mov r14l, 1
    00218dccmov [rbx+1664], rbp
    00218dd3mov rax, [r13+8]
    00218dd7lea rsi, [rax+8]
    00218ddbjmp 0x218dae
    00218ddd
    00218dddloc_218ddd:
    00218dddmov rdi, [rsp+104]
    00218de2call caml_raise
    00218de7
    00218de7loc_218de7:
    00218de7call fn_f4590
    00218880
    00218dec
    00218dec // align 0x10
    00218df0
    00218df0caml_memprof_new_thread:
    00218df0push rbx
    00218df1mov rbx, [rdi+464]
    00218df8mov edi, 104
    00218dfdcall caml_stat_alloc
    00218e02test rax, rax
    00218e05je 0x218e56
    00218e07movdqa x0, [rip+0x1134d]
    00218e0fmov [rax], 0
    00218e12mov [rax+8], 0
    00218e1amov [rax+16], 0
    00218e22mov rdx, [rbx+64]
    00218e26movups [rax+32], x0
    00218e2apxor x0, x0
    00218e2emov [rax+24], 0
    00218e36mov [rax+80], rdx
    00218e3amov [rax+88], rbx
    00218e3emovups [rax+48], x0
    00218e42movups [rax+64], x0
    00218e46mov rdx, [rbx+88]
    00218e4amov [rax+96], rdx
    00218e4emov [rbx+88], rax
    00218e52pop rbx
    00218e53ret
    00218e54db 0x43
    00218e55pop rax
    00218e56
    00218e56loc_218e56:
    00218e56pop rbx
    00218e57ret
    00218df0
    00218e58
    00218e58 // align 0x10
    00218e60
    00218e60caml_memprof_main_thread:
    00218e60mov rax, [rdi+464]
    00218e67mov rax, [rax+88]
    00218e6bret
    00218e6cdb 0x8b
    00218e6dpop rax
    00218e6fret
    00218e60
    00218e70
    00218e70caml_memprof_delete_thread:
    00218e70push rbx
    00218e71mov rax, [rdi+88]
    00218e75mov rbx, rdi
    00218e78lea rdi, [rdi+24]
    00218e7clea rsi, [rax+8]
    00218e80call fn_217950
    00218e85mov rdi, rbx
    00218e88pop rbx
    00218e89jmp 0x217310
    00218e8edb 0x7e
    00218e8fin al, 255
    00218e91db 0xff
    00218e70
    00218e92
    00218e92 // align 0x10
    00218ea0
    00218ea0caml_memprof_enter_thread:
    00218ea0push rbx
    00218ea1mov rax, [rdi+88]
    00218ea5mov [rax+96], rdi
    00218ea9mov rbx, [rdi+88]
    00218eadmovzx eax, [rdi]
    00218eb0mov rdx, [rbx+96]
    00218eb4mov [rdx], al
    00218eb6test al, al
    00218eb8je 0x218ed0
    00218ebamov rdi, [rbx]
    00218ebdcall caml_memprof_set_trigger
    00218ec2mov rdi, [rbx]
    00218ec5pop rbx
    00218ec6jmp 0x201700
    00218ecbdb 0x31
    00218eccmov dh, bh
    00218ecedb 0xff
    00218ecf
    00218ecf 90 .
    00218ed0
    00218ed0loc_218ed0:
    00218ed0mov rdi, rbx
    00218ed3call fn_2170b0
    00218ed8jmp 0x218ebe
    00218ea0
    00218eda
    00218eda // align 0x10
    00218ee0
    00218ee0caml_memprof_start:
    00218ee0push r15
    00218ee2push r14
    00218ee4push r13
    00218ee6push r12
    00218ee8push rbp
    00218ee9push rbx
    00218eeasub rsp, 200
    00218ef1movdqa x0, [rip+0x111e3]
    00218ef9mov [rsp+24], rdi
    00218efemov [rsp+16], rsi
    00218f03mov [rsp+8], rdx
    00218f08mov rax, [0x28]
    00218f11mov [rsp+184], rax
    00218f19mov rax, [rip+0x5d0c4]
    00218f20mov r12, [rax]
    00218f24lea rax, [rsp+24]
    00218f29movups [rsp+56], x0
    00218f2emov [rsp+40], 1
    00218f37movq x0, rax
    00218f3clea rax, [rsp+16]
    00218f41movq x3, rax
    00218f46lea rax, [rsp+8]
    00218f4bmov r14, [r12+160]
    00218f53mov [rsp+88], rax
    00218f58lea rax, [rsp+48]
    00218f5dpunpcklqdq x0, x3
    00218f61mov [rsp+112], rax
    00218f66lea rax, [rsp+112]
    00218f6bmov [r12+160], rax
    00218f73mov eax, 1
    00218f78movups [rsp+72], x0
    00218f7dmovq x0, rax
    00218f82lea rax, [rsp+40]
    00218f87punpcklqdq x0, x0
    00218f8bmov [rsp+48], r14
    00218f90mov [rsp+136], rax
    00218f98movups [rsp+120], x0
    00218f9dmovsd_xmm x2, [rdi]
    00218fa1movsd_xmm [rsp], x2
    00218fa6test rsi, rsi
    00218fa9js 0x2191d8
    00218fafpxor x0, x0
    00218fb3comisd x2, x0
    00218fb7jb 0x2191d8
    00218fbdmovsd_xmm x4, [rip+0x1183f]
    00218fc5comisd x4, x2
    00218fc9jb 0x2191d8
    00218fcfmov rbp, [r12+464]
    00218fd7mov rax, [rbp+96]
    00218fdblea rdi, [rax+24]
    00218fdfcall fn_2173a0
    00218fe4cmp rax, 1
    00218fe8je 0x219009
    00218feamov rax, [rbp+96]
    00218feelea rdi, [rax+24]
    00218ff2call fn_2173a0
    00218ff7mov rax, [rax]
    00218ffasar rax, 1
    00218ffdtest eax, eax
    00218fffje 0x2191ee
    00219005mov rdi, rbp
    00219008call fn_217aa0
    0021900dtest al, al
    0021900fje 0x2191e9
    00219015movsd_xmm x5, [rsp]
    0021901aucomisd x5, [rip+0x117e2]
    00219022jp 0x219190
    00219028pxor x0, x0
    0021902cjne 0x219190
    00219032call caml_copy_double
    00219037xor esi, esi
    00219039mov edi, 9
    0021903exor r13l, r13l
    00219041mov [rsp+40], rax
    00219046call caml_alloc_shr
    0021904bmov esi, 1
    00219050mov rdi, rax
    00219053mov rbx, rax
    00219056call caml_initialize
    0021905bmov rsi, [rsp+24]
    00219060lea rdi, [rbx+8]
    00219064lea r15, [rbx+32]
    00219068call caml_initialize
    0021906dmov rsi, [rsp+40]
    00219072lea rdi, [rbx+16]
    00219076call caml_initialize
    0021907bmov rsi, [rsp+16]
    00219080lea rdi, [rbx+24]
    00219084call caml_initialize
    00219089mov rdx, [rsp+8]
    0021908elea rdi, [r15+r13]
    00219092add rdx, r13
    00219095add r13, 8
    00219099mov rsi, [rdx]
    0021909ccall caml_initialize
    002190a1cmp r13, 40
    002190a5jne 0x21908d
    002190a7mov rax, [rbp+88]
    002190abmov [rbp+64], rbx
    002190aftest rax, rax
    002190b2je 0x2191d0
    002190b8nop [rax]
    002190bcmov [rax+80], rbx
    002190c0
    002190c0loc_2190c0:
    002190c0mov rax, [rax+96]
    002190c4test rax, rax
    002190c7jne 0x2190c0
    002190c9mov rax, [rbp+64]
    002190cdmov [rbp+1656], 64
    002190d7cmp rax, 1
    002190dbje 0x2190f3
    002190ddmov rax, [rax+16]
    002190e1movsd_xmm x0, [rip+0x1176b]
    002190e9ucomisd x0, [rax]
    002190edjbe 0x219160
    002190efmov rax, [rip+0x5ceee]
    002190f6mov rdi, [rax]
    002190facall caml_memprof_set_trigger
    002190ffmov rax, [rip+0x5cede]
    00219106mov rdi, [rax]
    0021910acall caml_reset_young_limit
    0021910fmov rdi, rbp
    00219112call fn_217760
    00219117mov rdi, rbp
    0021911acall fn_2170b0
    0021911fmov [r12+160], r14
    00219127mov rax, [rsp+184]
    0021912fsub rax, [0x28]
    00219138jne 0x2191e4
    0021913eadd rsp, 200
    00219145mov rax, rbx
    00219148pop rbx
    00219149pop rbp
    0021914apop r12
    0021914cpop r13
    0021914epop r14
    00219150pop r15
    00219152ret
    00219153db 0x5e
    00219154pop r15
    00219156ret
    00219157
    00219157 66 0f 1f 84 00 00 00 00 00 f........
    00219160
    00219160loc_219160:
    00219160mov rdi, rbp
    00219163call fn_216ba0
    00219168mov eax, [rbp+1656]
    0021916elea edx, [rax+1]
    00219171mov [rbp+1656], edx
    00219177mov rax, [rbp+8*rax+1144]
    0021917fsub rax, 1
    00219183mov [rbp+1664], rax
    0021918ajmp 0x2190f3
    0021918f
    0021918f 90 .
    00219190
    00219190loc_219190:
    00219190movsd_xmm x0, [rsp]
    00219195xorpd x0, [rip+0x10e93]
    0021919dcall caml_log1p
    002191a2movapd x1, x0
    002191a6movsd_xmm x0, [rip+0x1165a]
    002191aedivsd x0, x1
    002191b2pxor x1, x1
    002191b6comisd x1, x0
    002191bajae 0x219036
    002191c0movsd_xmm x0, [rip+0x11698]
    002191c8jmp 0x219036
    002191cd
    002191cd 0f 1f 00 ...
    002191d0
    002191d0loc_2191d0:
    002191d0mov rax, rbx
    002191d3jmp 0x2190d1
    002191d8
    002191d8loc_2191d8:
    002191d8lea rdi, [rip+0x16052]
    002191dfcall caml_invalid_argument
    002191e4
    002191e4loc_2191e4:
    002191e4call fn_f4590
    002191e9
    002191e9loc_2191e9:
    002191e9call caml_raise_out_of_memory
    002191ee
    002191eeloc_2191ee:
    002191eelea rdi, [rip+0x17b2b]
    002191f5call caml_failwith
    00218ee0
    002191fa
    002191fa // align 0x10
    00219200
    00219200caml_memprof_stop:
    00219200push r15
    00219202push r14
    00219204push r13
    00219206push r12
    00219208push rbp
    00219209push rbx
    0021920asub rsp, 8
    0021920emov r12, [rip+0x5cdcf]
    00219215mov rax, [r12]
    0021921amov rbx, [rax+464]
    00219221mov rbp, [rbx+96]
    00219225cmp [rbp], 0
    00219229lea r13, [rbp+24]
    0021922djne 0x219280
    0021922fmov [rbp], 1
    00219233mov rdi, [rbx]
    00219236lea r13, [rbp+24]
    0021923acall caml_memprof_set_trigger
    0021923fmov rdi, [rbx]
    00219242call caml_reset_young_limit
    00219247mov rsi, r13
    0021924amov rdi, rbp
    0021924dcall fn_217ce0
    00219252mov rdi, rbx
    00219255mov r14, rax
    00219258mov rax, [rbx+96]
    0021925cmov r15, rdx
    0021925fmov [rax], 0
    00219262call fn_2170b0
    00219267mov rdi, [rbx]
    0021926acall caml_memprof_set_trigger
    0021926fmov rdi, [rbx]
    00219272call caml_reset_young_limit
    00219277test r14l, r14l
    0021927ajne 0x2192cd
    0021927cmov rdi, r13
    0021927fcall fn_2173a0
    00219284mov rdi, rax
    00219287cmp rax, 1
    0021928bje 0x2192d5
    0021928dmov rax, [rax]
    00219290sar rax, 1
    00219293test eax, eax
    00219295jne 0x2192d5
    00219297mov esi, 3
    0021929ccall caml_modify
    002192a1mov rdi, [r12]
    002192a6call caml_memprof_set_trigger
    002192abmov rdi, [r12]
    002192b0call caml_reset_young_limit
    002192b5add rsp, 8
    002192b9mov eax, 1
    002192bepop rbx
    002192bfpop rbp
    002192c0pop r12
    002192c2pop r13
    002192c4pop r14
    002192c6pop r15
    002192c8ret
    002192c9mov rdi, r15
    002192cccall caml_raise
    002192d1lea rdi, [rip+0x17a6c]
    002192d8call caml_failwith
    002192dddb 0xdf
    002192dedb 0xd6
    002192dfdb 0xfe
    002192e0db 0xff
    00219200
    002192e1
    002192e1 // align 0x10
    002192f0
    002192f0caml_memprof_discard:
    002192f0sub rsp, 8
    002192f4mov rax, [rdi]
    002192f7sar rax, 1
    002192fatest eax, eax
    002192fcje 0x21931b
    002192fecmp eax, 2
    00219301je 0x219327
    00219303mov esi, 5
    00219308call caml_modify
    0021930dmov eax, 1
    00219312add rsp, 8
    00219316ret
    00219317lea rdi, [rip+0x17a4e]
    0021931ecall caml_failwith
    00219323lea rdi, [rip+0x17a72]
    0021932acall caml_failwith
    0021932fdb 0x8d
    00219330db 0xd6
    00219331db 0xfe
    00219332db 0xff
    002192f0
    00219333
    00219333 // align 0x10
    00219340
    00219340fn_219340:
    00219340push r14
    00219342push r13
    00219344push r12
    00219346push rbp
    00219347mov rbp, rsi
    0021934apush rbx
    0021934bmov rax, [rdi]
    0021934emov rbx, rdi
    00219351test rax, rax
    00219354je 0x219440
    0021935amov r12, rcx
    0021935dmov rcx, [rdi+16]
    00219361cmp [rdi+32], rcx
    00219365je 0x219408
    0021936bmov r14, [rdi+24]
    0021936fmov r13, r9
    00219372sub r14, rax
    00219375mov rax, [rdi+40]
    00219379lea r12, [rax+rax]
    0021937dmov [rdi+40], r12
    00219381add r12, [rdi+48]
    00219385mov edi, 8
    0021938aimul r12, rsi
    0021938emov rsi, r8
    00219391test r12, r12
    00219394lea rdx, [r12+1023]
    0021939ccmovns rdx, r12
    002193a0xor eax, eax
    002193a2sar rdx, 10
    002193a6call caml_gc_message
    002193abmov rdi, [rbx]
    002193aemov rsi, r12
    002193b1call caml_stat_resize_noexc
    002193b6mov [rbx], rax
    002193b9test rax, rax
    002193bcje 0x2194bc
    002193c2movdqu x0, [rbx+40]
    002193c7movdqa x1, x0
    002193cbpsrldq x1, 8
    002193d0paddq x0, x1
    002193d4movq rdx, x0
    002193d9imul rdx, rbp
    002193ddimul rbp, [rbx+40]
    002193e2add rdx, rax
    002193e5add rbp, rax
    002193e8add rax, r14
    002193ebmov [rbx+8], rdx
    002193efmov [rbx+16], rbp
    002193f3mov [rbx+24], rax
    002193f7mov [rbx+32], rdx
    002193fbpop rbx
    002193fcpop rbp
    002193fdpop r12
    002193ffpop r13
    00219401pop r14
    00219403ret
    00219404
    00219404 0f 1f 40 00 ..@.
    00219408
    00219408loc_219408:
    00219408mov edi, edx
    0021940amov esi, 1
    0021940fcall caml_ev_counter
    00219414mov rsi, r12
    00219417xor eax, eax
    00219419xor edx, edx
    0021941bmov edi, 8
    00219420call caml_gc_message
    00219425mov rax, [rbx+8]
    00219429mov [rbx+32], rax
    0021942dpop rbx
    0021942epop rbp
    0021942fpop r12
    00219431pop r13
    00219433pop r14
    00219435jmp 0x21fcd0
    0021943a
    0021943a 66 0f 1f 44 00 00 f..D..
    00219440
    00219440loc_219440:
    00219440mov rax, [rip+0x5cba1]
    00219447mov rax, [rax]
    0021944bmov rdi, [rax+272]
    00219452mov [rbx+48], 256
    0021945ashr rdi, 3
    0021945emov [rbx+40], rdi
    00219462add rdi, 256
    00219469imul rdi, rsi
    0021946dcall caml_stat_alloc_noexc
    00219472mov r12, rax
    00219475test rax, rax
    00219478je 0x2194cb
    0021947amov rdi, [rbx]
    0021947dtest rdi, rdi
    00219480je 0x219487
    00219482call caml_stat_free
    00219487
    00219487loc_219487:
    00219487mov rax, [rbx+40]
    0021948bmov rdx, rbp
    0021948emov [rbx], r12
    00219491mov [rbx+24], r12
    00219495imul rdx, rax
    00219499add rax, [rbx+48]
    0021949dimul rax, rbp
    002194a1add rdx, r12
    002194a4add r12, rax
    002194a7mov [rbx+16], rdx
    002194abmov [rbx+32], rdx
    002194afmov [rbx+8], r12
    002194b3pop rbx
    002194b4pop rbp
    002194b5pop r12
    002194b7pop r13
    002194b9pop r14
    002194bbret
    002194bc
    002194bcloc_2194bc:
    002194bcmov rsi, r13
    002194bflea rdi, [rip+0x15a84]
    002194c6call caml_fatal_error
    002194cb
    002194cbloc_2194cb:
    002194cblea rdi, [rip+0x15d70]
    002194d2xor eax, eax
    002194d4call caml_fatal_error
    00219340
    002194d9
    002194d9 // align 0x10
    002194e0
    002194e0caml_empty_minor_heap_setup:
    002194e0mov rax, [rip+0x15f70d]
    002194e7add rax, 1
    002194ebmov [rip+0x15f702], rax
    002194f2mov [rip+0x15f710], 1
    002194fcmov [rip+0x15f70d], 0
    00219507ret
    00219508db 0x00
    00219509add [rax], al
    0021950bret
    002194e0
    0021950c
    0021950c // align 0x10
    00219510
    00219510caml_do_opportunistic_major_slice:
    00219510push rbx
    00219511call caml_opportunistic_major_work_available
    00219516mov ebx, eax
    00219518test eax, eax
    0021951ajne 0x219528
    0021951cmov eax, ebx
    0021951epop rbx
    0021951fret
    00219520db 0x89
    00219521fcomp [rbx-61]
    00219524
    00219524 0f 1f 40 00 ..@.
    00219528
    00219528loc_219528:
    00219528mov rax, [rip+0x15f701]
    0021952ftest al, 64
    00219531jne 0x219548
    00219533mov edi, 512
    00219538call caml_opportunistic_major_collection_slice
    0021953dmov eax, ebx
    0021953fpop rbx
    00219540ret
    00219541
    00219541 0f 1f 80 00 00 00 00 .......
    00219548
    00219548loc_219548:
    00219548mov edi, 26
    0021954dcall caml_ev_begin
    00219552mov edi, 512
    00219557call caml_opportunistic_major_collection_slice
    0021955cmov edi, 26
    00219561call caml_ev_end
    00219566mov eax, ebx
    00219568pop rbx
    00219569ret
    00219510
    0021956a
    0021956a // align 0x10