Function at 0x418c49
Capabilities:
Check if file exists

Disassembly:
push 0x80
mov eax, 0x44916e
call fcn.00431dc6
cmp dword [esi + 0x20], 8
push 0xe
pop edi
mov dword [ebp - 0x70], edi
jb 0x418c69
mov eax, dword [esi + 0xc]
jmp 0x418c6c
lea eax, [esi + 0xc]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x418c7f
xor eax, eax
inc eax
jmp 0x418f12
xor ebx, ebx
cmp dword [esi + 0x80], ebx
je 0x418c91
push 4
pop eax
jmp 0x418f12
mov eax, dword [esi + 0xb8]
mov eax, dword [eax + 0x68]
cmp eax, ebx
mov dword [ebp - 0x78], eax
jne 0x418ca8
mov eax, edi
jmp 0x418f12
mov dword [ebp - 0x74], ebx
cmp dword [esi + 0x20], 8
jb 0x418cb6
mov eax, dword [esi + 0xc]
jmp 0x418cb9
lea eax, [esi + 0xc]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x418c77
push 0xf
pop edi
push ebx
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x14], edi
call fcn.00402b95
mov dword [ebp - 4], ebx
cmp dword [esi + 0x20], 8
jb 0x418ce1
mov eax, dword [esi + 0xc]
jmp 0x418ce4
lea eax, [esi + 0xc]
mov ecx, dword [esi + 0xb8]
mov dword [ebp - 0x68], eax
mov eax, dword [ecx]
call dword [eax + 0x90]
mov edx, dword [ebp - 0x68]
push eax
lea ecx, [ebp - 0x2c]
call fcn.00418647
pop ecx
push ebx
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x30], edi
call fcn.00402b95
mov byte [ebp - 4], 1
cmp dword [esi + 0x58], 8
jb 0x418d1d
mov eax, dword [esi + 0x44]
jmp 0x418d20
lea eax, [esi + 0x44]
mov ecx, dword [esi + 0xb8]
mov dword [ebp - 0x68], eax
mov eax, dword [ecx]
call dword [eax + 0x90]
mov edx, dword [ebp - 0x68]
push eax
lea ecx, [ebp - 0x48]
call fcn.00418647
pop ecx
push ebx
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x4c], edi
call fcn.00402b95
mov byte [ebp - 4], 2
cmp dword [esi + 0x3c], 8
jb 0x418d59
mov edi, dword [esi + 0x28]
jmp 0x418d5c
lea edi, [esi + 0x28]
mov ecx, dword [esi + 0xb8]
mov eax, dword [ecx]
call dword [eax + 0x90]
push eax
lea ecx, [ebp - 0x64]
mov edx, edi
call fcn.00418647
cmp dword [ebp - 0x4c], 0x10
mov eax, dword [ebp - 0x60]
pop ecx
mov dword [ebp - 0x68], 1
jae 0x418d89
lea eax, [ebp - 0x60]
cmp dword [ebp - 0x30], 0x10
mov ecx, dword [ebp - 0x44]
jae 0x418d95
lea ecx, [ebp - 0x44]
cmp dword [ebp - 0x14], 0x10
mov dword [ebp - 0x6c], ecx
mov ecx, dword [ebp - 0x28]
jae 0x418da4
lea ecx, [ebp - 0x28]
lea edi, [esi + 0x7c]
push edi
push eax
push dword [ebp - 0x6c]
mov dword [ebp - 0x8c], ecx
mov ecx, dword [ebp - 0x78]
push dword [ebp - 0x8c]
mov edx, dword [ecx]
call dword [edx + 4]
cmp eax, ebx
jne 0x418ea7
jmp 0x418e20
lea eax, [esi + 0x90]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebp - 0x88]
mov dword [esi + 0x68], eax
mov eax, dword [ebp - 0x84]
mov dword [esi + 0x6c], eax
mov eax, dword [ebp - 0x80]
mov dword [esi + 0x70], eax
mov eax, dword [ebp - 0x7c]
mov dword [esi + 0x74], eax
lea eax, [esi + 0x90]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp dword [ebp - 0x6c], 1
je 0x418e58
cmp dword [ebp - 0x6c], 2
je 0x418e83
push 0xa
push dword [esi + 0x84]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x418e8c
mov ecx, dword [ebp - 0x78]
mov eax, dword [ecx]
lea edx, [ebp - 0x80]
push edx
lea edx, [ebp - 0x88]
push edx
lea edx, [ebp - 0x6c]
push edx
push dword [edi]
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x88], ebx
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x7c], ebx
call dword [eax + 0xc]
cmp eax, ebx
je 0x418dca
jmp 0x418e96
cmp dword [esi + 0x20], 8
jb 0x418e63
mov eax, dword [esi + 0xc]
jmp 0x418e66
lea eax, [esi + 0xc]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x418e7a
mov dword [ebp - 0x70], 1
jmp 0x418e93
mov dword [ebp - 0x70], 0xb
jmp 0x418e96
mov dword [ebp - 0x70], 0xd
jmp 0x418e96
mov dword [ebp - 0x70], 4
mov dword [ebp - 0x68], ebx
mov ecx, dword [ebp - 0x78]
push dword [edi]
mov eax, dword [ecx]
call dword [eax + 8]
cmp dword [ebp - 0x68], ebx
mov dword [edi], ebx
je 0x418edb
inc dword [ebp - 0x74]
push ebx
push 1
lea ecx, [ebp - 0x64]
call fcn.00402b4a
push ebx
push 1
lea ecx, [ebp - 0x48]
call fcn.00402b4a
or dword [ebp - 4], 0xffffffff
push ebx
push 1
lea ecx, [ebp - 0x2c]
call fcn.00402b4a
cmp dword [ebp - 0x74], 5
jl 0x418cab
jmp 0x418efc
push ebx
push 1
lea ecx, [ebp - 0x64]
call fcn.00402b4a
push ebx
push 1
lea ecx, [ebp - 0x48]
call fcn.00402b4a
push ebx
push 1
lea ecx, [ebp - 0x2c]
call fcn.00402b4a
cmp dword [ebp - 0x74], 5
jl 0x418f0f
cmp dword [ebp - 0x70], 0xe
jne 0x418f0f
mov dword [ebp - 0x70], 0xc
mov eax, dword [ebp - 0x70]
call fcn.00431e49
ret