File hevea_f46f610a6b0078f4aa208dda361f21de574cc56ad64b32889301afc466d33979.elf
Function:
    001fedf0
    001fedf0caml_BLAKE2Init:
    001fedf0mov rax, 0xbb67ae8584caa73b
    001fedfamov r8, rdi
    001fedfdmov rdi, rcx
    001fee00mov rcx, 0x6a09e667f3bcc908
    001fee0amov [r8+8], rax
    001fee0emov rax, 0x3c6ef372fe94f82b
    001fee18mov [r8+16], rax
    001fee1cmov rax, 0xa54ff53a5f1d36f1
    001fee26mov [r8+24], rax
    001fee2amov rax, 0x510e527fade682d1
    001fee34mov [r8+32], rax
    001fee38mov rax, 0x9b05688c2b3e6c1f
    001fee42mov [r8+40], rax
    001fee46mov rax, 0x1f83d9abfb41bd6b
    001fee50mov [r8+48], rax
    001fee54mov rax, 0x5be0cd19137e2179
    001fee5emov [r8+56], rax
    001fee62mov rax, rdx
    001fee65shl rax, 8
    001fee69mov [r8+72], 0
    001fee71or rax, rsi
    001fee74mov [r8+64], 0
    001fee7cor rax, 0x1010000
    001fee82mov [r8+80], 0
    001fee8axor rax, rcx
    001fee8dmov [r8], rax
    001fee90test rdx, rdx
    001fee93jne 0x1feea0
    001fee95ret
    001fee96db 0xd2
    001fee97jne 0x1feea0
    001fee99ret
    001fee9a
    001fee9a 66 0f 1f 44 00 00 f..D..
    001feea0
    001feea0loc_1feea0:
    001feea0mov eax, 64
    001feea5lea rcx, [r8+88]
    001feea9cmp rdx, rax
    001feeaccmova rdx, rax
    001feeb0cmp edx, 8
    001feeb3jae 0x1fef18
    001feeb5test dl, 4
    001feeb8jne 0x1fef65
    001feebetest edx, edx
    001feec0je 0x1feed2
    001feec2movzx eax, [rdi]
    001feec5mov [r8+88], al
    001feec9test dl, 2
    001feeccjne 0x1fef7a
    001feed2
    001feed2loc_1feed2:
    001feed2mov eax, 128
    001feed7sub rax, rdx
    001feedaadd rdx, rcx
    001feeddlea rdi, [rdx+8]
    001feee1mov ecx, eax
    001feee3mov [rdx], 0
    001feeeamov [rdx+rcx-8], 0
    001feef3and rdi, -8
    001feef7sub rdx, rdi
    001feefalea ecx, [rax+rdx]
    001feefdmov eax, ecx
    001feeffshr eax, 3
    001fef02mov ecx, eax
    001fef04xor eax, eax
    001fef06rep stosq [rdi], rax
    001fef09mov [r8+80], 128
    001fef11ret
    001fef12
    001fef12 66 0f 1f 44 00 00 f..D..
    001fef18
    001fef18loc_1fef18:
    001fef18mov rax, [rdi]
    001fef1bmov [r8+88], rax
    001fef1fmov eax, edx
    001fef21mov rsi, [rdi+rax-8]
    001fef26mov [rcx+rax-8], rsi
    001fef2blea rsi, [r8+96]
    001fef2fmov rax, rcx
    001fef32and rsi, -8
    001fef36sub rax, rsi
    001fef39sub rdi, rax
    001fef3cadd eax, edx
    001fef3eand eax, -8
    001fef41cmp eax, 8
    001fef44jb 0x1feed2
    001fef46and eax, -8
    001fef49xor r9l, r9l
    001fef4c
    001fef4cloc_1fef4c:
    001fef4cmov r10l, r9l
    001fef4fadd r9l, 8
    001fef53mov r11, [rdi+r10]
    001fef57mov [rsi+r10], r11
    001fef5bcmp r9l, eax
    001fef5ejb 0x1fef4c
    001fef60jmp 0x1feed2
    001fef65
    001fef65loc_1fef65:
    001fef65mov eax, [rdi]
    001fef67mov [r8+88], eax
    001fef6bmov eax, edx
    001fef6dmov esi, [rdi+rax-4]
    001fef71mov [rcx+rax-4], esi
    001fef75jmp 0x1feed2
    001fef7a
    001fef7aloc_1fef7a:
    001fef7amov eax, edx
    001fef7cmovzx esi, [rdi+rax-2]
    001fef81mov [rcx+rax-2], si
    001fef86jmp 0x1feed2
    001fedf0
    001fef8b
    001fef8b // align 0x10
    001fef90
    001fef90caml_BLAKE2Update:
    001fef90push r15
    001fef92push r14
    001fef94push r13
    001fef96push r12
    001fef98mov r12, rsi
    001fef9bpush rbp
    001fef9cmov rbp, rdx
    001fef9fpush rbx
    001fefa0mov rbx, rdi
    001fefa3sub rsp, 24
    001fefa7mov r13, [rdi+80]
    001fefabtest r13, r13
    001fefaejne 0x1ff0a0
    001fefb4lea rax, [rdi+88]
    001fefb8mov [rsp+8], rax
    001fefbdcmp rbp, 128
    001fefc4jbe 0x1ff01e
    001fefc6lea r14, [rbp-129]
    001fefcdmov r15, r12
    001fefd0shr r14, 7
    001fefd4lea r13, [r14+1]
    001fefd8shl r13, 7
    001fefdcadd r13, r12
    001fefdfnop [rax+rax]
    001fefeanop
    001fefecmov rsi, r15
    001fefefxor ecx, ecx
    001feff1mov edx, 128
    001feff6mov rdi, rbx
    001feff9call fn_1fe8e0
    001feffesub r15, -128
    001ff002cmp r15, r13
    001ff005jne 0x1feff0
    001ff007neg r14
    001ff00asub r12, -128
    001ff00eshl r14, 7
    001ff012lea rbp, [rbp+r14-128]
    001ff017sub r12, r14
    001ff01amov ecx, ebp
    001ff01ccmp ebp, 8
    001ff01fjb 0x1ff070
    001ff021mov rax, [r12]
    001ff025lea rdi, [rbx+96]
    001ff029mov rsi, r12
    001ff02cand rdi, -8
    001ff030mov [rbx+88], rax
    001ff034mov eax, ebp
    001ff036mov rcx, [rsp+8]
    001ff03bmov rdx, [r12+rax-8]
    001ff040mov [rcx+rax-8], rdx
    001ff045sub rcx, rdi
    001ff048sub rsi, rcx
    001ff04blea ecx, [rbp+rcx]
    001ff04fshr ecx, 3
    001ff052rep movsq [rdi], [rsi]
    001ff055mov [rbx+80], rbp
    001ff059
    001ff059loc_1ff059:
    001ff059add rsp, 24
    001ff05dpop rbx
    001ff05epop rbp
    001ff05fpop r12
    001ff061pop r13
    001ff063pop r14
    001ff065pop r15
    001ff067ret
    001ff068db 0x5e
    001ff069pop r15
    001ff06bret
    001ff06c
    001ff06c 0f 1f 40 00 ..@.
    001ff070
    001ff070loc_1ff070:
    001ff070test bpl, 4
    001ff074jne 0x1ff0fb
    001ff07atest ebp, ebp
    001ff07cje 0x1ff059
    001ff07emovzx eax, [r12]
    001ff083mov [rbx+88], al
    001ff086test bpl, 2
    001ff08aje 0x1ff059
    001ff08cmov eax, ebp
    001ff08emov rsi, [rsp+8]
    001ff093movzx edx, [r12+rax-2]
    001ff099mov [rsi+rax-2], dx
    001ff09ejmp 0x1ff059
    001ff0a0
    001ff0a0loc_1ff0a0:
    001ff0a0mov r14l, 128
    001ff0a6sub r14, r13
    001ff0a9cmp r14, rdx
    001ff0acjae 0x1ff0e8
    001ff0aelea r15, [rdi+88]
    001ff0b2mov rdx, r14
    001ff0b5lea rbp, [r13+rbp-128]
    001ff0baadd r12, r14
    001ff0bdlea rdi, [r15+r13]
    001ff0c1mov [rsp+8], r15
    001ff0c6call fn_f47d0
    001ff0cbxor ecx, ecx
    001ff0cdmov edx, 128
    001ff0d2mov rsi, r15
    001ff0d5mov rdi, rbx
    001ff0d8call fn_1fe8e0
    001ff0ddjmp 0x1fefc1
    001ff0e2
    001ff0e2 66 0f 1f 44 00 00 f..D..
    001ff0e8
    001ff0e8loc_1ff0e8:
    001ff0e8lea rdi, [rdi+r13+88]
    001ff0edcall fn_f47d0
    001ff0f2add rbp, [rbx+80]
    001ff0f6jmp 0x1ff059
    001ff0fb
    001ff0fbloc_1ff0fb:
    001ff0fbmov eax, [r12]
    001ff0ffmov [rbx+88], eax
    001ff102mov eax, [r12+rcx-4]
    001ff107mov rdx, [rsp+8]
    001ff10cmov [rdx+rcx-4], eax
    001ff110jmp 0x1ff059
    001fef90
    001ff115
    001ff115 // align 0x40
    001ff140
    001ff140caml_BLAKE2Final:
    001ff140push r13
    001ff142push r12
    001ff144mov r12, rdx
    001ff147mov edx, 128
    001ff14cpush rbp
    001ff14dmov rbp, rsi
    001ff150xor esi, esi
    001ff152push rbx
    001ff153mov rbx, rdi
    001ff156lea r13, [rbx+88]
    001ff15asub rsp, 8
    001ff15emov rdi, [rdi+80]
    001ff162sub rdx, rdi
    001ff165add rdi, r13
    001ff168call fn_f40e0
    001ff16dmov rdx, [rbx+80]
    001ff171mov rsi, r13
    001ff174mov rdi, rbx
    001ff177mov ecx, 1
    001ff17ccall fn_1fe8e0
    001ff181test rbp, rbp
    001ff184je 0x1ff1e3
    001ff186xor eax, eax
    001ff188xor esi, esi
    001ff18anop [rax+rax]
    001ff195nop [rax+rax]
    001ff1a0nop [rax+rax]
    001ff1abnop [rax+rax]
    001ff1b6nop [rax+rax]
    001ff1bcmov edx, eax
    001ff1bemov ecx, eax
    001ff1c0
    001ff1c0loc_1ff1c0:
    001ff1c0shr edx, 3
    001ff1c3and ecx, 7
    001ff1c6mov rdx, [rbx+8*rdx]
    001ff1cashl ecx, 3
    001ff1cdshr rdx, cl
    001ff1d0mov [r12+rsi], dl
    001ff1d4lea esi, [rax+1]
    001ff1d7mov rax, rsi
    001ff1dacmp rsi, rbp
    001ff1ddjb 0x1ff1c0
    001ff1dfadd rsp, 8
    001ff1e3
    001ff1e3loc_1ff1e3:
    001ff1e3pop rbx
    001ff1e4pop rbp
    001ff1e5pop r12
    001ff1e7pop r13
    001ff1e9ret
    001ff1eadb 0x5c
    001ff1ebpop r13
    001ff1edret
    001ff140
    001ff1ee
    001ff1ee // align 0x10
    001ff1f0
    001ff1f0caml_blake2_create:
    001ff1f0push r15
    001ff1f2push r14
    001ff1f4push r13
    001ff1f6push r12
    001ff1f8push rbp
    001ff1f9push rbx
    001ff1famov rbx, rdi
    001ff1fdmov edi, 216
    001ff202sar rbx, 1
    001ff205sub rsp, 104
    001ff209mov [rsp+8], rsi
    001ff20emov rax, [0x28]
    001ff217mov [rsp+88], rax
    001ff21cmov rax, [rip+0x76dc1]
    001ff223mov r12, [rax]
    001ff227lea rax, [rsp+16]
    001ff22cmov r14, [r12+160]
    001ff234mov [r12+160], rax
    001ff23cmov eax, 1
    001ff241movq x0, rax
    001ff246lea rax, [rsp+8]
    001ff24bpunpcklqdq x0, x0
    001ff24fmov [rsp+16], r14
    001ff254movups [rsp+24], x0
    001ff259mov [rsp+40], rax
    001ff25ecall caml_stat_alloc
    001ff263mov edx, 216
    001ff268mov esi, 8
    001ff26dlea rdi, [rip+0x179068]
    001ff274mov r13, rax
    001ff277call caml_alloc_custom_mem
    001ff27cmov r15, [rsp+8]
    001ff281mov rbp, rax
    001ff284mov rdi, r15
    001ff287call caml_string_length
    001ff28cmov rsi, rbx
    001ff28fmov rcx, r15
    001ff292mov rdi, r13
    001ff295mov rdx, rax
    001ff298call caml_BLAKE2Init
    001ff29dmov [rbp+8], r13
    001ff2a1mov [r12+160], r14
    001ff2a9mov rax, [rsp+88]
    001ff2aesub rax, [0x28]
    001ff2b7jne 0x1ff2cf
    001ff2b9add rsp, 104
    001ff2bdmov rax, rbp
    001ff2c0pop rbx
    001ff2c1pop rbp
    001ff2c2pop r12
    001ff2c4pop r13
    001ff2c6pop r14
    001ff2c8pop r15
    001ff2caret
    001ff2cbcall fn_f4590
    001ff2d0db 0xbc
    001ff2d1push rdx
    001ff2d2out dx, eax
    001ff2d3db 0xff
    001ff1f0
    001ff2d4
    001ff2d4 // align 0x10
    001ff2e0
    001ff2e0caml_blake2_update:
    001ff2e0sar rcx, 1
    001ff2e3sub rsp, 8
    001ff2e7sar rdx, 1
    001ff2eamov rdi, [rdi+8]
    001ff2eeadd rsi, rdx
    001ff2f1mov rdx, rcx
    001ff2f4call caml_BLAKE2Update
    001ff2f9mov eax, 1
    001ff2feadd rsp, 8
    001ff302ret
    001ff303db 0x83
    001ff304db 0xc4
    001ff305or bl, al
    001ff2e0
    001ff307
    001ff307 // align 0x10
    001ff310
    001ff310caml_blake2_final:
    001ff310push r13
    001ff312push r12
    001ff314push rbp
    001ff315push rbx
    001ff316mov rbx, rsi
    001ff319sar rbx, 1
    001ff31csub rsp, 104
    001ff320mov [rsp+8], rdi
    001ff325mov rdi, rbx
    001ff328mov rax, [0x28]
    001ff331mov [rsp+88], rax
    001ff336mov rax, [rip+0x76ca7]
    001ff33dmov r12, [rax]
    001ff341lea rax, [rsp+16]
    001ff346mov r13, [r12+160]
    001ff34emov [r12+160], rax
    001ff356mov eax, 1
    001ff35bmovq x0, rax
    001ff360lea rax, [rsp+8]
    001ff365punpcklqdq x0, x0
    001ff369mov [rsp+16], r13
    001ff36emovups [rsp+24], x0
    001ff373mov [rsp+40], rax
    001ff378call caml_alloc_string
    001ff37dmov rsi, rbx
    001ff380mov rbp, rax
    001ff383mov rax, [rsp+8]
    001ff388mov rdx, rbp
    001ff38bmov rdi, [rax+8]
    001ff38fcall caml_BLAKE2Final
    001ff394mov [r12+160], r13
    001ff39cmov rax, [rsp+88]
    001ff3a1sub rax, [0x28]
    001ff3aajne 0x1ff3be
    001ff3acadd rsp, 104
    001ff3b0mov rax, rbp
    001ff3b3pop rbx
    001ff3b4pop rbp
    001ff3b5pop r12
    001ff3b7pop r13
    001ff3b9ret
    001ff3bacall fn_f4590
    001ff3bfdb 0xcd
    001ff3c0push rcx
    001ff3c1out dx, eax
    001ff3c2db 0xff
    001ff310
    001ff3c3
    001ff3c3 // align 0x10
    001ff3d0
    001ff3d0caml_blake2_string:
    001ff3d0push r15
    001ff3d2sar rdi, 1
    001ff3d5mov r15, rsi
    001ff3d8push r14
    001ff3damov r14, rdx
    001ff3ddpush r13
    001ff3dfpush r12
    001ff3e1push rbp
    001ff3e2mov rbp, rdi
    001ff3e5mov rdi, rsi
    001ff3e8push rbx
    001ff3e9mov rbx, rcx
    001ff3ecsar rbx, 1
    001ff3efsub rsp, 232
    001ff3f6mov r12, [0x28]
    001ff3ffmov [rsp+216], r12
    001ff407mov r12, r8
    001ff40acall caml_string_length
    001ff40fmov rcx, r15
    001ff412mov rsi, rbp
    001ff415mov rdi, rsp
    001ff418mov rdx, rax
    001ff41bcall caml_BLAKE2Init
    001ff420lea rsi, [rbx+r14]
    001ff424mov rdi, rsp
    001ff427mov rdx, r12
    001ff42asar rdx, 1
    001ff42dcall caml_BLAKE2Update
    001ff432mov rdi, rbp
    001ff435call caml_alloc_string
    001ff43amov rsi, rbp
    001ff43dmov rdi, rsp
    001ff440mov rdx, rax
    001ff443mov rbx, rax
    001ff446call caml_BLAKE2Final
    001ff44bmov rax, [rsp+216]
    001ff453sub rax, [0x28]
    001ff45cjne 0x1ff477
    001ff45eadd rsp, 232
    001ff465mov rax, rbx
    001ff468pop rbx
    001ff469pop rbp
    001ff46apop r12
    001ff46cpop r13
    001ff46epop r14
    001ff470pop r15
    001ff472ret
    001ff473call fn_f4590
    001ff478db 0x14
    001ff479push rcx
    001ff47aout dx, eax
    001ff47bdb 0xff
    001ff3d0
    001ff47c
    001ff47c // align 0x10
    001ff480
    001ff480caml_blake2_bytes:
    001ff480jmp 0x1ff3d0
    001ff485db 0x47
    001ff486db 0xff
    001ff487db 0xff
    001ff488db 0xff
    001ff480
    001ff489
    001ff489 // align 0x10
    001ff490
    001ff490caml_init_callbacks:
    001ff490ret
    001ff491db 0x0f
    001ff492db 0x1e
    001ff493cli
    001ff494ret
    001ff490
    001ff495
    001ff495 // align 0x10
    001ff4a0
    001ff4a0caml_callback_exn:
    001ff4a0push r14
    001ff4a2push r13
    001ff4a4push r12
    001ff4a6push rbp
    001ff4a7push rbx
    001ff4a8sub rsp, 112
    001ff4acmov [rsp+8], rdi
    001ff4b1mov [rsp], rsi
    001ff4b5mov r12, [0x28]
    001ff4bemov [rsp+104], r12
    001ff4c3mov r12, [rip+0x76b1a]
    001ff4camov rbp, [r12]
    001ff4cftest rbp, rbp
    001ff4d2je 0x1ff638
    001ff4d8call caml_maybe_expand_stack
    001ff4ddmov rax, [rbp+40]
    001ff4e1mov rax, [rax+16]
    001ff4e5cmp [rax+24], 0
    001ff4eaje 0x1ff618
    001ff4f0mov rbx, [r12]
    001ff4f5movdqa x0, [rip+0x2abcf]
    001ff4fdlea rax, [rsp+8]
    001ff502mov r13, rsp
    001ff505lea r14, [rsp+32]
    001ff50amovq x1, rsp
    001ff50fmov rdx, [rbx+160]
    001ff516mov [rsp+32], rdx
    001ff51bmov [rbx+160], r14
    001ff522movups [rsp+40], x0
    001ff527movq x0, rax
    001ff52cpunpcklqdq x0, x1
    001ff530movups [rsp+56], x0
    001ff535mov rax, [rbx+40]
    001ff539mov rax, [rax+16]
    001ff53dmov rsi, [rax+24]
    001ff541mov eax, 1
    001ff546test rsi, rsi
    001ff549je 0x1ff57c
    001ff54bmov edx, 1
    001ff550add rsi, 1
    001ff554mov edi, 245
    001ff559call caml_alloc_2
    001ff55emov rdx, [rbx+40]
    001ff562mov rdx, [rdx+16]
    001ff566mov [rdx+24], 0
    001ff56emov rbx, [r12]
    001ff573mov rdx, [rsp+32]
    001ff578mov [rsp+32], rdx
    001ff57dmov rdi, rbx
    001ff580mov [rbx+160], r14
    001ff587mov [rsp+24], rax
    001ff58cmov eax, 1
    001ff591movq x0, rax
    001ff596lea rax, [rsp+24]
    001ff59bpunpcklqdq x0, x0
    001ff59fmov [rsp+56], rax
    001ff5a4movups [rsp+40], x0
    001ff5a9call caml_update_young_limit_after_c_call
    001ff5aemov rsi, [rsp+8]
    001ff5b3mov rdx, r13
    001ff5b6mov rdi, rbx
    001ff5b9call caml_callback_asm
    001ff5bemov rdx, [r12]
    001ff5c3mov rcx, [rsp+32]
    001ff5c8mov [rdx+160], rcx
    001ff5cfmov rdx, [rsp+24]
    001ff5d4test dl, 1
    001ff5d7je 0x1ff600
    001ff5d9mov rdx, [rsp+104]
    001ff5desub rdx, [0x28]
    001ff5e7jne 0x1ff63d
    001ff5e9add rsp, 112
    001ff5edpop rbx
    001ff5eepop rbp
    001ff5efpop r12
    001ff5f1pop r13
    001ff5f3pop r14
    001ff5f5ret
    001ff5f6db 0x5d
    001ff5f7pop r14
    001ff5f9ret
    001ff5fa
    001ff5fa 66 0f 1f 44 00 00 f..D..
    001ff600
    001ff600loc_1ff600:
    001ff600mov rcx, [rbp+40]
    001ff604mov rdx, [rdx]
    001ff607mov rcx, [rcx+16]
    001ff60bsub rdx, 1
    001ff60fmov [rcx+24], rdx
    001ff613jmp 0x1ff5dd
    001ff615
    001ff615 0f 1f 00 ...
    001ff618
    001ff618loc_1ff618:
    001ff618mov rdi, rbp
    001ff61bcall caml_update_young_limit_after_c_call
    001ff620mov rsi, [rsp+8]
    001ff625mov rdx, rsp
    001ff628mov rdi, rbp
    001ff62bcall caml_callback_asm
    001ff630jmp 0x1ff5dd
    001ff632
    001ff632 66 0f 1f 44 00 00 f..D..
    001ff638
    001ff638loc_1ff638:
    001ff638call caml_bad_caml_state
    001ff63d
    001ff63dloc_1ff63d:
    001ff63dcall fn_f4590
    001ff4a0
    001ff642
    001ff642 // align 0x10
    001ff650
    001ff650caml_callback2_exn:
    001ff650push r13
    001ff652push r12
    001ff654push rbp
    001ff655push rbx
    001ff656sub rsp, 152
    001ff65dmov [rsp+24], rdi
    001ff662mov [rsp+16], rsi
    001ff667mov [rsp+8], rdx
    001ff66cmov r12, [0x28]
    001ff675mov [rsp+136], r12
    001ff67dmov r12, [rip+0x76960]
    001ff684mov rbp, [r12]
    001ff689test rbp, rbp
    001ff68cje 0x1ff828
    001ff692call caml_maybe_expand_stack
    001ff697mov rax, [rbp+40]
    001ff69bmov rax, [rax+16]
    001ff69fcmp [rax+24], 0
    001ff6a4je 0x1ff7f8
    001ff6aamov rbx, [r12]
    001ff6aflea rax, [rsp+24]
    001ff6b4lea r13, [rsp+64]
    001ff6b9movdqa x0, [rip+0x2aa1b]
    001ff6c1mov rdx, [rbx+160]
    001ff6c8mov [rsp+64], rdx
    001ff6cdmov [rbx+160], r13
    001ff6d4movups [rsp+72], x0
    001ff6d9movq x0, rax
    001ff6delea rax, [rsp+16]
    001ff6e3movq x1, rax
    001ff6e8lea rax, [rsp+8]
    001ff6edpunpcklqdq x0, x1
    001ff6f1mov [rsp+104], rax
    001ff6f6movups [rsp+88], x0
    001ff6fbmov rax, [rbx+40]
    001ff6ffmov rax, [rax+16]
    001ff703mov rsi, [rax+24]
    001ff707mov eax, 1
    001ff70ctest rsi, rsi
    001ff70fje 0x1ff742
    001ff711mov edx, 1
    001ff716add rsi, 1
    001ff71amov edi, 245
    001ff71fcall caml_alloc_2
    001ff724mov rdx, [rbx+40]
    001ff728mov rdx, [rdx+16]
    001ff72cmov [rdx+24], 0
    001ff734mov rbx, [r12]
    001ff739mov rdx, [rsp+64]
    001ff73emov [rsp+40], rax
    001ff743mov eax, 1
    001ff748mov rdi, rbx
    001ff74bmovq x0, rax
    001ff750mov [rsp+64], rdx
    001ff755lea rax, [rsp+40]
    001ff75apunpcklqdq x0, x0
    001ff75emov [rbx+160], r13
    001ff765movups [rsp+72], x0
    001ff76amovq x0, [rsp+16]
    001ff770mov [rsp+88], rax
    001ff775movhps x0, [rsp+8]
    001ff77amovaps [rsp+48], x0
    001ff77fcall caml_update_young_limit_after_c_call
    001ff784mov rsi, [rsp+24]
    001ff789lea rdx, [rsp+48]
    001ff78emov rdi, rbx
    001ff791call caml_callback2_asm
    001ff796mov rdx, [r12]
    001ff79bmov rcx, [rsp+64]
    001ff7a0mov [rdx+160], rcx
    001ff7a7mov rdx, [rsp+40]
    001ff7actest dl, 1
    001ff7afje 0x1ff7e0
    001ff7b1mov rdx, [rsp+136]
    001ff7b9sub rdx, [0x28]
    001ff7c2jne 0x1ff82d
    001ff7c4add rsp, 152
    001ff7cbpop rbx
    001ff7ccpop rbp
    001ff7cdpop r12
    001ff7cfpop r13
    001ff7d1ret
    001ff7d2db 0x5c
    001ff7d3pop r13
    001ff7d5ret
    001ff7d6
    001ff7d6 66 2e 0f 1f 84 00 00 00 00 00 f.........
    001ff7e0
    001ff7e0loc_1ff7e0:
    001ff7e0mov rcx, [rbp+40]
    001ff7e4mov rdx, [rdx]
    001ff7e7mov rcx, [rcx+16]
    001ff7ebsub rdx, 1
    001ff7efmov [rcx+24], rdx
    001ff7f3jmp 0x1ff7b5
    001ff7f5
    001ff7f5 0f 1f 00 ...
    001ff7f8
    001ff7f8loc_1ff7f8:
    001ff7f8movq x0, [rsp+16]
    001ff7femov rdi, rbp
    001ff801movhps x0, [rsp+8]
    001ff806movaps [rsp+64], x0
    001ff80bcall caml_update_young_limit_after_c_call
    001ff810mov rsi, [rsp+24]
    001ff815lea rdx, [rsp+64]
    001ff81amov rdi, rbp
    001ff81dcall caml_callback2_asm
    001ff822jmp 0x1ff7b5
    001ff824
    001ff824 0f 1f 40 00 ..@.
    001ff828
    001ff828loc_1ff828:
    001ff828call caml_bad_caml_state
    001ff82d
    001ff82dloc_1ff82d:
    001ff82dcall fn_f4590
    001ff650
    001ff832
    001ff832 // align 0x10
    001ff840
    001ff840caml_callback3_exn:
    001ff840push r13
    001ff842push r12
    001ff844push rbp
    001ff845push rbx
    001ff846sub rsp, 168
    001ff84dmov [rsp+24], rdi
    001ff852mov [rsp+16], rsi
    001ff857mov [rsp+8], rdx
    001ff85cmov [rsp], rcx
    001ff860mov r12, [0x28]
    001ff869mov [rsp+152], r12
    001ff871mov r12, [rip+0x7676c]
    001ff878mov rbp, [r12]
    001ff87dtest rbp, rbp
    001ff880je 0x1ffa38
    001ff886call caml_maybe_expand_stack
    001ff88bmov rax, [rbp+40]
    001ff88fmov rax, [rax+16]
    001ff893cmp [rax+24], 0
    001ff898je 0x1ffa00
    001ff89emov rbx, [r12]
    001ff8a3lea rax, [rsp+24]
    001ff8a8lea r13, [rsp+80]
    001ff8admovdqa x0, [rip+0x2a837]
    001ff8b5movq x2, rsp
    001ff8bamov rdx, [rbx+160]
    001ff8c1mov [rsp+80], rdx
    001ff8c6mov [rbx+160], r13
    001ff8cdmovups [rsp+88], x0
    001ff8d2movq x0, rax
    001ff8d7lea rax, [rsp+16]
    001ff8dcmovq x1, rax
    001ff8e1lea rax, [rsp+8]
    001ff8e6punpcklqdq x0, x1
    001ff8eamovups [rsp+104], x0
    001ff8efmovq x0, rax
    001ff8f4punpcklqdq x0, x2
    001ff8f8movups [rsp+120], x0
    001ff8fdmov rax, [rbx+40]
    001ff901mov rax, [rax+16]
    001ff905mov rsi, [rax+24]
    001ff909mov eax, 1
    001ff90etest rsi, rsi
    001ff911je 0x1ff944
    001ff913mov edx, 1
    001ff918add rsi, 1
    001ff91cmov edi, 245
    001ff921call caml_alloc_2
    001ff926mov rdx, [rbx+40]
    001ff92amov rdx, [rdx+16]
    001ff92emov [rdx+24], 0
    001ff936mov rbx, [r12]
    001ff93bmov rdx, [rsp+80]
    001ff940mov [rsp+40], rax
    001ff945mov eax, 1
    001ff94amov rdi, rbx
    001ff94dmovq x0, rax
    001ff952mov [rsp+80], rdx
    001ff957lea rax, [rsp+40]
    001ff95cpunpcklqdq x0, x0
    001ff960mov [rbx+160], r13
    001ff967movups [rsp+88], x0
    001ff96cmovq x0, [rsp+16]
    001ff972mov [rsp+104], rax
    001ff977mov rax, [rsp]
    001ff97bmovhps x0, [rsp+8]
    001ff980mov [rsp+64], rax
    001ff985movaps [rsp+48], x0
    001ff98acall caml_update_young_limit_after_c_call
    001ff98fmov rsi, [rsp+24]
    001ff994lea rdx, [rsp+48]
    001ff999mov rdi, rbx
    001ff99ccall caml_callback3_asm
    001ff9a1mov rdx, [r12]
    001ff9a6mov rcx, [rsp+80]
    001ff9abmov [rdx+160], rcx
    001ff9b2mov rdx, [rsp+40]
    001ff9b7test dl, 1
    001ff9baje 0x1ff9e8
    001ff9bcmov rdx, [rsp+152]
    001ff9c4sub rdx, [0x28]
    001ff9cdjne 0x1ffa3d
    001ff9cfadd rsp, 168
    001ff9d6pop rbx
    001ff9d7pop rbp
    001ff9d8pop r12
    001ff9dapop r13
    001ff9dcret
    001ff9dddb 0x5c
    001ff9depop r13
    001ff9e0ret
    001ff9e1
    001ff9e1 0f 1f 80 00 00 00 00 .......
    001ff9e8
    001ff9e8loc_1ff9e8:
    001ff9e8mov rcx, [rbp+40]
    001ff9ecmov rdx, [rdx]
    001ff9efmov rcx, [rcx+16]
    001ff9f3sub rdx, 1
    001ff9f7mov [rcx+24], rdx
    001ff9fbjmp 0x1ff9c0
    001ff9fd
    001ff9fd 0f 1f 00 ...
    001ffa00
    001ffa00loc_1ffa00:
    001ffa00movq x0, [rsp+16]
    001ffa06mov rax, [rsp]
    001ffa0amov rdi, rbp
    001ffa0dmovhps x0, [rsp+8]
    001ffa12mov [rsp+96], rax
    001ffa17movaps [rsp+80], x0
    001ffa1ccall caml_update_young_limit_after_c_call
    001ffa21mov rsi, [rsp+24]
    001ffa26lea rdx, [rsp+80]
    001ffa2bmov rdi, rbp
    001ffa2ecall caml_callback3_asm
    001ffa33jmp 0x1ff9c0
    001ffa35
    001ffa35 0f 1f 00 ...
    001ffa38
    001ffa38loc_1ffa38:
    001ffa38call caml_bad_caml_state
    001ffa3d
    001ffa3dloc_1ffa3d:
    001ffa3dcall fn_f4590
    001ff840
    001ffa42
    001ffa42 // align 0x10
    001ffa50
    001ffa50caml_callbackN_exn:
    001ffa50push r13
    001ffa52sub esi, 3
    001ffa55push r12
    001ffa57push rbp
    001ffa58movsxd rbp, esi
    001ffa5bpush rbx
    001ffa5csub rsp, 88
    001ffa60mov rbx, [0x28]
    001ffa69mov [rsp+72], rbx
    001ffa6emov rbx, rdx
    001ffa71mov r13, rsp
    001ffa74jmp 0x1ffae9
    001ffa76db 0x89
    001ffa77in eax, 235
    001ffa79outsd dx, [rsi]
    001ffa7a
    001ffa7a 66 0f 1f 44 00 00 f..D..
    001ffa80
    001ffa80loc_1ffa80:
    001ffa80mov r12, [rip+0x76561]
    001ffa87add rbx, 24
    001ffa8bmov rax, [r12]
    001ffa90mov [rsp+16], rbp
    001ffa95sub rbp, 3
    001ffa99mov [rsp+8], 1
    001ffaa2mov rdx, [rax+160]
    001ffaa9mov [rax+160], r13
    001ffab0mov rcx, [rbx-8]
    001ffab4mov rsi, [rbx-24]
    001ffab8mov [rsp+24], rbx
    001ffabdmov [rsp], rdx
    001ffac1mov rdx, [rbx-16]
    001ffac5call caml_callback3_exn
    001ffacamov rdx, [rsp]
    001ffacemov rdi, rax
    001ffad1mov rax, [r12]
    001ffad6mov [rax+160], rdx
    001ffaddmov rax, rdi
    001ffae0and eax, 3
    001ffae3cmp rax, 2
    001ffae7je 0x1ffb20
    001ffae9
    001ffae9loc_1ffae9:
    001ffae9lea eax, [rbp+3]
    001ffaeccmp eax, 2
    001ffaefjg 0x1ffa80
    001ffaf1test eax, eax
    001ffaf3je 0x1ffb20
    001ffaf5cmp eax, 1
    001ffaf8je 0x1ffb40
    001ffafamov rax, [rsp+72]
    001ffaffsub rax, [0x28]
    001ffb08jne 0x1ffb62
    001ffb0amov rdx, [rbx+8]
    001ffb0emov rsi, [rbx]
    001ffb11add rsp, 88
    001ffb15pop rbx
    001ffb16pop rbp
    001ffb17pop r12
    001ffb19pop r13
    001ffb1bjmp 0x1ff650
    001ffb20
    001ffb20loc_1ffb20:
    001ffb20mov rax, [rsp+72]
    001ffb25sub rax, [0x28]
    001ffb2ejne 0x1ffb62
    001ffb30add rsp, 88
    001ffb34mov rax, rdi
    001ffb37pop rbx
    001ffb38pop rbp
    001ffb39pop r12
    001ffb3bpop r13
    001ffb3dret
    001ffb3e
    001ffb3e 66 90 f.
    001ffb40
    001ffb40loc_1ffb40:
    001ffb40mov rax, [rsp+72]
    001ffb45sub rax, [0x28]
    001ffb4ejne 0x1ffb62
    001ffb50mov rsi, [rbx]
    001ffb53add rsp, 88
    001ffb57pop rbx
    001ffb58pop rbp
    001ffb59pop r12
    001ffb5bpop r13
    001ffb5djmp 0x1ff4a0
    001ffb62
    001ffb62loc_1ffb62:
    001ffb62call fn_f4590
    001ffa50
    001ffb67
    001ffb67 // align 0x10
    001ffb70
    001ffb70caml_callbackN_res:
    001ffb70sub rsp, 8
    001ffb74call caml_callbackN_exn
    001ffb79mov rdx, rax
    001ffb7cand edx, 3
    001ffb7fcmp rdx, 2
    001ffb83je 0x1ffba0
    001ffb85xor edx, edx
    001ffb87mov rdi, rax
    001ffb8aadd rsp, 8
    001ffb8eand edx, 1
    001ffb91mov eax, edx
    001ffb93mov rdx, rdi
    001ffb96ret
    001ffb97db 0x48
    001ffb98mov edx, edi
    001ffb9aret
    001ffb9b
    001ffb9b 0f 1f 44 00 00 ..D..
    001ffba0
    001ffba0loc_1ffba0:
    001ffba0and rax, -4
    001ffba4mov edx, 1
    001ffba9add rsp, 8
    001ffbadand edx, 1
    001ffbb0mov rdi, rax
    001ffbb3mov eax, edx
    001ffbb5mov rdx, rdi
    001ffbb8ret
    001ffb70
    001ffbb9
    001ffbb9 // align 0x10
    001ffbc0
    001ffbc0caml_callback_res:
    001ffbc0sub rsp, 8
    001ffbc4call caml_callback_exn
    001ffbc9xor edx, edx
    001ffbcbmov rcx, rax
    001ffbceand ecx, 3
    001ffbd1cmp rcx, 2
    001ffbd5jne 0x1ffbe4
    001ffbd7and rax, -4
    001ffbdbmov edx, 1
    001ffbe0and edx, 1
    001ffbe3mov rcx, rax
    001ffbe6add rsp, 8
    001ffbeamov eax, edx
    001ffbecmov rdx, rcx
    001ffbefret
    001ffbf0db 0x48
    001ffbf1mov edx, ecx
    001ffbf3ret
    001ffbc0
    001ffbf4
    001ffbf4 // align 0x10
    001ffc00
    001ffc00caml_callback2_res:
    001ffc00sub rsp, 8
    001ffc04call caml_callback2_exn
    001ffc09mov rdx, rax
    001ffc0cand edx, 3
    001ffc0fcmp rdx, 2
    001ffc13je 0x1ffc30
    001ffc15xor edx, edx
    001ffc17mov rdi, rax
    001ffc1aadd rsp, 8
    001ffc1eand edx, 1
    001ffc21mov eax, edx
    001ffc23mov rdx, rdi
    001ffc26ret
    001ffc27db 0x48
    001ffc28mov edx, edi
    001ffc2aret
    001ffc2b
    001ffc2b 0f 1f 44 00 00 ..D..
    001ffc30
    001ffc30loc_1ffc30:
    001ffc30and rax, -4
    001ffc34mov edx, 1
    001ffc39add rsp, 8
    001ffc3dand edx, 1
    001ffc40mov rdi, rax
    001ffc43mov eax, edx
    001ffc45mov rdx, rdi
    001ffc48ret
    001ffc00
    001ffc49
    001ffc49 // align 0x10
    001ffc50
    001ffc50caml_callback3_res:
    001ffc50sub rsp, 8
    001ffc54call caml_callback3_exn
    001ffc59mov rdx, rax
    001ffc5cand edx, 3
    001ffc5fcmp rdx, 2
    001ffc63je 0x1ffc80
    001ffc65xor edx, edx
    001ffc67mov rdi, rax
    001ffc6aadd rsp, 8
    001ffc6eand edx, 1
    001ffc71mov eax, edx
    001ffc73mov rdx, rdi
    001ffc76ret
    001ffc77db 0x48
    001ffc78mov edx, edi
    001ffc7aret
    001ffc7b
    001ffc7b 0f 1f 44 00 00 ..D..
    001ffc80
    001ffc80loc_1ffc80:
    001ffc80and rax, -4
    001ffc84mov edx, 1
    001ffc89add rsp, 8
    001ffc8dand edx, 1
    001ffc90mov rdi, rax
    001ffc93mov eax, edx
    001ffc95mov rdx, rdi
    001ffc98ret
    001ffc50
    001ffc99
    001ffc99 // align 0x10
    001ffca0
    001ffca0caml_callback:
    001ffca0sub rsp, 8
    001ffca4call caml_callback_exn
    001ffca9mov rdx, rax
    001ffcacand edx, 3
    001ffcafcmp rdx, 2
    001ffcb3je 0x1ffcbe
    001ffcb5add rsp, 8
    001ffcb9ret
    001ffcbaand rax, -4
    001ffcbe
    001ffcbeloc_1ffcbe:
    001ffcbemov rdi, rax
    001ffcc1call caml_raise
    001ffcc6db 0xd6
    001ffcc7movsxd rax, [rdx]
    001ffcc9db 0x00
    001ffca0
    001ffcca
    001ffcca // align 0x10
    001ffcd0
    001ffcd0caml_callback2:
    001ffcd0sub rsp, 8
    001ffcd4call caml_callback2_exn
    001ffcd9mov rdx, rax
    001ffcdcand edx, 3
    001ffcdfcmp rdx, 2
    001ffce3je 0x1ffcee
    001ffce5add rsp, 8
    001ffce9ret
    001ffceaand rax, -4
    001ffcee
    001ffceeloc_1ffcee:
    001ffceemov rdi, rax
    001ffcf1call caml_raise
    001ffcf6db 0xa6
    001ffcf7movsxd rax, [rdx]
    001ffcf9db 0x00
    001ffcd0
    001ffcfa
    001ffcfa // align 0x10
    001ffd00
    001ffd00caml_callback3:
    001ffd00sub rsp, 8
    001ffd04call caml_callback3_exn
    001ffd09mov rdx, rax
    001ffd0cand edx, 3
    001ffd0fcmp rdx, 2
    001ffd13je 0x1ffd1e
    001ffd15add rsp, 8
    001ffd19ret
    001ffd1aand rax, -4
    001ffd1e
    001ffd1eloc_1ffd1e:
    001ffd1emov rdi, rax
    001ffd21call caml_raise
    001ffd26db 0x76
    001ffd27movsxd rax, [rdx]
    001ffd29db 0x00
    001ffd00
    001ffd2a
    001ffd2a // align 0x10
    001ffd30
    001ffd30caml_callbackN:
    001ffd30sub rsp, 8
    001ffd34call caml_callbackN_exn
    001ffd39mov rdx, rax
    001ffd3cand edx, 3
    001ffd3fcmp rdx, 2
    001ffd43je 0x1ffd4e
    001ffd45add rsp, 8
    001ffd49ret
    001ffd4aand rax, -4
    001ffd4e
    001ffd4eloc_1ffd4e:
    001ffd4emov rdi, rax
    001ffd51call caml_raise
    001ffd56db 0x46
    001ffd57movsxd rax, [rdx]
    001ffd59db 0x00
    001ffd30
    001ffd5a
    001ffd5a // align 0x10
    001ffd60
    001ffd60caml_register_named_value:
    001ffd60push r15
    001ffd62push r14
    001ffd64push r13
    001ffd66push r12
    001ffd68push rbp
    001ffd69push rbx
    001ffd6amov rbx, rdi
    001ffd6dsub rsp, 24
    001ffd71mov [rsp], rsi
    001ffd75call fn_f43a0
    001ffd7amovsx edx, [rbx]
    001ffd7dmov rbp, rax
    001ffd80test dl, dl
    001ffd82je 0x1ffe90
    001ffd88mov rcx, rbx
    001ffd8bmov eax, 5381
    001ffd90nop [rax+rax]
    001ffd9bnop
    001ffd9cmov esi, eax
    001ffd9eadd rcx, 1
    001ffda2shl esi, 5
    001ffda5add eax, esi
    001ffda7add eax, edx
    001ffda9movsx edx, [rcx]
    001ffdactest dl, dl
    001ffdaejne 0x1ffda0
    001ffdb0mov r13l, eax
    001ffdb3imul r13, r13, 0x4ec4ec4f
    001ffdbashr r13, 34
    001ffdbelea edx, [r13+2*r13]
    001ffdc3lea edx, [r13+4*rdx]
    001ffdc8sub eax, edx
    001ffdcamov r13l, eax
    001ffdcdlea r15, [rip+0x178728]
    001ffdd4mov rdi, r15
    001ffdd7call fn_f4710
    001ffddctest eax, eax
    001ffddejne 0x1ffea9
    001ffde4lea r14, [rip+0x178751]
    001ffdebmov r12, [r14+8*r13]
    001ffdeftest r12, r12
    001ffdf2jne 0x1ffe0a
    001ffdf4jmp 0x1ffe30
    001ffdf6db 0x75
    001ffdf7adc ch, bl
    001ffdf9db 0x36
    001ffdfa
    001ffdfa 66 0f 1f 44 00 00 f..D..
    001ffe00
    001ffe00loc_1ffe00:
    001ffe00mov r12, [r12+8]
    001ffe05test r12, r12
    001ffe08je 0x1ffe30
    001ffe0a
    001ffe0aloc_1ffe0a:
    001ffe0alea rsi, [r12+16]
    001ffe0fmov rdi, rbx
    001ffe12call fn_f45a0
    001ffe17test eax, eax
    001ffe19jne 0x1ffe00
    001ffe1bmov rsi, [rsp]
    001ffe1fmov rdi, r12
    001ffe22call caml_modify_generational_global_root
    001ffe27jmp 0x1ffe6e
    001ffe29
    001ffe29 0f 1f 80 00 00 00 00 .......
    001ffe30
    001ffe30loc_1ffe30:
    001ffe30lea rdi, [rbp+24]
    001ffe34call caml_stat_alloc
    001ffe39lea rdx, [rbp+1]
    001ffe3dmov rsi, rbx
    001ffe40lea rdi, [rax+16]
    001ffe44mov [rsp+8], rax
    001ffe49call fn_f47d0
    001ffe4emov rcx, [rsp+8]
    001ffe53mov rax, [rsp]
    001ffe57mov [rcx], rax
    001ffe5amov rax, [r14+8*r13]
    001ffe5emov rdi, rcx
    001ffe61mov [r14+8*r13], rcx
    001ffe65mov [rcx+8], rax
    001ffe69call caml_register_generational_global_root
    001ffe6e
    001ffe6eloc_1ffe6e:
    001ffe6emov rdi, r15
    001ffe71call fn_f47c0
    001ffe76test eax, eax
    001ffe78jne 0x1ffe9b
    001ffe7aadd rsp, 24
    001ffe7emov eax, 1
    001ffe83pop rbx
    001ffe84pop rbp
    001ffe85pop r12
    001ffe87pop r13
    001ffe89pop r14
    001ffe8bpop r15
    001ffe8dret
    001ffe8e
    001ffe8e 66 90 f.
    001ffe90
    001ffe90loc_1ffe90:
    001ffe90mov r13l, 12
    001ffe96jmp 0x1ffdd1
    001ffe9b
    001ffe9bloc_1ffe9b:
    001ffe9bmov esi, eax
    001ffe9dlea rdi, [rip+0x2f676]
    001ffea4call caml_plat_fatal_error
    001ffea9
    001ffea9loc_1ffea9:
    001ffea9mov esi, eax
    001ffeablea rdi, [rip+0x2f65d]
    001ffeb2call caml_plat_fatal_error
    001ffd60
    001ffeb7
    001ffeb7 // align 0x10
    001ffec0
    001ffec0caml_named_value:
    001ffec0push r12
    001ffec2push rbp
    001ffec3lea rbp, [rip+0x178632]
    001ffecapush rbx
    001ffecbmov rbx, rdi
    001ffecemov rdi, rbp
    001ffed1call fn_f4710
    001ffed6test eax, eax
    001ffed8jne 0x1fff9d
    001ffedemovsx edx, [rbx]
    001ffee1mov rcx, rbx
    001ffee4mov eax, 5381
    001ffee9test dl, dl
    001ffeebje 0x1fff88
    001ffef1nop [rax+rax]
    001ffefcmov esi, eax
    001ffefeadd rcx, 1
    001fff02shl esi, 5
    001fff05add eax, esi
    001fff07add eax, edx
    001fff09movsx edx, [rcx]
    001fff0ctest dl, dl
    001fff0ejne 0x1fff00
    001fff10mov edx, eax
    001fff12imul rdx, rdx, 0x4ec4ec4f
    001fff19shr rdx, 34
    001fff1dlea ecx, [rdx+2*rdx]
    001fff20lea ecx, [rdx+4*rcx]
    001fff23sub eax, ecx
    001fff25mov edx, eax
    001fff27lea rax, [rip+0x17860e]
    001fff2emov r12, [rax+8*rdx]
    001fff32test r12, r12
    001fff35jne 0x1fff4a
    001fff37jmp 0x1fff70
    001fff39db 0x75
    001fff3apor
    001fff3d
    001fff3d 0f 1f 00 ...
    001fff40
    001fff40loc_1fff40:
    001fff40mov r12, [r12+8]
    001fff45test r12, r12
    001fff48je 0x1fff70
    001fff4a
    001fff4aloc_1fff4a:
    001fff4alea rsi, [r12+16]
    001fff4fmov rdi, rbx
    001fff52call fn_f45a0
    001fff57test eax, eax
    001fff59jne 0x1fff40
    001fff5bmov rdi, rbp
    001fff5ecall fn_f47c0
    001fff63test eax, eax
    001fff65jne 0x1fff8f
    001fff67mov rax, r12
    001fff6apop rbx
    001fff6bpop rbp
    001fff6cpop r12
    001fff6eret
    001fff6f
    001fff6f 90 .
    001fff70
    001fff70loc_1fff70:
    001fff70mov rdi, rbp
    001fff73call fn_f47c0
    001fff78test eax, eax
    001fff7ajne 0x1fff8f
    001fff7cpop rbx
    001fff7dxor eax, eax
    001fff7fpop rbp
    001fff80pop r12
    001fff82ret
    001fff83
    001fff83 0f 1f 44 00 00 ..D..
    001fff88
    001fff88loc_1fff88:
    001fff88mov edx, 12
    001fff8djmp 0x1fff2b
    001fff8f
    001fff8floc_1fff8f:
    001fff8fmov esi, eax
    001fff91lea rdi, [rip+0x2f582]
    001fff98call caml_plat_fatal_error
    001fff9d
    001fff9dloc_1fff9d:
    001fff9dmov esi, eax
    001fff9flea rdi, [rip+0x2f569]
    001fffa6call caml_plat_fatal_error
    001ffec0
    001fffab
    001fffab // align 0x10
    001fffb0
    001fffb0caml_iterate_named_values:
    001fffb0push r14
    001fffb2lea r14, [rip+0x178543]
    001fffb9push r13
    001fffbbpush r12
    001fffbdpush rbp
    001fffbemov rbp, rdi
    001fffc1mov rdi, r14
    001fffc4push rbx
    001fffc5call fn_f4710
    001fffcatest eax, eax
    001fffccjne 0x200020
    001fffcelea r12, [rip+0x178567]
    001fffd5lea r13, [r12+104]
    001fffdanop
    001fffdcmov rbx, [r12]
    001fffe0
    001fffe0loc_1fffe0:
    001fffe0test rbx, rbx
    001fffe3je 0x200002
    001fffe5nop [rax]
    001fffecmov rdi, [rbx]
    001fffeflea rsi, [rbx+16]
    001ffff3call rbp
    001ffff5mov rbx, [rbx+8]
    001ffff9test rbx, rbx
    001ffffcjne 0x1ffff0
    001ffffeadd r12, 8
    00200002
    00200002loc_200002:
    00200002cmp r12, r13
    00200005jne 0x1fffe0
    00200007mov rdi, r14
    0020000acall fn_f47c0
    0020000ftest eax, eax
    00200011jne 0x20002e
    00200013pop rbx
    00200014pop rbp
    00200015pop r12
    00200017pop r13
    00200019pop r14
    0020001bret
    0020001cmov esi, eax
    0020001elea rdi, [rip+0x2f4e6]
    00200025call caml_plat_fatal_error
    0020002amov esi, eax
    0020002clea rdi, [rip+0x2f4e3]
    00200033call caml_plat_fatal_error
    00200038db 0x94
    00200039db 0xb9
    0020003aadd [rax], eax
    001fffb0
    0020003c
    0020003c // align 0x10
    00200040
    00200040fn_200040:
    00200040push rbx
    00200041lea rsi, [rip+0x2fbb0]
    00200048mov rbx, rdi
    0020004bxor eax, eax
    0020004dmov edi, 4
    00200052call caml_gc_message
    00200057mov rdi, [rbx+256]
    0020005ecmp rdi, rbx
    00200061je 0x200071
    00200063call caml_stat_free
    00200068xor eax, eax
    0020006amov [rbx+256], rax
    00200071
    00200071loc_200071:
    00200071call caml_raise_out_of_memory
    00200040
    00200076
    00200076 // align 0x10
    00200080
    00200080fn_200080:
    00200080push r15
    00200082push r14
    00200084push r13
    00200086push r12
    00200088push rbp
    00200089mov rbp, rsi
    0020008cpush rbx
    0020008dmov rbx, rdi
    00200090sub rsp, 488
    00200097mov r14, [0x28]
    002000a0mov [rsp+472], r14
    002000a8mov r14l, edx
    002000ablea rax, [rsp+56]
    002000b0lea r15, [rsp+192]
    002000b8movq x3, rax
    002000bdlea rdx, [rsp+48]
    002000c2movq x0, r15
    002000c7mov r8, r15
    002000calea rax, [rsp+448]
    002000d2movq x2, rdx
    002000d7movq x4, rax
    002000dcpunpcklqdq x2, x3
    002000e0punpcklqdq x0, x4
    002000e4movaps [rsp], x2
    002000e8movaps [rsp+448], x0
    002000f0mov ecx, r14l
    002000f3and ecx, 1
    002000f6
    002000f6loc_2000f6:
    002000f6mov r12l, 1023
    002000fcnop [rax]
    00200100
    00200100loc_200100:
    00200100cmp rbp, rbx
    00200103jne 0x20010d
    00200105test cl, cl
    00200107jne 0x2001e8
    0020010d
    0020010dloc_20010d:
    0020010dtest bl, 1
    00200110je 0x200330
    00200116cmp rbp, rbx
    00200119je 0x2001e8
    0020011ftest bpl, 1
    00200123jne 0x2006b0
    00200129movzx eax, [rbp-8]
    0020012dcmp al, -6
    0020012fje 0x200440
    00200135cmp al, -1
    00200137je 0x200188
    00200139
    00200139loc_200139:
    00200139mov r8, [rsp+448]
    00200141mov r13, -1
    00200148
    00200148loc_200148:
    00200148cmp r8, r15
    0020014bje 0x200155
    0020014dmov rdi, r8
    00200150call caml_stat_free
    00200155
    00200155loc_200155:
    00200155mov rax, [rsp+472]
    0020015dsub rax, [0x28]
    00200166jne 0x200875
    0020016cadd rsp, 488
    00200173mov rax, r13
    00200176pop rbx
    00200177pop rbp
    00200178pop r12
    0020017apop r13
    0020017cpop r14
    0020017epop r15
    00200180ret
    00200181nop [rax]
    00200188
    00200188loc_200188:
    00200188mov rax, [rbp]
    0020018cmov rax, [rax+48]
    00200190test rax, rax
    00200193je 0x200139
    00200195
    00200195loc_200195:
    00200195mov r13, [rip+0x75e4c]
    0020019cmov [rsp+32], r8
    002001a1mov rsi, rbp
    002001a4mov rdi, rbx
    002001a7mov [rsp+24], cl
    002001abmov rdx, [r13]
    002001b0mov [rdx+216], 0
    002001bbcall rax
    002001bdmov rdx, [r13]
    002001c2movzx ecx, [rsp+24]
    002001c7mov r8, [rsp+32]
    002001cccmp [rdx+216], 0
    002001d4je 0x2001e0
    002001d6test r14b, 1
    002001daje 0x2006c9
    002001e0
    002001e0loc_2001e0:
    002001e0test eax, eax
    002001e2jne 0x2006a0
    002001e8
    002001e8loc_2001e8:
    002001e8cmp [rsp+448], r8
    002001f0je 0x200668
    002001f6mov rdx, [r8-16]
    002001famov rsi, [r8-32]
    002001femov rax, rdx
    00200201sar rax, 1
    00200204shl rax, 3
    00200208add rsi, rax
    0020020badd rax, [r8-24]
    0020020fmov rbx, [rsi]
    00200212mov rbp, [rax]
    00200215lea rax, [rdx+2]
    00200219mov [r8-16], rax
    0020021dcmp rax, [r8-8]
    00200221jne 0x200227
    00200223sub r8, 32
    00200227
    00200227loc_200227:
    00200227sub r12l, 1
    0020022bjne 0x200100
    00200231mov [rsp+32], r8
    00200236mov [rsp+24], cl
    0020023acall caml_check_pending_actions
    0020023fmovzx ecx, [rsp+24]
    00200244mov r8, [rsp+32]
    00200249test eax, eax
    0020024bje 0x2000f6
    00200251mov [rsp+48], rbx
    00200256lea rsi, [rsp+64]
    0020025bmovdqa x5, [rsp]
    00200260mov rbx, [rip+0x75d81]
    00200267mov [rsp+32], cl
    0020026bmov [rsp+56], rbp
    00200270movdqa x0, [rip+0x29e58]
    00200278mov rax, [rbx]
    0020027cmov [rsp+128], rsi
    00200284mov [rsp+24], r8
    00200289mov rdx, [rax+160]
    00200290mov [rax+160], rsi
    00200297lea rsi, [rsp+128]
    0020029fmov [rsp+136], 1
    002002abmov [rsp+64], rdx
    002002b0mov rdx, [rsp+448]
    002002b8mov [rax+160], rsi
    002002bfmov rax, r8
    002002c2sub rax, rdx
    002002c5mov [rsp+152], rdx
    002002cdshr rax, 3
    002002d1movups [rsp+72], x0
    002002d6mov [rsp+144], rax
    002002demovups [rsp+88], x5
    002002e3call caml_do_pending_actions_res
    002002e8mov r8, [rsp+24]
    002002edmovzx ecx, [rsp+32]
    002002f2mov r12, rax
    002002f5mov r13, rdx
    002002f8mov rax, [rbx]
    002002fcmov rdx, [rsp+128]
    00200304test r12l, r12l
    00200307mov [rax+160], rdx
    0020030ejne 0x200882
    00200314mov rdx, [rsp+64]
    00200319mov rbx, [rsp+48]
    0020031emov rbp, [rsp+56]
    00200323mov [rax+160], rdx
    0020032ajmp 0x2000f6
    0020032fnop
    00200330
    00200330loc_200330:
    00200330mov r13, rbp
    00200333lea rdi, [rbx-8]
    00200337and r13l, 1
    0020033bje 0x200360
    0020033dmovzx eax, [rbx-8]
    00200341cmp al, -6
    00200343je 0x200478
    00200349cmp al, -1
    0020034bje 0x200450
    00200351
    00200351loc_200351:
    00200351mov r8, [rsp+448]
    00200359jmp 0x200148
    0020035enop
    00200360
    00200360loc_200360:
    00200360movzx edx, [rbx-8]
    00200364movzx esi, [rbp-8]
    00200368lea r9, [rbp-8]
    0020036cmov r13, rdx
    0020036fmov rax, rsi
    00200372cmp edx, esi
    00200374je 0x200480
    0020037acmp edx, 250
    00200380je 0x200478
    00200386cmp esi, 250
    0020038cje 0x200440
    00200392cmp edx, 249
    00200398je 0x200640
    0020039ecmp esi, 249
    002003a4jne 0x200655
    002003aamov eax, 247
    002003afcmp edx, 247
    002003b5jne 0x200655
    002003bb
    002003bbloc_2003bb:
    002003bbmov rdi, [rsp+448]
    002003c3cmp rdi, r15
    002003c6je 0x2003d7
    002003c8call caml_stat_free
    002003cdxor ecx, ecx
    002003cfmov [rsp+448], rcx
    002003d7
    002003d7loc_2003d7:
    002003d7lea rdi, [rip+0x2e991]
    002003decall caml_invalid_argument
    002003e3nop [rax+rax]
    002003e8
    002003e8loc_2003e8:
    002003e8mov r13, [rdi]
    002003ebmov rax, [r9]
    002003eeshr r13, 10
    002003f2shr rax, 10
    002003f6cmp r13, rax
    002003f9jne 0x200655
    002003fftest r13, r13
    00200402je 0x2001e8
    00200408cmp r13, 1
    0020040cjbe 0x20043b
    0020040emov rax, [rsp+456]
    00200416cmp r8, rax
    00200419jae 0x2006e0
    0020041f
    0020041floc_20041f:
    0020041flea rax, [r13+r13+1]
    00200424mov [r8], rbx
    00200427add r8, 32
    0020042bmov [r8-24], rbp
    0020042fmov [r8-8], rax
    00200433mov [r8-16], 3
    0020043b
    0020043bloc_20043b:
    0020043bmov rbx, [rbx]
    0020043enop
    00200440
    00200440loc_200440:
    00200440mov rbp, [rbp]
    00200444jmp 0x200227
    00200449nop [rax]
    00200450
    00200450loc_200450:
    00200450mov rax, [rbx]
    00200453mov rax, [rax+48]
    00200457test rax, rax
    0020045ajne 0x200195
    00200460
    00200460loc_200460:
    00200460mov r8, [rsp+448]
    00200468mov r13l, 1
    0020046ejmp 0x200148
    00200473nop [rax+rax]
    00200478
    00200478loc_200478:
    00200478mov rbx, [rbx]
    0020047bjmp 0x200227
    00200480
    00200480loc_200480:
    00200480lea edx, [rsi+11]
    00200483cmp sil, -11
    00200487jb 0x2003e8
    0020048dlea rsi, [rip+0x314ec]
    00200494movzx edx, dl
    00200497movsxd rax, [rsi+4*rdx]
    0020049badd rax, rsi
    0020049ejmp rax
    002004a1movsd_xmm x1, [rbx]
    002004a5movsd_xmm x0, [rbp]
    002004aacomisd x0, x1
    002004aeja 0x200139
    002004b4comisd x1, x0
    002004b8ja 0x200460
    002004baucomisd x1, x0
    002004bejp 0x2004c6
    002004c0je 0x2001e8
    002004c6
    002004c6loc_2004c6:
    002004c6test r14l, r14l
    002004c9je 0x2006c9
    002004cfucomisd x1, x1
    002004d3jnp 0x200460
    002004d5ucomisd x0, x0
    002004d9jp 0x2001e8
    002004dfjmp 0x200139
    002004e4nop [rax]
    002004e8cmp rbp, rbx
    002004ebje 0x2001e8
    002004f1mov rdi, rbx
    002004f4mov [rsp+40], r8
    002004f9mov [rsp+32], cl
    002004fdcall caml_string_length
    00200502mov rdi, rbp
    00200505mov r13, rax
    00200508call caml_string_length
    0020050dmov rsi, rbp
    00200510mov rdi, rbx
    00200513cmp r13, rax
    00200516mov rdx, rax
    00200519mov [rsp+24], rax
    0020051ecmovbe rdx, r13
    00200522call fn_f4600
    00200527mov r9, [rsp+24]
    0020052cmovzx ecx, [rsp+32]
    00200531test eax, eax
    00200533mov r8, [rsp+40]
    00200538js 0x200139
    0020053ejg 0x200460
    00200544cmp r13, r9
    00200547je 0x2001e8
    0020054dsub r13, r9
    00200550jmp 0x200351
    00200555nop [rax]
    00200558mov rdx, [rbx]
    0020055bmov rsi, [rbp]
    0020055fmov rax, [rdx+16]
    00200563cmp rax, [rsi+16]
    00200567jne 0x20075b
    0020056dtest rax, rax
    00200570jne 0x200195
    00200576mov rdi, [rsp+448]
    0020057ecmp rdi, r15
    00200581je 0x200592
    00200583call caml_stat_free
    00200588xor esi, esi
    0020058amov [rsp+448], rsi
    00200592
    00200592loc_200592:
    00200592lea rdi, [rip+0x2e7be]
    00200599call caml_invalid_argument
    0020059enop
    002005a0mov r13, [rdi]
    002005a3mov rax, [r9]
    002005a6shr r13, 10
    002005aashr rax, 10
    002005aecmp r13, rax
    002005b1jne 0x200655
    002005b7test r13, r13
    002005baje 0x2001e8
    002005c0lea rax, [rbx+8*r13]
    002005c4sub rbp, rbx
    002005c7jmp 0x20060c
    002005c9nop [rax]
    002005d0
    002005d0loc_2005d0:
    002005d0comisd x0, x1
    002005d4ja 0x200460
    002005daucomisd x0, x1
    002005dejp 0x2005e2
    002005e0je 0x2005ff
    002005e2
    002005e2loc_2005e2:
    002005e2test r14l, r14l
    002005e5je 0x2006c9
    002005ebucomisd x0, x0
    002005efjnp 0x200460
    002005f5ucomisd x1, x1
    002005f9jnp 0x200139
    002005ff
    002005ffloc_2005ff:
    002005ffadd rbx, 8
    00200603cmp rax, rbx
    00200606je 0x2001e8
    0020060c
    0020060cloc_20060c:
    0020060cmovsd_xmm x0, [rbx]
    00200610movsd_xmm x1, [rbp+rbx]
    00200616comisd x1, x0
    0020061ajbe 0x2005d0
    0020061cjmp 0x200139
    00200621mov r13, [rbx+8]
    00200625mov rax, [rbp+8]
    00200629sar r13, 1
    0020062csar rax, 1
    0020062fcmp r13, rax
    00200632je 0x2001e8
    00200638jmp 0x200655
    0020063anop [rax+rax]
    00200640
    00200640loc_200640:
    00200640lea edx, [rsi+9]
    00200643mov r13l, 247
    00200649and edx, 253
    0020064fje 0x2003bb
    00200655
    00200655loc_200655:
    00200655mov r8, [rsp+448]
    0020065dsub r13, rax
    00200660jmp 0x200148
    00200665nop [rax]
    00200668
    00200668loc_200668:
    00200668xor r13l, r13l
    0020066bjmp 0x200148
    00200670mov rdi, [rsp+448]
    00200678cmp rdi, r15
    0020067bje 0x20068c
    0020067dcall caml_stat_free
    00200682xor edx, edx
    00200684mov [rsp+448], rdx
    0020068c
    0020068cloc_20068c:
    0020068clea rdi, [rip+0x2e6f6]
    00200693call caml_invalid_argument
    00200698nop [rax+rax]
    002006a0
    002006a0loc_2006a0:
    002006a0mov r8, [rsp+448]
    002006a8movsxd r13, eax
    002006abjmp 0x200148
    002006b0
    002006b0loc_2006b0:
    002006b0sar rbx, 1
    002006b3sar rbp, 1
    002006b6mov r8, [rsp+448]
    002006besub rbx, rbp
    002006c1mov r13, rbx
    002006c4jmp 0x200148
    002006c9
    002006c9loc_2006c9:
    002006c9mov r8, [rsp+448]
    002006d1mov r13, 0x8000000000000000
    002006dbjmp 0x200148
    002006e0
    002006e0loc_2006e0:
    002006e0mov rdi, [rsp+448]
    002006e8sub r8, rdi
    002006ebmov [rsp+24], r8
    002006f0cmp rdi, r15
    002006f3je 0x20077e
    002006f9sub rax, rdi
    002006fcmov [rsp+40], cl
    00200700mov rsi, rax
    00200703sar rsi, 5
    00200707lea rax, [rsi+rsi]
    0020070bcmp rax, 0xfffff
    00200711ja 0x20087a
    00200717shl rsi, 6
    0020071bmov [rsp+32], rsi
    00200720call caml_stat_resize_noexc
    00200725mov rsi, [rsp+32]
    0020072amovzx ecx, [rsp+40]
    0020072ftest rax, rax
    00200732mov r8, rax
    00200735je 0x20087a
    0020073b
    0020073bloc_20073b:
    0020073bmov rax, [rsp+24]
    00200740add rsi, r8
    00200743mov [rsp+448], r8
    0020074bmov [rsp+456], rsi
    00200753add r8, rax
    00200756jmp 0x20041f
    0020075b
    0020075bloc_20075b:
    0020075bmov rsi, [rsi]
    0020075emov rdi, [rdx]
    00200761call fn_f45a0
    00200766mov r8, [rsp+448]
    0020076emovsxd r13, eax
    00200771sar r13, 63
    00200775or r13, 1
    00200779jmp 0x200148
    0020077e
    0020077eloc_20077e:
    0020077emov edi, 1024
    00200783mov [rsp+32], cl
    00200787call caml_stat_alloc_noexc
    0020078cmovzx ecx, [rsp+32]
    00200791test rax, rax
    00200794mov r8, rax
    00200797je 0x20087a
    0020079dmovdqa x0, [r15]
    002007a2mov esi, 1024
    002007a7movups [rax], x0
    002007aamovdqa x0, [r15+16]
    002007b0movups [rax+16], x0
    002007b4movdqa x0, [r15+32]
    002007bamovups [rax+32], x0
    002007bemovdqa x0, [r15+48]
    002007c4movups [rax+48], x0
    002007c8movdqa x0, [r15+64]
    002007cemovups [rax+64], x0
    002007d2movdqa x0, [r15+80]
    002007d8movups [rax+80], x0
    002007dcmovdqa x0, [r15+96]
    002007e2movups [rax+96], x0
    002007e6movdqa x0, [r15+112]
    002007ecmovups [rax+112], x0
    002007f0movdqa x0, [r15+128]
    002007f9movups [rax+128], x0
    00200800movdqa x0, [r15+144]
    00200809movups [rax+144], x0
    00200810movdqa x0, [r15+160]
    00200819movups [rax+160], x0
    00200820movdqa x0, [r15+176]
    00200829movups [rax+176], x0
    00200830movdqa x0, [r15+192]
    00200839movups [rax+192], x0
    00200840movdqa x0, [r15+208]
    00200849movups [rax+208], x0
    00200850movdqa x0, [r15+224]
    00200859movups [rax+224], x0
    00200860movdqa x0, [r15+240]
    00200869movups [rax+240], x0
    00200870jmp 0x20073b
    00200875
    00200875loc_200875:
    00200875call fn_f4590
    0020087a
    0020087aloc_20087a:
    0020087amov rdi, r15
    0020087dcall fn_200040
    00200882
    00200882loc_200882:
    00200882mov rdi, [rsp+448]
    0020088acmp rdi, r15
    0020088dje 0x20089e
    0020088fcall caml_stat_free
    00200894xor eax, eax
    00200896mov [rsp+448], rax
    0020089e
    0020089eloc_20089e:
    0020089emov rdi, r13
    002008a1call caml_raise
    00200080
    002008a6
    002008a6 // align 0x10
    002008b0
    002008b0caml_compare:
    002008b0sub rsp, 8
    002008b4mov edx, 1
    002008b9call fn_200080
    002008betest rax, rax
    002008c1js 0x2008d7
    002008c3setg al
    002008c6movzx eax, al
    002008c9lea rax, [rax+rax+1]
    002008ceadd rsp, 8
    002008d2
    002008d2loc_2008d2:
    002008d2ret
    002008d3mov rax, -1
    002008dajmp 0x2008d2
    002008dcdb 0xff
    002008dddb 0xff
    002008dejmp 0x2008d2
    002008b0
    002008e0
    002008e0caml_equal:
    002008e0sub rsp, 8
    002008e4xor edx, edx
    002008e6call fn_200080
    002008ebcmp rax, 1
    002008efsbb rax, rax
    002008f2add rsp, 8
    002008f6and eax, 2
    002008f9add rax, 1
    002008fdret
    002008fedb 0x83
    002008ffrol [rcx], -61
    002008e0
    00200902
    00200902 // align 0x10
    00200910
    00200910caml_notequal:
    00200910sub rsp, 8
    00200914xor edx, edx
    00200916call fn_200080
    0020091bcmp rax, 1
    0020091fsbb rax, rax
    00200922add rsp, 8
    00200926and rax, -2
    0020092aadd rax, 3
    0020092eret
    0020092fdb 0x83
    00200930rol [rbx], -61
    00200910
    00200933
    00200933 // align 0x10
    00200940
    00200940caml_lessthan:
    00200940sub rsp, 8
    00200944xor edx, edx
    00200946call fn_200080
    0020094bmov rdx, 0x7fffffffffffffff
    00200955add rax, rdx
    00200958sub rdx, 1
    0020095ccmp rdx, rax
    0020095fsetae al
    00200962add rsp, 8
    00200966movzx eax, al
    00200969lea rax, [rax+rax+1]
    0020096eret
    0020096fdb 0x44
    00200970add [rcx], al
    00200972ret
    00200940
    00200973
    00200973 // align 0x10
    00200980
    00200980caml_lessequal:
    00200980sub rsp, 8
    00200984xor edx, edx
    00200986call fn_200080
    0020098badd rsp, 8
    0020098fmov rdx, 0x7fffffffffffffff
    00200999add rax, rdx
    0020099cnot rax
    0020099fshr rax, 63
    002009a3lea rax, [rax+rax+1]
    002009a8ret
    002009a9db 0x44
    002009aaadd [rcx], al
    002009acret
    00200980
    002009ad
    002009ad // align 0x10
    002009b0
    002009b0caml_greaterthan:
    002009b0sub rsp, 8
    002009b4xor edx, edx
    002009b6call fn_200080
    002009bbtest rax, rax
    002009besetg al
    002009c1add rsp, 8
    002009c5movzx eax, al
    002009c8lea rax, [rax+rax+1]
    002009cdret
    002009cedb 0x44
    002009cfadd [rcx], al
    002009d1ret
    002009b0
    002009d2
    002009d2 // align 0x10
    002009e0
    002009e0caml_greaterequal:
    002009e0sub rsp, 8
    002009e4xor edx, edx
    002009e6call fn_200080
    002009ebadd rsp, 8
    002009efsar rax, 63
    002009f3and rax, -2
    002009f7add rax, 3
    002009fbret
    002009fcdb 0x83
    002009fdrol [rbx], -61
    002009e0
    00200a00
    00200a00fn_200a00:
    00200a00push r15
    00200a02push r14
    00200a04push r13
    00200a06mov r13, rdi
    00200a09lea rdi, [rsi+7]
    00200a0dpush r12
    00200a0fmov rsi, rdi
    00200a12mov r12, rdx
    00200a15push rbp
    00200a16shr rsi, 3
    00200a1apush rbx
    00200a1blea rdi, [rsi+1]
    00200a1fsub rsp, 120
    00200a23mov rax, [rip+0x755be]
    00200a2amov rbx, [0x28]
    00200a33mov [rsp+104], rbx
    00200a38mov rbx, rcx
    00200a3bmov r14, [rax]
    00200a3flea rax, [rsp+32]
    00200a44mov [rsp+24], 1
    00200a4dmov rbp, [r14+160]
    00200a54mov [r14+160], rax
    00200a5bmov eax, 1
    00200a60movq x0, rax
    00200a65lea rax, [rsp+24]
    00200a6apunpcklqdq x0, x0
    00200a6emov [rsp+32], rbp
    00200a73mov [rsp+56], rax
    00200a78movups [rsp+40], x0
    00200a7dcmp rdi, 256
    00200a84ja 0x200a8f
    00200a86cmp [rip+0x177893], rdx
    00200a8djae 0x200ae0
    00200a8f
    00200a8floc_200a8f:
    00200a8fmov esi, 255
    00200a94call caml_alloc_shr
    00200a99mov rdi, r12
    00200a9cmov rsi, rbx
    00200a9fmov [rsp+24], rax
    00200aa4mov [rax], r13
    00200aa7call caml_adjust_gc_speed
    00200aacmov rdi, [rsp+24]
    00200ab1call caml_check_urgent_gc
    00200ab6
    00200ab6loc_200ab6:
    00200ab6mov [r14+160], rbp
    00200abdmov rdx, [rsp+104]
    00200ac2sub rdx, [0x28]
    00200acbjne 0x200b7d
    00200ad1add rsp, 120
    00200ad5pop rbx
    00200ad6pop rbp
    00200ad7pop r12
    00200ad9pop r13
    00200adbpop r14
    00200addpop r15
    00200adfret
    00200ae0
    00200ae0loc_200ae0:
    00200ae0mov esi, 255
    00200ae5mov r15, r8
    00200ae8call caml_alloc_small
    00200aedmov rdx, r12
    00200af0mov [rsp+24], rax
    00200af5mov [rax], r13
    00200af8or rdx, [r13+8]
    00200afcmov rax, [rsp+24]
    00200b01je 0x200ab6
    00200b03mov rcx, [rip+0x754de]
    00200b0amov rcx, [rcx]
    00200b0emov r13, [rcx+96]
    00200b12mov rcx, [r13+136]
    00200b19cmp rcx, [r13+144]
    00200b20jae 0x200b50
    00200b22
    00200b22loc_200b22:
    00200b22lea rsi, [rcx+24]
    00200b26mov [r13+136], rsi
    00200b2dmov [rcx], rax
    00200b30mov [rcx+8], r12
    00200b34mov [rcx+16], rbx
    00200b38test r12, r12
    00200b3bjne 0x200b70
    00200b3d
    00200b3dloc_200b3d:
    00200b3dmov rax, [rsp+24]
    00200b42jmp 0x200ab6
    00200b47
    00200b47 66 0f 1f 84 00 00 00 00 00 f........
    00200b50
    00200b50loc_200b50:
    00200b50lea rdi, [r13+112]
    00200b54mov [rsp+8], rax
    00200b59call caml_realloc_custom_table
    00200b5emov rcx, [r13+136]
    00200b65mov rax, [rsp+8]
    00200b6ajmp 0x200b22
    00200b6c
    00200b6c 0f 1f 40 00 ..@.
    00200b70
    00200b70loc_200b70:
    00200b70mov rsi, r15
    00200b73mov rdi, r12
    00200b76call caml_adjust_minor_gc_speed
    00200b7bjmp 0x200b3d
    00200b7d
    00200b7dloc_200b7d:
    00200b7dcall fn_f4590
    00200a00
    00200b82
    00200b82 // align 0x10
    00200b90
    00200b90caml_custom_get_max_major:
    00200b90sub rsp, 8
    00200b94mov rax, [rip+0x75449]
    00200b9bmov rax, [rax]
    00200b9fmov rdi, [rax+280]
    00200ba6call caml_heap_size
    00200babmov rdx, 0x6d3a06d3a06d3a07
    00200bb5mul rdx
    00200bb8mov rax, rdx
    00200bbbshr rax, 6
    00200bbfimul rax, [rip+0x177765]
    00200bc7add rsp, 8
    00200bcbret
    00200bccdb 0x83
    00200bcddb 0xc4
    00200bceor bl, al
    00200b90
    00200bd0
    00200bd0caml_alloc_custom:
    00200bd0mov r9, rdx
    00200bd3mov r8, rcx
    00200bd6test rcx, rcx
    00200bd9jne 0x200c15
    00200bdbmov rax, [rip+0x75402]
    00200be2mov r8, [rip+0x17773b]
    00200be9mov rax, [rax]
    00200bedmov rdx, [rax+272]
    00200bf4mov rax, 0x28f5c28f5c28f5c3
    00200bfeshl rdx, 3
    00200c02shr rdx, 2
    00200c06mul rdx
    00200c09shr rdx, 2
    00200c0dimul r8, rdx
    00200c11mov rdx, r9
    00200c14jmp 0x200a00
    00200c19db 0xe3
    00200c1astd
    00200c1bdb 0xff
    00200c1cdb 0xff
    00200bd0
    00200c1d
    00200c1d // align 0x10
    00200c20
    00200c20caml_alloc_custom_mem:
    00200c20push rbp
    00200c21xor ecx, ecx
    00200c23push rbx
    00200c24mov rbx, rdx
    00200c27sub rsp, 8
    00200c2bmov rax, [rip+0x753b2]
    00200c32mov rax, [rax]
    00200c36mov rdx, [rax+272]
    00200c3dmov rax, 0x28f5c28f5c28f5c3
    00200c47shl rdx, 3
    00200c4bshr rdx, 2
    00200c4fmul rdx
    00200c52shr rdx, 2
    00200c56imul rdx, [rip+0x1776c6]
    00200c5emov r8, rdx
    00200c61mov rdx, rbx
    00200c64call fn_200a00
    00200c69lea rsi, [rbx+7]
    00200c6dmov ecx, 2
    00200c72shr rsi, 3
    00200c76mov rdi, rax
    00200c79mov rbp, rax
    00200c7cmov rdx, rsi
    00200c7fcall caml_memprof_sample_block
    00200c84add rsp, 8
    00200c88mov rax, rbp
    00200c8bpop rbx
    00200c8cpop rbp
    00200c8dret
    00200c8edb 0xe8
    00200c8fpop rbx
    00200c90pop rbp
    00200c91ret
    00200c20
    00200c92
    00200c92 // align 0x10
    00200ca0
    00200ca0caml_register_custom_operations:
    00200ca0push rbx
    00200ca1mov rbx, rdi
    00200ca4mov edi, 16
    00200ca9call caml_stat_alloc
    00200caemov [rax], rbx
    00200cb1mov rdx, rax
    00200cb4mov rax, [rip+0x1778f1]
    00200cbbmov [rdx+8], rax
    00200cbf
    00200cbfloc_200cbf:
    00200cbflock cmpxchg [rip+0x1778e4], rdx
    00200cc8jne 0x200cbf
    00200ccapop rbx
    00200ccbret
    00200cccdb 0x75
    00200ccdint 1
    00200ccepop rbx
    00200ccfret
    00200ca0
    00200cd0
    00200cd0caml_find_custom_operations:
    00200cd0push r12
    00200cd2push rbp
    00200cd3push rbx
    00200cd4mov rbx, [rip+0x1778d1]
    00200cdbtest rbx, rbx
    00200cdeje 0x200d18
    00200ce0mov r12, rdi
    00200ce3jmp 0x200cf9
    00200ce5db 0x89
    00200ce6cld
    00200ce7jmp 0x200cf9
    00200ce9
    00200ce9 0f 1f 80 00 00 00 00 .......
    00200cf0
    00200cf0loc_200cf0:
    00200cf0mov rbx, [rbx+8]
    00200cf4test rbx, rbx
    00200cf7je 0x200d18
    00200cf9
    00200cf9loc_200cf9:
    00200cf9mov rbp, [rbx]
    00200cfcmov rsi, r12
    00200cffmov rdi, [rbp]
    00200d03call fn_f45a0
    00200d08test eax, eax
    00200d0ajne 0x200cf0
    00200d0cmov rax, rbp
    00200d0fpop rbx
    00200d10pop rbp
    00200d11pop r12
    00200d13ret
    00200d14
    00200d14 0f 1f 40 00 ..@.
    00200d18
    00200d18loc_200d18:
    00200d18xor ebp, ebp
    00200d1apop rbx
    00200d1bmov rax, rbp
    00200d1epop rbp
    00200d1fpop r12
    00200d21ret
    00200cd0
    00200d22
    00200d22 // align 0x20
    00200d40
    00200d40caml_final_custom_operations:
    00200d40push rbp
    00200d41mov rbp, rdi
    00200d44push rbx
    00200d45sub rsp, 8
    00200d49mov rax, [rip+0x177854]
    00200d50test rax, rax
    00200d53jne 0x200d69
    00200d55jmp 0x200d80
    00200d57db 0x75
    00200d58adc bl, ch
    00200d5adb 0x25
    00200d5b
    00200d5b 0f 1f 44 00 00 ..D..
    00200d60
    00200d60loc_200d60:
    00200d60mov rax, [rax+8]
    00200d64test rax, rax
    00200d67je 0x200d80
    00200d69
    00200d69loc_200d69:
    00200d69mov rbx, [rax]
    00200d6ccmp [rbx+8], rbp
    00200d70jne 0x200d60
    00200d72add rsp, 8
    00200d76mov rax, rbx
    00200d79pop rbx
    00200d7apop rbp
    00200d7bret
    00200d7c
    00200d7c 0f 1f 40 00 ..@.
    00200d80
    00200d80loc_200d80:
    00200d80mov edi, 64
    00200d85call caml_stat_alloc
    00200d8amov edi, 16
    00200d8fmov rbx, rax
    00200d92lea rax, [rip+0x2e00c]
    00200d99mov [rbx], rax
    00200d9cmov [rbx+8], rbp
    00200da0mov [rbx+16], 0
    00200da8mov [rbx+24], 0
    00200db0mov [rbx+32], 0
    00200db8mov [rbx+40], 0
    00200dc0mov [rbx+48], 0
    00200dc8mov [rbx+56], 0
    00200dd0call caml_stat_alloc
    00200dd5mov [rax], rbx
    00200dd8mov rdx, rax
    00200ddbmov rax, [rip+0x1777c6]
    00200de2
    00200de2loc_200de2:
    00200de2mov [rdx+8], rax
    00200de6lock cmpxchg [rip+0x1777b9], rdx
    00200defjne 0x200de2
    00200df1add rsp, 8
    00200df5mov rax, rbx
    00200df8pop rbx
    00200df9pop rbp
    00200dfaret
    00200d40
    00200dfb
    00200dfb // align 0x10
    00200e00
    00200e00caml_init_custom_operations:
    00200e00sub rsp, 8
    00200e04mov edi, 16
    00200e09call caml_stat_alloc
    00200e0emov rdx, rax
    00200e11lea rax, [rip+0x74aa4]
    00200e18mov [rdx], rax
    00200e1bmov rax, [rip+0x17778a]
    00200e22mov [rdx+8], rax
    00200e26
    00200e26loc_200e26:
    00200e26lock cmpxchg [rip+0x17777d], rdx
    00200e2fjne 0x200e26
    00200e31mov edi, 16
    00200e36call caml_stat_alloc
    00200e3bmov rdx, rax
    00200e3elea rax, [rip+0x749f7]
    00200e45mov [rdx], rax
    00200e48mov rax, [rip+0x17775d]
    00200e4fmov [rdx+8], rax
    00200e53
    00200e53loc_200e53:
    00200e53lock cmpxchg [rip+0x177750], rdx
    00200e5cjne 0x200e53
    00200e5emov edi, 16
    00200e63call caml_stat_alloc
    00200e68mov rdx, rax
    00200e6blea rax, [rip+0x74a0a]
    00200e72mov [rdx], rax
    00200e75mov rax, [rip+0x177730]
    00200e7cmov [rdx+8], rax
    00200e80
    00200e80loc_200e80:
    00200e80lock cmpxchg [rip+0x177723], rdx
    00200e89jne 0x200e80
    00200e8bmov edi, 16
    00200e90call caml_stat_alloc
    00200e95mov rdx, rax
    00200e98lea rax, [rip+0x7495d]
    00200e9fmov [rdx], rax
    00200ea2mov rax, [rip+0x177703]
    00200ea9mov [rdx+8], rax
    00200ead
    00200eadloc_200ead:
    00200eadlock cmpxchg [rip+0x1776f6], rdx
    00200eb6jne 0x200ead
    00200eb8add rsp, 8
    00200ebcret
    00200ebddb 0x83
    00200ebedb 0xc4
    00200ebfor bl, al
    00200e00