File hevea_f46f610a6b0078f4aa208dda361f21de574cc56ad64b32889301afc466d33979.elf
Function:
    002139f0
    002139f0fn_2139f0:
    002139f0push r15
    002139f2push r14
    002139f4mov r14l, esi
    002139f7push r13
    002139f9mov r13, rdx
    002139fcpush r12
    002139fepush rbp
    002139ffpush rbx
    00213a00mov ebx, ecx
    00213a02sub rsp, 88
    00213a06mov [rsp+52], r8l
    00213a0bmov rbp, [0x28]
    00213a14mov [rsp+72], rbp
    00213a19mov rbp, [rip+0x625c8]
    00213a20mov r15, [rbp]
    00213a25mov rax, [r15+416]
    00213a2cmov [rsp+24], rax
    00213a31cmp ecx, 2
    00213a34je 0x2143b2
    00213a3amov edx, 1
    00213a3fmov esi, 1
    00213a44call fn_211a10
    00213a49
    00213a49loc_213a49:
    00213a49mov edi, 27
    00213a4ecall caml_ev_begin
    00213a53mov [rsp+48], 1
    00213a5b
    00213a5bloc_213a5b:
    00213a5bmov rax, [rip+0x1651fe]
    00213a62test rax, rax
    00213a65je 0x213a69
    00213a67call rax
    00213a69
    00213a69loc_213a69:
    00213a69mov [rsp+16], 0
    00213a72cmp [r15+120], 0
    00213a77je 0x214250
    00213a7d
    00213a7dloc_213a7d:
    00213a7dxor r12l, r12l
    00213a80mov esi, ebx
    00213a82mov rax, [r15+112]
    00213a86mov rbx, r12
    00213a89mov r12l, esi
    00213a8cjmp 0x213b17
    00213a91
    00213a91 0f 1f 80 00 00 00 00 .......
    00213a98
    00213a98loc_213a98:
    00213a98mov rax, [r15+168]
    00213a9fmov r11l, [rax+16]
    00213aa3test r11l, r11l
    00213aa6jne 0x213ed0
    00213aac
    00213aacloc_213aac:
    00213aaccmp [rax], 0
    00213ab0jne 0x213f22
    00213ab6
    00213ab6loc_213ab6:
    00213ab6call fn_212ae0
    00213abbtest eax, eax
    00213abdje 0x213b88
    00213ac3
    00213ac3loc_213ac3:
    00213ac3test r13, r13
    00213ac6je 0x213cf0
    00213accmov rcx, r13
    00213acfmov edx, r14l
    00213ad2xor esi, esi
    00213ad4mov rdi, r15
    00213ad7call fn_212b60
    00213adc
    00213adcloc_213adc:
    00213adcmov rdx, [rbp]
    00213ae1cmp r12l, 1
    00213ae5je 0x213cd0
    00213aeb
    00213aebloc_213aeb:
    00213aebmov rcx, [rdx+352]
    00213af2mov rsi, [rip+0x165017]
    00213af9mov rax, [rdx+344]
    00213b00sub rax, rsi
    00213b03cmp rax, rcx
    00213b06cmovl rax, rcx
    00213b0atest rax, rax
    00213b0djle 0x213ba0
    00213b13
    00213b13loc_213b13:
    00213b13mov rax, [r15+112]
    00213b17
    00213b17loc_213b17:
    00213b17test rax, rax
    00213b1aje 0x213c70
    00213b20
    00213b20loc_213b20:
    00213b20cmp r12l, 2
    00213b24je 0x213ba0
    00213b26
    00213b26loc_213b26:
    00213b26mov eax, [rip+0x164f34]
    00213b2ccmp eax, 1
    00213b2fje 0x213d60
    00213b35
    00213b35loc_213b35:
    00213b35cmp eax, 2
    00213b38je 0x213d08
    00213b3e
    00213b3eloc_213b3e:
    00213b3ecall fn_212410
    00213b43cmp [rip+0x164f16], 2
    00213b4aje 0x213a98
    00213b50mov rcx, [rip+0x164fa1]
    00213b57mov rax, [r15+168]
    00213b5ecmp [rax], 0
    00213b62je 0x213b6e
    00213b64cmp [rax+24], rcx
    00213b68jb 0x2140f0
    00213b6e
    00213b6eloc_213b6e:
    00213b6ecmp [rip+0x164eeb], 2
    00213b75je 0x213a98
    00213b7bcall fn_212ae0
    00213b80test eax, eax
    00213b82jne 0x213ac3
    00213b88
    00213b88loc_213b88:
    00213b88call fn_212a80
    00213b8dtest eax, eax
    00213b8fjne 0x213ac3
    00213b95nop [rax+rax]
    00213ba0
    00213ba0loc_213ba0:
    00213ba0mov eax, r12l
    00213ba3mov r12, rbx
    00213ba6mov ebx, eax
    00213ba8mov rax, [rip+0x1650a9]
    00213baftest rax, rax
    00213bb2je 0x213bb6
    00213bb4call rax
    00213bb6
    00213bb6loc_213bb6:
    00213bb6mov r10l, [rsp+48]
    00213bbbtest r10l, r10l
    00213bbejne 0x21437d
    00213bc4
    00213bc4loc_213bc4:
    00213bc4mov rbp, [r15+416]
    00213bcbmov rax, [rsp+24]
    00213bd0sub rbp, rax
    00213bd3cmp ebx, 2
    00213bd6je 0x21443c
    00213bdcmov eax, [rip+0x164e7e]
    00213be2mov ecx, 85
    00213be7cmp eax, 2
    00213beaja 0x213bf7
    00213beclea rdx, [rip+0x1dfb0]
    00213bf3movsx ecx, [rdx+rax]
    00213bf7
    00213bf7loc_213bf7:
    00213bf7mov [rsp+8], ecx
    00213bfbcall caml_incoming_interrupts_queued
    00213c00mov r9, r12
    00213c03lea rdi, [rip+0x1d076]
    00213c0acmp eax, 1
    00213c0dlea rax, [rip+0x1df8c]
    00213c14sbb edx, edx
    00213c16sub rsp, 8
    00213c1amovsx esi, [rax+rbx]
    00213c1exor eax, eax
    00213c20push rbp
    00213c21and edx, 4
    00213c24mov r8, [rsp+32]
    00213c29mov ecx, [rsp+24]
    00213c2dadd edx, 42
    00213c30call caml_gc_log
    00213c35cmp [rip+0x164e24], 2
    00213c3cpop r8
    00213c3epop r9
    00213c40je 0x2144c3
    00213c46
    00213c46loc_213c46:
    00213c46mov rax, [rsp+72]
    00213c4bsub rax, [0x28]
    00213c54jne 0x214587
    00213c5aadd rsp, 88
    00213c5epop rbx
    00213c5fpop rbp
    00213c60pop r12
    00213c62pop r13
    00213c64pop r14
    00213c66pop r15
    00213c68ret
    00213c69
    00213c69 0f 1f 80 00 00 00 00 .......
    00213c70
    00213c70loc_213c70:
    00213c70mov rdx, [rbp]
    00213c75cmp r12l, 1
    00213c79je 0x213da8
    00213c7fmov rcx, [rdx+352]
    00213c86mov rsi, [rip+0x164e83]
    00213c8dmov rax, [rdx+344]
    00213c94sub rax, rsi
    00213c97cmp rax, rcx
    00213c9acmovl rax, rcx
    00213c9etest rax, rax
    00213ca1jg 0x213e20
    00213ca7cmp r12l, 2
    00213cabje 0x213ba0
    00213cb1mov eax, [rip+0x164da9]
    00213cb7cmp eax, 1
    00213cbajne 0x213b35
    00213cc0mov rdx, [rbp]
    00213cc5jmp 0x213d6f
    00213cca
    00213cca 66 0f 1f 44 00 00 f..D..
    00213cd0
    00213cd0loc_213cd0:
    00213cd0mov [rsp+8], rdx
    00213cd5call caml_incoming_interrupts_queued
    00213cdamov rdx, [rsp+8]
    00213cdftest eax, eax
    00213ce1je 0x213aeb
    00213ce7jmp 0x213ba0
    00213cec
    00213cec 0f 1f 40 00 ..@.
    00213cf0
    00213cf0loc_213cf0:
    00213cf0xor edx, edx
    00213cf2xor esi, esi
    00213cf4lea rdi, [rip-4507]
    00213cfbcall caml_try_run_on_all_domains
    00213d00jmp 0x213adc
    00213d05
    00213d05 0f 1f 00 ...
    00213d08
    00213d08loc_213d08:
    00213d08mov rdx, [rbp]
    00213d0dcmp r12l, 1
    00213d11je 0x213e00
    00213d17
    00213d17loc_213d17:
    00213d17mov rcx, [rdx+352]
    00213d1emov rsi, [rip+0x164deb]
    00213d25mov rax, [rdx+344]
    00213d2csub rax, rsi
    00213d2fcmp rax, rcx
    00213d32cmovl rax, rcx
    00213d36test rax, rax
    00213d39jle 0x213b3e
    00213d3fmov rdi, r15
    00213d42call caml_final_update_last
    00213d47test eax, eax
    00213d49je 0x213b3e
    00213d4flock sub [rip+0x164dd0], 1
    00213d58jmp 0x213b3e
    00213d5d
    00213d5d 0f 1f 00 ...
    00213d60
    00213d60loc_213d60:
    00213d60mov rdx, [rbp]
    00213d65cmp r12l, 1
    00213d69je 0x214207
    00213d6f
    00213d6floc_213d6f:
    00213d6fmov rcx, [rdx+352]
    00213d76mov rsi, [rip+0x164d93]
    00213d7dmov rax, [rdx+344]
    00213d84sub rax, rsi
    00213d87cmp rax, rcx
    00213d8acmovl rax, rcx
    00213d8etest rax, rax
    00213d91jg 0x214090
    00213d97
    00213d97loc_213d97:
    00213d97mov eax, [rip+0x164cc3]
    00213d9djmp 0x213b35
    00213da2
    00213da2 66 0f 1f 44 00 00 f..D..
    00213da8
    00213da8loc_213da8:
    00213da8mov [rsp+8], rdx
    00213dadcall caml_incoming_interrupts_queued
    00213db2mov rdx, [rsp+8]
    00213db7test eax, eax
    00213db9jne 0x213de3
    00213dbbmov rcx, [rdx+352]
    00213dc2mov rsi, [rip+0x164d47]
    00213dc9mov rax, [rdx+344]
    00213dd0sub rax, rsi
    00213dd3cmp rax, rcx
    00213dd6cmovl rax, rcx
    00213ddatest rax, rax
    00213dddjg 0x21433f
    00213de3
    00213de3loc_213de3:
    00213de3mov eax, [rip+0x164c77]
    00213de9cmp eax, 1
    00213decje 0x214202
    00213df2cmp eax, 2
    00213df5jne 0x213b3e
    00213dfb
    00213dfbloc_213dfb:
    00213dfbmov rdx, [rbp]
    00213e00
    00213e00loc_213e00:
    00213e00mov [rsp+8], rdx
    00213e05call caml_incoming_interrupts_queued
    00213e0amov rdx, [rsp+8]
    00213e0ftest eax, eax
    00213e11je 0x213d17
    00213e17jmp 0x213b3e
    00213e1c
    00213e1c 0f 1f 40 00 ..@.
    00213e20
    00213e20loc_213e20:
    00213e20mov eax, [rsp+48]
    00213e24test eax, eax
    00213e26jne 0x21434b
    00213e2ccmp [r15+112], 0
    00213e31jne 0x213b20
    00213e37
    00213e37loc_213e37:
    00213e37mov [rsp+8], r13
    00213e3cjmp 0x213e98
    00213e3e
    00213e3e 66 90 f.
    00213e40
    00213e40loc_213e40:
    00213e40mov rcx, [r13+352]
    00213e47mov edi, 16384
    00213e4cmov rsi, [rip+0x164cbd]
    00213e53mov rax, [r13+344]
    00213e5asub rax, rsi
    00213e5dcmp rax, rcx
    00213e60cmovl rax, rcx
    00213e64cmp rax, rdi
    00213e67cmovle rdi, rax
    00213e6bmov r13, rdi
    00213e6etest rax, rax
    00213e71jle 0x214230
    00213e77mov rdi, r13
    00213e7acall fn_213760
    00213e7fmov rdi, r13
    00213e82sub rdi, rax
    00213e85add rbx, rdi
    00213e88call fn_2119b0
    00213e8dcmp [r15+112], 0
    00213e92jne 0x214230
    00213e98
    00213e98loc_213e98:
    00213e98mov r13, [rbp]
    00213e9dcmp r12l, 1
    00213ea1jne 0x213e40
    00213ea3call caml_incoming_interrupts_queued
    00213ea8test eax, eax
    00213eaaje 0x213e40
    00213eacmov eax, [rsp+48]
    00213eb0mov r13, [rsp+8]
    00213eb5test eax, eax
    00213eb7je 0x213de3
    00213ebdmov edi, 10
    00213ec2call caml_ev_end
    00213ec7jmp 0x213b26
    00213ecc
    00213ecc 0f 1f 40 00 ..@.
    00213ed0
    00213ed0loc_213ed0:
    00213ed0mov [rax+16], 0
    00213ed7mov rcx, [r15+168]
    00213edemov rax, [rcx]
    00213ee1test rax, rax
    00213ee4je 0x214333
    00213eeanop [rax+rax]
    00213ef0
    00213ef0loc_213ef0:
    00213ef0mov rdx, rax
    00213ef3mov rax, [rax]
    00213ef6test rax, rax
    00213ef9jne 0x213ef0
    00213efbmov rax, [rcx+8]
    00213effmov [rdx], rax
    00213f02
    00213f02loc_213f02:
    00213f02mov rax, [r15+168]
    00213f09mov [rax+8], 0
    00213f11mov rax, [r15+168]
    00213f18cmp [rax], 0
    00213f1cje 0x214368
    00213f22
    00213f22loc_213f22:
    00213f22mov edi, 21
    00213f27call caml_ev_begin
    00213f2cmov rax, [r15+168]
    00213f33cmp [rax], 0
    00213f37je 0x214051
    00213f3dmov [rsp+8], rbx
    00213f42mov [rsp+32], r14l
    00213f47mov [rsp+40], r13
    00213f4cmov r13, r15
    00213f4fnop
    00213f50
    00213f50loc_213f50:
    00213f50mov rbx, [rbp]
    00213f55cmp r12l, 1
    00213f59je 0x214080
    00213f5f
    00213f5floc_213f5f:
    00213f5fmov rdx, [rbx+352]
    00213f66mov rcx, [rip+0x164ba3]
    00213f6dmov rax, [rbx+344]
    00213f74sub rax, rcx
    00213f77mov ecx, 16384
    00213f7ccmp rax, rdx
    00213f7fcmovl rax, rdx
    00213f83cmp rax, rcx
    00213f86cmovle rcx, rax
    00213f8amov r15, rcx
    00213f8dtest rax, rax
    00213f90jle 0x21403f
    00213f96mov rax, [r13+168]
    00213f9dmov r14, rcx
    00213fa0mov rbx, [rax]
    00213fa3test rbx, rbx
    00213fa6jne 0x213fc8
    00213fa8jmp 0x214026
    00213faa
    00213faa 66 0f 1f 44 00 00 f..D..
    00213fb0
    00213fb0loc_213fb0:
    00213fb0mov rax, [r13+168]
    00213fb7sub r14, 1
    00213fbbmov rbx, [rax]
    00213fbetest rbx, rbx
    00213fc1je 0x214020
    00213fc3
    00213fc3loc_213fc3:
    00213fc3test r14, r14
    00213fc6jle 0x214020
    00213fc8
    00213fc8loc_213fc8:
    00213fc8mov rdx, [rbx]
    00213fcbmov [rax], rdx
    00213fcemov rax, [rbx-8]
    00213fd2and eax, 768
    00213fd7cmp [rip+0x1643ea], rax
    00213fdeje 0x213fb0
    00213fe0mov rdi, rbx
    00213fe3sub r14, 1
    00213fe7call caml_ephe_clean
    00213fecmov rax, [r13+168]
    00213ff3mov rax, [rax+8]
    00213ff7mov [rbx], rax
    00213ffamov rax, [r13+168]
    00214001mov [rax+8], rbx
    00214005mov rax, [rbx-8]
    00214009shr rax, 10
    0021400dsub r14, rax
    00214010mov rax, [r13+168]
    00214017mov rbx, [rax]
    0021401atest rbx, rbx
    0021401djne 0x213fc3
    0021401fnop
    00214020
    00214020loc_214020:
    00214020mov rbx, r15
    00214023sub rbx, r14
    00214026
    00214026loc_214026:
    00214026mov rdi, rbx
    00214029call fn_2119b0
    0021402emov rax, [r13+168]
    00214035cmp [rax], 0
    00214039jne 0x213f50
    0021403f
    0021403floc_21403f:
    0021403fmov r15, r13
    00214042mov rbx, [rsp+8]
    00214047mov r14l, [rsp+32]
    0021404cmov r13, [rsp+40]
    00214051
    00214051loc_214051:
    00214051mov edi, 21
    00214056call caml_ev_end
    0021405bmov rax, [r15+168]
    00214062cmp [rax], 0
    00214066jne 0x213ab6
    0021406clock sub [rip+0x164ac3], 1
    00214075jmp 0x213ab6
    0021407a
    0021407a 66 0f 1f 44 00 00 f..D..
    00214080
    00214080loc_214080:
    00214080call caml_incoming_interrupts_queued
    00214085test eax, eax
    00214087je 0x213f5f
    0021408djmp 0x21403f
    0021408f
    0021408f 90 .
    00214090
    00214090loc_214090:
    00214090mov rdi, r15
    00214093call caml_final_update_first
    00214098test eax, eax
    0021409aje 0x213d97
    002140a0lock sub [rip+0x164a87], 1
    002140a9cmp [r15+112], 0
    002140aejne 0x213d97
    002140b4mov rcx, [rbp]
    002140b9cmp r12l, 1
    002140bdje 0x21456b
    002140c3
    002140c3loc_2140c3:
    002140c3mov rdx, [rcx+352]
    002140camov rsi, [rip+0x164a3f]
    002140d1mov rax, [rcx+344]
    002140d8sub rax, rsi
    002140dbcmp rax, rdx
    002140decmovl rax, rdx
    002140e2test rax, rax
    002140e5jle 0x213d97
    002140ebjmp 0x213b13
    002140f0
    002140f0loc_2140f0:
    002140f0mov rdx, [rbp]
    002140f5cmp r12l, 1
    002140f9je 0x21438c
    002140ff
    002140ffloc_2140ff:
    002140ffmov rsi, [rdx+352]
    00214106mov rdi, [rip+0x164a03]
    0021410dmov rax, [rdx+344]
    00214114sub rax, rdi
    00214117cmp rax, rsi
    0021411acmovl rax, rsi
    0021411etest rax, rax
    00214121jle 0x213b6e
    00214127mov edi, 20
    0021412cmov [rsp+32], rcx
    00214131call caml_ev_begin
    00214136mov [rsp+8], rbx
    0021413bmov rbx, [rsp+32]
    00214140mov [rsp+40], r13
    00214145mov [rsp+32], r14l
    0021414ajmp 0x2141a7
    0021414c
    0021414c 0f 1f 40 00 ..@.
    00214150
    00214150loc_214150:
    00214150mov rcx, [r13+352]
    00214157mov edi, 16384
    0021415cmov rsi, [rip+0x1649ad]
    00214163mov rax, [r13+344]
    0021416asub rax, rsi
    0021416dcmp rax, rcx
    00214170cmovl rax, rcx
    00214174cmp rax, rdi
    00214177cmovle rdi, rax
    0021417bmov r13, rdi
    0021417etest rax, rax
    00214181jle 0x2141ce
    00214183xor edx, edx
    00214185mov rdi, r13
    00214188mov rsi, rbx
    0021418bcall fn_213020
    00214190mov rdi, r13
    00214193mov r14, rax
    00214196sub rdi, rax
    00214199call fn_2119b0
    0021419etest r14, r14
    002141a1jg 0x21458c
    002141a7
    002141a7loc_2141a7:
    002141a7mov rax, [r15+168]
    002141aecmp [rax], 0
    002141b2je 0x2141ce
    002141b4cmp [rax+24], rbx
    002141b8jae 0x2141ce
    002141bamov r13, [rbp]
    002141bfcmp r12l, 1
    002141c3jne 0x214150
    002141c5call caml_incoming_interrupts_queued
    002141catest eax, eax
    002141ccje 0x214150
    002141ce
    002141celoc_2141ce:
    002141cemov edi, 20
    002141d3mov rbx, [rsp+8]
    002141d8mov r14l, [rsp+32]
    002141ddmov r13, [rsp+40]
    002141e2call caml_ev_end
    002141e7mov rax, [r15+168]
    002141eecmp [rax], 0
    002141f2jne 0x213b6e
    002141f8call fn_2123b0
    002141fdjmp 0x213b6e
    00214202
    00214202loc_214202:
    00214202mov rdx, [rbp]
    00214207
    00214207loc_214207:
    00214207mov [rsp+8], rdx
    0021420ccall caml_incoming_interrupts_queued
    00214211mov rdx, [rsp+8]
    00214216test eax, eax
    00214218je 0x213d6f
    0021421e
    0021421eloc_21421e:
    0021421ecmp [rip+0x16483b], 2
    00214225jne 0x213b3e
    0021422bjmp 0x213dfb
    00214230
    00214230loc_214230:
    00214230mov eax, [rsp+48]
    00214234mov r13, [rsp+8]
    00214239test eax, eax
    0021423bje 0x213b20
    00214241
    00214241loc_214241:
    00214241mov edi, 10
    00214246call caml_ev_end
    0021424bjmp 0x213b20
    00214250
    00214250loc_214250:
    00214250mov eax, [rsp+48]
    00214254test eax, eax
    00214256jne 0x214476
    0021425c
    0021425cloc_21425c:
    0021425cxor eax, eax
    0021425emov [rsp+8], r14l
    00214263mov r14, r15
    00214266mov r15, r13
    00214269mov r13l, ebx
    0021426cmov rbx, rax
    0021426fjmp 0x2142d4
    00214271
    00214271 0f 1f 80 00 00 00 00 .......
    00214278
    00214278loc_214278:
    00214278mov rcx, [r12+352]
    00214280mov rsi, [rip+0x164889]
    00214287mov rax, [r12+344]
    0021428fmov r12l, 16384
    00214295sub rax, rsi
    00214298cmp rax, rcx
    0021429bcmovl rax, rcx
    0021429fcmp rax, r12
    002142a2cmovle r12, rax
    002142a6test rax, rax
    002142a9jle 0x2142e8
    002142abmov rdi, [r14+280]
    002142b2mov rsi, r12
    002142b5call caml_sweep
    002142basub r12, rax
    002142bdmov rdi, r12
    002142c0call fn_2119b0
    002142c5test r12, r12
    002142c8je 0x214320
    002142caadd rbx, r12
    002142cd
    002142cdloc_2142cd:
    002142cdcmp [r14+120], 0
    002142d2jne 0x2142e8
    002142d4
    002142d4loc_2142d4:
    002142d4mov r12, [rbp]
    002142d9cmp r13l, 1
    002142ddjne 0x214278
    002142dfcall caml_incoming_interrupts_queued
    002142e4test eax, eax
    002142e6je 0x214278
    002142e8
    002142e8loc_2142e8:
    002142e8mov eax, [rsp+48]
    002142ecmov [rsp+16], rbx
    002142f1mov ebx, r13l
    002142f4mov r13, r15
    002142f7mov r15, r14
    002142famov r14l, [rsp+8]
    002142fftest eax, eax
    00214301je 0x213a7d
    00214307
    00214307loc_214307:
    00214307mov edi, 7
    0021430ccall caml_ev_end
    00214311jmp 0x213a7d
    00214316
    00214316 66 2e 0f 1f 84 00 00 00 00 00 f.........
    00214320
    00214320loc_214320:
    00214320mov [r14+120], 1
    00214328lock sub [rip+0x164817], 1
    00214331jmp 0x2142cd
    00214333
    00214333loc_214333:
    00214333mov rax, [rcx+8]
    00214337mov [rcx], rax
    0021433ajmp 0x213f02
    0021433f
    0021433floc_21433f:
    0021433fmov eax, [rsp+48]
    00214343test eax, eax
    00214345je 0x214408
    0021434b
    0021434bloc_21434b:
    0021434bmov edi, 10
    00214350call caml_ev_begin
    00214355cmp [r15+112], 0
    0021435aje 0x213e37
    00214360jmp 0x214241
    00214365
    00214365 0f 1f 00 ...
    00214368
    00214368loc_214368:
    00214368lock sub [rip+0x1647c7], 1
    00214371mov rax, [r15+168]
    00214378jmp 0x213aac
    0021437d
    0021437dloc_21437d:
    0021437dmov edi, 27
    00214382call caml_ev_end
    00214387jmp 0x213bc4
    0021438c
    0021438cloc_21438c:
    0021438cmov [rsp+32], rdx
    00214391mov [rsp+8], rcx
    00214396call caml_incoming_interrupts_queued
    0021439bmov rcx, [rsp+8]
    002143a0mov rdx, [rsp+32]
    002143a5test eax, eax
    002143a7je 0x2140ff
    002143adjmp 0x213b6e
    002143b2
    002143b2loc_2143b2:
    002143b2mov rax, [rip+0x164877]
    002143b9test al, 64
    002143bbje 0x214418
    002143bdxor esi, esi
    002143bfmov edx, 1
    002143c4call fn_211a10
    002143c9cmp [r15+120], 0
    002143ceje 0x213a49
    002143d4cmp [r15+112], 0
    002143d9je 0x213a49
    002143df
    002143dfloc_2143df:
    002143dfmov rax, [rsp+72]
    002143e4sub rax, [0x28]
    002143edjne 0x214587
    002143f3add rsp, 88
    002143f7xor edi, edi
    002143f9pop rbx
    002143fapop rbp
    002143fbpop r12
    002143fdpop r13
    002143ffpop r14
    00214401pop r15
    00214403jmp 0x2119b0
    00214408
    00214408loc_214408:
    00214408cmp [r15+112], 0
    0021440dje 0x213e37
    00214413jmp 0x213b26
    00214418
    00214418loc_214418:
    00214418xor edx, edx
    0021441axor esi, esi
    0021441ccall fn_211a10
    00214421cmp [r15+120], 0
    00214426je 0x21442f
    00214428cmp [r15+112], 0
    0021442djne 0x2143df
    0021442f
    0021442floc_21442f:
    0021442fmov [rsp+48], 0
    00214437jmp 0x213a5b
    0021443c
    0021443cloc_21443c:
    0021443ccall caml_incoming_interrupts_queued
    00214441test eax, eax
    00214443jne 0x214490
    00214445sub rsp, 8
    00214449mov esi, 111
    0021444emov r9, r12
    00214451xor eax, eax
    00214453push rbp
    00214454mov r8, [rsp+32]
    00214459mov ecx, 85
    0021445elea rdi, [rip+0x1c81b]
    00214465mov edx, 46
    0021446acall caml_gc_log
    0021446fpop rsi
    00214470pop rdi
    00214471jmp 0x213c46
    00214476
    00214476loc_214476:
    00214476mov edi, 7
    0021447bcall caml_ev_begin
    00214480cmp [r15+120], 0
    00214485je 0x21425c
    0021448bjmp 0x214307
    00214490
    00214490loc_214490:
    00214490sub rsp, 8
    00214494movsx esi, [rip+0x1d707]
    0021449bmov r9, r12
    0021449exor eax, eax
    002144a0push rbp
    002144a1mov r8, [rsp+32]
    002144a6mov ecx, 85
    002144abmov edx, 42
    002144b0lea rdi, [rip+0x1c7c9]
    002144b7call caml_gc_log
    002144bcpop rdx
    002144bdpop rcx
    002144bejmp 0x213c46
    002144c3
    002144c3loc_2144c3:
    002144c3mov rax, [rip+0x16466e]
    002144catest rax, rax
    002144cdjne 0x213c46
    002144d3mov rax, [rip+0x16464e]
    002144datest rax, rax
    002144ddjne 0x213c46
    002144e3mov rax, [rip+0x1645c6]
    002144eatest rax, rax
    002144edjne 0x213c46
    002144f3mov rax, [rip+0x1645be]
    002144fatest rax, rax
    002144fdjne 0x213c46
    00214503mov eax, [rsp+52]
    00214507mov rbx, [rip+0x16455a]
    0021450elea rbp, [rsp+68]
    00214513mov [rsp+68], eax
    00214517test r13, r13
    0021451aje 0x21453f
    0021451cnop [rax]
    00214520
    00214520loc_214520:
    00214520mov rcx, r13
    00214523mov edx, r14l
    00214526mov rsi, rbp
    00214529mov rdi, r15
    0021452ccall fn_2125b0
    00214531cmp rbx, [rip+0x164530]
    00214538je 0x214520
    0021453ajmp 0x213c46
    0021453f
    0021453floc_21453f:
    0021453flea r12, [rip-8086]
    00214546nop [rax+rax]
    00214550
    00214550loc_214550:
    00214550xor edx, edx
    00214552mov rsi, rbp
    00214555mov rdi, r12
    00214558call caml_try_run_on_all_domains
    0021455dcmp rbx, [rip+0x164504]
    00214564je 0x214550
    00214566jmp 0x213c46
    0021456b
    0021456bloc_21456b:
    0021456bmov [rsp+8], rcx
    00214570call caml_incoming_interrupts_queued
    00214575mov rcx, [rsp+8]
    0021457atest eax, eax
    0021457cje 0x2140c3
    00214582jmp 0x21421e
    00214587
    00214587loc_214587:
    00214587call fn_f4590
    0021458c
    0021458cloc_21458c:
    0021458cmov edi, 20
    00214591mov [rsp+56], rbx
    00214596mov r14l, [rsp+32]
    0021459bmov rbx, [rsp+8]
    002145a0mov r13, [rsp+40]
    002145a5call caml_ev_end
    002145aamov rax, [r15+168]
    002145b1mov rcx, [rsp+56]
    002145b6cmp [rax], 0
    002145bajne 0x2145cb
    002145bcmov [rsp+8], rcx
    002145c1call fn_2123b0
    002145c6mov rcx, [rsp+8]
    002145cb
    002145cbloc_2145cb:
    002145cbcmp [r15+112], 0
    002145d0je 0x213c70
    002145d6mov rax, [rip+0x16451b]
    002145ddmov [rsp+8], rcx
    002145e2cmp rcx, rax
    002145e5jb 0x213b6e
    002145eblea rdi, [rip+0x1644ce]
    002145f2call fn_f4710
    002145f7mov rcx, [rsp+8]
    002145fclea rdi, [rip+0x1644bd]
    00214603test eax, eax
    00214605mov esi, eax
    00214607jne 0x21464b
    00214609mov rax, [rip+0x1644e8]
    00214610cmp rcx, rax
    00214613je 0x214630
    00214615
    00214615loc_214615:
    00214615call fn_f47c0
    0021461amov esi, eax
    0021461ctest eax, eax
    0021461eje 0x213b6e
    00214624lea rdi, [rip+0x1aeef]
    0021462bcall caml_plat_fatal_error
    00214630
    00214630loc_214630:
    00214630mov rax, [rbp]
    00214635mov rax, [rax+168]
    0021463cmov [rax+24], rcx
    00214640lock add [rip+0x1644b7], 1
    00214649jmp 0x214615
    0021464b
    0021464bloc_21464b:
    0021464blea rdi, [rip+0x1aebd]
    00214652call caml_plat_fatal_error
    002139f0
    00214657
    00214657 // align 0x10
    00214660
    00214660fn_214660:
    00214660push r13
    00214662push r12
    00214664push rbp
    00214665mov rbp, rcx
    00214668push rbx
    00214669mov ebx, edx
    0021466bsub rsp, 8
    0021466fmov r12, [rsi]
    00214672mov r13l, [rsi+8]
    00214676xor esi, esi
    00214678call caml_empty_minor_heap_no_major_slice_from_stw
    0021467dmov edi, 28
    00214682call caml_ev_begin
    00214687cmp r12, [rip+0x1643d6]
    0021468ejne 0x2146bd
    00214690nop [rax+rax]
    0021469bnop
    0021469cxor ecx, ecx
    0021469emov r8l, r13l
    002146a1mov rdx, rbp
    002146a4mov esi, ebx
    002146a6mov edi, 0x989680
    002146abcall fn_2139f0
    002146b0cmp [rip+0x1643ad], r12
    002146b7je 0x2146a0
    002146b9add rsp, 8
    002146bd
    002146bdloc_2146bd:
    002146bdmov edi, 28
    002146c2pop rbx
    002146c3pop rbp
    002146c4pop r12
    002146c6pop r13
    002146c8jmp 0x21cae0
    002146cddb 0x0f
    002146cetest [rax], al
    002146d0db 0x00
    00214660
    002146d1
    002146d1 // align 0x10
    002146e0
    002146e0caml_opportunistic_major_work_available:
    002146e0cmp [rdi+120], 0
    002146e5mov eax, 1
    002146eaje 0x2146fa
    002146ecxor eax, eax
    002146eecmp [rdi+112], 0
    002146f3sete al
    002146f6ret
    002146f7db 0x0f
    002146f8xchg eax, esp
    002146f9db 0xc0
    002146fa
    002146faloc_2146fa:
    002146faret
    002146e0
    002146fb
    002146fb // align 0x10
    00214700
    00214700caml_opportunistic_major_collection_slice:
    00214700xor r8l, r8l
    00214703mov ecx, 2
    00214708xor edx, edx
    0021470axor esi, esi
    0021470cjmp 0x2139f0
    00214711db 0xdb
    00214712db 0xf2
    00214713db 0xff
    00214714db 0xff
    00214700
    00214715
    00214715 // align 0x10
    00214720
    00214720caml_major_collection_slice:
    00214720push rbx
    00214721xor r8l, r8l
    00214724mov rbx, [rip+0x1644c1]
    0021472bcmp rdi, -1
    0021472fje 0x214758
    00214731xor ecx, ecx
    00214733xor edx, edx
    00214735xor esi, esi
    00214737call fn_2139f0
    0021473cmov rax, [rip+0x618a1]
    00214743mov rax, [rax]
    00214747mov [rax+152], rbx
    0021474epop rbx
    0021474fret
    00214750db 0x00
    00214751add [rbx-61], bl
    00214754
    00214754 0f 1f 40 00 ..@.
    00214758
    00214758loc_214758:
    00214758xor edx, edx
    0021475axor esi, esi
    0021475cmov ecx, 1
    00214761call fn_2139f0
    00214766call caml_incoming_interrupts_queued
    0021476btest eax, eax
    0021476dje 0x214740
    0021476flea rdi, [rip+0x1c542]
    00214776xor eax, eax
    00214778call caml_gc_log
    0021477dxor edi, edi
    0021477fcall caml_request_major_slice
    00214784jmp 0x214740
    00214720
    00214786
    00214786 // align 0x10
    00214790
    00214790caml_finish_major_cycle:
    00214790push r13
    00214792push r12
    00214794lea r12, [rip-319]
    0021479bpush rbp
    0021479cpush rbx
    0021479dsub rsp, 40
    002147a1mov rbp, [rip+0x1642bc]
    002147a8mov rbx, [0x28]
    002147b1mov [rsp+24], rbx
    002147b6mov ebx, edi
    002147b8mov r13, rsp
    002147bbmov rax, rbp
    002147benop [rax+rax]
    002147c9nop [rax]
    002147ccxor edx, edx
    002147cemov rsi, r13
    002147d1mov rdi, r12
    002147d4mov [rsp+8], ebx
    002147d8mov [rsp], rax
    002147dccall caml_try_run_on_all_domains
    002147e1mov rax, [rip+0x16427c]
    002147e8cmp rax, rbp
    002147ebje 0x2147d0
    002147edmov rax, [rsp+24]
    002147f2sub rax, [0x28]
    002147fbjne 0x21480c
    002147fdadd rsp, 40
    00214801pop rbx
    00214802pop rbp
    00214803pop r12
    00214805pop r13
    00214807ret
    00214808call fn_f4590
    0021480ddb 0x7f
    0021480estd
    0021480fin eax, dx
    00214810db 0xff
    00214790
    00214811
    00214811 // align 0x10
    00214820
    00214820caml_empty_mark_stack:
    00214820push rbx
    00214821mov rbx, [rip+0x617bc]
    00214828mov rax, [rbx]
    0021482ccmp [rax+112], 0
    00214831jne 0x21485a
    00214833nop [rax+rax]
    0021483cmov edi, 1000
    00214841call fn_213760
    00214846call caml_handle_incoming_interrupts
    0021484bmov rax, [rbx]
    0021484fcmp [rax+112], 0
    00214854je 0x214840
    00214856mov rsi, [rax+416]
    0021485dtest rsi, rsi
    00214860jne 0x214880
    00214862mov rax, [rbx]
    00214866
    00214866loc_214866:
    00214866mov [rax+416], 0
    00214871pop rbx
    00214872ret
    00214873db 0x00
    00214874add [rbx-61], bl
    00214877
    00214877 66 0f 1f 84 00 00 00 00 00 f........
    00214880
    00214880loc_214880:
    00214880lea rdi, [rip+0x1c469]
    00214887xor eax, eax
    00214889call caml_gc_log
    0021488ejmp 0x214866
    00214820
    00214890
    00214890caml_finish_marking:
    00214890push rbx
    00214891mov rbx, [rip+0x6174c]
    00214898mov rax, [rbx]
    0021489ccmp [rax+112], 0
    002148a1je 0x2148b0
    002148a3pop rbx
    002148a4ret
    002148a5db 0x74
    002148a6or [rbx-61], ebx
    002148a9
    002148a9 0f 1f 80 00 00 00 00 .......
    002148b0
    002148b0loc_2148b0:
    002148b0mov edi, 22
    002148b5call caml_ev_begin
    002148bamov rax, [rbx]
    002148becmp [rax+112], 0
    002148c3jne 0x2148ea
    002148c5nop [rax+rax]
    002148d0
    002148d0loc_2148d0:
    002148d0mov edi, 1000
    002148d5call fn_213760
    002148dacall caml_handle_incoming_interrupts
    002148dfmov rax, [rbx]
    002148e3cmp [rax+112], 0
    002148e8je 0x2148d0
    002148ea
    002148ealoc_2148ea:
    002148eamov rsi, [rax+416]
    002148f1test rsi, rsi
    002148f4jne 0x214938
    002148f6
    002148f6loc_2148f6:
    002148f6mov rax, [rbx]
    002148famov [rax+416], 0
    00214905call caml_shrink_mark_stack
    0021490amov rax, [rbx]
    0021490epxor x0, x0
    00214912mov edi, 22
    00214917mov rdx, [rax+128]
    0021491eadd [rax+400], rdx
    00214925movups [rax+128], x0
    0021492cpop rbx
    0021492djmp 0x21cae0
    00214932
    00214932 66 0f 1f 44 00 00 f..D..
    00214938
    00214938loc_214938:
    00214938lea rdi, [rip+0x1c3b1]
    0021493fxor eax, eax
    00214941call caml_gc_log
    00214946jmp 0x2148f6
    00214890
    00214948
    00214948 // align 0x10
    00214950
    00214950caml_finish_sweeping:
    00214950push rbx
    00214951mov rbx, [rip+0x6168c]
    00214958mov rax, [rbx]
    0021495ccmp [rax+120], 0
    00214961je 0x214970
    00214963pop rbx
    00214964ret
    00214965db 0x74
    00214966or [rbx-61], ebx
    00214969
    00214969 0f 1f 80 00 00 00 00 .......
    00214970
    00214970loc_214970:
    00214970mov edi, 36
    00214975call caml_ev_begin
    0021497amov rax, [rbx]
    0021497ecmp [rax+120], 0
    00214983je 0x2149a0
    00214985jmp 0x2149cb
    00214987
    00214987 66 0f 1f 84 00 00 00 00 00 f........
    00214990
    00214990loc_214990:
    00214990call caml_handle_incoming_interrupts
    00214995mov rax, [rbx]
    00214999cmp [rax+120], 0
    0021499ejne 0x2149cb
    002149a0
    002149a0loc_2149a0:
    002149a0mov rdi, [rax+280]
    002149a7mov esi, 10
    002149accall caml_sweep
    002149b1test rax, rax
    002149b4jle 0x214990
    002149b6mov rax, [rbx]
    002149bamov [rax+120], 1
    002149c2lock sub [rip+0x16417d], 1
    002149cb
    002149cbloc_2149cb:
    002149cbmov edi, 36
    002149d0pop rbx
    002149d1jmp 0x21cae0
    00214950
    002149d6
    002149d6 // align 0x10
    002149e0
    002149e0caml_init_major_gc:
    002149e0push rbp
    002149e1push rbx
    002149e2mov rbx, rdi
    002149e5mov edi, 48
    002149easub rsp, 8
    002149eecall caml_stat_alloc_noexc
    002149f3mov [rbx+104], rax
    002149f7test rax, rax
    002149faje 0x214b0e
    00214a00mov edi, 0x10000
    00214a05mov rbp, rax
    00214a08call caml_stat_alloc_noexc
    00214a0dmov [rbp], rax
    00214a11mov rdi, [rbx+104]
    00214a15cmp [rdi], 0
    00214a19je 0x214b01
    00214a1fmov [rdi+8], 0
    00214a27mov rax, [rbx+104]
    00214a2bmov [rax+16], 4096
    00214a33mov rax, [rbx+104]
    00214a37lea rdi, [rax+24]
    00214a3bcall caml_addrmap_init
    00214a40mov rdi, [rbx+104]
    00214a44mov rsi, [rdi+24]
    00214a48test rsi, rsi
    00214a4bje 0x214af8
    00214a51mov rcx, [rdi+32]
    00214a55xor eax, eax
    00214a57test rcx, rcx
    00214a5ajne 0x214a89
    00214a5cjmp 0x214a9a
    00214a5edb 0x75
    00214a5fsub ebx, ebp
    00214a61db 0x38
    00214a62
    00214a62 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 2e ff.........ff.
    00214a70 0f 1f 84 00 00 00 00 00 0f 1f 84 00 00 00 00 00 ................
    00214a80
    00214a80loc_214a80:
    00214a80add rax, 1
    00214a84cmp rcx, rax
    00214a87je 0x214a9a
    00214a89
    00214a89loc_214a89:
    00214a89mov rdx, rax
    00214a8cshl rdx, 4
    00214a90cmp [rsi+rdx], 0
    00214a95je 0x214a80
    00214a97mov rcx, rax
    00214a9a
    00214a9aloc_214a9a:
    00214a9amov eax, 1
    00214a9fmov [rdi+40], rcx
    00214aa3movq x0, rax
    00214aa8punpcklqdq x0, x0
    00214aacmovups [rbx+112], x0
    00214ab0call caml_alloc_final_info
    00214ab5mov [rbx+176], rax
    00214abctest rax, rax
    00214abfje 0x214b4b
    00214ac5call caml_alloc_ephe_info
    00214acamov [rbx+168], rax
    00214ad1test rax, rax
    00214ad4je 0x214b15
    00214ad6lock add [rip+0x164051], 1
    00214adflock add [rip+0x164040], 1
    00214ae8xor eax, eax
    00214aea
    00214aealoc_214aea:
    00214aeaadd rsp, 8
    00214aeepop rbx
    00214aefpop rbp
    00214af0ret
    00214af1
    00214af1 0f 1f 80 00 00 00 00 .......
    00214af8
    00214af8loc_214af8:
    00214af8mov rcx, -1
    00214affjmp 0x214a9a
    00214b01
    00214b01loc_214b01:
    00214b01call caml_stat_free
    00214b06mov [rbx+104], 0
    00214b0e
    00214b0eloc_214b0e:
    00214b0emov eax, -1
    00214b13jmp 0x214aea
    00214b15
    00214b15loc_214b15:
    00214b15mov rdi, [rbx+176]
    00214b1ccall caml_stat_free
    00214b21mov rax, [rbx+104]
    00214b25mov rdi, [rax]
    00214b28call caml_stat_free
    00214b2dmov rdi, [rbx+104]
    00214b31call caml_stat_free
    00214b36mov [rbx+104], 0
    00214b3emov [rbx+176], 0
    00214b49jmp 0x214b0e
    00214b4b
    00214b4bloc_214b4b:
    00214b4bmov rax, [rbx+104]
    00214b4fmov rdi, [rax]
    00214b52call caml_stat_free
    00214b57mov rdi, [rbx+104]
    00214b5bcall caml_stat_free
    00214b60jmp 0x214b0e
    002149e0
    00214b62
    00214b62 // align 0x10
    00214b70
    00214b70caml_teardown_major_gc:
    00214b70mov rax, [rip+0x6146d]
    00214b77push rbx
    00214b78xor edx, edx
    00214b7axor esi, esi
    00214b7cxor edi, edi
    00214b7emov rbx, [rax]
    00214b82call fn_211a10
    00214b87mov rax, [rbx+104]
    00214b8blea rdi, [rax+24]
    00214b8fcall caml_addrmap_clear
    00214b94mov rax, [rbx+104]
    00214b98mov rdi, [rax]
    00214b9bcall caml_stat_free
    00214ba0mov rdi, [rbx+104]
    00214ba4call caml_stat_free
    00214ba9mov [rbx+104], 0
    00214bb1pop rbx
    00214bb2ret
    00214bb3db 0x00
    00214bb4add [rbx-61], bl
    00214b70
    00214bb7
    00214bb7 // align 0x10
    00214bc0
    00214bc0caml_finalise_heap:
    00214bc0ret
    00214bc1db 0x0f
    00214bc2db 0x1e
    00214bc3cli
    00214bc4ret
    00214bc0
    00214bc5
    00214bc5 // align 0x10
    00214bd0
    00214bd0caml_MD5Init:
    00214bd0movdqa x0, [rip+0x15564]
    00214bd8mov [rdi+16], 0
    00214be0movups [rdi], x0
    00214be3ret
    00214be4db 0x0f
    00214be5adc [rdi], eax
    00214be7ret
    00214bd0
    00214be8
    00214be8 // align 0x10
    00214bf0
    00214bf0caml_MD5Transform:
    00214bf0push r15
    00214bf2mov r8, rdi
    00214bf5mov rax, rsi
    00214bf8push r14
    00214bfapush r13
    00214bfcpush r12
    00214bfepush rbp
    00214bffpush rbx
    00214c00mov r15l, [rdi+4]
    00214c04mov r14l, [rsi]
    00214c07mov ebx, [rdi]
    00214c09mov edi, [rdi+8]
    00214c0cxor edi, [r8+12]
    00214c10lea edx, [r14+rbx-0x28955b88]
    00214c18and edi, r15l
    00214c1bxor edi, [r8+12]
    00214c1fmov ebx, [rsi+4]
    00214c22add edi, edx
    00214c24mov edx, [r8+8]
    00214c28mov esi, [r8+12]
    00214c2crol edi, 7
    00214c2fmov r11l, [rax+12]
    00214c33mov [rsp-44], ebx
    00214c37add edi, r15l
    00214c3axor edx, r15l
    00214c3dlea ecx, [rbx+rsi-0x173848aa]
    00214c44mov esi, [rax+8]
    00214c47and edx, edi
    00214c49xor edx, [r8+8]
    00214c4dmov r10l, edi
    00214c50mov [rsp-16], r11l
    00214c55add edx, ecx
    00214c57mov ecx, [r8+8]
    00214c5bmov [rsp-40], esi
    00214c5flea r9l, [r11+r15-0x3e423112]
    00214c67rol edx, 12
    00214c6alea esi, [rsi+rcx+0x242070db]
    00214c71mov ecx, r15l
    00214c74add edx, edi
    00214c76xor ecx, edi
    00214c78xor r10l, edx
    00214c7bmov ebp, edx
    00214c7dand ecx, edx
    00214c7fxor ecx, r15l
    00214c82add ecx, esi
    00214c84mov esi, r10l
    00214c87mov r10l, [rax+16]
    00214c8bror ecx, 15
    00214c8eadd ecx, edx
    00214c90mov [rsp-36], r10l
    00214c95and esi, ecx
    00214c97xor ebp, ecx
    00214c99xor esi, edi
    00214c9badd esi, r9l
    00214c9elea r9l, [r10+rdi-0xa83f051]
    00214ca6mov edi, ebp
    00214ca8mov ebp, [rax+20]
    00214cabror esi, 10
    00214caeadd esi, ecx
    00214cb0and edi, esi
    00214cb2xor edi, edx
    00214cb4add edi, r9l
    00214cb7lea r9l, [rbp+rdx+0x4787c62a]
    00214cbfmov edx, ecx
    00214cc1rol edi, 7
    00214cc4xor edx, esi
    00214cc6add edi, esi
    00214cc8and edx, edi
    00214ccamov r12l, edi
    00214ccdxor edx, ecx
    00214ccfadd edx, r9l
    00214cd2mov r9l, [rax+24]
    00214cd6rol edx, 12
    00214cd9mov [rsp-32], r9l
    00214cdelea r9l, [r9+rcx-0x57cfb9ed]
    00214ce6mov ecx, esi
    00214ce8add edx, edi
    00214ceaxor ecx, edi
    00214cecmov r13l, [rax+28]
    00214cf0xor r12l, edx
    00214cf3mov ebx, [rax+36]
    00214cf6and ecx, edx
    00214cf8xor ecx, esi
    00214cfamov [rsp-24], ebx
    00214cfeadd ecx, r9l
    00214d01lea r9l, [r13+rsi-0x2b96aff]
    00214d09mov esi, r12l
    00214d0cmov r12l, [rax+32]
    00214d10ror ecx, 15
    00214d13add ecx, edx
    00214d15mov [rsp-28], r12l
    00214d1aand esi, ecx
    00214d1cxor esi, edi
    00214d1eadd esi, r9l
    00214d21lea r9l, [r12+rdi+0x698098d8]
    00214d29mov edi, edx
    00214d2bmov r12l, [rax+56]
    00214d2fror esi, 10
    00214d32xor edi, ecx
    00214d34add esi, ecx
    00214d36and edi, esi
    00214d38xor edi, edx
    00214d3aadd edi, r9l
    00214d3dlea r9l, [rbx+rdx-0x74bb0851]
    00214d45mov edx, ecx
    00214d47mov ebx, [rax+40]
    00214d4arol edi, 7
    00214d4dxor edx, esi
    00214d4fadd edi, esi
    00214d51mov [rsp-20], ebx
    00214d55and edx, edi
    00214d57xor edx, ecx
    00214d59add edx, r9l
    00214d5clea r9l, [rbx+rcx-42063]
    00214d64mov ecx, esi
    00214d66mov ebx, [rax+48]
    00214d69rol edx, 12
    00214d6cxor ecx, edi
    00214d6eadd edx, edi
    00214d70and ecx, edx
    00214d72xor ecx, esi
    00214d74add ecx, r9l
    00214d77mov r9l, [rax+44]
    00214d7bror ecx, 15
    00214d7emov r11l, r9l
    00214d81lea r9l, [r9+rsi-0x76a32842]
    00214d89mov esi, edi
    00214d8badd ecx, edx
    00214d8dxor esi, edx
    00214d8fmov [rsp-12], r11l
    00214d94and esi, ecx
    00214d96xor esi, edi
    00214d98add esi, r9l
    00214d9blea r9l, [rbx+rdi+0x6b901122]
    00214da3mov edi, edx
    00214da5ror esi, 10
    00214da8xor edi, ecx
    00214daaadd esi, ecx
    00214dacand edi, esi
    00214daexor edi, edx
    00214db0add edi, r9l
    00214db3mov r9l, [rax+52]
    00214db7rol edi, 7
    00214dbalea r10l, [r9+rdx-0x2678e6d]
    00214dc2mov edx, ecx
    00214dc4add edi, esi
    00214dc6xor edx, esi
    00214dc8and edx, edi
    00214dcaxor edx, ecx
    00214dccadd edx, r10l
    00214dcflea r10l, [r12+rcx-0x5986bc72]
    00214dd7mov ecx, esi
    00214dd9rol edx, 12
    00214ddcxor ecx, edi
    00214ddeadd edx, edi
    00214de0and ecx, edx
    00214de2xor ecx, esi
    00214de4add ecx, r10l
    00214de7mov r10l, [rax+60]
    00214debror ecx, 15
    00214deelea eax, [r10+rsi+0x49b40821]
    00214df6mov esi, edi
    00214df8add ecx, edx
    00214dfaxor esi, edx
    00214dfcand esi, ecx
    00214dfexor esi, edi
    00214e00add esi, eax
    00214e02mov eax, [rsp-44]
    00214e06ror esi, 10
    00214e09add esi, ecx
    00214e0blea edi, [rax+rdi-0x9e1da9e]
    00214e12mov eax, ecx
    00214e14xor eax, esi
    00214e16and eax, edx
    00214e18xor eax, ecx
    00214e1aadd eax, edi
    00214e1cmov edi, [rsp-32]
    00214e20rol eax, 5
    00214e23add eax, esi
    00214e25lea edi, [rdi+rdx-0x3fbf4cc0]
    00214e2cmov edx, esi
    00214e2exor edx, eax
    00214e30and edx, ecx
    00214e32xor edx, esi
    00214e34add edx, edi
    00214e36lea edi, [r11+rcx+0x265e5a51]
    00214e3emov ecx, eax
    00214e40rol edx, 9
    00214e43add edx, eax
    00214e45xor ecx, edx
    00214e47and ecx, esi
    00214e49xor ecx, eax
    00214e4badd ecx, edi
    00214e4dlea edi, [r14+rsi-0x16493856]
    00214e55mov esi, edx
    00214e57rol ecx, 14
    00214e5aadd ecx, edx
    00214e5cxor esi, ecx
    00214e5eand esi, eax
    00214e60xor esi, edx
    00214e62add esi, edi
    00214e64lea edi, [rbp+rax-0x29d0efa3]
    00214e6bmov eax, ecx
    00214e6dror esi, 12
    00214e70add esi, ecx
    00214e72xor eax, esi
    00214e74and eax, edx
    00214e76xor eax, ecx
    00214e78add eax, edi
    00214e7amov edi, [rsp-20]
    00214e7erol eax, 5
    00214e81add eax, esi
    00214e83lea edi, [rdi+rdx+0x2441453]
    00214e8amov edx, esi
    00214e8cxor edx, eax
    00214e8eand edx, ecx
    00214e90xor edx, esi
    00214e92add edx, edi
    00214e94lea edi, [r10+rcx-0x275e197f]
    00214e9cmov ecx, eax
    00214e9erol edx, 9
    00214ea1add edx, eax
    00214ea3xor ecx, edx
    00214ea5and ecx, esi
    00214ea7xor ecx, eax
    00214ea9add ecx, edi
    00214eabmov edi, [rsp-36]
    00214eafrol ecx, 14
    00214eb2add ecx, edx
    00214eb4lea edi, [rdi+rsi-0x182c0438]
    00214ebbmov esi, edx
    00214ebdxor esi, ecx
    00214ebfand esi, eax
    00214ec1xor esi, edx
    00214ec3add esi, edi
    00214ec5mov edi, [rsp-24]
    00214ec9ror esi, 12
    00214eccadd esi, ecx
    00214ecelea edi, [rdi+rax+0x21e1cde6]
    00214ed5mov eax, ecx
    00214ed7xor eax, esi
    00214ed9and eax, edx
    00214edbxor eax, ecx
    00214eddadd eax, edi
    00214edflea edi, [r12+rdx-0x3cc8f82a]
    00214ee7mov edx, esi
    00214ee9rol eax, 5
    00214eecadd eax, esi
    00214eeexor edx, eax
    00214ef0and edx, ecx
    00214ef2xor edx, esi
    00214ef4add edx, edi
    00214ef6mov edi, [rsp-16]
    00214efarol edx, 9
    00214efdadd edx, eax
    00214efflea edi, [rdi+rcx-0xb2af279]
    00214f06mov ecx, eax
    00214f08xor ecx, edx
    00214f0aand ecx, esi
    00214f0cxor ecx, eax
    00214f0eadd ecx, edi
    00214f10mov edi, [rsp-28]
    00214f14rol ecx, 14
    00214f17add ecx, edx
    00214f19lea esi, [rdi+rsi+0x455a14ed]
    00214f20mov edi, edx
    00214f22xor edi, ecx
    00214f24and edi, eax
    00214f26xor edi, edx
    00214f28add edi, esi
    00214f2alea esi, [r9+rax-0x561c16fb]
    00214f32mov eax, ecx
    00214f34ror edi, 12
    00214f37add edi, ecx
    00214f39xor eax, edi
    00214f3band eax, edx
    00214f3dxor eax, ecx
    00214f3fadd eax, esi
    00214f41mov esi, [rsp-40]
    00214f45rol eax, 5
    00214f48add eax, edi
    00214f4alea esi, [rsi+rdx-0x3105c08]
    00214f51mov edx, edi
    00214f53xor edx, eax
    00214f55and edx, ecx
    00214f57lea ecx, [r13+rcx+0x676f02d9]
    00214f5fxor edx, edi
    00214f61add edx, esi
    00214f63mov esi, eax
    00214f65rol edx, 9
    00214f68add edx, eax
    00214f6axor esi, edx
    00214f6cand esi, edi
    00214f6elea edi, [rbx+rdi-0x72d5b376]
    00214f75xor esi, eax
    00214f77mov r11l, edi
    00214f7aadd esi, ecx
    00214f7cmov ecx, edx
    00214f7erol esi, 14
    00214f81add esi, edx
    00214f83xor ecx, esi
    00214f85mov edi, ecx
    00214f87and edi, eax
    00214f89lea eax, [rbp+rax-0x5c6be]
    00214f90xor edi, edx
    00214f92add edi, r11l
    00214f95mov r11l, [rsp-16]
    00214f9aror edi, 12
    00214f9dadd edi, esi
    00214f9fxor ecx, edi
    00214fa1add ecx, eax
    00214fa3mov eax, [rsp-28]
    00214fa7rol ecx, 4
    00214faalea eax, [rax+rdx-0x788e097f]
    00214fb1mov edx, esi
    00214fb3add ecx, edi
    00214fb5xor edx, edi
    00214fb7xor edx, ecx
    00214fb9add edx, eax
    00214fbbmov eax, [rsp-12]
    00214fbfrol edx, 11
    00214fc2lea eax, [rax+rsi+0x6d9d6122]
    00214fc9mov esi, edi
    00214fcbadd edx, ecx
    00214fcdxor esi, ecx
    00214fcflea edi, [r12+rdi-0x21ac7f4]
    00214fd7xor esi, edx
    00214fd9add esi, eax
    00214fdbmov eax, ecx
    00214fddrol esi, 16
    00214fe0xor eax, edx
    00214fe2add esi, edx
    00214fe4xor eax, esi
    00214fe6add eax, edi
    00214fe8mov edi, [rsp-44]
    00214fecror eax, 9
    00214feflea edi, [rdi+rcx-0x5b4115bc]
    00214ff6mov ecx, edx
    00214ff8add eax, esi
    00214ffaxor ecx, esi
    00214ffcxor ecx, eax
    00214ffeadd ecx, edi
    00215000mov edi, [rsp-36]
    00215004rol ecx, 4
    00215007lea edx, [rdi+rdx+0x4bdecfa9]
    0021500emov edi, esi
    00215010add ecx, eax
    00215012xor edi, eax
    00215014lea esi, [r13+rsi-0x944b4a0]
    0021501cxor edi, ecx
    0021501eadd edi, edx
    00215020mov edx, eax
    00215022rol edi, 11
    00215025xor edx, ecx
    00215027add edi, ecx
    00215029xor edx, edi
    0021502badd edx, esi
    0021502dmov esi, [rsp-20]
    00215031rol edx, 16
    00215034lea eax, [rsi+rax-0x41404390]
    0021503bmov esi, ecx
    0021503dadd edx, edi
    0021503fxor esi, edi
    00215041xor esi, edx
    00215043add esi, eax
    00215045lea eax, [r9+rcx+0x289b7ec6]
    0021504dmov ecx, edi
    0021504fror esi, 9
    00215052xor ecx, edx
    00215054lea edi, [r14+rdi-0x155ed806]
    0021505cadd esi, edx
    0021505exor ecx, esi
    00215060add ecx, eax
    00215062mov eax, edx
    00215064lea edx, [r11+rdx-0x2b10cf7b]
    0021506crol ecx, 4
    0021506fxor eax, esi
    00215071add ecx, esi
    00215073xor eax, ecx
    00215075add eax, edi
    00215077mov edi, esi
    00215079rol eax, 11
    0021507cxor edi, ecx
    0021507eadd eax, ecx
    00215080xor edi, eax
    00215082add edi, edx
    00215084mov edx, [rsp-32]
    00215088rol edi, 16
    0021508blea edx, [rdx+rsi+0x4881d05]
    00215092mov esi, ecx
    00215094add edi, eax
    00215096xor esi, eax
    00215098xor esi, edi
    0021509aadd esi, edx
    0021509cmov edx, [rsp-24]
    002150a0ror esi, 9
    002150a3lea ecx, [rdx+rcx-0x262b2fc7]
    002150aamov edx, eax
    002150acadd esi, edi
    002150aexor edx, edi
    002150b0lea eax, [rbx+rax-0x1924661b]
    002150b7xor edx, esi
    002150b9add edx, ecx
    002150bbmov ecx, edi
    002150bdrol edx, 4
    002150c0add edx, esi
    002150c2xor ecx, esi
    002150c4xor ecx, edx
    002150c6add ecx, eax
    002150c8lea eax, [r10+rdi+0x1fa27cf8]
    002150d0mov edi, esi
    002150d2rol ecx, 11
    002150d5xor edi, edx
    002150d7add ecx, edx
    002150d9xor edi, ecx
    002150dbadd edi, eax
    002150ddmov eax, [rsp-40]
    002150e1rol edi, 16
    002150e4lea esi, [rax+rsi-0x3b53a99b]
    002150ebmov eax, edx
    002150edadd edi, ecx
    002150efxor eax, ecx
    002150f1xor eax, edi
    002150f3add eax, esi
    002150f5lea esi, [r14+rdx-0xbd6ddbc]
    002150fdmov edx, ecx
    002150ffror eax, 9
    00215102not edx
    00215104add eax, edi
    00215106or edx, eax
    00215108xor edx, edi
    0021510aadd edx, esi
    0021510clea esi, [r13+rcx+0x432aff97]
    00215114mov ecx, edi
    00215116rol edx, 6
    00215119not ecx
    0021511blea edi, [r12+rdi-0x546bdc59]
    00215123add edx, eax
    00215125or ecx, edx
    00215127xor ecx, eax
    00215129add ecx, esi
    0021512bmov esi, eax
    0021512drol ecx, 10
    00215130not esi
    00215132add ecx, edx
    00215134or esi, ecx
    00215136xor esi, edx
    00215138add esi, edi
    0021513alea edi, [rbp+rax-0x36c5fc7]
    00215141mov ebp, edx
    00215143rol esi, 15
    00215146not ebp
    00215148add esi, ecx
    0021514amov eax, ebp
    0021514cmov ebp, ecx
    0021514eor eax, esi
    00215150not ebp
    00215152xor eax, ecx
    00215154add eax, edi
    00215156lea edi, [rbx+rdx+0x655b59c3]
    0021515dmov edx, ebp
    0021515fmov ebx, [rsp-20]
    00215163ror eax, 11
    00215166add eax, esi
    00215168or edx, eax
    0021516axor edx, esi
    0021516cadd edx, edi
    0021516elea edi, [r11+rcx-0x70f3336e]
    00215176mov ecx, esi
    00215178rol edx, 6
    0021517bnot ecx
    0021517dadd edx, eax
    0021517for ecx, edx
    00215181mov ebp, edx
    00215183xor ecx, eax
    00215185not ebp
    00215187add ecx, edi
    00215189lea edi, [rbx+rsi-0x100b83]
    00215190mov esi, eax
    00215192rol ecx, 10
    00215195not esi
    00215197add ecx, edx
    00215199or esi, ecx
    0021519bxor esi, edx
    0021519dadd esi, edi
    0021519fmov edi, [rsp-44]
    002151a3mov r11l, [rsp-28]
    002151a8rol esi, 15
    002151abmov r14l, [rsp-32]
    002151b0mov ebx, [rsp-40]
    002151b4add esi, ecx
    002151b6lea edi, [rdi+rax-0x7a7ba22f]
    002151bdmov eax, ebp
    002151bfor eax, esi
    002151c1xor eax, ecx
    002151c3add eax, edi
    002151c5lea edi, [r11+rdx+0x6fa87e4f]
    002151cdmov r11l, ecx
    002151d0ror eax, 11
    002151d3not r11l
    002151d6add eax, esi
    002151d8mov edx, r11l
    002151dbor edx, eax
    002151ddxor edx, esi
    002151dfadd edx, edi
    002151e1lea edi, [r10+rcx-0x1d31920]
    002151e9mov ecx, esi
    002151ebmov r10l, [rsp-36]
    002151f0rol edx, 6
    002151f3not ecx
    002151f5add edx, eax
    002151f7or ecx, edx
    002151f9mov r11l, edx
    002151fcxor ecx, eax
    002151fenot r11l
    00215201add ecx, edi
    00215203lea edi, [r14+rsi-0x5cfebcec]
    0021520bmov esi, eax
    0021520dmov r14l, [rsp-12]
    00215212rol ecx, 10
    00215215not esi
    00215217lea eax, [r9+rax+0x4e0811a1]
    0021521fadd ecx, edx
    00215221or esi, ecx
    00215223xor esi, edx
    00215225lea edx, [r10+rdx-0x8ac817e]
    0021522dadd esi, edi
    0021522fmov edi, r11l
    00215232mov r11l, ecx
    00215235rol esi, 15
    00215238not r11l
    0021523badd esi, ecx
    0021523dor edi, esi
    0021523fxor edi, ecx
    00215241lea ecx, [r14+rcx-0x42c50dcb]
    00215249add edi, eax
    0021524bmov eax, r11l
    0021524eror edi, 11
    00215251add edi, esi
    00215253or eax, edi
    00215255xor eax, esi
    00215257add eax, edx
    00215259mov edx, esi
    0021525blea esi, [rbx+rsi+0x2ad7d2bb]
    00215262mov ebx, [rsp-24]
    00215266rol eax, 6
    00215269not edx
    0021526badd eax, edi
    0021526dor edx, eax
    0021526fxor edx, edi
    00215271add edx, ecx
    00215273mov ecx, edi
    00215275lea edi, [rbx+rdi-0x14792c6f]
    0021527cpop rbx
    0021527drol edx, 10
    00215280not ecx
    00215282pop rbp
    00215283pop r12
    00215285add edx, eax
    00215287pop r13
    00215289pop r14
    0021528bor ecx, edx
    0021528dxor ecx, eax
    0021528fadd ecx, esi
    00215291mov esi, eax
    00215293add eax, [r8]
    00215296rol ecx, 15
    00215299not esi
    0021529bmovd x1, eax
    0021529fadd ecx, edx
    002152a1or esi, ecx
    002152a3xor esi, edx
    002152a5add esi, edi
    002152a7mov eax, esi
    002152a9lea esi, [r15+rcx]
    002152adpop r15
    002152afror eax, 11
    002152b2add eax, esi
    002152b4add ecx, [r8+8]
    002152b8add edx, [r8+12]
    002152bcmovd x0, ecx
    002152c0movd x2, edx
    002152c4movd x3, eax
    002152c8punpckldq x0, x2
    002152ccpunpckldq x1, x3
    002152d0punpcklqdq x1, x0
    002152d4movups [r8], x1
    002152d8ret
    002152d9db 0x0f
    002152daadc [rax], ecx
    002152dcret
    00214bf0
    002152dd
    002152dd // align 0x10
    002152e0
    002152e0caml_MD5Update:
    002152e0push r15
    002152e2xor ecx, ecx
    002152e4lea r15, [rdi+24]
    002152e8push r14
    002152eapush r13
    002152ecmov r13, rsi
    002152efpush r12
    002152f1mov r12, rdx
    002152f4shl edx, 3
    002152f7push rbp
    002152f8mov rbp, rdi
    002152fbpush rbx
    002152fcsub rsp, 24
    00215300mov eax, [rdi+16]
    00215303add edx, eax
    00215305setb cl
    00215308mov [rdi+16], edx
    0021530bmov edx, [rdi+20]
    0021530ecmp ecx, 1
    00215311mov rcx, r12
    00215314sbb edx, -1
    00215317shr rcx, 29
    0021531bshr eax, 3
    0021531eadd edx, ecx
    00215320and eax, 63
    00215323mov [rdi+20], edx
    00215326je 0x21537c
    00215328mov ecx, 64
    0021532dlea r15, [rdi+24]
    00215331mov edi, eax
    00215333sub ecx, eax
    00215335add rdi, r15
    00215338mov ebx, ecx
    0021533acmp r12, rbx
    0021533djb 0x215480
    00215343cmp ecx, 8
    00215346jae 0x2154a0
    0021534ctest cl, 4
    0021534fjne 0x215500
    00215355test ecx, ecx
    00215357je 0x21536b
    00215359movzx edx, [rsi]
    0021535cand ecx, 2
    0021535fmov [rdi], dl
    00215361jne 0x215511
    00215367mov rsi, r15
    0021536amov rdi, rbp
    0021536dadd r13, rbx
    00215370sub r12, rbx
    00215373call caml_MD5Transform
    00215378cmp r12, 63
    0021537c
    0021537cloc_21537c:
    0021537cjbe 0x2153ec
    0021537elea rax, [r12-64]
    00215383mov rbx, r13
    00215386mov rdx, rax
    00215389mov [rsp+8], rax
    0021538eand rdx, -64
    00215392lea r14, [r13+rdx+64]
    00215397nop [rax+rax]
    0021539cmovdqu x0, [rbx]
    002153a0
    002153a0loc_2153a0:
    002153a0mov rsi, r15
    002153a3mov rdi, rbp
    002153a6add rbx, 64
    002153aamovups [r15], x0
    002153aemovdqu x0, [rbx-48]
    002153b3movups [r15+16], x0
    002153b8movdqu x0, [rbx-32]
    002153bdmovups [r15+32], x0
    002153c2movdqu x0, [rbx-16]
    002153c7movups [r15+48], x0
    002153cccall caml_MD5Transform
    002153d1cmp rbx, r14
    002153d4jne 0x2153a0
    002153d6mov rax, [rsp+8]
    002153dband r12l, 63
    002153dfand rax, -64
    002153e3lea r13, [r13+rax+64]
    002153e8mov edx, r12l
    002153ebcmp r12l, 8
    002153efjb 0x215450
    002153f1mov rdx, [r13]
    002153f5add rbp, 32
    002153f9mov rax, r15
    002153fcmov [rbp-8], rdx
    00215400mov edx, r12l
    00215403and rbp, -8
    00215407mov rcx, [r13+rdx-8]
    0021540csub rax, rbp
    0021540fsub r13, rax
    00215412mov [r15+rdx-8], rcx
    00215417lea edx, [r12+rax]
    0021541band edx, -8
    0021541ecmp edx, 8
    00215421jb 0x21543f
    00215423and edx, -8
    00215426xor eax, eax
    00215428mov ecx, eax
    0021542aadd eax, 8
    0021542dmov rsi, [r13+rcx]
    00215432mov [rbp+rcx], rsi
    00215437cmp eax, edx
    00215439jb 0x21542c
    0021543badd rsp, 24
    0021543f
    0021543floc_21543f:
    0021543fpop rbx
    00215440pop rbp
    00215441pop r12
    00215443pop r13
    00215445pop r14
    00215447pop r15
    00215449ret
    0021544adb 0x5e
    0021544bpop r15
    0021544dret
    0021544e
    0021544e 66 90 f.
    00215450
    00215450loc_215450:
    00215450test r12b, 4
    00215454jne 0x2154ea
    0021545atest r12l, r12l
    0021545dje 0x21543f
    0021545fmovzx edx, [r13]
    00215464mov [rbp+24], dl
    00215467test r12b, 2
    0021546bje 0x21543f
    0021546dmov r12l, r12l
    00215470movzx edx, [r13+r12-2]
    00215476mov [r15+r12-2], dx
    0021547cjmp 0x21543f
    0021547e
    0021547e 66 90 f.
    00215480
    00215480loc_215480:
    00215480add rsp, 24
    00215484mov rdx, r12
    00215487pop rbx
    00215488pop rbp
    00215489pop r12
    0021548bpop r13
    0021548dpop r14
    0021548fpop r15
    00215491jmp 0xf47d0
    00215496
    00215496 66 2e 0f 1f 84 00 00 00 00 00 f.........
    002154a0
    002154a0loc_2154a0:
    002154a0mov rdx, [rsi]
    002154a3mov r8, rsi
    002154a6mov [rdi], rdx
    002154a9mov rdx, [rsi+rbx-8]
    002154aemov [rdi+rbx-8], rdx
    002154b3lea rdx, [rdi+8]
    002154b7and rdx, -8
    002154bbsub rdi, rdx
    002154beadd ecx, edi
    002154c0sub r8, rdi
    002154c3and ecx, -8
    002154c6cmp ecx, 8
    002154c9jb 0x21536b
    002154cfand ecx, -8
    002154d2xor esi, esi
    002154d4
    002154d4loc_2154d4:
    002154d4mov edi, esi
    002154d6add esi, 8
    002154d9mov r9, [r8+rdi]
    002154ddmov [rdx+rdi], r9
    002154e1cmp esi, ecx
    002154e3jb 0x2154d4
    002154e5jmp 0x21536b
    002154ea
    002154ealoc_2154ea:
    002154eamov ecx, [r13]
    002154eemov [rbp+24], ecx
    002154f1mov ecx, [r13+rdx-4]
    002154f6mov [r15+rdx-4], ecx
    002154fbjmp 0x21543f
    00215500
    00215500loc_215500:
    00215500mov edx, [rsi]
    00215502mov [rdi], edx
    00215504mov edx, [rsi+rbx-4]
    00215508mov [rdi+rbx-4], edx
    0021550cjmp 0x21536b
    00215511
    00215511loc_215511:
    00215511movzx edx, [rsi+rbx-2]
    00215516mov [rdi+rbx-2], dx
    0021551bjmp 0x21536b
    002152e0
    00215520
    00215520caml_MD5Final:
    00215520push rbp
    00215521mov ecx, 63
    00215526mov rbp, rdi
    00215529push rbx
    0021552amov rbx, rsi
    0021552dadd rsi, 24
    00215531sub rsp, 24
    00215535mov eax, [rsi-8]
    00215538shr eax, 3
    0021553band eax, 63
    0021553emov edx, eax
    00215540sub ecx, eax
    00215542add rdx, rsi
    00215545mov [rdx], -128
    00215548lea rdi, [rdx+1]
    0021554ccmp ecx, 7
    0021554fja 0x2155e0
    00215555test ecx, ecx
    00215557je 0x21556c
    00215559xor eax, eax
    0021555bmov edx, eax
    0021555dadd eax, 1
    00215560mov [rdi+rdx], 0
    00215564cmp eax, ecx
    00215566jb 0x21555f
    00215568mov rdi, rbx
    0021556bmov [rsp+8], rsi
    00215570call caml_MD5Transform
    00215575mov rsi, [rsp+8]
    0021557apxor x0, x0
    0021557emovups [rbx+24], x0
    00215582mov [rsi+48], 0
    0021558amovups [rsi+16], x0
    0021558emovups [rsi+32], x0
    00215592mov rax, [rbx+16]
    00215596
    00215596loc_215596:
    00215596mov rdi, rbx
    00215599mov [rbx+80], rax
    0021559dcall caml_MD5Transform
    002155a2movdqu x0, [rbx]
    002155a6lea rdi, [rbx+8]
    002155aaxor eax, eax
    002155acand rdi, -8
    002155b0movups [rbp], x0
    002155b4mov [rbx], 0
    002155bbmov [rbx+80], 0
    002155c3sub rbx, rdi
    002155c6lea ecx, [rbx+88]
    002155c9shr ecx, 3
    002155ccrep stosq [rdi], rax
    002155cfadd rsp, 24
    002155d3pop rbx
    002155d4pop rbp
    002155d5ret
    002155d6db 0x18
    002155d7pop rbx
    002155d8pop rbp
    002155d9ret
    002155da
    002155da 66 0f 1f 44 00 00 f..D..
    002155e0
    002155e0loc_2155e0:
    002155e0mov ecx, 55
    002155e5xor r8l, r8l
    002155e8sub ecx, eax
    002155eacmp ecx, 8
    002155edjae 0x215610
    002155eftest cl, 4
    002155f2jne 0x215658
    002155f4test ecx, ecx
    002155f6je 0x215596
    002155f8mov [rdx+1], 0
    002155fctest cl, 2
    002155ffje 0x215596
    00215601xor eax, eax
    00215603mov [rdi+rcx-2], ax
    00215608jmp 0x215596
    0021560a
    0021560a 66 0f 1f 44 00 00 f..D..
    00215610
    00215610loc_215610:
    00215610mov [rdx+1], 0
    00215618add rdx, 9
    0021561cmov eax, ecx
    0021561emov [rdi+rax-8], 0
    00215627and rdx, -8
    0021562bsub rdi, rdx
    0021562eadd ecx, edi
    00215630and ecx, -8
    00215633cmp ecx, 8
    00215636jb 0x215596
    0021563cand ecx, -8
    0021563fxor eax, eax
    00215641
    00215641loc_215641:
    00215641mov edi, eax
    00215643add eax, 8
    00215646mov [rdx+rdi], r8
    0021564acmp eax, ecx
    0021564cjb 0x215641
    0021564ejmp 0x215596
    00215653
    00215653 0f 1f 44 00 00 ..D..
    00215658
    00215658loc_215658:
    00215658mov [rdx+1], 0
    0021565fmov [rdi+rcx-4], 0
    00215667jmp 0x215596
    00215520
    0021566c
    0021566c // align 0x10
    00215670
    00215670caml_md5_string:
    00215670push rbp
    00215671sar rsi, 1
    00215674sar rdx, 1
    00215677push rbx
    00215678add rsi, rdi
    0021567bsub rsp, 104
    0021567fmovdqa x0, [rip+0x14ab5]
    00215687mov rax, [0x28]
    00215690mov [rsp+88], rax
    00215695xor eax, eax
    00215697mov rdi, rsp
    0021569amov [rsp+16], 0
    002156a3movaps [rsp], x0
    002156a7call caml_MD5Update
    002156acmov edi, 16
    002156b1call caml_alloc_string
    002156b6mov rsi, rsp
    002156b9mov rdi, rax
    002156bcmov rbx, rax
    002156bfcall caml_MD5Final
    002156c4mov rax, [rsp+88]
    002156c9sub rax, [0x28]
    002156d2jne 0x2156e2
    002156d4add rsp, 104
    002156d8mov rax, rbx
    002156dbpop rbx
    002156dcpop rbp
    002156ddret
    002156decall fn_f4590
    002156e3db 0xa9
    002156e4out dx, al
    002156e5in eax, dx
    002156e6db 0xff
    00215670
    002156e7
    002156e7 // align 0x10
    002156f0
    002156f0caml_md5_channel:
    002156f0push r15
    002156f2push r14
    002156f4push r13
    002156f6push r12
    002156f8push rbp
    002156f9push rbx
    002156fasub rsp, 4096
    00215701or [rsp], 0
    00215706sub rsp, 136
    0021570dmov rax, [rip+0x608d0]
    00215714mov r15, [0x28]
    0021571dmov [rsp+4216], r15
    00215725mov r15, rsi
    00215728mov r12, rdi
    0021572blea rbx, [rsp+112]
    00215730lea r13, [rsp+16]
    00215735mov rax, [rax]
    00215739mov [rsp], rax
    0021573dmov rax, [rax+160]
    00215744mov [rsp+8], rax
    00215749call caml_channel_lock
    0021574emovdqa x0, [rip+0x149e6]
    00215756mov [rsp+32], 0
    0021575fmovaps [rsp+16], x0
    00215764test r15, r15
    00215767js 0x215826
    0021576djle 0x21583c
    00215773lea rbp, [rsp+16]
    00215778nop [rax]
    0021577cmov edx, 4096
    00215781mov rsi, rbx
    00215784mov rdi, r12
    00215787cmp r15, rdx
    0021578acmovbe rdx, r15
    0021578ecall caml_getblock
    00215793movsxd r14, eax
    00215796test r14, r14
    00215799je 0x215846
    0021579fmov rdx, r14
    002157a2mov rsi, rbx
    002157a5mov rdi, rbp
    002157a8sub r15, r14
    002157abcall caml_MD5Update
    002157b0mov r13, rbp
    002157b3test r15, r15
    002157b6jg 0x215780
    002157b8mov edi, 16
    002157bdcall caml_alloc_string
    002157c2mov rsi, r13
    002157c5mov rdi, rax
    002157c8mov rbx, rax
    002157cbcall caml_MD5Final
    002157d0mov rdi, r12
    002157d3call caml_channel_unlock
    002157d8mov rax, [rsp]
    002157dcmov rcx, [rsp+8]
    002157e1mov [rax+160], rcx
    002157e8mov rax, [rsp+4216]
    002157f0sub rax, [0x28]
    002157f9jne 0x21584b
    002157fbadd rsp, 4232
    00215802mov rax, rbx
    00215805pop rbx
    00215806pop rbp
    00215807pop r12
    00215809pop r13
    0021580bpop r14
    0021580dpop r15
    0021580fret
    00215810db 0x5e
    00215811pop r15
    00215813ret
    00215814
    00215814 0f 1f 40 00 ..@.
    00215818
    00215818loc_215818:
    00215818movsxd rdx, eax
    0021581bmov rsi, rbx
    0021581emov rdi, r13
    00215821call caml_MD5Update
    00215826
    00215826loc_215826:
    00215826mov edx, 4096
    0021582bmov rsi, rbx
    0021582emov rdi, r12
    00215831call caml_getblock
    00215836test eax, eax
    00215838jne 0x215818
    0021583ajmp 0x2157bc
    0021583c
    0021583cloc_21583c:
    0021583clea r13, [rsp+16]
    00215841jmp 0x2157bc
    00215846
    00215846loc_215846:
    00215846call caml_raise_end_of_file
    0021584b
    0021584bloc_21584b:
    0021584bcall fn_f4590
    002156f0
    00215850
    00215850caml_md5_chan:
    00215850push rbp
    00215851push rbx
    00215852sub rsp, 104
    00215856movdqa x0, [rip+0x1486e]
    0021585emov [rsp], rsi
    00215862movq x1, rsp
    00215867sar rsi, 1
    0021586amov [rsp+8], rdi
    0021586fmov rax, [0x28]
    00215878mov [rsp+88], rax
    0021587dmov rax, [rip+0x60760]
    00215884mov rbx, [rax]
    00215888lea rax, [rsp+16]
    0021588dmovups [rsp+24], x0
    00215892mov rbp, [rbx+160]
    00215899mov [rbx+160], rax
    002158a0lea rax, [rsp+8]
    002158a5movq x0, rax
    002158aapunpcklqdq x0, x1
    002158aemov [rsp+16], rbp
    002158b3movups [rsp+40], x0
    002158b8mov rdi, [rdi+8]
    002158bccall caml_md5_channel
    002158c1mov [rbx+160], rbp
    002158c8mov rdx, [rsp+88]
    002158cdsub rdx, [0x28]
    002158d6jne 0x2158e3
    002158d8add rsp, 104
    002158dcpop rbx
    002158ddpop rbp
    002158deret
    002158dfcall fn_f4590
    002158e4db 0xa8
    002158e5in al, dx
    002158e6in eax, dx
    002158e7db 0xff
    00215850
    002158e8
    002158e8 // align 0x10
    002158f0
    002158f0caml_md5_block:
    002158f0push rbp
    002158f1push rbx
    002158f2sub rsp, 104
    002158f6movdqa x0, [rip+0x1483e]
    002158femov rbx, [0x28]
    00215907mov [rsp+88], rbx
    0021590cmov rbx, rdi
    0021590fmov rdi, rsp
    00215912mov [rsp+16], 0
    0021591bmovaps [rsp], x0
    0021591fcall caml_MD5Update
    00215924mov rsi, rsp
    00215927mov rdi, rbx
    0021592acall caml_MD5Final
    0021592fmov rax, [rsp+88]
    00215934sub rax, [0x28]
    0021593djne 0x21594a
    0021593fadd rsp, 104
    00215943pop rbx
    00215944pop rbp
    00215945ret
    00215946call fn_f4590
    0021594bdb 0x41
    0021594cin al, dx
    0021594din eax, dx
    0021594edb 0xff
    002158f0
    0021594f
    0021594f // align 0x10
    00215950
    00215950caml_md5_bytes:
    00215950push rbp
    00215951sar rsi, 1
    00215954sar rdx, 1
    00215957push rbx
    00215958add rsi, rdi
    0021595bsub rsp, 104
    0021595fmovdqa x0, [rip+0x147d5]
    00215967mov rax, [0x28]
    00215970mov [rsp+88], rax
    00215975xor eax, eax
    00215977mov rdi, rsp
    0021597amov [rsp+16], 0
    00215983movaps [rsp], x0
    00215987call caml_MD5Update
    0021598cmov edi, 16
    00215991call caml_alloc_string
    00215996mov rsi, rsp
    00215999mov rdi, rax
    0021599cmov rbx, rax
    0021599fcall caml_MD5Final
    002159a4mov rax, [rsp+88]
    002159a9sub rax, [0x28]
    002159b2jne 0x2159c2
    002159b4add rsp, 104
    002159b8mov rax, rbx
    002159bbpop rbx
    002159bcpop rbp
    002159bdret
    002159becall fn_f4590
    002159c3db 0xc9
    002159c4jmp 0x2159b3
    002159c6db 0xff
    00215950
    002159c7
    002159c7 // align 0x10
    002159d0
    002159d0fn_2159d0:
    002159d0push rbp
    002159d1lea rbp, [rip+0x163188]
    002159d8push rbx
    002159d9mov rbx, rdi
    002159dcmov rdi, rbp
    002159dfsub rsp, 8
    002159e3call fn_f4710
    002159e8test eax, eax
    002159eajne 0x215a20
    002159ecmov rax, [rip+0x163195]
    002159f3mov rdi, rbp
    002159f6movq x0, [rax]
    002159famovq x1, rax
    002159ffpunpcklqdq x0, x1
    00215a03movaps [rbx], x0
    00215a06mov rdx, [rax]
    00215a09mov [rdx+8], rbx
    00215a0dmov [rax], rbx
    00215a10call fn_f47c0
    00215a15test eax, eax
    00215a17jne 0x215a2e
    00215a19add rsp, 8
    00215a1dpop rbx
    00215a1epop rbp
    00215a1fret
    00215a20
    00215a20loc_215a20:
    00215a20mov esi, eax
    00215a22lea rdi, [rip+0x19ae6]
    00215a29call caml_plat_fatal_error
    00215a2e
    00215a2eloc_215a2e:
    00215a2emov esi, eax
    00215a30lea rdi, [rip+0x19ae3]
    00215a37call caml_plat_fatal_error
    002159d0
    00215a3c
    00215a3c // align 0x10
    00215a40
    00215a40caml_modify:
    00215a40mov rax, [rip+0x162b7d]
    00215a47push r12
    00215a49push rbp
    00215a4amov rbp, rsi
    00215a4dpush rbx
    00215a4emov rbx, rdi
    00215a51mov rsi, [rdi]
    00215a54cmp rdi, rax
    00215a57jae 0x215a70
    00215a59cmp [rip+0x162b6c], rdi
    00215a60jae 0x215a70
    00215a62mov [rbx], rbp
    00215a65pop rbx
    00215a66
    00215a66loc_215a66:
    00215a66pop rbp
    00215a67pop r12
    00215a69ret
    00215a6adb 0x5d
    00215a6bpop r12
    00215a6dret
    00215a6e
    00215a6e 66 90 f.
    00215a70
    00215a70loc_215a70:
    00215a70test sil, 1
    00215a74jne 0x215a96
    00215a76cmp rsi, rax
    00215a79jae 0x215a84
    00215a7bcmp [rip+0x162b4e], rsi
    00215a82jb 0x215a66
    00215a84
    00215a84loc_215a84:
    00215a84mov rax, [rip+0x6055d]
    00215a8bxor edx, edx
    00215a8dmov rdi, [rax]
    00215a91call caml_darken
    00215a96
    00215a96loc_215a96:
    00215a96test bpl, 1
    00215a9ajne 0x215a66
    00215a9ccmp rbp, [rip+0x162b25]
    00215aa3jae 0x215a66
    00215aa5cmp [rip+0x162b24], rbp
    00215aacjae 0x215a66
    00215aaemov rax, [rip+0x60533]
    00215ab5mov rax, [rax]
    00215ab9mov r12, [rax+96]
    00215abdmov rax, [r12+24]
    00215ac2cmp rax, [r12+32]
    00215ac7jae 0x215ae0
    00215ac9
    00215ac9loc_215ac9:
    00215ac9lea rdx, [rax+8]
    00215acdmov [r12+24], rdx
    00215ad2mov [rax], rbx
    00215ad5jmp 0x215a66
    00215ad7
    00215ad7 66 0f 1f 84 00 00 00 00 00 f........
    00215ae0
    00215ae0loc_215ae0:
    00215ae0mov rdi, r12
    00215ae3call caml_realloc_ref_table
    00215ae8mov rax, [r12+24]
    00215aedjmp 0x215ac9
    00215a40
    00215aef
    00215aef // align 0x10
    00215af0
    00215af0caml_alloc_dependent_memory:
    00215af0mov rax, [rip+0x604ed]
    00215af7shr rdi, 3
    00215afbmovq x0, rdi
    00215b00mov rax, [rax]
    00215b04punpcklqdq x0, x0
    00215b08movdqu x1, [rax+328]
    00215b10paddq x0, x1
    00215b14movups [rax+328], x0
    00215b1bret
    00215b1cdb 0x01
    00215b1dadd [rax], al
    00215b1fret
    00215af0
    00215b20
    00215b20caml_free_dependent_memory:
    00215b20mov rax, [rip+0x604bd]
    00215b27shr rdi, 3
    00215b2bmov rdx, [rax]
    00215b2fmov rcx, [rdx+328]
    00215b36mov rax, rcx
    00215b39sub rax, rdi
    00215b3ccmp rcx, rdi
    00215b3fmov ecx, 0
    00215b44cmovb rax, rcx
    00215b48mov [rdx+328], rax
    00215b4fret
    00215b50db 0x01
    00215b51add [rax], al
    00215b53ret
    00215b20
    00215b54
    00215b54 // align 0x10
    00215b60
    00215b60caml_adjust_gc_speed:
    00215b60push rbx
    00215b61mov rbx, rdi
    00215b64test rsi, rsi
    00215b67je 0x215c08
    00215b6dcmp rsi, rbx
    00215b70mov rax, [rip+0x6046d]
    00215b77cmovbe rbx, rsi
    00215b7bmov rax, [rax]
    00215b7fmov rdi, rbx
    00215b82test rbx, rbx
    00215b85js 0x215bc8
    00215b87pxor x0, x0
    00215b8bcvtsi2sd x0, rbx
    00215b90test rsi, rsi
    00215b93js 0x215be6
    00215b95pxor x1, x1
    00215b99
    00215b99loc_215b99:
    00215b99cvtsi2sd x1, rsi
    00215b9edivsd x0, x1
    00215ba2
    00215ba2loc_215ba2:
    00215ba2addsd x0, [rax+312]
    00215baacomisd x0, [rip+0x14c9a]
    00215bb2movsd_xmm [rax+312], x0
    00215bbaja 0x215c18
    00215bbcpop rbx
    00215bbdret
    00215bbedb 0x77
    00215bbfpop rax
    00215bc0pop rbx
    00215bc1ret
    00215bc2
    00215bc2 66 0f 1f 44 00 00 f..D..
    00215bc8
    00215bc8loc_215bc8:
    00215bc8mov rdx, rbx
    00215bcband edi, 1
    00215bcepxor x0, x0
    00215bd2shr rdx, 1
    00215bd5or rdx, rdi
    00215bd8cvtsi2sd x0, rdx
    00215bddaddsd x0, x0
    00215be1test rsi, rsi
    00215be4jns 0x215b99
    00215be6
    00215be6loc_215be6:
    00215be6mov rdx, rsi
    00215be9and esi, 1
    00215becpxor x1, x1
    00215bf0shr rdx, 1
    00215bf3or rdx, rsi
    00215bf6cvtsi2sd x1, rdx
    00215bfbaddsd x1, x1
    00215bffjmp 0x215ba2
    00215c01
    00215c01 0f 1f 80 00 00 00 00 .......
    00215c08
    00215c08loc_215c08:
    00215c08call caml_custom_get_max_major
    00215c0dmov rsi, rax
    00215c10jmp 0x215b71
    00215c15
    00215c15 0f 1f 00 ...
    00215c18
    00215c18loc_215c18:
    00215c18mov edi, 7
    00215c1dmov esi, 1
    00215c22call caml_ev_counter
    00215c27mov edi, 1
    00215c2cpop rbx
    00215c2djmp 0x21fc90
    00215b60
    00215c32
    00215c32 // align 0x10
    00215c40
    00215c40caml_adjust_minor_gc_speed:
    00215c40mov rax, [rip+0x6039d]
    00215c47mov rax, [rax]
    00215c4btest rdi, rdi
    00215c4ejs 0x215cc8
    00215c50pxor x0, x0
    00215c54cvtsi2sd x0, rdi
    00215c59test rsi, rsi
    00215c5cmov edx, 1
    00215c61cmove rsi, rdx
    00215c65test rsi, rsi
    00215c68js 0x215ca8
    00215c6apxor x1, x1
    00215c6ecvtsi2sd x1, rsi
    00215c73divsd x0, x1
    00215c77
    00215c77loc_215c77:
    00215c77addsd x0, [rax+320]
    00215c7fcomisd x0, [rip+0x14b7d]
    00215c87movsd_xmm [rax+320], x0
    00215c8fja 0x215ca0
    00215c91ret
    00215c92db 0x00
    00215c93ja 0x215ca0
    00215c95ret
    00215c96
    00215c96 66 2e 0f 1f 84 00 00 00 00 00 f.........
    00215ca0
    00215ca0loc_215ca0:
    00215ca0jmp 0x21fcd0
    00215ca5
    00215ca5 0f 1f 00 ...
    00215ca8
    00215ca8loc_215ca8:
    00215ca8mov rdx, rsi
    00215caband esi, 1
    00215caepxor x1, x1
    00215cb2shr rdx, 1
    00215cb5or rdx, rsi
    00215cb8cvtsi2sd x1, rdx
    00215cbdaddsd x1, x1
    00215cc1jmp 0x215c77
    00215cc3
    00215cc3 0f 1f 44 00 00 ..D..
    00215cc8
    00215cc8loc_215cc8:
    00215cc8mov rdx, rdi
    00215ccband edi, 1
    00215ccepxor x0, x0
    00215cd2shr rdx, 1
    00215cd5or rdx, rdi
    00215cd8cvtsi2sd x0, rdx
    00215cddaddsd x0, x0
    00215ce1jmp 0x215c5d
    00215c40
    00215ce6
    00215ce6 // align 0x10
    00215cf0
    00215cf0caml_initialize:
    00215cf0push rbp
    00215cf1push rbx
    00215cf2mov rbx, rdi
    00215cf5sub rsp, 8
    00215cf9mov [rdi], rsi
    00215cfcmov rax, [rip+0x1628c1]
    00215d03cmp rdi, rax
    00215d06jae 0x215d20
    00215d08cmp [rip+0x1628bd], rdi
    00215d0fjae 0x215d20
    00215d11add rsp, 8
    00215d15
    00215d15loc_215d15:
    00215d15pop rbx
    00215d16pop rbp
    00215d17ret
    00215d18db 0x08
    00215d19pop rbx
    00215d1apop rbp
    00215d1bret
    00215d1c
    00215d1c 0f 1f 40 00 ..@.
    00215d20
    00215d20loc_215d20:
    00215d20test sil, 1
    00215d24jne 0x215d15
    00215d26cmp rsi, rax
    00215d29jae 0x215d15
    00215d2bcmp [rip+0x16289e], rsi
    00215d32jae 0x215d15
    00215d34mov rax, [rip+0x602ad]
    00215d3bmov rax, [rax]
    00215d3fmov rbp, [rax+96]
    00215d43mov rax, [rbp+24]
    00215d47cmp rax, [rbp+32]
    00215d4bjae 0x215d60
    00215d4d
    00215d4dloc_215d4d:
    00215d4dlea rdx, [rax+8]
    00215d51mov [rbp+24], rdx
    00215d55mov [rax], rbx
    00215d58jmp 0x215d15
    00215d5a
    00215d5a 66 0f 1f 44 00 00 f..D..
    00215d60
    00215d60loc_215d60:
    00215d60mov rdi, rbp
    00215d63call caml_realloc_ref_table
    00215d68mov rax, [rbp+24]
    00215d6cjmp 0x215d4d
    00215cf0
    00215d6e
    00215d6e // align 0x10
    00215d70
    00215d70caml_atomic_cas_field:
    00215d70push rbp
    00215d71mov rax, rdx
    00215d74lea rbp, [rdi+8*rsi]
    00215d78push rbx
    00215d79mov rbx, rcx
    00215d7csub rsp, 8
    00215d80mov rdx, [rip+0x162855]
    00215d87cmp rdx, 1
    00215d8bjne 0x215db0
    00215d8dmov rdx, [rbp]
    00215d91cmp rdx, rax
    00215d94je 0x215e40
    00215d9aadd rsp, 8
    00215d9e
    00215d9eloc_215d9e:
    00215d9exor eax, eax
    00215da0pop rbx
    00215da1pop rbp
    00215da2ret
    00215da3db 0xc0
    00215da4pop rbx
    00215da5pop rbp
    00215da6ret
    00215da7
    00215da7 66 0f 1f 84 00 00 00 00 00 f........
    00215db0
    00215db0loc_215db0:
    00215db0lock cmpxchg [rbp], rcx
    00215db6jne 0x215d9e
    00215db8mov rdx, [rip+0x162809]
    00215dbfcmp rdi, rdx
    00215dc2jae 0x215dcd
    00215dc4
    00215dc4loc_215dc4:
    00215dc4cmp [rip+0x162805], rdi
    00215dcbjb 0x215e2f
    00215dcd
    00215dcdloc_215dcd:
    00215dcdtest al, 1
    00215dcfjne 0x215df4
    00215dd1cmp rax, rdx
    00215dd4jae 0x215ddf
    00215dd6cmp [rip+0x1627f3], rax
    00215dddjb 0x215e2f
    00215ddf
    00215ddfloc_215ddf:
    00215ddfmov rdx, [rip+0x60202]
    00215de6mov rsi, rax
    00215de9mov rdi, [rdx]
    00215dedxor edx, edx
    00215defcall caml_darken
    00215df4
    00215df4loc_215df4:
    00215df4test bl, 1
    00215df7jne 0x215e2f
    00215df9cmp rbx, [rip+0x1627c8]
    00215e00jae 0x215e2f
    00215e02cmp [rip+0x1627c7], rbx
    00215e09jae 0x215e2f
    00215e0bmov rax, [rip+0x601d6]
    00215e12mov rax, [rax]
    00215e16mov rbx, [rax+96]
    00215e1amov rax, [rbx+24]
    00215e1ecmp rax, [rbx+32]
    00215e22jae 0x215e60
    00215e24
    00215e24loc_215e24:
    00215e24lea rdx, [rax+8]
    00215e28mov [rbx+24], rdx
    00215e2cmov [rax], rbp
    00215e2f
    00215e2floc_215e2f:
    00215e2fadd rsp, 8
    00215e33mov eax, 1
    00215e38pop rbx
    00215e39pop rbp
    00215e3aret
    00215e3b
    00215e3b 0f 1f 44 00 00 ..D..
    00215e40
    00215e40loc_215e40:
    00215e40mov [rbp], rcx
    00215e44mov rdx, [rip+0x16277d]
    00215e4bcmp rdi, rdx
    00215e4ejae 0x215dcd
    00215e54jmp 0x215dc4
    00215e59
    00215e59 0f 1f 80 00 00 00 00 .......
    00215e60
    00215e60loc_215e60:
    00215e60mov rdi, rbx
    00215e63call caml_realloc_ref_table
    00215e68mov rax, [rbx+24]
    00215e6cjmp 0x215e24
    00215d70
    00215e6e
    00215e6e // align 0x10
    00215e70
    00215e70caml_atomic_load:
    00215e70mov rax, [rip+0x162765]
    00215e77cmp rax, 1
    00215e7bjne 0x215e88
    00215e7dmov rax, [rdi]
    00215e80ret
    00215e81db 0x48
    00215e82mov eax, [rdi]
    00215e84ret
    00215e85
    00215e85 0f 1f 00 ...
    00215e88
    00215e88loc_215e88:
    00215e88mov rax, [rdi]
    00215e8bret
    00215e70
    00215e8c
    00215e8c // align 0x10
    00215e90
    00215e90caml_atomic_exchange:
    00215e90push r12
    00215e92push rbp
    00215e93mov rbp, rsi
    00215e96push rbx
    00215e97mov rax, [rip+0x16273e]
    00215e9emov rbx, rdi
    00215ea1cmp rax, 1
    00215ea5jne 0x215f40
    00215eabmov r12, [rdi]
    00215eaemov [rbx], rsi
    00215eb1mov rax, [rip+0x16270c]
    00215eb8cmp rbx, rax
    00215ebbjae 0x215ed8
    00215ebdcmp [rip+0x162708], rbx
    00215ec4jae 0x215ed8
    00215ec6mov rax, r12
    00215ec9pop rbx
    00215eca
    00215ecaloc_215eca:
    00215ecapop rbp
    00215ecbpop r12
    00215ecdret
    00215ecedb 0x5d
    00215ecfpop r12
    00215ed1ret
    00215ed2
    00215ed2 66 0f 1f 44 00 00 f..D..
    00215ed8
    00215ed8loc_215ed8:
    00215ed8test r12b, 1
    00215edcjne 0x215f01
    00215edecmp r12, rax
    00215ee1jae 0x215eec
    00215ee3cmp [rip+0x1626e6], r12
    00215eeajb 0x215eca
    00215eec
    00215eecloc_215eec:
    00215eecmov rax, [rip+0x600f5]
    00215ef3xor edx, edx
    00215ef5mov rsi, r12
    00215ef8mov rdi, [rax]
    00215efccall caml_darken
    00215f01
    00215f01loc_215f01:
    00215f01test bpl, 1
    00215f05jne 0x215eca
    00215f07cmp rbp, [rip+0x1626ba]
    00215f0ejae 0x215eca
    00215f10cmp [rip+0x1626b9], rbp
    00215f17jae 0x215eca
    00215f19mov rax, [rip+0x600c8]
    00215f20mov rax, [rax]
    00215f24mov rbp, [rax+96]
    00215f28mov rax, [rbp+24]
    00215f2ccmp rax, [rbp+32]
    00215f30jae 0x215f50
    00215f32
    00215f32loc_215f32:
    00215f32lea rdx, [rax+8]
    00215f36mov [rbp+24], rdx
    00215f3amov [rax], rbx
    00215f3djmp 0x215eca
    00215f3f
    00215f3f 90 .
    00215f40
    00215f40loc_215f40:
    00215f40mov r12, rsi
    00215f43xchg [rdi], r12
    00215f46jmp 0x215eb5
    00215f4b
    00215f4b 0f 1f 44 00 00 ..D..
    00215f50
    00215f50loc_215f50:
    00215f50mov rdi, rbp
    00215f53call caml_realloc_ref_table
    00215f58mov rax, [rbp+24]
    00215f5cjmp 0x215f32
    00215e90
    00215f5e
    00215f5e // align 0x10
    00215f60
    00215f60caml_atomic_cas:
    00215f60push rbp
    00215f61mov rbp, rdx
    00215f64push rbx
    00215f65mov rbx, rdi
    00215f68sub rsp, 8
    00215f6cmov rdx, [rip+0x162669]
    00215f73cmp rdx, 1
    00215f77jne 0x215f98
    00215f79cmp [rdi], rsi
    00215f7cje 0x216030
    00215f82add rsp, 8
    00215f86
    00215f86loc_215f86:
    00215f86mov eax, 1
    00215f8bpop rbx
    00215f8cpop rbp
    00215f8dret
    00215f8edb 0x00
    00215f8fpop rbx
    00215f90pop rbp
    00215f91ret
    00215f92
    00215f92 66 0f 1f 44 00 00 f..D..
    00215f98
    00215f98loc_215f98:
    00215f98mov rax, rsi
    00215f9block cmpxchg [rdi], rbp
    00215fa0jne 0x215f86
    00215fa2mov rdx, [rip+0x16261f]
    00215fa9cmp rdi, rdx
    00215facjae 0x215fc8
    00215faecmp [rip+0x16261b], rdi
    00215fb5jae 0x215fc8
    00215fb7
    00215fb7loc_215fb7:
    00215fb7add rsp, 8
    00215fbbmov eax, 3
    00215fc0pop rbx
    00215fc1pop rbp
    00215fc2ret
    00215fc3
    00215fc3 0f 1f 44 00 00 ..D..
    00215fc8
    00215fc8loc_215fc8:
    00215fc8test al, 1
    00215fcajne 0x215fef
    00215fcccmp rax, rdx
    00215fcfjae 0x215fda
    00215fd1cmp [rip+0x1625f8], rax
    00215fd8jb 0x215fb7
    00215fda
    00215fdaloc_215fda:
    00215fdamov rdx, [rip+0x60007]
    00215fe1mov rsi, rax
    00215fe4mov rdi, [rdx]
    00215fe8xor edx, edx
    00215feacall caml_darken
    00215fef
    00215fefloc_215fef:
    00215feftest bpl, 1
    00215ff3jne 0x215fb7
    00215ff5cmp rbp, [rip+0x1625cc]
    00215ffcjae 0x215fb7
    00215ffecmp [rip+0x1625cb], rbp
    00216005jae 0x215fb7
    00216007mov rax, [rip+0x5ffda]
    0021600emov rax, [rax]
    00216012mov rbp, [rax+96]
    00216016mov rax, [rbp+24]
    0021601acmp rax, [rbp+32]
    0021601ejae 0x216080
    00216020
    00216020loc_216020:
    00216020lea rdx, [rax+8]
    00216024mov [rbp+24], rdx
    00216028mov [rax], rbx
    0021602bjmp 0x215fb7
    0021602d
    0021602d 0f 1f 00 ...
    00216030
    00216030loc_216030:
    00216030mov [rdi], rbp
    00216033mov rdx, [rip+0x16258e]
    0021603acmp rdi, rdx
    0021603djb 0x216070
    0021603f
    0021603floc_21603f:
    0021603ftest sil, 1
    00216043jne 0x215fef
    00216045cmp rsi, rdx
    00216048jae 0x216057
    0021604acmp [rip+0x16257f], rsi
    00216051jb 0x215fb7
    00216057
    00216057loc_216057:
    00216057mov rdx, [rip+0x5ff8a]
    0021605emov rdi, [rdx]
    00216062xor edx, edx
    00216064call caml_darken
    00216069jmp 0x215fef
    0021606b
    0021606b 0f 1f 44 00 00 ..D..
    00216070
    00216070loc_216070:
    00216070cmp [rip+0x162559], rdi
    00216077jb 0x215fb7
    0021607djmp 0x21603f
    0021607f
    0021607f 90 .
    00216080
    00216080loc_216080:
    00216080mov rdi, rbp
    00216083call caml_realloc_ref_table
    00216088mov rax, [rbp+24]
    0021608cjmp 0x216020
    00215f60
    0021608e
    0021608e // align 0x10
    00216090
    00216090caml_atomic_fetch_add:
    00216090mov rax, [rip+0x162545]
    00216097sar rsi, 1
    0021609acmp rax, 1
    0021609ejne 0x2160c0
    002160a0mov rax, [rdi]
    002160a3mov rdx, rax
    002160a6sar rdx, 1
    002160a9add rdx, rsi
    002160aclea rdx, [rdx+rdx+1]
    002160b1mov [rdi], rdx
    002160b4ret
    002160b5db 0x48
    002160b6mov [rdi], edx
    002160b8ret
    002160b9
    002160b9 0f 1f 80 00 00 00 00 .......
    002160c0
    002160c0loc_2160c0:
    002160c0lea rax, [rsi+rsi]
    002160c4lock xadd [rdi], rax
    002160c9ret
    00216090
    002160ca
    002160ca // align 0x10
    002160d0
    002160d0caml_set_fields:
    002160d0push r13
    002160d2lea r13, [rdi-8]
    002160d6push r12
    002160d8mov r12, rsi
    002160dbpush rbp
    002160dcmov rbp, rdi
    002160dfpush rbx
    002160e0xor ebx, ebx
    002160e2sub rsp, 8
    002160e6jmp 0x216100
    002160e8db 0xec
    002160e9or bl, ch
    002160ebdb 0x14
    002160ec
    002160ec 0f 1f 40 00 ..@.
    002160f0
    002160f0loc_2160f0:
    002160f0lea rdi, [rbp+8*rdx]
    002160f5mov rsi, r12
    002160f8add ebx, 1
    002160fbcall caml_modify
    00216100
    00216100loc_216100:
    00216100mov rax, [r13]
    00216104movsxd rdx, ebx
    00216107shr rax, 10
    0021610bcmp rdx, rax
    0021610ejb 0x2160f0
    00216110add rsp, 8
    00216114pop rbx
    00216115pop rbp
    00216116pop r12
    00216118pop r13
    0021611aret
    002160d0
    0021611b
    0021611b // align 0x10
    00216120
    00216120caml_alloc_shr:
    00216120mov rax, [rip+0x5febd]
    00216127push r12
    00216129push rbp
    0021612apush rbx
    0021612bmov r12, [rax]
    0021612ftest r12, r12
    00216132je 0x216200
    00216138mov rbp, rdi
    0021613bmov rdi, [r12+280]
    00216143mov edx, esi
    00216145xor ecx, ecx
    00216147mov rsi, rbp
    0021614acall caml_shared_try_alloc
    0021614fmov rbx, rax
    00216152test rax, rax
    00216155je 0x2161f8
    0021615bmov eax, 1
    00216160mov rdx, [r12+272]
    00216168movq x1, rbp
    0021616dmovdqu x2, [r12+128]
    00216177movq x0, rax
    0021617cpunpcklqdq x1, x1
    00216180mov rax, 0xcccccccccccccccd
    0021618apunpcklqdq x0, x0
    0021618emul rdx
    00216191paddq x0, x2
    00216195paddq x0, x1
    00216199movups [r12+128], x0
    002161a2movhlps x3, x0
    002161a5shr rdx, 2
    002161a9movq rcx, x3
    002161aecmp rdx, rcx
    002161b1jb 0x2161d8
    002161b3add rbx, 8
    002161b7
    002161b7loc_2161b7:
    002161b7lea rdx, [rbp+1]
    002161bbmov rsi, rbp
    002161bexor ecx, ecx
    002161c0mov rdi, rbx
    002161c3call caml_memprof_sample_block
    002161c8mov rax, rbx
    002161cbpop rbx
    002161ccpop rbp
    002161cdpop r12
    002161cfret
    002161d0db 0x5d
    002161d1pop r12
    002161d3ret
    002161d4
    002161d4 0f 1f 40 00 ..@.
    002161d8
    002161d8loc_2161d8:
    002161d8mov esi, 1
    002161ddmov edi, 6
    002161e2call caml_ev_counter
    002161e7mov edi, 1
    002161eccall caml_request_major_slice
    002161f1jmp 0x2161b7
    002161f3
    002161f3 0f 1f 44 00 00 ..D..
    002161f8
    002161f8loc_2161f8:
    002161f8call caml_raise_out_of_memory
    002161fdnop [rax]
    00216200
    00216200loc_216200:
    00216200call caml_bad_caml_state
    00216120
    00216205
    00216205 // align 0x10
    00216210
    00216210caml_alloc_shr_reserved:
    00216210mov rax, [rip+0x5fdcd]
    00216217push r12
    00216219push rbp
    0021621apush rbx
    0021621bmov r12, [rax]
    0021621ftest r12, r12
    00216222je 0x2162f0
    00216228mov rbp, rdi
    0021622bmov rdi, [r12+280]
    00216233mov rcx, rdx
    00216236mov edx, esi
    00216238mov rsi, rbp
    0021623bcall caml_shared_try_alloc
    00216240mov rbx, rax
    00216243test rax, rax
    00216246je 0x2162e8
    0021624cmov eax, 1
    00216251mov rdx, [r12+272]
    00216259movq x1, rbp
    0021625emovdqu x2, [r12+128]
    00216268movq x0, rax
    0021626dpunpcklqdq x1, x1
    00216271mov rax, 0xcccccccccccccccd
    0021627bpunpcklqdq x0, x0
    0021627fmul rdx
    00216282paddq x0, x2
    00216286paddq x0, x1
    0021628amovups [r12+128], x0
    00216293movhlps x3, x0
    00216296shr rdx, 2
    0021629amovq rcx, x3
    0021629fcmp rdx, rcx
    002162a2jb 0x2162c8
    002162a4add rbx, 8
    002162a8
    002162a8loc_2162a8:
    002162a8lea rdx, [rbp+1]
    002162acmov rsi, rbp
    002162afxor ecx, ecx
    002162b1mov rdi, rbx
    002162b4call caml_memprof_sample_block
    002162b9mov rax, rbx
    002162bcpop rbx
    002162bdpop rbp
    002162bepop r12
    002162c0ret
    002162c1db 0x5d
    002162c2pop r12
    002162c4ret
    002162c5
    002162c5 0f 1f 00 ...
    002162c8
    002162c8loc_2162c8:
    002162c8mov esi, 1
    002162cdmov edi, 6
    002162d2call caml_ev_counter
    002162d7mov edi, 1
    002162dccall caml_request_major_slice
    002162e1jmp 0x2162a8
    002162e3
    002162e3 0f 1f 44 00 00 ..D..
    002162e8
    002162e8loc_2162e8:
    002162e8call caml_raise_out_of_memory
    002162ednop [rax]
    002162f0
    002162f0loc_2162f0:
    002162f0call caml_bad_caml_state
    00216210
    002162f5
    002162f5 // align 0x10
    00216300
    00216300caml_alloc_shr_noexc:
    00216300push r13
    00216302push r12
    00216304push rbp
    00216305push rbx
    00216306sub rsp, 8
    0021630amov rax, [rip+0x5fcd3]
    00216311mov rbp, [rax]
    00216315test rbp, rbp
    00216318je 0x2163e0
    0021631emov rbx, rdi
    00216321mov rdi, [rbp+280]
    00216328mov edx, esi
    0021632axor ecx, ecx
    0021632cmov rsi, rbx
    0021632fxor r13l, r13l
    00216332call caml_shared_try_alloc
    00216337mov r12, rax
    0021633atest rax, rax
    0021633dje 0x2163ac
    0021633fmov eax, 1
    00216344movdqu x2, [rbp+128]
    0021634cmovq x1, rbx
    00216351mov rdx, [rbp+272]
    00216358movq x0, rax
    0021635dpunpcklqdq x1, x1
    00216361mov rax, 0xcccccccccccccccd
    0021636bpunpcklqdq x0, x0
    0021636fmul rdx
    00216372paddq x0, x2
    00216376paddq x0, x1
    0021637amovhlps x3, x0
    0021637dshr rdx, 2
    00216381movups [rbp+128], x0
    00216388movq rcx, x3
    0021638dcmp rdx, rcx
    00216390jb 0x2163c0
    00216392lea r13, [r12+8]
    00216397lea rdx, [rbx+1]
    0021639bxor ecx, ecx
    0021639dmov rsi, rbx
    002163a0mov rdi, r13
    002163a3call caml_memprof_sample_block
    002163a8add rsp, 8
    002163ac
    002163acloc_2163ac:
    002163acmov rax, r13
    002163afpop rbx
    002163b0pop rbp
    002163b1pop r12
    002163b3pop r13
    002163b5ret
    002163b6db 0x5c
    002163b7pop r13
    002163b9ret
    002163ba
    002163ba 66 0f 1f 44 00 00 f..D..
    002163c0
    002163c0loc_2163c0:
    002163c0mov esi, 1
    002163c5mov edi, 6
    002163cacall caml_ev_counter
    002163cfmov edi, 1
    002163d4call caml_request_major_slice
    002163d9jmp 0x216396
    002163db
    002163db 0f 1f 44 00 00 ..D..
    002163e0
    002163e0loc_2163e0:
    002163e0call caml_bad_caml_state
    00216300
    002163e5
    002163e5 // align 0x10
    002163f0
    002163f0caml_stat_create_pool:
    002163f0cmp [rip+0x16278c], 0
    002163f8je 0x216400
    002163faret
    002163fbdb 0x00
    002163fcje 0x216400
    002163feret
    002163ff
    002163ff 90 .
    00216400
    00216400loc_216400:
    00216400sub rsp, 8
    00216404mov edi, 16
    00216409call fn_f4250
    0021640emovq x0, rax
    00216413mov [rip+0x16276e], rax
    0021641apunpcklqdq x0, x0
    0021641etest rax, rax
    00216421je 0x21642b
    00216423movaps [rax], x0
    00216426add rsp, 8
    0021642aret
    0021642b
    0021642bloc_21642b:
    0021642blea rdi, [rip+0x18de2]
    00216432call caml_fatal_error
    002163f0
    00216437
    00216437 // align 0x10
    00216440
    00216440caml_stat_destroy_pool:
    00216440push rbp
    00216441lea rbp, [rip+0x162714]
    00216448push rbx
    00216449mov rdi, rbp
    0021644csub rsp, 8
    00216450call fn_f4710
    00216455test eax, eax
    00216457jne 0x2164aa
    00216459mov rbx, [rip+0x162724]
    00216460test rbx, rbx
    00216463je 0x216497
    00216465mov rax, [rbx+8]
    00216469mov [rax], 0
    00216470nop [rax+rax]
    0021647bnop
    0021647cmov rdi, rbx
    0021647fmov rbx, [rbx]
    00216482call fn_f4370
    00216487mov [rip+0x1626f6], rbx
    0021648etest rbx, rbx
    00216491jne 0x216480
    00216493mov rdi, rbp
    00216496call fn_f47c0
    0021649btest eax, eax
    0021649djne 0x2164b8
    0021649fadd rsp, 8
    002164a3pop rbx
    002164a4pop rbp
    002164a5ret
    002164a6mov esi, eax
    002164a8lea rdi, [rip+0x1905c]
    002164afcall caml_plat_fatal_error
    002164b4mov esi, eax
    002164b6lea rdi, [rip+0x19059]
    002164bdcall caml_plat_fatal_error
    002164c2db 0x0a
    002164c3push rbp
    002164c4add [rax], al
    00216440
    002164c6
    002164c6 // align 0x10
    002164d0
    002164d0caml_stat_alloc_noexc:
    002164d0cmp [rip+0x1626ac], 0
    002164d8je 0x216508
    002164dapush rbx
    002164dbadd rdi, 16
    002164dfcall fn_f4250
    002164e4mov rbx, rax
    002164e7test rax, rax
    002164eaje 0x2164fc
    002164ecmov rdi, rax
    002164efadd rbx, 16
    002164f3call fn_2159d0
    002164f8mov rax, rbx
    002164fbpop rbx
    002164fc
    002164fcloc_2164fc:
    002164fcret
    002164fddb 0x89
    002164fefcomp [rbx-61]
    00216501
    00216501 0f 1f 80 00 00 00 00 .......
    00216508
    00216508loc_216508:
    00216508jmp 0xf4250
    002164d0
    0021650d
    0021650d // align 0x10
    00216510
    00216510caml_stat_alloc_aligned_noexc:
    00216510cmp [rip+0x16266c], 0
    00216518push r12
    0021651amov r12, rdx
    0021651dpush rbp
    0021651emovsxd rbp, esi
    00216521push rbx
    00216522je 0x216568
    00216524add rdi, 4112
    0021652bcall fn_f4250
    00216530mov rbx, rax
    00216533test rax, rax
    00216536je 0x21657c
    00216538mov rdi, rax
    0021653badd rbx, 16
    0021653fcall fn_2159d0
    00216544mov [r12], rbx
    00216548
    00216548loc_216548:
    00216548add rbx, rbp
    0021654band rbx, -4096
    00216552lea rax, [rbx+4096]
    00216559sub rax, rbp
    0021655cpop rbx
    0021655dpop rbp
    0021655epop r12
    00216560
    00216560loc_216560:
    00216560ret
    00216561db 0x5d
    00216562pop r12
    00216564ret
    00216565
    00216565 0f 1f 00 ...
    00216568
    00216568loc_216568:
    00216568add rdi, 4096
    0021656fcall fn_f4250
    00216574mov rbx, rax
    00216577test rax, rax
    0021657ajne 0x216548
    0021657c
    0021657cloc_21657c:
    0021657cxor eax, eax
    0021657ejmp 0x216560
    00216510
    00216580
    00216580caml_stat_alloc_aligned:
    00216580push r13
    00216582mov r13, rdx
    00216585push r12
    00216587movsxd r12, esi
    0021658apush rbp
    0021658bmov rbp, rdi
    0021658epush rbx
    0021658fsub rsp, 8
    00216593cmp [rip+0x1625e9], 0
    0021659bje 0x216600
    0021659dlea rdi, [rdi+4112]
    002165a4call fn_f4250
    002165a9mov rbx, rax
    002165actest rax, rax
    002165afje 0x216614
    002165b1mov rdi, rax
    002165b4add rbx, 16
    002165b8call fn_2159d0
    002165bdmov [r13], rbx
    002165c1
    002165c1loc_2165c1:
    002165c1add rbx, r12
    002165c4and rbx, -4096
    002165cblea rax, [rbx+4096]
    002165d2mov rdx, rax
    002165d5sub rdx, r12
    002165d8cmp r12, rax
    002165dbsete al
    002165detest rbp, rbp
    002165e1je 0x2165eb
    002165e3test al, al
    002165e5jne 0x21661d
    002165e7add rsp, 8
    002165eb
    002165ebloc_2165eb:
    002165ebmov rax, rdx
    002165eepop rbx
    002165efpop rbp
    002165f0pop r12
    002165f2pop r13
    002165f4ret
    002165f5db 0x5c
    002165f6pop r13
    002165f8ret
    002165f9
    002165f9 0f 1f 80 00 00 00 00 .......
    00216600
    00216600loc_216600:
    00216600lea rdi, [rdi+4096]
    00216607call fn_f4250
    0021660cmov rbx, rax
    0021660ftest rax, rax
    00216612jne 0x2165c1
    00216614
    00216614loc_216614:
    00216614mov eax, 1
    00216619xor edx, edx
    0021661bjmp 0x2165e2
    0021661d
    0021661dloc_21661d:
    0021661dcall caml_raise_out_of_memory
    00216580