File hevea_f46f610a6b0078f4aa208dda361f21de574cc56ad64b32889301afc466d33979.elf
Function:
    00224c60
    00224c60caml_ephe_check_key:
    00224c60sar rsi, 1
    00224c63cmp rsi, -2
    00224c67jae 0x224c86
    00224c69mov rax, [rdi-8]
    00224c6dlea rdx, [rsi+2]
    00224c71shr rax, 10
    00224c75cmp rdx, rax
    00224c78jae 0x224c86
    00224c7amov rsi, rdx
    00224c7djmp 0x2244f0
    00224c82push rax
    00224c83lea rdi, [rip+43498]
    00224c8acall caml_invalid_argument
    00224c8fdb 0x6d
    00224c90db 0x1d
    00224c91db 0xfe
    00224c92db 0xff
    00224c60
    00224c93
    00224c93 // align 0x10
    00224ca0
    00224ca0caml_weak_check:
    00224ca0sar rsi, 1
    00224ca3cmp rsi, -2
    00224ca7jae 0x224cc6
    00224ca9mov rax, [rdi-8]
    00224cadlea rdx, [rsi+2]
    00224cb1shr rax, 10
    00224cb5cmp rdx, rax
    00224cb8jae 0x224cc6
    00224cbamov rsi, rdx
    00224cbdjmp 0x2244f0
    00224cc2push rax
    00224cc3lea rdi, [rip+43434]
    00224ccacall caml_invalid_argument
    00224ccfdb 0x2d
    00224cd0db 0x1d
    00224cd1db 0xfe
    00224cd2db 0xff
    00224ca0
    00224cd3
    00224cd3 // align 0x10
    00224ce0
    00224ce0caml_ephe_check_data:
    00224ce0push rbp
    00224ce1push rbx
    00224ce2sub rsp, 168
    00224ce9mov rax, [0x28]
    00224cf2mov [rsp+152], rax
    00224cfaxor eax, eax
    00224cfcmov rax, [rip+0x512e1]
    00224d03mov [rsp], rdi
    00224d07cmp [rip+0x153d4e], 2
    00224d0emov rbx, [rax]
    00224d12mov eax, 1
    00224d17mov [rsp+40], rsp
    00224d1cmov [rsp+8], 1
    00224d25movq x0, rax
    00224d2alea rax, [rsp+16]
    00224d2fmov rbp, [rbx+160]
    00224d36mov [rsp+80], rax
    00224d3bpunpcklqdq x0, x0
    00224d3flea rax, [rsp+80]
    00224d44mov [rbx+160], rax
    00224d4blea rax, [rsp+8]
    00224d50mov [rsp+16], rbp
    00224d55mov [rsp+104], rax
    00224d5amovups [rsp+24], x0
    00224d5fmovups [rsp+88], x0
    00224d64je 0x224da8
    00224d66mov rax, [rdi+8]
    00224d6a
    00224d6aloc_224d6a:
    00224d6amov [rbx+160], rbp
    00224d71cmp rax, [rip+0x1536d4]
    00224d78setne al
    00224d7bmovzx eax, al
    00224d7elea rax, [rax+rax+1]
    00224d83mov rdx, [rsp+152]
    00224d8bsub rdx, [0x28]
    00224d94jne 0x224db3
    00224d96add rsp, 168
    00224d9dpop rbx
    00224d9epop rbp
    00224d9fret
    00224da0db 0x00
    00224da1pop rbx
    00224da2pop rbp
    00224da3ret
    00224da4
    00224da4 0f 1f 40 00 ..@.
    00224da8
    00224da8loc_224da8:
    00224da8call fn_223e20
    00224dadmov rdi, [rsp]
    00224db1jmp 0x224d6a
    00224db3
    00224db3loc_224db3:
    00224db3call fn_f4590
    00224ce0
    00224db8
    00224db8 // align 0x10
    00224dc0
    00224dc0caml_ephe_blit_key:
    00224dc0sar rcx, 1
    00224dc3sar rsi, 1
    00224dc6add rcx, 2
    00224dcasar r8, 1
    00224dcdcmp rsi, -2
    00224dd1jae 0x224e0b
    00224dd3mov rax, [rdi-8]
    00224dd7lea r9, [rsi+2]
    00224ddblea rsi, [r9+r8]
    00224ddfshr rax, 10
    00224de3cmp rax, rsi
    00224de6jb 0x224e0b
    00224de8cmp rcx, 1
    00224decjbe 0x224e0b
    00224deemov rax, [rdx-8]
    00224df2lea rsi, [rcx+r8]
    00224df6shr rax, 10
    00224dfacmp rax, rsi
    00224dfdjb 0x224e0b
    00224dffmov rsi, r9
    00224e02jmp 0x2245d0
    00224e07sub rsp, 8
    00224e0b
    00224e0bloc_224e0b:
    00224e0blea rdi, [rip+43117]
    00224e12call caml_invalid_argument
    00224e17db 0xe5
    00224e18sbb edi, esi
    00224e1adb 0xff
    00224dc0
    00224e1b
    00224e1b // align 0x10
    00224e20
    00224e20caml_ephe_blit_data:
    00224e20push rbx
    00224e21mov rdx, rsi
    00224e24mov rbx, rsi
    00224e27mov r8l, 1
    00224e2dmov ecx, 1
    00224e32mov esi, 1
    00224e37call fn_2245d0
    00224e3cmov rsi, [rbx+8]
    00224e40xor edx, edx
    00224e42xor edi, edi
    00224e44call caml_darken
    00224e49mov eax, 1
    00224e4epop rbx
    00224e4fret
    00224e50db 0x00
    00224e51add [rbx-61], bl
    00224e20
    00224e54
    00224e54 // align 0x10
    00224e60
    00224e60caml_weak_blit:
    00224e60jmp 0x224dc0
    00224e65db 0x57
    00224e66db 0xff
    00224e67db 0xff
    00224e68db 0xff
    00224e60
    00224e69
    00224e69 // align 0x10
    00224e70
    00224e70fn_224e70:
    00224e70push r14
    00224e72push r13
    00224e74push r12
    00224e76push rbp
    00224e77mov rbp, rdi
    00224e7apush rbx
    00224e7bsub rsp, 96
    00224e7fmov rax, [rip+0x51162]
    00224e86mov rbx, [0x28]
    00224e8fmov [rsp+88], rbx
    00224e94mov rbx, rsi
    00224e97xor esi, esi
    00224e99mov r12, [rax]
    00224e9dlea rax, [rsp+16]
    00224ea2mov [rsp+8], 1
    00224eabmov r13, [r12+160]
    00224eb3mov [r12+160], rax
    00224ebbmov eax, 1
    00224ec0movq x0, rax
    00224ec5lea rax, [rsp+8]
    00224ecapunpcklqdq x0, x0
    00224ecemov rdi, rbx
    00224ed1mov [rsp+16], r13
    00224ed6mov [rsp+40], rax
    00224edbmovups [rsp+24], x0
    00224ee0call caml_alloc
    00224ee5mov [rsp+8], rax
    00224eeatest rbx, rbx
    00224eedje 0x224f23
    00224eefxor r14l, r14l
    00224ef2xor edx, edx
    00224ef4jmp 0x224f05
    00224ef6
    00224ef6 66 2e 0f 1f 84 00 00 00 00 00 f.........
    00224f00
    00224f00loc_224f00:
    00224f00mov rax, [rsp+8]
    00224f05
    00224f05loc_224f05:
    00224f05mov rsi, [rbp+8*rdx]
    00224f0alea rdi, [rax+8*rdx]
    00224f0eadd r14l, 1
    00224f12or rsi, 1
    00224f16call caml_modify
    00224f1bmovsxd rdx, r14l
    00224f1ecmp rdx, rbx
    00224f21jb 0x224f00
    00224f23
    00224f23loc_224f23:
    00224f23mov rdi, rbp
    00224f26call caml_stat_free
    00224f2bmov [r12+160], r13
    00224f33mov rax, [rsp+8]
    00224f38mov rdx, [rsp+88]
    00224f3dsub rdx, [0x28]
    00224f46jne 0x224f55
    00224f48add rsp, 96
    00224f4cpop rbx
    00224f4dpop rbp
    00224f4epop r12
    00224f50pop r13
    00224f52pop r14
    00224f54ret
    00224f55
    00224f55loc_224f55:
    00224f55call fn_f4590
    00224e70
    00224f5a
    00224f5a // align 0x10
    00224f60
    00224f60fn_224f60:
    00224f60push r15
    00224f62mov r15, rdx
    00224f65push r14
    00224f67push r13
    00224f69push r12
    00224f6bxor r12l, r12l
    00224f6epush rbp
    00224f6fpush rbx
    00224f70mov rbx, rdi
    00224f73sub rsp, 88
    00224f77mov r14, [r8]
    00224f7amov [rsp], rsi
    00224f7emov [rsp+32], rcx
    00224f83mov [rsp+40], r8
    00224f88mov r13, [0x28]
    00224f91mov [rsp+72], r13
    00224f96mov r13, [rcx]
    00224f99call caml_get_frame_descrs
    00224f9elea rdx, [rsp+64]
    00224fa3mov rdi, rbx
    00224fa6mov rbp, rax
    00224fa9lea rax, [rsp+56]
    00224faemov [rsp+24], rdx
    00224fb3mov rsi, rax
    00224fb6mov [rsp+16], rax
    00224fbbcall caml_get_stack_sp_pc
    00224fc0cmp [rsp], 0
    00224fc5je 0x225057
    00224fcbnop [rax+rax]
    00224fd0
    00224fd0loc_224fd0:
    00224fd0mov rsi, [rsp+64]
    00224fd5jmp 0x22501b
    00224fd7
    00224fd7 66 0f 1f 84 00 00 00 00 00 f........
    00224fe0
    00224fe0loc_224fe0:
    00224fe0movzx ecx, [rax+8]
    00224fe4mov rax, [rsp+56]
    00224fe9cmp cx, -1
    00224fedjne 0x225090
    00224ff3mov rcx, [rbx+16]
    00224ff7lea rdx, [rax+32]
    00224ffbmov [rsp+56], rdx
    00225000cmp rdx, rcx
    00225003je 0x2250c0
    00225009mov rsi, [rax+32]
    0022500dlea rdx, [rax+40]
    00225011mov [rsp+56], rdx
    00225016mov [rsp+64], rsi
    0022501b
    0022501bloc_22501b:
    0022501bmov rdi, rbp
    0022501ecall caml_find_frame_descr
    00225023mov rdx, rax
    00225026test rax, rax
    00225029jne 0x224fe0
    0022502bmov rcx, [rbx+16]
    0022502f
    0022502floc_22502f:
    0022502fmov rbx, [rcx+24]
    00225033test rbx, rbx
    00225036je 0x225057
    00225038mov rdx, [rsp+24]
    0022503dmov rsi, [rsp+16]
    00225042mov rdi, rbx
    00225045call caml_get_stack_sp_pc
    0022504a
    0022504aloc_22504a:
    0022504amov rax, [rsp]
    0022504ecmp r12, rax
    00225051jb 0x224fd0
    00225057
    00225057loc_225057:
    00225057mov rax, [rsp+40]
    0022505cmov [rax], r14
    0022505fmov rax, [rsp+32]
    00225064mov [rax], r13
    00225067
    00225067loc_225067:
    00225067mov rax, [rsp+72]
    0022506csub rax, [0x28]
    00225075jne 0x225190
    0022507badd rsp, 88
    0022507fmov rax, r12
    00225082pop rbx
    00225083pop rbp
    00225084pop r12
    00225086pop r13
    00225088pop r14
    0022508apop r15
    0022508cret
    0022508d
    0022508d 0f 1f 00 ...
    00225090
    00225090loc_225090:
    00225090and ecx, 65532
    00225096add rax, rcx
    00225099mov [rsp+56], rax
    0022509emov rax, [rax-8]
    002250a2mov [rsp+64], rax
    002250a7cmp r14, r12
    002250aaje 0x225118
    002250ac
    002250acloc_2250ac:
    002250actest r15, r15
    002250afjns 0x2250d0
    002250b1
    002250b1loc_2250b1:
    002250b1mov [r13+8*r12], rdx
    002250b6add r12, 1
    002250bajmp 0x22504a
    002250bc
    002250bc 0f 1f 40 00 ..@.
    002250c0
    002250c0loc_2250c0:
    002250c0mov [rsp+64], 0
    002250c9jmp 0x22502f
    002250ce
    002250ce 66 90 f.
    002250d0
    002250d0loc_2250d0:
    002250d0movzx ecx, [rdx+8]
    002250d4test cl, 1
    002250d7je 0x225184
    002250ddmovzx eax, [rdx+10]
    002250e1and ecx, 2
    002250e4lea rax, [rdx+2*rax+12]
    002250e9je 0x225178
    002250efmovzx ecx, [rax]
    002250f2lea rax, [rax+rcx+4]
    002250f7and rax, -4
    002250fblea rax, [rax+4*r15]
    002250ffmov ecx, [rax]
    00225101test ecx, ecx
    00225103je 0x225184
    00225105
    00225105loc_225105:
    00225105lea rdx, [rax+rcx+2]
    0022510amov r15, -1
    00225111jmp 0x2250b1
    00225113
    00225113 0f 1f 44 00 00 ..D..
    00225118
    00225118loc_225118:
    00225118test r14, r14
    0022511bje 0x225168
    0022511dmov rsi, r14
    00225120add r14, r14
    00225123shl rsi, 4
    00225127
    00225127loc_225127:
    00225127mov rdi, r13
    0022512amov [rsp+8], rdx
    0022512fcall caml_stat_resize_noexc
    00225134mov rdx, [rsp+8]
    00225139test rax, rax
    0022513cmov r13, rax
    0022513fjne 0x2250ac
    00225145mov rax, [rsp+32]
    0022514axor r12l, r12l
    0022514dmov [rax], 0
    00225154mov rax, [rsp+40]
    00225159mov [rax], 0
    00225160jmp 0x225067
    00225165
    00225165 0f 1f 00 ...
    00225168
    00225168loc_225168:
    00225168mov esi, 128
    0022516dmov r14l, 16
    00225173jmp 0x225127
    00225175
    00225175 0f 1f 00 ...
    00225178
    00225178loc_225178:
    00225178add rax, 3
    0022517cand rax, -4
    00225180mov ecx, [rax]
    00225182jmp 0x225105
    00225184
    00225184loc_225184:
    00225184mov r15, -1
    0022518bjmp 0x2250b1
    00225190
    00225190loc_225190:
    00225190call fn_f4590
    00224f60
    00225195
    00225195 // align 0x10
    002251a0
    002251a0caml_next_frame_descriptor:
    002251a0push r13
    002251a2mov r13, rdx
    002251a5push r12
    002251a7mov r12, rcx
    002251aapush rbp
    002251abmov rbp, rdi
    002251aepush rbx
    002251afmov rbx, rsi
    002251b2sub rsp, 8
    002251b6mov rsi, [rsi]
    002251b9jmp 0x2251ec
    002251bbdb 0x8b
    002251bcjmp 0x2251ec
    002251bf
    002251bf 90 .
    002251c0
    002251c0loc_2251c0:
    002251c0movzx ecx, [rax+8]
    002251c4mov rdx, [r13]
    002251c8cmp cx, -1
    002251ccjne 0x225210
    002251celea rax, [rdx+32]
    002251d2mov [r13], rax
    002251d6cmp rax, [r12+16]
    002251dbje 0x225230
    002251ddlea rax, [rdx+40]
    002251e1mov [r13], rax
    002251e5mov rsi, [rdx+32]
    002251e9mov [rbx], rsi
    002251ec
    002251ecloc_2251ec:
    002251ecmov rdi, rbp
    002251efcall caml_find_frame_descr
    002251f4test rax, rax
    002251f7jne 0x2251c0
    002251f9
    002251f9loc_2251f9:
    002251f9add rsp, 8
    002251fdxor eax, eax
    002251ffpop rbx
    00225200pop rbp
    00225201pop r12
    00225203pop r13
    00225205ret
    00225206
    00225206 66 2e 0f 1f 84 00 00 00 00 00 f.........
    00225210
    00225210loc_225210:
    00225210and ecx, 65532
    00225216add rdx, rcx
    00225219mov [r13], rdx
    0022521dmov rdx, [rdx-8]
    00225221mov [rbx], rdx
    00225224add rsp, 8
    00225228pop rbx
    00225229pop rbp
    0022522apop r12
    0022522cpop r13
    0022522eret
    0022522f
    0022522f 90 .
    00225230
    00225230loc_225230:
    00225230mov [rbx], 0
    00225237jmp 0x2251f9
    002251a0
    00225239
    00225239 // align 0x10
    00225240
    00225240caml_alloc_backtrace_buffer:
    00225240push rbp
    00225241mov edi, 8192
    00225246push rbx
    00225247sub rsp, 8
    0022524bmov rbx, [rip+0x50d92]
    00225252mov rbp, [rbx]
    00225256call caml_stat_alloc_noexc
    0022525bmov [rbp+200], rax
    00225262mov rax, [rbx]
    00225266cmp [rax+200], 1
    0022526esbb eax, eax
    00225270add rsp, 8
    00225274pop rbx
    00225275pop rbp
    00225276ret
    00225277db 0x08
    00225278pop rbx
    00225279pop rbp
    0022527aret
    00225240
    0022527b
    0022527b // align 0x10
    00225280
    00225280caml_free_backtrace_buffer:
    00225280test rdi, rdi
    00225283je 0x225290
    00225285jmp 0x216690
    0022528adb 0x02
    0022528badc al, -1
    0022528ddb 0xff
    0022528e
    0022528e 66 90 f.
    00225290
    00225290loc_225290:
    00225290ret
    00225280
    00225291
    00225291 // align 0x10
    002252a0
    002252a0caml_stash_backtrace:
    002252a0push r15
    002252a2mov r15, rsi
    002252a5push r14
    002252a7mov r14, rdx
    002252aapush r13
    002252acmov r13, rcx
    002252afpush r12
    002252b1push rbp
    002252b2push rbx
    002252b3sub rsp, 8
    002252b7mov rbx, [rip+0x50d26]
    002252bemov r12, [rbx]
    002252c2mov rbp, r12
    002252c5cmp [r12+208], rdi
    002252cdje 0x2252f6
    002252cfmov [r12+184], 0
    002252dblea rax, [r12+208]
    002252e3mov rsi, rdi
    002252e6mov rdi, rax
    002252e9call caml_modify_generational_global_root
    002252eemov rbp, [rbx]
    002252f2cmp [rbp+200], 0
    002252faje 0x2253ae
    00225300call caml_get_frame_descrs
    00225305mov rbx, rax
    00225308nop [rax]
    0022530cmov rbp, [r12+40]
    00225311jmp 0x22533c
    00225313db 0x24
    00225314sub bl, ch
    00225316db 0x25
    00225317
    00225317 66 0f 1f 84 00 00 00 00 00 f........
    00225320
    00225320loc_225320:
    00225320movzx edx, [rax+8]
    00225324cmp dx, -1
    00225328jne 0x225360
    0022532alea rax, [r14+32]
    0022532ecmp [rbp+16], rax
    00225332je 0x22534c
    00225334mov r15, [r14+32]
    00225338add r14, 40
    0022533c
    0022533cloc_22533c:
    0022533cmov rsi, r15
    0022533fmov rdi, rbx
    00225342call caml_find_frame_descr
    00225347test rax, rax
    0022534ajne 0x225320
    0022534c
    0022534cloc_22534c:
    0022534cadd rsp, 8
    00225350pop rbx
    00225351pop rbp
    00225352pop r12
    00225354pop r13
    00225356pop r14
    00225358pop r15
    0022535aret
    0022535b
    0022535b 0f 1f 44 00 00 ..D..
    00225360
    00225360loc_225360:
    00225360and edx, 65532
    00225366add r14, rdx
    00225369mov rdx, [r12+184]
    00225371mov r15, [r14-8]
    00225375cmp rdx, 1023
    0022537cjg 0x22534c
    0022537emov rcx, [r12+200]
    00225386lea rsi, [rdx+1]
    0022538amov [r12+184], rsi
    00225392mov [rcx+8*rdx], rax
    00225396cmp r13, r14
    00225399jae 0x225310
    0022539fadd rsp, 8
    002253a3pop rbx
    002253a4pop rbp
    002253a5pop r12
    002253a7pop r13
    002253a9pop r14
    002253abpop r15
    002253adret
    002253ae
    002253aeloc_2253ae:
    002253aemov edi, 8192
    002253b3call caml_stat_alloc_noexc
    002253b8mov [rbp+200], rax
    002253bfmov rax, [rbx]
    002253c3cmp [rax+200], 0
    002253cbjne 0x225304
    002253d1jmp 0x22534c
    002252a0
    002253d6
    002253d6 // align 0x10
    002253e0
    002253e0caml_get_callstack:
    002253e0mov rax, [rip+0x50bfd]
    002253e7mov r8, rdx
    002253eamov rdx, rcx
    002253edmov rcx, rsi
    002253f0mov rsi, rdi
    002253f3mov rax, [rax]
    002253f7mov rax, [rax+40]
    002253fbmov rdi, rax
    002253fejmp 0x224f60
    00225403db 0x59
    00225404sti
    00225405db 0xff
    00225406db 0xff
    002253e0
    00225407
    00225407 // align 0x10
    00225410
    00225410caml_get_current_callstack:
    00225410sub rsp, 40
    00225414mov rsi, rdi
    00225417mov rdx, -1
    0022541emov rax, [0x28]
    00225427mov [rsp+24], rax
    0022542cxor eax, eax
    0022542esar rsi, 1
    00225431lea rcx, [rsp+8]
    00225436lea r8, [rsp+16]
    0022543bmov [rsp+8], 0
    00225444mov rax, [rip+0x50b99]
    0022544bmov [rsp+16], 0
    00225454mov rax, [rax]
    00225458mov rdi, [rax+40]
    0022545ccall fn_224f60
    00225461mov rsi, rax
    00225464mov rax, [rsp+24]
    00225469sub rax, [0x28]
    00225472jne 0x225486
    00225474mov rdi, [rsp+8]
    00225479add rsp, 40
    0022547djmp 0x224e70
    00225482call fn_f4590
    00225487db 0x05
    00225488int 1
    00225489in al, dx
    0022548adb 0xff
    00225410
    0022548b
    0022548b // align 0x10
    00225490
    00225490caml_get_continuation_callstack:
    00225490push r12
    00225492push rbp
    00225493push rbx
    00225494mov rbx, rdi
    00225497sub rsp, 32
    0022549bmov r12, [0x28]
    002254a4mov [rsp+24], r12
    002254a9mov r12, rsi
    002254acmov [rsp+8], 0
    002254b5mov [rsp+16], 0
    002254becall caml_continuation_use
    002254c3lea rcx, [rsp+8]
    002254c8lea r8, [rsp+16]
    002254cdmov rdx, -1
    002254d4lea rbp, [rax-1]
    002254d8mov rdi, rbp
    002254dbmov rsi, r12
    002254decall fn_224f60
    002254e3mov rsi, rbp
    002254e6mov rdi, rbx
    002254e9mov r12, rax
    002254eccall caml_continuation_replace
    002254f1mov rax, [rsp+24]
    002254f6sub rax, [0x28]
    002254ffjne 0x22551a
    00225501mov rdi, [rsp+8]
    00225506add rsp, 32
    0022550amov rsi, r12
    0022550dpop rbx
    0022550epop rbp
    0022550fpop r12
    00225511jmp 0x224e70
    00225516call fn_f4590
    0022551bdb 0x71
    0022551cdb 0xf0
    0022551din al, dx
    0022551edb 0xff
    00225490
    0022551f
    0022551f // align 0x10
    00225520
    00225520caml_debuginfo_extract:
    00225520test dil, 2
    00225524je 0x225530
    00225526lea rax, [rdi-2]
    0022552aret
    0022552bdb 0x8d
    0022552cinc r11b
    0022552f
    0022552f 90 .
    00225530
    00225530loc_225530:
    00225530movzx edx, [rdi+8]
    00225534test dl, 1
    00225537je 0x225580
    00225539movzx eax, [rdi+10]
    0022553dand edx, 2
    00225540lea rax, [rdi+2*rax+12]
    00225545je 0x225570
    00225547movzx edx, [rax]
    0022554alea rax, [rax+rdx+4]
    0022554fand rax, -4
    00225553mov edx, [rax]
    00225555test edx, edx
    00225557jne 0x22557a
    00225559nop [rax]
    00225560
    00225560loc_225560:
    00225560mov edx, [rax+4]
    00225563add rax, 4
    00225567test edx, edx
    00225569je 0x225560
    0022556badd rax, rdx
    0022556eret
    0022556f
    0022556f 90 .
    00225570
    00225570loc_225570:
    00225570add rax, 3
    00225574and rax, -4
    00225578mov edx, [rax]
    0022557a
    0022557aloc_22557a:
    0022557aadd rax, rdx
    0022557dret
    0022557e
    0022557e 66 90 f.
    00225580
    00225580loc_225580:
    00225580xor eax, eax
    00225582ret
    00225520
    00225583
    00225583 // align 0x10
    00225590
    00225590caml_debuginfo_next:
    00225590test rdi, rdi
    00225593je 0x2255b0
    00225595xor edx, edx
    00225597lea rax, [rdi+8]
    0022559btest [rdi], 1
    0022559ecmove rax, rdx
    002255a2ret
    002255a3db 0x0f
    002255a4db 0x44
    002255a5db 0xc2
    002255a6ret
    002255a7
    002255a7 66 0f 1f 84 00 00 00 00 00 f........
    002255b0
    002255b0loc_2255b0:
    002255b0xor eax, eax
    002255b2ret
    00225590
    002255b3
    002255b3 // align 0x10
    002255c0
    002255c0caml_debuginfo_location:
    002255c0mov rdx, rsi
    002255c3test rdi, rdi
    002255c6je 0x2256b0
    002255ccmov esi, [rdi]
    002255cemov eax, [rdi+4]
    002255d1mov [rdx], 1
    002255d7mov ecx, esi
    002255d9mov r8l, esi
    002255dcand esi, 0x3fffffc
    002255e2shr ecx, 1
    002255e4shr r8l, 26
    002255e8and ecx, 1
    002255ebmov [rdx+4], ecx
    002255eemov ecx, [rdi]
    002255f0add rdi, rsi
    002255f3and ecx, 1
    002255f6mov [rdx+44], ecx
    002255f9mov ecx, eax
    002255fbshl ecx, 6
    002255fetest eax, eax
    00225600js 0x225670
    00225602lea rsi, [rdi+4]
    00225606mov r9l, eax
    00225609and ecx, 448
    0022560fmov [rdx+16], rsi
    00225613movsxd rsi, [rdi]
    00225616shr r9l, 10
    0022561aor ecx, r8l
    0022561dand r9l, 63
    00225621add rdi, rsi
    00225624mov esi, eax
    00225626movd x3, r9l
    0022562bmov [rdx+8], rdi
    0022562fmov edi, eax
    00225631shr eax, 16
    00225634shr esi, 19
    00225637shr edi, 3
    0022563aand eax, 7
    0022563dand edi, 127
    00225640add eax, esi
    00225642movd x1, esi
    00225646movd x0, eax
    0022564amovd x2, edi
    0022564epunpckldq x1, x3
    00225652add ecx, edi
    00225654punpckldq x0, x2
    00225658mov [rdx+40], ecx
    0022565bpunpcklqdq x1, x0
    0022565fmovups [rdx+24], x1
    00225663ret
    00225664db 0x11
    00225665sbb bl, al
    00225668
    00225668 0f 1f 84 00 00 00 00 00 ........
    00225670
    00225670loc_225670:
    00225670lea rsi, [rdi+12]
    00225674shr eax, 12
    00225677and ecx, 0x3ffc0
    0022567dmov [rdx+16], rsi
    00225681movsxd rsi, [rdi]
    00225684and eax, 0x7ffff
    00225689or ecx, r8l
    0022568cmov [rdx+24], eax
    0022568fadd eax, ecx
    00225691add rsi, rdi
    00225694mov [rdx+32], eax
    00225697mov [rdx+8], rsi
    0022569bmovzx eax, [rdi+4]
    0022569fmov [rdx+28], eax
    002256a2movzx eax, [rdi+6]
    002256a6mov [rdx+36], eax
    002256a9mov eax, [rdi+8]
    002256acmov [rdx+40], eax
    002256afret
    002256b0
    002256b0loc_2256b0:
    002256b0mov rax, [rip+20913]
    002256b7mov [rsi+44], 0
    002256bemov [rsi], rax
    002256c1ret
    002255c0
    002256c2
    002256c2 // align 0x10
    002256d0
    002256d0caml_add_debug_info:
    002256d0mov eax, 1
    002256d5ret
    002256d6db 0x00
    002256d7add [rax], al
    002256d9ret
    002256d0
    002256da
    002256da // align 0x10
    002256e0
    002256e0caml_remove_debug_info:
    002256e0mov eax, 1
    002256e5ret
    002256e6db 0x00
    002256e7add [rax], al
    002256e9ret
    002256e0
    002256ea
    002256ea // align 0x10
    002256f0
    002256f0caml_debug_info_available:
    002256f0mov eax, 1
    002256f5ret
    002256f6db 0x00
    002256f7add [rax], al
    002256f9ret
    002256f0
    002256fa
    002256fa // align 0x10
    00225700
    00225700caml_debug_info_status:
    00225700mov eax, 1
    00225705ret
    00225706db 0x00
    00225707add [rax], al
    00225709ret
    00225700
    0022570a
    0022570a // align 0x10
    00225710
    00225710caml_natdynlink_getmap:
    00225710mov esi, 0x7fffffff
    00225715lea rdi, [rip+0x50e80]
    0022571cjmp 0x20c4f0
    00225721db 0xcb
    00225722insd [rdi], dx
    00225723db 0xfe
    00225724db 0xff
    00225710
    00225725
    00225725 // align 0x10
    00225730
    00225730caml_natdynlink_globals_inited:
    00225730mov rax, [rip+0x153a5d]
    00225737lea rax, [rax+rax+1]
    0022573cret
    0022573ddb 0x44
    0022573eadd [rcx], al
    00225740ret
    00225730
    00225741
    00225741 // align 0x10
    00225750
    00225750caml_natdynlink_open:
    00225750push r13
    00225752push r12
    00225754push rbp
    00225755push rbx
    00225756sub rsp, 200
    0022575dmovdqa x0, [rip+18791]
    00225765mov [rsp+8], rdi
    0022576amovq x1, rsp
    0022576fmov [rsp], rsi
    00225773mov rax, [0x28]
    0022577cmov [rsp+184], rax
    00225784mov rax, [rip+0x50859]
    0022578bmov r12, [rax]
    0022578flea rax, [rsp+8]
    00225794movups [rsp+56], x0
    00225799mov [rsp+24], 1
    002257a2movq x0, rax
    002257a7lea rax, [rsp+48]
    002257acpunpcklqdq x0, x1
    002257b0mov [rsp+112], rax
    002257b5lea rax, [rsp+112]
    002257bamov r13, [r12+160]
    002257c2movups [rsp+72], x0
    002257c7movdqa x0, [rip+18701]
    002257cfmov [r12+160], rax
    002257d7lea rax, [rsp+24]
    002257dcmovups [rsp+120], x0
    002257e1movq x0, rax
    002257e6lea rax, [rsp+32]
    002257ebmovq x2, rax
    002257f0lea rax, [rsp+40]
    002257f5mov [rsp+48], r13
    002257fapunpcklqdq x0, x2
    002257femov [rsp+152], rax
    00225806movups [rsp+136], x0
    0022580emov [rsp+32], 1
    00225817mov [rsp+40], 1
    00225820call caml_stat_strdup
    00225825mov rbx, [rsp]
    00225829mov rbp, rax
    0022582ccall caml_enter_blocking_section
    00225831sar rbx, 1
    00225834mov rdi, rbp
    00225837mov esi, ebx
    00225839call caml_dlopen
    0022583emov rbx, rax
    00225841call caml_leave_blocking_section
    00225846mov rdi, rbp
    00225849call caml_stat_free
    0022584etest rbx, rbx
    00225851je 0x2258f2
    00225857lea rsi, [rip+40491]
    0022585emov rdi, rbx
    00225861call caml_dlsym
    00225866mov rbp, rax
    00225869test rax, rax
    0022586cje 0x225904
    00225872mov esi, 251
    00225877mov edi, 1
    0022587ccall caml_alloc_small
    00225881mov esi, 0x7fffffff
    00225886mov rdi, rbp
    00225889mov [rax], rbx
    0022588cmov [rsp+32], rax
    00225891call caml_input_value_from_block
    00225896mov edi, 2
    0022589bmov [rsp+40], rax
    002258a0call caml_alloc_tuple
    002258a5mov rdx, [rsp+32]
    002258aamov [rsp+24], rax
    002258afmov [rax], rdx
    002258b2mov rax, [rsp+24]
    002258b7mov rdx, [rsp+40]
    002258bcmov [rax+8], rdx
    002258c0mov rax, [rsp+24]
    002258c5mov [r12+160], r13
    002258cdmov rdx, [rsp+184]
    002258d5sub rdx, [0x28]
    002258dejne 0x2258ff
    002258e0add rsp, 200
    002258e7pop rbx
    002258e8pop rbp
    002258e9pop r12
    002258ebpop r13
    002258edret
    002258eecall caml_dlerror
    002258f3mov rdi, rax
    002258f6call caml_failwith
    002258fbcall fn_f4590
    00225900lea rdi, [rip+40341]
    00225907call caml_failwith
    0022590cdb 0xb0
    0022590dadc dh, bh
    0022590fdb 0xff
    00225750
    00225910
    00225910caml_natdynlink_register:
    00225910push r15
    00225912push r14
    00225914push r13
    00225916push r12
    00225918push rbp
    00225919push rbx
    0022591asub rsp, 152
    00225921movdqa x0, [rip+18339]
    00225929mov [rsp+56], rdi
    0022592emov [rsp+48], rsi
    00225933mov rax, [0x28]
    0022593cmov [rsp+136], rax
    00225944mov rax, [rip+0x50699]
    0022594bmov rcx, [rax]
    0022594fmovups [rsp+72], x0
    00225954mov rax, [rcx+160]
    0022595bmov [rsp+32], rcx
    00225960mov [rsp+64], rax
    00225965mov [rsp+40], rax
    0022596alea rax, [rsp+64]
    0022596fmov [rcx+160], rax
    00225976lea rax, [rsp+56]
    0022597bmovq x0, rax
    00225980lea rax, [rsp+48]
    00225985movq x1, rax
    0022598apunpcklqdq x0, x1
    0022598emovups [rsp+88], x0
    00225993mov rbp, [rsi-8]
    00225997mov rbx, [rdi]
    0022599ashr rbp, 10
    0022599emovsxd rdi, ebp
    002259a1mov [rsp+28], ebp
    002259a5shl rdi, 3
    002259a9call caml_stat_alloc
    002259aemov r14, rax
    002259b1test ebp, ebp
    002259b3jle 0x225c05
    002259b9lea eax, [rbp-1]
    002259bcmov [rsp], r14
    002259c0xor r9l, r9l
    002259c3lea rbp, [rip+40048]
    002259calea r13, [8*rax+8]
    002259d2mov [rsp+8], rbx
    002259d7lea r12, [rip+40157]
    002259demov rbx, r9
    002259e1mov [rsp+16], r13
    002259e6nop [rax+rax]
    002259ecmov rax, [rsp+48]
    002259f1mov rcx, rbp
    002259f4mov rsi, r12
    002259f7mov edi, 4
    002259fclea r8, [rip+40109]
    00225a03add rax, rbx
    00225a06mov r15, [rax]
    00225a09xor eax, eax
    00225a0bmov rdx, r15
    00225a0ecall caml_stat_strconcat
    00225a13mov rdi, [rsp+8]
    00225a18mov r14, rax
    00225a1bmov rsi, rax
    00225a1ecall caml_dlsym
    00225a23mov rdi, r14
    00225a26mov r13, rax
    00225a29call caml_stat_free
    00225a2emov rax, [rsp]
    00225a32mov [rax+rbx], r13
    00225a36test r13, r13
    00225a39je 0x225c1f
    00225a3fmov rax, [rsp+16]
    00225a44add rbx, 8
    00225a48cmp rbx, rax
    00225a4bjne 0x2259f0
    00225a4dmov r14, [rsp]
    00225a51mov r13, [rsp+16]
    00225a56mov esi, [rsp+28]
    00225a5amov rbx, [rsp+8]
    00225a5fmov rdi, r14
    00225a62call caml_register_frametables
    00225a67mov [rsp], r14
    00225a6bxor r9l, r9l
    00225a6emov [rsp+16], r13
    00225a73mov [rsp+8], rbx
    00225a78mov rbx, r9
    00225a7bnop
    00225a7cmov rax, [rsp+48]
    00225a81mov rcx, rbp
    00225a84mov rsi, r12
    00225a87mov edi, 4
    00225a8clea r8, [rip+39981]
    00225a93add rax, rbx
    00225a96mov r15, [rax]
    00225a99xor eax, eax
    00225a9bmov rdx, r15
    00225a9ecall caml_stat_strconcat
    00225aa3mov rdi, [rsp+8]
    00225aa8mov r14, rax
    00225aabmov rsi, rax
    00225aaecall caml_dlsym
    00225ab3mov rdi, r14
    00225ab6mov r13, rax
    00225ab9call caml_stat_free
    00225abemov rax, [rsp]
    00225ac2mov [rax+rbx], r13
    00225ac6test r13, r13
    00225ac9je 0x225c40
    00225acfmov rax, [rsp+16]
    00225ad4add rbx, 8
    00225ad8cmp rbx, rax
    00225adbjne 0x225a80
    00225addmov r14, [rsp]
    00225ae1mov rbx, [rsp+8]
    00225ae6mov r13, rax
    00225ae9mov esi, [rsp+28]
    00225aedmov rdi, r14
    00225af0call caml_register_dyn_globals
    00225af5mov [rsp], rbx
    00225af9xor r9l, r9l
    00225afcmov [rsp+8], r13
    00225b01mov [rsp+16], r14
    00225b06mov r14, r9
    00225b09nop [rax]
    00225b0cmov rax, [rsp+48]
    00225b11mov rcx, rbp
    00225b14mov rsi, r12
    00225b17mov edi, 4
    00225b1clea r8, [rip+39846]
    00225b23add rax, r14
    00225b26mov rbx, [rax]
    00225b29xor eax, eax
    00225b2bmov rdx, rbx
    00225b2ecall caml_stat_strconcat
    00225b33mov rdi, [rsp]
    00225b37mov r15, rax
    00225b3amov rsi, rax
    00225b3dcall caml_dlsym
    00225b42mov rdi, r15
    00225b45mov r13, rax
    00225b48call caml_stat_free
    00225b4dmov rdx, rbx
    00225b50mov rcx, rbp
    00225b53mov rsi, r12
    00225b56lea r8, [rip+39799]
    00225b5dmov edi, 4
    00225b62xor eax, eax
    00225b64call caml_stat_strconcat
    00225b69mov rdi, [rsp]
    00225b6dmov r15, rax
    00225b70mov rsi, rax
    00225b73call caml_dlsym
    00225b78mov rdi, r15
    00225b7bmov rbx, rax
    00225b7ecall caml_stat_free
    00225b83test r13, r13
    00225b86setne dl
    00225b89test rbx, rbx
    00225b8csetne al
    00225b8ftest dl, al
    00225b91je 0x225bab
    00225b93cmp rbx, r13
    00225b96je 0x225bab
    00225b98xor ecx, ecx
    00225b9axor edx, edx
    00225b9cmov rsi, rbx
    00225b9fmov rdi, r13
    00225ba2call caml_register_code_fragment
    00225ba7mov rax, [rsp+8]
    00225bacadd r14, 8
    00225bb0cmp r14, rax
    00225bb3jne 0x225b10
    00225bb9mov r14, [rsp+16]
    00225bbemov rdi, r14
    00225bc1call caml_stat_free
    00225bc6mov rax, [rsp+32]
    00225bcbmov rcx, [rsp+40]
    00225bd0mov [rax+160], rcx
    00225bd7mov rax, [rsp+136]
    00225bdfsub rax, [0x28]
    00225be8jne 0x225c61
    00225beaadd rsp, 152
    00225bf1mov eax, 1
    00225bf6pop rbx
    00225bf7pop rbp
    00225bf8pop r12
    00225bfapop r13
    00225bfcpop r14
    00225bfepop r15
    00225c00ret
    00225c01mov ebx, [rsp+28]
    00225c05
    00225c05loc_225c05:
    00225c05mov rdi, rax
    00225c08mov esi, ebx
    00225c0acall caml_register_frametables
    00225c0fmov esi, ebx
    00225c11mov rdi, r14
    00225c14call caml_register_dyn_globals
    00225c19jmp 0x225bc2
    00225c1bmov rdi, rax
    00225c1ecall caml_stat_free
    00225c23lea rdi, [rip+47426]
    00225c2amov rsi, r15
    00225c2dxor eax, eax
    00225c2fcall caml_alloc_sprintf
    00225c34mov rdi, rax
    00225c37call caml_invalid_argument_value
    00225c3cmov rdi, rax
    00225c3fcall caml_stat_free
    00225c44lea rdi, [rip+47433]
    00225c4bmov rsi, r15
    00225c4exor eax, eax
    00225c50call caml_alloc_sprintf
    00225c55mov rdi, rax
    00225c58call caml_invalid_argument_value
    00225c5dcall fn_f4590
    00225c62db 0x2a
    00225c63db 0xe9
    00225c64in al, dx
    00225c65db 0xff
    00225910
    00225c66
    00225c66 // align 0x10
    00225c70
    00225c70caml_natdynlink_run:
    00225c70push r13
    00225c72push r12
    00225c74push rbp
    00225c75mov rbp, rsi
    00225c78push rbx
    00225c79sub rsp, 184
    00225c80movdqa x0, [rip+17476]
    00225c88mov [rsp+8], rdi
    00225c8dmovq x1, rsp
    00225c92mov [rsp], rsi
    00225c96mov rax, [0x28]
    00225c9fmov [rsp+168], rax
    00225ca7mov rax, [rip+0x50336]
    00225caemov r12, [rax]
    00225cb2lea rax, [rsp+8]
    00225cb7movups [rsp+40], x0
    00225cbcmov [rsp+16], 1
    00225cc5movq x0, rax
    00225ccalea rax, [rsp+32]
    00225ccfmov [rsp+96], rax
    00225cd4lea rax, [rsp+96]
    00225cd9mov r13, [r12+160]
    00225ce1punpcklqdq x0, x1
    00225ce5mov [r12+160], rax
    00225cedmov eax, 1
    00225cf2movups [rsp+56], x0
    00225cf7movq x0, rax
    00225cfclea rax, [rsp+16]
    00225d01mov [rsp+120], rax
    00225d06mov rax, [rip+0x15347f]
    00225d0dpunpcklqdq x0, x0
    00225d11mov [rsp+32], r13
    00225d16movups [rsp+104], x0
    00225d1bmov rbx, [rdi]
    00225d1etest rax, rax
    00225d21je 0x225d2c
    00225d23mov rdi, rbx
    00225d26call rax
    00225d28mov rdx, rbp
    00225d2blea r8, [rip+39339]
    00225d32xor eax, eax
    00225d34mov edi, 4
    00225d39lea rcx, [rip+39162]
    00225d40lea rsi, [rip+39284]
    00225d47call caml_stat_strconcat
    00225d4cmov rdi, rbx
    00225d4fmov rsi, rax
    00225d52mov rbp, rax
    00225d55call caml_dlsym
    00225d5amov rdi, rbp
    00225d5dmov rbx, rax
    00225d60call caml_stat_free
    00225d65mov [rsp+24], rbx
    00225d6amov eax, 1
    00225d6ftest rbx, rbx
    00225d72je 0x225d84
    00225d74lea rdi, [rsp+24]
    00225d79xor esi, esi
    00225d7bcall caml_callback
    00225d80mov [r12+160], r13
    00225d88mov rdx, [rsp+168]
    00225d90sub rdx, [0x28]
    00225d99jne 0x225dad
    00225d9badd rsp, 184
    00225da2pop rbx
    00225da3pop rbp
    00225da4pop r12
    00225da6pop r13
    00225da8ret
    00225da9call fn_f4590
    00225daedb 0xde
    00225dafout 236, eax
    00225db1db 0xff
    00225c70
    00225db2
    00225db2 // align 0x10
    00225dc0
    00225dc0caml_natdynlink_run_toplevel:
    00225dc0push r13
    00225dc2push r12
    00225dc4push rbp
    00225dc5push rbx
    00225dc6sub rsp, 200
    00225dcdmovdqa x0, [rip+17143]
    00225dd5mov [rsp+8], rdi
    00225ddamovq x1, rsp
    00225ddfmov [rsp], rsi
    00225de3mov rax, [0x28]
    00225decmov [rsp+184], rax
    00225df4mov rax, [rip+0x501e9]
    00225dfbmov r12, [rax]
    00225dfflea rax, [rsp+8]
    00225e04movups [rsp+56], x0
    00225e09mov [rsp+16], 1
    00225e12movq x0, rax
    00225e17lea rax, [rsp+48]
    00225e1cpunpcklqdq x0, x1
    00225e20mov [rsp+112], rax
    00225e25lea rax, [rsp+112]
    00225e2amov r13, [r12+160]
    00225e32movups [rsp+72], x0
    00225e37movdqa x0, [rip+17069]
    00225e3fmov [r12+160], rax
    00225e47lea rax, [rsp+16]
    00225e4cmovups [rsp+120], x0
    00225e51movq x0, rax
    00225e56lea rax, [rsp+24]
    00225e5bmovq x2, rax
    00225e60lea rax, [rsp+32]
    00225e65mov [rsp+48], r13
    00225e6amov [rsp+24], 1
    00225e73punpcklqdq x0, x2
    00225e77movups [rsp+136], x0
    00225e7fmovq x0, rax
    00225e84lea rax, [rsp+40]
    00225e89mov [rsp+32], 1
    00225e92movq x3, rax
    00225e97mov [rsp+40], 1
    00225ea0punpcklqdq x0, x3
    00225ea4movups [rsp+152], x0
    00225eaccall caml_stat_strdup
    00225eb1mov rbx, rax
    00225eb4call caml_enter_blocking_section
    00225eb9mov rdi, rbx
    00225ebcmov esi, 1
    00225ec1call caml_dlopen
    00225ec6mov rbp, rax
    00225ec9call caml_leave_blocking_section
    00225ecemov rdi, rbx
    00225ed1call caml_stat_free
    00225ed6test rbp, rbp
    00225ed9je 0x225f80
    00225edfmov esi, 251
    00225ee4mov edi, 1
    00225ee9call caml_alloc_small
    00225eeexor esi, esi
    00225ef0mov edi, 1
    00225ef5mov [rax], rbp
    00225ef8mov [rsp+32], rax
    00225efdcall caml_alloc_small
    00225f02mov rdx, [rsp]
    00225f06mov [rsp+40], rax
    00225f0bmov [rax], rdx
    00225f0emov rsi, [rsp+40]
    00225f13mov rdi, [rsp+32]
    00225f18call caml_natdynlink_register
    00225f1dxor esi, esi
    00225f1fmov edi, 1
    00225f24call caml_alloc
    00225f29mov rsi, [rsp]
    00225f2dmov rdi, [rsp+32]
    00225f32mov [rsp+16], rax
    00225f37call caml_natdynlink_run
    00225f3cmov rdi, [rsp+16]
    00225f41mov rsi, rax
    00225f44mov [rsp+24], rax
    00225f49call caml_modify
    00225f4emov [r12+160], r13
    00225f56mov rax, [rsp+16]
    00225f5bmov rdx, [rsp+184]
    00225f63sub rdx, [0x28]
    00225f6cjne 0x225fb5
    00225f6eadd rsp, 200
    00225f75pop rbx
    00225f76pop rbp
    00225f77pop r12
    00225f79pop r13
    00225f7bret
    00225f7cmov esi, 1
    00225f81mov edi, 1
    00225f86call caml_alloc
    00225f8bmov [rsp+16], rax
    00225f90call caml_dlerror
    00225f95mov rdi, rax
    00225f98call caml_copy_string
    00225f9dmov rdi, [rsp+16]
    00225fa2mov rsi, rax
    00225fa5mov [rsp+24], rax
    00225faacall caml_modify
    00225fafjmp 0x225f52
    00225fb1call fn_f4590
    00225fb6db 0xd6
    00225fb7in eax, 236
    00225fb9db 0xff
    00225dc0
    00225fba
    00225fba // align 0x10
    00225fc0
    00225fc0caml_natdynlink_loadsym:
    00225fc0push rbp
    00225fc1push rbx
    00225fc2sub rsp, 184
    00225fc9mov [rsp+8], rdi
    00225fcemov rax, [0x28]
    00225fd7mov [rsp+168], rax
    00225fdfmov rax, [rip+0x4fffe]
    00225fe6mov rbx, [rax]
    00225feamov eax, 1
    00225fefmov [rsp+24], 1
    00225ff8movq x0, rax
    00225ffdlea rax, [rsp+8]
    00226002mov [rsp+56], rax
    00226007lea rax, [rsp+32]
    0022600cmov rbp, [rbx+160]
    00226013punpcklqdq x0, x0
    00226017mov [rsp+96], rax
    0022601clea rax, [rsp+96]
    00226021mov [rbx+160], rax
    00226028lea rax, [rsp+24]
    0022602dmov [rsp+32], rbp
    00226032mov [rsp+120], rax
    00226037movups [rsp+40], x0
    0022603cmovups [rsp+104], x0
    00226041call caml_globalsym
    00226046mov [rsp+24], rax
    0022604btest rax, rax
    0022604eje 0x226078
    00226050mov [rbx+160], rbp
    00226057mov rdx, [rsp+168]
    0022605fsub rdx, [0x28]
    00226068jne 0x226082
    0022606aadd rsp, 184
    00226071pop rbx
    00226072pop rbp
    00226073ret
    00226074mov rdi, [rsp+8]
    00226079call caml_failwith
    0022607ecall fn_f4590
    00226083db 0x09
    00226084in eax, 236
    00226086db 0xff
    00225fc0
    00226087
    00226087 // align 0x20
    002260a0
    002260a0caml_raise:
    002260a0push rbp
    002260a1push rbx
    002260a2sub rsp, 24
    002260a6mov rbp, [rip+0x4ff37]
    002260adcmp [rbp], 0
    002260b3je 0x22612d
    002260b5mov rbx, rdi
    002260b8call caml_channel_cleanup_on_raise
    002260bdmov rdi, rbx
    002260c0call caml_process_pending_actions_with_root_res
    002260c5mov rdi, [rbp]
    002260camov rsi, rdx
    002260cdmov rdx, [rdi+64]
    002260d1test rdx, rdx
    002260d4je 0x226119
    002260d6mov rax, [rdi+160]
    002260ddcmp rax, rdx
    002260e0jb 0x22610f
    002260e2jmp 0x226114
    002260e4db 0x72
    002260e5sub ebx, ebp
    002260e7db 0x2c
    002260e8
    002260e8 66 66 2e 0f 1f 84 00 00 ff......
    002260f0 00 00 00 66 66 2e 0f 1f 84 00 00 00 00 00 66 90 ...ff.........f.
    00226100
    00226100loc_226100:
    00226100mov rax, [rax]
    00226103mov [rdi+160], rax
    0022610acmp rax, rdx
    0022610djae 0x226114
    0022610f
    0022610floc_22610f:
    0022610ftest rax, rax
    00226112jne 0x226100
    00226114
    00226114loc_226114:
    00226114call caml_raise_exception
    00226119
    00226119loc_226119:
    00226119mov [rsp+8], rsi
    0022611ecall caml_terminate_signals
    00226123mov rdi, [rsp+8]
    00226128call caml_fatal_uncaught_exception
    0022612d
    0022612dloc_22612d:
    0022612dcall caml_bad_caml_state
    002260a0
    00226132
    00226132 // align 0x10
    00226140
    00226140caml_exception_failure:
    00226140mov rsi, rdi
    00226143lea rdi, [rip+0x4ff32]
    0022614ajmp 0x2068b0
    0022614fdb 0x5d
    00226150db 0x07
    00226151db 0xfe
    00226152db 0xff
    00226140
    00226153
    00226153 // align 0x10
    00226160
    00226160caml_exception_failure_value:
    00226160mov rsi, rdi
    00226163lea rdi, [rip+0x4ff12]
    0022616ajmp 0x206690
    0022616fdb 0x1d
    00226170db 0x05
    00226171db 0xfe
    00226172db 0xff
    00226160
    00226173
    00226173 // align 0x10
    00226180
    00226180caml_exception_invalid_argument:
    00226180mov rsi, rdi
    00226183lea rdi, [rip+0x4ff1a]
    0022618ajmp 0x2068b0
    0022618fdb 0x1d
    00226190db 0x07
    00226191db 0xfe
    00226192db 0xff
    00226180
    00226193
    00226193 // align 0x10
    002261a0
    002261a0caml_exception_invalid_argument_value:
    002261a0mov rsi, rdi
    002261a3lea rdi, [rip+0x4fefa]
    002261aajmp 0x206690
    002261afdb 0xdd
    002261b0add al, -2
    002261b2db 0xff
    002261a0
    002261b3
    002261b3 // align 0x10
    002261c0
    002261c0caml_exception_out_of_memory:
    002261c0lea rax, [rip+0x4fe55]
    002261c7ret
    002261c8db 0xfe
    002261c9add al, 0
    002261cbret
    002261c0
    002261cc
    002261cc // align 0x10
    002261d0
    002261d0caml_exception_stack_overflow:
    002261d0lea rax, [rip+0x4ffcd]
    002261d7ret
    002261d8db 0xff
    002261d9add al, 0
    002261dbret
    002261d0
    002261dc
    002261dc // align 0x10
    002261e0
    002261e0caml_exception_sys_error:
    002261e0mov rsi, rdi
    002261e3lea rdi, [rip+0x4fe62]
    002261eajmp 0x206690
    002261efdb 0x9d
    002261f0add al, -2
    002261f2db 0xff
    002261e0
    002261f3
    002261f3 // align 0x10
    00226200
    00226200caml_exception_end_of_file:
    00226200lea rax, [rip+0x4fed5]
    00226207ret
    00226208db 0xfe
    00226209add al, 0
    0022620bret
    00226200
    0022620c
    0022620c // align 0x10
    00226210
    00226210caml_exception_zero_divide:
    00226210lea rax, [rip+0x4fef5]
    00226217ret
    00226218db 0xfe
    00226219add al, 0
    0022621bret
    00226210
    0022621c
    0022621c // align 0x10
    00226220
    00226220caml_exception_not_found:
    00226220lea rax, [rip+0x4ff1d]
    00226227ret
    00226228db 0xff
    00226229add al, 0
    0022622bret
    00226220
    0022622c
    0022622c // align 0x10
    00226230
    00226230caml_exception_sys_blocked_io:
    00226230lea rax, [rip+0x4ff9d]
    00226237ret
    00226238db 0xff
    00226239add al, 0
    0022623bret
    00226230
    0022623c
    0022623c // align 0x10
    00226240
    00226240caml_exception_array_bound_error:
    00226240mov rax, [rip+0x152f55]
    00226247test rax, rax
    0022624aje 0x226258
    0022624cmov rax, [rax]
    0022624fret
    00226250db 0x48
    00226251mov eax, [rax]
    00226253ret
    00226254
    00226254 0f 1f 40 00 ..@.
    00226258
    00226258loc_226258:
    00226258sub rsp, 8
    0022625clea rdi, [rip+38020]
    00226263call caml_named_value
    00226268test rax, rax
    0022626bje 0x22627c
    0022626dmov [rip+0x152f2c], rax
    00226274mov rax, [rax]
    00226277add rsp, 8
    0022627bret
    0022627c
    0022627cloc_22627c:
    0022627cmov rcx, [rip+0x15225d]
    00226283mov edx, 63
    00226288mov esi, 1
    0022628dlea rdi, [rip+45868]
    00226294call fn_f4700
    00226299mov edi, 2
    0022629ecall fn_f4210
    00226240
    002262a3
    002262a3 // align 0x10
    002262b0
    002262b0caml_array_bound_error_asm:
    002262b0push rax
    002262b1pop rax
    002262b2sub rsp, 8
    002262b6call caml_exception_array_bound_error
    002262bbmov rsi, rax
    002262bemov rax, [rip+0x4fd1f]
    002262c5mov rdi, [rax]
    002262c9call caml_raise_exception
    002262cedb 0x62
    002262cfadc [rax], eax
    002262d1db 0x00
    002262b0
    002262d2
    002262d2 // align 0x10
    002262e0
    002262e0caml_is_special_exception:
    002262e0lea rdx, [rip+0x4fe8d]
    002262e7mov eax, 1
    002262eccmp rdi, rdx
    002262efje 0x226311
    002262f1lea rdx, [rip+0x4ff0c]
    002262f8cmp rdi, rdx
    002262fbje 0x226311
    002262fdlea rax, [rip+0x4ff30]
    00226304cmp rdi, rax
    00226307sete al
    0022630amovzx eax, al
    0022630dret
    0022630edb 0x0f
    0022630fmov dh, 192
    00226311
    00226311loc_226311:
    00226311ret
    002262e0
    00226312
    00226312 // align 0x10
    00226320
    00226320fn_226320:
    00226320movzx edx, [rdi+8]
    00226324cmp dx, -1
    00226328je 0x226380
    0022632amov ecx, edx
    0022632cmovzx eax, [rdi+10]
    00226330and ecx, 1
    00226333and edx, 2
    00226336lea rax, [rdi+2*rax+12]
    0022633bje 0x226368
    0022633dmovzx esi, [rax]
    00226340lea rax, [rax+rsi+1]
    00226345test cl, cl
    00226347je 0x22635b
    00226349add rax, 3
    0022634dmov rdx, rsi
    00226350and rax, -4
    00226354shl rdx, 2
    00226358
    00226358loc_226358:
    00226358add rax, rdx
    0022635b
    0022635bloc_22635b:
    0022635badd rax, 7
    0022635fand rax, -8
    00226363ret
    00226364
    00226364 0f 1f 40 00 ..@.
    00226368
    00226368loc_226368:
    00226368test cl, cl
    0022636aje 0x22635b
    0022636cadd rax, 3
    00226370mov edx, 4
    00226375and rax, -4
    00226379jmp 0x226358
    0022637b
    0022637b 0f 1f 44 00 00 ..D..
    00226380
    00226380loc_226380:
    00226380lea rax, [rdi+19]
    00226384and rax, -8
    00226388ret
    00226320
    00226389
    00226389 // align 0x20
    002263a0
    002263a0fn_2263a0:
    002263a0mov r9, rdi
    002263a3test rdi, rdi
    002263a6je 0x22642e
    002263acnop [rax]
    002263b0
    002263b0loc_2263b0:
    002263b0mov rax, [r9]
    002263b3mov r8, [rax]
    002263b6add rax, 8
    002263batest r8, r8
    002263bdjle 0x226425
    002263bfxor r10l, r10l
    002263c2nop [rax+rax]
    002263cdnop [rax]
    002263d0
    002263d0loc_2263d0:
    002263d0mov rdx, [rax]
    002263d3movsxd rdi, [rip+0x15208a]
    002263damov rsi, [rip+0x152087]
    002263e1shr rdx, 3
    002263e5and rdx, rdi
    002263e8lea rcx, [rsi+8*rdx]
    002263eccmp [rcx], 0
    002263f0je 0x226411
    002263f2nop [rax+rax]
    002263fdnop [rax]
    00226400
    00226400loc_226400:
    00226400add rdx, 1
    00226404and rdx, rdi
    00226407lea rcx, [rsi+8*rdx]
    0022640bcmp [rcx], 0
    0022640fjne 0x226400
    00226411
    00226411loc_226411:
    00226411mov [rcx], rax
    00226414mov rdi, rax
    00226417add r10, 1
    0022641bcall fn_226320
    00226420cmp r8, r10
    00226423jne 0x2263d0
    00226425
    00226425loc_226425:
    00226425mov r9, [r9+8]
    00226429test r9, r9
    0022642cjne 0x2263b0
    0022642e
    0022642eloc_22642e:
    0022642eret
    002263a0
    0022642f
    0022642f // align 0x10
    00226430
    00226430fn_226430:
    00226430push rbp
    00226431mov rbp, rdi
    00226434push rbx
    00226435sub rsp, 8
    00226439test rdi, rdi
    0022643cje 0x226560
    00226442mov rax, rdi
    00226445nop [rax+rax]
    00226450
    00226450loc_226450:
    00226450mov r11, rax
    00226453mov rax, [rax+8]
    00226457test rax, rax
    0022645ajne 0x226450
    0022645cmov rax, rbp
    0022645fxor edx, edx
    00226461nop [rax+rax]
    0022646cnop [rax]
    00226470
    00226470loc_226470:
    00226470mov rcx, [rax]
    00226473mov rax, [rax+8]
    00226477add rdx, [rcx]
    0022647atest rax, rax
    0022647djne 0x226470
    0022647f
    0022647floc_22647f:
    0022647fmovsxd rsi, [rip+0x151fda]
    00226486mov eax, [rip+0x151fd8]
    0022648cmov rdi, rsi
    0022648fadd eax, 1
    00226492add rsi, rdx
    00226495lea rcx, [rsi+rsi]
    00226499cdqe
    0022649bcmp rax, rcx
    0022649ejge 0x226530
    002264a4mov rax, [rip+0x151fc5]
    002264abmov [r11+8], rax
    002264afmov [rip+0x151fb6], 0
    002264bacmp rcx, 4
    002264bejle 0x22656a
    002264c4mov eax, 4
    002264c9nop [rax]
    002264d0
    002264d0loc_2264d0:
    002264d0add rax, rax
    002264d3cmp rcx, rax
    002264d6jg 0x2264d0
    002264d8lea edx, [rax-1]
    002264dbmov rbx, rax
    002264de
    002264deloc_2264de:
    002264demov rdi, [rip+0x151f83]
    002264e5mov [rip+0x151f75], esi
    002264ebmov [rip+0x151f73], edx
    002264f1test rdi, rdi
    002264f4je 0x2264fb
    002264f6call caml_stat_free
    002264fb
    002264fbloc_2264fb:
    002264fbmov esi, 8
    00226500mov rdi, rbx
    00226503call caml_stat_calloc_noexc
    00226508mov [rip+0x151f59], rax
    0022650ftest rax, rax
    00226512je 0x226579
    00226514mov rdi, rbp
    00226517call fn_2263a0
    0022651cmov [rip+0x151f4d], rbp
    00226523add rsp, 8
    00226527pop rbx
    00226528pop rbp
    00226529ret
    0022652a
    0022652a 66 0f 1f 44 00 00 f..D..
    00226530
    00226530loc_226530:
    00226530add edi, edx
    00226532mov [rip+0x151f28], edi
    00226538mov rdi, rbp
    0022653bcall fn_2263a0
    00226540mov rax, [rip+0x151f29]
    00226547mov [r11+8], rax
    0022654bmov [rip+0x151f1e], rbp
    00226552add rsp, 8
    00226556pop rbx
    00226557pop rbp
    00226558ret
    00226559
    00226559 0f 1f 80 00 00 00 00 .......
    00226560
    00226560loc_226560:
    00226560xor r11l, r11l
    00226563xor edx, edx
    00226565jmp 0x22647f
    0022656a
    0022656aloc_22656a:
    0022656amov ebx, 4
    0022656fmov edx, 3
    00226574jmp 0x2264de
    00226579
    00226579loc_226579:
    00226579call caml_raise_out_of_memory
    00226430
    0022657e
    0022657e // align 0x10
    00226580
    00226580fn_226580:
    00226580push r15
    00226582push r14
    00226584mov r14, rsi
    00226587push r13
    00226589mov r13l, edx
    0022658cpush r12
    0022658epush rbp
    0022658fpush rbx
    00226590sub rsp, 40
    00226594cmp edx, 1
    00226597je 0x226745
    0022659dmov edi, edx
    0022659fcall caml_global_barrier_and_check_final
    002265a4mov r12, rax
    002265a7test rax, rax
    002265aaje 0x2266b4
    002265b0mov rbx, [rip+0x151ebd]
    002265b7test rbx, rbx
    002265baje 0x22676e
    002265c0xor ebp, ebp
    002265c2mov rdi, [rbx]
    002265c5mov r11, [rdi]
    002265c8add rdi, 8
    002265cctest r11, r11
    002265cfjle 0x2266ea
    002265d5mov r9, [rip+0x151e88]
    002265dcmovsxd r8, [rip+0x151e7d]
    002265e3xor r10l, r10l
    002265e6nop [rax+rax]
    002265ecmov rax, [rdi]
    002265efshr rax, 3
    002265f3and rax, r8
    002265f6cmp [r9+8*rax], rdi
    002265faje 0x22660d
    002265fcadd rax, 1
    00226600
    00226600loc_226600:
    00226600and rax, r8
    00226603cmp [r9+8*rax], rdi
    00226607jne 0x226600
    00226609mov [rsp+16], r11
    0022660emov r15, r12
    00226611mov [r9+8*rax], 0
    00226619movsxd r8, [rip+0x151e40]
    00226620lea rdx, [rax+1]
    00226624lea rcx, [8*rax]
    0022662cmov r9, [rip+0x151e31]
    00226633and rdx, r8
    00226636mov rsi, [r9+8*rdx]
    0022663atest rsi, rsi
    0022663dje 0x226706
    00226643mov [rsp+8], rdi
    00226648mov [rsp+24], rcx
    0022664djmp 0x22666d
    0022664fdb 0x24
    00226650sbb bl, ch
    00226652db 0x1a
    00226653
    00226653 0f 1f 44 00 00 ..D..
    00226658
    00226658loc_226658:
    00226658cmp rax, rcx
    0022665bjae 0x22668d
    0022665d
    0022665dloc_22665d:
    0022665dadd rdx, 1
    00226661and rdx, r8
    00226664mov rsi, [r9+8*rdx]
    00226668test rsi, rsi
    0022666bje 0x2266c8
    0022666d
    0022666dloc_22666d:
    0022666dmov rcx, [rsi]
    00226670shr rcx, 3
    00226674and rcx, r8
    00226677cmp rdx, rcx
    0022667asetae r11b
    0022667ecmp rdx, rax
    00226681setb r12b
    00226685mov edi, r11l
    00226688or dil, r12b
    0022668bjne 0x226658
    0022668d
    0022668dloc_22668d:
    0022668dtest r11b, r11b
    00226690je 0x226697
    00226692test r12b, r12b
    00226695jne 0x22665d
    00226697
    00226697loc_226697:
    00226697mov rcx, [rsp+24]
    0022669cmov rdi, [rsp+8]
    002266a1mov rax, rdx
    002266a4mov [r9+rcx], rsi
    002266a8mov r9, [rip+0x151db9]
    002266afjmp 0x226615
    002266b4
    002266b4loc_2266b4:
    002266b4add rsp, 40
    002266b8pop rbx
    002266b9pop rbp
    002266bapop r12
    002266bcpop r13
    002266bepop r14
    002266c0pop r15
    002266c2ret
    002266c3
    002266c3 0f 1f 44 00 00 ..D..
    002266c8
    002266c8loc_2266c8:
    002266c8mov r11, [rsp+16]
    002266cdmov rdi, [rsp+8]
    002266d2mov r12, r15
    002266d5
    002266d5loc_2266d5:
    002266d5call fn_226320
    002266daadd r10, 1
    002266demov rdi, rax
    002266e1cmp r11, r10
    002266e4jne 0x2265f0
    002266ea
    002266ealoc_2266ea:
    002266eamov r15, [rbx+8]
    002266eemov rdi, rbx
    002266f1add rbp, r11
    002266f4call caml_stat_free
    002266f9test r15, r15
    002266fcje 0x226710
    002266femov rbx, r15
    00226701jmp 0x2265c6
    00226706
    00226706loc_226706:
    00226706mov r11, [rsp+16]
    0022670bmov r12, r15
    0022670ejmp 0x2266d5
    00226710
    00226710loc_226710:
    00226710mov rdi, r14
    00226713sub [rip+0x151d47], ebp
    00226719mov [rip+0x151d54], 0
    00226724call fn_226430
    00226729cmp r13l, 1
    0022672dje 0x2266b4
    0022672f
    0022672floc_22672f:
    0022672fadd rsp, 40
    00226733mov rdi, r12
    00226736pop rbx
    00226737pop rbp
    00226738pop r12
    0022673apop r13
    0022673cpop r14
    0022673epop r15
    00226740jmp 0x201620
    00226745
    00226745loc_226745:
    00226745mov rbx, [rip+0x151d2c]
    0022674cxor r12l, r12l
    0022674ftest rbx, rbx
    00226752jne 0x2265c4
    00226758add rsp, 40
    0022675cmov rdi, r14
    0022675fpop rbx
    00226760pop rbp
    00226761pop r12
    00226763pop r13
    00226765pop r14
    00226767pop r15
    00226769jmp 0x226430
    0022676e
    0022676eloc_22676e:
    0022676emov rdi, r14
    00226771call fn_226430
    00226776jmp 0x22672f
    00226580
    00226778
    00226778 // align 0x10
    00226780
    00226780fn_226780:
    00226780push r12
    00226782lea r12, [rip+0x151cf7]
    00226789push rbp
    0022678amov rbp, rdi
    0022678dmov rdi, r12
    00226790push rbx
    00226791mov ebx, esi
    00226793call fn_f4710
    00226798test eax, eax
    0022679ajne 0x226850
    002267a0mov rsi, [rip+0x151cc9]
    002267a7lea r9, [rip+0x151cc2]
    002267aetest rsi, rsi
    002267b1je 0x22683f
    002267b7nop [rax+rax]
    002267c0
    002267c0loc_2267c0:
    002267c0movsxd r8, ebx
    002267c3mov edi, ebx
    002267c5lea rdx, [rbp+8*r8]
    002267catest ebx, ebx
    002267ccjle 0x226832
    002267ce
    002267celoc_2267ce:
    002267cemov rcx, [rsi]
    002267d1mov rax, rbp
    002267d4jmp 0x2267e9
    002267d6
    002267d6 66 2e 0f 1f 84 00 00 00 00 00 f.........
    002267e0
    002267e0loc_2267e0:
    002267e0add rax, 8
    002267e4cmp rax, rdx
    002267e7je 0x226830
    002267e9
    002267e9loc_2267e9:
    002267e9cmp rcx, [rax]
    002267ecjne 0x2267e0
    002267eemov rcx, [rsi+8]
    002267f2mov [r9], rcx
    002267f5mov rcx, [rip+0x151c7c]
    002267fcmov [rsi+8], rcx
    00226800mov [rip+0x151c71], rsi
    00226807sub edi, 1
    0022680aje 0x22683f
    0022680clea ecx, [rbx-1]
    0022680fmov r10, [rax]
    00226812mov rsi, [r9]
    00226815movsxd rcx, ecx
    00226818sub rcx, r8
    0022681bmov r11, [rdx+8*rcx]
    0022681fmov [rax], r11
    00226822mov [rdx+8*rcx], r10
    00226826sub rdx, 8
    0022682ajmp 0x2267ce
    0022682c
    0022682c 0f 1f 40 00 ..@.
    00226830
    00226830loc_226830:
    00226830mov ebx, edi
    00226832
    00226832loc_226832:
    00226832lea r9, [rsi+8]
    00226836mov rsi, [rsi+8]
    0022683atest rsi, rsi
    0022683djne 0x2267c0
    0022683f
    0022683floc_22683f:
    0022683fmov rdi, r12
    00226842call fn_f47c0
    00226847test eax, eax
    00226849jne 0x22685e
    0022684bpop rbx
    0022684cpop rbp
    0022684dpop r12
    0022684fret
    00226850
    00226850loc_226850:
    00226850mov esi, eax
    00226852lea rdi, [rip+36022]
    00226859call caml_plat_fatal_error
    0022685e
    0022685eloc_22685e:
    0022685emov esi, eax
    00226860lea rdi, [rip+36019]
    00226867call caml_plat_fatal_error
    00226780
    0022686c
    0022686c // align 0x10
    00226870
    00226870caml_init_frame_descriptors:
    00226870push r13
    00226872push r12
    00226874push rbp
    00226875push rbx
    00226876sub rsp, 8
    0022687amov rbx, [rip+0x52123]
    00226881test rbx, rbx
    00226884je 0x2268d8
    00226886xor ebp, ebp
    00226888xor eax, eax
    0022688alea r12, [rip+0x52113]
    00226891nop [rax+rax]
    0022689cmov edi, 16
    002268a1add ebp, 1
    002268a4mov r13, rax
    002268a7call caml_stat_alloc
    002268acmovsxd rdx, ebp
    002268afmov [rax], rbx
    002268b2mov [rax+8], r13
    002268b6mov rbx, [r12+8*rdx]
    002268batest rbx, rbx
    002268bdjne 0x2268a0
    002268bfadd rsp, 8
    002268c3
    002268c3loc_2268c3:
    002268c3mov rdi, rax
    002268c6pop rbx
    002268c7pop rbp
    002268c8pop r12
    002268capop r13
    002268ccjmp 0x226430
    002268d1db 0x5b
    002268d2sti
    002268d3db 0xff
    002268d4db 0xff
    002268d5
    002268d5 0f 1f 00 ...
    002268d8
    002268d8loc_2268d8:
    002268d8xor eax, eax
    002268dajmp 0x2268c3
    00226870
    002268dc
    002268dc // align 0x10
    002268e0
    002268e0caml_register_frametables:
    002268e0push r12
    002268e2push rbp
    002268e3push rbx
    002268e4sub rsp, 16
    002268e8test esi, esi
    002268eajle 0x226960
    002268ecmovsxd rsi, esi
    002268efmov rbp, rdi
    002268f2xor ebx, ebx
    002268f4lea r12, [rdi+8*rsi]
    002268f8nop [rax]
    002268fcmovq x0, [rbp]
    00226901movq x1, rbx
    00226906mov edi, 16
    0022690badd rbp, 8
    0022690fpunpcklqdq x0, x1
    00226913movaps [rsp], x0
    00226917call caml_stat_alloc
    0022691cmovdqa x0, [rsp]
    00226921mov rbx, rax
    00226924movups [rax], x0
    00226927cmp rbp, r12
    0022692ajne 0x226900
    0022692clea rbp, [rip-951]
    00226933nop [rax+rax]
    0022693cxor edx, edx
    0022693emov rsi, rbx
    00226941mov rdi, rbp
    00226944call caml_try_run_on_all_domains
    00226949test eax, eax
    0022694bje 0x226940
    0022694dadd rsp, 16
    00226951pop rbx
    00226952pop rbp
    00226953pop r12
    00226955ret
    00226956db 0x5d
    00226957pop r12
    00226959ret
    0022695a
    0022695a 66 0f 1f 44 00 00 f..D..
    00226960
    00226960loc_226960:
    00226960xor ebx, ebx
    00226962jmp 0x226930
    002268e0
    00226964
    00226964 // align 0x10
    00226970
    00226970caml_copy_and_register_frametables:
    00226970push r15
    00226972push r14
    00226974push r13
    00226976push r12
    00226978push rbp
    00226979push rbx
    0022697asub rsp, 8
    0022697etest edx, edx
    00226980jle 0x226a10
    00226986movsxd rdx, edx
    00226989mov rbp, rsi
    0022698cmov r12, rdi
    0022698fxor ebx, ebx
    00226991lea r13, [rsi+4*rdx]
    00226995nop [rax]
    0022699cmovsxd r14, [rbp]
    002269a0
    002269a0loc_2269a0:
    002269a0mov r15, rbx
    002269a3add rbp, 4
    002269a7add r12, 8
    002269ablea rdi, [r14+16]
    002269afcall caml_stat_alloc
    002269b4mov rsi, [r12-8]
    002269b9mov rdx, r14
    002269bclea rcx, [rax+16]
    002269c0mov rbx, rax
    002269c3mov rdi, rcx
    002269c6call fn_f47d0
    002269cbmov [r12-8], rax
    002269d0mov [rbx], rax
    002269d3mov [rbx+8], r15
    002269d7cmp rbp, r13
    002269dajne 0x2269a0
    002269dclea rbp, [rip-1127]
    002269e3nop [rax+rax]
    002269ecxor edx, edx
    002269eemov rsi, rbx
    002269f1mov rdi, rbp
    002269f4call caml_try_run_on_all_domains
    002269f9test eax, eax
    002269fbje 0x2269f0
    002269fdadd rsp, 8
    00226a01pop rbx
    00226a02pop rbp
    00226a03pop r12
    00226a05pop r13
    00226a07pop r14
    00226a09pop r15
    00226a0bret
    00226a0cxor ebx, ebx
    00226a0ejmp 0x2269e0
    00226a10db 0x31
    00226a11fucomi f3
    00226a13int 3
    00226970
    00226a14
    00226a14 // align 0x10
    00226a20
    00226a20caml_unregister_frametables:
    00226a20jmp 0x226780
    00226a25db 0x57
    00226a26std
    00226a27db 0xff
    00226a28db 0xff
    00226a20
    00226a29
    00226a29 // align 0x10
    00226a30
    00226a30caml_register_frametable:
    00226a30push rbp
    00226a31mov rbp, rdi
    00226a34mov edi, 16
    00226a39push rbx
    00226a3asub rsp, 8
    00226a3ecall caml_stat_alloc
    00226a43mov [rax+8], 0
    00226a4bmov rbx, rax
    00226a4emov [rax], rbp
    00226a51lea rbp, [rip-1244]
    00226a58nop [rax]
    00226a5cxor edx, edx
    00226a5emov rsi, rbx
    00226a61mov rdi, rbp
    00226a64call caml_try_run_on_all_domains
    00226a69test eax, eax
    00226a6bje 0x226a60
    00226a6dadd rsp, 8
    00226a71pop rbx
    00226a72pop rbp
    00226a73ret
    00226a74db 0x08
    00226a75pop rbx
    00226a76pop rbp
    00226a77ret
    00226a30
    00226a78
    00226a78 // align 0x10
    00226a80
    00226a80caml_copy_and_register_frametable:
    00226a80push r13
    00226a82mov r13, rdi
    00226a85push r12
    00226a87push rbp
    00226a88movsxd rbp, esi
    00226a8bpush rbx
    00226a8clea rdi, [rbp+16]
    00226a90sub rsp, 8
    00226a94call caml_stat_alloc
    00226a99mov rdx, rbp
    00226a9cmov rsi, r13
    00226a9flea rbp, [rip-1322]
    00226aa6lea r12, [rax+16]
    00226aaamov rbx, rax
    00226aadmov rdi, r12
    00226ab0call fn_f47d0
    00226ab5mov [rbx], r12
    00226ab8mov [rbx+8], 0
    00226ac0nop [rax+rax]
    00226acbnop
    00226accxor edx, edx
    00226acemov rsi, rbx
    00226ad1mov rdi, rbp
    00226ad4call caml_try_run_on_all_domains
    00226ad9test eax, eax
    00226adbje 0x226ad0
    00226addadd rsp, 8
    00226ae1mov rax, r12
    00226ae4pop rbx
    00226ae5pop rbp
    00226ae6pop r12
    00226ae8pop r13
    00226aearet
    00226aebdb 0x5c
    00226aecpop r13
    00226aeeret
    00226a80
    00226aef
    00226aef // align 0x10
    00226af0
    00226af0caml_unregister_frametable:
    00226af0sub rsp, 24
    00226af4mov esi, 1
    00226af9mov [rsp+8], rdi
    00226afelea rdi, [rsp+8]
    00226b03call fn_226780
    00226b08add rsp, 24
    00226b0cret
    00226b0ddb 0x83
    00226b0edb 0xc4
    00226b0fsbb bl, al
    00226af0
    00226b11
    00226b11 // align 0x10
    00226b20
    00226b20caml_get_frame_descrs:
    00226b20lea rax, [rip+0x151935]
    00226b27ret
    00226b28db 0x19
    00226b29db 0x15
    00226b2aadd bl, al
    00226b20
    00226b2c
    00226b2c // align 0x20
    00226b40
    00226b40caml_find_frame_descr:
    00226b40movsxd r8, [rdi+4]
    00226b44mov rax, rsi
    00226b47mov rcx, [rdi+8]
    00226b4bshr rax, 3
    00226b4fand rax, r8
    00226b52mov rdx, [rcx+8*rax]
    00226b56test rdx, rdx
    00226b59jne 0x226b90
    00226b5bjmp 0x226b95
    00226b5ddb 0x75
    00226b5exor ebx, ebp
    00226b60db 0x34
    00226b61
    00226b61 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 2e 0f ff.........ff..
    00226b70 1f 84 00 00 00 00 00 66 0f 1f 84 00 00 00 00 00 .......f........
    00226b80
    00226b80loc_226b80:
    00226b80add rax, 1
    00226b84and rax, r8
    00226b87mov rdx, [rcx+8*rax]
    00226b8btest rdx, rdx
    00226b8eje 0x226b95
    00226b90
    00226b90loc_226b90:
    00226b90cmp [rdx], rsi
    00226b93jne 0x226b80
    00226b95
    00226b95loc_226b95:
    00226b95mov rax, rdx
    00226b98ret
    00226b40
    00226b99
    00226b99 // align 0x40
    00226bc0
    00226bc0caml_startup_common:
    00226bc0push rbp
    00226bc1mov ebp, esi
    00226bc3push rbx
    00226bc4mov rbx, rdi
    00226bc7sub rsp, 8
    00226bcbcall caml_parse_ocamlrunparam
    00226bd0mov rax, [rip+0x4ed7d]
    00226bd7cmp [rax+144], 0
    00226bdfje 0x226bea
    00226be1mov ebp, 1
    00226be6mov edi, ebp
    00226be8mov ebp, 1
    00226bedcall caml_startup_aux
    00226bf2test eax, eax
    00226bf4jne 0x226c08
    00226bf6add rsp, 8
    00226bfamov rax, rbp
    00226bfdpop rbx
    00226bfepop rbp
    00226bffret
    00226c00db 0xe8
    00226c01pop rbx
    00226c02pop rbp
    00226c03ret
    00226c04
    00226c04 0f 1f 40 00 ..@.
    00226c08
    00226c08loc_226c08:
    00226c08call caml_init_codefrag
    00226c0dcall caml_init_locale
    00226c12call caml_init_custom_operations
    00226c17call caml_init_os_params
    00226c1ccall caml_init_gc
    00226c21call caml_runtime_events_init
    00226c26mov rdx, [rip+0x51733]
    00226c2dmov rdi, [rip+0x5171c]
    00226c34mov rsi, [rip+0x5171d]
    00226c3btest rdx, rdx
    00226c3eje 0x226cad
    00226c40mov ecx, 1
    00226c45lea r8, [rip+0x51704]
    00226c4cmov eax, 1
    00226c51nop [rax+rax]
    00226c5cnop [rax+rax]
    00226c67nop [rax+rax]
    00226c72nop [rax+rax]
    00226c7dnop [rax]
    00226c80
    00226c80loc_226c80:
    00226c80cmp rdi, rdx
    00226c83cmova rdi, rdx
    00226c87shl rax, 4
    00226c8bmov rax, [r8+rax+8]
    00226c90cmp rsi, rax
    00226c93cmovb rsi, rax
    00226c97add ecx, 1
    00226c9amovsxd rax, ecx
    00226c9dmov rdx, rax
    00226ca0shl rdx, 4
    00226ca4mov rdx, [r8+rdx]
    00226ca8test rdx, rdx
    00226cabjne 0x226c80
    00226cad
    00226cadloc_226cad:
    00226cadxor ecx, ecx
    00226cafxor edx, edx
    00226cb1call caml_register_code_fragment
    00226cb6xor ecx, ecx
    00226cb8lea rdi, [rip+304]
    00226cbfmov edx, 3
    00226cc4lea rsi, [rip+2426]
    00226ccbcall caml_register_code_fragment
    00226cd0call caml_init_signals
    00226cd5call caml_debugger_init
    00226cdamov rbp, [rbx]
    00226cddlea rax, [rip+33352]
    00226ce4test rbp, rbp
    00226ce7cmove rbp, rax
    00226cebcall caml_executable_name
    00226cf0mov rdi, rax
    00226cf3test rax, rax
    00226cf6je 0x226d30
    00226cf8
    00226cf8loc_226cf8:
    00226cf8mov rsi, rbx
    00226cfbcall caml_sys_init
    00226d00call caml_maybe_expand_stack
    00226d05mov rax, [rip+0x4f2dc]
    00226d0cmov rdi, [rax]
    00226d10call caml_start_program
    00226d15mov rbp, rax
    00226d18call caml_terminate_signals
    00226d1dadd rsp, 8
    00226d21mov rax, rbp
    00226d24pop rbx
    00226d25pop rbp
    00226d26ret
    00226d27
    00226d27 66 0f 1f 84 00 00 00 00 00 f........
    00226d30
    00226d30loc_226d30:
    00226d30mov rdi, rbp
    00226d33call caml_search_exe_in_path
    00226d38mov rdi, rax
    00226d3bjmp 0x226cf8
    00226bc0