Function at 0x14001c5b0
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc8
mov qword [rsp + 0x70], 0
mov esi, edx
mov r15, r9
mov dword [rsp + 0x6c], 0
cmp ecx, 1
jne 0x14001c680
movabs rax, 0xb8b1aabcbcd4d500
add rax, r8
cmp rax, 1
mov qword [rsp + 0x30], rax
setbe byte [rsp + 0x41]
cmp edx, 6
movzx edi, byte [rsp + 0x41]
sete al
and al, dil
mov byte [rsp + 0x42], al
je 0x14001c6a0
mov rax, qword [r9 - 0x18]
mov rbx, qword [r9 - 0x10]
mov edi, dword [r9 - 0x24]
mov qword [rsp + 0x38], rax
test rbx, rbx
je 0x14001c811
movsxd rsi, edi
test edi, edi
js 0x14001cb2e
mov rcx, qword [rsp + 0x130]
mov r8, r15
xor edx, edx
call sym._Unwind_SetGR
mov rcx, qword [rsp + 0x130]
mov r8, rsi
mov edx, 1
call sym._Unwind_SetGR
mov rcx, qword [rsp + 0x130]
mov rdx, rbx
call dbg._Unwind_SetIP
mov eax, 7
jmp 0x14001c685
mov eax, 3
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [rsp + 0x130]
call dbg._Unwind_GetLanguageSpecificData
mov qword [rsp + 0x38], rax
mov rdx, rax
test rax, rax
je 0x14001c99b
lea rax, [rsp + 0x90]
mov rcx, qword [rsp + 0x130]
mov r8, rax
mov qword [rsp + 0x50], rax
call sym.parse_lsda_header__Unwind_Context__unsigned_char_const__lsda_header_info_
mov rdx, qword [rsp + 0x130]
mov r13, rax
movzx eax, byte [rsp + 0xb8]
mov ecx, eax
mov byte [rsp + 0x43], al
mov dword [rsp + 0x44], eax
call sym.base_of_encoded_value_unsigned_char___Unwind_Context_
mov rcx, qword [rsp + 0x130]
lea rdx, [rsp + 0x6c]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0xa0], rax
call dbg._Unwind_GetIPInfo
cmp dword [rsp + 0x6c], 1
mov r12, qword [rsp + 0xb0]
sbb rax, 0
mov rdi, rax
cmp r13, r12
jae 0x14001c7f9
lea rax, [rsp + 0x78]
mov r14, qword [rsp + 0x90]
movzx ebx, byte [rsp + 0xb9]
lea rbp, [rsp + 0x88]
mov qword [rsp + 0x20], rax
lea rax, [rsp + 0x80]
mov qword [rsp + 0x28], rax
nop dword [rax + rax]
xor edx, edx
mov ecx, ebx
call sym.base_of_encoded_value_unsigned_char___Unwind_Context_
mov r9, qword [rsp + 0x20]
mov r8, r13
mov ecx, ebx
mov rdx, rax
call sym.read_encoded_value_with_base_unsigned_char__unsigned_long_long__unsigned_char_const__unsigned_long_long_
xor edx, edx
mov ecx, ebx
mov r13, rax
call sym.base_of_encoded_value_unsigned_char___Unwind_Context_
mov r9, qword [rsp + 0x28]
mov r8, r13
mov ecx, ebx
mov rdx, rax
call sym.read_encoded_value_with_base_unsigned_char__unsigned_long_long__unsigned_char_const__unsigned_long_long_
xor edx, edx
mov ecx, ebx
mov r13, rax
call sym.base_of_encoded_value_unsigned_char___Unwind_Context_
mov r8, r13
mov ecx, ebx
mov r9, rbp
mov rdx, rax
call sym.read_encoded_value_with_base_unsigned_char__unsigned_long_long__unsigned_char_const__unsigned_long_long_
xor r10d, r10d
xor ecx, ecx
mov r13, rax
nop dword [rax]
movzx edx, byte [r13]
add r13, 1
mov rax, rdx
and eax, 0x7f
shl rax, cl
add ecx, 7
or r10, rax
test dl, dl
js 0x14001c7d0
mov rax, qword [rsp + 0x78]
add rax, r14
cmp rdi, rax
jae 0x14001c820
test sil, 1
jne 0x14001c840
and esi, 8
je 0x14001c809
call method.std.terminate__
cmp qword [rsp + 0x30], 1
ja 0x14001c804
mov rcx, r15
call sym.__cxa_call_terminate
nop dword [rax]
add rax, qword [rsp + 0x80]
cmp rdi, rax
jb 0x14001c85d
cmp r13, r12
jb 0x14001c770
jmp 0x14001c7f9
xor edi, edi
xor ebx, ebx
xor r13d, r13d
cmp qword [rsp + 0x30], 1
jbe 0x14001c9a5
mov eax, 6
jmp 0x14001c685
mov rbx, qword [rsp + 0x88]
test rbx, rbx
je 0x14001c99b
add rbx, qword [rsp + 0x98]
test r10, r10
je 0x14001c991
lea r13, [r12 + r10 - 1]
test rbx, rbx
je 0x14001c99b
mov r11d, esi
lea r14, [0x1400c55e0]
and r11d, 8
jne 0x14001c8b0
cmp qword [rsp + 0x30], 1
lea r14, [0x1400c5610]
jbe 0x14001cbc8
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rbx
movzx r12d, byte [rsp + 0x42]
mov qword [rsp + 0x58], rax
movzx eax, byte [rsp + 0x43]
mov dword [rsp + 0x118], esi
mov esi, r11d
and eax, 7
mov qword [rsp + 0x128], r15
mov r15, r13
mov byte [rsp + 0x20], al
nop word cs:[rax + rax]
mov rbx, r15
xor edi, edi
xor ecx, ecx
nop word [rax + rax]
movzx edx, byte [rbx]
add rbx, 1
mov rax, rdx
and eax, 0x7f
shl rax, cl
add ecx, 7
or rdi, rax
test dl, dl
js 0x14001c900
cmp ecx, 0x3f
ja 0x14001c932
and edx, 0x40
je 0x14001c932
mov eax, 1
shl rax, cl
neg rax
or rdi, rax
mov rdx, rbx
xor r13d, r13d
xor ecx, ecx
nop word [rax + rax]
movzx r8d, byte [rdx]
add rdx, 1
mov rax, r8
and eax, 0x7f
shl rax, cl
add ecx, 7
or r13, rax
test r8b, r8b
js 0x14001c940
cmp ecx, 0x3f
ja 0x14001c9d0
and r8d, 0x40
je 0x14001c9d0
mov eax, 1
shl rax, cl
neg rax
or r13, rax
test rdi, rdi
jne 0x14001ca10
mov r12d, 1
nop dword [rax]
lea r15, [rbx + r13]
jmp 0x14001c8f0
test rbx, rbx
je 0x14001c99b
and esi, 1
je 0x14001ca03
mov eax, 8
jmp 0x14001c685
mov rax, qword [rsp + 0x38]
mov dword [r15 - 0x24], edi
mov qword [r15 - 0x20], r13
mov qword [r15 - 0x18], rax
mov rax, qword [rsp + 0x70]
mov qword [r15 - 0x10], rbx
mov qword [r15 - 8], rax
jmp 0x14001c853
test rdi, rdi
jne 0x14001ca10
mov r12d, 1
test r13, r13
jne 0x14001c988
mov byte [rsp + 0x42], r12b
mov rbx, qword [rsp + 0x28]
mov esi, dword [rsp + 0x118]
mov r15, qword [rsp + 0x128]
test r12b, r12b
je 0x14001c99b
and esi, 1
jne 0x14001c99b
xor esi, esi
jmp 0x14001c63a
test rdi, rdi
jg 0x14001caa9
test esi, esi
sete al
test byte [rsp + 0x41], al
je 0x14001ca2d
test r14, r14
jne 0x14001cba0
mov rdx, rdi
xor r9d, r9d
xor ecx, ecx
not rdx
add rdx, qword [rsp + 0xa8]
movzx r8d, byte [rdx]
add rdx, 1
mov rax, r8
and eax, 0x7f
shl rax, cl
add ecx, 7
or r9, rax
test r8b, r8b
js 0x14001ca40
test r9, r9
jne 0x14001c9db
mov r11d, esi
mov esi, dword [rsp + 0x118]
mov r13, r15
mov rbx, qword [rsp + 0x28]
mov r15, qword [rsp + 0x128]
and esi, 1
jne 0x14001c847
cmp qword [rsp + 0x30], 1
ja 0x14001ca99
test r11d, r11d
je 0x14001c62f
test edi, edi
js 0x14001cbe7
movsxd rsi, edi
jmp 0x14001c63a
cmp byte [rsp + 0x43], 0xff
je 0x14001cb29
cmp byte [rsp + 0x20], 2
je 0x14001cb20
jbe 0x14001cb92
lea r8, [rdi*4]
neg r8
cmp byte [rsp + 0x20], 3
jne 0x14001cb77
mov ecx, dword [rsp + 0x44]
mov rdx, qword [rsp + 0x48]
mov r9, rbp
add r8, qword [rsp + 0xa8]
call sym.read_encoded_value_with_base_unsigned_char__unsigned_long_long__unsigned_char_const__unsigned_long_long_
mov rcx, qword [rsp + 0x88]
test rcx, rcx
je 0x14001ca65
test r14, r14
je 0x14001c9db
mov r8, qword [rsp + 0x58]
mov rdx, r14
call sym.get_adjusted_ptr_std::type_info_const__std::type_info_const__void_
test al, al
je 0x14001c9db
jmp 0x14001ca65
lea r8, [rdi + rdi]
neg r8
jmp 0x14001cad3
xor r8d, r8d
jmp 0x14001cad3
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x130]
lea r8, [rsp + 0x90]
call sym.parse_lsda_header__Unwind_Context__unsigned_char_const__lsda_header_info_
movzx edi, byte [rsp + 0xb8]
mov rdx, qword [rsp + 0x130]
mov ecx, edi
call sym.base_of_encoded_value_unsigned_char___Unwind_Context_
mov rdx, qword [rsp + 0x130]
mov ecx, edi
call sym.base_of_encoded_value_unsigned_char___Unwind_Context_
mov qword [r15 - 0x10], rax
jmp 0x14001c63a
cmp byte [rsp + 0x20], 4
jne method.__cxxabiv1.__gxx_personality_imp_int__int__unsigned_long_long___Unwind_Exception___Unwind_Context___clone_.cold_
lea r8, [rdi*8]
neg r8
jmp 0x14001cad3
cmp byte [rsp + 0x20], 0
je 0x14001cb82
jmp method.__cxxabiv1.__gxx_personality_imp_int__int__unsigned_long_long___Unwind_Exception___Unwind_Context___clone_.cold_
mov r8, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x50]
mov r9, rdi
mov rdx, r14
call sym.check_exception_spec_lsda_header_info__std::type_info_const__void__long_long_
test al, al
jne 0x14001c9db
jmp 0x14001ca65
lea rax, [r15 + 0x40]
test byte [r15], 1
je 0x14001cbd6
mov rax, qword [r15 - 0x50]
mov qword [rsp + 0x70], rax
mov r14, qword [rax - 0x90]
jmp 0x14001c8b0
call method.std.unexpected__
mov rcx, rax
jmp 0x1400b7745