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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x52fa51
mov eax, dword fs:[0]
push eax
sub esp, 0x18c
mov eax, dword [0x5c6150]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
cmp byte [esi + 0x11c], 0
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x194], eax
lea eax, [esi + 0xc]
mov dword [ebp - 0x198], edi
jne 0x4546a1
mov eax, dword [esi + 8]
push 0
push 0
push 0
push 0
lea ebx, [eax + 4]
push 0
push ebx
lea ecx, [ebp - 0x138]
call fcn.00451610
mov dword [ebp - 4], 0
cmp dword [ebp - 0x134], 2
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x130]
jb 0x454783
test dl, dl
lea eax, [ebp - 0x12c]
cmove eax, ecx
cmp word [eax + 6], 0x3a
je 0x454711
test dl, dl
lea eax, [ebp - 0x12c]
cmove eax, ecx
cmp word [eax + 4], 0x5c
jne 0x454783
test dl, dl
lea eax, [ebp - 0x12c]
cmove eax, ecx
cmp word [eax + 6], 0x5c
jne 0x454783
call fcn.00465a10
test al, al
jne 0x45474e
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x138], vtable.t_str.0
cmp byte [ebp - 0x1c], 0
jne 0x45474a
mov eax, dword [ebp - 0x130]
lea ecx, [ebp - 0x12c]
cmp eax, ecx
je 0x45474a
push eax
call fcn.004e1b56
add esp, 4
xor bl, bl
jmp 0x4547ad
mov ecx, ebx
call fcn.00465c90
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x138], vtable.t_str.0
test eax, eax
je 0x45472b
cmp byte [ebp - 0x1c], 0
jne 0x4547ab
mov eax, dword [ebp - 0x130]
lea ecx, [ebp - 0x12c]
cmp eax, ecx
je 0x4547ab
push eax
jmp 0x4547a3
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x138], vtable.t_str.0
test dl, dl
jne 0x4547ab
lea eax, [ebp - 0x12c]
cmp ecx, eax
je 0x4547ab
push ecx
call fcn.004e1b56
add esp, 4
mov bl, 1
mov ecx, esi
call fcn.00451e40
test al, al
jne 0x4548ac
cmp byte [esi + 0x11c], al
lea eax, [esi + 0xc]
jne 0x4547ca
mov eax, dword [esi + 8]
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4548b3
shr eax, 4
not al
and al, 1
je 0x4548b3
test bl, bl
je 0x4548ac
lea ecx, [ebp - 0x190]
call fcn.00461910
mov dword [ebp - 4], 2
lea eax, [esi + 0xc]
cmp byte [esi + 0x11c], 0
jne 0x454813
mov eax, dword [esi + 8]
add eax, 4
push eax
call fcn.00461ac0
mov edi, eax
mov eax, dword [ebp - 0x198]
test eax, eax
je 0x45482a
mov dword [eax], edi
test edi, edi
je 0x4548a1
cmp byte [esi + 0x11c], 0
lea ebx, [esi + 0xc]
jne 0x45483d
mov ebx, dword [esi + 8]
mov ecx, dword [ebp - 0x194]
call fcn.00450c80
push 0x5a063c
mov esi, eax
push 0x5971f4
push esi
call fcn.00450580
add esp, 0xc
push edi
push 0x59fc70
push esi
call fcn.00450580
add esp, 0xc
push 0x59d658
push 0x5971f4
push esi
call fcn.00450580
add esp, 0xc
lea eax, [ebx + 4]
push eax
push 0x5971f4
push esi
call fcn.00450580
add esp, 0xc
lea ecx, [ebp - 0x190]
call fcn.00460a40
jmp 0x454933
lea ecx, [ebp - 0x190]
call fcn.00460a40
mov al, 1
jmp 0x454935
test edi, edi
je 0x4548bd
mov dword [edi], 1
cmp byte [esi + 0x11c], 0
lea eax, [esi + 0xc]
jne 0x4548cc
mov eax, dword [esi + 8]
push 0
push 0
push 0
push 0
push 0
add eax, 4
lea ecx, [ebp - 0x138]
push eax
call fcn.00451610
mov ecx, dword [ebp - 0x194]
lea eax, [ebp - 0x138]
push eax
push 0x59fe64
mov dword [ebp - 4], 1
call fcn.00450c80
mov ecx, eax
call fcn.004510e0
cmp byte [ebp - 0x1c], 0
mov dword [ebp - 0x138], vtable.t_str.0
jne 0x454933
mov eax, dword [ebp - 0x130]
lea ecx, [ebp - 0x12c]
cmp eax, ecx
je 0x454933
push eax
call fcn.004e1b56
add esp, 4
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004d6cfd
mov esp, ebp
pop ebp
ret 8