Function at 0x403a30
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push ecx
push ebx
push esi
push edi
mov esi, ecx
call fcn.00403560
mov ebx, dword [sym.imp.USER32.dll_MessageBoxW]
test eax, eax
je 0x403a87
push 1
push 0x488138
push 0x488140
push 0
call ebx
cmp eax, 1
jne 0x403a78
call fcn.00403630
test eax, eax
jne 0x403a87
push 1
push 0x488164
push 0x48816c
push eax
call ebx
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [esi + 0x20]
lea edi, [esi + 0x38]
cmp edi, eax
je 0x403aa6
cmp dword [eax + 0x14], 8
mov ecx, eax
jb 0x403a9b
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
mov ecx, edi
call fcn.00407ef0
cmp dword [edi + 0x14], 8
mov eax, edi
jb 0x403ab0
mov eax, dword [edi]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x403acc
cmp dword [edi + 0x14], 8
jb 0x403ac3
mov edi, dword [edi]
push edi
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
mov ecx, esi
call fcn.00403d50
test eax, eax
jne 0x403d39
mov dword [esi], 1
call fcn.00405470
call fcn.00405560
call fcn.0044f10c
cdq
lea edi, [esi + 0xc]
mov ecx, 0xa
idiv ecx
push str.processprogress
push dword [edi]
add edx, 0x19
mov dword [esp + 0x14], edx
call fcn.00415ef0
mov ebx, eax
mov edx, 0x64
test ebx, ebx
je 0x403b3f
mov eax, dword [esp + 0xc]
cmp eax, edx
mov ecx, dword [ebx]
cmovg eax, edx
push eax
push ebx
call dword [ecx + 0x194]
mov eax, dword [ebx]
push 1
push ebx
call dword [eax + 0xb0]
push 0
push ebx
call fcn.00417690
push str.processword
push dword [edi]
call fcn.00415ef0
mov ecx, esi
call fcn.004050f0
call fcn.0044f10c
cdq
mov ecx, 0xa
idiv ecx
push str.processprogress
push dword [edi]
add edx, 0x32
mov dword [esp + 0x14], edx
call fcn.00415ef0
mov ebx, eax
test ebx, ebx
je 0x403ba4
mov eax, dword [esp + 0xc]
mov edx, 0x64
mov ecx, dword [ebx]
cmp eax, 0x64
cmovg eax, edx
push eax
push ebx
call dword [ecx + 0x194]
mov eax, dword [ebx]
push 1
push ebx
call dword [eax + 0xb0]
push 0
push ebx
call fcn.00417690
push str.processword
push dword [edi]
call fcn.00415ef0
cmp dword [esi + 0x14], 0
je 0x403bfe
push 0x487e78
push 0x486de0
push str.XXPic.exe
push 0x10
mov ecx, esi
call fcn.00403370
push 0x487e78
push 0x487ea0
push str.XXPic.exe
push 0x17
mov ecx, esi
call fcn.00403370
push 0x487eb0
push 0x487ea0
push str.UnInstall.exe
push 0x17
mov ecx, esi
call fcn.00403370
call fcn.0044f10c
cdq
mov ecx, 0xa
idiv ecx
push str.processprogress
push dword [edi]
add edx, 0x3c
mov dword [esp + 0x14], edx
call fcn.00415ef0
mov ebx, eax
test ebx, ebx
je 0x403c50
mov eax, dword [esp + 0xc]
mov edx, 0x64
mov ecx, dword [ebx]
cmp eax, 0x64
cmovg eax, edx
push eax
push ebx
call dword [ecx + 0x194]
mov eax, dword [ebx]
push 1
push ebx
call dword [eax + 0xb0]
push 0
push ebx
call fcn.00417690
push str.processword
push dword [edi]
call fcn.00415ef0
mov ecx, esi
call fcn.00402f30
call fcn.0044f10c
cdq
mov ecx, 0xa
idiv ecx
push str.processprogress
push dword [edi]
add edx, 0x46
mov dword [esp + 0x14], edx
call fcn.00415ef0
mov ebx, eax
test ebx, ebx
je 0x403cb5
mov eax, dword [esp + 0xc]
mov edx, 0x64
mov ecx, dword [ebx]
cmp eax, 0x64
cmovg eax, edx
push eax
push ebx
call dword [ecx + 0x194]
mov eax, dword [ebx]
push 1
push ebx
call dword [eax + 0xb0]
push 0
push ebx
call fcn.00417690
push str.processword
push dword [edi]
call fcn.00415ef0
cmp dword [esi + 0x18], 0
je 0x403cd5
mov ecx, esi
call fcn.00402af0
mov ecx, esi
call fcn.00402c50
call fcn.0044f10c
cdq
mov ecx, 0xa
idiv ecx
push str.processprogress
push dword [edi]
lea ebx, [edx + 0x5a]
call fcn.00415ef0
mov esi, eax
test esi, esi
je 0x403d1f
mov ecx, dword [esi]
cmp ebx, 0x64
mov eax, 0x64
cmovg ebx, eax
push ebx
push esi
call dword [ecx + 0x194]
mov eax, dword [esi]
push 1
push esi
call dword [eax + 0xb0]
push 0
push esi
call fcn.00417690
push str.processword
push dword [edi]
call fcn.00415ef0
mov ecx, edi
call fcn.0040b250
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0
push 0x488164
push 0x488194
push 0
call ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret