Function at 0x43894d
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x728
push ebx
xor ebx, ebx
push esi
mov dword [ebp - 4], ebx
call fcn.00437a2c
push 0x65
pop esi
lea ecx, [ebp - 0x3c]
mov dword [ebp - 4], esi
call fcn.00437049
mov ecx, dword [0x47e074]
test ecx, ecx
je 0x4389af
lea eax, [ebp - 0x54]
push eax
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, eax
call fcn.00412fc0
push eax
lea ecx, [ebp - 0x3c]
call fcn.004371dc
mov bl, al
lea ecx, [ebp - 0x54]
push 0
neg bl
push 1
sbb bl, bl
call fcn.004150e0
inc bl
jne 0x438be5
xor ebx, ebx
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x3c]
push eax
call fcn.00437dbe
pop ecx
pop ecx
test al, al
jne 0x438be5
xor eax, eax
mov word [ebp - 0x58], ax
mov word [ebp - 0x260], ax
lea eax, [ebp - 0x260]
push eax
push dword [ebp + 8]
call fcn.00437b64
pop ecx
pop ecx
test al, al
je 0x438be8
mov ecx, dword [0x47e074]
test ecx, ecx
je 0x438a1a
mov eax, dword [ecx]
push ebx
call dword [eax + 8]
test al, al
je 0x438a1a
mov ecx, dword [0x47e074]
push ebx
mov eax, dword [ecx]
call dword [eax + 0xc]
test eax, eax
je 0x438a1a
mov esi, 0x2711
jmp 0x438be8
xor eax, eax
mov word [ebp - 0x470], ax
mov word [ebp - 0x678], ax
mov word [ebp - 0x264], ax
mov word [ebp - 0x46c], ax
lea eax, [ebp - 0x46c]
push eax
lea eax, [ebp - 0x678]
push eax
lea eax, [ebp - 0x260]
push eax
push dword [ebp + 8]
lea eax, [ebp - 0x3c]
push eax
call fcn.0043859c
add esp, 0x14
mov byte [ebp - 5], al
test al, al
jne 0x438b22
mov esi, 0x104
lea eax, [ebp - 0x260]
push esi
push eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
cmp eax, esi
jae 0x438b16
test eax, eax
je 0x438b16
push eax
lea eax, [ebp - 0x260]
push eax
call fcn.00438c9f
pop ecx
pop ecx
test eax, eax
je 0x438b16
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x260]
push eax
lea eax, [ebp - 0x46c]
push esi
push eax
call fcn.00438d59
push 0x4015e8
lea eax, [ebp - 0x46c]
push esi
push eax
call fcn.00438d31
lea eax, [ebp - 0x260]
push eax
lea eax, [ebp - 0x678]
push esi
push eax
call fcn.00438d59
push 0x4016a0
lea eax, [ebp - 0x678]
push esi
push eax
call fcn.00438d31
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
lea eax, [ebp - 0x46c]
add esp, 0x30
push eax
call esi
cmp eax, 0xffffffff
je 0x438b16
lea eax, [ebp - 0x678]
push eax
call esi
cmp eax, 0xffffffff
jne 0x438b22
mov dword [ebp - 4], 0x66
jmp 0x438bb9
mov ecx, dword [0x47e074]
test ecx, ecx
je 0x438b31
mov eax, dword [ecx]
call dword [eax + 0x20]
push 0xffffffffffffffff
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_SetProcessWorkingSetSize]
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x46c]
push eax
lea eax, [ebp - 0x678]
push eax
lea eax, [ebp - 0x3c]
push eax
call fcn.00438046
add esp, 0x10
test al, al
jne 0x438bb9
call fcn.00419b00
cmp eax, 2
jg 0x438ba2
push 2
push 0x3c3
xor ebx, ebx
lea ecx, [ebp - 0x728]
push 0x401940
inc ebx
call fcn.00419d30
push dword [ebp - 4]
add eax, 8
push 0x401920
push eax
call fcn.00416700
pop ecx
pop ecx
mov ecx, eax
call fcn.0041a9f0
test bl, 1
je 0x438bb2
lea ecx, [ebp - 0x728]
call fcn.00419e30
mov dword [ebp - 4], 0x67
cmp byte [ebp - 5], 0
je 0x438be5
call fcn.00438561
test al, al
je 0x438be5
lea eax, [ebp - 0x46c]
push eax
lea eax, [ebp - 0x678]
push eax
lea eax, [ebp - 0x260]
push eax
call fcn.00437981
add esp, 0xc
mov esi, dword [ebp - 4]
lea ecx, [ebp - 0x3c]
call fcn.00437069
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret