Function at 0x4092b0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47c161
mov eax, dword fs:[0]
push eax
sub esp, 0x454
mov eax, dword [0x4be5b4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x43c], eax
mov eax, dword [ebp + 0x10]
push 0x210
mov ebx, dword [edi + 4]
mov dword [ebp - 0x444], eax
lea eax, [ebp - 0x220]
push 0
push eax
mov dword [ebp - 0x454], edi
mov dword [ebp - 0x438], ebx
call fcn.00432c40
add esp, 0xc
lea eax, [edi + 0xc]
mov dword [ebp - 0x448], eax
push str.LDSGameMasterFull.7z
push dword [eax]
lea eax, [ebp - 0x220]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [ebp - 0x220]
push eax
push 0x4852ec
call fcn.0044e890
add esp, 8
mov esi, 1
call fcn.0040e140
xor ecx, ecx
test eax, eax
lea eax, [ebp - 0x220]
push eax
cmovne esi, ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40937e
lea eax, [ebp - 0x220]
push eax
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
neg eax
sbb eax, eax
and esi, eax
mov eax, dword [0x4c24d4]
cmp eax, 1
jne 0x40938c
xor esi, esi
jmp 0x409394
xor ecx, ecx
cmp eax, 3
cmove esi, ecx
mov ecx, str.FALSE
test esi, esi
mov eax, str.TRUE
cmove eax, ecx
push eax
push 0x48531c
call fcn.0044e890
add esp, 8
xorps xmm0, xmm0
movlpd qword [ebp - 0x45c], xmm0
test esi, esi
je 0x4093db
push 0x48533c
call fcn.0044e890
mov eax, dword [ebp - 0x438]
add esp, 4
mov ebx, dword [ebx + 0x20]
mov eax, dword [eax + 0x24]
jmp 0x4093e7
mov eax, dword [ebp - 0x458]
mov ebx, dword [ebp - 0x45c]
push eax
push ebx
push 0x485358
mov dword [ebp - 0x434], eax
call fcn.0044e890
mov eax, dword [edi + 0x14]
add esp, 0xc
sub eax, dword [edi + 0x10]
cdq
push edx
push eax
push dword [ebp - 0x434]
push ebx
call fcn.0042cde0
mov ebx, eax
mov eax, edx
mov dword [ebp - 0x434], eax
test eax, eax
jg 0x409434
jl 0x409425
test ebx, ebx
jne 0x409434
mov ebx, 1
mov dword [ebp - 0x434], 0
push 0x210
lea eax, [ebp - 0x430]
push 0
push eax
call fcn.00432c40
add esp, 0xc
lea eax, [ebp - 0x430]
push str.DownloadsTemp
push dword [edi + 0xc]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [ebp - 0x430]
push eax
push 0x485398
call fcn.0044e890
add esp, 8
test esi, esi
jne 0x4094bc
lea ecx, [ebp - 0x220]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x409480
mov edi, dword [ebp - 0x444]
lea eax, [ebp - 0x220]
sub ecx, edx
sar ecx, 1
push ecx
push eax
mov ecx, edi
call fcn.00416a50
push dword [ebp - 0x448]
lea ecx, [edi + 4]
call fcn.00404c60
mov eax, 1
jmp 0x4097d5
push dword [ebp - 0x43c]
push 0x4853ac
push str.installpkg
call fcn.0040b360
push eax
call fcn.00450840
mov eax, dword [ebp - 0x438]
add esp, 0x10
mov esi, dword [edi + 0x10]
mov dword [ebp - 0x440], esi
push dword [ebp - 0x434]
push ebx
push dword [eax + 0x24]
push dword [eax + 0x20]
call fcn.0042cde0
add eax, esi
mov dword [ebp - 0x460], eax
call fcn.0040b4c0
mov ecx, eax
test ecx, ecx
je 0x4097f3
mov eax, dword [ecx]
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x434], esi
mov dword [ebp - 4], 0
or ebx, 0xffffffff
nop word [eax + eax]
mov eax, dword [edi + 0x18]
push 0
push 0x4853e0
push dword [ebp - 0x440]
push dword [edi + 0x1c]
call eax
push 0x4853fc
call fcn.0044e890
lea eax, [ebp - 0x44c]
mov dword [ebp - 0x44c], 0
push eax
push dword [ebp - 0x460]
mov eax, dword [ebp - 0x438]
lea ecx, [ebp - 0x430]
push dword [ebp - 0x440]
push dword [edi + 0x20]
push dword [edi + 0x1c]
push dword [edi + 0x18]
push dword [eax + 0x28]
push ecx
push dword [eax + 0x18]
lea eax, [ebp - 0x458]
push dword [edi + 8]
push dword [edi]
push eax
call fcn.004537b0
add esp, 0x44
mov ecx, dword [eax]
lea edi, [esi - 0x10]
mov byte [ebp - 4], 1
lea edx, [ecx - 0x10]
cmp edx, edi
je 0x409603
cmp dword [edi + 0xc], 0
lea esi, [edi + 0xc]
jl 0x4095ee
mov eax, dword [edx]
cmp eax, dword [edi]
jne 0x4095ee
push edx
call fcn.00407840
add esp, 4
mov dword [ebp - 0x450], eax
mov ecx, ebx
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x4095e3
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x450]
lea esi, [eax + 0x10]
mov dword [ebp - 0x434], esi
jmp 0x409603
push dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x434]
call fcn.00416a50
mov esi, dword [ebp - 0x434]
mov edx, dword [ebp - 0x458]
mov eax, ebx
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x409624
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [esi - 0xc], 0
je 0x409639
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4096e6
mov edi, dword [ebp - 0x454]
mov eax, dword [edi]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x64]
test eax, eax
jne 0x40978f
call fcn.0040b420
mov ecx, eax
call fcn.0041b4f0
cmp eax, 3
je 0x40966c
cmp eax, 4
je 0x40966c
mov eax, dword [0x4c2554]
jmp 0x40966e
xor eax, eax
push 0x484f30
push 0x484f38
push 0x485470
push 1
push dword [0x4c24d8]
push eax
call fcn.0044f2f0
cmp eax, 7
je 0x409699
cmp eax, 5
jne 0x409530
push 0x48549c
call fcn.0044e890
mov edi, dword [ebp - 0x43c]
add esp, 4
push edi
push str.down__s_fail
push str.installpkg
call fcn.0040b360
push eax
call fcn.00450840
add esp, 0x10
push dword [ebp - 0x44c]
push edi
push str.down__s_fail__d
push str.installpkg
call fcn.0040b360
push eax
call fcn.00450840
jmp 0x4097b4
push 0x48540c
call fcn.0044e890
mov eax, dword [ebp - 0x438]
mov edi, esp
mov dword [ebp - 0x454], esp
mov dword [ebp - 0x450], edi
mov eax, dword [eax + 0x2c]
sub eax, 0x10
push eax
call fcn.00407840
add eax, 0x10
add esp, 4
mov dword [edi], eax
mov byte [ebp - 4], 2
call fcn.0040b360
mov ecx, eax
mov byte [ebp - 4], 0
call fcn.00450990
push dword [ebp - 0x43c]
push str.down__s_succ
push str.installpkg
call fcn.0040b360
push eax
call fcn.00450840
mov edi, dword [ebp - 0x444]
lea eax, [ebp - 0x434]
add esp, 0x10
mov ecx, edi
push eax
call fcn.00404c60
push dword [ebp - 0x448]
lea ecx, [edi + 4]
call fcn.00404c60
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
lock xadd dword [esi + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x409788
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, 1
jmp 0x4097d5
push dword [ebp - 0x43c]
push str.down__s_cancel
push str.installpkg
call fcn.0040b360
push eax
call fcn.00450840
push 0x485458
call fcn.0044e890
add esp, 0x14
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
lock xadd dword [esi + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x4097d3
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0042c75e
mov esp, ebp
pop ebp
ret 0xc
push 0x80004005
call fcn.004068b0
int3