Function at 0x403c80
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59b0c2
mov eax, dword fs:[0]
push eax
sub esp, 0xdc
mov eax, dword [0x6240b8]
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 eax, dword [ebp + 0x24]
mov dword [ebp - 0xe4], eax
lea ebx, [esi + 0x4c]
mov dword [ebp - 4], 0
lea eax, [ebp + 0xc]
mov dword [ebp - 0xdc], ebx
cmp ebx, eax
je 0x403ce2
push 0xffffffffffffffff
push 0
push eax
mov ecx, ebx
call fcn.00401920
lea edi, [esi + 0x64]
cmp edi, ebx
je 0x403cf5
push 0xffffffffffffffff
push 0
push ebx
mov ecx, edi
call fcn.00401920
lea eax, [ebp - 0x28]
push str.04500542036812441102593467302929
push eax
call fcn.00425daa
mov esi, eax
lea eax, [ebp - 0xa0]
mov byte [ebp - 4], 1
push str.10499561036756401167662868492416
push eax
call fcn.00425daa
push esi
push eax
push edi
mov byte [ebp - 4], 2
call fcn.0042335a
mov eax, dword [ebp - 0x8c]
add esp, 0x1c
cmp eax, 8
jb 0x403d47
inc eax
lea ecx, [ebp - 0xa0]
push eax
push dword [ebp - 0xa0]
call fcn.00401b30
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 0x403d7c
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.00401b30
call fcn.004276c8
test al, al
je 0x403da0
push esp
pop edx
pop esi
pop ecx
push ecx
push esp
pop esi
pop eax
pop ebp
push ecx
push edx
push eax
push eax
push eax
push esi
pop ecx
pop edi
pop ebx
pop ecx
pop esp
push ecx
mov ebx, dword [ebp - 0xdc]
xor eax, eax
mov dword [ebp - 0xbc], 7
push eax
push 0x619730
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xc0], 0
mov word [ebp - 0xd0], ax
call fcn.00401820
xor eax, eax
mov byte [ebp - 4], 3
push eax
push 0x619730
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x5c], 7
mov dword [ebp - 0x60], 0
mov word [ebp - 0x70], ax
call fcn.00401820
mov byte [ebp - 4], 4
cmp dword [ebx + 0x14], 8
jb 0x403e02
mov eax, dword [ebx]
jmp 0x403e04
mov eax, ebx
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.00426a50
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.00426949
add esp, 0x10
mov esi, eax
lea eax, [ebp - 0x58]
cmp eax, esi
je 0x403e65
mov eax, dword [ebp - 0x44]
cmp eax, 8
jb 0x403e48
inc eax
lea ecx, [ebp - 0x58]
push eax
push dword [ebp - 0x58]
call fcn.00401b30
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.004047e0
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x403e7e
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.00401b30
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.0042c61b
push 0
call fcn.00442f67
mov edi, eax
mov dword [ebp - 0x74], 7
xor eax, eax
mov dword [ebp - 0xe0], edi
add esp, 0xc
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 - 0xe8], eax
call fcn.0042797a
test al, al
je 0x403f02
pop edi
pop esi
push ecx
pop edx
pop esp
push ebx
pop esp
push ebp
pop ebp
pop ecx
push edi
push ebp
push ebx
push ebp
pop ebp
pop edi
pop esp
push edx
pop ebx
push edx
push eax
pop edx
pop ebp
push ecx
pop eax
push ebx
pop ebx
push ebp
push ebp
pop ecx
mov ebx, dword [ebp - 0xdc]
mov edi, dword [ebp - 0xe0]
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 0x403f3f
mov eax, dword [ecx]
jmp 0x403f41
mov eax, ecx
xor edx, edx
push 0xffffffffffffffff
push edx
push ebx
mov word [eax], dx
call fcn.00401920
push dword [ebp + 8]
mov esi, dword [ebp - 0xd8]
mov ecx, esi
call fcn.00403020
test al, al
je 0x4041b9
cmp dword [ebp - 0xbc], 8
lea eax, [ebp - 0xd0]
mov dword [ebp - 0xe8], 1
cmovae eax, dword [ebp - 0xd0]
push eax
call fcn.00442e94
add eax, dword [esi]
add esp, 4
cmp eax, edi
jl 0x403fb6
mov eax, dword [ebp - 0xe4]
lea ecx, [ebp - 0x70]
cmp eax, ecx
je 0x404166
push 0xffffffffffffffff
push 0
push ecx
mov ecx, eax
call fcn.00401920
jmp 0x404166
lea eax, [ebp - 0xa0]
push ebx
push eax
call fcn.0042c61b
add esp, 8
mov byte [ebp - 4], 0xa
cmp dword [eax + 0x14], 0x10
jb 0x403fd2
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0042613f
add esp, 8
lea ecx, [ebp - 0x40]
push eax
call fcn.004045f0
lea ecx, [ebp - 0x28]
call fcn.00401590
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 9
call fcn.00404680
mov edi, dword [ebp - 0x30]
test edi, edi
jne 0x40406e
mov esi, dword [ebp - 0xd8]
mov ecx, ebx
add esi, 0x64
mov edx, esi
call fcn.00404c10
test al, al
je 0x404068
lea eax, [ebp - 0xa0]
push esi
push eax
call fcn.0042c61b
add esp, 8
mov byte [ebp - 4], 0xb
cmp dword [eax + 0x14], 0x10
jb 0x404038
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0042613f
add esp, 8
lea ecx, [ebp - 0x40]
push eax
call fcn.004045f0
lea ecx, [ebp - 0x28]
call fcn.00401590
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 9
call fcn.00404680
mov edi, dword [ebp - 0x30]
mov esi, 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 edi
push eax
call fcn.00402450
add esp, 0x10
test eax, eax
jne 0x4041b9
mov eax, dword [ebp - 0xe4]
lea ecx, [ebp - 0x70]
cmp eax, ecx
je 0x4040b9
push 0xffffffffffffffff
push 0
push ecx
mov ecx, eax
call fcn.00401920
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xe0], 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 0x4040ea
mov eax, dword [ecx]
jmp 0x4040ec
mov eax, ecx
xor edx, edx
push 0xffffffffffffffff
mov word [eax], dx
lea eax, [ebp - 0x70]
push edx
push eax
call fcn.00401920
sub esp, 0x18
mov byte [ebp - 4], 0xc
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 0x404132
mov eax, dword [ecx]
jmp 0x404134
mov eax, ecx
xor edx, edx
push 0xffffffffffffffff
mov word [eax], dx
lea eax, [ebp - 0x88]
push edx
push eax
call fcn.00401920
sub esp, 0x18
mov byte [ebp - 4], 0xd
mov ecx, esp
push ebx
call fcn.00401630
mov eax, dword [ebp + 8]
mov ecx, esi
push eax
mov byte [ebp - 4], 9
call fcn.00403610
cmp dword [ebp - 0xa4], 0x10
lea esi, [ebp - 0xb8]
mov eax, dword [0x62daf0]
cmovae esi, dword [ebp - 0xb8]
test eax, eax
jne 0x4041a2
push 0xdc
call fcn.0041ef70
add esp, 4
mov dword [ebp - 0xe0], eax
mov ecx, eax
call fcn.0040ebb0
mov dword [0x62daf0], eax
push 0
push esi
sub esp, 8
mov ecx, eax
call fcn.0040f7d0
mov esi, 1
jmp 0x4044a7
cmp dword [ebp + 0x28], 0
jne 0x4041d4
mov ecx, dword [ebp - 0xe4]
push 0x619730
call fcn.004017d0
jmp 0x4044a5
mov edi, dword [ebp - 0xe4]
cmp dword [edi + 0x10], 0
jne 0x40428d
mov eax, dword [ebp + 8]
test eax, eax
je 0x404231
add esi, 0x1c
cmp dword [esi + 0x14], 8
jb 0x4041f6
mov esi, dword [esi]
lea eax, [ebp - 0x28]
push esi
push eax
call fcn.00426e8d
add esp, 8
mov ecx, edi
push eax
call fcn.004045f0
lea ecx, [ebp - 0x28]
call fcn.00401590
cmp dword [ebp + 0x20], 8
lea eax, [ebp + 0xc]
cmovae eax, dword [ebp + 0xc]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00426c88
add esp, 8
mov byte [ebp - 4], 0xe
jmp 0x404275
add esi, 4
cmp dword [esi + 0x14], 8
jb 0x40423c
mov esi, dword [esi]
lea eax, [ebp - 0x28]
push esi
push eax
call fcn.00426e8d
add esp, 8
mov ecx, edi
push eax
call fcn.004045f0
lea ecx, [ebp - 0x28]
call fcn.00401590
cmp dword [ebp + 0x20], 8
lea eax, [ebp + 0xc]
cmovae eax, dword [ebp + 0xc]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00426c88
add esp, 8
mov byte [ebp - 4], 0xf
push 0xffffffffffffffff
push 0
push eax
mov ecx, edi
call fcn.00404a10
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 9
call fcn.00401590
call fcn.004276c8
test al, al
je 0x4042ac
push eax
pop edx
push ebp
pop edx
push ebp
pop ebx
push ecx
pop ebp
push ebp
push ebx
push edx
push esi
pop esi
push ecx
push ebx
push eax
mov ebx, dword [ebp - 0xdc]
cmp dword [edi + 0x14], 8
jb 0x4042b6
mov eax, dword [edi]
jmp 0x4042b8
mov eax, edi
push eax
call fcn.0042457f
add esp, 4
cmp dword [ebx + 0x14], 8
jb 0x4042cb
mov ecx, dword [ebx]
jmp 0x4042cd
mov ecx, ebx
mov esi, dword [ebp - 0xd8]
add esi, 0x64
cmp dword [esi + 0x14], 8
jb 0x4042e0
mov eax, dword [esi]
jmp 0x4042e2
mov eax, esi
push dword [ebx + 0x10]
push ecx
push dword [esi + 0x10]
push eax
call fcn.00402450
mov ecx, dword [ebp - 0xd8]
add esp, 0x10
push edi
test eax, eax
je 0x40431a
push 0
call fcn.00403940
test eax, eax
setne al
mov byte [ebp - 0xd1], al
test al, al
jne 0x40432a
mov ecx, dword [ebp - 0xd8]
push edi
push 1
call fcn.00403940
test eax, eax
setne byte [ebp - 0xd1]
cmp dword [edi + 0x14], 8
jb 0x404334
mov eax, dword [edi]
jmp 0x404336
mov eax, edi
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40447f
cmp byte [ebp - 0xd1], 0
je 0x40447f
cmp dword [ebp - 0xe8], 0
lea eax, [ebp - 0xb8]
jne 0x404365
push 2
jmp 0x404367
push 3
cmp dword [ebp - 0xa4], 0x10
cmovae eax, dword [ebp - 0xb8]
push eax
sub esp, 8
call fcn.00404be0
mov ecx, eax
call fcn.0040f7d0
cmp dword [ebp - 0x30], 0
jne 0x404433
lea eax, [ebp - 0xa0]
push ebx
push eax
call fcn.0042c61b
add esp, 8
mov byte [ebp - 4], 0x10
cmp dword [eax + 0x14], 0x10
jb 0x4043ab
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0042613f
add esp, 8
lea ecx, [ebp - 0x40]
push eax
call fcn.004045f0
lea ecx, [ebp - 0x28]
call fcn.00401590
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 9
call fcn.00404680
cmp dword [ebp - 0x30], 0
jne 0x404433
mov edx, esi
mov ecx, ebx
call fcn.00404c10
test al, al
je 0x404433
lea eax, [ebp - 0xa0]
push esi
push eax
call fcn.0042c61b
add esp, 8
mov ecx, eax
mov byte [ebp - 4], 0x11
call fcn.00404670
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0042613f
add esp, 8
lea ecx, [ebp - 0x40]
push eax
call fcn.004045f0
lea ecx, [ebp - 0x28]
call fcn.00401590
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 9
call fcn.00404680
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xe0], esp
push edi
call fcn.00401630
sub esp, 0x18
mov byte [ebp - 4], 0x12
lea eax, [ebp - 0x40]
mov dword [ebp - 0xe8], esp
mov ecx, esp
push eax
call fcn.00401630
sub esp, 0x18
mov byte [ebp - 4], 0x13
mov ecx, esp
push ebx
call fcn.00401630
push dword [ebp + 8]
mov ecx, dword [ebp - 0xd8]
mov byte [ebp - 4], 9
call fcn.00403610
jmp 0x4044a5
cmp dword [ebp - 0xa4], 0x10
lea eax, [ebp - 0xb8]
push 1
cmovae eax, dword [ebp - 0xb8]
push eax
sub esp, 8
call fcn.00404be0
mov ecx, eax
call fcn.0040f7d0
xor esi, esi
mov eax, dword [ebp - 0x2c]
cmp eax, 8
jb 0x4044bc
inc eax
lea ecx, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
call fcn.00401b30
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 0x4044eb
inc eax
lea ecx, [ebp - 0x88]
push eax
push dword [ebp - 0x88]
call fcn.00401b30
xor eax, eax
mov dword [ebp - 0x74], 7
lea ecx, [ebp - 0xb8]
mov dword [ebp - 0x78], 0
mov word [ebp - 0x88], ax
call fcn.00404680
mov eax, dword [ebp - 0x44]
cmp eax, 8
jb 0x404522
inc eax
lea ecx, [ebp - 0x58]
push eax
push dword [ebp - 0x58]
call fcn.00401b30
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 0x40454b
inc eax
lea ecx, [ebp - 0x70]
push eax
push dword [ebp - 0x70]
call fcn.00401b30
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 0x40457d
inc eax
lea ecx, [ebp - 0xd0]
push eax
push dword [ebp - 0xd0]
call fcn.00401b30
xor eax, eax
mov dword [ebp - 0xbc], 7
lea ecx, [ebp + 0xc]
mov dword [ebp - 0xc0], 0
mov word [ebp - 0xd0], ax
call fcn.00401590
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.0041eca9
mov esp, ebp
pop ebp
ret 0x24