Function at 0x409dac
Capabilities:
Get common file path

Disassembly:
mov eax, 0x42a709
call fcn.0041c1e4
sub esp, 0x190
push ebx
push esi
lea eax, [ebp - 0xd]
xor ebx, ebx
push eax
mov dword [ebp - 0x18], ebx
push 0x105
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x14], ebx
mov byte [ebp - 0xd], bl
call fcn.00408983
push 0x42d3b8
lea ecx, [ebp - 0x8c]
mov dword [ebp - 4], ebx
call fcn.00408f3d
mov esi, dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
lea eax, [ebp - 0x14]
push eax
push 0x1c
push ebx
mov byte [ebp - 4], 1
call esi
test eax, eax
jne 0x409e7a
push dword [ebp - 0x14]
lea ecx, [ebp - 0x2c]
call fcn.0040abe3
push dword [ebp - 0x38]
mov byte [ebp - 4], 2
push dword [ebp - 0x14]
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListA]
test eax, eax
jne 0x409e49
lea ecx, [ebp - 0x24]
call fcn.0040ab61
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 3
mov dword [ebp - 0x1c], 0x42dc08
push 0x433620
lea eax, [ebp - 0x1c]
jmp 0x409ee5
push dword [ebp - 0x38]
lea ecx, [ebp - 0x10c]
call fcn.00408f3d
push eax
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 4
call fcn.00408b04
lea ecx, [ebp - 0x10c]
call fcn.00403cad
lea ecx, [ebp - 0x2c]
jmp 0x409fd5
lea eax, [ebp - 0x14]
push eax
push 6
push ebx
call esi
test eax, eax
je 0x409ea5
lea eax, [ebp - 0x14]
push eax
push 6
push ebx
call esi
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x2c]
call fcn.0040ab77
mov byte [ebp - 4], 5
jmp 0x409ed0
push dword [ebp - 0x14]
lea ecx, [ebp - 0x44]
call fcn.0040abe3
push dword [ebp - 0x38]
mov byte [ebp - 4], 6
push dword [ebp - 0x14]
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListA]
test eax, eax
jne 0x409eeb
lea ecx, [ebp - 0x2c]
call fcn.0040ab61
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], 0x42dc08
push 0x433620
lea eax, [ebp - 0x24]
push eax
call fcn.0041c394
push dword [ebp - 0x38]
lea ecx, [ebp - 0x10c]
call fcn.00408f3d
push eax
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 8
call fcn.00408b04
lea ecx, [ebp - 0x10c]
mov byte [ebp - 4], 6
call fcn.00403cad
push str.Application_Data
lea ecx, [ebp - 0xa8]
call fcn.00402848
push str.Local_Settings
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 9
call fcn.00402848
lea eax, [ebp - 0x19c]
push eax
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 0xa
call fcn.0040912d
lea ecx, [ebp - 0xc4]
push ecx
push eax
lea eax, [ebp - 0x154]
push eax
mov byte [ebp - 4], 0xb
call fcn.0040974d
lea ecx, [ebp - 0xa8]
push ecx
push eax
lea eax, [ebp - 0x10c]
push eax
mov byte [ebp - 4], 0xc
call fcn.0040974d
add esp, 0x18
push eax
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 0xd
call fcn.00408b04
lea ecx, [ebp - 0x10c]
call fcn.00403cad
lea ecx, [ebp - 0x154]
call fcn.00403cad
lea ecx, [ebp - 0x19c]
call fcn.00403cad
push ebx
push 1
lea ecx, [ebp - 0xc4]
call fcn.00401ef6
push ebx
push 1
lea ecx, [ebp - 0xa8]
call fcn.00401ef6
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 1
call fcn.0040a81d
call fcn.0040ad79
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x8c]
call fcn.00409560
call fcn.0040ad79
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
push eax
push 1
lea ecx, [ebp - 0x8c]
call fcn.004094e0
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x8c]
push eax
call fcn.004046fe
lea ecx, [ebp - 0x8c]
call fcn.00403cad
lea ecx, [ebp - 0x3c]
call fcn.0040ba0b
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret