Function at 0x401a20
Capabilities:
Get common file path

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x12c
mov esi, dword [esp + 0x144]
mov eax, dword [0x424070]
xor eax, esp
mov dword [esp + 0x128], eax
push 0
call fcn.0040dcf1
add esp, 4
push eax
call fcn.0040dded
add esp, 4
call fcn.0040ddff
lea edi, [esp + 4]
mov dword [esp], edi
mov eax, dword [esp]
cmp esi, 1
mov eax, 0x6d7e18cc
mov ebx, 0xc58b734f
cmove ebx, eax
mov eax, 0x283d91a4
nop word cs:[eax + eax]
cmp eax, 0xf3b9fa56
jle 0x401ab0
cmp eax, 0x37beacba
jg 0x401af0
cmp eax, 0xf3b9fa57
je 0x401d2d
cmp eax, 0x283d91a4
jne 0x401a80
mov eax, ebx
jmp 0x401a80
cmp eax, 0xb06534e9
je 0x401b24
cmp eax, 0xb14ecd78
je 0x401d21
cmp eax, 0xc58b734f
jne 0x401a80
push edi
push 2
push 0
call sub.SHELL32.dll_SHGetSpecialFolderLocation
test eax, eax
mov eax, 0xb14ecd78
mov ecx, 0x37beacbb
cmove eax, ecx
jmp 0x401a80
cmp eax, 0x37beacbb
je 0x401c25
cmp eax, 0x6d7e18cc
jne 0x401a80
push edi
push 0x17
push 0
call sub.SHELL32.dll_SHGetSpecialFolderLocation
test eax, eax
mov eax, 0xb14ecd78
mov ecx, 0xb06534e9
cmove eax, ecx
jmp 0x401a80
call fcn.00401740
push 0
call fcn.0040dcf1
add esp, 4
push eax
call fcn.0040dded
add esp, 4
call fcn.0040ddff
call fcn.00401290
push 0x10
lea esi, [esp + 0x114]
push esi
call fcn.004013c0
add esp, 8
mov ecx, esi
call fcn.00406460
push 0x53
lea esi, [esp + 0xfc]
push esi
call fcn.004013c0
add esp, 8
mov ecx, esi
call fcn.00406460
push 0
call fcn.0040dcf1
add esp, 4
push eax
call fcn.0040dded
add esp, 4
call fcn.0040ddff
push 0x4d
lea esi, [esp + 0xe4]
push esi
call fcn.004013c0
add esp, 8
mov ecx, esi
call fcn.00406460
call fcn.00401160
push dword [esp + 0x140]
push dword [esp + 8]
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListA]
mov esi, eax
push dword [esp + 4]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
call fcn.00401740
call fcn.00401290
push 0x19
lea ebp, [esp + 0xcc]
push ebp
call fcn.004013c0
add esp, 8
mov ecx, ebp
call fcn.00406460
push 0x29
lea ebp, [esp + 0xb4]
push ebp
call fcn.004013c0
add esp, 8
mov ecx, ebp
call fcn.00406460
push 0x61
lea ebp, [esp + 0x9c]
push ebp
call fcn.004013c0
add esp, 8
mov ecx, ebp
call fcn.00406460
jmp 0x401d12
push 0
call fcn.0040dcf1
add esp, 4
push eax
call fcn.0040dded
add esp, 4
call fcn.0040ddff
call fcn.00401740
call fcn.00401290
push 0x3d
lea esi, [esp + 0x84]
push esi
call fcn.004013c0
add esp, 8
mov ecx, esi
call fcn.00406460
push 0x3a
lea esi, [esp + 0x6c]
push esi
call fcn.004013c0
add esp, 8
mov ecx, esi
call fcn.00406460
push 0x5d
lea esi, [esp + 0x54]
push esi
call fcn.004013c0
add esp, 8
mov ecx, esi
call fcn.00406460
call fcn.00401160
push dword [esp + 0x140]
push dword [esp + 8]
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListA]
mov esi, eax
push dword [esp + 4]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
call fcn.00401740
call fcn.00401290
push 0x4a
lea ebp, [esp + 0x3c]
push ebp
call fcn.004013c0
add esp, 8
mov ecx, ebp
call fcn.00406460
push 0x52
lea ebp, [esp + 0x24]
push ebp
call fcn.004013c0
add esp, 8
mov ecx, ebp
call fcn.00406460
push 0x30
lea ebp, [esp + 0xc]
push ebp
call fcn.004013c0
add esp, 8
mov ecx, ebp
call fcn.00406460
push 0
call fcn.0040dcf1
add esp, 4
push eax
call fcn.0040dded
add esp, 4
call fcn.0040ddff
call fcn.00401160
mov eax, 0xf3b9fa57
jmp 0x401a80
mov eax, 0xf3b9fa57
xor esi, esi
jmp 0x401a80
mov eax, dword [esp]
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.0040842f
mov eax, esi
add esp, 0x12c
pop esi
pop edi
pop ebx
pop ebp
ret