Function at 0x404fe0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59e302
mov eax, dword fs:[0]
push eax
sub esp, 0xe0
mov eax, dword [0x6280b8]
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
mov dword [ebp - 0xd8], esi
mov edi, dword [ebp + 0x24]
mov dword [ebp - 0xec], edi
lea ebx, [esi + 0x4c]
mov dword [ebp - 4], 0
lea eax, [ebp + 0xc]
mov dword [ebp - 0xe0], ebx
cmp ebx, eax
je 0x405042
push 0xffffffffffffffff
push 0
push eax
mov ecx, ebx
call fcn.00401e80
lea eax, [esi + 0x64]
cmp eax, ebx
je 0x405055
push 0xffffffffffffffff
push 0
push ebx
mov ecx, eax
call fcn.00401e80
lea eax, [ebp - 0x28]
push str.50361433051239681729546109572020
push eax
call fcn.0042a16a
mov esi, eax
lea eax, [ebp - 0xa0]
mov byte [ebp - 4], 1
push str.02066947046756251267664568034630
push eax
call fcn.0042a16a
push esi
push eax
mov eax, dword [ebp - 0xd8]
add eax, 0x64
mov byte [ebp - 4], 2
push eax
call fcn.00427320
mov eax, dword [ebp - 0x8c]
add esp, 0x1c
cmp eax, 8
jb 0x4050b0
inc eax
lea ecx, [ebp - 0xa0]
push eax
push dword [ebp - 0xa0]
call fcn.00402340
xor eax, eax
mov dword [ebp - 0x8c], 7
mov word [ebp - 0xa0], ax
mov byte [ebp - 4], al
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x90], 0
cmp eax, 8
jb 0x4050e5
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.00402340
call fcn.0042be83
test al, al
je 0x405106
push ecx
pop edx
pop ecx
pop esi
push ebx
pop ebp
pop eax
push eax
pop esi
pop esi
push ecx
pop ebx
push ebx
push esp
push esp
pop ebp
push eax
push ebx
mov ebx, dword [ebp - 0xe0]
xor eax, eax
mov dword [ebp - 0xbc], 7
push eax
push 0x61d004
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xc0], 0
mov word [ebp - 0xd0], ax
call fcn.00401d80
xor eax, eax
mov byte [ebp - 4], 3
push eax
push 0x61d004
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x5c], 7
mov dword [ebp - 0x60], 0
mov word [ebp - 0x70], ax
call fcn.00401d80
mov byte [ebp - 4], 4
cmp dword [ebx + 0x14], 8
jb 0x405166
mov ebx, dword [ebx]
lea eax, [ebp - 0x58]
push ebx
push eax
call fcn.0042add1
mov byte [ebp - 4], 5
lea eax, [ebp - 0x58]
cmp dword [ebp - 0x44], 8
cmovae eax, dword [ebp - 0x58]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0042acd4
add esp, 0x10
mov esi, eax
lea eax, [ebp - 0x58]
cmp eax, esi
je 0x4051c7
mov eax, dword [ebp - 0x44]
cmp eax, 8
jb 0x4051aa
inc eax
lea ecx, [ebp - 0x58]
push eax
push dword [ebp - 0x58]
call fcn.00402340
xor eax, eax
mov dword [ebp - 0x44], 7
push esi
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x48], 0
mov word [ebp - 0x58], ax
call fcn.00401fa0
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x4051e0
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.00402340
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.0042f925
push 0
call fcn.004492be
mov dword [ebp - 0xe4], eax
add esp, 0xc
xor eax, eax
mov dword [ebp - 0x74], 7
mov dword [ebp - 0x78], 0
mov word [ebp - 0x88], ax
mov dword [ebp - 0x2c], 7
mov dword [ebp - 0x30], eax
mov word [ebp - 0x40], ax
mov byte [ebp - 4], 9
mov dword [ebp - 0xdc], eax
call fcn.0042bf52
test al, al
je 0x40524f
push edx
pop ebp
pop edi
push edx
push ebx
push edi
pop ebx
push edi
push edx
push esp
pop esp
push edx
push edx
pop ebx
push ecx
pop edx
push eax
mov edi, dword [ebp - 0xec]
call fcn.0042bbd1
test al, al
je 0x405275
pop esp
push esi
pop eax
pop ebx
pop edx
pop esi
pop edx
push ebp
pop esp
push edx
pop ebp
push esi
push edi
pop ebx
push esp
push ebp
push ecx
push eax
push ecx
pop esp
pop esp
push esp
push esp
push esp
push ebp
push ebx
push ecx
push esp
push edx
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0x88]
push eax
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 7
cmp dword [ecx + 0x14], 8
mov dword [ecx + 0x10], 0
jb 0x4052b2
mov eax, dword [ecx]
jmp 0x4052b4
mov eax, ecx
mov esi, dword [ebp - 0xe0]
xor edx, edx
push 0xffffffffffffffff
push edx
push esi
mov word [eax], dx
call fcn.00401e80
push dword [ebp + 8]
mov ebx, dword [ebp - 0xd8]
mov ecx, ebx
call fcn.00404230
test al, al
je 0x405528
cmp dword [ebp - 0xbc], 8
lea eax, [ebp - 0xd0]
mov dword [ebp - 0xdc], 1
cmovae eax, dword [ebp - 0xd0]
push eax
call fcn.004491eb
add eax, dword [ebx]
add esp, 4
cmp eax, dword [ebp - 0xe4]
jl 0x40532d
lea eax, [ebp - 0x70]
cmp edi, eax
je 0x4054d5
push 0xffffffffffffffff
push 0
push eax
mov ecx, edi
call fcn.00401e80
jmp 0x4054d5
lea eax, [ebp - 0xa0]
push esi
push eax
call fcn.0042f925
add esp, 8
mov byte [ebp - 4], 0xa
cmp dword [eax + 0x14], 0x10
jb 0x405349
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0042a4ff
add esp, 8
lea ecx, [ebp - 0x40]
push eax
call fcn.004059a0
lea ecx, [ebp - 0x28]
call fcn.00401aa0
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 9
call fcn.00401bc0
cmp dword [ebp - 0x30], 0
jne 0x4053e1
mov ebx, dword [ebp - 0xd8]
mov ecx, esi
add ebx, 0x64
mov edx, ebx
call fcn.00405c10
test al, al
je 0x4053db
lea eax, [ebp - 0xa0]
push ebx
push eax
call fcn.0042f925
add esp, 8
mov byte [ebp - 4], 0xb
cmp dword [eax + 0x14], 0x10
jb 0x4053ae
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0042a4ff
add esp, 8
lea ecx, [ebp - 0x40]
push eax
call fcn.004059a0
lea ecx, [ebp - 0x28]
call fcn.00401aa0
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 9
call fcn.00401bc0
mov ebx, dword [ebp - 0xd8]
cmp dword [ebp - 0x74], 8
lea ecx, [ebp - 0x88]
push dword [ebp - 0x78]
cmovae ecx, dword [ebp - 0x88]
lea eax, [ebp - 0x40]
cmp dword [ebp - 0x2c], 8
push ecx
cmovae eax, dword [ebp - 0x40]
push dword [ebp - 0x30]
push eax
call fcn.00403610
add esp, 0x10
test eax, eax
jne 0x405528
lea eax, [ebp - 0x70]
cmp edi, eax
je 0x405428
push 0xffffffffffffffff
push 0
push eax
mov ecx, edi
call fcn.00401e80
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xe8], esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 7
cmp dword [ecx + 0x14], 8
mov dword [ecx + 0x10], 0
jb 0x405459
mov eax, dword [ecx]
jmp 0x40545b
mov eax, ecx
xor edx, edx
push 0xffffffffffffffff
mov word [eax], dx
lea eax, [ebp - 0x70]
push edx
push eax
call fcn.00401e80
sub esp, 0x18
mov byte [ebp - 4], 0xc
mov ecx, esp
mov dword [ebp - 0xe4], esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 7
cmp dword [ecx + 0x14], 8
mov dword [ecx + 0x10], 0
jb 0x4054a1
mov eax, dword [ecx]
jmp 0x4054a3
mov eax, ecx
xor edx, edx
push 0xffffffffffffffff
mov word [eax], dx
lea eax, [ebp - 0x88]
push edx
push eax
call fcn.00401e80
sub esp, 0x18
mov byte [ebp - 4], 0xd
mov ecx, esp
push esi
call fcn.00402e90
mov eax, dword [ebp + 8]
mov ecx, ebx
push eax
mov byte [ebp - 4], 9
call fcn.004048d0
cmp dword [ebp - 0xa4], 0x10
lea esi, [ebp - 0xb8]
mov eax, dword [0x631c40]
cmovae esi, dword [ebp - 0xb8]
test eax, eax
jne 0x405511
push 0x104
call fcn.0041feca
add esp, 4
mov dword [ebp - 0xe8], eax
mov ecx, eax
call fcn.0040fab0
mov dword [0x631c40], eax
push 0
push esi
sub esp, 8
mov ecx, eax
call fcn.004107c0
mov esi, 1
jmp 0x405857
cmp dword [ebp + 0x28], 0
jne 0x40553f
push 0x61d004
mov ecx, edi
call fcn.00401a50
jmp 0x405855
cmp dword [edi + 0x10], 0
jne 0x4055f2
mov eax, dword [ebp + 8]
test eax, eax
je 0x405596
add ebx, 0x1c
cmp dword [ebx + 0x14], 8
jb 0x40555b
mov ebx, dword [ebx]
lea eax, [ebp - 0x28]
push ebx
push eax
call fcn.0042b2fc
add esp, 8
mov ecx, edi
push eax
call fcn.004059a0
lea ecx, [ebp - 0x28]
call fcn.00401aa0
cmp dword [ebp + 0x20], 8
lea eax, [ebp + 0xc]
cmovae eax, dword [ebp + 0xc]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0042b02e
add esp, 8
mov byte [ebp - 4], 0xe
jmp 0x4055da
add ebx, 4
cmp dword [ebx + 0x14], 8
jb 0x4055a1
mov ebx, dword [ebx]
lea eax, [ebp - 0x28]
push ebx
push eax
call fcn.0042b2fc
add esp, 8
mov ecx, edi
push eax
call fcn.004059a0
lea ecx, [ebp - 0x28]
call fcn.00401aa0
cmp dword [ebp + 0x20], 8
lea eax, [ebp + 0xc]
cmovae eax, dword [ebp + 0xc]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0042b02e
add esp, 8
mov byte [ebp - 4], 0xf
push 0xffffffffffffffff
push 0
push eax
mov ecx, edi
call fcn.00402600
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 9
call fcn.00401aa0
call fcn.0042bca0
test al, al
je 0x405613
push ecx
push ebp
pop esp
pop ebx
push ebx
push esi
pop eax
pop edi
pop edi
pop eax
pop esp
pop ecx
pop ebp
pop esi
push edi
push ebp
push eax
pop ecx
pop ebp
pop eax
push edi
pop ecx
push ecx
pop ecx
call fcn.0042b9ee
test al, al
je 0x405635
push esp
push ebx
push ecx
push esp
push edi
push ebx
push ecx
pop eax
pop edx
push ebp
pop edi
push ecx
push ecx
push esp
pop ebx
pop esi
push eax
pop edx
push esi
push esp
pop ebp
pop eax
pop ebp
pop esi
push edx
call fcn.0042b850
test al, al
je 0x405650
pop edx
push esi
pop edi
push esp
pop esi
pop esi
pop esi
pop ebx
push ecx
pop ebx
push esi
push esi
push ebp
push ebp
push edi
pop ebx
pop edx
pop eax
mov esi, dword [ebp - 0xec]
cmp dword [esi + 0x14], 8
jb 0x405660
mov eax, dword [esi]
jmp 0x405662
mov eax, esi
push eax
call fcn.0042873a
mov ebx, dword [ebp - 0xe0]
add esp, 4
cmp dword [ebx + 0x14], 8
jb 0x40567b
mov edx, dword [ebx]
jmp 0x40567d
mov edx, ebx
mov edi, dword [ebp - 0xd8]
add edi, 0x64
cmp dword [edi + 0x14], 8
jb 0x405690
mov eax, dword [edi]
jmp 0x405692
mov eax, edi
push dword [ebx + 0x10]
push edx
push dword [edi + 0x10]
push eax
call fcn.00403610
mov ecx, dword [ebp - 0xd8]
add esp, 0x10
push esi
test eax, eax
je 0x4056ca
push 0
call fcn.00404c20
test eax, eax
setne al
mov byte [ebp - 0xd1], al
test al, al
jne 0x4056da
mov ecx, dword [ebp - 0xd8]
push esi
push 1
call fcn.00404c20
test eax, eax
setne byte [ebp - 0xd1]
cmp dword [esi + 0x14], 8
jb 0x4056e4
mov eax, dword [esi]
jmp 0x4056e6
mov eax, esi
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40582f
cmp byte [ebp - 0xd1], 0
je 0x40582f
cmp dword [ebp - 0xdc], 0
lea eax, [ebp - 0xb8]
jne 0x405715
push 2
jmp 0x405717
push 3
cmp dword [ebp - 0xa4], 0x10
cmovae eax, dword [ebp - 0xb8]
push eax
sub esp, 8
call fcn.00405be0
mov ecx, eax
call fcn.004107c0
cmp dword [ebp - 0x30], 0
jne 0x4057e3
lea eax, [ebp - 0xa0]
push ebx
push eax
call fcn.0042f925
add esp, 8
mov byte [ebp - 4], 0x10
cmp dword [eax + 0x14], 0x10
jb 0x40575b
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0042a4ff
add esp, 8
lea ecx, [ebp - 0x40]
push eax
call fcn.004059a0
lea ecx, [ebp - 0x28]
call fcn.00401aa0
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 9
call fcn.00401bc0
cmp dword [ebp - 0x30], 0
jne 0x4057e3
mov edx, edi
mov ecx, ebx
call fcn.00405c10
test al, al
je 0x4057e3
lea eax, [ebp - 0xa0]
push edi
push eax
call fcn.0042f925
add esp, 8
mov ecx, eax
mov byte [ebp - 4], 0x11
call fcn.00405a20
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0042a4ff
add esp, 8
lea ecx, [ebp - 0x40]
push eax
call fcn.004059a0
lea ecx, [ebp - 0x28]
call fcn.00401aa0
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 9
call fcn.00401bc0
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xe8], esp
push esi
call fcn.00402e90
sub esp, 0x18
mov byte [ebp - 4], 0x12
lea eax, [ebp - 0x40]
mov dword [ebp - 0xe4], esp
mov ecx, esp
push eax
call fcn.00402e90
sub esp, 0x18
mov byte [ebp - 4], 0x13
mov ecx, esp
push ebx
call fcn.00402e90
push dword [ebp + 8]
mov ecx, dword [ebp - 0xd8]
mov byte [ebp - 4], 9
call fcn.004048d0
jmp 0x405855
cmp dword [ebp - 0xa4], 0x10
lea eax, [ebp - 0xb8]
push 1
cmovae eax, dword [ebp - 0xb8]
push eax
sub esp, 8
call fcn.00405be0
mov ecx, eax
call fcn.004107c0
xor esi, esi
mov eax, dword [ebp - 0x2c]
cmp eax, 8
jb 0x40586c
inc eax
lea ecx, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
call fcn.00402340
xor eax, eax
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x30], 0
cmp eax, 8
jb 0x40589b
inc eax
lea ecx, [ebp - 0x88]
push eax
push dword [ebp - 0x88]
call fcn.00402340
xor eax, eax
mov dword [ebp - 0x74], 7
lea ecx, [ebp - 0xb8]
mov dword [ebp - 0x78], 0
mov word [ebp - 0x88], ax
call fcn.00401bc0
mov eax, dword [ebp - 0x44]
cmp eax, 8
jb 0x4058d2
inc eax
lea ecx, [ebp - 0x58]
push eax
push dword [ebp - 0x58]
call fcn.00402340
xor eax, eax
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x48], 0
cmp eax, 8
jb 0x4058fb
inc eax
lea ecx, [ebp - 0x70]
push eax
push dword [ebp - 0x70]
call fcn.00402340
xor eax, eax
mov dword [ebp - 0x5c], 7
mov word [ebp - 0x70], ax
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x60], 0
cmp eax, 8
jb 0x40592d
inc eax
lea ecx, [ebp - 0xd0]
push eax
push dword [ebp - 0xd0]
call fcn.00402340
xor eax, eax
mov dword [ebp - 0xbc], 7
lea ecx, [ebp + 0xc]
mov dword [ebp - 0xc0], 0
mov word [ebp - 0xd0], ax
call fcn.00401aa0
mov eax, esi
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.0041feb9
mov esp, ebp
pop ebp
ret 0x24