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

Disassembly:
mov eax, 0x1098
call fcn.006ab750
push ebx
mov ebx, dword [esp + 0x10a0]
push ebp
push esi
push edi
mov edi, dword [esp + 0x10b8]
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4594fa
mov eax, dword [ebx + 0x163]
lea ecx, [eax + 0x2a59]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
mov dword [esp + 0x14], 0
call edx
test al, al
jne 0x4591b7
mov eax, dword [ebx + 0x163]
lea ecx, [eax + 0x2a59]
mov eax, dword [ecx]
mov edx, dword [eax + 8]
call edx
test al, al
mov byte [esp + 0x13], 0
je 0x4591bc
mov byte [esp + 0x13], 1
mov eax, edi
lea esi, [esp + 0x18]
call fcn.00401f70
cmp dword [esp + 0x18], 0xffffffff
je 0x4594be
cmp word [esp + 0x48], 0x2e
jne 0x4591fa
mov ax, word [esp + 0x4a]
test ax, ax
je 0x459484
cmp ax, 0x2e
jne 0x4591fa
cmp word [esp + 0x4c], 0
je 0x459484
test dword [esp + 0x1c], 0x106
jne 0x459484
push 0x6bc0cc
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x278]
push ecx
mov eax, edi
call fcn.004ad3a0
lea ecx, [ebx + 0x36f]
lea eax, [esp + 0x270]
mov edi, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x459256
test dx, dx
je 0x459252
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x459256
add eax, 4
add ecx, 4
test dx, dx
jne 0x459230
xor eax, eax
jmp 0x45925b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x459269
cmp byte [esp + 0x13], al
jne 0x459484
lea eax, [esp + 0x270]
call fcn.00401cc0
or eax, edx
je 0x459484
lea esi, [esp + 0x48]
lea edi, [esp + 0x680]
call fcn.004ad1c0
cmp byte [esp + 0x10b4], 0
je 0x4592dd
mov ecx, str..mts
mov eax, edi
mov edi, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4592c6
test dx, dx
je 0x4592c2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4592c6
add eax, 4
add ecx, 4
test dx, dx
jne 0x4592a0
xor eax, eax
jmp 0x4592cb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4592f2
lea edi, [esp + 0x680]
call fcn.0065e920
jmp 0x4592ea
lea edx, [esp + 0x270]
push edx
call fcn.004cf070
test al, al
je 0x459484
mov ecx, dword [esp + 0x10b0]
mov eax, dword [ecx]
mov edx, dword [eax]
call edx
test al, al
jne 0x459507
lea edx, [esp + 0x48]
lea esi, [esp + 0x478]
call fcn.004ad160
mov dx, word [esp + 0x478]
xor ecx, ecx
xor esi, esi
test dx, dx
movzx eax, dx
je 0x459354
jmp 0x459330
cmp ax, 0x2e
jne 0x459338
mov esi, ecx
movzx eax, word [esp + ecx*2 + 0x47a]
add ecx, 1
test ax, ax
jne 0x459330
test esi, esi
je 0x459354
mov word [esp + esi*2 + 0x478], ax
mov eax, dword [esp + 0x14]
push eax
lea ecx, [esp + 0x47c]
push ecx
mov eax, 0x64
mov ecx, ebx
call fcn.00404650
mov ebp, eax
push ebp
push 0x64
mov eax, 1
add dword [esp + 0x1c], eax
push ebx
lea ecx, [esp + 0x68c]
call fcn.004046e0
lea eax, [esp + 0x270]
call fcn.00401fb0
lea esi, [esp + 0xea0]
lea edi, [esp + 0xa90]
call fcn.004a7540
mov edx, esi
push edx
mov eax, edi
push eax
push 0x6c8fec
mov esi, 0x104
lea edi, [esp + 0x894]
call fcn.004af0d0
add esp, 0xc
push ebp
push 0x64
push ebx
mov ecx, edi
mov eax, 2
call fcn.004046e0
lea eax, [esp + 0x270]
call fcn.00401cc0
push edx
push eax
lea edx, [esp + 0xca0]
call fcn.004ae670
push ebp
push 0x64
push ebx
lea ecx, [esp + 0xca4]
mov eax, 3
call fcn.004046e0
push 0x208
call fcn.0069c0de
mov cx, word [esp + 0x274]
add esp, 4
xor esi, esi
test cx, cx
movzx edx, cx
lea edi, [esp + 0x272]
je 0x45944a
jmp 0x459430
cmp esi, 0x103
jae 0x45944a
mov word [eax + esi*2], dx
movzx edx, word [edi]
add esi, 1
add edi, 2
test dx, dx
jne 0x459430
mov word [eax + esi*2], 0
mov ecx, eax
push ebx
mov eax, ebp
call fcn.00404860
cmp byte [esp + 0x10b4], 0
je 0x459484
cmp byte [ebx + 0x577], 0
jne 0x459484
push ebp
lea ecx, [esp + 0x88c]
push ecx
lea edx, [esp + 0x278]
push edx
push ebx
call fcn.00459530
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x1c]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x4594ab
cmp dword [esp + 0x18], 0xffffffff
je 0x4594be
mov edi, dword [esp + 0x10b8]
jmp 0x4591d2
mov edx, dword [esp + 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov dword [esp + 0x18], 0xffffffff
cmp byte [esp + 0x10bc], 0
je 0x4594fa
cmp byte [ebx + 0xff2], 0
je 0x4594fa
mov eax, dword [ebx + 0xfee]
test eax, eax
je 0x4594fa
mov al, byte [eax + 8]
test al, al
je 0x4594ed
mov esi, dword [ebx + 0xfee]
call fcn.004bf460
mov esi, dword [ebx + 0xfee]
push 0
call fcn.004bf4c0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1098
ret 0x14
mov eax, dword [esp + 0x18]
cmp eax, 0xffffffff
je 0x4594fa
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1098
ret 0x14