Function at 0x4306d0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x52c1ed
mov eax, dword fs:[0]
push eax
sub esp, 0xce0
mov eax, dword [0x58a088]
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 0x430c28
lea eax, [esi + 0x30]
mov ecx, eax
mov dword [ebp - 0xc88], eax
call fcn.00404470
test al, al
jne 0x430c28
mov ecx, esi
call fcn.00404470
test al, al
jne 0x430c28
lea ecx, [esi + 0x18]
call fcn.00404470
test al, al
jne 0x430c28
lea edi, [esi + 0x48]
mov ecx, edi
call fcn.00404470
test al, al
jne 0x430c28
lea ecx, [esi + 0x60]
call fcn.00404470
test al, al
jne 0x430c28
mov edx, 0x55665c
mov ecx, edi
call fcn.0040aae0
test al, al
je 0x430796
mov edx, 0x557224
mov ecx, edi
call fcn.0040aae0
test al, al
jne 0x430c28
push esi
mov esi, dword [ebp - 0xc68]
mov ecx, dword [esi]
add ecx, 4
call fcn.00430c50
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.0048df40
add esp, 4
test al, al
jne 0x4307e3
lea ecx, [ebp - 0xc84]
call fcn.0048e4d0
lea eax, [ebp - 0xc84]
push eax
call fcn.0048df40
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
add esp, 4
test al, al
jne 0x43094c
mov eax, dword [0x58e9c4]
mov dword [ebp - 0xc6c], 0
mov dword [ebp - 0xc6c], 0x58e9c4
test eax, eax
je 0x430824
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 4], 1
mov ecx, 0x58e9c8
call fcn.00404470
test al, al
jne 0x43086e
push 0x58e9c8
call fcn.00402d80
lea ecx, [ebp - 0xc84]
add esp, 4
cmp ecx, eax
je 0x430932
mov ecx, 0x58e9c8
call fcn.00402ab0
mov ecx, eax
cmp dword [eax + 0x14], 8
jb 0x430865
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
jmp 0x430927
push 0x20c
lea eax, [ebp - 0x224]
push 0
push eax
call fcn.004e48c0
add esp, 0xc
lea eax, [ebp - 0x224]
push eax
push 0x105
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
dec eax
cmp eax, 0x103
ja 0x430932
xor eax, eax
push 0x412
push eax
mov word [ebp - 0x1a], ax
lea eax, [ebp - 0x84c]
push eax
call fcn.004e48c0
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 0x430910
test eax, eax
je 0x430910
add eax, eax
cmp eax, 0x412
jae 0x430c46
xor ecx, ecx
mov word [ebp + eax - 0x84c], cx
lea eax, [ebp - 0x84c]
push eax
call fcn.00402d30
add esp, 4
push eax
lea eax, [ebp - 0x84c]
jmp 0x430926
lea eax, [ebp - 0x224]
push eax
call fcn.00402d30
add esp, 4
push eax
lea eax, [ebp - 0x224]
push eax
lea ecx, [ebp - 0xc84]
call fcn.00402b20
mov byte [ebp - 4], 0
mov eax, dword [0x58e9c4]
test eax, eax
je 0x430942
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.00402a40
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.0048f1b0
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.00402a30
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xca0]
call fcn.00402a30
push edi
lea eax, [ebp - 0xc84]
push eax
lea eax, [ebp - 0xcd0]
push eax
call fcn.0048f1b0
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.00402a30
lea eax, [ebp - 0xc84]
push eax
call fcn.0048df40
add esp, 4
test al, al
jne 0x430a19
lea ecx, [ebp - 0xc84]
call fcn.0048e4d0
lea eax, [ebp - 0xc84]
push eax
call fcn.0048df40
add esp, 4
test al, al
jne 0x430b7f
mov eax, dword [0x58e9c4]
mov dword [ebp - 0xc68], 0
mov dword [ebp - 0xc68], 0x58e9c4
test eax, eax
je 0x430a54
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 4], 5
mov ecx, 0x58e9c8
call fcn.00404470
test al, al
jne 0x430a9e
push 0x58e9c8
call fcn.00402d80
lea edx, [ebp - 0xc84]
add esp, 4
cmp edx, eax
je 0x430b65
mov ecx, 0x58e9c8
call fcn.00402ab0
mov ecx, eax
cmp dword [eax + 0x14], 8
jb 0x430a95
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
jmp 0x430b5a
push 0x20c
lea eax, [ebp - 0x434]
push 0
push eax
call fcn.004e48c0
add esp, 0xc
lea eax, [ebp - 0x434]
push eax
push 0x105
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
dec eax
cmp eax, 0x103
ja 0x430b65
xor eax, eax
push 0x412
push eax
mov word [ebp - 0x22a], ax
lea eax, [ebp - 0xc64]
push eax
call fcn.004e48c0
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 0x430b43
test eax, eax
je 0x430b43
add eax, eax
cmp eax, 0x412
jae 0x430c46
xor ecx, ecx
mov word [ebp + eax - 0xc64], cx
lea eax, [ebp - 0xc64]
push eax
call fcn.00402d30
add esp, 4
push eax
lea eax, [ebp - 0xc64]
jmp 0x430b59
lea eax, [ebp - 0x434]
push eax
call fcn.00402d30
add esp, 4
push eax
lea eax, [ebp - 0x434]
push eax
lea ecx, [ebp - 0xc84]
call fcn.00402b20
mov byte [ebp - 4], 0
mov eax, dword [0x58e9c4]
test eax, eax
je 0x430b75
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.0048f1b0
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.00402a30
push str..NewVersion.data
call fcn.00402d30
add esp, 4
lea ecx, [ebp - 0xc84]
push eax
push str..NewVersion.data
call fcn.00412d50
mov ecx, dword [ebx]
lea eax, [ebp - 0xc84]
push 1
push eax
add ecx, 0xb0
call fcn.004a0530
mov ecx, dword [ebx]
mov byte [ecx], al
mov eax, dword [ebx]
mov eax, dword [eax + 0xc8]
test eax, eax
je 0x430c16
mov byte [eax + 4], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xc84]
call fcn.00402a30
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.004e1ff4
mov esp, ebp
pop ebp
ret 0xc
call fcn.004e2671
int3