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

Disassembly:
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
sub esp, 0xa70
push ebp
mov ebp, dword [esp + 0xa88]
push edi
mov edi, dword [esp + 0xa90]
push edi
push ebp
push eax
push ecx
lea edx, [esp + 0x678]
push edx
call fcn.004474f0
lea eax, [esp + 0x668]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x4477a6
mov eax, dword [esp + 0xa80]
cmp eax, 0x7fffffff
ja 0x447796
mov edx, dword [esp + 0xa7c]
lea ecx, [esp + 0x668]
push ecx
push eax
push edx
call fcn.0040feeb
pop edi
mov eax, 1
pop ebp
add esp, 0xa70
ret 0x18
push ebx
push esi
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x18]
push ecx
mov esi, 1
push esi
call fcn.00447670
mov ebx, dword [esp + 0x14]
push ebx
push 0x20
lea edx, [esp + 0x20]
push edx
push esi
call fcn.00447570
push ebp
push 0x104
lea eax, [esp + 0x60]
push eax
call fcn.0040feeb
mov ecx, 0x104
lea eax, [esp + 0x58]
cmp word [eax], 0
je 0x4477f6
add eax, 2
dec ecx
jne 0x4477e8
jmp 0x447818
test ecx, ecx
je 0x447818
mov eax, 0x104
sub eax, ecx
lea ecx, [esp + 0x18]
push ecx
mov edx, 0x104
sub edx, eax
push edx
lea eax, [esp + eax*2 + 0x60]
push eax
call fcn.0040feeb
mov edx, dword [esp + 0xa90]
mov eax, dword [esp + 0xa8c]
mov ebp, dword [esp + 0xa88]
push edi
lea ecx, [esp + 0x5c]
push ecx
push edx
push eax
push ebp
lea ecx, [esp + 0x274]
push ecx
call fcn.004272ac
lea edx, [esp + 0x260]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4479e3
mov edi, dword [esp + 0x10]
mov edi, edi
push ebx
push 0x20
lea eax, [esp + 0x20]
push eax
push esi
call fcn.00447570
mov ecx, dword [esp + 0xa94]
push ecx
push 0x104
lea edx, [esp + 0x60]
push edx
call fcn.0040feeb
mov ecx, 0x104
lea eax, [esp + 0x58]
mov edi, edi
cmp word [eax], 0
je 0x44789e
add eax, 2
dec ecx
jne 0x447890
jmp 0x4478c0
test ecx, ecx
je 0x4478c0
mov eax, 0x104
sub eax, ecx
lea ecx, [esp + 0x18]
push ecx
mov edx, 0x104
sub edx, eax
push edx
lea eax, [esp + eax*2 + 0x60]
push eax
call fcn.0040feeb
mov ecx, dword [esp + 0xa98]
mov eax, dword [esp + 0xa90]
push ecx
mov ecx, dword [esp + 0xa90]
lea edx, [esp + 0x5c]
push edx
push eax
push ecx
push ebp
lea edx, [esp + 0x274]
push edx
call fcn.004272ac
lea eax, [esp + 0x260]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
add esi, 0xc8
cmp esi, edi
jb 0x447909
lea edi, [edi + edi*4]
inc ebx
shl edi, 1
cmp eax, 0xffffffff
jne 0x447860
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x18]
sub esi, 0x190
push edx
push esi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], ebx
call fcn.00447670
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
push ebx
push 0x20
lea eax, [esp + 0x20]
push eax
push esi
call fcn.00447570
mov ecx, dword [esp + 0xa94]
push ecx
push 0x104
lea edx, [esp + 0x60]
push edx
call fcn.0040feeb
mov ecx, 0x104
lea eax, [esp + 0x58]
cmp word [eax], 0
je 0x447974
add eax, 2
dec ecx
jne 0x447966
jmp 0x447996
test ecx, ecx
je 0x447996
mov eax, 0x104
sub eax, ecx
lea ecx, [esp + 0x18]
push ecx
mov edx, 0x104
sub edx, eax
push edx
lea eax, [esp + eax*2 + 0x60]
push eax
call fcn.0040feeb
mov ecx, dword [esp + 0xa98]
mov eax, dword [esp + 0xa90]
push ecx
mov ecx, dword [esp + 0xa90]
lea edx, [esp + 0x5c]
push edx
push eax
push ecx
push ebp
lea edx, [esp + 0x274]
push edx
call fcn.004272ac
lea eax, [esp + 0x260]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
inc esi
cmp esi, edi
jne 0x4479da
lea edi, [edi + edi*4]
inc ebx
shl edi, 1
cmp eax, 0xffffffff
jne 0x447938
lea ecx, [esp + 0x260]
push ecx
mov esi, 1
call dword [sym.imp.msvcrt.dll_wcslen]
add esp, 4
cmp eax, 0x104
jb 0x447a11
xor esi, esi
mov eax, esi
pop esi
pop ebx
pop edi
pop ebp
add esp, 0xa70
ret 0x18
cmp ebp, 0x7fffffff
ja 0x447a2f
mov eax, dword [esp + 0xa84]
lea edx, [esp + 0x260]
push edx
push ebp
push eax
call fcn.0040feeb
mov eax, esi
pop esi
pop ebx
pop edi
pop ebp
add esp, 0xa70
ret 0x18