Function at 0x402cd6
Capabilities:
Check if file exists

Disassembly:
push 0x98
mov eax, 0x4297d1
call fcn.0041132d
mov esi, ecx
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x40]
push eax
call fcn.004025d8
xor ebx, ebx
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x30], ebx
jne 0x402d11
lea eax, [esi + 0x70]
cmp dword [eax + 0x14], 8
jb 0x402d08
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x40]
call fcn.004025b1
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmovae eax, dword [ebp - 0x40]
push eax
call esi
test eax, eax
je 0x402f82
push ecx
lea edx, [ebp - 0x40]
lea ecx, [ebp - 0x88]
call fcn.004034ba
pop ecx
mov byte [ebp - 4], 1
lea eax, [ebp - 0x88]
cmp dword [ebp - 0x74], 8
cmovae eax, dword [ebp - 0x88]
push eax
call esi
test eax, eax
je 0x402d61
xor ebx, ebx
inc ebx
jmp 0x402f77
lea ecx, [ebp - 0x70]
call fcn.00405654
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x94], ebx
mov dword [ebp - 0x90], ebx
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x28]
xor eax, eax
mov dword [ebp - 0x18], ebx
push 0x43697c
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
call fcn.004025b1
mov byte [ebp - 4], 4
lea eax, [ebp - 0x70]
cmp dword [ebp - 0x5c], 8
lea ecx, [ebp - 0x58]
cmovae eax, dword [ebp - 0x70]
push eax
call fcn.004025d8
lea eax, [ebp - 0x98]
mov byte [ebp - 4], 5
push eax
lea edx, [ebp - 0x28]
lea ecx, [ebp - 0x58]
call fcn.004071f9
pop ecx
lea ecx, [ebp - 0x58]
call fcn.004025fd
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 3
call fcn.004025fd
mov esi, dword [ebp - 0x98]
mov dword [ebp - 0xa0], 0x18
jmp 0x402ec3
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x402dfe
mov eax, dword [esi]
push eax
lea ecx, [ebp - 0x58]
call fcn.004025d8
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
sub esp, 0x18
mov byte [ebp - 4], 7
mov ecx, esp
mov dword [ebp - 0x8c], esp
lea eax, [ebp - 0x58]
push eax
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
call fcn.0040264f
sub esp, 0x18
mov byte [ebp - 4], 8
mov ecx, esp
lea eax, [ebp - 0x40]
push eax
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
call fcn.0040264f
push ecx
xor edx, edx
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x1c]
call fcn.00405693
mov ecx, dword [ebp - 0x18]
add esp, 0x34
mov edi, dword [ebp - 0x1c]
mov eax, ecx
sub eax, edi
cdq
idiv dword [ebp - 0xa0]
test eax, eax
jne 0x402ed7
test edi, edi
je 0x402eb2
cmp edi, ecx
je 0x402e92
push 0x18
mov ebx, ecx
pop esi
mov ecx, edi
call fcn.004025fd
add edi, esi
cmp edi, ebx
jne 0x402e7a
mov edi, dword [ebp - 0x1c]
xor ebx, ebx
mov esi, dword [ebp - 0x9c]
mov eax, dword [ebp - 0x14]
sub eax, edi
push 0x18
pop ecx
cdq
idiv ecx
imul eax, eax, 0x18
push eax
push edi
call fcn.004021ab
pop ecx
pop ecx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 3
call fcn.004025fd
push 0x18
pop eax
add esi, eax
mov dword [ebp - 0x9c], esi
cmp esi, dword [ebp - 0x94]
jne 0x402df4
jmp 0x402f21
test edi, edi
je 0x402f16
cmp edi, ecx
je 0x402ef6
mov ebx, ecx
mov ecx, edi
call fcn.004025fd
push 0x18
pop eax
add edi, eax
cmp edi, ebx
jne 0x402ee1
mov edi, dword [ebp - 0x1c]
xor ebx, ebx
mov eax, dword [ebp - 0x14]
sub eax, edi
push 0x18
pop ecx
cdq
idiv ecx
imul eax, eax, 0x18
push eax
push edi
call fcn.004021ab
pop ecx
pop ecx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
lea ecx, [ebp - 0x58]
call fcn.004025fd
xor ebx, ebx
inc ebx
mov edi, dword [ebp - 0x98]
mov dword [ebp - 0x8c], ebx
test edi, edi
je 0x402f6f
mov esi, edi
cmp esi, dword [ebp - 0x94]
je 0x402f55
push 0x18
pop ebx
mov ecx, esi
call fcn.004025fd
add esi, ebx
cmp esi, dword [ebp - 0x94]
jne 0x402f3e
mov ebx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x90]
sub eax, edi
push 0x18
pop ecx
cdq
idiv ecx
imul eax, eax, 0x18
push eax
push edi
call fcn.004021ab
pop ecx
pop ecx
lea ecx, [ebp - 0x70]
call fcn.004025fd
lea ecx, [ebp - 0x88]
call fcn.004025fd
lea ecx, [ebp - 0x40]
call fcn.004025fd
mov eax, ebx
call fcn.004112d7
ret 4