Function at 0x2f45add90
Capabilities:
Write file on windows

Disassembly:
push rbp
push r15
push r14
push r12
push rsi
push rbx
sub rsp, 0x98
lea rbp, [rsp + 0x90]
movabs rsi, 0x657220677562206c
movabs rbx, 0x6c75662074696d62
movabs r9, 0x756f6e6520746f6e
movabs r10, 0x6563617073206867
movabs r11, 0x726f6620726f6620
movabs r12, 0x617078652074616d
movabs r14, 0x5028206e6f69736e
movabs r15, 0x757320657361656c
mov qword [rbp - 0x38], rsi
sub rdx, rcx
movabs rsi, 0x2f2f3a7370747468
mov qword [rbp - 0x40], rbx
lea rax, [rdx + 0x78]
movabs rbx, 0x2074612074726f70
mov qword [rbp - 0x28], rsi
and rax, 0xfffffffffffffff0
movabs rsi, 0x736775622f67726f
mov qword [rbp - 0x18], rsi
movabs rsi, 0x202020200a3a29
mov qword [rbp - 0x30], rbx
movabs rbx, 0x2e756e672e636367
mov qword [rbp - 0x20], rbx
movabs rbx, 0x2f736775622f6772
mov qword [rbp - 0xf], rsi
mov rsi, rdx
mov qword [rbp - 0x70], r9
mov qword [rbp - 0x68], r10
mov qword [rbp - 0x60], r11
mov qword [rbp - 0x58], r12
mov qword [rbp - 0x50], r14
mov qword [rbp - 0x48], r15
mov qword [rbp - 0x17], rbx
call fcn.2f459bbb0
movabs rdx, 0x657220677562206c
movdqu xmm0, xmmword [rbp - 0x20]
sub rsp, rax
mov r8, rsi
movabs rax, 0x6c75662074696d62
mov qword [rsp + 0x50], rax
lea rbx, [rsp + 0x20]
movabs rax, 0x2074612074726f70
mov qword [rsp + 0x60], rax
mov rax, qword [rbp - 0x10]
mov qword [rsp + 0x58], rdx
movabs rdx, 0x2f2f3a7370747468
mov qword [rsp + 0x80], rax
lea rax, [rsp + 0x88]
mov qword [rsp + 0x68], rdx
mov rdx, rcx
mov rcx, rax
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x30], r11
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x48], r15
movups xmmword [rsp + 0x70], xmm0
call sub.msvcrt.dll_memcpy
mov rcx, rbx
mov byte [rsp + rsi + 0x88], 0
call fcn.2f4645fe0
nop
nop
nop
push rdi
push rsi
push rbx
sub rsp, 0x30
cmp byte [0x2f46c4640], 0
jne 0x2f45ade96
mov byte [0x2f46c4640], 1
call fcn.2f4645630
test rax, rax
je 0x2f45ade6c
mov rbx, qword [rax + 8]
xor eax, eax
lea r9, [rsp + 0x2c]
cmp byte [rbx], 0x2a
mov dword [rsp + 0x2c], 0xffffffff
sete al
xor r8d, r8d
xor edx, edx
add rbx, rax
mov rcx, rbx
call fcn.2f459acc0
mov ecx, 2
mov rsi, qword [fcn.2f45a4e80]
mov rdi, rax
call rsi
mov edx, 1
lea rcx, str.terminate_called_after_throwing_an_instance_of_
mov r8d, 0x30
mov r9, rax
call sub.msvcrt.dll_fwrite
mov edx, dword [rsp + 0x2c]
mov ecx, 2
test edx, edx
je 0x2f45ade5d
call rsi
mov rcx, rbx
mov rdx, rax
call sub.msvcrt.dll_fputs
mov ecx, 2
call rsi
mov r8d, 2
mov edx, 1
lea rcx, [0x2f46c7131]
mov r9, rax
call sub.msvcrt.dll_fwrite
mov eax, dword [rsp + 0x2c]
test eax, eax
jne 0x2f45ade58
mov rcx, rdi
call fcn.2f45a55e8
call fcn.2f4645a40
call rsi
mov rcx, rdi
mov rdx, rax
call sub.msvcrt.dll_fputs
jmp 0x2f45ade27
mov ecx, 2
call qword [fcn.2f45a4e80]
mov r8d, 0x2d
mov edx, 1
lea rcx, str.terminate_called_without_an_active_exception_n
mov r9, rax
call sub.msvcrt.dll_fwrite
call sub.msvcrt.dll_abort
mov ecx, 2
call qword [fcn.2f45a4e80]
mov r8d, 0x1d
mov edx, 1
lea rcx, str.terminate_called_recursively_n
mov r9, rax
call sub.msvcrt.dll_fwrite
call sub.msvcrt.dll_abort
sub rdx, 1
mov rcx, rax
jne 0x2f45adf2b
call fcn.2f4645480
mov rcx, rax
mov rax, qword [rax]
call qword [rax + 0x10]
mov ecx, 2
mov rbx, rax
call rsi
mov r9, rax
mov r8d, 0xb
mov edx, 1
lea rcx, str.__what__:
call sub.msvcrt.dll_fwrite
mov ecx, 2
call rsi
mov rdx, rax
mov rcx, rbx
call sub.msvcrt.dll_fputs
mov ecx, 2
call rsi
mov rdx, rax
mov ecx, 0xa
call sub.msvcrt.dll_fputc
call fcn.2f4645660
jmp 0x2f45ade91
call fcn.2f4645480
call fcn.2f4645660
jmp 0x2f45ade91