Function at 0x4a40f0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x47
push 0
push 0
dec ecx
jne 0x4a40f8
push ecx
push ebx
push esi
push edi
mov dword [ebp - 0x14], edx
xor eax, eax
push ebp
push 0x4a4bf6
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x18]
push eax
push 0
push 0
call sub.shell32.dll_SHGetSpecialFolderLocation
lea eax, [ebp - 0x130]
push eax
mov eax, dword [ebp - 0x18]
push eax
call sub.shell32.dll_SHGetPathFromIDListA
lea edx, [ebp - 0x134]
lea eax, [ebp - 0x130]
call fcn.0040a008
mov edx, dword [ebp - 0x134]
lea eax, [ebp - 4]
mov ecx, 0x4a4c10
call fcn.00404f14
lea eax, [ebp - 0x18]
push eax
push 5
push 0
call sub.shell32.dll_SHGetSpecialFolderLocation
lea eax, [ebp - 0x130]
push eax
mov eax, dword [ebp - 0x18]
push eax
call sub.shell32.dll_SHGetPathFromIDListA
lea edx, [ebp - 0x138]
lea eax, [ebp - 0x130]
call fcn.0040a008
mov edx, dword [ebp - 0x138]
lea eax, [ebp - 8]
mov ecx, 0x4a4c10
call fcn.00404f14
mov dl, 1
mov eax, dword [0x424624]
call fcn.004246f4
mov ebx, eax
mov edx, 0x80000002
mov eax, ebx
call fcn.00424794
xor ecx, ecx
mov edx, 0x4a4c1c
mov eax, ebx
call fcn.004247f8
test al, al
je 0x4a41d6
lea ecx, [ebp - 0xc]
mov edx, 0x4a4c3c
mov eax, ebx
call fcn.00424b64
jmp 0x4a4379
xor ecx, ecx
mov edx, 0x4a4c4c
mov eax, ebx
call fcn.004247f8
test al, al
je 0x4a41fc
lea ecx, [ebp - 0xc]
mov edx, 0x4a4c3c
mov eax, ebx
call fcn.00424b64
jmp 0x4a4379
xor ecx, ecx
mov edx, 0x4a4c6c
mov eax, ebx
call fcn.004247f8
test al, al
je 0x4a4222
lea ecx, [ebp - 0xc]
mov edx, 0x4a4c3c
mov eax, ebx
call fcn.00424b64
jmp 0x4a4379
xor ecx, ecx
mov edx, 0x4a4c8c
mov eax, ebx
call fcn.004247f8
test al, al
je 0x4a4248
lea ecx, [ebp - 0xc]
mov edx, 0x4a4c3c
mov eax, ebx
call fcn.00424b64
jmp 0x4a4379
xor ecx, ecx
mov edx, 0x4a4cac
mov eax, ebx
call fcn.004247f8
test al, al
je 0x4a426e
lea ecx, [ebp - 0xc]
mov edx, 0x4a4c3c
mov eax, ebx
call fcn.00424b64
jmp 0x4a4379
xor ecx, ecx
mov edx, 0x4a4ccc
mov eax, ebx
call fcn.004247f8
test al, al
je 0x4a4294
lea ecx, [ebp - 0xc]
mov edx, 0x4a4c3c
mov eax, ebx
call fcn.00424b64
jmp 0x4a4379
xor ecx, ecx
mov edx, 0x4a4cec
mov eax, ebx
call fcn.004247f8
test al, al
je 0x4a42ba
lea ecx, [ebp - 0xc]
mov edx, 0x4a4c3c
mov eax, ebx
call fcn.00424b64
jmp 0x4a4379
xor ecx, ecx
mov edx, 0x4a4d0c
mov eax, ebx
call fcn.004247f8
test al, al
je 0x4a42e0
lea ecx, [ebp - 0xc]
mov edx, 0x4a4c3c
mov eax, ebx
call fcn.00424b64
jmp 0x4a4379
xor ecx, ecx
mov edx, 0x4a4d2c
mov eax, ebx
call fcn.004247f8
test al, al
je 0x4a4303
lea ecx, [ebp - 0xc]
mov edx, 0x4a4c3c
mov eax, ebx
call fcn.00424b64
jmp 0x4a4379
xor ecx, ecx
mov edx, 0x4a4d4c
mov eax, ebx
call fcn.004247f8
test al, al
je 0x4a4326
lea ecx, [ebp - 0xc]
mov edx, 0x4a4c3c
mov eax, ebx
call fcn.00424b64
jmp 0x4a4379
xor ecx, ecx
mov edx, 0x4a4d6c
mov eax, ebx
call fcn.004247f8
test al, al
je 0x4a4349
lea ecx, [ebp - 0xc]
mov edx, 0x4a4c3c
mov eax, ebx
call fcn.00424b64
jmp 0x4a4379
xor ecx, ecx
mov edx, 0x4a4d8c
mov eax, ebx
call fcn.004247f8
test al, al
je 0x4a436c
lea ecx, [ebp - 0xc]
mov edx, 0x4a4c3c
mov eax, ebx
call fcn.00424b64
jmp 0x4a4379
lea eax, [ebp - 0xc]
mov edx, 0x4a4da8
call fcn.00404c94
mov eax, ebx
call fcn.00424764
mov dl, 1
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx - 4]
mov dl, 1
mov eax, dword [0x417d7c]
call fcn.00403cb0
mov dword [ebp - 0x20], eax
mov dl, 1
mov eax, dword [0x417d7c]
call fcn.00403cb0
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x13c]
mov ecx, 0x4a4c10
mov edx, dword [ebp - 0xc]
call fcn.00404f14
mov eax, dword [ebp - 0x13c]
mov edx, dword [ebp - 0x1c]
call fcn.004a3878
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
dec esi
test esi, esi
jl 0x4a447d
inc esi
xor ebx, ebx
lea ecx, [ebp - 0x140]
mov edx, ebx
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x140]
call fcn.004a39dc
test al, al
je 0x4a4475
mov dl, 1
mov eax, dword [0x4a3810]
call fcn.00403cb0
mov dword [ebp - 0x24], eax
lea ecx, [ebp - 0x144]
mov edx, ebx
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0x144]
mov eax, dword [ebp - 0x24]
add eax, 4
call fcn.00404c50
lea ecx, [ebp - 0x14c]
mov edx, ebx
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax]
call dword [edi + 0xc]
mov ecx, dword [ebp - 0x14c]
lea eax, [ebp - 0x148]
mov edx, 0x4a4dbc
call fcn.00404f14
mov eax, dword [ebp - 0x148]
call fcn.004a3a78
mov edx, dword [ebp - 0x24]
mov dword [edx + 8], eax
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + 4]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
mov edi, dword [eax]
call dword [edi + 0x3c]
inc ebx
dec esi
jne 0x4a43de
lea eax, [ebp - 0x150]
mov ecx, 0x4a4de4
mov edx, dword [ebp - 8]
call fcn.00404f14
mov eax, dword [ebp - 0x150]
mov edx, dword [ebp - 0x1c]
call fcn.004a3878
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
dec esi
test esi, esi
jl 0x4a455f
inc esi
xor ebx, ebx
lea ecx, [ebp - 0x154]
mov edx, ebx
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x154]
call fcn.004a39dc
test al, al
je 0x4a4557
mov dl, 1
mov eax, dword [0x4a3810]
call fcn.00403cb0
mov dword [ebp - 0x24], eax
lea ecx, [ebp - 0x158]
mov edx, ebx
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0x158]
mov eax, dword [ebp - 0x24]
add eax, 4
call fcn.00404c50
push dword [ebp - 8]
push 0x4a4de4
lea ecx, [ebp - 0x160]
mov edx, ebx
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax]
call dword [edi + 0xc]
push dword [ebp - 0x160]
lea eax, [ebp - 0x15c]
mov edx, 3
call fcn.00404f90
mov eax, dword [ebp - 0x15c]
call fcn.004a3a78
mov edx, dword [ebp - 0x24]
mov dword [edx + 8], eax
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + 4]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
mov edi, dword [eax]
call dword [edi + 0x3c]
inc ebx
dec esi
jne 0x4a44b4
mov edx, 0x4a4084
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
call dword [ecx + 0x94]
mov dl, 1
mov eax, dword [0x479e74]
call fcn.0047b078
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x20]
mov edx, dword [eax]
call dword [edx + 0x14]
cmp eax, 2
jle 0x4a465a
push 2
lea ecx, [ebp - 0x180]
xor edx, edx
mov eax, dword [ebp - 0x20]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x180]
lea ecx, [ebp - 0x17c]
mov edx, 0x4a4dfc
call fcn.004a3bdc
mov eax, dword [ebp - 0x17c]
mov dword [ebp - 0x178], eax
mov byte [ebp - 0x174], 0xb
lea ecx, [ebp - 0x188]
mov edx, 1
mov eax, dword [ebp - 0x20]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x188]
mov edx, 0x4a4dfc
lea ecx, [ebp - 0x184]
call fcn.004a3bdc
mov eax, dword [ebp - 0x184]
mov dword [ebp - 0x170], eax
mov byte [ebp - 0x16c], 0xb
lea ecx, [ebp - 0x190]
mov edx, 2
mov eax, dword [ebp - 0x20]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x190]
mov edx, 0x4a4dfc
lea ecx, [ebp - 0x18c]
call fcn.004a3bdc
mov eax, dword [ebp - 0x18c]
mov dword [ebp - 0x168], eax
mov byte [ebp - 0x164], 0xb
lea ecx, [ebp - 0x178]
mov edx, 0x4a4e2c
mov eax, dword [ebp - 0x2c]
call fcn.0047a45c
jmp 0x4a47b2
mov eax, dword [ebp - 0x20]
mov edx, dword [eax]
call dword [edx + 0x14]
cmp eax, 2
jne 0x4a46fa
push 1
lea ecx, [ebp - 0x1a8]
xor edx, edx
mov eax, dword [ebp - 0x20]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x1a8]
mov edx, 0x4a4dfc
lea ecx, [ebp - 0x1a4]
call fcn.004a3bdc
mov eax, dword [ebp - 0x1a4]
mov dword [ebp - 0x1a0], eax
mov byte [ebp - 0x19c], 0xb
lea ecx, [ebp - 0x1b0]
mov edx, 1
mov eax, dword [ebp - 0x20]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x1b0]
mov edx, 0x4a4dfc
lea ecx, [ebp - 0x1ac]
call fcn.004a3bdc
mov eax, dword [ebp - 0x1ac]
mov dword [ebp - 0x198], eax
mov byte [ebp - 0x194], 0xb
lea ecx, [ebp - 0x1a0]
mov edx, 0x4a4e2c
mov eax, dword [ebp - 0x2c]
call fcn.0047a45c
jmp 0x4a47b2
mov eax, dword [ebp - 0x20]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
jne 0x4a4795
push 1
lea ecx, [ebp - 0x1b8]
xor edx, edx
mov eax, dword [ebp - 0x20]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x1b8]
mov edx, 0x4a4dfc
lea ecx, [ebp - 0x1b4]
call fcn.004a3bdc
mov eax, dword [ebp - 0x1b4]
mov dword [ebp - 0x1a0], eax
mov byte [ebp - 0x19c], 0xb
lea ecx, [ebp - 0x1c0]
mov edx, 1
mov eax, dword [ebp - 0x20]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x1c0]
mov edx, 0x4a4dfc
lea ecx, [ebp - 0x1bc]
call fcn.004a3bdc
mov eax, dword [ebp - 0x1bc]
mov dword [ebp - 0x198], eax
mov byte [ebp - 0x194], 0xb
lea ecx, [ebp - 0x1a0]
mov edx, 0x4a4e2c
mov eax, dword [ebp - 0x2c]
call fcn.0047a45c
jmp 0x4a47b2
mov eax, dword [ebp - 0x20]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x4a47b2
push 0
xor ecx, ecx
mov edx, 0x4a4e2c
mov eax, dword [ebp - 0x2c]
call fcn.0047a1b4
mov eax, dword [ebp - 0x20]
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
dec esi
test esi, esi
jl 0x4a47d7
inc esi
xor ebx, ebx
mov edx, ebx
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
call dword [ecx + 0x18]
call fcn.00403ce0
inc ebx
dec esi
jne 0x4a47c4
lea eax, [ebp - 0x20]
call fcn.0040f314
mov eax, dword [ebp - 4]
call fcn.00409aa4
test al, al
je 0x4a48b7
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
call fcn.004a3dac
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x4a4890
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax]
call dword [edx + 0x14]
push eax
lea eax, [ebp - 0x10]
mov ecx, 1
mov edx, dword [0x4a40c4]
call fcn.004061a8
add esp, 4
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
dec esi
test esi, esi
jl 0x4a4860
inc esi
xor ebx, ebx
lea ecx, [ebp - 0x1c4]
mov edx, ebx
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0x1c4]
mov eax, dword [ebp - 0x10]
lea eax, [eax + ebx*4]
call fcn.00404c50
inc ebx
dec esi
jne 0x4a483b
mov edx, 0x4a4e38
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
call dword [ecx + 8]
push eax
lea eax, [ebp - 0x1d4]
mov edx, dword [ebp - 0x10]
mov ecx, dword [0x4a40c4]
call fcn.004153bc
lea edx, [ebp - 0x1d4]
pop eax
call fcn.0047d01c
jmp 0x4a48b7
mov edx, 0x4a4e38
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
call dword [ecx + 8]
push eax
lea eax, [ebp - 0x1e4]
xor edx, edx
call fcn.00415300
lea edx, [ebp - 0x1e4]
pop eax
call fcn.0047d01c
mov eax, dword [ebp - 8]
call fcn.00409aa4
test al, al
je 0x4a498f
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
call fcn.004a3dac
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x4a4968
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax]
call dword [edx + 0x14]
push eax
lea eax, [ebp - 0x10]
mov ecx, 1
mov edx, dword [0x4a40c4]
call fcn.004061a8
add esp, 4
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
dec esi
test esi, esi
jl 0x4a4938
inc esi
xor ebx, ebx
lea ecx, [ebp - 0x1e8]
mov edx, ebx
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0x1e8]
mov eax, dword [ebp - 0x10]
lea eax, [eax + ebx*4]
call fcn.00404c50
inc ebx
dec esi
jne 0x4a4913
mov edx, 0x4a4e4c
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
call dword [ecx + 8]
push eax
lea eax, [ebp - 0x1f8]
mov edx, dword [ebp - 0x10]
mov ecx, dword [0x4a40c4]
call fcn.004153bc
lea edx, [ebp - 0x1f8]
pop eax
call fcn.0047d01c
jmp 0x4a498f
mov edx, 0x4a4e4c
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
call dword [ecx + 8]
push eax
lea eax, [ebp - 0x208]
xor edx, edx
call fcn.00415300
lea edx, [ebp - 0x208]
pop eax
call fcn.0047d01c
mov byte [ebp - 0x25], 0x63
lea eax, [ebp - 0x20c]
movzx edx, byte [ebp - 0x25]
call fcn.00404de4
lea eax, [ebp - 0x20c]
mov edx, 0x4a4e60
call fcn.00404ec8
mov eax, dword [ebp - 0x20c]
call fcn.00409aa4
test al, al
je 0x4a4ae6
mov dl, 1
mov eax, dword [0x417d7c]
call fcn.00403cb0
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x210]
movzx edx, byte [ebp - 0x25]
call fcn.00404de4
lea eax, [ebp - 0x210]
mov edx, 0x4a4e60
call fcn.00404ec8
mov eax, dword [ebp - 0x210]
mov edx, dword [ebp - 0x1c]
call fcn.004a3dac
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x4a4aa7
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax]
call dword [edx + 0x14]
push eax
lea eax, [ebp - 0x10]
mov ecx, 1
mov edx, dword [0x4a40c4]
call fcn.004061a8
add esp, 4
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
dec esi
test esi, esi
jl 0x4a4a67
inc esi
xor ebx, ebx
lea ecx, [ebp - 0x214]
mov edx, ebx
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0x214]
mov eax, dword [ebp - 0x10]
lea eax, [eax + ebx*4]
call fcn.00404c50
inc ebx
dec esi
jne 0x4a4a42
lea eax, [ebp - 0x218]
movzx edx, byte [ebp - 0x25]
call fcn.004054f0
mov edx, dword [ebp - 0x218]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
call dword [ecx + 8]
push eax
lea eax, [ebp - 0x228]
mov edx, dword [ebp - 0x10]
mov ecx, dword [0x4a40c4]
call fcn.004153bc
lea edx, [ebp - 0x228]
pop eax
call fcn.0047d01c
jmp 0x4a4ade
lea eax, [ebp - 0x22c]
movzx edx, byte [ebp - 0x25]
call fcn.004054f0
mov edx, dword [ebp - 0x22c]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
call dword [ecx + 8]
push eax
lea eax, [ebp - 0x23c]
xor edx, edx
call fcn.00415300
lea edx, [ebp - 0x23c]
pop eax
call fcn.0047d01c
lea eax, [ebp - 0x1c]
call fcn.0040f314
inc byte [ebp - 0x25]
cmp byte [ebp - 0x25], 0x7b
jne 0x4a4993
cmp dword [ebp - 0x1c], 0
je 0x4a4b01
lea eax, [ebp - 0x1c]
call fcn.0040f314
mov eax, dword [ebp - 0x2c]
call fcn.0047ba30
test al, al
jne 0x4a4b1a
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
call dword [ecx + 0x1c]
jmp 0x4a4b22
mov eax, dword [ebp - 0x14]
call fcn.00404bfc
mov eax, dword [ebp - 0x2c]
call fcn.00403ce0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4a4c00
lea eax, [ebp - 0x23c]
call fcn.00410f28
lea eax, [ebp - 0x22c]
call fcn.004053dc
lea eax, [ebp - 0x228]
call fcn.00410f28
lea eax, [ebp - 0x218]
call fcn.004053dc
lea eax, [ebp - 0x214]
mov edx, 3
call fcn.00404c20
lea eax, [ebp - 0x208]
mov edx, dword [0x4010e4]
mov ecx, 2
call fcn.00405804
lea eax, [ebp - 0x1e8]
call fcn.00404bfc
lea eax, [ebp - 0x1e4]
mov edx, dword [0x4010e4]
mov ecx, 2
call fcn.00405804
lea eax, [ebp - 0x1c4]
mov edx, 9
call fcn.00404c20
lea eax, [ebp - 0x190]
mov edx, 6
call fcn.00404c20
lea eax, [ebp - 0x160]
mov edx, 0xc
call fcn.00404c20
lea eax, [ebp - 0x10]
mov edx, dword [0x4a40c4]
call fcn.004062c8
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.00404c20
ret