File hevea_f46f610a6b0078f4aa208dda361f21de574cc56ad64b32889301afc466d33979.elf
Function:
Loading..
0021fac0
0021fac0fn_21fac0:
0021fac0push r14
0021fac2xor esi, esi
0021fac4xor edi, edi
0021fac6push r13
0021fac8push r12
0021facapush rbp
0021facbpush rbx
0021faccsub rsp, 144
0021fad3mov rdx, [0x28]
0021fadcmov [rsp+136], rdx
0021fae4mov rdx, rsp
0021fae7call fn_f4130
0021faecmov r12, [rip+0x15956d]
0021faf3test r12, r12
0021faf6jne 0x21fb40
0021faf8
0021faf8loc_21faf8:
0021faf8xor ecx, ecx
0021fafamov ebp, 1
0021faffmov rsi, 0xffffffff00000000
0021fb09and rcx, rsi
0021fb0cmov rdi, rcx
0021fb0f
0021fb0floc_21fb0f:
0021fb0fmov eax, edi
0021fb11mov rdx, rbp
0021fb14mov rcx, [rsp+136]
0021fb1csub rcx, [0x28]
0021fb25jne 0x21fbd7
0021fb2badd rsp, 144
0021fb32pop rbx
0021fb33pop rbp
0021fb34pop r12
0021fb36pop r13
0021fb38pop r14
0021fb3aret
0021fb3b
0021fb3b 0f 1f 44 00 00 ..D..
0021fb40
0021fb40loc_21fb40:
0021fb40mov r14, rsp
0021fb43xor ecx, ecx
0021fb45mov r13l, 1
0021fb4bjmp 0x21fb67
0021fb4d
0021fb4d 66 66 2e ff.
0021fb50 0f 1f 84 00 00 00 00 00 0f 1f 84 00 00 00 00 00 ................
0021fb60
0021fb60loc_21fb60:
0021fb60mov ecx, ebx
0021fb62cmp ebx, 64
0021fb65je 0x21faf8
0021fb67
0021fb67loc_21fb67:
0021fb67mov rbp, r13
0021fb6alea ebx, [rcx+1]
0021fb6dshl rbp, cl
0021fb70test rbp, r12
0021fb73je 0x21fb60
0021fb75mov esi, ebx
0021fb77mov rdi, r14
0021fb7acall fn_f42b0
0021fb7fmov rdx, rbp
0021fb82not rdx
0021fb85test eax, eax
0021fb87jne 0x21fb60
0021fb89
0021fb89loc_21fb89:
0021fb89mov rcx, rdx
0021fb8cmov rax, r12
0021fb8fand rcx, r12
0021fb92lock cmpxchg [rip+0x1594c5], rcx
0021fb9bmov r12, rax
0021fb9ejne 0x21fbc7
0021fba0mov edi, ebx
0021fba2call caml_execute_signal_res
0021fba7test eax, eax
0021fba9jne 0x21fbbc
0021fbabmov r12, [rip+0x1594ae]
0021fbb2test r12, r12
0021fbb5jne 0x21fb60
0021fbb7jmp 0x21faf8
0021fbbc
0021fbbcloc_21fbbc:
0021fbbcmov rdi, rax
0021fbbfmov rbp, rdx
0021fbc2jmp 0x21fb0f
0021fbc7
0021fbc7loc_21fbc7:
0021fbc7test r12, r12
0021fbcaje 0x21faf8
0021fbd0test rbp, r12
0021fbd3jne 0x21fb89
0021fbd5jmp 0x21fb60
0021fbd7
0021fbd7loc_21fbd7:
0021fbd7call fn_f4590
0021fac0
0021fac0fn_21fac0:
0021fac0push r14
0021fac2xor esi, esi
0021fac4xor edi, edi
0021fac6push r13
0021fac8push r12
0021facapush rbp
0021facbpush rbx
0021faccsub rsp, 144
0021fad3mov rdx, [0x28]
0021fadcmov [rsp+136], rdx
0021fae4mov rdx, rsp
0021fae7call fn_f4130
0021faecmov r12, [rip+0x15956d]
0021faf3test r12, r12
0021faf6jne 0x21fb40
0021faf8
0021faf8loc_21faf8:
0021faf8xor ecx, ecx
0021fafamov ebp, 1
0021faffmov rsi, 0xffffffff00000000
0021fb09and rcx, rsi
0021fb0cmov rdi, rcx
0021fb0f
0021fb0floc_21fb0f:
0021fb0fmov eax, edi
0021fb11mov rdx, rbp
0021fb14mov rcx, [rsp+136]
0021fb1csub rcx, [0x28]
0021fb25jne 0x21fbd7
0021fb2badd rsp, 144
0021fb32pop rbx
0021fb33pop rbp
0021fb34pop r12
0021fb36pop r13
0021fb38pop r14
0021fb3aret
0021fb3b
0021fb3b 0f 1f 44 00 00 ..D..
0021fb40
0021fb40loc_21fb40:
0021fb40mov r14, rsp
0021fb43xor ecx, ecx
0021fb45mov r13l, 1
0021fb4bjmp 0x21fb67
0021fb4d
0021fb4d 66 66 2e ff.
0021fb50 0f 1f 84 00 00 00 00 00 0f 1f 84 00 00 00 00 00 ................
0021fb60
0021fb60loc_21fb60:
0021fb60mov ecx, ebx
0021fb62cmp ebx, 64
0021fb65je 0x21faf8
0021fb67
0021fb67loc_21fb67:
0021fb67mov rbp, r13
0021fb6alea ebx, [rcx+1]
0021fb6dshl rbp, cl
0021fb70test rbp, r12
0021fb73je 0x21fb60
0021fb75mov esi, ebx
0021fb77mov rdi, r14
0021fb7acall fn_f42b0
0021fb7fmov rdx, rbp
0021fb82not rdx
0021fb85test eax, eax
0021fb87jne 0x21fb60
0021fb89
0021fb89loc_21fb89:
0021fb89mov rcx, rdx
0021fb8cmov rax, r12
0021fb8fand rcx, r12
0021fb92lock cmpxchg [rip+0x1594c5], rcx
0021fb9bmov r12, rax
0021fb9ejne 0x21fbc7
0021fba0mov edi, ebx
0021fba2call caml_execute_signal_res
0021fba7test eax, eax
0021fba9jne 0x21fbbc
0021fbabmov r12, [rip+0x1594ae]
0021fbb2test r12, r12
0021fbb5jne 0x21fb60
0021fbb7jmp 0x21faf8
0021fbbc
0021fbbcloc_21fbbc:
0021fbbcmov rdi, rax
0021fbbfmov rbp, rdx
0021fbc2jmp 0x21fb0f
0021fbc7
0021fbc7loc_21fbc7:
0021fbc7test r12, r12
0021fbcaje 0x21faf8
0021fbd0test rbp, r12
0021fbd3jne 0x21fb89
0021fbd5jmp 0x21fb60
0021fbd7
0021fbd7loc_21fbd7:
0021fbd7call fn_f4590
0021fac0
0021fbdc
0021fbdc // align 0x10
0021fbdc // align 0x10
0021fbe0
0021fbe0caml_process_pending_signals_res:
0021fbe0mov rax, [rip+0x159475]
0021fbe7test rax, rax
0021fbeajne 0x21fc10
0021fbecxor eax, eax
0021fbeemov edx, 1
0021fbf3mov rsi, 0xffffffff00000000
0021fbfdmov rcx, rax
0021fc00and rcx, rsi
0021fc03mov rax, rcx
0021fc06ret
0021fc07db 0x48
0021fc08mov eax, ecx
0021fc0aret
0021fc0b
0021fc0b 0f 1f 44 00 00 ..D..
0021fc10
0021fc10loc_21fc10:
0021fc10jmp 0x21fac0
0021fbe0
0021fbe0caml_process_pending_signals_res:
0021fbe0mov rax, [rip+0x159475]
0021fbe7test rax, rax
0021fbeajne 0x21fc10
0021fbecxor eax, eax
0021fbeemov edx, 1
0021fbf3mov rsi, 0xffffffff00000000
0021fbfdmov rcx, rax
0021fc00and rcx, rsi
0021fc03mov rax, rcx
0021fc06ret
0021fc07db 0x48
0021fc08mov eax, ecx
0021fc0aret
0021fc0b
0021fc0b 0f 1f 44 00 00 ..D..
0021fc10
0021fc10loc_21fc10:
0021fc10jmp 0x21fac0
0021fbe0
0021fc15
0021fc15 // align 0x10
0021fc15 // align 0x10
0021fc20
0021fc20caml_enter_blocking_section:
0021fc20mov rax, [rip+0x563bd]
0021fc27push rbx
0021fc28mov rbx, [rax]
0021fc2cjmp 0x21fc75
0021fc2edb 0x8b
0021fc2fsbb bl, ch
0021fc31db 0x43
0021fc32
0021fc32 66 0f 1f 44 00 00 f..D..
0021fc38
0021fc38loc_21fc38:
0021fc38cmp [rbx+56], 0
0021fc3dje 0x21fc60
0021fc3f
0021fc3floc_21fc3f:
0021fc3fcall caml_handle_gc_interrupt
0021fc44mov rax, [rip+0x159415]
0021fc4btest rax, rax
0021fc4eje 0x21fc60
0021fc50call fn_21fac0
0021fc55test eax, eax
0021fc57jne 0x21fc82
0021fc59nop [rax]
0021fc60
0021fc60loc_21fc60:
0021fc60call [rip+0x15877a]
0021fc66mov rax, [rbx]
0021fc69cmp rax, -1
0021fc6djne 0x21fc80
0021fc6fcall [rip+0x158763]
0021fc75
0021fc75loc_21fc75:
0021fc75mov rax, [rbx]
0021fc78cmp [rbx+8], rax
0021fc7cjae 0x21fc38
0021fc7ejmp 0x21fc3f
0021fc80
0021fc80loc_21fc80:
0021fc80pop rbx
0021fc81ret
0021fc82
0021fc82loc_21fc82:
0021fc82mov rdi, rdx
0021fc85call caml_raise
0021fc20
0021fc20caml_enter_blocking_section:
0021fc20mov rax, [rip+0x563bd]
0021fc27push rbx
0021fc28mov rbx, [rax]
0021fc2cjmp 0x21fc75
0021fc2edb 0x8b
0021fc2fsbb bl, ch
0021fc31db 0x43
0021fc32
0021fc32 66 0f 1f 44 00 00 f..D..
0021fc38
0021fc38loc_21fc38:
0021fc38cmp [rbx+56], 0
0021fc3dje 0x21fc60
0021fc3f
0021fc3floc_21fc3f:
0021fc3fcall caml_handle_gc_interrupt
0021fc44mov rax, [rip+0x159415]
0021fc4btest rax, rax
0021fc4eje 0x21fc60
0021fc50call fn_21fac0
0021fc55test eax, eax
0021fc57jne 0x21fc82
0021fc59nop [rax]
0021fc60
0021fc60loc_21fc60:
0021fc60call [rip+0x15877a]
0021fc66mov rax, [rbx]
0021fc69cmp rax, -1
0021fc6djne 0x21fc80
0021fc6fcall [rip+0x158763]
0021fc75
0021fc75loc_21fc75:
0021fc75mov rax, [rbx]
0021fc78cmp [rbx+8], rax
0021fc7cjae 0x21fc38
0021fc7ejmp 0x21fc3f
0021fc80
0021fc80loc_21fc80:
0021fc80pop rbx
0021fc81ret
0021fc82
0021fc82loc_21fc82:
0021fc82mov rdi, rdx
0021fc85call caml_raise
0021fc20
0021fc8a
0021fc8a // align 0x10
0021fc8a // align 0x10
0021fc90
0021fc90caml_request_major_slice:
0021fc90mov rax, [rip+0x5634d]
0021fc97mov rax, [rax]
0021fc9btest edi, edi
0021fc9dje 0x21fcb8
0021fc9fmov [rax+240], 1
0021fcaajmp 0x201650
0021fcafdb 0x9d
0021fcb0sbb esi, edi
0021fcb2db 0xff
0021fcb3
0021fcb3 0f 1f 44 00 00 ..D..
0021fcb8
0021fcb8loc_21fcb8:
0021fcb8mov [rax+232], 1
0021fcc3jmp 0x201650
0021fc90
0021fc90caml_request_major_slice:
0021fc90mov rax, [rip+0x5634d]
0021fc97mov rax, [rax]
0021fc9btest edi, edi
0021fc9dje 0x21fcb8
0021fc9fmov [rax+240], 1
0021fcaajmp 0x201650
0021fcafdb 0x9d
0021fcb0sbb esi, edi
0021fcb2db 0xff
0021fcb3
0021fcb3 0f 1f 44 00 00 ..D..
0021fcb8
0021fcb8loc_21fcb8:
0021fcb8mov [rax+232], 1
0021fcc3jmp 0x201650
0021fc90
0021fcc8
0021fcc8 // align 0x10
0021fcc8 // align 0x10
0021fcd0
0021fcd0caml_request_minor_gc:
0021fcd0mov rax, [rip+0x5630d]
0021fcd7mov rax, [rax]
0021fcdbmov [rax+248], 1
0021fce6jmp 0x201650
0021fcebdb 0x61
0021fcecsbb esi, edi
0021fceedb 0xff
0021fcd0
0021fcd0caml_request_minor_gc:
0021fcd0mov rax, [rip+0x5630d]
0021fcd7mov rax, [rax]
0021fcdbmov [rax+248], 1
0021fce6jmp 0x201650
0021fcebdb 0x61
0021fcecsbb esi, edi
0021fceedb 0xff
0021fcd0
0021fcef
0021fcef // align 0x10
0021fcef // align 0x10
0021fcf0
0021fcf0caml_set_action_pending:
0021fcf0mov [rdi+56], 1
0021fcf8ret
0021fcf9db 0x00
0021fcfaadd [rax], al
0021fcfcret
0021fcf0
0021fcf0caml_set_action_pending:
0021fcf0mov [rdi+56], 1
0021fcf8ret
0021fcf9db 0x00
0021fcfaadd [rax], al
0021fcfcret
0021fcf0
0021fcfd
0021fcfd // align 0x10
0021fcfd // align 0x10
0021fd00
0021fd00caml_check_pending_actions:
0021fd00mov rax, [rip+0x562dd]
0021fd07mov rax, [rax]
0021fd0btest rax, rax
0021fd0eje 0x21fd40
0021fd10mov rdx, [rax]
0021fd13cmp [rax+8], rdx
0021fd17jb 0x21fd30
0021fd19cmp [rax+56], 0
0021fd1esetne al
0021fd21movzx eax, al
0021fd24ret
0021fd25db 0x0f
0021fd26mov dh, 192
0021fd28ret
0021fd29
0021fd29 0f 1f 80 00 00 00 00 .......
0021fd30
0021fd30loc_21fd30:
0021fd30mov eax, 1
0021fd35ret
0021fd36
0021fd36 66 2e 0f 1f 84 00 00 00 00 00 f.........
0021fd40
0021fd40loc_21fd40:
0021fd40sub rsp, 8
0021fd44call caml_bad_caml_state
0021fd00
0021fd00caml_check_pending_actions:
0021fd00mov rax, [rip+0x562dd]
0021fd07mov rax, [rax]
0021fd0btest rax, rax
0021fd0eje 0x21fd40
0021fd10mov rdx, [rax]
0021fd13cmp [rax+8], rdx
0021fd17jb 0x21fd30
0021fd19cmp [rax+56], 0
0021fd1esetne al
0021fd21movzx eax, al
0021fd24ret
0021fd25db 0x0f
0021fd26mov dh, 192
0021fd28ret
0021fd29
0021fd29 0f 1f 80 00 00 00 00 .......
0021fd30
0021fd30loc_21fd30:
0021fd30mov eax, 1
0021fd35ret
0021fd36
0021fd36 66 2e 0f 1f 84 00 00 00 00 00 f.........
0021fd40
0021fd40loc_21fd40:
0021fd40sub rsp, 8
0021fd44call caml_bad_caml_state
0021fd00
0021fd49
0021fd49 // align 0x10
0021fd49 // align 0x10
0021fd50
0021fd50caml_do_pending_actions_res:
0021fd50push rbx
0021fd51call caml_handle_gc_interrupt
0021fd56mov rbx, [rip+0x56287]
0021fd5dmov rax, [rbx]
0021fd61mov [rax+56], 0
0021fd69mov rax, [rip+0x1592ec]
0021fd70test rax, rax
0021fd73jne 0x21fe00
0021fd79call caml_memprof_run_callbacks_res
0021fd7emov ecx, eax
0021fd80mov r8, rax
0021fd83mov r9, rdx
0021fd86test ecx, ecx
0021fd88je 0x21fdc0
0021fd8amov rsi, r9
0021fd8dmov rdx, [rbx]
0021fd91
0021fd91loc_21fd91:
0021fd91mov rax, r8
0021fd94mov r11, rsi
0021fd97mov [rdx+56], 1
0021fd9fpop rbx
0021fda0mov rdx, 0xffffffff00000000
0021fdaaand rax, rdx
0021fdadmov rdx, r11
0021fdb0or rax, rcx
0021fdb3mov r10, rax
0021fdb6mov eax, r10l
0021fdb9ret
0021fdbadb 0x44
0021fdbbmov eax, edx
0021fdbdret
0021fdbe
0021fdbe 66 90 f.
0021fdc0
0021fdc0loc_21fdc0:
0021fdc0call caml_final_do_calls_res
0021fdc5mov ecx, eax
0021fdc7mov r8, rax
0021fdcamov r9, rdx
0021fdcdtest ecx, ecx
0021fdcfjne 0x21fd8e
0021fdd1call caml_process_external_interrupt
0021fdd6xor ecx, ecx
0021fdd8mov r11l, 1
0021fddepop rbx
0021fddfmov rsi, 0xffffffff00000000
0021fde9mov rdx, r11
0021fdecand rcx, rsi
0021fdefmov r10, rcx
0021fdf2mov eax, r10l
0021fdf5ret
0021fdf6
0021fdf6 66 2e 0f 1f 84 00 00 00 00 00 f.........
0021fe00
0021fe00loc_21fe00:
0021fe00call fn_21fac0
0021fe05mov ecx, eax
0021fe07mov rsi, rdx
0021fe0amov r8, rax
0021fe0dtest ecx, ecx
0021fe0fjne 0x21fd91
0021fe11jmp 0x21fd7d
0021fd50
0021fd50caml_do_pending_actions_res:
0021fd50push rbx
0021fd51call caml_handle_gc_interrupt
0021fd56mov rbx, [rip+0x56287]
0021fd5dmov rax, [rbx]
0021fd61mov [rax+56], 0
0021fd69mov rax, [rip+0x1592ec]
0021fd70test rax, rax
0021fd73jne 0x21fe00
0021fd79call caml_memprof_run_callbacks_res
0021fd7emov ecx, eax
0021fd80mov r8, rax
0021fd83mov r9, rdx
0021fd86test ecx, ecx
0021fd88je 0x21fdc0
0021fd8amov rsi, r9
0021fd8dmov rdx, [rbx]
0021fd91
0021fd91loc_21fd91:
0021fd91mov rax, r8
0021fd94mov r11, rsi
0021fd97mov [rdx+56], 1
0021fd9fpop rbx
0021fda0mov rdx, 0xffffffff00000000
0021fdaaand rax, rdx
0021fdadmov rdx, r11
0021fdb0or rax, rcx
0021fdb3mov r10, rax
0021fdb6mov eax, r10l
0021fdb9ret
0021fdbadb 0x44
0021fdbbmov eax, edx
0021fdbdret
0021fdbe
0021fdbe 66 90 f.
0021fdc0
0021fdc0loc_21fdc0:
0021fdc0call caml_final_do_calls_res
0021fdc5mov ecx, eax
0021fdc7mov r8, rax
0021fdcamov r9, rdx
0021fdcdtest ecx, ecx
0021fdcfjne 0x21fd8e
0021fdd1call caml_process_external_interrupt
0021fdd6xor ecx, ecx
0021fdd8mov r11l, 1
0021fddepop rbx
0021fddfmov rsi, 0xffffffff00000000
0021fde9mov rdx, r11
0021fdecand rcx, rsi
0021fdefmov r10, rcx
0021fdf2mov eax, r10l
0021fdf5ret
0021fdf6
0021fdf6 66 2e 0f 1f 84 00 00 00 00 00 f.........
0021fe00
0021fe00loc_21fe00:
0021fe00call fn_21fac0
0021fe05mov ecx, eax
0021fe07mov rsi, rdx
0021fe0amov r8, rax
0021fe0dtest ecx, ecx
0021fe0fjne 0x21fd91
0021fe11jmp 0x21fd7d
0021fd50
0021fe16
0021fe16 // align 0x10
0021fe16 // align 0x10
0021fe20
0021fe20caml_process_pending_actions_with_root_res:
0021fe20push rbp
0021fe21push rbx
0021fe22sub rsp, 104
0021fe26mov [rsp+8], rdi
0021fe2bmov rax, [0x28]
0021fe34mov [rsp+88], rax
0021fe39xor eax, eax
0021fe3bcall caml_check_pending_actions
0021fe40test eax, eax
0021fe42jne 0x21fe70
0021fe44mov rdi, [rsp+8]
0021fe49xor esi, esi
0021fe4bmov eax, esi
0021fe4dmov rdx, rdi
0021fe50mov rcx, [rsp+88]
0021fe55sub rcx, [0x28]
0021fe5ejne 0x21feda
0021fe60add rsp, 104
0021fe64pop rbx
0021fe65pop rbp
0021fe66ret
0021fe67db 0x68
0021fe68pop rbx
0021fe69pop rbp
0021fe6aret
0021fe6b
0021fe6b 0f 1f 44 00 00 ..D..
0021fe70
0021fe70loc_21fe70:
0021fe70mov rax, [rip+0x56171]
0021fe77mov rbx, [rax]
0021fe7blea rax, [rsp+16]
0021fe80mov rbp, [rbx+160]
0021fe87mov [rbx+160], rax
0021fe8emov eax, 1
0021fe93movq x0, rax
0021fe98lea rax, [rsp+8]
0021fe9dpunpcklqdq x0, x0
0021fea1mov [rsp+16], rbp
0021fea6mov [rsp+40], rax
0021feabmovups [rsp+24], x0
0021feb0call caml_do_pending_actions_res
0021feb5mov ecx, eax
0021feb7test ecx, ecx
0021feb9jne 0x21fec8
0021febbmov [rbx+160], rbp
0021fec2jmp 0x21fe48
0021fec4
0021fec4 0f 1f 40 00 ..@.
0021fec8
0021fec8loc_21fec8:
0021fec8mov [rbx+160], rbp
0021fecfmov rsi, rcx
0021fed2mov rdi, rdx
0021fed5jmp 0x21fe4f
0021feda
0021fedaloc_21feda:
0021fedacall fn_f4590
0021fe20
0021fe20caml_process_pending_actions_with_root_res:
0021fe20push rbp
0021fe21push rbx
0021fe22sub rsp, 104
0021fe26mov [rsp+8], rdi
0021fe2bmov rax, [0x28]
0021fe34mov [rsp+88], rax
0021fe39xor eax, eax
0021fe3bcall caml_check_pending_actions
0021fe40test eax, eax
0021fe42jne 0x21fe70
0021fe44mov rdi, [rsp+8]
0021fe49xor esi, esi
0021fe4bmov eax, esi
0021fe4dmov rdx, rdi
0021fe50mov rcx, [rsp+88]
0021fe55sub rcx, [0x28]
0021fe5ejne 0x21feda
0021fe60add rsp, 104
0021fe64pop rbx
0021fe65pop rbp
0021fe66ret
0021fe67db 0x68
0021fe68pop rbx
0021fe69pop rbp
0021fe6aret
0021fe6b
0021fe6b 0f 1f 44 00 00 ..D..
0021fe70
0021fe70loc_21fe70:
0021fe70mov rax, [rip+0x56171]
0021fe77mov rbx, [rax]
0021fe7blea rax, [rsp+16]
0021fe80mov rbp, [rbx+160]
0021fe87mov [rbx+160], rax
0021fe8emov eax, 1
0021fe93movq x0, rax
0021fe98lea rax, [rsp+8]
0021fe9dpunpcklqdq x0, x0
0021fea1mov [rsp+16], rbp
0021fea6mov [rsp+40], rax
0021feabmovups [rsp+24], x0
0021feb0call caml_do_pending_actions_res
0021feb5mov ecx, eax
0021feb7test ecx, ecx
0021feb9jne 0x21fec8
0021febbmov [rbx+160], rbp
0021fec2jmp 0x21fe48
0021fec4
0021fec4 0f 1f 40 00 ..@.
0021fec8
0021fec8loc_21fec8:
0021fec8mov [rbx+160], rbp
0021fecfmov rsi, rcx
0021fed2mov rdi, rdx
0021fed5jmp 0x21fe4f
0021feda
0021fedaloc_21feda:
0021fedacall fn_f4590
0021fe20
0021fedf
0021fedf // align 0x10
0021fedf // align 0x10
0021fee0
0021fee0caml_process_pending_actions_with_root:
0021fee0push rbp
0021fee1push rbx
0021fee2sub rsp, 104
0021fee6mov rax, [0x28]
0021feefmov [rsp+88], rax
0021fef4xor eax, eax
0021fef6mov [rsp+8], rdi
0021fefbcall caml_check_pending_actions
0021ff00test eax, eax
0021ff02jne 0x21ff28
0021ff04mov rax, [rsp+8]
0021ff09mov rdx, [rsp+88]
0021ff0esub rdx, [0x28]
0021ff17jne 0x21ff8f
0021ff19add rsp, 104
0021ff1dpop rbx
0021ff1epop rbp
0021ff1fret
0021ff20db 0x68
0021ff21pop rbx
0021ff22pop rbp
0021ff23ret
0021ff24
0021ff24 0f 1f 40 00 ..@.
0021ff28
0021ff28loc_21ff28:
0021ff28mov rax, [rip+0x560b9]
0021ff2fmov rbx, [rax]
0021ff33lea rax, [rsp+16]
0021ff38mov rbp, [rbx+160]
0021ff3fmov [rbx+160], rax
0021ff46mov eax, 1
0021ff4bmovq x0, rax
0021ff50lea rax, [rsp+8]
0021ff55punpcklqdq x0, x0
0021ff59mov [rsp+16], rbp
0021ff5emov [rsp+40], rax
0021ff63movups [rsp+24], x0
0021ff68call caml_do_pending_actions_res
0021ff6dtest eax, eax
0021ff6fjne 0x21ff80
0021ff71mov [rbx+160], rbp
0021ff78jmp 0x21ff08
0021ff7a
0021ff7a 66 0f 1f 44 00 00 f..D..
0021ff80
0021ff80loc_21ff80:
0021ff80mov [rbx+160], rbp
0021ff87mov rdi, rdx
0021ff8acall caml_raise
0021ff8f
0021ff8floc_21ff8f:
0021ff8fcall fn_f4590
0021fee0
0021fee0caml_process_pending_actions_with_root:
0021fee0push rbp
0021fee1push rbx
0021fee2sub rsp, 104
0021fee6mov rax, [0x28]
0021feefmov [rsp+88], rax
0021fef4xor eax, eax
0021fef6mov [rsp+8], rdi
0021fefbcall caml_check_pending_actions
0021ff00test eax, eax
0021ff02jne 0x21ff28
0021ff04mov rax, [rsp+8]
0021ff09mov rdx, [rsp+88]
0021ff0esub rdx, [0x28]
0021ff17jne 0x21ff8f
0021ff19add rsp, 104
0021ff1dpop rbx
0021ff1epop rbp
0021ff1fret
0021ff20db 0x68
0021ff21pop rbx
0021ff22pop rbp
0021ff23ret
0021ff24
0021ff24 0f 1f 40 00 ..@.
0021ff28
0021ff28loc_21ff28:
0021ff28mov rax, [rip+0x560b9]
0021ff2fmov rbx, [rax]
0021ff33lea rax, [rsp+16]
0021ff38mov rbp, [rbx+160]
0021ff3fmov [rbx+160], rax
0021ff46mov eax, 1
0021ff4bmovq x0, rax
0021ff50lea rax, [rsp+8]
0021ff55punpcklqdq x0, x0
0021ff59mov [rsp+16], rbp
0021ff5emov [rsp+40], rax
0021ff63movups [rsp+24], x0
0021ff68call caml_do_pending_actions_res
0021ff6dtest eax, eax
0021ff6fjne 0x21ff80
0021ff71mov [rbx+160], rbp
0021ff78jmp 0x21ff08
0021ff7a
0021ff7a 66 0f 1f 44 00 00 f..D..
0021ff80
0021ff80loc_21ff80:
0021ff80mov [rbx+160], rbp
0021ff87mov rdi, rdx
0021ff8acall caml_raise
0021ff8f
0021ff8floc_21ff8f:
0021ff8fcall fn_f4590
0021fee0
0021ff94
0021ff94 // align 0x10
0021ff94 // align 0x10
0021ffa0
0021ffa0caml_process_pending_actions_res:
0021ffa0sub rsp, 8
0021ffa4call caml_check_pending_actions
0021ffa9test eax, eax
0021ffabjne 0x21ffd0
0021ffadxor eax, eax
0021ffafmov edx, 1
0021ffb4add rsp, 8
0021ffb8mov rsi, 0xffffffff00000000
0021ffc2mov rcx, rax
0021ffc5and rcx, rsi
0021ffc8mov rax, rcx
0021ffcbret
0021ffccadd rsp, 8
0021ffd0
0021ffd0loc_21ffd0:
0021ffd0jmp 0x21fd50
0021ffd5db 0x77
0021ffd6std
0021ffd7db 0xff
0021ffd8db 0xff
0021ffa0
0021ffa0caml_process_pending_actions_res:
0021ffa0sub rsp, 8
0021ffa4call caml_check_pending_actions
0021ffa9test eax, eax
0021ffabjne 0x21ffd0
0021ffadxor eax, eax
0021ffafmov edx, 1
0021ffb4add rsp, 8
0021ffb8mov rsi, 0xffffffff00000000
0021ffc2mov rcx, rax
0021ffc5and rcx, rsi
0021ffc8mov rax, rcx
0021ffcbret
0021ffccadd rsp, 8
0021ffd0
0021ffd0loc_21ffd0:
0021ffd0jmp 0x21fd50
0021ffd5db 0x77
0021ffd6std
0021ffd7db 0xff
0021ffd8db 0xff
0021ffa0
0021ffd9
0021ffd9 // align 0x10
0021ffd9 // align 0x10
0021ffe0
0021ffe0caml_process_pending_actions:
0021ffe0sub rsp, 8
0021ffe4call caml_check_pending_actions
0021ffe9test eax, eax
0021ffebjne 0x220000
0021ffedadd rsp, 8
0021fff1
0021fff1loc_21fff1:
0021fff1ret
0021fff2nop [rax+rax]
0021fffccall caml_do_pending_actions_res
00220001test eax, eax
00220003je 0x21fff1
00220005mov rdi, rdx
00220008call caml_raise
0022000ddb 0x8f
0022000edb 0x60
0022000fadd [rax], al
0021ffe0
0021ffe0caml_process_pending_actions:
0021ffe0sub rsp, 8
0021ffe4call caml_check_pending_actions
0021ffe9test eax, eax
0021ffebjne 0x220000
0021ffedadd rsp, 8
0021fff1
0021fff1loc_21fff1:
0021fff1ret
0021fff2nop [rax+rax]
0021fffccall caml_do_pending_actions_res
00220001test eax, eax
00220003je 0x21fff1
00220005mov rdi, rdx
00220008call caml_raise
0022000ddb 0x8f
0022000edb 0x60
0022000fadd [rax], al
0021ffe0
00220011
00220011 // align 0x10
00220011 // align 0x10
00220020
00220020caml_process_pending_actions_exn:
00220020
00220020 f3 0f 1e ...
00220023cli
00220024sub rsp, 8
00220028call caml_check_pending_actions
0022002dmov edx, eax
0022002fmov eax, 1
00220034test edx, edx
00220036jne 0x220040
00220038add rsp, 8
0022003cret
0022003d
0022003d 0f 1f 00 ...
00220040
00220040loc_220040:
00220040call caml_do_pending_actions_res
00220045mov rsi, rax
00220048mov rax, rdx
0022004bor rdx, 2
0022004ftest esi, esi
00220051cmovne rax, rdx
00220055add rsp, 8
00220059ret
00220020
00220020caml_process_pending_actions_exn:
00220020
00220020 f3 0f 1e ...
00220023cli
00220024sub rsp, 8
00220028call caml_check_pending_actions
0022002dmov edx, eax
0022002fmov eax, 1
00220034test edx, edx
00220036jne 0x220040
00220038add rsp, 8
0022003cret
0022003d
0022003d 0f 1f 00 ...
00220040
00220040loc_220040:
00220040call caml_do_pending_actions_res
00220045mov rsi, rax
00220048mov rax, rdx
0022004bor rdx, 2
0022004ftest esi, esi
00220051cmovne rax, rdx
00220055add rsp, 8
00220059ret
00220020
0022005a
0022005a // align 0x10
0022005a // align 0x10
00220060
00220060caml_convert_signal_number:
00220060mov eax, edi
00220062cmp edi, -28
00220065jb 0x220079
00220067not eax
00220069lea rdx, [rip+0x124cc]
00220070cdqe
00220072mov eax, [rdx+4*rax]
00220075ret
00220076db 0x8b
00220077add al, -126
00220079
00220079loc_220079:
00220079ret
00220060
00220060caml_convert_signal_number:
00220060mov eax, edi
00220062cmp edi, -28
00220065jb 0x220079
00220067not eax
00220069lea rdx, [rip+0x124cc]
00220070cdqe
00220072mov eax, [rdx+4*rax]
00220075ret
00220076db 0x8b
00220077add al, -126
00220079
00220079loc_220079:
00220079ret
00220060
0022007a
0022007a // align 0x10
0022007a // align 0x10
00220080
00220080caml_rev_convert_signal_number:
00220080xor eax, eax
00220082lea rdx, [rip+0x124b3]
00220089jmp 0x22009a
0022008bdb 0x01
0022008cadd bl, ch
0022008edb 0x0b
0022008f
0022008f 90 .
00220090
00220090loc_220090:
00220090add rax, 1
00220094cmp rax, 28
00220098je 0x2200a8
0022009a
0022009aloc_22009a:
0022009acmp [rdx+4*rax], edi
0022009djne 0x220090
0022009fnot eax
002200a1ret
002200a2
002200a2 66 0f 1f 44 00 00 f..D..
002200a8
002200a8loc_2200a8:
002200a8mov eax, edi
002200aaret
00220080
00220080caml_rev_convert_signal_number:
00220080xor eax, eax
00220082lea rdx, [rip+0x124b3]
00220089jmp 0x22009a
0022008bdb 0x01
0022008cadd bl, ch
0022008edb 0x0b
0022008f
0022008f 90 .
00220090
00220090loc_220090:
00220090add rax, 1
00220094cmp rax, 28
00220098je 0x2200a8
0022009a
0022009aloc_22009a:
0022009acmp [rdx+4*rax], edi
0022009djne 0x220090
0022009fnot eax
002200a1ret
002200a2
002200a2 66 0f 1f 44 00 00 f..D..
002200a8
002200a8loc_2200a8:
002200a8mov eax, edi
002200aaret
00220080
002200ab
002200ab // align 0x10
002200ab // align 0x10
002200b0
002200b0caml_init_signal_stack:
002200b0sub rsp, 40
002200b4mov edi, 8192
002200b9mov rax, [0x28]
002200c2mov [rsp+24], rax
002200c7xor eax, eax
002200c9mov [rsp+8], 0
002200d1mov [rsp+16], 8192
002200dacall fn_f4250
002200dfmov [rsp], rax
002200e3test rax, rax
002200e6je 0x220120
002200e8mov rdi, rsp
002200ebxor esi, esi
002200edcall fn_f47b0
002200f2mov edx, eax
002200f4mov rax, [rsp]
002200f8test edx, edx
002200fajs 0x220118
002200fcmov rdx, [rsp+24]
00220101sub rdx, [0x28]
0022010ajne 0x220124
0022010cadd rsp, 40
00220110ret
00220111db 0x83
00220112db 0xc4
00220113sub bl, al
00220115
00220115 0f 1f 00 ...
00220118
00220118loc_220118:
00220118mov rdi, rax
0022011bcall fn_f4370
00220120
00220120loc_220120:
00220120xor eax, eax
00220122jmp 0x220100
00220124
00220124loc_220124:
00220124call fn_f4590
002200b0
002200b0caml_init_signal_stack:
002200b0sub rsp, 40
002200b4mov edi, 8192
002200b9mov rax, [0x28]
002200c2mov [rsp+24], rax
002200c7xor eax, eax
002200c9mov [rsp+8], 0
002200d1mov [rsp+16], 8192
002200dacall fn_f4250
002200dfmov [rsp], rax
002200e3test rax, rax
002200e6je 0x220120
002200e8mov rdi, rsp
002200ebxor esi, esi
002200edcall fn_f47b0
002200f2mov edx, eax
002200f4mov rax, [rsp]
002200f8test edx, edx
002200fajs 0x220118
002200fcmov rdx, [rsp+24]
00220101sub rdx, [0x28]
0022010ajne 0x220124
0022010cadd rsp, 40
00220110ret
00220111db 0x83
00220112db 0xc4
00220113sub bl, al
00220115
00220115 0f 1f 00 ...
00220118
00220118loc_220118:
00220118mov rdi, rax
0022011bcall fn_f4370
00220120
00220120loc_220120:
00220120xor eax, eax
00220122jmp 0x220100
00220124
00220124loc_220124:
00220124call fn_f4590
002200b0
00220129
00220129 // align 0x10
00220129 // align 0x10
00220130
00220130caml_free_signal_stack:
00220130push rbp
00220131push rbx
00220132sub rsp, 72
00220136mov rbx, [0x28]
0022013fmov [rsp+56], rbx
00220144mov rbx, rdi
00220147mov rsi, rsp
0022014alea rdi, [rsp+32]
0022014fmov [rsp+40], 2
00220157mov [rsp+32], 0
00220160mov [rsp+48], 8192
00220169call fn_f47b0
0022016etest eax, eax
00220170js 0x2201ab
00220172test [rsp+8], 2
00220177jne 0x22018d
00220179cmp [rsp], rbx
0022017dje 0x22018d
0022017fxor esi, esi
00220181mov rdi, rsp
00220184call fn_f47b0
00220189mov rax, [rsp+56]
0022018esub rax, [0x28]
00220197jne 0x2201c0
00220199add rsp, 72
0022019dmov rdi, rbx
002201a0pop rbx
002201a1pop rbp
002201a2jmp 0xf4370
002201a7call fn_f4570
002201aclea rdi, [rip+0x11209]
002201b3mov esi, [rax]
002201b5xor eax, eax
002201b7call caml_fatal_error
002201bccall fn_f4590
002201c1db 0xcb
002201c2in eax, dx
002201c4db 0xff
00220130
00220130caml_free_signal_stack:
00220130push rbp
00220131push rbx
00220132sub rsp, 72
00220136mov rbx, [0x28]
0022013fmov [rsp+56], rbx
00220144mov rbx, rdi
00220147mov rsi, rsp
0022014alea rdi, [rsp+32]
0022014fmov [rsp+40], 2
00220157mov [rsp+32], 0
00220160mov [rsp+48], 8192
00220169call fn_f47b0
0022016etest eax, eax
00220170js 0x2201ab
00220172test [rsp+8], 2
00220177jne 0x22018d
00220179cmp [rsp], rbx
0022017dje 0x22018d
0022017fxor esi, esi
00220181mov rdi, rsp
00220184call fn_f47b0
00220189mov rax, [rsp+56]
0022018esub rax, [0x28]
00220197jne 0x2201c0
00220199add rsp, 72
0022019dmov rdi, rbx
002201a0pop rbx
002201a1pop rbp
002201a2jmp 0xf4370
002201a7call fn_f4570
002201aclea rdi, [rip+0x11209]
002201b3mov esi, [rax]
002201b5xor eax, eax
002201b7call caml_fatal_error
002201bccall fn_f4590
002201c1db 0xcb
002201c2in eax, dx
002201c4db 0xff
00220130
002201c5
002201c5 // align 0x10
002201c5 // align 0x10
002201d0
002201d0caml_init_signals:
002201d0push rbx
002201d1sub rsp, 160
002201d8mov rax, [0x28]
002201e1mov [rsp+152], rax
002201e9xor eax, eax
002201ebcall caml_init_signal_stack
002201f0mov [rip+0x158e6d], rax
002201f7test rax, rax
002201faje 0x22026b
002201fcmov rdx, rsp
002201ffxor esi, esi
00220201mov edi, 27
00220206mov rbx, rsp
00220209call fn_f4480
0022020emov eax, [rsp+136]
00220215test al, 4
00220217je 0x220240
00220219test eax, 0x8000000
0022021eje 0x22024e
00220220mov rax, [rsp+152]
00220228sub rax, [0x28]
00220231jne 0x220277
00220233add rsp, 160
0022023apop rbx
0022023bret
0022023ccmp [rsp], 1
00220241jbe 0x220224
00220243test eax, 0x8000000
00220248jne 0x220224
0022024aor eax, 0x8000000
0022024fxor edx, edx
00220251mov rsi, rbx
00220254mov edi, 27
00220259mov [rsp+136], eax
00220260call fn_f4480
00220265jmp 0x220224
00220267lea rdi, [rip+0x11176]
0022026ecall caml_fatal_error
00220273call fn_f4590
00220278db 0x14
00220279in eax, dx
0022027bdb 0xff
002201d0
002201d0caml_init_signals:
002201d0push rbx
002201d1sub rsp, 160
002201d8mov rax, [0x28]
002201e1mov [rsp+152], rax
002201e9xor eax, eax
002201ebcall caml_init_signal_stack
002201f0mov [rip+0x158e6d], rax
002201f7test rax, rax
002201faje 0x22026b
002201fcmov rdx, rsp
002201ffxor esi, esi
00220201mov edi, 27
00220206mov rbx, rsp
00220209call fn_f4480
0022020emov eax, [rsp+136]
00220215test al, 4
00220217je 0x220240
00220219test eax, 0x8000000
0022021eje 0x22024e
00220220mov rax, [rsp+152]
00220228sub rax, [0x28]
00220231jne 0x220277
00220233add rsp, 160
0022023apop rbx
0022023bret
0022023ccmp [rsp], 1
00220241jbe 0x220224
00220243test eax, 0x8000000
00220248jne 0x220224
0022024aor eax, 0x8000000
0022024fxor edx, edx
00220251mov rsi, rbx
00220254mov edi, 27
00220259mov [rsp+136], eax
00220260call fn_f4480
00220265jmp 0x220224
00220267lea rdi, [rip+0x11176]
0022026ecall caml_fatal_error
00220273call fn_f4590
00220278db 0x14
00220279in eax, dx
0022027bdb 0xff
002201d0
0022027c
0022027c // align 0x10
0022027c // align 0x10
00220280
00220280caml_terminate_signals:
00220280sub rsp, 8
00220284mov rdi, [rip+0x158dd9]
0022028bcall caml_free_signal_stack
00220290mov [rip+0x158dc9], 0
0022029badd rsp, 8
0022029fret
002202a0db 0x83
002202a1db 0xc4
002202a2or bl, al
00220280
00220280caml_terminate_signals:
00220280sub rsp, 8
00220284mov rdi, [rip+0x158dd9]
0022028bcall caml_free_signal_stack
00220290mov [rip+0x158dc9], 0
0022029badd rsp, 8
0022029fret
002202a0db 0x83
002202a1db 0xc4
002202a2or bl, al
00220280
002202a4
002202a4 // align 0x10
002202a4 // align 0x10
002202b0
002202b0caml_install_signal_handler:
002202b0push r13
002202b2push r12
002202b4push rbp
002202b5push rbx
002202b6sub rsp, 488
002202bdmovdqa x1, [rip+40455]
002202c5mov [rsp+8], rdi
002202camovq x2, rsp
002202cfmov [rsp], rsi
002202d3mov rax, [0x28]
002202dcmov [rsp+472], rax
002202e4mov rax, [rip+0x55cf9]
002202ebmov rbp, [rax]
002202eflea rax, [rsp+8]
002202f4movups [rsp+40], x1
002202f9movq x0, rax
002202felea rax, [rsp+32]
00220303movups [rsp+104], x1
00220308mov [rsp+96], rax
0022030dlea rax, [rsp+96]
00220312mov r12, [rbp+160]
00220319punpcklqdq x0, x2
0022031dmov [rbp+160], rax
00220324lea rax, [rsp+16]
00220329movups [rsp+56], x0
0022032emovq x0, rax
00220333lea rax, [rsp+24]
00220338movq x3, rax
0022033dmov rax, rdi
00220340mov [rsp+32], r12
00220345mov [rsp+16], 1
0022034epunpcklqdq x0, x3
00220352sar rax, 1
00220355mov [rsp+24], 1
0022035emovups [rsp+120], x0
00220363cmp eax, -28
00220366jb 0x2204b8
0022036cnot eax
0022036elea rdx, [rip+0x121c7]
00220375cdqe
00220377movsxd rbx, [rdx+4*rax]
0022037bmov edx, ebx
0022037dsub edx, 1
00220380cmp edx, 63
00220383ja 0x22056a
00220389mov rdx, [rsp]
0022038dxor eax, eax
0022038fcmp rdx, 1
00220393je 0x2203ad
00220395cmp rdx, 3
00220399lea rax, [rip-2884]
002203a0mov edx, 1
002203a5cmove rax, rdx
002203a9lea rdi, [rsp+168]
002203b1lea r13, [rsp+160]
002203b9mov [rsp+160], rax
002203c1call fn_f46c0
002203c6lea rdx, [rsp+320]
002203cemov rsi, r13
002203d1mov edi, ebx
002203d3mov [rsp+296], 0x8000000
002203decall fn_f4480
002203e3cmp eax, -1
002203e6je 0x220560
002203ecmov rax, [rsp+320]
002203f4lea rdx, [rip-2975]
002203fbcmp rax, rdx
002203feje 0x2204e0
00220404cmp rax, 1
00220408sete al
0022040bmovzx eax, al
0022040elea rax, [rax+rax+1]
00220413mov [rsp+16], rax
00220418test [rsp], 1
0022041c
0022041cloc_22041c:
0022041cjne 0x220477
0022041ecmp [rip+0x158c46], 0
00220426je 0x220538
0022042clea r13, [rip+0x158c49]
00220433mov rdi, r13
00220436call fn_f4710
0022043btest eax, eax
0022043djne 0x22057b
00220443mov rax, [rip+0x158c22]
0022044atest rax, rax
0022044dje 0x220510
00220453mov rdx, [rsp]
00220457
00220457loc_220457:
00220457lea rdi, [rax+8*rbx]
0022045bmov rsi, [rdx]
0022045ecall caml_modify
00220463mov rdi, r13
00220466call fn_f47c0
0022046btest eax, eax
0022046djne 0x22054e
00220473mov rax, [rip+0x158be2]
0022047atest rax, rax
0022047djne 0x2204c8
0022047fmov [rbp+160], r12
00220486mov rax, [rsp+16]
0022048bmov rdx, [rsp+472]
00220493sub rdx, [0x28]
0022049cjne 0x220576
002204a2add rsp, 488
002204a9pop rbx
002204aapop rbp
002204abpop r12
002204adpop r13
002204afret
002204b0db 0x5c
002204b1pop r13
002204b3ret
002204b4
002204b4 0f 1f 40 00 ..@.
002204b8
002204b8loc_2204b8:
002204b8movsxd rbx, eax
002204bbmov edx, eax
002204bdjmp 0x220381
002204c2
002204c2 66 0f 1f 44 00 00 f..D..
002204c8
002204c8loc_2204c8:
002204c8call fn_21fac0
002204cdtest eax, eax
002204cfje 0x220483
002204d1mov rdi, rdx
002204d4call caml_raise
002204d9nop [rax]
002204e0
002204e0loc_2204e0:
002204e0xor esi, esi
002204e2mov edi, 1
002204e7call caml_alloc_small
002204ecmov rcx, [rip+0x158b7d]
002204f3movsxd rdx, ebx
002204f6mov [rsp+16], rax
002204fblea rdx, [rcx+8*rdx]
002204ffmov rdx, [rdx]
00220502mov [rax], rdx
00220505jmp 0x22041c
0022050a
0022050a 66 0f 1f 44 00 00 f..D..
00220510
00220510loc_220510:
00220510mov rax, [rsp+24]
00220515lea rdi, [rip+0x158b54]
0022051cmov [rip+0x158b4d], rax
00220523call caml_register_global_root
00220528mov rax, [rip+0x158b41]
0022052fjmp 0x220457
00220534
00220534 0f 1f 40 00 ..@.
00220538
00220538loc_220538:
00220538xor esi, esi
0022053amov edi, 65
0022053fcall caml_alloc
00220544mov [rsp+24], rax
00220549jmp 0x220430
0022054e
0022054eloc_22054e:
0022054emov esi, eax
00220550lea rdi, [rip+61379]
00220557call caml_plat_fatal_error
0022055cnop [rax]
00220560
00220560loc_220560:
00220560mov edi, 1
00220565call caml_sys_error
0022056a
0022056aloc_22056a:
0022056alea rdi, [rip+0x10ea7]
00220571call caml_invalid_argument
00220576
00220576loc_220576:
00220576call fn_f4590
0022057b
0022057bloc_22057b:
0022057bmov esi, eax
0022057dlea rdi, [rip+61323]
00220584call caml_plat_fatal_error
002202b0
002202b0caml_install_signal_handler:
002202b0push r13
002202b2push r12
002202b4push rbp
002202b5push rbx
002202b6sub rsp, 488
002202bdmovdqa x1, [rip+40455]
002202c5mov [rsp+8], rdi
002202camovq x2, rsp
002202cfmov [rsp], rsi
002202d3mov rax, [0x28]
002202dcmov [rsp+472], rax
002202e4mov rax, [rip+0x55cf9]
002202ebmov rbp, [rax]
002202eflea rax, [rsp+8]
002202f4movups [rsp+40], x1
002202f9movq x0, rax
002202felea rax, [rsp+32]
00220303movups [rsp+104], x1
00220308mov [rsp+96], rax
0022030dlea rax, [rsp+96]
00220312mov r12, [rbp+160]
00220319punpcklqdq x0, x2
0022031dmov [rbp+160], rax
00220324lea rax, [rsp+16]
00220329movups [rsp+56], x0
0022032emovq x0, rax
00220333lea rax, [rsp+24]
00220338movq x3, rax
0022033dmov rax, rdi
00220340mov [rsp+32], r12
00220345mov [rsp+16], 1
0022034epunpcklqdq x0, x3
00220352sar rax, 1
00220355mov [rsp+24], 1
0022035emovups [rsp+120], x0
00220363cmp eax, -28
00220366jb 0x2204b8
0022036cnot eax
0022036elea rdx, [rip+0x121c7]
00220375cdqe
00220377movsxd rbx, [rdx+4*rax]
0022037bmov edx, ebx
0022037dsub edx, 1
00220380cmp edx, 63
00220383ja 0x22056a
00220389mov rdx, [rsp]
0022038dxor eax, eax
0022038fcmp rdx, 1
00220393je 0x2203ad
00220395cmp rdx, 3
00220399lea rax, [rip-2884]
002203a0mov edx, 1
002203a5cmove rax, rdx
002203a9lea rdi, [rsp+168]
002203b1lea r13, [rsp+160]
002203b9mov [rsp+160], rax
002203c1call fn_f46c0
002203c6lea rdx, [rsp+320]
002203cemov rsi, r13
002203d1mov edi, ebx
002203d3mov [rsp+296], 0x8000000
002203decall fn_f4480
002203e3cmp eax, -1
002203e6je 0x220560
002203ecmov rax, [rsp+320]
002203f4lea rdx, [rip-2975]
002203fbcmp rax, rdx
002203feje 0x2204e0
00220404cmp rax, 1
00220408sete al
0022040bmovzx eax, al
0022040elea rax, [rax+rax+1]
00220413mov [rsp+16], rax
00220418test [rsp], 1
0022041c
0022041cloc_22041c:
0022041cjne 0x220477
0022041ecmp [rip+0x158c46], 0
00220426je 0x220538
0022042clea r13, [rip+0x158c49]
00220433mov rdi, r13
00220436call fn_f4710
0022043btest eax, eax
0022043djne 0x22057b
00220443mov rax, [rip+0x158c22]
0022044atest rax, rax
0022044dje 0x220510
00220453mov rdx, [rsp]
00220457
00220457loc_220457:
00220457lea rdi, [rax+8*rbx]
0022045bmov rsi, [rdx]
0022045ecall caml_modify
00220463mov rdi, r13
00220466call fn_f47c0
0022046btest eax, eax
0022046djne 0x22054e
00220473mov rax, [rip+0x158be2]
0022047atest rax, rax
0022047djne 0x2204c8
0022047fmov [rbp+160], r12
00220486mov rax, [rsp+16]
0022048bmov rdx, [rsp+472]
00220493sub rdx, [0x28]
0022049cjne 0x220576
002204a2add rsp, 488
002204a9pop rbx
002204aapop rbp
002204abpop r12
002204adpop r13
002204afret
002204b0db 0x5c
002204b1pop r13
002204b3ret
002204b4
002204b4 0f 1f 40 00 ..@.
002204b8
002204b8loc_2204b8:
002204b8movsxd rbx, eax
002204bbmov edx, eax
002204bdjmp 0x220381
002204c2
002204c2 66 0f 1f 44 00 00 f..D..
002204c8
002204c8loc_2204c8:
002204c8call fn_21fac0
002204cdtest eax, eax
002204cfje 0x220483
002204d1mov rdi, rdx
002204d4call caml_raise
002204d9nop [rax]
002204e0
002204e0loc_2204e0:
002204e0xor esi, esi
002204e2mov edi, 1
002204e7call caml_alloc_small
002204ecmov rcx, [rip+0x158b7d]
002204f3movsxd rdx, ebx
002204f6mov [rsp+16], rax
002204fblea rdx, [rcx+8*rdx]
002204ffmov rdx, [rdx]
00220502mov [rax], rdx
00220505jmp 0x22041c
0022050a
0022050a 66 0f 1f 44 00 00 f..D..
00220510
00220510loc_220510:
00220510mov rax, [rsp+24]
00220515lea rdi, [rip+0x158b54]
0022051cmov [rip+0x158b4d], rax
00220523call caml_register_global_root
00220528mov rax, [rip+0x158b41]
0022052fjmp 0x220457
00220534
00220534 0f 1f 40 00 ..@.
00220538
00220538loc_220538:
00220538xor esi, esi
0022053amov edi, 65
0022053fcall caml_alloc
00220544mov [rsp+24], rax
00220549jmp 0x220430
0022054e
0022054eloc_22054e:
0022054emov esi, eax
00220550lea rdi, [rip+61379]
00220557call caml_plat_fatal_error
0022055cnop [rax]
00220560
00220560loc_220560:
00220560mov edi, 1
00220565call caml_sys_error
0022056a
0022056aloc_22056a:
0022056alea rdi, [rip+0x10ea7]
00220571call caml_invalid_argument
00220576
00220576loc_220576:
00220576call fn_f4590
0022057b
0022057bloc_22057b:
0022057bmov esi, eax
0022057dlea rdi, [rip+61323]
00220584call caml_plat_fatal_error
002202b0
00220589
00220589 // align 0x10
00220589 // align 0x10
00220590
00220590caml_skiplist_init:
00220590mov [rdi], 0
00220597mov rdx, rdi
0022059alea rdi, [rdi+8]
0022059exor eax, eax
002205a0mov [rdi+120], 0
002205a8mov rcx, rdx
002205aband rdi, -8
002205afsub rcx, rdi
002205b2add ecx, 136
002205b8shr ecx, 3
002205bbrep stosq [rdi], rax
002205bemov [rdx+136], 0
002205c8ret
002205c9db 0x00
002205caadd [rax], al
002205ccret
00220590
00220590caml_skiplist_init:
00220590mov [rdi], 0
00220597mov rdx, rdi
0022059alea rdi, [rdi+8]
0022059exor eax, eax
002205a0mov [rdi+120], 0
002205a8mov rcx, rdx
002205aband rdi, -8
002205afsub rcx, rdi
002205b2add ecx, 136
002205b8shr ecx, 3
002205bbrep stosq [rdi], rax
002205bemov [rdx+136], 0
002205c8ret
002205c9db 0x00
002205caadd [rax], al
002205ccret
00220590
002205cd
002205cd // align 0x10
002205cd // align 0x10
002205d0
002205d0caml_skiplist_find:
002205d0mov ecx, [rdi+136]
002205d6test ecx, ecx
002205d8js 0x220645
002205damovsxd rax, ecx
002205ddmov ecx, ecx
002205dflea r8, [8*rax]
002205e7sub rax, rcx
002205ealea r9, [8*rax]
002205f2mov rax, [rdi+r8]
002205f6
002205f6loc_2205f6:
002205f6test rax, rax
002205f9jne 0x22061b
002205fbjmp 0x220623
002205fddb 0x75
002205fesbb al, -21
00220600db 0x22
00220601
00220601 0f 1f 80 00 00 00 00 .......
00220608
00220608loc_220608:
00220608cmp rcx, rsi
0022060bje 0x220638
0022060dlea rdi, [rax+16]
00220611mov rax, [rax+r8+16]
00220616test rax, rax
00220619je 0x220623
0022061b
0022061bloc_22061b:
0022061bmov rcx, [rax]
0022061ecmp rsi, rcx
00220621jae 0x220608
00220623
00220623loc_220623:
00220623lea rax, [r8-8]
00220627cmp r8, r9
0022062aje 0x220645
0022062cmov r8, rax
0022062fjmp 0x2205f6
00220631
00220631 0f 1f 80 00 00 00 00 .......
00220638
00220638loc_220638:
00220638mov rax, [rax+8]
0022063cmov [rdx], rax
0022063fmov eax, 1
00220644ret
00220645
00220645loc_220645:
00220645xor eax, eax
00220647ret
002205d0
002205d0caml_skiplist_find:
002205d0mov ecx, [rdi+136]
002205d6test ecx, ecx
002205d8js 0x220645
002205damovsxd rax, ecx
002205ddmov ecx, ecx
002205dflea r8, [8*rax]
002205e7sub rax, rcx
002205ealea r9, [8*rax]
002205f2mov rax, [rdi+r8]
002205f6
002205f6loc_2205f6:
002205f6test rax, rax
002205f9jne 0x22061b
002205fbjmp 0x220623
002205fddb 0x75
002205fesbb al, -21
00220600db 0x22
00220601
00220601 0f 1f 80 00 00 00 00 .......
00220608
00220608loc_220608:
00220608cmp rcx, rsi
0022060bje 0x220638
0022060dlea rdi, [rax+16]
00220611mov rax, [rax+r8+16]
00220616test rax, rax
00220619je 0x220623
0022061b
0022061bloc_22061b:
0022061bmov rcx, [rax]
0022061ecmp rsi, rcx
00220621jae 0x220608
00220623
00220623loc_220623:
00220623lea rax, [r8-8]
00220627cmp r8, r9
0022062aje 0x220645
0022062cmov r8, rax
0022062fjmp 0x2205f6
00220631
00220631 0f 1f 80 00 00 00 00 .......
00220638
00220638loc_220638:
00220638mov rax, [rax+8]
0022063cmov [rdx], rax
0022063fmov eax, 1
00220644ret
00220645
00220645loc_220645:
00220645xor eax, eax
00220647ret
002205d0
00220648
00220648 // align 0x20
00220648 // align 0x20
00220660
00220660caml_skiplist_find_below:
00220660mov eax, [rdi+136]
00220666mov r10, rdx
00220669mov r11, rcx
0022066ctest eax, eax
0022066ejs 0x2206ea
00220670movsxd r9, eax
00220673mov eax, eax
00220675xor r8l, r8l
00220678lea rcx, [8*r9]
00220680sub r9, rax
00220683shl r9, 3
00220687nop [rax+rax]
0022068cmov rax, [rdi+rcx]
00220690
00220690loc_220690:
00220690test rax, rax
00220693jne 0x2206b4
00220695jmp 0x2206b9
00220697db 0x75
00220698sbb ebp, ebx
0022069adb 0x1e
0022069b
0022069b 0f 1f 44 00 00 ..D..
002206a0
002206a0loc_2206a0:
002206a0mov rdx, [rax+rcx+16]
002206a5lea rdi, [rax+16]
002206a9mov r8, rax
002206actest rdx, rdx
002206afje 0x2206b9
002206b1mov rax, rdx
002206b4
002206b4loc_2206b4:
002206b4cmp rsi, [rax]
002206b7jae 0x2206a0
002206b9
002206b9loc_2206b9:
002206b9lea rax, [rcx-8]
002206bdcmp rcx, r9
002206c0je 0x2206d0
002206c2mov rcx, rax
002206c5jmp 0x220690
002206c7
002206c7 66 0f 1f 84 00 00 00 00 00 f........
002206d0
002206d0loc_2206d0:
002206d0xor eax, eax
002206d2test r8, r8
002206d5je 0x2206ec
002206d7mov rax, [r8]
002206damov [r10], rax
002206ddmov rax, [r8+8]
002206e1mov [r11], rax
002206e4mov eax, 1
002206e9ret
002206ea
002206ealoc_2206ea:
002206eaxor eax, eax
002206ec
002206ecloc_2206ec:
002206ecret
00220660
00220660caml_skiplist_find_below:
00220660mov eax, [rdi+136]
00220666mov r10, rdx
00220669mov r11, rcx
0022066ctest eax, eax
0022066ejs 0x2206ea
00220670movsxd r9, eax
00220673mov eax, eax
00220675xor r8l, r8l
00220678lea rcx, [8*r9]
00220680sub r9, rax
00220683shl r9, 3
00220687nop [rax+rax]
0022068cmov rax, [rdi+rcx]
00220690
00220690loc_220690:
00220690test rax, rax
00220693jne 0x2206b4
00220695jmp 0x2206b9
00220697db 0x75
00220698sbb ebp, ebx
0022069adb 0x1e
0022069b
0022069b 0f 1f 44 00 00 ..D..
002206a0
002206a0loc_2206a0:
002206a0mov rdx, [rax+rcx+16]
002206a5lea rdi, [rax+16]
002206a9mov r8, rax
002206actest rdx, rdx
002206afje 0x2206b9
002206b1mov rax, rdx
002206b4
002206b4loc_2206b4:
002206b4cmp rsi, [rax]
002206b7jae 0x2206a0
002206b9
002206b9loc_2206b9:
002206b9lea rax, [rcx-8]
002206bdcmp rcx, r9
002206c0je 0x2206d0
002206c2mov rcx, rax
002206c5jmp 0x220690
002206c7
002206c7 66 0f 1f 84 00 00 00 00 00 f........
002206d0
002206d0loc_2206d0:
002206d0xor eax, eax
002206d2test r8, r8
002206d5je 0x2206ec
002206d7mov rax, [r8]
002206damov [r10], rax
002206ddmov rax, [r8+8]
002206e1mov [r11], rax
002206e4mov eax, 1
002206e9ret
002206ea
002206ealoc_2206ea:
002206eaxor eax, eax
002206ec
002206ecloc_2206ec:
002206ecret
00220660
002206ed
002206ed // align 0x20
002206ed // align 0x20
00220700
00220700caml_skiplist_insert:
00220700push r12
00220702mov r9, rdi
00220705mov rcx, rdi
00220708push rbp
00220709push rbx
0022070amov rbx, rsi
0022070dsub rsp, 144
00220714mov edi, [rdi+136]
0022071amov r12, [0x28]
00220723mov [rsp+136], r12
0022072bmov r12, rdx
0022072etest edi, edi
00220730js 0x220790
00220732movsxd r10, edi
00220735mov eax, edi
00220737mov r8, rsp
0022073alea rsi, [8*r10]
00220742sub r10, rax
00220745shl r10, 3
00220749jmp 0x220769
0022074bdb 0xe2
0022074cadd ebp, ebx
0022074edb 0x1a
0022074f
0022074f 66 f
00220750 66 2e 0f 1f 84 00 00 00 00 00 66 0f 1f 44 00 00 f.........f..D..
00220760
00220760loc_220760:
00220760cmp [rax], rbx
00220763jae 0x220775
00220765lea rcx, [rax+16]
00220769
00220769loc_220769:
00220769lea rdx, [rcx+rsi]
0022076dmov rax, [rdx]
00220770test rax, rax
00220773jne 0x220760
00220775
00220775loc_220775:
00220775mov [r8+rsi], rdx
00220779lea rax, [rsi-8]
0022077dcmp r10, rsi
00220780je 0x220790
00220782mov rsi, rax
00220785jmp 0x220769
00220787
00220787 66 0f 1f 84 00 00 00 00 00 f........
00220790
00220790loc_220790:
00220790mov rax, [rcx]
00220793test rax, rax
00220796je 0x2207a1
00220798cmp [rax], rbx
0022079bje 0x22089e
002207a1
002207a1loc_2207a1:
002207a1imul eax, [rip+0x1588fd], 0x10dcd
002207abadd eax, 25173
002207b0mov edx, eax
002207b2mov [rip+0x1588f0], eax
002207b8not edx
002207baand edx, 0xffffffffc0000000
002207c0jne 0x2208a9
002207c6xor ebp, ebp
002207c8nop [rax+rax]
002207d3nop [rax+rax]
002207denop
002207e0
002207e0loc_2207e0:
002207e0shl eax, 2
002207e3mov ecx, ebp
002207e5add ebp, 1
002207e8mov edx, eax
002207eanot edx
002207ecand edx, 0xffffffffc0000000
002207f2je 0x2207e0
002207f4lea eax, [rcx+2]
002207f7cdqe
002207f9lea rsi, [8*rax+16]
00220801cmp edi, ebp
00220803jl 0x220879
00220805
00220805loc_220805:
00220805mov rdi, rsi
00220808call caml_stat_alloc
0022080dmov [rax], rbx
00220810mov [rax+8], r12
00220814test ebp, ebp
00220816js 0x220858
00220818
00220818loc_220818:
00220818lea edi, [rbp+1]
0022081bxor edx, edx
0022081dmov r8, rsp
00220820shl rdi, 3
00220824nop [rax+rax]
0022082fnop [rax+rax]
0022083anop [rax+rax]
00220840
00220840loc_220840:
00220840mov rcx, [r8+rdx]
00220844mov rsi, [rcx]
00220847mov [rax+rdx+16], rsi
0022084cadd rdx, 8
00220850mov [rcx], rax
00220853cmp rdx, rdi
00220856jne 0x220840
00220858
00220858loc_220858:
00220858xor eax, eax
0022085a
0022085aloc_22085a:
0022085amov rdx, [rsp+136]
00220862sub rdx, [0x28]
0022086bjne 0x2208d1
0022086dadd rsp, 144
00220874pop rbx
00220875pop rbp
00220876pop r12
00220878ret
00220879
00220879loc_220879:
00220879lea eax, [rdi+1]
0022087ccmp eax, ebp
0022087ejg 0x220892
00220880
00220880loc_220880:
00220880movsxd rdx, eax
00220883add eax, 1
00220886lea rcx, [r9+8*rdx]
0022088amov [rsp+8*rdx], rcx
0022088ecmp ebp, eax
00220890jge 0x220880
00220892
00220892loc_220892:
00220892mov [r9+136], ebp
00220899jmp 0x220805
0022089e
0022089eloc_22089e:
0022089emov [rax+8], r12
002208a2mov eax, 1
002208a7jmp 0x22085a
002208a9
002208a9loc_2208a9:
002208a9test edi, edi
002208abjns 0x2208b9
002208adlea eax, [rdi+1]
002208b0mov esi, 24
002208b5xor ebp, ebp
002208b7jmp 0x220880
002208b9
002208b9loc_2208b9:
002208b9mov edi, 24
002208bexor ebp, ebp
002208c0call caml_stat_alloc
002208c5mov [rax], rbx
002208c8mov [rax+8], r12
002208ccjmp 0x220818
002208d1
002208d1loc_2208d1:
002208d1call fn_f4590
00220700
00220700caml_skiplist_insert:
00220700push r12
00220702mov r9, rdi
00220705mov rcx, rdi
00220708push rbp
00220709push rbx
0022070amov rbx, rsi
0022070dsub rsp, 144
00220714mov edi, [rdi+136]
0022071amov r12, [0x28]
00220723mov [rsp+136], r12
0022072bmov r12, rdx
0022072etest edi, edi
00220730js 0x220790
00220732movsxd r10, edi
00220735mov eax, edi
00220737mov r8, rsp
0022073alea rsi, [8*r10]
00220742sub r10, rax
00220745shl r10, 3
00220749jmp 0x220769
0022074bdb 0xe2
0022074cadd ebp, ebx
0022074edb 0x1a
0022074f
0022074f 66 f
00220750 66 2e 0f 1f 84 00 00 00 00 00 66 0f 1f 44 00 00 f.........f..D..
00220760
00220760loc_220760:
00220760cmp [rax], rbx
00220763jae 0x220775
00220765lea rcx, [rax+16]
00220769
00220769loc_220769:
00220769lea rdx, [rcx+rsi]
0022076dmov rax, [rdx]
00220770test rax, rax
00220773jne 0x220760
00220775
00220775loc_220775:
00220775mov [r8+rsi], rdx
00220779lea rax, [rsi-8]
0022077dcmp r10, rsi
00220780je 0x220790
00220782mov rsi, rax
00220785jmp 0x220769
00220787
00220787 66 0f 1f 84 00 00 00 00 00 f........
00220790
00220790loc_220790:
00220790mov rax, [rcx]
00220793test rax, rax
00220796je 0x2207a1
00220798cmp [rax], rbx
0022079bje 0x22089e
002207a1
002207a1loc_2207a1:
002207a1imul eax, [rip+0x1588fd], 0x10dcd
002207abadd eax, 25173
002207b0mov edx, eax
002207b2mov [rip+0x1588f0], eax
002207b8not edx
002207baand edx, 0xffffffffc0000000
002207c0jne 0x2208a9
002207c6xor ebp, ebp
002207c8nop [rax+rax]
002207d3nop [rax+rax]
002207denop
002207e0
002207e0loc_2207e0:
002207e0shl eax, 2
002207e3mov ecx, ebp
002207e5add ebp, 1
002207e8mov edx, eax
002207eanot edx
002207ecand edx, 0xffffffffc0000000
002207f2je 0x2207e0
002207f4lea eax, [rcx+2]
002207f7cdqe
002207f9lea rsi, [8*rax+16]
00220801cmp edi, ebp
00220803jl 0x220879
00220805
00220805loc_220805:
00220805mov rdi, rsi
00220808call caml_stat_alloc
0022080dmov [rax], rbx
00220810mov [rax+8], r12
00220814test ebp, ebp
00220816js 0x220858
00220818
00220818loc_220818:
00220818lea edi, [rbp+1]
0022081bxor edx, edx
0022081dmov r8, rsp
00220820shl rdi, 3
00220824nop [rax+rax]
0022082fnop [rax+rax]
0022083anop [rax+rax]
00220840
00220840loc_220840:
00220840mov rcx, [r8+rdx]
00220844mov rsi, [rcx]
00220847mov [rax+rdx+16], rsi
0022084cadd rdx, 8
00220850mov [rcx], rax
00220853cmp rdx, rdi
00220856jne 0x220840
00220858
00220858loc_220858:
00220858xor eax, eax
0022085a
0022085aloc_22085a:
0022085amov rdx, [rsp+136]
00220862sub rdx, [0x28]
0022086bjne 0x2208d1
0022086dadd rsp, 144
00220874pop rbx
00220875pop rbp
00220876pop r12
00220878ret
00220879
00220879loc_220879:
00220879lea eax, [rdi+1]
0022087ccmp eax, ebp
0022087ejg 0x220892
00220880
00220880loc_220880:
00220880movsxd rdx, eax
00220883add eax, 1
00220886lea rcx, [r9+8*rdx]
0022088amov [rsp+8*rdx], rcx
0022088ecmp ebp, eax
00220890jge 0x220880
00220892
00220892loc_220892:
00220892mov [r9+136], ebp
00220899jmp 0x220805
0022089e
0022089eloc_22089e:
0022089emov [rax+8], r12
002208a2mov eax, 1
002208a7jmp 0x22085a
002208a9
002208a9loc_2208a9:
002208a9test edi, edi
002208abjns 0x2208b9
002208adlea eax, [rdi+1]
002208b0mov esi, 24
002208b5xor ebp, ebp
002208b7jmp 0x220880
002208b9
002208b9loc_2208b9:
002208b9mov edi, 24
002208bexor ebp, ebp
002208c0call caml_stat_alloc
002208c5mov [rax], rbx
002208c8mov [rax+8], r12
002208ccjmp 0x220818
002208d1
002208d1loc_2208d1:
002208d1call fn_f4590
00220700
002208d6
002208d6 // align 0x10
002208d6 // align 0x10
002208e0
002208e0caml_skiplist_remove:
002208e0push rbx
002208e1sub rsp, 144
002208e8mov eax, [rdi+136]
002208eemov rbx, [0x28]
002208f7mov [rsp+136], rbx
002208ffmov rbx, rdi
00220902test eax, eax
00220904js 0x220a38
0022090amovsxd r8, eax
0022090dmov eax, eax
0022090fmov rcx, rdi
00220912mov r9, rsp
00220915lea rdi, [8*r8]
0022091dsub r8, rax
00220920shl r8, 3
00220924jmp 0x220949
00220926db 0xe0
00220927add ebp, ebx
00220929db 0x1f
0022092a
0022092a 66 66 2e 0f 1f 84 ff....
00220930 00 00 00 00 00 66 66 2e 0f 1f 84 00 00 00 00 00 .....ff.........
00220940
00220940loc_220940:
00220940cmp [rax], rsi
00220943jae 0x220955
00220945lea rcx, [rax+16]
00220949
00220949loc_220949:
00220949lea rdx, [rcx+rdi]
0022094dmov rax, [rdx]
00220950test rax, rax
00220953jne 0x220940
00220955
00220955loc_220955:
00220955mov [r9+rdi], rdx
00220959lea rax, [rdi-8]
0022095dcmp rdi, r8
00220960je 0x220970
00220962mov rdi, rax
00220965jmp 0x220949
00220967
00220967 66 0f 1f 84 00 00 00 00 00 f........
00220970
00220970loc_220970:
00220970mov rdi, [rcx]
00220973test rdi, rdi
00220976je 0x220a45
0022097ccmp [rdi], rsi
0022097fjne 0x220a45
00220985xor eax, eax
00220987jmp 0x2209ac
00220989
00220989 66 66 2e 0f 1f 84 00 ff.....
00220990 00 00 00 00 66 66 2e 0f 1f 84 00 00 00 00 00 90 ....ff..........
002209a0
002209a0loc_2209a0:
002209a0add rax, 1
002209a4cmp [rbx+136], eax
002209aajl 0x2209c9
002209ac
002209acloc_2209ac:
002209acmov rdx, [r9+8*rax]
002209b0cmp [rdx], rdi
002209b3jne 0x2209a0
002209b5mov rcx, [rdi+8*rax+16]
002209baadd rax, 1
002209bemov [rdx], rcx
002209c1cmp [rbx+136], eax
002209c7jge 0x2209ac
002209c9
002209c9loc_2209c9:
002209c9call caml_stat_free
002209cemov eax, [rbx+136]
002209d4test eax, eax
002209d6jle 0x220a17
002209d8movsxd rdx, eax
002209dblea rdx, [rbx+8*rdx]
002209dfjmp 0x220a11
002209e1
002209e1 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 2e 0f ff.........ff..
002209f0 1f 84 00 00 00 00 00 66 0f 1f 84 00 00 00 00 00 .......f........
00220a00
00220a00loc_220a00:
00220a00sub eax, 1
00220a03sub rdx, 8
00220a07mov [rbx+136], eax
00220a0dtest eax, eax
00220a0fje 0x220a17
00220a11
00220a11loc_220a11:
00220a11cmp [rdx], 0
00220a15je 0x220a00
00220a17
00220a17loc_220a17:
00220a17mov eax, 1
00220a1c
00220a1cloc_220a1c:
00220a1cmov rdx, [rsp+136]
00220a24sub rdx, [0x28]
00220a2djne 0x220a49
00220a2fadd rsp, 144
00220a36pop rbx
00220a37ret
00220a38
00220a38loc_220a38:
00220a38mov rdi, [rbx]
00220a3btest rdi, rdi
00220a3eje 0x220a45
00220a40cmp rsi, [rdi]
00220a43je 0x2209c9
00220a45
00220a45loc_220a45:
00220a45xor eax, eax
00220a47jmp 0x220a1c
00220a49
00220a49loc_220a49:
00220a49call fn_f4590
002208e0
002208e0caml_skiplist_remove:
002208e0push rbx
002208e1sub rsp, 144
002208e8mov eax, [rdi+136]
002208eemov rbx, [0x28]
002208f7mov [rsp+136], rbx
002208ffmov rbx, rdi
00220902test eax, eax
00220904js 0x220a38
0022090amovsxd r8, eax
0022090dmov eax, eax
0022090fmov rcx, rdi
00220912mov r9, rsp
00220915lea rdi, [8*r8]
0022091dsub r8, rax
00220920shl r8, 3
00220924jmp 0x220949
00220926db 0xe0
00220927add ebp, ebx
00220929db 0x1f
0022092a
0022092a 66 66 2e 0f 1f 84 ff....
00220930 00 00 00 00 00 66 66 2e 0f 1f 84 00 00 00 00 00 .....ff.........
00220940
00220940loc_220940:
00220940cmp [rax], rsi
00220943jae 0x220955
00220945lea rcx, [rax+16]
00220949
00220949loc_220949:
00220949lea rdx, [rcx+rdi]
0022094dmov rax, [rdx]
00220950test rax, rax
00220953jne 0x220940
00220955
00220955loc_220955:
00220955mov [r9+rdi], rdx
00220959lea rax, [rdi-8]
0022095dcmp rdi, r8
00220960je 0x220970
00220962mov rdi, rax
00220965jmp 0x220949
00220967
00220967 66 0f 1f 84 00 00 00 00 00 f........
00220970
00220970loc_220970:
00220970mov rdi, [rcx]
00220973test rdi, rdi
00220976je 0x220a45
0022097ccmp [rdi], rsi
0022097fjne 0x220a45
00220985xor eax, eax
00220987jmp 0x2209ac
00220989
00220989 66 66 2e 0f 1f 84 00 ff.....
00220990 00 00 00 00 66 66 2e 0f 1f 84 00 00 00 00 00 90 ....ff..........
002209a0
002209a0loc_2209a0:
002209a0add rax, 1
002209a4cmp [rbx+136], eax
002209aajl 0x2209c9
002209ac
002209acloc_2209ac:
002209acmov rdx, [r9+8*rax]
002209b0cmp [rdx], rdi
002209b3jne 0x2209a0
002209b5mov rcx, [rdi+8*rax+16]
002209baadd rax, 1
002209bemov [rdx], rcx
002209c1cmp [rbx+136], eax
002209c7jge 0x2209ac
002209c9
002209c9loc_2209c9:
002209c9call caml_stat_free
002209cemov eax, [rbx+136]
002209d4test eax, eax
002209d6jle 0x220a17
002209d8movsxd rdx, eax
002209dblea rdx, [rbx+8*rdx]
002209dfjmp 0x220a11
002209e1
002209e1 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 2e 0f ff.........ff..
002209f0 1f 84 00 00 00 00 00 66 0f 1f 84 00 00 00 00 00 .......f........
00220a00
00220a00loc_220a00:
00220a00sub eax, 1
00220a03sub rdx, 8
00220a07mov [rbx+136], eax
00220a0dtest eax, eax
00220a0fje 0x220a17
00220a11
00220a11loc_220a11:
00220a11cmp [rdx], 0
00220a15je 0x220a00
00220a17
00220a17loc_220a17:
00220a17mov eax, 1
00220a1c
00220a1cloc_220a1c:
00220a1cmov rdx, [rsp+136]
00220a24sub rdx, [0x28]
00220a2djne 0x220a49
00220a2fadd rsp, 144
00220a36pop rbx
00220a37ret
00220a38
00220a38loc_220a38:
00220a38mov rdi, [rbx]
00220a3btest rdi, rdi
00220a3eje 0x220a45
00220a40cmp rsi, [rdi]
00220a43je 0x2209c9
00220a45
00220a45loc_220a45:
00220a45xor eax, eax
00220a47jmp 0x220a1c
00220a49
00220a49loc_220a49:
00220a49call fn_f4590
002208e0
00220a4e
00220a4e // align 0x10
00220a4e // align 0x10
00220a50
00220a50caml_skiplist_empty:
00220a50push rbp
00220a51mov rbp, rdi
00220a54push rbx
00220a55sub rsp, 8
00220a59mov rbx, [rdi]
00220a5ctest rbx, rbx
00220a5fje 0x220a81
00220a61nop [rax+rax]
00220a6cmov rdi, rbx
00220a6fmov rbx, [rbx+16]
00220a73call caml_stat_free
00220a78test rbx, rbx
00220a7bjne 0x220a70
00220a7dmov eax, [rbp+136]
00220a83test eax, eax
00220a85js 0x220a9c
00220a87lea edx, [rax+1]
00220a8axor esi, esi
00220a8cmov rdi, rbp
00220a8fshl rdx, 3
00220a93call fn_f40e0
00220a98mov [rbp+136], 0
00220aa2add rsp, 8
00220aa6pop rbx
00220aa7pop rbp
00220aa8ret
00220aa9db 0x08
00220aaapop rbx
00220aabpop rbp
00220aacret
00220a50
00220a50caml_skiplist_empty:
00220a50push rbp
00220a51mov rbp, rdi
00220a54push rbx
00220a55sub rsp, 8
00220a59mov rbx, [rdi]
00220a5ctest rbx, rbx
00220a5fje 0x220a81
00220a61nop [rax+rax]
00220a6cmov rdi, rbx
00220a6fmov rbx, [rbx+16]
00220a73call caml_stat_free
00220a78test rbx, rbx
00220a7bjne 0x220a70
00220a7dmov eax, [rbp+136]
00220a83test eax, eax
00220a85js 0x220a9c
00220a87lea edx, [rax+1]
00220a8axor esi, esi
00220a8cmov rdi, rbp
00220a8fshl rdx, 3
00220a93call fn_f40e0
00220a98mov [rbp+136], 0
00220aa2add rsp, 8
00220aa6pop rbx
00220aa7pop rbp
00220aa8ret
00220aa9db 0x08
00220aaapop rbx
00220aabpop rbp
00220aacret
00220a50
00220aad
00220aad // align 0x10
00220aad // align 0x10
00220ab0
00220ab0fn_220ab0:
00220ab0push r13
00220ab2push r12
00220ab4push rbp
00220ab5mov rbp, rsi
00220ab8lea rsi, [rip+59869]
00220abfpush rbx
00220ac0mov rbx, rdi
00220ac3sub rsp, 24
00220ac7mov rax, [0x28]
00220ad0mov [rsp+8], rax
00220ad5xor eax, eax
00220ad7lea r13, [rsp+3]
00220adclea r12, [rsp+4]
00220ae1mov [rsp+3], 32
00220ae6mov rcx, r13
00220ae9mov rdx, r12
00220aecmov [rsp+4], 1
00220af4call fn_f4200
00220af9mov rdx, r12
00220afcmov rcx, r13
00220affmov rdi, rbx
00220b02lea rsi, [rip+59801]
00220b09xor eax, eax
00220b0bcall fn_f4200
00220b10movzx edx, [rsp+3]
00220b15mov eax, [rsp+4]
00220b19cmp dl, 77
00220b1cje 0x220b60
00220b1ecmp dl, 107
00220b21je 0x220b50
00220b23mov rcx, rax
00220b26shl rcx, 30
00220b2acmp dl, 71
00220b2dcmove rax, rcx
00220b31
00220b31loc_220b31:
00220b31mov [rbp], rax
00220b35mov rax, [rsp+8]
00220b3asub rax, [0x28]
00220b43jne 0x220b66
00220b45add rsp, 24
00220b49pop rbx
00220b4apop rbp
00220b4bpop r12
00220b4dpop r13
00220b4fret
00220b50
00220b50loc_220b50:
00220b50shl rax, 10
00220b54jmp 0x220b31
00220b56
00220b56 66 2e 0f 1f 84 00 00 00 00 00 f.........
00220b60
00220b60loc_220b60:
00220b60shl rax, 20
00220b64jmp 0x220b31
00220b66
00220b66loc_220b66:
00220b66call fn_f4590
00220ab0
00220ab0fn_220ab0:
00220ab0push r13
00220ab2push r12
00220ab4push rbp
00220ab5mov rbp, rsi
00220ab8lea rsi, [rip+59869]
00220abfpush rbx
00220ac0mov rbx, rdi
00220ac3sub rsp, 24
00220ac7mov rax, [0x28]
00220ad0mov [rsp+8], rax
00220ad5xor eax, eax
00220ad7lea r13, [rsp+3]
00220adclea r12, [rsp+4]
00220ae1mov [rsp+3], 32
00220ae6mov rcx, r13
00220ae9mov rdx, r12
00220aecmov [rsp+4], 1
00220af4call fn_f4200
00220af9mov rdx, r12
00220afcmov rcx, r13
00220affmov rdi, rbx
00220b02lea rsi, [rip+59801]
00220b09xor eax, eax
00220b0bcall fn_f4200
00220b10movzx edx, [rsp+3]
00220b15mov eax, [rsp+4]
00220b19cmp dl, 77
00220b1cje 0x220b60
00220b1ecmp dl, 107
00220b21je 0x220b50
00220b23mov rcx, rax
00220b26shl rcx, 30
00220b2acmp dl, 71
00220b2dcmove rax, rcx
00220b31
00220b31loc_220b31:
00220b31mov [rbp], rax
00220b35mov rax, [rsp+8]
00220b3asub rax, [0x28]
00220b43jne 0x220b66
00220b45add rsp, 24
00220b49pop rbx
00220b4apop rbp
00220b4bpop r12
00220b4dpop r13
00220b4fret
00220b50
00220b50loc_220b50:
00220b50shl rax, 10
00220b54jmp 0x220b31
00220b56
00220b56 66 2e 0f 1f 84 00 00 00 00 00 f.........
00220b60
00220b60loc_220b60:
00220b60shl rax, 20
00220b64jmp 0x220b31
00220b66
00220b66loc_220b66:
00220b66call fn_f4590
00220ab0
00220b6b
00220b6b // align 0x10
00220b6b // align 0x10
00220b70
00220b70caml_parse_ocamlrunparam:
00220b70push rbp
00220b71lea rdi, [rip+59694]
00220b78push rbx
00220b79sub rsp, 24
00220b7dmovdqa x1, [rip+38407]
00220b85movdqa x0, [rip+38383]
00220b8dmov rax, [0x28]
00220b96mov [rsp+8], rax
00220b9bxor eax, eax
00220b9dmov [rip+0x1585d4], 128
00220ba8movaps [rip+0x15857d], x1
00220bafmovdqa x1, [rip+38373]
00220bb7movups [rip+0x158546], x0
00220bbepxor x0, x0
00220bc2movaps [rip+0x158573], x1
00220bc9movdqa x1, [rip+38363]
00220bd1movaps [rip+0x158544], x0
00220bd8movaps [rip+0x15856d], x1
00220bdfmovaps [rip+0x158586], x0
00220be6call caml_secure_getenv
00220bebmov rbx, rax
00220beetest rax, rax
00220bf1je 0x220da7
00220bf7lea rbp, [rip+0x119ae]
00220bfemovzx eax, [rbx]
00220c01test al, al
00220c03je 0x220c46
00220c05sub eax, 44
00220c08add rbx, 1
00220c0ccmp al, 74
00220c0eja 0x220c38
00220c10movzx eax, al
00220c13movsxd rax, [rbp+4*rax]
00220c18add rax, rbp
00220c1bjmp rax
00220c1enop [rax+rax]
00220c29nop [rax]
00220c2cadd rbx, 1
00220c30
00220c30loc_220c30:
00220c30cmp al, 44
00220c32je 0x220c02
00220c34movzx eax, [rbx]
00220c37test al, al
00220c39jne 0x220c30
00220c3bmovzx eax, [rbx]
00220c3etest al, al
00220c40jne 0x220c09
00220c42mov rax, [rip+0x158533]
00220c49test rax, rax
00220c4cje 0x220dc4
00220c52cmp rax, 4096
00220c58ja 0x220dd7
00220c5emov rax, [rsp+8]
00220c63sub rax, [0x28]
00220c6cjne 0x220dd2
00220c72add rsp, 24
00220c76pop rbx
00220c77pop rbp
00220c78ret
00220c79mov rsi, rsp
00220c7cmov rdi, rbx
00220c7fcall fn_220ab0
00220c84mov rax, [rsp]
00220c88mov [rip+0x157f9d], rax
00220c8fjmp 0x220c38
00220c91lea rsi, [rip+0x15846c]
00220c98mov rdi, rbx
00220c9bcall fn_220ab0
00220ca0jmp 0x220c38
00220ca2lea rsi, [rip+0x15848b]
00220ca9mov rdi, rbx
00220caccall fn_220ab0
00220cb1jmp 0x220c38
00220cb3lea rsi, [rip+0x158442]
00220cbamov rdi, rbx
00220cbdcall fn_220ab0
00220cc2jmp 0x220c38
00220cc7lea rsi, [rip+0x15845e]
00220ccemov rdi, rbx
00220cd1call fn_220ab0
00220cd6jmp 0x220c38
00220cdblea rsi, [rip+0x15846a]
00220ce2mov rdi, rbx
00220ce5call fn_220ab0
00220ceajmp 0x220c38
00220ceflea rsi, [rip+0x15844e]
00220cf6mov rdi, rbx
00220cf9call fn_220ab0
00220cfejmp 0x220c38
00220d03lea rsi, [rip+0x15844a]
00220d0amov rdi, rbx
00220d0dcall fn_220ab0
00220d12jmp 0x220c38
00220d17lea rsi, [rip+0x1583ee]
00220d1emov rdi, rbx
00220d21call fn_220ab0
00220d26jmp 0x220c38
00220d2blea rsi, [rip+0x15844a]
00220d32mov rdi, rbx
00220d35call fn_220ab0
00220d3ajmp 0x220c38
00220d3flea rsi, [rip+0x158426]
00220d46mov rdi, rbx
00220d49call fn_220ab0
00220d4ejmp 0x220c38
00220d53lea rsi, [rip+0x158402]
00220d5amov rdi, rbx
00220d5dcall fn_220ab0
00220d62jmp 0x220c38
00220d67lea rsi, [rip+0x157eae]
00220d6emov rdi, rbx
00220d71call fn_220ab0
00220d76jmp 0x220c38
00220d7blea rsi, [rip+0x158392]
00220d82mov rdi, rbx
00220d85call fn_220ab0
00220d8ajmp 0x220c38
00220d8flea rsi, [rip+0x1583a6]
00220d96mov rdi, rbx
00220d99call fn_220ab0
00220d9ejmp 0x220c38
00220da3lea rdi, [rip+59133]
00220daacall caml_secure_getenv
00220dafmov rbx, rax
00220db2test rax, rax
00220db5je 0x220c46
00220dbbjmp 0x220bfb
00220dc0lea rdi, [rip+0x1066d]
00220dc7xor eax, eax
00220dc9call caml_fatal_error
00220dcecall fn_f4590
00220dd3mov esi, 4096
00220dd8lea rdi, [rip+0x1068d]
00220ddfxor eax, eax
00220de1call caml_fatal_error
00220de6db 0x46
00220de7db 0xa0
00220de8db 0xff
00220de9db 0xff
00220b70
00220b70caml_parse_ocamlrunparam:
00220b70push rbp
00220b71lea rdi, [rip+59694]
00220b78push rbx
00220b79sub rsp, 24
00220b7dmovdqa x1, [rip+38407]
00220b85movdqa x0, [rip+38383]
00220b8dmov rax, [0x28]
00220b96mov [rsp+8], rax
00220b9bxor eax, eax
00220b9dmov [rip+0x1585d4], 128
00220ba8movaps [rip+0x15857d], x1
00220bafmovdqa x1, [rip+38373]
00220bb7movups [rip+0x158546], x0
00220bbepxor x0, x0
00220bc2movaps [rip+0x158573], x1
00220bc9movdqa x1, [rip+38363]
00220bd1movaps [rip+0x158544], x0
00220bd8movaps [rip+0x15856d], x1
00220bdfmovaps [rip+0x158586], x0
00220be6call caml_secure_getenv
00220bebmov rbx, rax
00220beetest rax, rax
00220bf1je 0x220da7
00220bf7lea rbp, [rip+0x119ae]
00220bfemovzx eax, [rbx]
00220c01test al, al
00220c03je 0x220c46
00220c05sub eax, 44
00220c08add rbx, 1
00220c0ccmp al, 74
00220c0eja 0x220c38
00220c10movzx eax, al
00220c13movsxd rax, [rbp+4*rax]
00220c18add rax, rbp
00220c1bjmp rax
00220c1enop [rax+rax]
00220c29nop [rax]
00220c2cadd rbx, 1
00220c30
00220c30loc_220c30:
00220c30cmp al, 44
00220c32je 0x220c02
00220c34movzx eax, [rbx]
00220c37test al, al
00220c39jne 0x220c30
00220c3bmovzx eax, [rbx]
00220c3etest al, al
00220c40jne 0x220c09
00220c42mov rax, [rip+0x158533]
00220c49test rax, rax
00220c4cje 0x220dc4
00220c52cmp rax, 4096
00220c58ja 0x220dd7
00220c5emov rax, [rsp+8]
00220c63sub rax, [0x28]
00220c6cjne 0x220dd2
00220c72add rsp, 24
00220c76pop rbx
00220c77pop rbp
00220c78ret
00220c79mov rsi, rsp
00220c7cmov rdi, rbx
00220c7fcall fn_220ab0
00220c84mov rax, [rsp]
00220c88mov [rip+0x157f9d], rax
00220c8fjmp 0x220c38
00220c91lea rsi, [rip+0x15846c]
00220c98mov rdi, rbx
00220c9bcall fn_220ab0
00220ca0jmp 0x220c38
00220ca2lea rsi, [rip+0x15848b]
00220ca9mov rdi, rbx
00220caccall fn_220ab0
00220cb1jmp 0x220c38
00220cb3lea rsi, [rip+0x158442]
00220cbamov rdi, rbx
00220cbdcall fn_220ab0
00220cc2jmp 0x220c38
00220cc7lea rsi, [rip+0x15845e]
00220ccemov rdi, rbx
00220cd1call fn_220ab0
00220cd6jmp 0x220c38
00220cdblea rsi, [rip+0x15846a]
00220ce2mov rdi, rbx
00220ce5call fn_220ab0
00220ceajmp 0x220c38
00220ceflea rsi, [rip+0x15844e]
00220cf6mov rdi, rbx
00220cf9call fn_220ab0
00220cfejmp 0x220c38
00220d03lea rsi, [rip+0x15844a]
00220d0amov rdi, rbx
00220d0dcall fn_220ab0
00220d12jmp 0x220c38
00220d17lea rsi, [rip+0x1583ee]
00220d1emov rdi, rbx
00220d21call fn_220ab0
00220d26jmp 0x220c38
00220d2blea rsi, [rip+0x15844a]
00220d32mov rdi, rbx
00220d35call fn_220ab0
00220d3ajmp 0x220c38
00220d3flea rsi, [rip+0x158426]
00220d46mov rdi, rbx
00220d49call fn_220ab0
00220d4ejmp 0x220c38
00220d53lea rsi, [rip+0x158402]
00220d5amov rdi, rbx
00220d5dcall fn_220ab0
00220d62jmp 0x220c38
00220d67lea rsi, [rip+0x157eae]
00220d6emov rdi, rbx
00220d71call fn_220ab0
00220d76jmp 0x220c38
00220d7blea rsi, [rip+0x158392]
00220d82mov rdi, rbx
00220d85call fn_220ab0
00220d8ajmp 0x220c38
00220d8flea rsi, [rip+0x1583a6]
00220d96mov rdi, rbx
00220d99call fn_220ab0
00220d9ejmp 0x220c38
00220da3lea rdi, [rip+59133]
00220daacall caml_secure_getenv
00220dafmov rbx, rax
00220db2test rax, rax
00220db5je 0x220c46
00220dbbjmp 0x220bfb
00220dc0lea rdi, [rip+0x1066d]
00220dc7xor eax, eax
00220dc9call caml_fatal_error
00220dcecall fn_f4590
00220dd3mov esi, 4096
00220dd8lea rdi, [rip+0x1068d]
00220ddfxor eax, eax
00220de1call caml_fatal_error
00220de6db 0x46
00220de7db 0xa0
00220de8db 0xff
00220de9db 0xff
00220b70
00220dea
00220dea // align 0x10
00220dea // align 0x10
00220df0
00220df0caml_startup_aux:
00220df0sub rsp, 8
00220df4cmp [rip+0x1582c1], 1
00220dfbje 0x220e3c
00220dfdmov eax, [rip+0x1582bd]
00220e03xor edx, edx
00220e05add eax, 1
00220e08mov [rip+0x1582b2], eax
00220e0ecmp eax, 1
00220e11jg 0x220e20
00220e13test edi, edi
00220e15jne 0x220e30
00220e17mov edx, 1
00220e1cmov eax, edx
00220e1eadd rsp, 8
00220e22ret
00220e23db 0x83
00220e24db 0xc4
00220e25or bl, al
00220e27
00220e27 66 0f 1f 84 00 00 00 00 00 f........
00220e30
00220e30loc_220e30:
00220e30call caml_stat_create_pool
00220e35mov edx, 1
00220e3ajmp 0x220e20
00220e3c
00220e3cloc_220e3c:
00220e3clea rdi, [rip+0x10675]
00220e43xor eax, eax
00220e45call caml_fatal_error
00220df0
00220df0caml_startup_aux:
00220df0sub rsp, 8
00220df4cmp [rip+0x1582c1], 1
00220dfbje 0x220e3c
00220dfdmov eax, [rip+0x1582bd]
00220e03xor edx, edx
00220e05add eax, 1
00220e08mov [rip+0x1582b2], eax
00220e0ecmp eax, 1
00220e11jg 0x220e20
00220e13test edi, edi
00220e15jne 0x220e30
00220e17mov edx, 1
00220e1cmov eax, edx
00220e1eadd rsp, 8
00220e22ret
00220e23db 0x83
00220e24db 0xc4
00220e25or bl, al
00220e27
00220e27 66 0f 1f 84 00 00 00 00 00 f........
00220e30
00220e30loc_220e30:
00220e30call caml_stat_create_pool
00220e35mov edx, 1
00220e3ajmp 0x220e20
00220e3c
00220e3cloc_220e3c:
00220e3clea rdi, [rip+0x10675]
00220e43xor eax, eax
00220e45call caml_fatal_error
00220df0
00220e4a
00220e4a // align 0x10
00220e4a // align 0x10
00220e50
00220e50caml_shutdown:
00220e50sub rsp, 8
00220e54mov rax, [rip+0x55189]
00220e5bcmp [rax], 0
00220e60je 0x220ef0
00220e66mov eax, [rip+0x158254]
00220e6ctest eax, eax
00220e6ejle 0x220ef5
00220e74sub eax, 1
00220e77mov [rip+0x158243], eax
00220e7dtest eax, eax
00220e7fjle 0x220e90
00220e81add rsp, 8
00220e85ret
00220e86db 0x83
00220e87db 0xc4
00220e88or bl, al
00220e8a
00220e8a 66 0f 1f 44 00 00 f..D..
00220e90
00220e90loc_220e90:
00220e90lea rdi, [rip+58913]
00220e97call caml_named_value
00220e9ctest rax, rax
00220e9fje 0x220eae
00220ea1mov rdi, [rax]
00220ea4mov esi, 1
00220ea9call caml_callback_res
00220eae
00220eaeloc_220eae:
00220eaelea rdi, [rip+58905]
00220eb5call caml_named_value
00220ebatest rax, rax
00220ebdje 0x220ecc
00220ebfmov rdi, [rax]
00220ec2mov esi, 1
00220ec7call caml_callback_res
00220ecc
00220eccloc_220ecc:
00220ecccall caml_finalise_heap
00220ed1call caml_free_locale
00220ed6call caml_stat_destroy_pool
00220edbcall caml_terminate_signals
00220ee0mov [rip+0x1581d6], 1
00220eeaadd rsp, 8
00220eeeret
00220eef
00220eef 90 .
00220ef0
00220ef0loc_220ef0:
00220ef0call caml_bad_caml_state
00220ef5
00220ef5loc_220ef5:
00220ef5lea rdi, [rip+0x1060c]
00220efcxor eax, eax
00220efecall caml_fatal_error
00220e50
00220e50caml_shutdown:
00220e50sub rsp, 8
00220e54mov rax, [rip+0x55189]
00220e5bcmp [rax], 0
00220e60je 0x220ef0
00220e66mov eax, [rip+0x158254]
00220e6ctest eax, eax
00220e6ejle 0x220ef5
00220e74sub eax, 1
00220e77mov [rip+0x158243], eax
00220e7dtest eax, eax
00220e7fjle 0x220e90
00220e81add rsp, 8
00220e85ret
00220e86db 0x83
00220e87db 0xc4
00220e88or bl, al
00220e8a
00220e8a 66 0f 1f 44 00 00 f..D..
00220e90
00220e90loc_220e90:
00220e90lea rdi, [rip+58913]
00220e97call caml_named_value
00220e9ctest rax, rax
00220e9fje 0x220eae
00220ea1mov rdi, [rax]
00220ea4mov esi, 1
00220ea9call caml_callback_res
00220eae
00220eaeloc_220eae:
00220eaelea rdi, [rip+58905]
00220eb5call caml_named_value
00220ebatest rax, rax
00220ebdje 0x220ecc
00220ebfmov rdi, [rax]
00220ec2mov esi, 1
00220ec7call caml_callback_res
00220ecc
00220eccloc_220ecc:
00220ecccall caml_finalise_heap
00220ed1call caml_free_locale
00220ed6call caml_stat_destroy_pool
00220edbcall caml_terminate_signals
00220ee0mov [rip+0x1581d6], 1
00220eeaadd rsp, 8
00220eeeret
00220eef
00220eef 90 .
00220ef0
00220ef0loc_220ef0:
00220ef0call caml_bad_caml_state
00220ef5
00220ef5loc_220ef5:
00220ef5lea rdi, [rip+0x1060c]
00220efcxor eax, eax
00220efecall caml_fatal_error
00220e50
00220f03
00220f03 // align 0x10
00220f03 // align 0x10
00220f10
00220f10caml_init_exe_name:
00220f10mov [rip+0x1581c5], rdi
00220f17ret
00220f18db 0x81
00220f19db 0x15
00220f1aadd bl, al
00220f10
00220f10caml_init_exe_name:
00220f10mov [rip+0x1581c5], rdi
00220f17ret
00220f18db 0x81
00220f19db 0x15
00220f1aadd bl, al
00220f10
00220f1c
00220f1c // align 0x10
00220f1c // align 0x10
00220f20
00220f20caml_init_section_table:
00220f20mov [rip+0x1581bd], rdi
00220f27mov [rip+0x1581be], rsi
00220f2eret
00220f2fdb 0x81
00220f30db 0x15
00220f31add bl, al
00220f20
00220f20caml_init_section_table:
00220f20mov [rip+0x1581bd], rdi
00220f27mov [rip+0x1581be], rsi
00220f2eret
00220f2fdb 0x81
00220f30db 0x15
00220f31add bl, al
00220f20
00220f33
00220f33 // align 0x10
00220f33 // align 0x10
00220f40
00220f40caml_string_length:
00220f40mov rdx, [rdi-8]
00220f44shr rdx, 10
00220f48shl rdx, 3
00220f4clea rax, [rdx-1]
00220f50movsx rdx, [rdi+rdx-1]
00220f56sub rax, rdx
00220f59ret
00220f5adb 0x48
00220f5bsub eax, edx
00220f5dret
00220f40
00220f40caml_string_length:
00220f40mov rdx, [rdi-8]
00220f44shr rdx, 10
00220f48shl rdx, 3
00220f4clea rax, [rdx-1]
00220f50movsx rdx, [rdi+rdx-1]
00220f56sub rax, rdx
00220f59ret
00220f5adb 0x48
00220f5bsub eax, edx
00220f5dret
00220f40
00220f5e
00220f5e // align 0x10
00220f5e // align 0x10
00220f60
00220f60caml_ml_string_length:
00220f60mov rax, [rdi-8]
00220f64shr rax, 10
00220f68shl rax, 3
00220f6cmovsx rcx, [rdi+rax-1]
00220f72lea rdx, [rax-1]
00220f76mov rax, rdx
00220f79sub rax, rcx
00220f7clea rax, [rax+rax+1]
00220f81ret
00220f82db 0x44
00220f83add [rcx], al
00220f85ret
00220f60
00220f60caml_ml_string_length:
00220f60mov rax, [rdi-8]
00220f64shr rax, 10
00220f68shl rax, 3
00220f6cmovsx rcx, [rdi+rax-1]
00220f72lea rdx, [rax-1]
00220f76mov rax, rdx
00220f79sub rax, rcx
00220f7clea rax, [rax+rax+1]
00220f81ret
00220f82db 0x44
00220f83add [rcx], al
00220f85ret
00220f60
00220f86
00220f86 // align 0x10
00220f86 // align 0x10
00220f90
00220f90caml_ml_bytes_length:
00220f90mov rax, [rdi-8]
00220f94shr rax, 10
00220f98shl rax, 3
00220f9cmovsx rcx, [rdi+rax-1]
00220fa2lea rdx, [rax-1]
00220fa6mov rax, rdx
00220fa9sub rax, rcx
00220faclea rax, [rax+rax+1]
00220fb1ret
00220fb2db 0x44
00220fb3add [rcx], al
00220fb5ret
00220f90
00220f90caml_ml_bytes_length:
00220f90mov rax, [rdi-8]
00220f94shr rax, 10
00220f98shl rax, 3
00220f9cmovsx rcx, [rdi+rax-1]
00220fa2lea rdx, [rax-1]
00220fa6mov rax, rdx
00220fa9sub rax, rcx
00220faclea rax, [rax+rax+1]
00220fb1ret
00220fb2db 0x44
00220fb3add [rcx], al
00220fb5ret
00220f90
00220fb6
00220fb6 // align 0x10
00220fb6 // align 0x10
00220fc0
00220fc0caml_string_is_c_safe:
00220fc0push rbx
00220fc1mov rbx, rdi
00220fc4call fn_f43a0
00220fc9mov rcx, rax
00220fccmov rax, [rbx-8]
00220fd0shr rax, 10
00220fd4shl rax, 3
00220fd8movsx rsi, [rbx+rax-1]
00220fdelea rdx, [rax-1]
00220fe2pop rbx
00220fe3mov rax, rdx
00220fe6sub rax, rsi
00220fe9cmp rax, rcx
00220fecsete al
00220fefmovzx eax, al
00220ff2ret
00220ff3db 0x0f
00220ff4mov dh, 192
00220ff6ret
00220fc0
00220fc0caml_string_is_c_safe:
00220fc0push rbx
00220fc1mov rbx, rdi
00220fc4call fn_f43a0
00220fc9mov rcx, rax
00220fccmov rax, [rbx-8]
00220fd0shr rax, 10
00220fd4shl rax, 3
00220fd8movsx rsi, [rbx+rax-1]
00220fdelea rdx, [rax-1]
00220fe2pop rbx
00220fe3mov rax, rdx
00220fe6sub rax, rsi
00220fe9cmp rax, rcx
00220fecsete al
00220fefmovzx eax, al
00220ff2ret
00220ff3db 0x0f
00220ff4mov dh, 192
00220ff6ret
00220fc0
00220ff7
00220ff7 // align 0x10
00220ff7 // align 0x10
00221000
00221000caml_create_string:
00221000mov rax, 0x1fffffffffffff7
0022100asar rdi, 1
0022100dcmp rax, rdi
00221010jb 0x22101b
00221012jmp 0x1f8ac0
00221017push rax
00221018lea rdi, [rip+58558]
0022101fcall caml_invalid_argument
00221024db 0xd8
00221025pop rcx
00221026db 0xfe
00221027db 0xff
00221000
00221000caml_create_string:
00221000mov rax, 0x1fffffffffffff7
0022100asar rdi, 1
0022100dcmp rax, rdi
00221010jb 0x22101b
00221012jmp 0x1f8ac0
00221017push rax
00221018lea rdi, [rip+58558]
0022101fcall caml_invalid_argument
00221024db 0xd8
00221025pop rcx
00221026db 0xfe
00221027db 0xff
00221000
00221028
00221028 // align 0x10
00221028 // align 0x10
00221030
00221030caml_create_bytes:
00221030mov rax, 0x1fffffffffffff7
0022103asar rdi, 1
0022103dcmp rax, rdi
00221040jb 0x22104b
00221042jmp 0x1f8ac0
00221047push rax
00221048lea rdi, [rip+58524]
0022104fcall caml_invalid_argument
00221054db 0xa8
00221055pop rcx
00221056db 0xfe
00221057db 0xff
00221030
00221030caml_create_bytes:
00221030mov rax, 0x1fffffffffffff7
0022103asar rdi, 1
0022103dcmp rax, rdi
00221040jb 0x22104b
00221042jmp 0x1f8ac0
00221047push rax
00221048lea rdi, [rip+58524]
0022104fcall caml_invalid_argument
00221054db 0xa8
00221055pop rcx
00221056db 0xfe
00221057db 0xff
00221030
00221058
00221058 // align 0x10
00221058 // align 0x10
00221060
00221060caml_string_get:
00221060sar rsi, 1
00221063js 0x221094
00221065mov rax, [rdi-8]
00221069shr rax, 10
0022106dshl rax, 3
00221071movsx rcx, [rdi+rax-1]
00221077lea rdx, [rax-1]
0022107bmov rax, rdx
0022107esub rax, rcx
00221081cmp rsi, rax
00221084jae 0x221094
00221086movzx eax, [rsi+rdi]
0022108alea rax, [rax+rax+1]
0022108fret
00221090push rax
00221091call caml_array_bound_error
00221096db 0x66
00221097pop rdx
00221098db 0xfe
00221099db 0xff
00221060
00221060caml_string_get:
00221060sar rsi, 1
00221063js 0x221094
00221065mov rax, [rdi-8]
00221069shr rax, 10
0022106dshl rax, 3
00221071movsx rcx, [rdi+rax-1]
00221077lea rdx, [rax-1]
0022107bmov rax, rdx
0022107esub rax, rcx
00221081cmp rsi, rax
00221084jae 0x221094
00221086movzx eax, [rsi+rdi]
0022108alea rax, [rax+rax+1]
0022108fret
00221090push rax
00221091call caml_array_bound_error
00221096db 0x66
00221097pop rdx
00221098db 0xfe
00221099db 0xff
00221060
0022109a
0022109a // align 0x10
0022109a // align 0x10
002210a0
002210a0caml_bytes_get:
002210a0sar rsi, 1
002210a3js 0x2210d4
002210a5mov rax, [rdi-8]
002210a9shr rax, 10
002210adshl rax, 3
002210b1movsx rcx, [rdi+rax-1]
002210b7lea rdx, [rax-1]
002210bbmov rax, rdx
002210besub rax, rcx
002210c1cmp rsi, rax
002210c4jae 0x2210d4
002210c6movzx eax, [rsi+rdi]
002210calea rax, [rax+rax+1]
002210cfret
002210d0push rax
002210d1call caml_array_bound_error
002210d6db 0x26
002210d7pop rdx
002210d8db 0xfe
002210d9db 0xff
002210a0
002210a0caml_bytes_get:
002210a0sar rsi, 1
002210a3js 0x2210d4
002210a5mov rax, [rdi-8]
002210a9shr rax, 10
002210adshl rax, 3
002210b1movsx rcx, [rdi+rax-1]
002210b7lea rdx, [rax-1]
002210bbmov rax, rdx
002210besub rax, rcx
002210c1cmp rsi, rax
002210c4jae 0x2210d4
002210c6movzx eax, [rsi+rdi]
002210calea rax, [rax+rax+1]
002210cfret
002210d0push rax
002210d1call caml_array_bound_error
002210d6db 0x26
002210d7pop rdx
002210d8db 0xfe
002210d9db 0xff
002210a0
002210da
002210da // align 0x10
002210da // align 0x10
002210e0
002210e0caml_bytes_set:
002210e0sar rsi, 1
002210e3js 0x221116
002210e5mov rax, [rdi-8]
002210e9shr rax, 10
002210edshl rax, 3
002210f1movsx r8, [rdi+rax-1]
002210f7lea rcx, [rax-1]
002210fbmov rax, rcx
002210fesub rax, r8
00221101cmp rsi, rax
00221104jae 0x221116
00221106sar rdx, 1
00221109mov eax, 1
0022110emov [rsi+rdi], dl
00221111ret
00221112push rax
00221113call caml_array_bound_error
00221118db 0xe4
00221119pop rcx
0022111adb 0xfe
0022111bdb 0xff
002210e0
002210e0caml_bytes_set:
002210e0sar rsi, 1
002210e3js 0x221116
002210e5mov rax, [rdi-8]
002210e9shr rax, 10
002210edshl rax, 3
002210f1movsx r8, [rdi+rax-1]
002210f7lea rcx, [rax-1]
002210fbmov rax, rcx
002210fesub rax, r8
00221101cmp rsi, rax
00221104jae 0x221116
00221106sar rdx, 1
00221109mov eax, 1
0022110emov [rsi+rdi], dl
00221111ret
00221112push rax
00221113call caml_array_bound_error
00221118db 0xe4
00221119pop rcx
0022111adb 0xfe
0022111bdb 0xff
002210e0
0022111c
0022111c // align 0x10
0022111c // align 0x10
00221120
00221120caml_string_set:
00221120sar rsi, 1
00221123js 0x221156
00221125mov rax, [rdi-8]
00221129shr rax, 10
0022112dshl rax, 3
00221131movsx r8, [rdi+rax-1]
00221137lea rcx, [rax-1]
0022113bmov rax, rcx
0022113esub rax, r8
00221141cmp rsi, rax
00221144jae 0x221156
00221146sar rdx, 1
00221149mov eax, 1
0022114emov [rsi+rdi], dl
00221151ret
00221152push rax
00221153call caml_array_bound_error
00221158db 0xa4
00221159pop rcx
0022115adb 0xfe
0022115bdb 0xff
00221120
00221120caml_string_set:
00221120sar rsi, 1
00221123js 0x221156
00221125mov rax, [rdi-8]
00221129shr rax, 10
0022112dshl rax, 3
00221131movsx r8, [rdi+rax-1]
00221137lea rcx, [rax-1]
0022113bmov rax, rcx
0022113esub rax, r8
00221141cmp rsi, rax
00221144jae 0x221156
00221146sar rdx, 1
00221149mov eax, 1
0022114emov [rsi+rdi], dl
00221151ret
00221152push rax
00221153call caml_array_bound_error
00221158db 0xa4
00221159pop rcx
0022115adb 0xfe
0022115bdb 0xff
00221120
0022115c
0022115c // align 0x10
0022115c // align 0x10
00221160
00221160caml_string_get16:
00221160sar rsi, 1
00221163js 0x2211a5
00221165mov rax, [rdi-8]
00221169lea rcx, [rsi+1]
0022116dshr rax, 10
00221171shl rax, 3
00221175movsx r8, [rdi+rax-1]
0022117blea rdx, [rax-1]
0022117fmov rax, rdx
00221182sub rax, r8
00221185cmp rcx, rax
00221188jae 0x2211a5
0022118aadd rsi, rdi
0022118dmovzx eax, [rsi+1]
00221191movzx edx, [rsi]
00221194shl eax, 8
00221197or eax, edx
00221199cdqe
0022119blea rax, [rax+rax+1]
002211a0ret
002211a1push rax
002211a2call caml_array_bound_error
002211a7push rbp
002211a8pop rcx
002211a9db 0xfe
002211aadb 0xff
00221160
00221160caml_string_get16:
00221160sar rsi, 1
00221163js 0x2211a5
00221165mov rax, [rdi-8]
00221169lea rcx, [rsi+1]
0022116dshr rax, 10
00221171shl rax, 3
00221175movsx r8, [rdi+rax-1]
0022117blea rdx, [rax-1]
0022117fmov rax, rdx
00221182sub rax, r8
00221185cmp rcx, rax
00221188jae 0x2211a5
0022118aadd rsi, rdi
0022118dmovzx eax, [rsi+1]
00221191movzx edx, [rsi]
00221194shl eax, 8
00221197or eax, edx
00221199cdqe
0022119blea rax, [rax+rax+1]
002211a0ret
002211a1push rax
002211a2call caml_array_bound_error
002211a7push rbp
002211a8pop rcx
002211a9db 0xfe
002211aadb 0xff
00221160
002211ab
002211ab // align 0x10
002211ab // align 0x10
002211b0
002211b0caml_bytes_get16:
002211b0sar rsi, 1
002211b3js 0x2211f5
002211b5mov rax, [rdi-8]
002211b9lea rcx, [rsi+1]
002211bdshr rax, 10
002211c1shl rax, 3
002211c5movsx r8, [rdi+rax-1]
002211cblea rdx, [rax-1]
002211cfmov rax, rdx
002211d2sub rax, r8
002211d5cmp rcx, rax
002211d8jae 0x2211f5
002211daadd rsi, rdi
002211ddmovzx eax, [rsi+1]
002211e1movzx edx, [rsi]
002211e4shl eax, 8
002211e7or eax, edx
002211e9cdqe
002211eblea rax, [rax+rax+1]
002211f0ret
002211f1push rax
002211f2call caml_array_bound_error
002211f7db 0x05
002211f8pop rcx
002211f9db 0xfe
002211fadb 0xff
002211b0
002211b0caml_bytes_get16:
002211b0sar rsi, 1
002211b3js 0x2211f5
002211b5mov rax, [rdi-8]
002211b9lea rcx, [rsi+1]
002211bdshr rax, 10
002211c1shl rax, 3
002211c5movsx r8, [rdi+rax-1]
002211cblea rdx, [rax-1]
002211cfmov rax, rdx
002211d2sub rax, r8
002211d5cmp rcx, rax
002211d8jae 0x2211f5
002211daadd rsi, rdi
002211ddmovzx eax, [rsi+1]
002211e1movzx edx, [rsi]
002211e4shl eax, 8
002211e7or eax, edx
002211e9cdqe
002211eblea rax, [rax+rax+1]
002211f0ret
002211f1push rax
002211f2call caml_array_bound_error
002211f7db 0x05
002211f8pop rcx
002211f9db 0xfe
002211fadb 0xff
002211b0
002211fb
002211fb // align 0x10
002211fb // align 0x10
00221200
00221200caml_string_get32:
00221200sar rsi, 1
00221203js 0x221254
00221205mov rax, [rdi-8]
00221209lea rcx, [rsi+3]
0022120dshr rax, 10
00221211shl rax, 3
00221215movsx r8, [rdi+rax-1]
0022121blea rdx, [rax-1]
0022121fmov rax, rdx
00221222sub rax, r8
00221225cmp rcx, rax
00221228jae 0x221254
0022122aadd rsi, rdi
0022122dmovzx edi, [rsi+3]
00221231movzx eax, [rsi+2]
00221235shl edi, 24
00221238shl eax, 16
0022123bor edi, eax
0022123dmovzx eax, [rsi]
00221240or edi, eax
00221242movzx eax, [rsi+1]
00221246shl eax, 8
00221249or edi, eax
0022124bjmp 0x20d4a0
00221250push rax
00221251call caml_array_bound_error
00221256db 0xa6
00221257pop rax
00221258db 0xfe
00221259db 0xff
00221200
00221200caml_string_get32:
00221200sar rsi, 1
00221203js 0x221254
00221205mov rax, [rdi-8]
00221209lea rcx, [rsi+3]
0022120dshr rax, 10
00221211shl rax, 3
00221215movsx r8, [rdi+rax-1]
0022121blea rdx, [rax-1]
0022121fmov rax, rdx
00221222sub rax, r8
00221225cmp rcx, rax
00221228jae 0x221254
0022122aadd rsi, rdi
0022122dmovzx edi, [rsi+3]
00221231movzx eax, [rsi+2]
00221235shl edi, 24
00221238shl eax, 16
0022123bor edi, eax
0022123dmovzx eax, [rsi]
00221240or edi, eax
00221242movzx eax, [rsi+1]
00221246shl eax, 8
00221249or edi, eax
0022124bjmp 0x20d4a0
00221250push rax
00221251call caml_array_bound_error
00221256db 0xa6
00221257pop rax
00221258db 0xfe
00221259db 0xff
00221200
0022125a
0022125a // align 0x10
0022125a // align 0x10
00221260
00221260caml_bytes_get32:
00221260jmp 0x221200
00221265db 0x97
00221266db 0xff
00221267db 0xff
00221268db 0xff
00221260
00221260caml_bytes_get32:
00221260jmp 0x221200
00221265db 0x97
00221266db 0xff
00221267db 0xff
00221268db 0xff
00221260
00221269
00221269 // align 0x10
00221269 // align 0x10
00221270
00221270caml_string_get64:
00221270sar rsi, 1
00221273js 0x2212f6
00221275mov rax, [rdi-8]
00221279lea rcx, [rsi+7]
0022127dshr rax, 10
00221281shl rax, 3
00221285movsx r8, [rdi+rax-1]
0022128blea rdx, [rax-1]
0022128fmov rax, rdx
00221292sub rax, r8
00221295cmp rcx, rax
00221298jae 0x2212f6
0022129aadd rsi, rdi
0022129dmovzx edi, [rsi+7]
002212a1movzx eax, [rsi+6]
002212a5shl rdi, 56
002212a9shl rax, 48
002212ador rdi, rax
002212b0movzx eax, [rsi]
002212b3or rdi, rax
002212b6movzx eax, [rsi+5]
002212bashl rax, 40
002212beor rdi, rax
002212c1movzx eax, [rsi+4]
002212c5shl rax, 32
002212c9or rdi, rax
002212ccmovzx eax, [rsi+3]
002212d0shl rax, 24
002212d4or rdi, rax
002212d7movzx eax, [rsi+2]
002212dbshl rax, 16
002212dfor rdi, rax
002212e2movzx eax, [rsi+1]
002212e6shl rax, 8
002212eaor rdi, rax
002212edjmp 0x20d9d0
002212f2push rax
002212f3call caml_array_bound_error
002212f8db 0x04
002212f9pop rax
002212fadb 0xfe
002212fbdb 0xff
00221270
00221270caml_string_get64:
00221270sar rsi, 1
00221273js 0x2212f6
00221275mov rax, [rdi-8]
00221279lea rcx, [rsi+7]
0022127dshr rax, 10
00221281shl rax, 3
00221285movsx r8, [rdi+rax-1]
0022128blea rdx, [rax-1]
0022128fmov rax, rdx
00221292sub rax, r8
00221295cmp rcx, rax
00221298jae 0x2212f6
0022129aadd rsi, rdi
0022129dmovzx edi, [rsi+7]
002212a1movzx eax, [rsi+6]
002212a5shl rdi, 56
002212a9shl rax, 48
002212ador rdi, rax
002212b0movzx eax, [rsi]
002212b3or rdi, rax
002212b6movzx eax, [rsi+5]
002212bashl rax, 40
002212beor rdi, rax
002212c1movzx eax, [rsi+4]
002212c5shl rax, 32
002212c9or rdi, rax
002212ccmovzx eax, [rsi+3]
002212d0shl rax, 24
002212d4or rdi, rax
002212d7movzx eax, [rsi+2]
002212dbshl rax, 16
002212dfor rdi, rax
002212e2movzx eax, [rsi+1]
002212e6shl rax, 8
002212eaor rdi, rax
002212edjmp 0x20d9d0
002212f2push rax
002212f3call caml_array_bound_error
002212f8db 0x04
002212f9pop rax
002212fadb 0xfe
002212fbdb 0xff
00221270
002212fc
002212fc // align 0x10
002212fc // align 0x10
00221300
00221300caml_bytes_get64:
00221300jmp 0x221270
00221305db 0x67
00221306db 0xff
00221307db 0xff
00221308db 0xff
00221300
00221300caml_bytes_get64:
00221300jmp 0x221270
00221305db 0x67
00221306db 0xff
00221307db 0xff
00221308db 0xff
00221300
00221309
00221309 // align 0x10
00221309 // align 0x10
00221310
00221310caml_bytes_set16:
00221310sar rsi, 1
00221313js 0x221356
00221315mov rax, [rdi-8]
00221319lea r8, [rsi+1]
0022131dshr rax, 10
00221321shl rax, 3
00221325movsx r9, [rdi+rax-1]
0022132blea rcx, [rax-1]
0022132fmov rax, rcx
00221332sub rax, r9
00221335cmp r8, rax
00221338jae 0x221356
0022133amov rax, rdx
0022133dadd rsi, rdi
00221340sar rdx, 9
00221344sar rax, 1
00221347mov [rsi+1], dl
0022134amov [rsi], al
0022134cmov eax, 1
00221351ret
00221352push rax
00221353call caml_array_bound_error
00221358db 0xa4
00221359push rdi
0022135adb 0xfe
0022135bdb 0xff
00221310
00221310caml_bytes_set16:
00221310sar rsi, 1
00221313js 0x221356
00221315mov rax, [rdi-8]
00221319lea r8, [rsi+1]
0022131dshr rax, 10
00221321shl rax, 3
00221325movsx r9, [rdi+rax-1]
0022132blea rcx, [rax-1]
0022132fmov rax, rcx
00221332sub rax, r9
00221335cmp r8, rax
00221338jae 0x221356
0022133amov rax, rdx
0022133dadd rsi, rdi
00221340sar rdx, 9
00221344sar rax, 1
00221347mov [rsi+1], dl
0022134amov [rsi], al
0022134cmov eax, 1
00221351ret
00221352push rax
00221353call caml_array_bound_error
00221358db 0xa4
00221359push rdi
0022135adb 0xfe
0022135bdb 0xff
00221310
0022135c
0022135c // align 0x10
0022135c // align 0x10
00221360
00221360caml_bytes_set32:
00221360sar rsi, 1
00221363js 0x22139a
00221365mov rax, [rdi-8]
00221369lea r8, [rsi+3]
0022136dshr rax, 10
00221371shl rax, 3
00221375movsx r9, [rdi+rax-1]
0022137blea rcx, [rax-1]
0022137fmov rax, rcx
00221382sub rax, r9
00221385cmp r8, rax
00221388jae 0x22139a
0022138amov eax, [rdx+8]
0022138dmov [rsi+rdi], eax
00221390mov eax, 1
00221395ret
00221396push rax
00221397call caml_array_bound_error
0022139cdb 0x60
0022139dpush rdi
0022139edb 0xfe
0022139fdb 0xff
00221360
00221360caml_bytes_set32:
00221360sar rsi, 1
00221363js 0x22139a
00221365mov rax, [rdi-8]
00221369lea r8, [rsi+3]
0022136dshr rax, 10
00221371shl rax, 3
00221375movsx r9, [rdi+rax-1]
0022137blea rcx, [rax-1]
0022137fmov rax, rcx
00221382sub rax, r9
00221385cmp r8, rax
00221388jae 0x22139a
0022138amov eax, [rdx+8]
0022138dmov [rsi+rdi], eax
00221390mov eax, 1
00221395ret
00221396push rax
00221397call caml_array_bound_error
0022139cdb 0x60
0022139dpush rdi
0022139edb 0xfe
0022139fdb 0xff
00221360
002213a0
002213a0caml_bytes_set64:
002213a0sar rsi, 1
002213a3js 0x2213dc
002213a5mov rax, [rdi-8]
002213a9lea r8, [rsi+7]
002213adshr rax, 10
002213b1shl rax, 3
002213b5movsx r9, [rdi+rax-1]
002213bblea rcx, [rax-1]
002213bfmov rax, rcx
002213c2sub rax, r9
002213c5cmp r8, rax
002213c8jae 0x2213dc
002213camov rax, [rdx+8]
002213cemov [rsi+rdi], rax
002213d2mov eax, 1
002213d7ret
002213d8push rax
002213d9call caml_array_bound_error
002213dedb 0x1e
002213dfpush rdi
002213e0db 0xfe
002213e1db 0xff
002213a0
002213a0caml_bytes_set64:
002213a0sar rsi, 1
002213a3js 0x2213dc
002213a5mov rax, [rdi-8]
002213a9lea r8, [rsi+7]
002213adshr rax, 10
002213b1shl rax, 3
002213b5movsx r9, [rdi+rax-1]
002213bblea rcx, [rax-1]
002213bfmov rax, rcx
002213c2sub rax, r9
002213c5cmp r8, rax
002213c8jae 0x2213dc
002213camov rax, [rdx+8]
002213cemov [rsi+rdi], rax
002213d2mov eax, 1
002213d7ret
002213d8push rax
002213d9call caml_array_bound_error
002213dedb 0x1e
002213dfpush rdi
002213e0db 0xfe
002213e1db 0xff
002213a0
002213e2
002213e2 // align 0x20
002213e2 // align 0x20
00221400
00221400caml_string_equal:
00221400cmp rdi, rsi
00221403je 0x221460
00221405mov rax, [rdi-8]
00221409mov rdx, [rsi-8]
0022140dmov ecx, 1
00221412shr rax, 10
00221416shr rdx, 10
0022141acmp rax, rdx
0022141djne 0x221458
0022141ftest rax, rax
00221422je 0x221460
00221424sub rsi, rdi
00221427jmp 0x22144a
00221429db 0x29
0022142adb 0xfe
0022142bjmp 0x22144a
0022142d
0022142d 66 66 2e ff.
00221430 0f 1f 84 00 00 00 00 00 0f 1f 84 00 00 00 00 00 ................
00221440
00221440loc_221440:
00221440add rdi, 8
00221444sub rax, 1
00221448je 0x221460
0022144a
0022144aloc_22144a:
0022144amov rcx, [rdi+rsi]
0022144ecmp [rdi], rcx
00221451je 0x221440
00221453mov ecx, 1
00221458
00221458loc_221458:
00221458mov rax, rcx
0022145bret
0022145c
0022145c 0f 1f 40 00 ..@.
00221460
00221460loc_221460:
00221460mov ecx, 3
00221465mov rax, rcx
00221468ret
00221400
00221400caml_string_equal:
00221400cmp rdi, rsi
00221403je 0x221460
00221405mov rax, [rdi-8]
00221409mov rdx, [rsi-8]
0022140dmov ecx, 1
00221412shr rax, 10
00221416shr rdx, 10
0022141acmp rax, rdx
0022141djne 0x221458
0022141ftest rax, rax
00221422je 0x221460
00221424sub rsi, rdi
00221427jmp 0x22144a
00221429db 0x29
0022142adb 0xfe
0022142bjmp 0x22144a
0022142d
0022142d 66 66 2e ff.
00221430 0f 1f 84 00 00 00 00 00 0f 1f 84 00 00 00 00 00 ................
00221440
00221440loc_221440:
00221440add rdi, 8
00221444sub rax, 1
00221448je 0x221460
0022144a
0022144aloc_22144a:
0022144amov rcx, [rdi+rsi]
0022144ecmp [rdi], rcx
00221451je 0x221440
00221453mov ecx, 1
00221458
00221458loc_221458:
00221458mov rax, rcx
0022145bret
0022145c
0022145c 0f 1f 40 00 ..@.
00221460
00221460loc_221460:
00221460mov ecx, 3
00221465mov rax, rcx
00221468ret
00221400
00221469
00221469 // align 0x10
00221469 // align 0x10
00221470
00221470caml_bytes_equal:
00221470jmp 0x221400
00221475db 0x87
00221476db 0xff
00221477db 0xff
00221478db 0xff
00221470
00221470caml_bytes_equal:
00221470jmp 0x221400
00221475db 0x87
00221476db 0xff
00221477db 0xff
00221478db 0xff
00221470
00221479
00221479 // align 0x10
00221479 // align 0x10
00221480
00221480caml_string_notequal:
00221480call caml_string_equal
00221485mov rdx, rax
00221488mov eax, 4
0022148dsub rax, rdx
00221490ret
00221491db 0x48
00221492sub eax, edx
00221494ret
00221480
00221480caml_string_notequal:
00221480call caml_string_equal
00221485mov rdx, rax
00221488mov eax, 4
0022148dsub rax, rdx
00221490ret
00221491db 0x48
00221492sub eax, edx
00221494ret
00221480
00221495
00221495 // align 0x10
00221495 // align 0x10
002214a0
002214a0caml_bytes_notequal:
002214a0call caml_string_equal
002214a5mov rdx, rax
002214a8mov eax, 4
002214adsub rax, rdx
002214b0ret
002214b1db 0x48
002214b2sub eax, edx
002214b4ret
002214a0
002214a0caml_bytes_notequal:
002214a0call caml_string_equal
002214a5mov rdx, rax
002214a8mov eax, 4
002214adsub rax, rdx
002214b0ret
002214b1db 0x48
002214b2sub eax, edx
002214b4ret
002214a0
002214b5
002214b5 // align 0x10
002214b5 // align 0x10
002214c0
002214c0caml_string_compare:
002214c0cmp rdi, rsi
002214c3je 0x221538
002214c5push rbp
002214c6push rbx
002214c7sub rsp, 8
002214cbmov rax, [rdi-8]
002214cfshr rax, 10
002214d3shl rax, 3
002214d7lea rbp, [rax-1]
002214dbmovsx rax, [rdi+rax-1]
002214e1sub rbp, rax
002214e4mov rax, [rsi-8]
002214e8mov rdx, rbp
002214ebshr rax, 10
002214efshl rax, 3
002214f3lea rbx, [rax-1]
002214f7movsx rax, [rsi+rax-1]
002214fdsub rbx, rax
00221500cmp rbx, rbp
00221503cmovbe rdx, rbx
00221507call fn_f4600
0022150ctest eax, eax
0022150ejs 0x22153e
00221510mov eax, 3
00221515jg 0x22152a
00221517cmp rbp, rbx
0022151ajb 0x22153e
0022151ccmp rbx, rbp
0022151fjb 0x22152a
00221521mov eax, 1
00221526add rsp, 8
0022152a
0022152aloc_22152a:
0022152apop rbx
0022152bpop rbp
0022152cret
0022152ddb 0x08
0022152epop rbx
0022152fpop rbp
00221530ret
00221531
00221531 0f 1f 80 00 00 00 00 .......
00221538
00221538loc_221538:
00221538mov eax, 1
0022153dret
0022153e
0022153eloc_22153e:
0022153emov rax, -1
00221545jmp 0x22152a
002214c0
002214c0caml_string_compare:
002214c0cmp rdi, rsi
002214c3je 0x221538
002214c5push rbp
002214c6push rbx
002214c7sub rsp, 8
002214cbmov rax, [rdi-8]
002214cfshr rax, 10
002214d3shl rax, 3
002214d7lea rbp, [rax-1]
002214dbmovsx rax, [rdi+rax-1]
002214e1sub rbp, rax
002214e4mov rax, [rsi-8]
002214e8mov rdx, rbp
002214ebshr rax, 10
002214efshl rax, 3
002214f3lea rbx, [rax-1]
002214f7movsx rax, [rsi+rax-1]
002214fdsub rbx, rax
00221500cmp rbx, rbp
00221503cmovbe rdx, rbx
00221507call fn_f4600
0022150ctest eax, eax
0022150ejs 0x22153e
00221510mov eax, 3
00221515jg 0x22152a
00221517cmp rbp, rbx
0022151ajb 0x22153e
0022151ccmp rbx, rbp
0022151fjb 0x22152a
00221521mov eax, 1
00221526add rsp, 8
0022152a
0022152aloc_22152a:
0022152apop rbx
0022152bpop rbp
0022152cret
0022152ddb 0x08
0022152epop rbx
0022152fpop rbp
00221530ret
00221531
00221531 0f 1f 80 00 00 00 00 .......
00221538
00221538loc_221538:
00221538mov eax, 1
0022153dret
0022153e
0022153eloc_22153e:
0022153emov rax, -1
00221545jmp 0x22152a
002214c0
00221547
00221547 // align 0x10
00221547 // align 0x10
00221550
00221550caml_bytes_compare:
00221550jmp 0x2214c0
00221555db 0x67
00221556db 0xff
00221557db 0xff
00221558db 0xff
00221550
00221550caml_bytes_compare:
00221550jmp 0x2214c0
00221555db 0x67
00221556db 0xff
00221557db 0xff
00221558db 0xff
00221550
00221559
00221559 // align 0x10
00221559 // align 0x10
00221560
00221560caml_string_lessthan:
00221560sub rsp, 8
00221564call caml_string_compare
00221569test rax, rax
0022156csetle al
0022156fadd rsp, 8
00221573movzx eax, al
00221576lea rax, [rax+rax+1]
0022157bret
0022157cdb 0x44
0022157dadd [rcx], al
0022157fret
00221560
00221560caml_string_lessthan:
00221560sub rsp, 8
00221564call caml_string_compare
00221569test rax, rax
0022156csetle al
0022156fadd rsp, 8
00221573movzx eax, al
00221576lea rax, [rax+rax+1]
0022157bret
0022157cdb 0x44
0022157dadd [rcx], al
0022157fret
00221560
00221580
00221580caml_bytes_lessthan:
00221580sub rsp, 8
00221584call caml_string_compare
00221589test rax, rax
0022158csetle al
0022158fadd rsp, 8
00221593movzx eax, al
00221596lea rax, [rax+rax+1]
0022159bret
0022159cdb 0x44
0022159dadd [rcx], al
0022159fret
00221580
00221580caml_bytes_lessthan:
00221580sub rsp, 8
00221584call caml_string_compare
00221589test rax, rax
0022158csetle al
0022158fadd rsp, 8
00221593movzx eax, al
00221596lea rax, [rax+rax+1]
0022159bret
0022159cdb 0x44
0022159dadd [rcx], al
0022159fret
00221580
002215a0
002215a0caml_string_lessequal:
002215a0sub rsp, 8
002215a4call caml_string_compare
002215a9cmp rax, 1
002215adsetle al
002215b0add rsp, 8
002215b4movzx eax, al
002215b7lea rax, [rax+rax+1]
002215bcret
002215bddb 0x44
002215beadd [rcx], al
002215c0ret
002215a0
002215a0caml_string_lessequal:
002215a0sub rsp, 8
002215a4call caml_string_compare
002215a9cmp rax, 1
002215adsetle al
002215b0add rsp, 8
002215b4movzx eax, al
002215b7lea rax, [rax+rax+1]
002215bcret
002215bddb 0x44
002215beadd [rcx], al
002215c0ret
002215a0
002215c1
002215c1 // align 0x10
002215c1 // align 0x10
002215d0
002215d0caml_bytes_lessequal:
002215d0sub rsp, 8
002215d4call caml_string_compare
002215d9cmp rax, 1
002215ddsetle al
002215e0add rsp, 8
002215e4movzx eax, al
002215e7lea rax, [rax+rax+1]
002215ecret
002215eddb 0x44
002215eeadd [rcx], al
002215f0ret
002215d0
002215d0caml_bytes_lessequal:
002215d0sub rsp, 8
002215d4call caml_string_compare
002215d9cmp rax, 1
002215ddsetle al
002215e0add rsp, 8
002215e4movzx eax, al
002215e7lea rax, [rax+rax+1]
002215ecret
002215eddb 0x44
002215eeadd [rcx], al
002215f0ret
002215d0
002215f1
002215f1 // align 0x10
002215f1 // align 0x10
00221600
00221600caml_string_greaterthan:
00221600sub rsp, 8
00221604call caml_string_compare
00221609cmp rax, 1
0022160dsetg al
00221610add rsp, 8
00221614movzx eax, al
00221617lea rax, [rax+rax+1]
0022161cret
0022161ddb 0x44
0022161eadd [rcx], al
00221620ret
00221600
00221600caml_string_greaterthan:
00221600sub rsp, 8
00221604call caml_string_compare
00221609cmp rax, 1
0022160dsetg al
00221610add rsp, 8
00221614movzx eax, al
00221617lea rax, [rax+rax+1]
0022161cret
0022161ddb 0x44
0022161eadd [rcx], al
00221620ret
00221600
00221621
00221621 // align 0x10
00221621 // align 0x10
00221630
00221630caml_bytes_greaterthan:
00221630sub rsp, 8
00221634call caml_string_compare
00221639cmp rax, 1
0022163dsetg al
00221640add rsp, 8
00221644movzx eax, al
00221647lea rax, [rax+rax+1]
0022164cret
0022164ddb 0x44
0022164eadd [rcx], al
00221650ret
00221630
00221630caml_bytes_greaterthan:
00221630sub rsp, 8
00221634call caml_string_compare
00221639cmp rax, 1
0022163dsetg al
00221640add rsp, 8
00221644movzx eax, al
00221647lea rax, [rax+rax+1]
0022164cret
0022164ddb 0x44
0022164eadd [rcx], al
00221650ret
00221630
00221651
00221651 // align 0x10
00221651 // align 0x10
00221660
00221660caml_string_greaterequal:
00221660sub rsp, 8
00221664call caml_string_compare
00221669test rax, rax
0022166csetg al
0022166fadd rsp, 8
00221673movzx eax, al
00221676lea rax, [rax+rax+1]
0022167bret
0022167cdb 0x44
0022167dadd [rcx], al
0022167fret
00221660
00221660caml_string_greaterequal:
00221660sub rsp, 8
00221664call caml_string_compare
00221669test rax, rax
0022166csetg al
0022166fadd rsp, 8
00221673movzx eax, al
00221676lea rax, [rax+rax+1]
0022167bret
0022167cdb 0x44
0022167dadd [rcx], al
0022167fret
00221660
00221680
00221680caml_bytes_greaterequal:
00221680sub rsp, 8
00221684call caml_string_compare
00221689test rax, rax
0022168csetg al
0022168fadd rsp, 8
00221693movzx eax, al
00221696lea rax, [rax+rax+1]
0022169bret
0022169cdb 0x44
0022169dadd [rcx], al
0022169fret
00221680
00221680caml_bytes_greaterequal:
00221680sub rsp, 8
00221684call caml_string_compare
00221689test rax, rax
0022168csetg al
0022168fadd rsp, 8
00221693movzx eax, al
00221696lea rax, [rax+rax+1]
0022169bret
0022169cdb 0x44
0022169dadd [rcx], al
0022169fret
00221680
002216a0
002216a0caml_blit_bytes:
002216a0sar rcx, 1
002216a3mov rax, rdx
002216a6sar rsi, 1
002216a9mov rdx, r8
002216acsub rsp, 8
002216b0add rsi, rdi
002216b3sar rdx, 1
002216b6lea rdi, [rcx+rax]
002216bacall fn_f4520
002216bfmov eax, 1
002216c4add rsp, 8
002216c8ret
002216c9db 0x83
002216cadb 0xc4
002216cbor bl, al
002216a0
002216a0caml_blit_bytes:
002216a0sar rcx, 1
002216a3mov rax, rdx
002216a6sar rsi, 1
002216a9mov rdx, r8
002216acsub rsp, 8
002216b0add rsi, rdi
002216b3sar rdx, 1
002216b6lea rdi, [rcx+rax]
002216bacall fn_f4520
002216bfmov eax, 1
002216c4add rsp, 8
002216c8ret
002216c9db 0x83
002216cadb 0xc4
002216cbor bl, al
002216a0
002216cd
002216cd // align 0x10
002216cd // align 0x10
002216d0
002216d0caml_blit_string:
002216d0sar rcx, 1
002216d3mov rax, rdx
002216d6sar rsi, 1
002216d9mov rdx, r8
002216dcsub rsp, 8
002216e0add rsi, rdi
002216e3sar rdx, 1
002216e6lea rdi, [rcx+rax]
002216eacall fn_f4520
002216efmov eax, 1
002216f4add rsp, 8
002216f8ret
002216f9db 0x83
002216fadb 0xc4
002216fbor bl, al
002216d0
002216d0caml_blit_string:
002216d0sar rcx, 1
002216d3mov rax, rdx
002216d6sar rsi, 1
002216d9mov rdx, r8
002216dcsub rsp, 8
002216e0add rsi, rdi
002216e3sar rdx, 1
002216e6lea rdi, [rcx+rax]
002216eacall fn_f4520
002216efmov eax, 1
002216f4add rsp, 8
002216f8ret
002216f9db 0x83
002216fadb 0xc4
002216fbor bl, al
002216d0
002216fd
002216fd // align 0x10
002216fd // align 0x10
00221700
00221700caml_fill_bytes:
00221700sar rcx, 1
00221703sar rsi, 1
00221706sub rsp, 8
0022170aadd rdi, rsi
0022170dsar rdx, 1
00221710mov esi, ecx
00221712call fn_f40e0
00221717mov eax, 1
0022171cadd rsp, 8
00221720ret
00221721db 0x83
00221722db 0xc4
00221723or bl, al
00221700
00221700caml_fill_bytes:
00221700sar rcx, 1
00221703sar rsi, 1
00221706sub rsp, 8
0022170aadd rdi, rsi
0022170dsar rdx, 1
00221710mov esi, ecx
00221712call fn_f40e0
00221717mov eax, 1
0022171cadd rsp, 8
00221720ret
00221721db 0x83
00221722db 0xc4
00221723or bl, al
00221700
00221725
00221725 // align 0x10
00221725 // align 0x10
00221730
00221730caml_fill_string:
00221730sar rcx, 1
00221733sar rsi, 1
00221736sub rsp, 8
0022173aadd rdi, rsi
0022173dsar rdx, 1
00221740mov esi, ecx
00221742call fn_f40e0
00221747mov eax, 1
0022174cadd rsp, 8
00221750ret
00221751db 0x83
00221752db 0xc4
00221753or bl, al
00221730
00221730caml_fill_string:
00221730sar rcx, 1
00221733sar rsi, 1
00221736sub rsp, 8
0022173aadd rdi, rsi
0022173dsar rdx, 1
00221740mov esi, ecx
00221742call fn_f40e0
00221747mov eax, 1
0022174cadd rsp, 8
00221750ret
00221751db 0x83
00221752db 0xc4
00221753or bl, al
00221730
00221755
00221755 // align 0x10
00221755 // align 0x10
00221760
00221760caml_alloc_sprintf:
00221760push r14
00221762push r13
00221764push r12
00221766push rbp
00221767mov rbp, rdi
0022176apush rbx
0022176bsub rsp, 352
00221772mov [rsp+184], rsi
0022177amov [rsp+192], rdx
00221782mov [rsp+200], rcx
0022178amov [rsp+208], r8
00221792mov [rsp+216], r9
0022179atest al, al
0022179cje 0x2217e2
0022179emovaps [rsp+224], x0
002217a6movaps [rsp+240], x1
002217aemovaps [rsp+256], x2
002217b6movaps [rsp+272], x3
002217bemovaps [rsp+288], x4
002217c6movaps [rsp+304], x5
002217cemovaps [rsp+320], x6
002217d6movaps [rsp+336], x7
002217demov rax, [0x28]
002217e7mov [rsp+168], rax
002217efxor eax, eax
002217f1lea r12, [rsp+8]
002217f6lea r13, [rsp+32]
002217fbmov r8, rbp
002217femov r9, r12
00221801mov ecx, 128
00221806mov edx, 1
0022180bmov rdi, r13
0022180elea rax, [rsp+400]
00221816mov esi, 128
0022181bmov [rsp+8], 8
00221823mov [rsp+16], rax
00221828lea rax, [rsp+176]
00221830mov [rsp+12], 48
00221838mov [rsp+24], rax
0022183dcall fn_f4310
00221842mov ebx, eax
00221844test eax, eax
00221846js 0x221905
0022184cmovsxd r14, eax
0022184fcmp eax, 127
00221852jbe 0x2218f0
00221858mov rdi, rbp
0022185bcall caml_stat_strdup
00221860mov rdi, r14
00221863mov r13, rax
00221866call caml_alloc_string
0022186blea esi, [rbx+1]
0022186emov r9, r12
00221871mov r8, r13
00221874mov rbp, rax
00221877lea rax, [rsp+400]
0022187fmovsxd rsi, esi
00221882mov rcx, -1
00221889mov [rsp+16], rax
0022188emov rdi, rbp
00221891lea rax, [rsp+176]
00221899mov edx, 1
0022189emov [rsp+8], 8
002218a6mov [rsp+12], 48
002218aemov [rsp+24], rax
002218b3call fn_f4310
002218b8mov rdi, r13
002218bbcall caml_stat_free
002218c0mov rax, [rsp+168]
002218c8sub rax, [0x28]
002218d1jne 0x221900
002218d3add rsp, 352
002218damov rax, rbp
002218ddpop rbx
002218depop rbp
002218dfpop r12
002218e1pop r13
002218e3pop r14
002218e5ret
002218e6db 0x5d
002218e7pop r14
002218e9ret
002218ea
002218ea 66 0f 1f 44 00 00 f..D..
002218f0
002218f0loc_2218f0:
002218f0mov rsi, r13
002218f3mov rdi, r14
002218f6call caml_alloc_initialized_string
002218fbmov rbp, rax
002218fejmp 0x2218c4
00221900
00221900loc_221900:
00221900call fn_f4590
00221905
00221905loc_221905:
00221905call caml_raise_out_of_memory
00221760
00221760caml_alloc_sprintf:
00221760push r14
00221762push r13
00221764push r12
00221766push rbp
00221767mov rbp, rdi
0022176apush rbx
0022176bsub rsp, 352
00221772mov [rsp+184], rsi
0022177amov [rsp+192], rdx
00221782mov [rsp+200], rcx
0022178amov [rsp+208], r8
00221792mov [rsp+216], r9
0022179atest al, al
0022179cje 0x2217e2
0022179emovaps [rsp+224], x0
002217a6movaps [rsp+240], x1
002217aemovaps [rsp+256], x2
002217b6movaps [rsp+272], x3
002217bemovaps [rsp+288], x4
002217c6movaps [rsp+304], x5
002217cemovaps [rsp+320], x6
002217d6movaps [rsp+336], x7
002217demov rax, [0x28]
002217e7mov [rsp+168], rax
002217efxor eax, eax
002217f1lea r12, [rsp+8]
002217f6lea r13, [rsp+32]
002217fbmov r8, rbp
002217femov r9, r12
00221801mov ecx, 128
00221806mov edx, 1
0022180bmov rdi, r13
0022180elea rax, [rsp+400]
00221816mov esi, 128
0022181bmov [rsp+8], 8
00221823mov [rsp+16], rax
00221828lea rax, [rsp+176]
00221830mov [rsp+12], 48
00221838mov [rsp+24], rax
0022183dcall fn_f4310
00221842mov ebx, eax
00221844test eax, eax
00221846js 0x221905
0022184cmovsxd r14, eax
0022184fcmp eax, 127
00221852jbe 0x2218f0
00221858mov rdi, rbp
0022185bcall caml_stat_strdup
00221860mov rdi, r14
00221863mov r13, rax
00221866call caml_alloc_string
0022186blea esi, [rbx+1]
0022186emov r9, r12
00221871mov r8, r13
00221874mov rbp, rax
00221877lea rax, [rsp+400]
0022187fmovsxd rsi, esi
00221882mov rcx, -1
00221889mov [rsp+16], rax
0022188emov rdi, rbp
00221891lea rax, [rsp+176]
00221899mov edx, 1
0022189emov [rsp+8], 8
002218a6mov [rsp+12], 48
002218aemov [rsp+24], rax
002218b3call fn_f4310
002218b8mov rdi, r13
002218bbcall caml_stat_free
002218c0mov rax, [rsp+168]
002218c8sub rax, [0x28]
002218d1jne 0x221900
002218d3add rsp, 352
002218damov rax, rbp
002218ddpop rbx
002218depop rbp
002218dfpop r12
002218e1pop r13
002218e3pop r14
002218e5ret
002218e6db 0x5d
002218e7pop r14
002218e9ret
002218ea
002218ea 66 0f 1f 44 00 00 f..D..
002218f0
002218f0loc_2218f0:
002218f0mov rsi, r13
002218f3mov rdi, r14
002218f6call caml_alloc_initialized_string
002218fbmov rbp, rax
002218fejmp 0x2218c4
00221900
00221900loc_221900:
00221900call fn_f4590
00221905
00221905loc_221905:
00221905call caml_raise_out_of_memory
00221760
0022190a
0022190a // align 0x10
0022190a // align 0x10
00221910
00221910caml_string_of_bytes:
00221910mov rax, rdi
00221913ret
00221914db 0x48
00221915mov eax, edi
00221917ret
00221910
00221910caml_string_of_bytes:
00221910mov rax, rdi
00221913ret
00221914db 0x48
00221915mov eax, edi
00221917ret
00221910
00221918
00221918 // align 0x10
00221918 // align 0x10
00221920
00221920caml_bytes_of_string:
00221920mov rax, rdi
00221923ret
00221924db 0x48
00221925mov eax, edi
00221927ret
00221920
00221920caml_bytes_of_string:
00221920mov rax, rdi
00221923ret
00221924db 0x48
00221925mov eax, edi
00221927ret
00221920
00221928
00221928 // align 0x10
00221928 // align 0x10
00221930
00221930fn_221930:
00221930mov rdx, [rsi+8]
00221934xor eax, eax
00221936cmp [rdi+8], rdx
0022193aje 0x221945
0022193csbb eax, eax
0022193eor eax, 1
00221941ret
00221942db 0x83
00221943db 0xc8
00221944add ebx, eax
00221930
00221930fn_221930:
00221930mov rdx, [rsi+8]
00221934xor eax, eax
00221936cmp [rdi+8], rdx
0022193aje 0x221945
0022193csbb eax, eax
0022193eor eax, 1
00221941ret
00221942db 0x83
00221943db 0xc8
00221944add ebx, eax
00221930
00221946
00221946 // align 0x10
00221946 // align 0x10
00221950
00221950fn_221950:
00221950mov rax, [rdi+8]
00221954ret
00221955db 0x8b
00221956or r11b, r8b
00221950
00221950fn_221950:
00221950mov rax, [rdi+8]
00221954ret
00221955db 0x8b
00221956or r11b, r8b
00221950
00221959
00221959 // align 0x10
00221959 // align 0x10
00221960
00221960fn_221960:
00221960mov rdx, [rsi+8]
00221964xor eax, eax
00221966cmp [rdi+8], rdx
0022196aje 0x221975
0022196csbb eax, eax
0022196eor eax, 1
00221971ret
00221972db 0x83
00221973db 0xc8
00221974add ebx, eax
00221960
00221960fn_221960:
00221960mov rdx, [rsi+8]
00221964xor eax, eax
00221966cmp [rdi+8], rdx
0022196aje 0x221975
0022196csbb eax, eax
0022196eor eax, 1
00221971ret
00221972db 0x83
00221973db 0xc8
00221974add ebx, eax
00221960
00221976
00221976 // align 0x10
00221976 // align 0x10
00221980
00221980fn_221980:
00221980mov rax, [rdi+8]
00221984ret
00221985db 0x8b
00221986or r11b, r8b
00221980
00221980fn_221980:
00221980mov rax, [rdi+8]
00221984ret
00221985db 0x8b
00221986or r11b, r8b
00221980
00221989
00221989 // align 0x10
00221989 // align 0x10
00221990
00221990fn_221990:
00221990push r15
00221992mov edx, 1024
00221997push r14
00221999push r13
0022199bpush r12
0022199dpush rbp
0022199epush rbx
0022199fsub rsp, 1048
002219a6mov r14, [0x28]
002219afmov [rsp+1032], r14
002219b7mov r14, rsi
002219bamov rsi, rsp
002219bdcall caml_strerror
002219c2mov r12, rax
002219c5mov rdi, r14
002219c8call fn_f43a0
002219cdmov rdi, r12
002219d0mov rbx, rax
002219d3call fn_f43a0
002219d8movsxd r15, ebx
002219dblea edi, [rax+rbx+2]
002219dfmov r13, rax
002219e2movsxd rdi, edi
002219e5call caml_alloc_string
002219eamov rdx, r15
002219edmov rsi, r14
002219f0mov rdi, rax
002219f3mov rbp, rax
002219f6call fn_f47d0
002219fbmov eax, 8250
00221a00lea edi, [rbx+2]
00221a03movsxd rdx, r13l
00221a06mov [r15+rbp], ax
00221a0bmovsxd rdi, edi
00221a0emov rsi, r12
00221a11add rdi, rbp
00221a14call fn_f47d0
00221a19mov rdi, rbp
00221a1ccall caml_raise_sys_error
00221990
00221990fn_221990:
00221990push r15
00221992mov edx, 1024
00221997push r14
00221999push r13
0022199bpush r12
0022199dpush rbp
0022199epush rbx
0022199fsub rsp, 1048
002219a6mov r14, [0x28]
002219afmov [rsp+1032], r14
002219b7mov r14, rsi
002219bamov rsi, rsp
002219bdcall caml_strerror
002219c2mov r12, rax
002219c5mov rdi, r14
002219c8call fn_f43a0
002219cdmov rdi, r12
002219d0mov rbx, rax
002219d3call fn_f43a0
002219d8movsxd r15, ebx
002219dblea edi, [rax+rbx+2]
002219dfmov r13, rax
002219e2movsxd rdi, edi
002219e5call caml_alloc_string
002219eamov rdx, r15
002219edmov rsi, r14
002219f0mov rdi, rax
002219f3mov rbp, rax
002219f6call fn_f47d0
002219fbmov eax, 8250
00221a00lea edi, [rbx+2]
00221a03movsxd rdx, r13l
00221a06mov [r15+rbp], ax
00221a0bmovsxd rdi, edi
00221a0emov rsi, r12
00221a11add rdi, rbp
00221a14call fn_f47d0
00221a19mov rdi, rbp
00221a1ccall caml_raise_sys_error
00221990
00221a21
00221a21 // align 0x10
00221a21 // align 0x10
00221a30
00221a30fn_221a30:
00221a30push rbx
00221a31mov rbx, [rdi+8]
00221a35mov rdi, rbx
00221a38call fn_f4060
00221a3dmov rdi, rbx
00221a40pop rbx
00221a41jmp 0x216690
00221a46db 0x46
00221a47db 0x4c
00221a48db 0xff
00221a49db 0xff
00221a30
00221a30fn_221a30:
00221a30push rbx
00221a31mov rbx, [rdi+8]
00221a35mov rdi, rbx
00221a38call fn_f4060
00221a3dmov rdi, rbx
00221a40pop rbx
00221a41jmp 0x216690
00221a46db 0x46
00221a47db 0x4c
00221a48db 0xff
00221a49db 0xff
00221a30
00221a4a
00221a4a // align 0x10
00221a4a // align 0x10
00221a50
00221a50fn_221a50:
00221a50push rbx
00221a51mov rbx, [rdi+8]
00221a55mov rdi, rbx
00221a58call fn_f4750
00221a5dmov rdi, rbx
00221a60pop rbx
00221a61jmp 0x216690
00221a66db 0x26
00221a67db 0x4c
00221a68db 0xff
00221a69db 0xff
00221a50
00221a50fn_221a50:
00221a50push rbx
00221a51mov rbx, [rdi+8]
00221a55mov rdi, rbx
00221a58call fn_f4750
00221a5dmov rdi, rbx
00221a60pop rbx
00221a61jmp 0x216690
00221a66db 0x26
00221a67db 0x4c
00221a68db 0xff
00221a69db 0xff
00221a50
00221a6a
00221a6a // align 0x10
00221a6a // align 0x10
00221a70
00221a70caml_mutex_lock:
00221a70jmp 0xf4710
00221a75db 0x97
00221a76sub al, -19
00221a78db 0xff
00221a70
00221a70caml_mutex_lock:
00221a70jmp 0xf4710
00221a75db 0x97
00221a76sub al, -19
00221a78db 0xff
00221a70
00221a79
00221a79 // align 0x10
00221a79 // align 0x10
00221a80
00221a80caml_mutex_unlock:
00221a80jmp 0xf47c0
00221a85db 0x37
00221a86db 0x2d
00221a87in eax, dx
00221a88db 0xff
00221a80
00221a80caml_mutex_unlock:
00221a80jmp 0xf47c0
00221a85db 0x37
00221a86db 0x2d
00221a87in eax, dx
00221a88db 0xff
00221a80
00221a89
00221a89 // align 0x10
00221a89 // align 0x10
00221a90
00221a90caml_ml_mutex_new:
00221a90push r12
00221a92push rbp
00221a93push rbx
00221a94sub rsp, 16
00221a98mov rbp, [0x28]
00221aa1mov [rsp+8], rbp
00221aa6lea rbp, [rsp+4]
00221aabmov rdi, rbp
00221aaecall fn_f4410
00221ab3mov ebx, eax
00221ab5test eax, eax
00221ab7je 0x221ad0
00221ab9cmp ebx, 12
00221abcje 0x221afd
00221abelea rsi, [rip+55859]
00221ac5mov edi, ebx
00221ac7call fn_221990
00221accmov esi, 2
00221ad1mov rdi, rbp
00221ad4call fn_f45f0
00221ad9mov ebx, eax
00221adbtest eax, eax
00221addjne 0x221b10
00221adfmov edi, 40
00221ae4call caml_stat_alloc_noexc
00221ae9mov r12, rax
00221aectest rax, rax
00221aefjne 0x221b20
00221af1mov rdi, rbp
00221af4call fn_f40d0
00221af9call caml_raise_out_of_memory
00221afenop [rax+rax]
00221b04mov rdi, r12
00221b07call caml_stat_free
00221b0cmov rdi, rbp
00221b0fcall fn_f40d0
00221b14jmp 0x221abd
00221b16db 0xed
00221b17db 0xff
00221b18jmp 0x221abd
00221b1a
00221b1a 66 0f 1f 44 00 00 f..D..
00221b20
00221b20loc_221b20:
00221b20mov rsi, rbp
00221b23mov rdi, rax
00221b26call fn_f4300
00221b2bmov ebx, eax
00221b2dtest eax, eax
00221b2fjne 0x221b08
00221b31mov rdi, rbp
00221b34call fn_f40d0
00221b39mov ecx, 1
00221b3exor edx, edx
00221b40mov esi, 8
00221b45lea rdi, [rip+0x53e14]
00221b4ccall caml_alloc_custom
00221b51mov [rax+8], r12
00221b55mov rdx, [rsp+8]
00221b5asub rdx, [0x28]
00221b63jne 0x221b6e
00221b65add rsp, 16
00221b69pop rbx
00221b6apop rbp
00221b6bpop r12
00221b6dret
00221b6e
00221b6eloc_221b6e:
00221b6ecall fn_f4590
00221a90
00221a90caml_ml_mutex_new:
00221a90push r12
00221a92push rbp
00221a93push rbx
00221a94sub rsp, 16
00221a98mov rbp, [0x28]
00221aa1mov [rsp+8], rbp
00221aa6lea rbp, [rsp+4]
00221aabmov rdi, rbp
00221aaecall fn_f4410
00221ab3mov ebx, eax
00221ab5test eax, eax
00221ab7je 0x221ad0
00221ab9cmp ebx, 12
00221abcje 0x221afd
00221abelea rsi, [rip+55859]
00221ac5mov edi, ebx
00221ac7call fn_221990
00221accmov esi, 2
00221ad1mov rdi, rbp
00221ad4call fn_f45f0
00221ad9mov ebx, eax
00221adbtest eax, eax
00221addjne 0x221b10
00221adfmov edi, 40
00221ae4call caml_stat_alloc_noexc
00221ae9mov r12, rax
00221aectest rax, rax
00221aefjne 0x221b20
00221af1mov rdi, rbp
00221af4call fn_f40d0
00221af9call caml_raise_out_of_memory
00221afenop [rax+rax]
00221b04mov rdi, r12
00221b07call caml_stat_free
00221b0cmov rdi, rbp
00221b0fcall fn_f40d0
00221b14jmp 0x221abd
00221b16db 0xed
00221b17db 0xff
00221b18jmp 0x221abd
00221b1a
00221b1a 66 0f 1f 44 00 00 f..D..
00221b20
00221b20loc_221b20:
00221b20mov rsi, rbp
00221b23mov rdi, rax
00221b26call fn_f4300
00221b2bmov ebx, eax
00221b2dtest eax, eax
00221b2fjne 0x221b08
00221b31mov rdi, rbp
00221b34call fn_f40d0
00221b39mov ecx, 1
00221b3exor edx, edx
00221b40mov esi, 8
00221b45lea rdi, [rip+0x53e14]
00221b4ccall caml_alloc_custom
00221b51mov [rax+8], r12
00221b55mov rdx, [rsp+8]
00221b5asub rdx, [0x28]
00221b63jne 0x221b6e
00221b65add rsp, 16
00221b69pop rbx
00221b6apop rbp
00221b6bpop r12
00221b6dret
00221b6e
00221b6eloc_221b6e:
00221b6ecall fn_f4590
00221a90
Loading..