Function at 0x43e7a0
Capabilities:
Check if file exists
Get file attributes
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x544
mov eax, dword [0x519008]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
mov ebx, ecx
push edi
mov dword [ebp - 0x534], esi
xor edi, edi
movzx eax, di
push eax
push 0x51d9e4
push str._s_temp_dataAudit_d.txt
lea eax, [ebp - 0x128]
push 0x100
push eax
call fcn.004014e0
add esp, 0x14
lea eax, [ebp - 0x528]
push 0x200
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x128]
push eax
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
je 0x43e839
cmp word [ebp + eax*2 - 0x528], 0
je 0x43e820
xor ecx, ecx
mov word [ebp + eax*2 - 0x528], cx
lea eax, [ebp - 0x528]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x43e839
test al, 0x10
jne 0x43e839
inc edi
jmp 0x43e7c3
push 0x200
lea eax, [ebp - 0x528]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x128]
push eax
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
je 0x43ea82
cmp word [ebp + eax*2 - 0x528], 0
je 0x43e878
xor ecx, ecx
mov word [ebp + eax*2 - 0x528], cx
lea eax, [ebp - 0x528]
push 0x504ef8
push eax
call fcn.0040c65a
add esp, 8
mov dword [ebp - 0x538], eax
test eax, eax
je 0x43ea82
mov word [ebp - 0x530], 0
xor dl, dl
mov cx, word [ebp - 0x530]
mov word [ebp - 0x21], cx
xor cl, cl
xor ch, ch
mov word [ebp - 0x24], 0x4c23
mov byte [ebp - 0x22], 6
xor eax, eax
add cl, byte [ebp + eax - 0x24]
add dl, byte [ebp + eax - 0x23]
add eax, 2
cmp eax, 4
jb 0x43e8c0
cmp eax, 5
jae 0x43e8d9
mov ch, byte [ebp + eax - 0x24]
xor esi, esi
mov dword [ebp - 0x52c], 0x800
push esi
push 0x7d0
push dword [ebx + 4]
add ch, cl
mov dword [ebp - 0x53c], 0
add ch, dl
mov dword [ebp - 0x540], 0xffff
lea edx, [ebp - 0x52c]
mov byte [ebp - 0x1f], ch
mov ecx, dword [ebx + 8]
lea eax, [ebx + 0xe4]
push edx
push eax
push 6
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
test al, al
je 0x43e9ec
lea ecx, [ebx + 0xe9]
jmp 0x43e940
mov al, byte [ebp - 0x52c]
push dword [ebp - 0x538]
sub al, 6
movzx esi, al
push 1
push esi
push ecx
call fcn.0040d634
mov eax, dword [ebp - 0x53c]
add esp, 0x10
add eax, esi
mov dword [ebp - 0x53c], eax
shr eax, 0xa
cmp byte [ebx + 0xe7], 0
movzx esi, ax
jne 0x43ea2e
cmp si, word [ebp - 0x540]
je 0x43e9ac
mov eax, esi
mov dword [ebp - 0x540], eax
mov eax, dword [ebp - 0x534]
test eax, eax
je 0x43e9ac
push edi
push esi
push 0
push dword [ebx + 4]
xor edx, edx
mov ecx, eax
call fcn.004377a0
add esp, 0x10
mov ecx, dword [ebx + 8]
lea eax, [ebp - 0x52c]
push 0
push 0x7d0
push dword [ebx + 4]
mov dword [ebp - 0x52c], 0x800
push eax
lea eax, [ebx + 0xe4]
push eax
push 6
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
lea ecx, [ebx + 0xe9]
test al, al
jne 0x43e940
mov ecx, dword [ebp - 0x534]
test ecx, ecx
je 0x43ea08
mov edx, dword [ebp + 0xc]
push edi
push esi
push 3
push dword [ebx + 4]
call fcn.004377a0
add esp, 0x10
push dword [ebp - 0x538]
call fcn.0040d0b9
add esp, 4
mov eax, 3
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 8
push dword [ebp - 0x538]
call fcn.0040d0b9
add esp, 4
movzx eax, di
mov ecx, ebx
push eax
lea eax, [ebp - 0x128]
push eax
call fcn.0043e390
mov ecx, dword [ebp - 0x534]
test ecx, ecx
je 0x43ea6a
mov edx, dword [ebp + 0xc]
push edi
push esi
push 1
push dword [ebx + 4]
call fcn.004377a0
add esp, 0x10
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 8
test esi, esi
je 0x43ea9b
mov edx, dword [ebp + 0xc]
mov ecx, esi
push edi
push 0
push 4
push dword [ebx + 4]
call fcn.004377a0
add esp, 0x10
mov ecx, dword [ebp - 4]
mov eax, 4
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00403d8c
mov esp, ebp
pop ebp
ret 8