Function at 0x42d980
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x52ae7d
mov eax, dword fs:[0]
push eax
sub esp, 0xce0
mov eax, dword [0x588088]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xc68], ecx
mov ebx, dword [ebp + 8]
mov ecx, ebx
mov esi, dword [ebp + 0xc]
call fcn.00404470
test al, al
jne 0x42ded8
lea eax, [esi + 0x30]
mov ecx, eax
mov dword [ebp - 0xc88], eax
call fcn.00404470
test al, al
jne 0x42ded8
mov ecx, esi
call fcn.00404470
test al, al
jne 0x42ded8
lea ecx, [esi + 0x18]
call fcn.00404470
test al, al
jne 0x42ded8
lea edi, [esi + 0x48]
mov ecx, edi
call fcn.00404470
test al, al
jne 0x42ded8
lea ecx, [esi + 0x60]
call fcn.00404470
test al, al
jne 0x42ded8
mov edx, 0x555a74
mov ecx, edi
call fcn.0040a9c0
test al, al
je 0x42da46
mov edx, 0x556618
mov ecx, edi
call fcn.0040a9c0
test al, al
jne 0x42ded8
push esi
mov esi, dword [ebp - 0xc68]
mov ecx, dword [esi]
add ecx, 4
call fcn.0042df00
mov ecx, dword [esi]
mov eax, dword [ebp + 0x10]
push ebx
mov dword [ecx + 0xc4], eax
lea ecx, [ebp - 0xc84]
call fcn.00404520
mov dword [ebp - 4], 0
lea eax, [ebp - 0xc84]
push eax
call fcn.00489080
add esp, 4
test al, al
jne 0x42da93
lea ecx, [ebp - 0xc84]
call fcn.00489610
lea eax, [ebp - 0xc84]
push eax
call fcn.00489080
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
add esp, 4
test al, al
jne 0x42dbfc
mov eax, dword [0x58c9dc]
mov dword [ebp - 0xc6c], 0
mov dword [ebp - 0xc6c], 0x58c9dc
test eax, eax
je 0x42dad4
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 4], 1
mov ecx, 0x58c9e0
call fcn.00404470
test al, al
jne 0x42db1e
push 0x58c9e0
call fcn.00402db0
lea ecx, [ebp - 0xc84]
add esp, 4
cmp ecx, eax
je 0x42dbe2
mov ecx, 0x58c9e0
call fcn.00402ae0
mov ecx, eax
cmp dword [eax + 0x14], 8
jb 0x42db15
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
jmp 0x42dbd7
push 0x20c
lea eax, [ebp - 0x224]
push 0
push eax
call fcn.004e42f0
add esp, 0xc
lea eax, [ebp - 0x224]
push eax
push 0x105
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
dec eax
cmp eax, 0x103
ja 0x42dbe2
xor eax, eax
push 0x412
push eax
mov word [ebp - 0x1a], ax
lea eax, [ebp - 0x84c]
push eax
call fcn.004e42f0
add esp, 0xc
lea eax, [ebp - 0x84c]
push 0x208
push eax
lea eax, [ebp - 0x224]
push eax
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
cmp eax, 0x208
ja 0x42dbc0
test eax, eax
je 0x42dbc0
add eax, eax
cmp eax, 0x412
jae 0x42def6
xor ecx, ecx
mov word [ebp + eax - 0x84c], cx
lea eax, [ebp - 0x84c]
push eax
call fcn.00402d60
add esp, 4
push eax
lea eax, [ebp - 0x84c]
jmp 0x42dbd6
lea eax, [ebp - 0x224]
push eax
call fcn.00402d60
add esp, 4
push eax
lea eax, [ebp - 0x224]
push eax
lea ecx, [ebp - 0xc84]
call fcn.00402b50
mov byte [ebp - 4], 0
mov eax, dword [0x58c9dc]
test eax, eax
je 0x42dbf2
push eax
call esi
mov dword [ebp - 0xc6c], 0
mov ebx, dword [ebp - 0xc68]
lea eax, [ebp - 0xc84]
push eax
mov ecx, dword [ebx]
add ecx, 0xcc
call fcn.004044b0
push str.download
lea ecx, [ebp - 0xca0]
call fcn.00402a70
mov byte [ebp - 4], 2
lea eax, [ebp - 0xca0]
push eax
lea eax, [ebp - 0xc84]
push eax
lea eax, [ebp - 0xcb8]
push eax
call fcn.0048a2f0
add esp, 0xc
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xc84]
push eax
call fcn.004044e0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xcb8]
call fcn.00402a60
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xca0]
call fcn.00402a60
push edi
lea eax, [ebp - 0xc84]
push eax
lea eax, [ebp - 0xcd0]
push eax
call fcn.0048a2f0
add esp, 0xc
mov byte [ebp - 4], 4
lea ecx, [ebp - 0xc84]
push eax
call fcn.004044e0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xcd0]
call fcn.00402a60
lea eax, [ebp - 0xc84]
push eax
call fcn.00489080
add esp, 4
test al, al
jne 0x42dcc9
lea ecx, [ebp - 0xc84]
call fcn.00489610
lea eax, [ebp - 0xc84]
push eax
call fcn.00489080
add esp, 4
test al, al
jne 0x42de2f
mov eax, dword [0x58c9dc]
mov dword [ebp - 0xc68], 0
mov dword [ebp - 0xc68], 0x58c9dc
test eax, eax
je 0x42dd04
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 4], 5
mov ecx, 0x58c9e0
call fcn.00404470
test al, al
jne 0x42dd4e
push 0x58c9e0
call fcn.00402db0
lea edx, [ebp - 0xc84]
add esp, 4
cmp edx, eax
je 0x42de15
mov ecx, 0x58c9e0
call fcn.00402ae0
mov ecx, eax
cmp dword [eax + 0x14], 8
jb 0x42dd45
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
jmp 0x42de0a
push 0x20c
lea eax, [ebp - 0x434]
push 0
push eax
call fcn.004e42f0
add esp, 0xc
lea eax, [ebp - 0x434]
push eax
push 0x105
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
dec eax
cmp eax, 0x103
ja 0x42de15
xor eax, eax
push 0x412
push eax
mov word [ebp - 0x22a], ax
lea eax, [ebp - 0xc64]
push eax
call fcn.004e42f0
add esp, 0xc
lea eax, [ebp - 0xc64]
push 0x208
push eax
lea eax, [ebp - 0x434]
push eax
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
cmp eax, 0x208
ja 0x42ddf3
test eax, eax
je 0x42ddf3
add eax, eax
cmp eax, 0x412
jae 0x42def6
xor ecx, ecx
mov word [ebp + eax - 0xc64], cx
lea eax, [ebp - 0xc64]
push eax
call fcn.00402d60
add esp, 4
push eax
lea eax, [ebp - 0xc64]
jmp 0x42de09
lea eax, [ebp - 0x434]
push eax
call fcn.00402d60
add esp, 4
push eax
lea eax, [ebp - 0x434]
push eax
lea ecx, [ebp - 0xc84]
call fcn.00402b50
mov byte [ebp - 4], 0
mov eax, dword [0x58c9dc]
test eax, eax
je 0x42de25
push eax
call esi
mov dword [ebp - 0xc68], 0
mov ecx, dword [ebx]
lea eax, [ebp - 0xc84]
push eax
add ecx, 0xe4
call fcn.004044b0
push dword [ebp - 0xc88]
lea eax, [ebp - 0xc84]
push eax
lea eax, [ebp - 0xce8]
push eax
call fcn.0048a2f0
add esp, 0xc
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xc84]
push eax
call fcn.004044e0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xce8]
call fcn.00402a60
push str..NewVersion.data
call fcn.00402d60
add esp, 4
lea ecx, [ebp - 0xc84]
push eax
push str..NewVersion.data
call fcn.00412c50
mov ecx, dword [ebx]
lea eax, [ebp - 0xc84]
push 1
push eax
add ecx, 0xb0
call fcn.0049b630
mov ecx, dword [ebx]
mov byte [ecx], al
mov eax, dword [ebx]
mov eax, dword [eax + 0xc8]
test eax, eax
je 0x42dec6
mov byte [eax + 4], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xc84]
call fcn.00402a60
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004e1a24
mov esp, ebp
pop ebp
ret 0xc
call fcn.004e20a1
int3