Function at 0x53ab78
Capabilities:
Get common file path
Get file system object information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe78
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x184], ebx
mov dword [ebp - 0x188], ebx
mov dword [ebp - 0x180], ebx
mov dword [ebp - 0x178], ebx
mov dword [ebp - 0x17c], ebx
mov dword [ebp - 0x174], ebx
mov dword [ebp - 0x10], ebx
test dl, dl
je 0x53abb9
add esp, 0xfffffff0
call fcn.00403ddc
mov ebx, ecx
mov byte [ebp - 5], dl
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x53b06e
push dword fs:[eax]
mov dword fs:[eax], esp
mov ecx, ebx
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.004df500
mov eax, dword [ebp - 4]
mov dl, byte [ebp + 0x14]
mov byte [eax + 0x450], dl
mov ecx, ebx
mov dl, 1
mov eax, dword [0x536b5c]
call fcn.00536fd0
mov esi, eax
mov eax, dword [ebp - 4]
mov dword [eax + 0x344], esi
mov eax, esi
mov edx, dword [ebp - 4]
mov dword [eax + 0x124], edx
mov dword [eax + 0x120], fcn.0053ab00
mov edx, dword [ebp - 4]
mov dword [eax + 0x12c], edx
mov dword [eax + 0x128], 0x53aaa8
mov edx, dword [ebp - 4]
mov dword [eax + 0x134], edx
mov dword [eax + 0x130], 0x53aaa8
mov edx, dword [ebp - 4]
mov dword [eax + 0x13c], edx
mov dword [eax + 0x138], 0x53aaa8
mov edx, dword [ebp - 4]
mov dword [eax + 0x144], edx
mov dword [eax + 0x140], 0x53aaa8
mov edx, dword [ebp - 4]
mov dword [eax + 0x14c], edx
mov dword [eax + 0x148], 0x53aaa8
mov edx, dword [ebp - 4]
mov dword [eax + 0x154], edx
mov dword [eax + 0x150], 0x53aaa8
mov edx, dword [ebp - 4]
mov dword [eax + 0x15c], edx
mov dword [eax + 0x158], 0x53aaa8
mov edx, dword [ebp - 4]
mov dword [eax + 0x164], edx
mov dword [eax + 0x160], 0x53aaa8
mov edx, dword [ebp - 4]
mov dword [eax + 0x174], edx
mov dword [eax + 0x170], 0x53aaa8
mov edx, dword [ebp - 4]
mov dword [eax + 0x17c], edx
mov dword [eax + 0x178], 0x53aaa8
mov edx, dword [ebp - 4]
mov dword [eax + 0x184], edx
mov dword [eax + 0x180], fcn.0053ab00
mov edx, dword [ebp - 4]
mov dword [eax + 0x18c], edx
mov dword [eax + 0x188], fcn.0053ab00
mov edx, dword [ebp - 4]
mov dword [eax + 0x194], edx
mov dword [eax + 0x190], 0x53aaa8
mov edx, dword [ebp - 4]
mov dword [eax + 0x19c], edx
mov dword [eax + 0x198], 0x53aaa8
mov edx, dword [ebp - 4]
mov dword [eax + 0x1a4], edx
mov dword [eax + 0x1a0], 0x53aaa8
mov edx, dword [ebp - 4]
mov dword [eax + 0x1ac], edx
mov dword [eax + 0x1a8], 0x53aaa8
mov edx, dword [ebp - 4]
mov dword [eax + 0x1b4], edx
mov dword [eax + 0x1b0], 0x53aaa8
call fcn.0053722c
mov eax, dword [ebp - 4]
mov dl, byte [ebp + 0x10]
mov byte [eax + 0x348], dl
mov eax, dword [ebp - 4]
mov dl, byte [ebp + 0xc]
mov byte [eax + 0x458], dl
mov eax, dword [ebp - 4]
mov dl, byte [ebp + 8]
mov byte [eax + 0x468], dl
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x338], edx
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x340], edx
mov ecx, dword [ebp - 4]
mov dl, 1
mov eax, dword [0x4a8134]
call fcn.004b8c20
mov edx, dword [ebp - 4]
mov dword [edx + 0x34c], eax
mov eax, dword [ebp - 4]
add eax, 0x45c
mov edx, 0x104
call fcn.00404fd0
push 0x104
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x45c]
call fcn.00404e44
push eax
call sub.kernel32.dll_GetWindowsDirectoryA
mov edx, eax
mov eax, dword [ebp - 4]
add eax, 0x45c
call fcn.00404fd0
mov eax, dword [ebp - 4]
add eax, 0x45c
call fcn.00538984
push 0x4001
push 0x160
lea eax, [ebp - 0x170]
push eax
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x45c]
call fcn.00404e44
push eax
call sub.shell32.dll_SHGetFileInfoA
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34c]
call fcn.004b8f7c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34c]
mov byte [eax + 0x42], 1
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.004e1358
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x16c]
mov dword [eax + 0x44c], edx
push 0x4003
push 0x160
lea eax, [ebp - 0x170]
push eax
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x45c]
call fcn.00404e44
push eax
call sub.shell32.dll_SHGetFileInfoA
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x16c]
mov dword [eax + 0x448], edx
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov dword [eax + 0x2ec], edx
mov dword [eax + 0x2e8], 0x5391d4
mov eax, dword [ebp - 4]
mov byte [eax + 0x459], 0
lea eax, [ebp - 0x174]
call fcn.0040cd3c
mov edx, dword [ebp - 0x174]
mov eax, dword [ebp - 4]
add eax, 0x460
call fcn.004049bc
mov bl, 0x41
lea eax, [ebp - 0x17c]
mov edx, ebx
call fcn.00404b48
mov eax, dword [ebp - 0x17c]
lea edx, [ebp - 0x178]
call fcn.0040b75c
mov edx, dword [ebp - 0x178]
xor eax, eax
mov al, bl
mov ecx, dword [ebp - 4]
lea eax, [ecx + eax*4 + 0x24c]
mov ecx, 0x53b0a4
call fcn.00404c98
inc ebx
cmp bl, 0x5b
jne 0x53aec9
xor eax, eax
push ebp
push 0x53af73
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x180]
call fcn.0040cd3c
mov eax, dword [ebp - 0x180]
mov al, byte [eax]
call fcn.00402d70
and eax, 0xff
mov edx, dword [ebp - 4]
lea eax, [edx + eax*4 + 0x24c]
push eax
lea eax, [ebp - 0x188]
call fcn.0040cd3c
mov eax, dword [ebp - 0x188]
lea edx, [ebp - 0x184]
call fcn.0040b75c
mov edx, dword [ebp - 0x184]
pop eax
call fcn.004049bc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x53af7d
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.004dff40
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.004e002c
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x454], edx
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x428], edx
mov dword [eax + 0x42c], edx
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x438], edx
mov dword [eax + 0x43c], edx
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x440], edx
mov dword [eax + 0x444], edx
lea eax, [ebp - 0xc]
push eax
push 0x11
push 0
call sub.shell32.dll_SHGetSpecialFolderLocation
call fcn.0041de0c
test al, al
je 0x53b015
lea eax, [ebp - 0x10]
push eax
call sub.shell32.dll_SHGetDesktopFolder
call fcn.0041de0c
test al, al
je 0x53b015
mov eax, dword [ebp - 4]
add eax, 0x46c
push eax
mov eax, dword [0x5cc284]
push eax
push 0
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [eax]
call dword [eax + 0x14]
mov eax, dword [ebp - 4]
mov byte [eax + 0x470], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x471], 0
mov dl, 1
mov eax, dword [0x41eb20]
call fcn.00403a48
mov edx, dword [ebp - 4]
mov dword [edx + 0x474], eax
mov eax, dword [ebp - 4]
mov byte [eax + 0x480], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x53b075
lea eax, [ebp - 0x188]
mov edx, 6
call fcn.0040498c
lea eax, [ebp - 0x10]
call fcn.00406b88
ret