Function at 0x40a655
Capabilities:
Check if file exists

Disassembly:
sub esp, 0x21c
and dword [esp + 0x14], 0
push ebx
push ebp
lea eax, [esp + 0x1c]
push esi
mov dword [esp + 0x24], ecx
push eax
mov dword [esp + 0x20], 1
xor bl, bl
call fcn.00409e3c
test al, al
pop ecx
je 0x40a682
inc bl
push edi
mov byte [esp + 0x13], 1
call fcn.0040acd4
test al, al
mov ebp, 0x2710
je 0x40a79d
test bl, bl
mov esi, 0x186a0
je 0x40a75a
call fcn.00402ce2
mov ecx, eax
call fcn.004031df
mov ecx, eax
mov eax, dword [0x41754c]
cdq
mov edi, 0xf4240
mov bl, 1
idiv edi
mov edi, esi
mov eax, edx
cdq
idiv edi
cmp eax, 1
jne 0x40a75a
imul ecx, ecx, 0x15180
cmp dword [esp + 0x24], ecx
jle 0x40a75a
push dword [0x41c5cc]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40a75a
and word [esp + 0x2c], 0
push 0x7f
pop ecx
xor eax, eax
lea edi, [esp + 0x2e]
push 0x100
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [esp + 0x30]
push eax
push dword [0x41c5cc]
call fcn.0040bf6f
add esp, 0xc
test eax, eax
je 0x40a75a
lea eax, [esp + 0x18]
push eax
call fcn.00402ce2
mov ecx, eax
call fcn.004031f5
push dword [esp + 0x18]
lea eax, [esp + 0x30]
push eax
call fcn.00409c62
pop ecx
test eax, eax
pop ecx
jg 0x40a74d
xor bl, bl
mov byte [0x41c5e1], 1
lea ecx, [esp + 0x18]
call fcn.00403948
test bl, bl
je 0x40a75f
and byte [esp + 0x13], 0
push 0
call fcn.0040c404
mov ecx, eax
call fcn.0040c469
mov eax, dword [0x41754c]
mov ecx, ebp
cdq
idiv esi
mov eax, edx
cdq
idiv ecx
cmp eax, 1
jne 0x40a793
call fcn.0040adb8
test al, al
je 0x40a793
mov byte [0x41c5e0], 1
jmp 0x40a79d
mov dword [0x417548], 0xe
push 0
call dword [sym.imp.MSVCRT.dll_time]
and byte [esp + 0x20], 0
mov dword [esp + 0x1c], eax
mov eax, dword [0x4162cc]
mov dword [esp], str.time
mov dword [esp + 0x18], eax
lea eax, [esp + 0x18]
push eax
call fcn.00402ce2
mov ecx, eax
call fcn.00403269
call fcn.00402ce2
cmp byte [eax + 0x34], 0
jne 0x40a7e1
mov eax, 0x697800
jmp 0x40a819
mov eax, dword [esp + 0x14]
cmp dword [eax - 8], 0
jne 0x40a808
mov esi, 0x417388
mov eax, esi
test eax, eax
je 0x40a7fd
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push esi
push eax
lea ecx, [esp + 0x1c]
call fcn.004039b5
push dword [esp + 0x14]
call dword [sym.imp.MSVCRT.dll__wtol]
imul eax, eax, 0x15180
pop ecx
mov edi, dword [esp + 0x28]
push eax
mov ecx, edi
call fcn.00409f1c
push 9
test al, al
pop ebx
jne 0x40a855
and byte [esp + 0x13], al
cmp byte [0x41c5e1], al
je 0x40a83e
and byte [0x41c5e1], al
push ebx
mov dword [0x417548], 6
call fcn.0040c396
mov ecx, eax
call fcn.0040c706
cmp dword [0x41754c], 0
jne 0x40a86a
and byte [esp + 0x13], 0
and dword [0x417548], 0
call fcn.00409f59
push 7
test al, al
pop esi
jne 0x40a891
and byte [esp + 0x13], al
push esi
call fcn.0040c396
mov ecx, eax
call fcn.0040c706
mov dword [0x417548], 5
push 0
push 0x1e000000
call fcn.00409fb1
pop ecx
test al, al
pop ecx
jne 0x40a8be
and byte [esp + 0x13], al
push esi
call fcn.0040c396
mov ecx, eax
call fcn.0040c706
mov dword [0x417548], 4
mov ecx, edi
call fcn.0040b53b
test eax, eax
je 0x40a8e1
and byte [esp + 0x13], 0
push esi
mov dword [0x417548], ebx
call fcn.0040c396
mov ecx, eax
call fcn.0040c706
push 0
push 0x19000000
mov ecx, edi
call fcn.0040b496
test eax, eax
je 0x40a90f
and byte [esp + 0x13], 0
push esi
call fcn.0040c396
mov ecx, eax
call fcn.0040c706
mov dword [0x417548], 3
push str.2.2.0.1003
call fcn.00409ff6
test al, al
pop ecx
je 0x40a92d
and byte [esp + 0x13], 0
mov dword [0x417548], 8
call fcn.0040b039
test eax, eax
je 0x40a93b
and byte [esp + 0x13], 0
call fcn.00404057
test eax, eax
je 0x40a949
and byte [esp + 0x13], 0
mov ecx, edi
call fcn.0040a1de
mov eax, dword [0x41c5dc]
pop edi
cmp eax, 0xb
jg 0x40aa2b
je 0x40aa17
dec eax
cmp eax, ebx
ja case.0x40a96e.7
jmp dword [eax*4 + 0x40aae8]
mov ecx, dword [0x41754c]
mov esi, 0x3e8
mov eax, ecx
cdq
idiv ebp
mov eax, edx
cdq
idiv esi
cmp eax, 1
je case.0x40a96e.7
mov eax, ecx
mov ecx, 0x989680
cdq
idiv ecx
mov ecx, 0xf4240
mov eax, edx
cdq
idiv ecx
cmp eax, 1
jne 0x40aa96
call fcn.0040b662
test al, al
jmp 0x40aa94
cmp byte [0x41c5e1], 0
je 0x40aaa2
and byte [0x41c5e1], 0
jmp 0x40aaa2
mov ecx, dword [0x41754c]
mov esi, 0x3e8
mov eax, ecx
cdq
idiv ebp
mov eax, edx
cdq
idiv esi
cmp eax, 1
je case.0x40a96e.7
mov eax, ecx
mov ecx, 0x989680
cdq
idiv ecx
mov ecx, 0xf4240
mov eax, edx
cdq
idiv ecx
cmp eax, 1
jne 0x40aa96
call fcn.0040b662
jmp 0x40a9b5
mov eax, dword [0x41754c]
mov ecx, 0x3e8
cdq
idiv ecx
push 0x64
mov eax, edx
cdq
jmp 0x40aa8e
cmp eax, 0x10
jg 0x40aa5f
je 0x40aa4f
sub eax, 0xc
je 0x40aaa2
dec eax
je 0x40aa42
dec eax
je case.0x40a96e.2
dec eax
je 0x40aaa2
jmp case.0x40a96e.7
mov eax, dword [0x41754c]
mov ecx, 0x989680
cdq
jmp 0x40aa8f
mov eax, dword [0x41754c]
push 0xa
cdq
pop ecx
idiv ecx
cmp edx, 1
jmp 0x40aa94
sub eax, 0x11
je 0x40aa96
dec eax
je 0x40aa7e
sub eax, 0xe
jne case.0x40a96e.7
mov eax, dword [0x41754c]
mov ecx, 0x3e8
cdq
idiv ebp
mov eax, edx
cdq
jmp 0x40aa8f
mov eax, dword [0x41754c]
push 0x64
cdq
pop ecx
idiv ecx
push 0xa
mov eax, edx
cdq
pop ecx
idiv ecx
cmp eax, 1
je case.0x40a96e.7
and byte [esp + 0xf], 0
cmp byte [esp + 0xf], 0
jne 0x40aabb
cmp byte [0x41c5e0], 0
jne 0x40aabb
cmp byte [0x41c5e1], 0
jne 0x40aabb
and dword [esp + 0x1c], 0
jmp 0x40aac0
mov byte [esp + 0x18], 1
lea ecx, [esp + 0x10]
call fcn.00403948
cmp byte [esp + 0x18], 0
pop esi
pop ebp
pop ebx
je 0x40aadd
push dword [esp + 8]
call fcn.0040abf6
pop ecx
mov eax, dword [esp + 0x10]
add esp, 0x21c
ret