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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x478ceb
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2ac
mov eax, dword [0x4b0b90]
xor eax, ebp
mov dword [ebp - 0x10], eax
push edi
mov dword [ebp - 0x2a8], ecx
mov word [ebp - 0x234], 0
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x232]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [ebp - 0x2c]
call fcn.0040ca20
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x244]
call fcn.0040b800
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x2a8]
add ecx, 0x2c
call fcn.0040b770
mov ecx, dword [ebp + 8]
call fcn.00402660
movzx eax, al
test eax, eax
jne 0x40ae63
mov ecx, dword [ebp + 8]
push ecx
mov ecx, dword [ebp - 0x2a8]
call fcn.0040ace0
push eax
call fcn.0040c260
add esp, 8
movzx edx, al
test edx, edx
je 0x40ae55
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x2a8]
add ecx, 0x10
call fcn.0040ca90
mov ecx, dword [ebp + 8]
push ecx
lea ecx, [ebp - 0x2c]
call fcn.0040ca90
jmp 0x40ae77
mov ecx, dword [ebp - 0x2a8]
call fcn.0040ace0
push eax
lea ecx, [ebp - 0x2c]
call fcn.0040ca90
mov edx, dword [ebp + 0xc]
push edx
lea eax, [ebp - 0x244]
push eax
mov ecx, dword [ebp - 0x2a8]
call fcn.0040b3e0
movzx ecx, al
test ecx, ecx
je 0x40b0a7
mov dword [ebp - 0x24c], 0
mov byte [ebp - 0x245], 0
lea ecx, [ebp - 0x244]
call fcn.0040f800
cmp dword [ebp - 0x24c], eax
jae 0x40af82
mov edx, dword [ebp - 0x24c]
mov dword [ebp - 0x2ac], edx
mov eax, dword [ebp - 0x2ac]
push eax
lea ecx, [ebp - 0x244]
call fcn.0040d9a0
mov dword [ebp - 0x2b0], eax
mov ecx, dword [ebp - 0x2b0]
push ecx
lea ecx, [ebp - 0x268]
call fcn.00409830
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x24c]
add edx, 1
mov dword [ebp - 0x24c], edx
mov eax, dword [str.en_us]
push eax
lea ecx, [ebp - 0x268]
call fcn.00408f00
push eax
call fcn.00451bfe
add esp, 8
test eax, eax
jne 0x40af2e
mov byte [ebp - 0x245], 1
lea ecx, [ebp - 0x2c]
push ecx
lea edx, [ebp - 0x268]
push edx
call fcn.0040c280
add esp, 8
movzx eax, al
test eax, eax
je 0x40af6e
lea ecx, [ebp - 0x268]
push ecx
mov ecx, dword [ebp - 0x2a8]
add ecx, 0x2c
call fcn.0040ca90
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x268]
call fcn.00408ee0
jmp 0x40af82
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x268]
call fcn.00408ee0
jmp 0x40aea9
mov ecx, dword [ebp - 0x2a8]
add ecx, 0x2c
call fcn.00402660
movzx edx, al
test edx, edx
je 0x40b072
mov dword [ebp - 0x24c], 0
lea ecx, [ebp - 0x244]
call fcn.0040f800
cmp dword [ebp - 0x24c], eax
jae 0x40b072
mov eax, dword [ebp - 0x24c]
mov dword [ebp - 0x2b4], eax
mov ecx, dword [ebp - 0x2b4]
push ecx
lea ecx, [ebp - 0x244]
call fcn.0040d9a0
mov dword [ebp - 0x2b8], eax
mov edx, dword [ebp - 0x2b8]
push edx
lea ecx, [ebp - 0x284]
call fcn.00409830
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x24c]
add eax, 1
mov dword [ebp - 0x24c], eax
push 2
lea ecx, [ebp - 0x2c]
call fcn.00408f00
push eax
lea ecx, [ebp - 0x284]
call fcn.00408f00
push eax
call fcn.00468ac4
add esp, 0xc
test eax, eax
jne 0x40b05e
lea ecx, [ebp - 0x284]
call fcn.004018c0
cmp eax, 2
jne 0x40b05e
lea ecx, [ebp - 0x284]
push ecx
mov ecx, dword [ebp - 0x2a8]
add ecx, 0x2c
call fcn.0040ca90
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x284]
call fcn.00408ee0
jmp 0x40b072
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x284]
call fcn.00408ee0
jmp 0x40afa5
mov ecx, dword [ebp - 0x2a8]
add ecx, 0x2c
call fcn.00402660
movzx edx, al
test edx, edx
je 0x40b0a7
movzx eax, byte [ebp - 0x245]
test eax, eax
je 0x40b0a7
mov ecx, dword [str.en_us]
push ecx
mov ecx, dword [ebp - 0x2a8]
add ecx, 0x2c
call fcn.0040cab0
mov ecx, dword [ebp + 0xc]
call fcn.004018c0
test eax, eax
je 0x40b0c7
mov edx, dword [ebp + 0xc]
push edx
mov ecx, dword [ebp - 0x2a8]
add ecx, 0x48
call fcn.0040ca90
jmp 0x40b106
push 0x104
lea eax, [ebp - 0x234]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x5c
lea ecx, [ebp - 0x234]
push ecx
call fcn.00451bce
add esp, 8
mov word [eax], 0
lea edx, [ebp - 0x234]
push edx
mov ecx, dword [ebp - 0x2a8]
add ecx, 0x48
call fcn.0040cab0
mov ecx, dword [ebp - 0x2a8]
add ecx, 0x2c
call fcn.004018c0
test eax, eax
jbe 0x40b145
push 0x49044c
mov ecx, dword [ebp - 0x2a8]
add ecx, 0x48
call fcn.00409660
mov eax, dword [ebp - 0x2a8]
add eax, 0x2c
push eax
mov ecx, dword [ebp - 0x2a8]
add ecx, 0x48
call fcn.0040b750
jmp 0x40b1a9
mov ecx, dword [ebp - 0x2a8]
add ecx, 0x48
push ecx
lea ecx, [ebp - 0x2a0]
call fcn.00409830
mov byte [ebp - 4], 4
push 0x490450
lea ecx, [ebp - 0x2a0]
call fcn.00409660
lea ecx, [ebp - 0x2a0]
call fcn.00408f00
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x40b19a
mov edx, dword [str.en_us]
push edx
mov ecx, dword [ebp - 0x2a8]
add ecx, 0x2c
call fcn.0040cab0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2a0]
call fcn.00408ee0
mov ecx, dword [ebp - 0x2a8]
add ecx, 0x2c
call fcn.004018c0
xor ecx, ecx
cmp ecx, eax
sbb edx, edx
neg edx
mov byte [ebp - 0x2a1], dl
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x244]
call fcn.0040b830
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.00408ee0
mov al, byte [ebp - 0x2a1]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0045040c
mov esp, ebp
pop ebp
ret 8