Function at 0x443b80
Capabilities:
Get common file path

Disassembly:
push ebp
lea ebp, [esp - 0xc64]
sub esp, 0xc64
push 0xffffffffffffffff
push 0x563ea8
mov eax, dword fs:[0]
push eax
sub esp, 0x64
mov eax, dword [0x5a800c]
xor eax, ebp
mov dword [ebp + 0xc60], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp + 0x1c], ecx
mov ebx, dword [ebp + 0xc6c]
mov ecx, ebx
mov esi, dword [ebp + 0xc70]
call fcn.00402520
mov eax, dword [eax + 0x10]
test eax, eax
je 0x444023
lea eax, [esi + 0x30]
mov ecx, eax
mov dword [ebp - 0x10], eax
call fcn.00402520
mov eax, dword [eax + 0x10]
test eax, eax
je 0x444023
mov ecx, esi
call fcn.00402520
mov eax, dword [eax + 0x10]
test eax, eax
je 0x444023
lea ecx, [esi + 0x18]
call fcn.00402520
mov eax, dword [eax + 0x10]
test eax, eax
je 0x444023
lea edi, [esi + 0x48]
mov ecx, edi
call fcn.00402520
mov eax, dword [eax + 0x10]
test eax, eax
je 0x444023
lea ecx, [esi + 0x60]
call fcn.00402520
mov eax, dword [eax + 0x10]
test eax, eax
je 0x444023
push 0x573c38
mov ecx, edi
call fcn.004029f0
test al, al
jne 0x443c63
push 0x5739c0
mov ecx, edi
call fcn.004029f0
test al, al
je 0x444023
push esi
mov esi, dword [ebp + 0x1c]
mov ecx, dword [esi]
add ecx, 4
call fcn.00444050
mov eax, dword [esi]
lea ecx, [ebp]
push ebx
mov dword [eax + 0xc4], 0
call fcn.00402430
mov dword [ebp - 4], 0
lea ecx, [ebp]
call fcn.0041aaf0
test al, al
jne 0x443ca1
lea ecx, [ebp]
call fcn.0041b030
lea ecx, [ebp]
call fcn.0041aaf0
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, al
jne 0x443dde
mov eax, dword [0x5aac80]
mov dword [ebp + 0x18], 0
mov dword [ebp + 0x18], 0x5aac80
test eax, eax
je 0x443cd5
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 4], 1
mov ecx, 0x5aac5c
call fcn.00402520
mov edx, eax
mov ebx, dword [edx + 0x10]
test ebx, ebx
je 0x443d0b
call fcn.00402520
lea ecx, [ebp]
cmp ecx, eax
je 0x443dc7
cmp dword [edx + 0x14], 8
jb 0x443d04
mov edx, dword [edx]
push ebx
push edx
jmp 0x443dbf
push 0x20c
lea eax, [ebp + 0xa54]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp + 0xa54]
push eax
push 0x105
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
dec eax
cmp eax, 0x103
ja 0x443dc7
xor eax, eax
push 0x412
push eax
mov word [ebp + 0xc5e], ax
lea eax, [ebp + 0x434]
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp + 0x434]
push 0x208
push eax
lea eax, [ebp + 0xa54]
push eax
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
cmp eax, 0x208
ja 0x443dac
test eax, eax
je 0x443dac
add eax, eax
cmp eax, 0x412
jae 0x444048
xor ecx, ecx
mov word [ebp + eax + 0x434], cx
lea ecx, [ebp + 0x434]
call fcn.004028c0
push eax
lea eax, [ebp + 0x434]
jmp 0x443dbe
lea ecx, [ebp + 0xa54]
call fcn.004028c0
push eax
lea eax, [ebp + 0xa54]
push eax
lea ecx, [ebp]
call fcn.00402610
mov byte [ebp - 4], 0
mov eax, dword [0x5aac80]
test eax, eax
je 0x443dd7
push eax
call esi
mov dword [ebp + 0x18], 0
mov ebx, dword [ebp + 0x1c]
lea eax, [ebp]
push eax
mov ecx, dword [ebx]
add ecx, 0xcc
call fcn.004023d0
push str.download
lea ecx, [ebp - 0x28]
call fcn.00404ba0
mov byte [ebp - 4], 2
lea eax, [ebp - 0x28]
push eax
lea edx, [ebp]
lea ecx, [ebp - 0x40]
call fcn.0041eea0
add esp, 4
mov byte [ebp - 4], 3
lea ecx, [ebp]
push eax
call fcn.00404b60
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x40]
call fcn.00402400
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x28]
call fcn.00402400
push edi
lea edx, [ebp]
lea ecx, [ebp - 0x58]
call fcn.0041eea0
add esp, 4
mov byte [ebp - 4], 4
lea ecx, [ebp]
push eax
call fcn.00404b60
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x58]
call fcn.00402400
lea ecx, [ebp]
call fcn.0041aaf0
test al, al
jne 0x443e76
lea ecx, [ebp]
call fcn.0041b030
lea ecx, [ebp]
call fcn.0041aaf0
test al, al
jne 0x443f9a
mov eax, dword [0x5aac80]
mov dword [ebp + 0x1c], 0
mov dword [ebp + 0x1c], 0x5aac80
test eax, eax
je 0x443ea4
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 4], 5
mov ecx, 0x5aac5c
call fcn.00402520
mov edx, eax
mov edi, dword [edx + 0x10]
test edi, edi
je 0x443eda
call fcn.00402520
lea ecx, [ebp]
cmp ecx, eax
je 0x443f83
cmp dword [edx + 0x14], 8
jb 0x443ed3
mov edx, dword [edx]
push edi
push edx
jmp 0x443f7b
push 0x20c
lea eax, [ebp + 0x848]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp + 0x848]
push eax
push 0x105
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
dec eax
cmp eax, 0x103
ja 0x443f83
xor eax, eax
push 0x412
push eax
mov word [ebp + 0xa52], ax
lea eax, [ebp + 0x20]
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp + 0x20]
push 0x208
push eax
lea eax, [ebp + 0x848]
push eax
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
cmp eax, 0x208
ja 0x443f68
test eax, eax
je 0x443f68
add eax, eax
cmp eax, 0x412
jae 0x444048
xor ecx, ecx
mov word [ebp + eax + 0x20], cx
lea ecx, [ebp + 0x20]
call fcn.004028c0
push eax
lea eax, [ebp + 0x20]
jmp 0x443f7a
lea ecx, [ebp + 0x848]
call fcn.004028c0
push eax
lea eax, [ebp + 0x848]
push eax
lea ecx, [ebp]
call fcn.00402610
mov byte [ebp - 4], 0
mov eax, dword [0x5aac80]
test eax, eax
je 0x443f93
push eax
call esi
mov dword [ebp + 0x1c], 0
mov ecx, dword [ebx]
lea eax, [ebp]
push eax
add ecx, 0xe4
call fcn.004023d0
push dword [ebp - 0x10]
lea edx, [ebp]
lea ecx, [ebp - 0x70]
call fcn.0041eea0
add esp, 4
mov byte [ebp - 4], 6
lea ecx, [ebp]
push eax
call fcn.00404b60
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x70]
call fcn.00402400
mov ecx, str..NewVersion.data
call fcn.004028c0
push eax
push str..NewVersion.data
lea ecx, [ebp]
call fcn.004067c0
mov ecx, dword [ebx]
lea eax, [ebp]
push 1
push eax
add ecx, 0xb0
call fcn.0049ae60
mov ecx, dword [ebx]
mov byte [ecx], al
mov eax, dword [ebx]
mov eax, dword [eax + 0xc8]
test eax, eax
je 0x444014
mov byte [eax + 4], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp]
call fcn.00402400
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0xc60]
xor ecx, ebp
call fcn.0055929f
lea esp, [ebp + 0xc64]
pop ebp
ret 0xc
call fcn.00559b9e
int3