Function at 0x43e3f0
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 0x43e409
lea ebx, [edi + 8]
mov dword [ebp + 0xc], ebx
jmp 0x43e40c
mov ebx, dword [ebp + 0xc]
movzx eax, word [ebx]
test ax, ax
jne 0x43e43f
mov eax, dword [0x4bd41c]
mov dword [eax + 0x30], 0x57
mov ecx, dword [0x4c17f0]
push 1
push 0
push 0xffffffffffffffff
push 0x49e30c
call fcn.0046dd60
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
test edi, edi
je 0x43e448
mov esi, dword [edi + 4]
jmp 0x43e44a
xor esi, esi
test esi, esi
setne cl
cmp eax, 0x2a
sete al
test al, al
je 0x43e4c2
add ebx, 2
cmp word [ebx], 0
mov dword [ebp + 0xc], ebx
jne 0x43e5cf
call fcn.004868d8
mov ecx, dword [ebp + 0x10]
add eax, 0x20
push eax
push ecx
call fcn.0048821b
xor edx, edx
add esp, 8
cmp eax, 0xffff
sete dl
mov esi, edx
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x4bd41c]
mov dword [ecx + 0x30], eax
mov eax, 0x49e30c
test esi, esi
jne 0x43e4a7
mov eax, 0x49b8d0
mov ecx, dword [0x4c17f0]
push 1
push 0
push 0xffffffffffffffff
push eax
call fcn.0046dd60
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
test cl, cl
jne 0x43e6c1
mov ecx, dword [0x4c0e18]
test ecx, ecx
je 0x43e5b7
mov al, byte [ecx + 0x17]
test al, al
jne 0x43e4e7
mov edx, dword [ecx + 0xc]
mov dl, byte [edx + 0x17]
jmp 0x43e4e9
mov dl, al
cmp dl, 3
jne 0x43e501
mov eax, dword [ebp + 8]
push ebx
push eax
call fcn.0043e750
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
test al, al
jne 0x43e508
mov ecx, dword [ecx + 0xc]
mov cl, byte [ecx + 0x15]
test cl, 1
je 0x43e5b7
push 0
push 0
push 2
push 0
push 0
push 0x40000000
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
jne 0x43e545
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [0x4bd41c]
mov dword [edx + 0x30], eax
jmp 0x43e420
mov eax, dword [0x4c0e18]
call fcn.004129f0
mov edx, dword [eax]
push 0
lea ecx, [esp + 0x10]
push ecx
mov ecx, dword [0x4c0e18]
push edx
push 0
push 1
call fcn.00401240
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 [0x4bd41c]
mov dword [ecx + 0x30], eax
mov eax, 0x49e30c
jne 0x43e590
mov eax, 0x49b8d0
mov ecx, dword [0x4c17f0]
push 1
push 0
push 0xffffffffffffffff
push eax
call fcn.0046dd60
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 0x4a47f0
push edx
call fcn.00487128
add esp, 8
test eax, eax
setne al
jmp 0x43e5d7
test cl, cl
jne 0x43e6c1
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 0x43e5fc
mov eax, dword [0x4c0dd0]
call fcn.00414050
mov edi, eax
jmp 0x43e608
mov ecx, dword [0x4bd41c]
mov edi, dword [ecx + 0xf0]
cmp edi, 0xffffffff
jne 0x43e61f
mov edx, dword [0x4bd41c]
mov dword [edx + 0x30], 0x57
jmp 0x43e420
cmp edi, 0xfde9
jne 0x43e62c
or ebx, 0x10
jmp 0x43e637
cmp edi, 0x4b0
jne 0x43e637
or ebx, 0x20
test esi, esi
jne 0x43e676
push 0x34
call fcn.0048830e
add esp, 4
test eax, eax
je 0x43e652
mov esi, eax
call fcn.00414230
jmp 0x43e654
xor eax, eax
mov esi, eax
test eax, eax
jne 0x43e676
mov ecx, dword [ebp + 8]
push 0x4a596c
push eax
push str.Out_of_memory.
call fcn.0042d460
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [ebp + 0xc]
mov eax, dword [esi]
mov edx, dword [eax + 4]
push ebx
push ecx
mov ecx, esi
mov dword [esi + 8], 0
call edx
test al, al
je 0x43e6a1
mov eax, edi
and eax, 0x7fffffff
mov ecx, esi
call fcn.00468f50
test al, al
jne 0x43e6b5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x4bd41c]
mov dword [ecx + 0x30], eax
jmp 0x43e420
mov eax, dword [ebp + 0x14]
mov edi, eax
test eax, eax
je 0x43e6c1
mov dword [eax + 4], esi
mov ebx, dword [ebp + 0x10]
mov eax, ebx
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x43e6d0
sub eax, edx
sar eax, 1
je 0x43e6f1
push ebx
push esi
call fcn.00469490
test eax, eax
jne 0x43e6f1
lea ebx, [eax + 1]
jmp 0x43e6f3
xor ebx, ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [0x4bd41c]
mov dword [edx + 0x30], eax
mov eax, 0x49e30c
test ebx, ebx
jne 0x43e710
mov eax, 0x49b8d0
mov ecx, dword [0x4c17f0]
push 1
push 0
push 0xffffffffffffffff
push eax
call fcn.0046dd60
test edi, edi
jne 0x43e734
test esi, esi
je 0x43e734
mov eax, dword [esi]
mov edx, dword [eax]
push 1
mov ecx, esi
call edx
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 0x10