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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x478d2b
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.0040ca40
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x244]
call fcn.0040b820
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x2a8]
add ecx, 0x2c
call fcn.0040b790
mov ecx, dword [ebp + 8]
call fcn.00402660
movzx eax, al
test eax, eax
jne 0x40ae83
mov ecx, dword [ebp + 8]
push ecx
mov ecx, dword [ebp - 0x2a8]
call fcn.0040ad00
push eax
call fcn.0040c280
add esp, 8
movzx edx, al
test edx, edx
je 0x40ae75
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x2a8]
add ecx, 0x10
call fcn.0040cab0
mov ecx, dword [ebp + 8]
push ecx
lea ecx, [ebp - 0x2c]
call fcn.0040cab0
jmp 0x40ae97
mov ecx, dword [ebp - 0x2a8]
call fcn.0040ad00
push eax
lea ecx, [ebp - 0x2c]
call fcn.0040cab0
mov edx, dword [ebp + 0xc]
push edx
lea eax, [ebp - 0x244]
push eax
mov ecx, dword [ebp - 0x2a8]
call fcn.0040b400
movzx ecx, al
test ecx, ecx
je 0x40b0c7
mov dword [ebp - 0x24c], 0
mov byte [ebp - 0x245], 0
lea ecx, [ebp - 0x244]
call fcn.0040b870
cmp dword [ebp - 0x24c], eax
jae 0x40afa2
mov edx, dword [ebp - 0x24c]
mov dword [ebp - 0x2ac], edx
mov eax, dword [ebp - 0x2ac]
push eax
lea ecx, [ebp - 0x244]
call fcn.0040d9c0
mov dword [ebp - 0x2b0], eax
mov ecx, dword [ebp - 0x2b0]
push ecx
lea ecx, [ebp - 0x268]
call fcn.00409850
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.00408f20
push eax
call fcn.00451c4e
add esp, 8
test eax, eax
jne 0x40af4e
mov byte [ebp - 0x245], 1
lea ecx, [ebp - 0x2c]
push ecx
lea edx, [ebp - 0x268]
push edx
call fcn.0040c2a0
add esp, 8
movzx eax, al
test eax, eax
je 0x40af8e
lea ecx, [ebp - 0x268]
push ecx
mov ecx, dword [ebp - 0x2a8]
add ecx, 0x2c
call fcn.0040cab0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x268]
call fcn.00408f00
jmp 0x40afa2
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x268]
call fcn.00408f00
jmp 0x40aec9
mov ecx, dword [ebp - 0x2a8]
add ecx, 0x2c
call fcn.00402660
movzx edx, al
test edx, edx
je 0x40b092
mov dword [ebp - 0x24c], 0
lea ecx, [ebp - 0x244]
call fcn.0040b870
cmp dword [ebp - 0x24c], eax
jae 0x40b092
mov eax, dword [ebp - 0x24c]
mov dword [ebp - 0x2b4], eax
mov ecx, dword [ebp - 0x2b4]
push ecx
lea ecx, [ebp - 0x244]
call fcn.0040d9c0
mov dword [ebp - 0x2b8], eax
mov edx, dword [ebp - 0x2b8]
push edx
lea ecx, [ebp - 0x284]
call fcn.00409850
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.00408f20
push eax
lea ecx, [ebp - 0x284]
call fcn.00408f20
push eax
call fcn.00468b14
add esp, 0xc
test eax, eax
jne 0x40b07e
lea ecx, [ebp - 0x284]
call fcn.004018c0
cmp eax, 2
jne 0x40b07e
lea ecx, [ebp - 0x284]
push ecx
mov ecx, dword [ebp - 0x2a8]
add ecx, 0x2c
call fcn.0040cab0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x284]
call fcn.00408f00
jmp 0x40b092
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x284]
call fcn.00408f00
jmp 0x40afc5
mov ecx, dword [ebp - 0x2a8]
add ecx, 0x2c
call fcn.00402660
movzx edx, al
test edx, edx
je 0x40b0c7
movzx eax, byte [ebp - 0x245]
test eax, eax
je 0x40b0c7
mov ecx, dword [str.en_us]
push ecx
mov ecx, dword [ebp - 0x2a8]
add ecx, 0x2c
call fcn.0040cad0
mov ecx, dword [ebp + 0xc]
call fcn.004018c0
test eax, eax
je 0x40b0e7
mov edx, dword [ebp + 0xc]
push edx
mov ecx, dword [ebp - 0x2a8]
add ecx, 0x48
call fcn.0040cab0
jmp 0x40b126
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.00451c1e
add esp, 8
mov word [eax], 0
lea edx, [ebp - 0x234]
push edx
mov ecx, dword [ebp - 0x2a8]
add ecx, 0x48
call fcn.0040cad0
mov ecx, dword [ebp - 0x2a8]
add ecx, 0x2c
call fcn.004018c0
test eax, eax
jbe 0x40b165
push 0x49044c
mov ecx, dword [ebp - 0x2a8]
add ecx, 0x48
call fcn.00409680
mov eax, dword [ebp - 0x2a8]
add eax, 0x2c
push eax
mov ecx, dword [ebp - 0x2a8]
add ecx, 0x48
call fcn.0040b770
jmp 0x40b1c9
mov ecx, dword [ebp - 0x2a8]
add ecx, 0x48
push ecx
lea ecx, [ebp - 0x2a0]
call fcn.00409850
mov byte [ebp - 4], 4
push 0x490450
lea ecx, [ebp - 0x2a0]
call fcn.00409680
lea ecx, [ebp - 0x2a0]
call fcn.00408f20
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x40b1ba
mov edx, dword [str.en_us]
push edx
mov ecx, dword [ebp - 0x2a8]
add ecx, 0x2c
call fcn.0040cad0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2a0]
call fcn.00408f00
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.0040b850
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.00408f00
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.0045045c
mov esp, ebp
pop ebp
ret 8