Function at 0x14001c600
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 0x14001c6d0
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 0x14001c6f0
mov rax, qword [r9 - 0x18]
mov rbx, qword [r9 - 0x10]
mov edi, dword [r9 - 0x24]
mov qword [rsp + 0x38], rax
test rbx, rbx
je 0x14001c861
movsxd rsi, edi
test edi, edi
js 0x14001cb7e
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 0x14001c6d5
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 0x14001c9eb
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 0x14001c849
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 0x14001c820
mov rax, qword [rsp + 0x78]
add rax, r14
cmp rdi, rax
jae 0x14001c870
test sil, 1
jne 0x14001c890
and esi, 8
je 0x14001c859
call method.std.terminate__
cmp qword [rsp + 0x30], 1
ja 0x14001c854
mov rcx, r15
call sym.__cxa_call_terminate
nop dword [rax]
add rax, qword [rsp + 0x80]
cmp rdi, rax
jb 0x14001c8ad
cmp r13, r12
jb 0x14001c7c0
jmp 0x14001c849
xor edi, edi
xor ebx, ebx
xor r13d, r13d
cmp qword [rsp + 0x30], 1
jbe 0x14001c9f5
mov eax, 6
jmp 0x14001c6d5
mov rbx, qword [rsp + 0x88]
test rbx, rbx
je 0x14001c9eb
add rbx, qword [rsp + 0x98]
test r10, r10
je 0x14001c9e1
lea r13, [r12 + r10 - 1]
test rbx, rbx
je 0x14001c9eb
mov r11d, esi
lea r14, [0x1400c5360]
and r11d, 8
jne 0x14001c900
cmp qword [rsp + 0x30], 1
lea r14, [0x1400c5390]
jbe 0x14001cc18
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 0x14001c950
cmp ecx, 0x3f
ja 0x14001c982
and edx, 0x40
je 0x14001c982
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 0x14001c990
cmp ecx, 0x3f
ja 0x14001ca20
and r8d, 0x40
je 0x14001ca20
mov eax, 1
shl rax, cl
neg rax
or r13, rax
test rdi, rdi
jne 0x14001ca60
mov r12d, 1
nop dword [rax]
lea r15, [rbx + r13]
jmp 0x14001c940
test rbx, rbx
je 0x14001c9eb
and esi, 1
je 0x14001ca53
mov eax, 8
jmp 0x14001c6d5
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 0x14001c8a3
test rdi, rdi
jne 0x14001ca60
mov r12d, 1
test r13, r13
jne 0x14001c9d8
mov byte [rsp + 0x42], r12b
mov rbx, qword [rsp + 0x28]
mov esi, dword [rsp + 0x118]
mov r15, qword [rsp + 0x128]
test r12b, r12b
je 0x14001c9eb
and esi, 1
jne 0x14001c9eb
xor esi, esi
jmp 0x14001c68a
test rdi, rdi
jg 0x14001caf9
test esi, esi
sete al
test byte [rsp + 0x41], al
je 0x14001ca7d
test r14, r14
jne 0x14001cbf0
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 0x14001ca90
test r9, r9
jne 0x14001ca2b
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 0x14001c897
cmp qword [rsp + 0x30], 1
ja 0x14001cae9
test r11d, r11d
je 0x14001c67f
test edi, edi
js 0x14001cc37
movsxd rsi, edi
jmp 0x14001c68a
cmp byte [rsp + 0x43], 0xff
je 0x14001cb79
cmp byte [rsp + 0x20], 2
je 0x14001cb70
jbe 0x14001cbe2
lea r8, [rdi*4]
neg r8
cmp byte [rsp + 0x20], 3
jne 0x14001cbc7
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 0x14001cab5
test r14, r14
je 0x14001ca2b
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 0x14001ca2b
jmp 0x14001cab5
lea r8, [rdi + rdi]
neg r8
jmp 0x14001cb23
xor r8d, r8d
jmp 0x14001cb23
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 0x14001c68a
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 0x14001cb23
cmp byte [rsp + 0x20], 0
je 0x14001cbd2
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 0x14001ca2b
jmp 0x14001cab5
lea rax, [r15 + 0x40]
test byte [r15], 1
je 0x14001cc26
mov rax, qword [r15 - 0x50]
mov qword [rsp + 0x70], rax
mov r14, qword [rax - 0x90]
jmp 0x14001c900
call method.std.unexpected__
mov rcx, rax
jmp 0x1400b6de5