Function at 0x403a20
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d8586
mov eax, dword fs:[0]
push eax
sub esp, 0xe0
mov eax, dword [0x66f33c]
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 - 0xe8], esi
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0xd8], eax
lea edi, [esi + 0x4c]
mov dword [ebp - 4], 0
lea eax, [ebp + 0xc]
mov dword [ebp - 0xe0], edi
cmp edi, eax
je 0x403a82
push 0xffffffffffffffff
push 0
push eax
mov ecx, edi
call fcn.00402ee0
lea ebx, [esi + 0x64]
cmp ebx, edi
je 0x403a95
push 0xffffffffffffffff
push 0
push edi
mov ecx, ebx
call fcn.00402ee0
lea eax, [ebp - 0x28]
push str.63615166036855371160304467461515
push eax
call fcn.00455dd8
mov esi, eax
lea eax, [ebp - 0x70]
mov byte [ebp - 4], 1
push str.95172403455928254459072330566821
push eax
call fcn.00455dd8
push esi
push eax
push ebx
mov byte [ebp - 4], 2
call fcn.0045a482
mov eax, dword [ebp - 0x5c]
add esp, 0x1c
cmp eax, 8
jb 0x403adb
inc eax
lea ecx, [ebp - 0x70]
push eax
push dword [ebp - 0x70]
call fcn.00403100
xor eax, eax
mov dword [ebp - 0x5c], 7
mov word [ebp - 0x70], ax
mov byte [ebp - 4], al
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x60], 0
cmp eax, 8
jb 0x403b07
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.00403100
call fcn.00454543
test al, al
je 0x403b29
pop ebx
pop eax
pop edi
push esi
push esp
pop ecx
pop ecx
pop edi
pop ebp
pop esi
pop eax
pop edi
push edx
push esp
pop esi
pop ebx
pop eax
push esi
push esp
mov edi, dword [ebp - 0xe0]
xor eax, eax
mov dword [ebp - 0xbc], 7
push eax
push 0x5e266c
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xc0], 0
mov word [ebp - 0xd0], ax
call fcn.00403000
xor eax, eax
mov byte [ebp - 4], 3
push eax
push 0x5e266c
lea ecx, [ebp - 0xb8]
mov dword [ebp - 0xa4], 7
mov dword [ebp - 0xa8], 0
mov word [ebp - 0xb8], ax
call fcn.00403000
cmp dword [edi + 0x14], 8
mov byte [ebp - 4], 4
jb 0x403b97
mov eax, dword [edi]
jmp 0x403b99
mov eax, edi
push eax
lea eax, [ebp - 0x88]
push eax
call fcn.004588b6
cmp dword [ebp - 0x74], 8
lea eax, [ebp - 0x88]
mov byte [ebp - 4], 5
cmovae eax, dword [ebp - 0x88]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.004587cb
add esp, 0x10
mov esi, eax
lea eax, [ebp - 0x88]
cmp eax, esi
je 0x403c12
mov eax, dword [ebp - 0x74]
cmp eax, 8
jb 0x403bef
inc eax
lea ecx, [ebp - 0x88]
push eax
push dword [ebp - 0x88]
call fcn.00403100
xor eax, eax
mov dword [ebp - 0x74], 7
push esi
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x78], 0
mov word [ebp - 0x88], ax
call fcn.00405110
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 5
cmp eax, 8
jb 0x403c2b
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.00403100
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.0045af6f
push 0
call fcn.0047f82c
mov dword [ebp - 0xe4], eax
add esp, 0xc
xor eax, eax
mov dword [ebp - 0x8c], 7
mov dword [ebp - 0x90], 0
mov word [ebp - 0xa0], ax
mov dword [ebp - 0x44], 7
mov dword [ebp - 0x48], eax
mov word [ebp - 0x58], ax
mov byte [ebp - 4], 9
mov dword [ebp - 0xdc], eax
call fcn.004547f5
test al, al
je 0x403c99
pop eax
push esp
pop eax
push esi
pop esi
push edx
push edi
push ebp
pop ecx
push ecx
push eax
push ebp
push ebx
push ecx
push eax
pop ebx
call fcn.004549d8
test al, al
je 0x403cb2
push ebx
pop edx
push esi
push edx
push esi
pop esp
push ecx
pop edx
pop ecx
pop ebx
push ebp
push esi
push ebx
pop ebp
push edx
pop edx
call fcn.00454657
test al, al
je 0x403cdf
pop esi
push esp
pop ecx
push esp
push ecx
pop esi
pop esi
pop eax
pop eax
push ebx
push edi
push edi
pop ebp
push ebx
push ecx
push esp
pop edi
pop ecx
push esi
pop edx
push ebp
pop ecx
push edx
pop edi
push eax
pop esi
pop ebx
pop edx
pop eax
pop esp
mov edi, dword [ebp - 0xe0]
lea eax, [ebp - 0xb8]
push eax
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0xa0]
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 0x403d1f
mov eax, dword [ecx]
jmp 0x403d21
mov eax, ecx
xor edx, edx
push 0xffffffffffffffff
push edx
push edi
mov word [eax], dx
call fcn.00402ee0
mov ebx, dword [ebp + 8]
mov esi, dword [ebp - 0xe8]
mov ecx, esi
push ebx
call fcn.00404610
test al, al
je 0x403eea
cmp dword [ebp - 0xbc], 8
lea eax, [ebp - 0xd0]
mov dword [ebp - 0xdc], 1
cmovae eax, dword [ebp - 0xd0]
push eax
call fcn.0047f759
add eax, dword [esi]
add esp, 4
cmp eax, dword [ebp - 0xe4]
jl 0x403d9e
mov eax, dword [ebp - 0xd8]
lea ecx, [ebp - 0xb8]
cmp eax, ecx
je 0x403ec2
push 0xffffffffffffffff
push 0
push ecx
mov ecx, eax
call fcn.00402ee0
jmp 0x403ec2
lea eax, [ebp - 0x70]
push edi
push eax
call fcn.0045af6f
add esp, 8
cmp dword [eax + 0x14], 0x10
mov byte [ebp - 4], 0xa
jb 0x403db7
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00454eb8
add esp, 8
lea ecx, [ebp - 0x58]
push eax
call fcn.00403950
lea ecx, [ebp - 0x28]
call fcn.00412280
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 9
call fcn.00403800
cmp dword [ebp - 0x48], 0
jne 0x403e3e
lea ebx, [esi + 0x64]
push ebx
push edi
call fcn.00403640
add esp, 8
test al, al
je 0x403e3b
lea eax, [ebp - 0x70]
push ebx
push eax
call fcn.0045af6f
add esp, 8
cmp dword [eax + 0x14], 0x10
mov byte [ebp - 4], 0xb
jb 0x403e11
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00454eb8
add esp, 8
lea ecx, [ebp - 0x58]
push eax
call fcn.00403950
lea ecx, [ebp - 0x28]
call fcn.00412280
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 9
call fcn.00403800
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.00403600
add esp, 8
test al, al
je 0x403eea
mov eax, dword [ebp - 0xd8]
lea ecx, [ebp - 0xb8]
cmp eax, ecx
je 0x403e75
push 0xffffffffffffffff
push 0
push ecx
mov ecx, eax
call fcn.00402ee0
sub esp, 0x18
lea eax, [ebp - 0xb8]
mov ecx, esp
mov dword [ebp - 0xec], esp
push eax
call fcn.00403710
sub esp, 0x18
mov byte [ebp - 4], 0xc
lea eax, [ebp - 0xa0]
mov dword [ebp - 0xe4], esp
mov ecx, esp
push eax
call fcn.00403710
sub esp, 0x18
mov byte [ebp - 4], 0xd
mov ecx, esp
push edi
call fcn.00403710
push ebx
mov ecx, esi
mov byte [ebp - 4], 9
call fcn.00404c90
cmp dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x40]
push 0
cmovae eax, dword [ebp - 0x40]
push eax
push 1
push 1
call fcn.00404c10
mov ecx, eax
call fcn.00410770
mov esi, 1
jmp 0x4041a8
cmp dword [ebp + 0x28], 0
jne 0x403f05
mov ecx, dword [ebp - 0xd8]
push 0x5e266c
call fcn.004039d0
jmp 0x4041a6
mov ebx, dword [ebp - 0xd8]
cmp dword [ebx + 0x10], 0
jne 0x403fbd
cmp dword [ebp + 8], 0
je 0x403f61
cmp dword [esi + 0x30], 8
lea eax, [esi + 0x1c]
jb 0x403f26
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00458c77
add esp, 8
mov ecx, ebx
push eax
call fcn.00403950
lea ecx, [ebp - 0x28]
call fcn.00412280
cmp dword [ebp + 0x20], 8
lea eax, [ebp + 0xc]
cmovae eax, dword [ebp + 0xc]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00458a7f
add esp, 8
mov byte [ebp - 4], 0xe
jmp 0x403fa5
cmp dword [esi + 0x18], 8
lea eax, [esi + 4]
jb 0x403f6c
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00458c77
add esp, 8
mov ecx, ebx
push eax
call fcn.00403950
lea ecx, [ebp - 0x28]
call fcn.00412280
cmp dword [ebp + 0x20], 8
lea eax, [ebp + 0xc]
cmovae eax, dword [ebp + 0xc]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00458a7f
add esp, 8
mov byte [ebp - 4], 0xf
push 0xffffffffffffffff
push 0
push eax
mov ecx, ebx
call fcn.00405180
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 9
call fcn.00412280
call fcn.0045483a
test al, al
je 0x403ff4
pop esi
pop ecx
pop ebp
pop ebp
pop ebp
pop edi
pop ecx
pop esp
pop ecx
pop edi
push ebx
pop ebx
pop esi
pop edx
push ecx
push edx
pop ebx
pop esp
pop edi
pop edi
pop eax
push esi
push ebx
push ebp
pop ebx
pop ebp
pop eax
pop eax
mov ebx, dword [ebp - 0xd8]
mov edi, dword [ebp - 0xe0]
mov esi, dword [ebp - 0xe8]
cmp dword [ebx + 0x14], 8
jb 0x403ffe
mov eax, dword [ebx]
jmp 0x404000
mov eax, ebx
push eax
call fcn.00456a9c
lea eax, [esi + 0x64]
push edi
push eax
call fcn.00403600
add esp, 0xc
mov ecx, esi
push ebx
test al, al
jne 0x404033
push 0
call fcn.00404280
test eax, eax
setne al
mov byte [ebp - 0xd1], al
test al, al
jne 0x404043
push ebx
mov ecx, esi
push 1
call fcn.00404280
test eax, eax
setne byte [ebp - 0xd1]
cmp dword [ebx + 0x14], 8
jb 0x40404d
mov eax, dword [ebx]
jmp 0x40404f
mov eax, ebx
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x404188
cmp byte [ebp - 0xd1], 0
je 0x404188
cmp dword [ebp - 0xdc], 0
lea eax, [ebp - 0x40]
jne 0x40407b
push 2
jmp 0x40407d
push 3
cmp dword [ebp - 0x2c], 0x10
cmovae eax, dword [ebp - 0x40]
push eax
push 1
push 1
call fcn.00404c10
mov ecx, eax
call fcn.00410770
cmp dword [ebp - 0x48], 0
jne 0x404140
lea eax, [ebp - 0x70]
push edi
push eax
call fcn.0045af6f
add esp, 8
cmp dword [eax + 0x14], 0x10
mov byte [ebp - 4], 0x10
jb 0x4040b9
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00454eb8
add esp, 8
lea ecx, [ebp - 0x58]
push eax
call fcn.00403950
lea ecx, [ebp - 0x28]
call fcn.00412280
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 9
call fcn.00403800
cmp dword [ebp - 0x48], 0
jne 0x404140
lea eax, [esi + 0x64]
push eax
push edi
call fcn.00403640
add esp, 8
test al, al
je 0x404140
lea eax, [esi + 0x64]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.0045af6f
add esp, 8
cmp dword [eax + 0x14], 0x10
mov byte [ebp - 4], 0x11
jb 0x404116
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00454eb8
add esp, 8
lea ecx, [ebp - 0x58]
push eax
call fcn.00403950
lea ecx, [ebp - 0x28]
call fcn.00412280
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 9
call fcn.00403800
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xec], esp
push ebx
call fcn.00403710
sub esp, 0x18
mov byte [ebp - 4], 0x12
lea eax, [ebp - 0x58]
mov dword [ebp - 0xe4], esp
mov ecx, esp
push eax
call fcn.00403710
sub esp, 0x18
mov byte [ebp - 4], 0x13
mov ecx, esp
push edi
call fcn.00403710
push dword [ebp + 8]
mov ecx, esi
mov byte [ebp - 4], 9
call fcn.00404c90
jmp 0x4041a6
cmp dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x40]
push 1
cmovae eax, dword [ebp - 0x40]
push eax
push 1
push 1
call fcn.00404c10
mov ecx, eax
call fcn.00410770
xor esi, esi
mov eax, dword [ebp - 0x44]
cmp eax, 8
jb 0x4041bd
inc eax
lea ecx, [ebp - 0x58]
push eax
push dword [ebp - 0x58]
call fcn.00403100
xor eax, eax
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x48], 0
cmp eax, 8
jb 0x4041ef
inc eax
lea ecx, [ebp - 0xa0]
push eax
push dword [ebp - 0xa0]
call fcn.00403100
xor eax, eax
mov dword [ebp - 0x8c], 7
mov word [ebp - 0xa0], ax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x90], 0
cmp eax, 0x10
jb 0x404221
inc eax
lea ecx, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
call fcn.004053c0
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x2c], 0xf
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x40], 0
call fcn.00412280
lea ecx, [ebp - 0xb8]
call fcn.00412280
lea ecx, [ebp - 0xd0]
call fcn.00412280
lea ecx, [ebp + 0xc]
call fcn.00412280
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.0045132d
mov esp, ebp
pop ebp
ret 0x24