Function at 0x406ef0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5cac2c
mov eax, dword fs:[0]
push eax
sub esp, 0xdc
mov eax, dword [0x664340]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, ecx
mov dword [ebp - 0xd8], eax
mov edi, dword [ebp + 0x24]
lea esi, [eax + 0x4c]
mov dword [ebp - 4], 0
lea ecx, [ebp + 0xc]
cmp esi, ecx
je 0x406f54
cmp dword [ebp + 0x20], 8
mov eax, ecx
push dword [ebp + 0x1c]
cmovae eax, dword [ebp + 0xc]
mov ecx, esi
push eax
call fcn.00403240
mov eax, dword [ebp - 0xd8]
add eax, 0x64
mov dword [ebp - 0xdc], eax
cmp eax, esi
je 0x406f76
cmp dword [esi + 0x14], 8
mov ecx, esi
jb 0x406f6b
mov ecx, dword [esi]
push dword [esi + 0x10]
push ecx
mov ecx, eax
call fcn.00403240
lea eax, [ebp - 0xb8]
push str.47481748036855201160381067062929
push eax
call fcn.00457c01
mov esi, eax
lea eax, [ebp - 0xa0]
mov byte [ebp - 4], 1
push str.76071360046657391266672769480521
push eax
call fcn.00457c01
push esi
push eax
push dword [ebp - 0xdc]
mov byte [ebp - 4], 2
call fcn.00455b97
mov edx, dword [ebp - 0x8c]
add esp, 0x1c
mov byte [ebp - 4], 1
cmp edx, 8
jb 0x406ff6
mov ecx, dword [ebp - 0xa0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x406fec
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4078a2
push edx
push ecx
call fcn.0044a315
add esp, 8
mov edx, dword [ebp - 0xa4]
xor eax, eax
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 7
mov word [ebp - 0xa0], ax
mov byte [ebp - 4], al
cmp edx, 8
jb 0x407056
mov ecx, dword [ebp - 0xb8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40704c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4078a7
push edx
push ecx
call fcn.0044a315
add esp, 8
xor eax, eax
mov dword [ebp - 0xc0], 0
push eax
push 0x6568a4
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xbc], 7
mov word [ebp - 0xd0], ax
call fcn.00403240
xor eax, eax
mov byte [ebp - 4], 3
push eax
push 0x6568a4
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
call fcn.00403240
mov esi, dword [ebp - 0xd8]
add esi, 0x4c
mov byte [ebp - 4], 4
mov eax, esi
cmp dword [esi + 0x14], 8
jb 0x4070c1
mov eax, dword [esi]
push eax
lea eax, [ebp - 0x88]
push eax
call fcn.0045903d
cmp dword [ebp - 0x74], 8
lea eax, [ebp - 0x88]
mov byte [ebp - 4], 5
cmovae eax, dword [ebp - 0x88]
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.00458fb8
lea ecx, [ebp - 0x88]
mov dword [ebp - 0xe0], eax
add esp, 0x10
cmp ecx, eax
je 0x407135
call fcn.00402fe0
mov eax, dword [ebp - 0xe0]
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x88], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x78], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov edx, dword [ebp - 0xa4]
cmp edx, 8
jb 0x407175
mov ecx, dword [ebp - 0xb8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40716b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4078ac
push edx
push ecx
call fcn.0044a315
add esp, 8
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.00456304
push 0
call fcn.00474f26
mov dword [ebp - 0xe4], eax
add esp, 0xc
xor eax, eax
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 7
mov word [ebp - 0xa0], ax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
mov dword [ebp - 0xe0], eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0xd0]
mov byte [ebp - 4], 8
push eax
lea eax, [ebp - 0xa0]
push eax
sub esp, 0x18
mov ecx, esp
push esi
call fcn.00403ce0
push dword [ebp + 8]
mov ecx, dword [ebp - 0xd8]
call fcn.00407ca0
test al, al
je 0x4073e8
cmp dword [ebp - 0xbc], 8
lea eax, [ebp - 0xd0]
mov dword [ebp - 0xe0], 1
cmovae eax, dword [ebp - 0xd0]
push eax
call fcn.00474e53
mov ecx, dword [ebp - 0xd8]
add esp, 4
add eax, dword [ecx]
cmp eax, dword [ebp - 0xe4]
jl 0x407257
lea eax, [ebp - 0x28]
cmp edi, eax
je 0x4073c0
cmp dword [ebp - 0x14], 8
mov ecx, edi
push dword [ebp - 0x18]
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.00403240
jmp 0x4073c0
lea eax, [ebp - 0x70]
push esi
push eax
call fcn.00456304
add esp, 8
cmp dword [eax + 0x14], 0x10
mov byte [ebp - 4], 9
jb 0x407270
mov eax, dword [eax]
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.00457170
lea ecx, [ebp - 0x58]
mov dword [ebp - 0xe4], eax
add esp, 8
cmp ecx, eax
je 0x4072bc
call fcn.00402fe0
mov eax, dword [ebp - 0xe4]
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x58], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
movq qword [ebp - 0x48], xmm0
mov word [eax], cx
lea ecx, [ebp - 0xb8]
call fcn.00402fe0
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 8
call fcn.00403100
cmp dword [ebp - 0x48], 0
jne 0x40733a
push dword [ebp - 0xdc]
push esi
call fcn.00406c30
add esp, 8
test al, al
jne 0x40733a
push dword [ebp - 0xdc]
lea eax, [ebp - 0xb8]
push eax
call fcn.00456304
add esp, 8
cmp dword [eax + 0x14], 0x10
mov byte [ebp - 4], 0xa
jb 0x40730d
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.00457170
add esp, 8
lea ecx, [ebp - 0x58]
push eax
call fcn.00406eb0
lea ecx, [ebp - 0x70]
call fcn.00402fe0
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 8
call fcn.00403100
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.00406c30
add esp, 8
test al, al
je 0x4073e8
lea eax, [ebp - 0x28]
cmp edi, eax
je 0x40736f
cmp dword [ebp - 0x14], 8
mov ecx, edi
push dword [ebp - 0x18]
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.00403240
sub esp, 0x18
lea eax, [ebp - 0x28]
mov ecx, esp
mov dword [ebp - 0xe8], esp
push eax
call fcn.00403ce0
sub esp, 0x18
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0xa0]
mov dword [ebp - 0xe4], esp
mov ecx, esp
push eax
call fcn.00403ce0
sub esp, 0x18
mov byte [ebp - 4], 0xc
mov ecx, esp
push esi
call fcn.00403ce0
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xd8]
push eax
mov byte [ebp - 4], 8
call fcn.00408250
cmp dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x40]
push 0
cmovae eax, dword [ebp - 0x40]
push eax
push 1
push 1
call fcn.004081d0
mov ecx, eax
call fcn.00411cb0
mov esi, 1
jmp 0x40768e
cmp dword [ebp + 0x28], 0
jne 0x407401
push 0
push 0x6568a4
mov ecx, edi
call fcn.00403240
jmp 0x40768c
cmp dword [edi + 0x10], 0
jne 0x4074c2
cmp dword [ebp + 8], 0
mov eax, dword [ebp - 0xd8]
je 0x40745d
add eax, 0x1c
cmp dword [eax + 0x14], 8
jb 0x407422
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.0045923f
add esp, 8
mov ecx, edi
push eax
call fcn.00406eb0
lea ecx, [ebp - 0x70]
call fcn.00402fe0
cmp dword [ebp + 0x20], 8
lea eax, [ebp + 0xc]
cmovae eax, dword [ebp + 0xc]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.00459125
add esp, 8
mov byte [ebp - 4], 0xd
jmp 0x4074a1
add eax, 4
cmp dword [eax + 0x14], 8
jb 0x407468
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.0045923f
add esp, 8
mov ecx, edi
push eax
call fcn.00406eb0
lea ecx, [ebp - 0x70]
call fcn.00402fe0
cmp dword [ebp + 0x20], 8
lea eax, [ebp + 0xc]
cmovae eax, dword [ebp + 0xc]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.00459125
add esp, 8
mov byte [ebp - 4], 0xe
cmp dword [eax + 0x14], 8
mov ecx, eax
jb 0x4074ab
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
mov ecx, edi
call fcn.004058f0
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 8
call fcn.00402fe0
cmp dword [edi + 0x14], 8
mov eax, edi
jb 0x4074cc
mov eax, dword [edi]
push eax
call fcn.004581fd
push esi
push dword [ebp - 0xdc]
call fcn.00406c30
mov ecx, dword [ebp - 0xd8]
add esp, 0xc
push edi
test al, al
jne 0x407507
push 0
call fcn.004078e0
test eax, eax
setne byte [ebp - 0xd1]
test eax, eax
jne 0x407517
mov ecx, dword [ebp - 0xd8]
push edi
push 1
call fcn.004078e0
test eax, eax
setne byte [ebp - 0xd1]
cmp dword [edi + 0x14], 8
mov eax, edi
jb 0x407521
mov eax, dword [edi]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40766e
cmp byte [ebp - 0xd1], 0
je 0x40766e
cmp dword [ebp - 0xe0], 0
lea eax, [ebp - 0x40]
jne 0x40754d
push 2
jmp 0x40754f
push 3
cmp dword [ebp - 0x2c], 0x10
cmovae eax, dword [ebp - 0x40]
push eax
push 1
push 1
call fcn.004081d0
mov ecx, eax
call fcn.00411cb0
cmp dword [ebp - 0x48], 0
jne 0x407622
lea eax, [ebp - 0xb8]
push esi
push eax
call fcn.00456304
add esp, 8
cmp dword [eax + 0x14], 0x10
mov byte [ebp - 4], 0xf
jb 0x40758e
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.00457170
add esp, 8
lea ecx, [ebp - 0x58]
push eax
call fcn.00406eb0
lea ecx, [ebp - 0x70]
call fcn.00402fe0
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 8
call fcn.00403100
cmp dword [ebp - 0x48], 0
jne 0x407622
push dword [ebp - 0xdc]
push esi
call fcn.00406c30
add esp, 8
test al, al
jne 0x407622
push dword [ebp - 0xdc]
lea eax, [ebp - 0xb8]
push eax
call fcn.00456304
add esp, 8
cmp dword [eax + 0x14], 0x10
mov byte [ebp - 4], 0x10
jb 0x4075f5
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.00457170
add esp, 8
lea ecx, [ebp - 0x58]
push eax
call fcn.00406eb0
lea ecx, [ebp - 0x70]
call fcn.00402fe0
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 8
call fcn.00403100
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xe8], esp
push edi
call fcn.00403ce0
sub esp, 0x18
mov byte [ebp - 4], 0x11
lea eax, [ebp - 0x58]
mov dword [ebp - 0xe4], esp
mov ecx, esp
push eax
call fcn.00403ce0
sub esp, 0x18
mov byte [ebp - 4], 0x12
mov ecx, esp
push esi
call fcn.00403ce0
push dword [ebp + 8]
mov ecx, dword [ebp - 0xd8]
mov byte [ebp - 4], 8
call fcn.00408250
jmp 0x40768c
cmp dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x40]
push 1
cmovae eax, dword [ebp - 0x40]
push eax
push 1
push 1
call fcn.004081d0
mov ecx, eax
call fcn.00411cb0
xor esi, esi
mov edx, dword [ebp - 0x44]
cmp edx, 8
jb 0x4076c8
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4076be
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4078b1
push edx
push ecx
call fcn.0044a315
add esp, 8
mov edx, dword [ebp - 0x8c]
cmp edx, 8
jb 0x407708
mov ecx, dword [ebp - 0xa0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4076fe
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4078b6
push edx
push ecx
call fcn.0044a315
add esp, 8
mov edx, dword [ebp - 0x2c]
cmp edx, 0x10
jb 0x40773c
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407732
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4078bb
push edx
push ecx
call fcn.0044a315
add esp, 8
mov edx, dword [ebp - 0x74]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
cmp edx, 8
jb 0x40778b
mov ecx, dword [ebp - 0x88]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x407781
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4078c0
push edx
push ecx
call fcn.0044a315
add esp, 8
mov edx, dword [ebp - 0x14]
xor eax, eax
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 7
mov word [ebp - 0x88], ax
cmp edx, 8
jb 0x4077dc
mov ecx, dword [ebp - 0x28]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4077d2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4078c5
push edx
push ecx
call fcn.0044a315
add esp, 8
mov edx, dword [ebp - 0xbc]
xor eax, eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
cmp edx, 8
jb 0x407830
mov ecx, dword [ebp - 0xd0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x407826
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4078ca
push edx
push ecx
call fcn.0044a315
add esp, 8
mov edx, dword [ebp + 0x20]
xor eax, eax
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xbc], 7
mov word [ebp - 0xd0], ax
cmp edx, 8
jb 0x407883
mov ecx, dword [ebp + 0xc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x407879
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4078cf
push edx
push ecx
call fcn.0044a315
add esp, 8
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0044a851
mov esp, ebp
pop ebp
ret 0x24
call fcn.00470179
call fcn.00470179
call fcn.00470179
call fcn.00470179
call fcn.00470179
call fcn.00470179
call fcn.00470179
call fcn.00470179
call fcn.00470179
call fcn.00470179
int3