Function at 0x427840
Capabilities:
Write file on windows

Disassembly:
mov r11, rsp
sub rsp, 0x638
mov rax, qword [0x00460ad8]
mov qword [rsp + 0x5e0], rax
mov qword [r11 - 8], rbx
mov qword [r11 - 0x10], rbp
mov qword [r11 - 0x18], rsi
mov qword [r11 - 0x28], r12
mov qword [r11 - 0x30], r13
xor r13d, r13d
test r8d, r8d
mov qword [r11 - 0x38], r14
mov ebp, r8d
mov esi, r13d
mov r12, rdx
movsxd rbx, ecx
mov r14d, r13d
jne 0x42788f
xor eax, eax
jmp 0x427edb
test rdx, rdx
jne 0x4278c5
call fcn.0041ab00
mov dword [rax], r13d
call fcn.0041aad0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov dword [rax], 0x16
mov qword [rsp + 0x20], r13
call fcn.0041e5c0
mov eax, 0xffffffff
jmp 0x427edb
mov qword [rsp + 0x618], rdi
mov dil, bl
mov rcx, rbx
sar rcx, 5
and edi, 0x1f
lea rdx, [0x00466920]
mov rax, qword [rdx + rcx*8]
shl rdi, 6
mov qword [rsp + 0x5f8], r15
movzx r15d, byte [rax + rdi + 0x38]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x58], rdi
cmp r15b, 2
je 0x42790d
cmp r15b, 1
jne 0x427941
and ebp, 0xfffffffe
jne 0x427941
call fcn.0041ab00
mov dword [rax], r13d
call fcn.0041aad0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov dword [rax], 0x16
mov qword [rsp + 0x20], r13
call fcn.0041e5c0
lea eax, [rbp - 1]
jmp 0x427ecb
test byte [rax + rdi + 8], 0x20
je 0x427955
xor edx, edx
mov ecx, ebx
lea r8d, [rdx + 2]
call fcn.0042c3e0
mov ecx, ebx
call fcn.00428180
test eax, eax
je 0x427b6c
mov rdx, qword [rsp + 0x50]
lea r9, [0x00466920]
mov rax, qword [r9 + rdx*8]
test byte [rax + rdi + 8], 0x80
je 0x427b8b
call fcn.0041b980
xor r10d, r10d
mov rcx, qword [rax + 0xc0]
mov eax, r10d
cmp dword [rcx + 0x14], r10d
setne al
test eax, eax
je 0x427b7d
call qword [sym.imp.KERNEL32.dll_GetConsoleCP]
xor r10d, r10d
test ebp, ebp
mov edi, eax
mov dword [rsp + 0x60], eax
mov dword [rsp + 0x40], r10d
mov rbx, r12
je 0x427f20
mov r13d, dword [rsp + 0x60]
jmp 0x4279c9
xor r10d, r10d
test r15b, r15b
jne 0x427a35
movsx ecx, byte [rbx]
mov r13d, r10d
cmp cl, 0xa
sete r13b
call fcn.00428760
test eax, eax
jne 0x427a04
lea r8d, [rax + 1]
lea rcx, [rsp + 0x48]
mov rdx, rbx
call fcn.0042b050
cmp eax, 0xffffffff
jne 0x427a2d
mov r13d, dword [rsp + 0x40]
jmp 0x427ec0
mov eax, ebp
sub rax, rbx
add rax, r12
cmp rax, 1
jle 0x4279fa
lea rcx, [rsp + 0x48]
mov r8d, 2
mov rdx, rbx
call fcn.0042b050
cmp eax, 0xffffffff
je 0x4279fa
inc rbx
inc rbx
xor r10d, r10d
jmp 0x427a58
cmp r15b, 1
je 0x427a41
cmp r15b, 2
jne 0x427a58
movzx eax, word [rbx]
mov r13d, r10d
cmp ax, 0xa
mov word [rsp + 0x48], ax
sete r13b
add rbx, 2
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x30], r10
lea rax, [rsp + 0x64]
lea r8, [rsp + 0x48]
mov r9d, 1
xor edx, edx
mov ecx, edi
mov dword [rsp + 0x28], 5
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
mov edi, eax
je 0x4279fa
mov rax, qword [rsp + 0x50]
lea rcx, [0x00466920]
lea r9, [rsp + 0x40]
mov rcx, qword [rcx + rax*8]
mov rax, qword [rsp + 0x58]
lea rdx, [rsp + 0x64]
mov rcx, qword [rcx + rax]
mov r8d, edi
mov qword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x427b5e
mov eax, dword [rsp + 0x40]
add r14d, eax
cmp eax, edi
jl 0x4279fa
test r13d, r13d
je 0x427b35
mov rax, qword [rsp + 0x50]
mov byte [rsp + 0x64], SafeArrayGetDim
lea rcx, [0x00466920]
mov rcx, qword [rcx + rax*8]
mov rax, qword [rsp + 0x58]
lea r9, [rsp + 0x40]
mov rcx, qword [rcx + rax]
lea rdx, [rsp + 0x64]
mov r8d, 1
mov qword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x427b50
cmp dword [rsp + 0x40], 1
jl 0x4279fa
inc esi
inc r14d
mov edi, dword [rsp + 0x60]
mov eax, ebx
sub eax, r12d
cmp eax, ebp
jb 0x4279c6
mov r13d, dword [rsp + 0x40]
jmp 0x427ec0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r13d, eax
jmp 0x427ec0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r13d, eax
jmp 0x427ec0
mov rdx, qword [rsp + 0x50]
xor r10d, r10d
lea r9, [0x00466920]
jmp 0x427b8e
mov rdx, qword [rsp + 0x50]
lea r9, [0x00466920]
jmp 0x427b8e
xor r10d, r10d
mov rcx, qword [r9 + rdx*8]
test byte [rcx + rdi + 8], 0x80
je 0x427e8d
test r15b, r15b
mov r13d, r10d
mov dword [rsp + 0x40], r10d
jne 0x427c7b
test ebp, ebp
mov rdi, r12
je 0x427f67
nop
nop
lea rbx, [rsp + 0x70]
mov rcx, r10
nop
nop
mov eax, edi
sub eax, r12d
cmp eax, ebp
jae 0x427bff
movzx eax, byte [rdi]
inc rdi
cmp al, 0xa
jne 0x427bee
mov byte [rbx], 0xd
inc rbx
inc esi
inc rcx
inc rcx
mov byte [rbx], al
inc rbx
cmp rcx, 0x400
jb 0x427bd0
mov rcx, qword [r9 + rdx*8]
lea rax, [rsp + 0x70]
mov r8d, ebx
sub r8d, eax
mov rax, qword [rsp + 0x58]
lea r9, [rsp + 0x44]
mov rcx, qword [rcx + rax]
lea rdx, [rsp + 0x70]
mov qword [rsp + 0x20], r10
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x427c6d
movsxd rax, dword [rsp + 0x44]
lea rcx, [rsp + 0x70]
sub rbx, rcx
add r14d, eax
cmp rax, rbx
jl 0x427ec0
mov rdx, qword [rsp + 0x50]
mov eax, edi
mov r10d, 0
sub eax, r12d
lea r9, [0x00466920]
cmp eax, ebp
jb 0x427bc0
jmp 0x427ec0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r13d, eax
jmp 0x427ec0
cmp r15b, 2
jne 0x427d56
test ebp, ebp
mov rdi, r12
je 0x427f67
lea rbx, [rsp + 0x70]
mov rcx, r10
nop
nop
mov eax, edi
sub eax, r12d
cmp eax, ebp
jae 0x427cda
movzx eax, word [rdi]
add rdi, 2
cmp ax, 0xa
jne 0x427cc6
mov word [rbx], SafeArrayGetDim
add rbx, 2
add esi, 2
add rcx, 2
add rcx, 2
mov word [rbx], ax
add rbx, 2
cmp rcx, 0x3ff
jb 0x427ca0
mov rcx, qword [r9 + rdx*8]
lea rax, [rsp + 0x70]
mov r8d, ebx
sub r8d, eax
mov rax, qword [rsp + 0x58]
lea r9, [rsp + 0x44]
mov rcx, qword [rcx + rax]
lea rdx, [rsp + 0x70]
mov qword [rsp + 0x20], r10
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x427d48
movsxd rax, dword [rsp + 0x44]
lea rcx, [rsp + 0x70]
sub rbx, rcx
add r14d, eax
cmp rax, rbx
jl 0x427ec0
mov rdx, qword [rsp + 0x50]
mov eax, edi
mov r10d, 0
sub eax, r12d
lea r9, [0x00466920]
cmp eax, ebp
jb 0x427c90
jmp 0x427ec0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r13d, eax
jmp 0x427ec0
test ebp, ebp
mov rdi, r12
je 0x427f67
jmp 0x427d73
xor r10d, r10d
lea rcx, [rsp + 0x480]
mov rdx, r10
nop
mov eax, edi
sub eax, r12d
cmp eax, ebp
jae 0x427dba
movzx eax, word [rdi]
add rdi, 2
cmp ax, 0xa
jne 0x427da6
mov word [rcx], SafeArrayGetDim
add rcx, 2
add esi, 2
add rdx, 2
add rdx, 2
mov word [rcx], ax
add rcx, 2
cmp rdx, 0x152
jb 0x427d80
mov qword [rsp + 0x38], r10
lea rax, [rsp + 0x480]
mov qword [rsp + 0x30], r10
sub ecx, eax
lea r8, [rsp + 0x480]
mov dword [rsp + 0x28], 0x2ab
mov eax, ecx
mov ecx, 0xfde9
cdq
sub eax, edx
xor edx, edx
sar eax, 1
mov r9d, eax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
mov r13d, eax
je 0x427e82
xor ebx, ebx
nop
nop
mov rax, qword [rsp + 0x50]
movsxd rcx, ebx
mov r8d, r13d
lea rdx, [rsp + rcx + 0x70]
lea rcx, [0x00466920]
lea r9, [rsp + 0x44]
mov rcx, qword [rcx + rax*8]
mov rax, qword [rsp + 0x58]
sub r8d, ebx
mov rcx, qword [rcx + rax]
mov qword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x427e5f
mov eax, dword [rsp + 0x44]
add ebx, eax
add r14d, eax
cmp r13d, ebx
jg 0x427e10
jmp 0x427e6e
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp r13d, ebx
mov dword [rsp + 0x40], eax
jg 0x427ebd
mov eax, edi
sub eax, r12d
cmp eax, ebp
jb 0x427d70
mov r13d, dword [rsp + 0x40]
jmp 0x427ec0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r13d, eax
jmp 0x427ec0
mov rcx, qword [rcx + rdi]
lea r9, [rsp + 0x44]
mov r8d, ebp
mov rdx, r12
mov qword [rsp + 0x20], r10
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x427eb2
mov r14d, dword [rsp + 0x44]
jmp 0x427ec0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r13d, eax
jmp 0x427f25
mov r13d, eax
test r14d, r14d
je 0x427f25
sub r14d, esi
mov eax, r14d
mov rdi, qword [rsp + 0x618]
mov r15, qword [rsp + 0x5f8]
mov r14, qword [rsp + 0x600]
mov r13, qword [rsp + 0x608]
mov r12, qword [rsp + 0x610]
mov rsi, qword [rsp + 0x620]
mov rbp, qword [rsp + 0x628]
mov rbx, qword [rsp + 0x630]
mov rcx, qword [rsp + 0x5e0]
call fcn.004306c0
add rsp, 0x638
ret
mov r13d, dword [rsp + 0x40]
test r13d, r13d
je 0x427f5b
cmp r13d, 5
jne 0x427f49
call fcn.0041aad0
mov dword [rax], 9
call fcn.0041ab00
mov dword [rax], r13d
lea eax, [r13 - 6]
jmp 0x427ecb
mov ecx, r13d
call fcn.0041ab30
mov eax, 0xffffffff
jmp 0x427ecb
mov rdx, qword [rsp + 0x50]
lea r9, [0x00466920]
mov rax, qword [r9 + rdx*8]
mov rcx, qword [rsp + 0x58]
test byte [rax + rcx + 8], 0x40
je 0x427f85
cmp byte [r12], 0x1a
jne 0x427f85
xor eax, eax
jmp 0x427ecb
call fcn.0041aad0
mov dword [rax], 0x1c
call fcn.0041ab00
mov dword [rax], 0
mov eax, 0xffffffff
jmp 0x427ecb