Function at 0x41cf40
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4dd76d
mov eax, dword fs:[0]
push eax
sub esp, 0xce0
mov eax, dword [0x522008]
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.00402120
test al, al
jne 0x41d496
lea eax, [esi + 0x30]
mov ecx, eax
mov dword [ebp - 0xc88], eax
call fcn.00402120
test al, al
jne 0x41d496
mov ecx, esi
call fcn.00402120
test al, al
jne 0x41d496
lea ecx, [esi + 0x18]
call fcn.00402120
test al, al
jne 0x41d496
lea edi, [esi + 0x48]
mov ecx, edi
call fcn.00402120
test al, al
jne 0x41d496
lea ecx, [esi + 0x60]
call fcn.00402120
test al, al
jne 0x41d496
push 0x501cf4
mov ecx, edi
call fcn.004026b0
test al, al
jne 0x41d006
push 0x501d24
mov ecx, edi
call fcn.004026b0
test al, al
je 0x41d496
push esi
mov esi, dword [ebp - 0xc68]
mov ecx, dword [esi]
add ecx, 4
call fcn.0041d4c0
mov eax, dword [esi]
lea ecx, [ebp - 0xc84]
push ebx
mov dword [eax + 0xc4], 0
call fcn.00402250
mov dword [ebp - 4], 0
lea eax, [ebp - 0xc84]
push eax
call fcn.00409050
add esp, 4
test al, al
jne 0x41d058
lea eax, [ebp - 0xc84]
push eax
call fcn.00409630
add esp, 4
lea eax, [ebp - 0xc84]
push eax
call fcn.00409050
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
add esp, 4
test al, al
jne 0x41d1be
mov eax, dword [0x524800]
mov dword [ebp - 0xc6c], 0
mov dword [ebp - 0xc6c], 0x524800
test eax, eax
je 0x41d099
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 4], 1
mov ecx, 0x524804
call fcn.00402120
test al, al
jne 0x41d0e0
mov ecx, 0x524804
call fcn.00402330
lea ecx, [ebp - 0xc84]
cmp ecx, eax
je 0x41d1a4
mov ecx, 0x524804
call fcn.00402330
mov ecx, eax
cmp dword [eax + 0x14], 8
jb 0x41d0d7
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
jmp 0x41d199
push 0x20c
lea eax, [ebp - 0x224]
push 0
push eax
call fcn.004b7720
add esp, 0xc
lea eax, [ebp - 0x224]
push eax
push 0x105
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
dec eax
cmp eax, 0x103
ja 0x41d1a4
xor eax, eax
push 0x412
push eax
mov word [ebp - 0x1a], ax
lea eax, [ebp - 0x84c]
push eax
call fcn.004b7720
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 0x41d182
test eax, eax
je 0x41d182
add eax, eax
cmp eax, 0x412
jae 0x41d4b4
xor ecx, ecx
mov word [ebp + eax - 0x84c], cx
lea eax, [ebp - 0x84c]
push eax
call fcn.004025c0
add esp, 4
push eax
lea eax, [ebp - 0x84c]
jmp 0x41d198
lea eax, [ebp - 0x224]
push eax
call fcn.004025c0
add esp, 4
push eax
lea eax, [ebp - 0x224]
push eax
lea ecx, [ebp - 0xc84]
call fcn.004023b0
mov byte [ebp - 4], 0
mov eax, dword [0x524800]
test eax, eax
je 0x41d1b4
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.00402170
push str.download
lea ecx, [ebp - 0xca0]
call fcn.004021e0
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.0040b470
add esp, 0xc
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xc84]
push eax
call fcn.004021a0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xcb8]
call fcn.00401f40
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xca0]
call fcn.00401f40
push edi
lea eax, [ebp - 0xc84]
push eax
lea eax, [ebp - 0xcd0]
push eax
call fcn.0040b470
add esp, 0xc
mov byte [ebp - 4], 4
lea ecx, [ebp - 0xc84]
push eax
call fcn.004021a0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xcd0]
call fcn.00401f40
lea eax, [ebp - 0xc84]
push eax
call fcn.00409050
add esp, 4
test al, al
jne 0x41d28f
lea eax, [ebp - 0xc84]
push eax
call fcn.00409630
add esp, 4
lea eax, [ebp - 0xc84]
push eax
call fcn.00409050
add esp, 4
test al, al
jne 0x41d3ed
mov eax, dword [0x524800]
mov dword [ebp - 0xc68], 0
mov dword [ebp - 0xc68], 0x524800
test eax, eax
je 0x41d2ca
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 4], 5
mov ecx, 0x524804
call fcn.00402120
test al, al
jne 0x41d30c
mov ecx, 0x524804
call fcn.00402330
lea edx, [ebp - 0xc84]
cmp edx, eax
je 0x41d3d3
call fcn.00402330
mov ecx, eax
cmp dword [eax + 0x14], 8
jb 0x41d303
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
jmp 0x41d3c8
push 0x20c
lea eax, [ebp - 0x434]
push 0
push eax
call fcn.004b7720
add esp, 0xc
lea eax, [ebp - 0x434]
push eax
push 0x105
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
dec eax
cmp eax, 0x103
ja 0x41d3d3
xor eax, eax
push 0x412
push eax
mov word [ebp - 0x22a], ax
lea eax, [ebp - 0xc64]
push eax
call fcn.004b7720
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 0x41d3b1
test eax, eax
je 0x41d3b1
add eax, eax
cmp eax, 0x412
jae 0x41d4b4
xor ecx, ecx
mov word [ebp + eax - 0xc64], cx
lea eax, [ebp - 0xc64]
push eax
call fcn.004025c0
add esp, 4
push eax
lea eax, [ebp - 0xc64]
jmp 0x41d3c7
lea eax, [ebp - 0x434]
push eax
call fcn.004025c0
add esp, 4
push eax
lea eax, [ebp - 0x434]
push eax
lea ecx, [ebp - 0xc84]
call fcn.004023b0
mov byte [ebp - 4], 0
mov eax, dword [0x524800]
test eax, eax
je 0x41d3e3
push eax
call esi
mov dword [ebp - 0xc68], 0
mov ecx, dword [ebx]
lea eax, [ebp - 0xc84]
push eax
add ecx, 0xe4
call fcn.00402170
push dword [ebp - 0xc88]
lea eax, [ebp - 0xc84]
push eax
lea eax, [ebp - 0xce8]
push eax
call fcn.0040b470
add esp, 0xc
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xc84]
push eax
call fcn.004021a0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xce8]
call fcn.00401f40
push str..NewVersion.data
call fcn.004025c0
add esp, 4
lea ecx, [ebp - 0xc84]
push eax
push str..NewVersion.data
call fcn.00406d10
mov ecx, dword [ebx]
lea eax, [ebp - 0xc84]
push 1
push eax
add ecx, 0xb0
call fcn.004853f0
mov ecx, dword [ebx]
mov byte [ecx], al
mov eax, dword [ebx]
mov eax, dword [eax + 0xc8]
test eax, eax
je 0x41d484
mov byte [eax + 4], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xc84]
call fcn.00401f40
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.004b5964
mov esp, ebp
pop ebp
ret 0xc
call fcn.004b5fbe
int3