Function at 0x47fe10
Capabilities:
Get common file path
Get program files directory

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x2d
push 0
push 0
dec ecx
jne 0x47fe18
push ecx
push ebx
push esi
push edi
lea ebx, [ebp - 0x114]
mov esi, 0x51ce84
xor eax, eax
push ebp
push 0x480351
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x11c]
xor eax, eax
call fcn.00402b04
mov eax, dword [ebp - 0x11c]
lea edx, [ebp - 0x118]
call fcn.00409fcc
mov edx, dword [ebp - 0x118]
mov eax, 0x51ce54
call fcn.0040474c
push 0x104
push ebx
call sub.kernel32.dll_GetWindowsDirectoryA
lea eax, [ebp - 0x120]
mov edx, ebx
mov ecx, 0x104
call fcn.00404978
mov eax, dword [ebp - 0x120]
lea edx, [ebp - 8]
call fcn.0040a020
mov eax, 0x51ce58
mov edx, ebx
mov ecx, 0x104
call fcn.00404978
lea edx, [ebp - 0x124]
mov eax, dword [0x51ce58]
call fcn.0040e7c4
mov edx, dword [ebp - 0x124]
mov eax, 0x51ce58
call fcn.0040474c
push ebx
push 0
push 0
push 0x1c
push 0
call sub.SHFolder.dll_SHGetFolderPathA
lea eax, [ebp - 0xc]
mov edx, ebx
mov ecx, 0x104
call fcn.00404978
push ebx
push 0
push 0
push 8
push 0
call sub.SHFolder.dll_SHGetFolderPathA
mov eax, 0x51ce60
mov edx, ebx
mov ecx, 0x104
call fcn.00404978
push ebx
push 0
push 0
push 0x20
push 0
call sub.SHFolder.dll_SHGetFolderPathA
mov eax, 0x51ce78
mov edx, ebx
mov ecx, 0x104
call fcn.00404978
push ebx
push 0
push 0
push 0x22
push 0
call sub.SHFolder.dll_SHGetFolderPathA
mov eax, 0x51ce80
mov edx, ebx
mov ecx, 0x104
call fcn.00404978
push ebx
push 0
push 0
push 0x21
push 0
call sub.SHFolder.dll_SHGetFolderPathA
mov eax, 0x51ce7c
mov edx, ebx
mov ecx, 0x104
call fcn.00404978
push ebx
push 0
push 0
push 0x1a
push 0
call sub.SHFolder.dll_SHGetFolderPathA
lea eax, [ebp - 0x10]
mov edx, ebx
mov ecx, 0x104
call fcn.00404978
cmp dword [0x51ce3c], 5
jne 0x47ff99
mov eax, 0x51ce6c
mov ecx, 0x480368
mov edx, dword [ebp - 8]
call fcn.00404a14
jmp 0x47ffab
mov eax, 0x51ce6c
mov ecx, 0x48037c
mov edx, dword [ebp - 8]
call fcn.00404a14
push 0x51ce5c
mov edx, dword [ebp - 0x10]
mov eax, 0x480394
call fcn.00409f48
mov ecx, eax
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.00404c2c
lea edx, [ebp - 0x128]
mov eax, dword [ebp - 0x10]
call fcn.0040e7c4
mov edx, dword [ebp - 0x128]
lea eax, [ebp - 0x10]
call fcn.00404790
push ebx
push 0
push 0
push 0x26
push 0
call sub.SHFolder.dll_SHGetFolderPathA
mov eax, 0x51ce64
mov edx, ebx
mov ecx, 0x104
call fcn.00404978
push ebx
push 0
push 0
push 0x2b
push 0
call sub.SHFolder.dll_SHGetFolderPathA
mov eax, 0x51ce68
mov edx, ebx
mov ecx, 0x104
call fcn.00404978
mov eax, esi
mov ecx, 0x4803a0
mov edx, dword [ebp - 0x10]
call fcn.00404a14
lea eax, [ebp - 0x12c]
mov ecx, 0x4803bc
mov edx, dword [esi]
call fcn.00404a14
mov ecx, dword [ebp - 0x12c]
mov dl, 1
mov eax, dword [0x4370fc]
call fcn.004371ac
mov ebx, eax
push 0
lea eax, [ebp - 4]
push eax
mov ecx, 0x4803d4
mov edx, 0x4803e4
mov eax, ebx
mov edi, dword [eax]
call dword [edi]
mov al, byte [0x4803f0]
push eax
lea eax, [ebp - 0x130]
push eax
mov ecx, 0x480394
mov edx, 0x4803fc
mov eax, dword [ebp - 4]
call fcn.0040efe0
mov edx, dword [ebp - 0x130]
lea eax, [ebp - 4]
call fcn.00404790
mov eax, esi
mov edx, dword [ebp - 4]
call fcn.004049d0
mov eax, ebx
call fcn.004038a8
mov eax, 0x51ce8c
mov ecx, 0x480408
mov edx, dword [esi]
call fcn.00404a14
mov eax, 0x51ce90
mov ecx, 0x480420
mov edx, dword [esi]
call fcn.00404a14
lea edx, [ebp - 0x134]
mov eax, dword [ebp - 0xc]
call fcn.0040e7c4
push dword [ebp - 0x134]
push 0x4803a0
push dword [ebp - 4]
push 0x48043c
mov eax, 0x51ce88
mov edx, 4
call fcn.00404a88
lea edx, [ebp - 0x138]
mov eax, dword [ebp - 0xc]
call fcn.0040e7c4
mov edx, dword [ebp - 0x138]
mov eax, 0x51ce94
mov ecx, 0x48044c
call fcn.00404a14
lea edx, [ebp - 0x13c]
mov eax, dword [0x51ce5c]
call fcn.0040e7c4
mov edx, dword [ebp - 0x13c]
mov eax, 0x51ce5c
call fcn.0040474c
lea edx, [ebp - 0x140]
mov eax, dword [0x51ce60]
call fcn.0040e7c4
mov edx, dword [ebp - 0x140]
mov eax, 0x51ce60
call fcn.0040474c
lea edx, [ebp - 0x144]
mov eax, dword [0x51ce64]
call fcn.0040e7c4
mov edx, dword [ebp - 0x144]
mov eax, 0x51ce64
call fcn.0040474c
lea edx, [ebp - 0x148]
mov eax, dword [0x51ce68]
call fcn.0040e7c4
mov edx, dword [ebp - 0x148]
mov eax, 0x51ce68
call fcn.0040474c
lea edx, [ebp - 0x14c]
mov eax, dword [0x51ce78]
call fcn.0040e7c4
mov edx, dword [ebp - 0x14c]
mov eax, 0x51ce78
call fcn.0040474c
mov edx, dword [0x51ce78]
mov eax, 0x48047c
call fcn.00404d10
test eax, eax
jne 0x4801e7
mov eax, 0x51ce78
mov edx, 0x48048c
call fcn.004049d0
lea edx, [ebp - 0x150]
mov eax, dword [0x51ce80]
call fcn.0040e7c4
mov edx, dword [ebp - 0x150]
mov eax, 0x51ce80
call fcn.0040474c
lea edx, [ebp - 0x154]
mov eax, dword [0x51ce7c]
call fcn.0040e7c4
mov edx, dword [ebp - 0x154]
mov eax, 0x51ce7c
call fcn.0040474c
cmp dword [0x51ce3c], 5
jne 0x480250
lea eax, [ebp - 0xc]
push eax
mov edx, dword [ebp - 0xc]
mov eax, 0x480394
call fcn.00409f48
mov ecx, eax
mov edx, 1
mov eax, dword [ebp - 0xc]
call fcn.00404c2c
lea edx, [ebp - 0x158]
mov eax, dword [ebp - 0xc]
call fcn.0040e7c4
mov edx, dword [ebp - 0x158]
lea eax, [ebp - 0xc]
call fcn.00404790
lea edx, [ebp - 0x164]
mov eax, 0x4804a4
call fcn.0040f7c8
mov eax, dword [ebp - 0x164]
lea edx, [ebp - 0x160]
call fcn.00408e68
mov eax, dword [ebp - 0x160]
lea edx, [ebp - 0x15c]
call fcn.00480734
mov edx, dword [ebp - 0x15c]
mov eax, 0x51ce70
call fcn.0040474c
mov eax, dword [0x51ce70]
call fcn.004049c8
cmp eax, 3
jge 0x4802f1
lea eax, [ebp - 0x168]
mov ecx, 0x4804b4
mov edx, dword [ebp - 0xc]
call fcn.00404a14
mov eax, dword [ebp - 0x168]
call fcn.00409cd8
test al, al
je 0x4802f1
mov eax, 0x51ce70
mov ecx, 0x4804b4
mov edx, dword [ebp - 0xc]
call fcn.00404a14
lea edx, [ebp - 0x16c]
mov eax, dword [0x51ce70]
call fcn.0040e7c4
mov edx, dword [ebp - 0x16c]
mov eax, 0x51ce70
call fcn.0040474c
mov eax, 0x51ce74
mov ecx, 0x4804c4
mov edx, dword [0x51ce58]
call fcn.00404a14
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x480358
lea eax, [ebp - 0x16c]
mov edx, 0x16
call fcn.0040471c
lea eax, [ebp - 0x10]
mov edx, 4
call fcn.0040471c
ret