Function at 0x439ba0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push ecx
push ebx
push esi
push edi
mov edi, dword [ebp + 0x14]
test edi, edi
je 0x439bb9
lea ebx, [edi + 8]
mov dword [ebp + 0xc], ebx
jmp 0x439bbc
mov ebx, dword [ebp + 0xc]
mov al, byte [ebx]
test al, al
jne 0x439bed
mov eax, dword [0x49d3c8]
mov dword [eax + 0x30], 0x57
mov ecx, dword [0x4a13a4]
push 1
push 0
push 0xffffffffffffffff
push 0x4916f4
call fcn.004668b0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
test edi, edi
je 0x439bf6
mov esi, dword [edi + 4]
jmp 0x439bf8
xor esi, esi
test esi, esi
setne cl
cmp al, 0x2a
sete al
test al, al
je 0x439c6a
inc ebx
cmp byte [ebx], 0
mov dword [ebp + 0xc], ebx
jne 0x439d75
call fcn.004772dc
mov ecx, dword [ebp + 0x10]
add eax, 0x20
push eax
push ecx
call fcn.00479fa3
xor edx, edx
add esp, 8
cmp eax, 0xffffffff
sete dl
mov esi, edx
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x49d3c8]
mov dword [ecx + 0x30], eax
mov eax, 0x4916f4
test esi, esi
jne 0x439c4f
mov eax, 0x4900b0
mov ecx, dword [0x4a13a4]
push 1
push 0
push 0xffffffffffffffff
push eax
call fcn.004668b0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
test cl, cl
jne 0x439e65
mov ecx, dword [0x4a09d8]
test ecx, ecx
je 0x439d5d
mov al, byte [ecx + 0x17]
test al, al
jne 0x439c8f
mov edx, dword [ecx + 0xc]
mov dl, byte [edx + 0x17]
jmp 0x439c91
mov dl, al
cmp dl, 3
jne 0x439ca9
mov eax, dword [ebp + 8]
push ebx
push eax
call fcn.00439ee0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
test al, al
jne 0x439cb0
mov ecx, dword [ecx + 0xc]
mov cl, byte [ecx + 0x15]
test cl, 1
je 0x439d5d
push 0
push 0
push 2
push 0
push 0
push 0x40000000
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
jne 0x439ced
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [0x49d3c8]
mov dword [edx + 0x30], eax
jmp 0x439bce
mov eax, dword [0x4a09d8]
call fcn.00412080
mov edx, dword [eax]
push 0
lea ecx, [esp + 0x10]
push ecx
mov ecx, dword [0x4a09d8]
push edx
push 1
call fcn.00401230
push eax
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
neg eax
sbb esi, esi
call dword [sym.imp.KERNEL32.dll_GetLastError]
inc esi
mov ecx, dword [0x49d3c8]
mov dword [ecx + 0x30], eax
mov eax, 0x4916f4
jne 0x439d36
mov eax, 0x4900b0
mov ecx, dword [0x4a13a4]
push 1
push 0
push 0xffffffffffffffff
push eax
call fcn.004668b0
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov edx, dword [ebp + 0x10]
push 0x494aac
push edx
call fcn.00477d42
add esp, 8
test eax, eax
setne al
jmp 0x439d7d
test cl, cl
jne 0x439e65
xor ebx, ebx
test al, al
mov eax, dword [ebp + 8]
setne bl
dec ebx
and ebx, 4
or ebx, 2
cmp byte [eax + 1], 2
jbe 0x439da2
mov eax, dword [0x4a0990]
call fcn.004134e0
mov edi, eax
jmp 0x439dae
mov ecx, dword [0x49d3c8]
mov edi, dword [ecx + 0xd0]
cmp edi, 0xffffffff
jne 0x439dc5
mov edx, dword [0x49d3c8]
mov dword [edx + 0x30], 0x57
jmp 0x439bce
cmp edi, 0xfde9
jne 0x439dd2
or ebx, 0x10
jmp 0x439ddd
cmp edi, 0x4b0
jne 0x439ddd
or ebx, 0x20
test esi, esi
jne 0x439e1a
push 0x2c
call fcn.0047a0f8
add esp, 4
test eax, eax
je 0x439df6
call fcn.004137f0
jmp 0x439df8
xor eax, eax
mov esi, eax
test eax, eax
jne 0x439e1a
mov ecx, dword [ebp + 8]
push 0x49588a
push eax
push str.Out_of_memory.
call fcn.004296d0
pop edi
pop esi
dec ebx
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [ebp + 0xc]
mov eax, dword [esi]
mov dl, byte [esp + eax + 0x53]
push ecx
mov ecx, edx
mov dword [esi + 8], 0
call edx
test al, al
je 0x439e45
mov eax, edi
and eax, 0x7fffffff
mov ecx, esi
call fcn.00461f30
test eax, eax
jne 0x439e59
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x49d3c8]
mov dword [ecx + 0x30], eax
jmp 0x439bce
mov eax, dword [ebp + 0x14]
mov edi, eax
test eax, eax
je 0x439e65
mov dword [eax + 4], esi
mov ebx, dword [ebp + 0x10]
mov eax, ebx
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
xchg esp, eax
leave
jne 0x439e70
sub eax, edx
je 0x439e8e
push eax
mov ecx, ebx
mov edx, esi
call fcn.0045a1b0
test esp, eax
jne 0x439e8e
mov word [eax + 1], ds
jmp 0x439e98
xor ebx, dword [ebx - 1]
adc eax, sym.imp.KERNEL32.dll_GetLastError
mov edx, dword [0x49d3ca]
mov dword [edx + 0x30], eax
mov eax, 0x4916f4
test ebx, ebx
jne 0x439ead
retf 0x49d3
mov eax, 0x4900b0
mov ecx, dword [0x804a13a4]
push 1
push 0
push 0xffffffffffffffff
push eax
call fcn.004668b0
test edi, edi
jno 0x439ed1
test esi, esi
je 0x439ed1
mov eax, dword [esi]
mov edx, dword [eax]
push 1
mov ebx, esi
call edx
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 0x30