Function at 0x300329e0
Capabilities:
Write file on windows

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x150
lea rbp, [rsp + 0x30]
xor edx, edx
lea r8, [0x30084d40]
movsxd rax, edx
shl rax, 4
cmp ecx, dword [rax + r8]
je 0x30032a14
add edx, 1
cmp edx, 0x12
jb 0x300329ff
movsxd rbx, edx
shl rbx, 4
cmp ecx, dword [rbx + r8]
jne 0x30032c9a
mov eax, dword [0x3008b1e0]
cmp eax, 1
je 0x30032c4b
test eax, eax
jne 0x30032a45
cmp dword [0x30084ce8], 1
je 0x30032c4b
cmp ecx, 0xfc
je 0x30032c9a
mov byte [rbp + 0x114], 0
mov r8d, 0x104
lea rdx, [rbp + 0x10]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x30032a8a
lea rdi, [rbp + 0x10]
lea rsi, str._program_name_unknown_
movabs rcx, 2
rep movsq qword [rdi], qword [rsi]
movsd dword [rdi], dword [rsi]
movsw word [rdi], word [rsi]
movsb byte [rdi], byte [rsi]
lea r12, [rbp + 0x10]
xor eax, eax
movabs rcx, 0xffffffffffffffff
lea rdi, [rbp + 0x10]
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
add rcx, 1
cmp rcx, 0x3c
jbe 0x30032af1
movabs rcx, 0xffffffffffffffff
lea rdi, [rbp + 0x10]
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
mov r12, rcx
lea rax, [rbp + 0x10]
sub rax, 0x3b
add r12, rax
movabs r8, 3
lea rdx, [0x3004e7ec]
mov rcx, r12
call fcn.30034ce0
lea rdx, [0x30084d48]
add rbx, rdx
xor eax, eax
movabs rcx, 0xffffffffffffffff
mov rdi, qword [rbx]
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
mov rdx, rcx
movabs rcx, 0xffffffffffffffff
mov rdi, r12
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
lea rax, [rdx + rcx + 0x1c]
add rax, 0xf
and rax, 0xfffffffffffffff0
call sub.KERNEL32.dll___chkstk
sub rsp, rax
lea r9, [rsp + 0x30]
lea rsi, str.Runtime_Error__n_nProgram:
mov rdi, r9
movabs rcx, 0x1a
rep movsb byte [rdi], byte [rsi]
xor eax, eax
movabs rcx, 0xffffffffffffffff
mov rdi, r9
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
mov rdx, rcx
movabs rcx, 0xffffffffffffffff
mov rdi, r12
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
add rcx, 1
mov rdi, r9
add rdi, rdx
mov rsi, r12
rep movsb byte [rdi], byte [rsi]
movabs rcx, 0xffffffffffffffff
mov rdi, r9
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
mov rdx, rcx
movabs rcx, 0xffffffffffffffff
lea rdi, [0x3004e7c8]
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
add rcx, 1
mov rdi, r9
add rdi, rdx
lea rsi, [0x3004e7c8]
rep movsb byte [rdi], byte [rsi]
mov rsi, qword [rbx]
movabs rcx, 0xffffffffffffffff
mov rdi, r9
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
mov rdx, rcx
movabs rcx, 0xffffffffffffffff
mov rdi, rsi
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
add rcx, 1
mov rdi, r9
add rdi, rdx
rep movsb byte [rdi], byte [rsi]
mov r8d, 0x12010
lea rdx, str.Microsoft_Visual_C_Runtime_Library
mov rcx, r9
call fcn.30034b60
lea rsp, [rbp + 0x120]
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov ecx, 0xfffffff4
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov r10, rax
test r10, r10
je 0x30032c9a
lea rdx, [0x30084d48]
mov rdx, qword [rbx + rdx]
xor eax, eax
movabs rcx, 0xffffffffffffffff
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
mov r8, rcx
mov qword [rsp + 0x20], 0
lea r9, [rbp]
mov rcx, r10
call qword [sym.imp.KERNEL32.dll_WriteFile]
lea rsp, [rbp + 0x120]
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret