Function at 0x4083f0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x424
mov eax, dword [0x422040]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov edi, dword [ebp + 8]
call fcn.00402700
mov ecx, eax
test ecx, ecx
je 0x408736
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x41c], eax
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x414], ax
lea eax, [ebp - 0x412]
push eax
call fcn.0040a9e0
add esp, 0xc
push str.shell32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
test esi, esi
je 0x4086de
push str.SHGetKnownFolderPath
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov eax, dword [ebp + 0xc]
add eax, 0xfffffc17
test ecx, ecx
je 0x40858b
cmp eax, 9
ja case.0x40847f.1
jmp dword [eax*4 + 0x408740]
lea eax, [ebp - 0x418]
push eax
push 0
push 0
push 0x419fe8
call ecx
push dword [ebp - 0x418]
jmp 0x4086c3
lea eax, [ebp - 0x418]
push eax
push 0
push 0
push 0x419f98
call ecx
push dword [ebp - 0x418]
jmp 0x4086c3
lea eax, [ebp - 0x418]
push eax
push 0
push 0
push 0x41a008
call ecx
push dword [ebp - 0x418]
jmp 0x4086c3
lea eax, [ebp - 0x418]
push eax
push 0
push 0
push 0x419fa8
call ecx
push dword [ebp - 0x418]
jmp 0x4086c3
lea eax, [ebp - 0x418]
push eax
push 0
push 0
push 0x419ff8
call ecx
push dword [ebp - 0x418]
jmp 0x4086c3
lea eax, [ebp - 0x418]
push eax
push 0
push 0
push 0x419fd8
call ecx
push dword [ebp - 0x418]
jmp 0x4086c3
lea eax, [ebp - 0x418]
push eax
push 0
push 0
push 0x419fc8
call ecx
push dword [ebp - 0x418]
jmp 0x4086c3
lea eax, [ebp - 0x418]
push eax
push 0
push 0
push 0x419fb8
call ecx
push dword [ebp - 0x418]
jmp 0x4086c3
lea eax, [ebp - 0x418]
push eax
push 0
push 0
push 0x419f88
call ecx
push dword [ebp - 0x418]
jmp 0x4086c3
cmp eax, 9
ja case.0x408594.1
jmp dword [eax*4 + 0x408768]
lea eax, [ebp - 0x20c]
push eax
push 0
push 0
push 0x28
jmp 0x4086b4
lea eax, [ebp - 0x20c]
push eax
push 0
push 0
push 5
jmp 0x4086b4
lea eax, [ebp - 0x420]
push eax
call fcn.00408870
push str.Downloads_
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x424]
push eax
call fcn.004013e0
add esp, 0x10
lea ecx, [ebp - 0x420]
push eax
call fcn.004012c0
lea ecx, [ebp - 0x424]
call fcn.00401270
push ecx
lea eax, [ebp - 0x420]
mov ecx, esp
push eax
call fcn.00401130
call fcn.00408a60
add esp, 4
lea eax, [ebp - 0x420]
lea ecx, [ebp - 0x41c]
push eax
call fcn.004012c0
lea eax, [ebp - 0x41c]
mov ecx, edi
push eax
call fcn.00401130
lea ecx, [ebp - 0x420]
call fcn.00401270
lea ecx, [ebp - 0x41c]
call fcn.00401270
mov eax, edi
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040a5e0
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x20c]
push eax
push 0
push 0
push 6
jmp 0x4086b4
lea eax, [ebp - 0x20c]
push eax
push 0
push 0
push 0xd
jmp 0x4086b4
lea eax, [ebp - 0x20c]
push eax
push 0
push 0
push 0x1c
jmp 0x4086b4
lea eax, [ebp - 0x20c]
push eax
push 0
push 0
push 0x1a
jmp 0x4086b4
lea eax, [ebp - 0x20c]
push eax
push 0
push 0
push 0x23
jmp 0x4086b4
lea eax, [ebp - 0x20c]
push eax
push 0
push 0
push 0
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x414]
push 0x104
push eax
call fcn.00409db8
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x41c]
push 0x419ecc
push eax
call fcn.00402620
mov esi, dword [ebp - 0x41c]
add esi, 0xfffffff0
push esi
call fcn.00401c20
add eax, 0x10
add esp, 0x10
mov dword [edi], eax
or ecx, 0xffffffff
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x408724
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
xor ecx, ebp
pop esi
call fcn.0040a5e0
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.004017a0
xchg byte [eax + eax*2 + 0x40856e00], al
add byte [ebx - 1073725308], ah
test byte [eax], al
fld qword [eax + eax*2 + 0x4084fa00]
add byte [edi], dl
test dword [eax], eax
outsb dx, byte [esi]
test dword [eax], eax
xor al, 0x85
inc eax
add byte [ecx - 0x7b], dl
inc eax
add byte [ebx - 0x58ffbf7b], bl
xchg byte [eax], al
lodsd eax, dword [esi]
test dword [eax], eax
mov edi, 0x5c004085
xchg byte [eax], al
imul eax, dword [esi - 0x7985ffc0], 0x40
add byte [edi - 1996472186], ah
xchg byte [eax], al
cwde
xchg byte [eax], al