Function at 0x549700
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5b7dec
mov eax, dword fs:[0]
push eax
sub esp, 0x44c
mov eax, dword [0x63b404]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x44c], esi
test esi, esi
je 0x549fd4
push str.kernel32.dll
mov dword [ebp - 0x42c], 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x549fcb
push str.GetCurrentPackageFullName
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x549fcb
push 0
lea ecx, [ebp - 0x42c]
push ecx
call eax
cmp eax, 0x7a
jne 0x549fcb
lea eax, [ebp - 0x218]
xor ebx, ebx
push eax
push ebx
push ebx
push 0x1a
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x5497c9
push 8
call fcn.0056f5ce
add esp, 4
mov dword [ebp - 0x42c], eax
lea ecx, [ebp - 0x218]
mov dword [ebp - 4], 5
push ecx
mov ecx, eax
call fcn.00545630
mov ebx, eax
mov dword [ebp - 4], 0xffffffff
xor edi, edi
lea eax, [ebp - 0x420]
push eax
push edi
push edi
push 0x1c
push edi
mov dword [ebp - 0x434], edi
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x54981b
push 8
call fcn.0056f5ce
add esp, 4
mov dword [ebp - 0x42c], eax
lea ecx, [ebp - 0x420]
mov dword [ebp - 4], 0x16
push ecx
mov ecx, eax
call fcn.00545630
mov edi, eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x434], edi
push ebx
mov ecx, esi
call fcn.005473f0
test al, al
je 0x549cb1
call fcn.00548f30
mov ecx, eax
call fcn.00549210
mov edi, eax
mov dword [ebp - 0x42c], 0
push 4
mov dword [ebp - 0x44c], edi
mov esi, 1
call fcn.0056f8a6
add esp, 4
mov dword [ebp - 0x428], eax
push 0xffffffffffffffff
push 0x61bab8
push 2
push eax
lea eax, [ebp - 0x42c]
push eax
call fcn.00585d85
xor ecx, ecx
test eax, eax
lea eax, [ebp - 0x428]
cmovne esi, ecx
add esp, 0x10
mov ecx, edi
mov dword [ebp - 0x424], esi
push eax
call fcn.00546950
mov esi, eax
mov eax, dword [ebp - 0x428]
test eax, eax
je 0x5498a9
push 2
push eax
call fcn.0056f898
add esp, 8
lea eax, [esi - 1]
mov ecx, edi
push eax
push 0
call fcn.005469d0
push 4
mov dword [ebp - 0x43c], eax
mov esi, 1
mov dword [ebp - 0x42c], 0
call fcn.0056f8a6
add esp, 4
mov dword [ebp - 0x428], eax
push 0xffffffffffffffff
push 0x61bab8
push 2
push eax
lea eax, [ebp - 0x42c]
push eax
call fcn.00585d85
xor ecx, ecx
test eax, eax
lea eax, [ebp - 0x428]
cmovne esi, ecx
mov ecx, dword [ebp - 0x43c]
add esp, 0x10
mov dword [ebp - 0x424], esi
push eax
call fcn.00546950
mov esi, eax
mov eax, dword [ebp - 0x428]
test eax, eax
je 0x54992a
push 2
push eax
call fcn.0056f898
add esp, 8
push 0xffffffffffffffff
lea eax, [esi + 1]
mov ecx, edi
push eax
call fcn.005469d0
push 4
mov edi, eax
mov dword [ebp - 0x42c], 0
mov esi, 1
call fcn.0056f8a6
add esp, 4
mov dword [ebp - 0x448], eax
push 0xffffffffffffffff
push 0x6259f8
push 2
push eax
lea eax, [ebp - 0x42c]
push eax
call fcn.00585d85
xor ecx, ecx
add esp, 0x14
test eax, eax
cmovne esi, ecx
mov dword [ebp - 0x444], esi
mov dword [ebp - 4], 0x20
lea esi, [ecx + 1]
push 4
mov dword [ebp - 0x438], ecx
call fcn.0056f8a6
add esp, 4
mov dword [ebp - 0x428], eax
push 0xffffffffffffffff
push 0x61bab8
push 2
push eax
lea eax, [ebp - 0x438]
push eax
call fcn.00585d85
xor ecx, ecx
test eax, eax
cmovne esi, ecx
mov dword [ebp - 0x424], esi
add esp, 0x10
mov byte [ebp - 4], 0x21
lea eax, [ebp - 0x448]
mov ecx, edi
push eax
call fcn.005468a0
push eax
push ecx
lea eax, [ebp - 0x428]
mov ecx, edi
push eax
call fcn.005468a0
inc eax
mov ecx, edi
push eax
call fcn.005469d0
mov dword [ebp - 0x440], eax
mov eax, dword [ebp - 0x428]
test eax, eax
je 0x549a0a
push 2
push eax
call fcn.0056f898
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x448]
test eax, eax
je 0x549a26
push 2
push eax
call fcn.0056f898
add esp, 8
push 4
mov dword [ebp - 0x42c], 0
mov esi, 1
call fcn.0056f8a6
add esp, 4
mov dword [ebp - 0x428], eax
push 0xffffffffffffffff
push 0x6259f8
push 2
push eax
lea eax, [ebp - 0x42c]
push eax
call fcn.00585d85
xor ecx, ecx
add esp, 0x14
test eax, eax
cmovne esi, ecx
mov dword [ebp - 0x424], esi
push 0xffffffffffffffff
push ecx
lea eax, [ebp - 0x428]
mov dword [ebp - 4], 0x22
push eax
mov ecx, edi
call fcn.00546950
inc eax
mov ecx, edi
push eax
call fcn.005469d0
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x428]
mov dword [ebp - 0x438], esi
test eax, eax
je 0x549ab0
push 2
push eax
call fcn.0056f898
add esp, 8
push 0x30
mov dword [ebp - 0x428], 0
mov dword [ebp - 0x42c], 0
mov dword [ebp - 0x424], 0x17
call fcn.0056f8a6
add esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x424]
inc eax
mov dword [ebp - 0x428], ecx
push 0xffffffffffffffff
push str._sPackages_s__sGames
push eax
push ecx
lea eax, [ebp - 0x42c]
push eax
call fcn.00585d85
mov ecx, dword [ebp - 0x424]
xor edx, edx
add esp, 0x14
test eax, eax
cmovne ecx, edx
mov dword [ebp - 0x424], ecx
push esi
push dword [ebp - 0x440]
lea eax, [ebp - 0x428]
mov dword [ebp - 4], 0x23
push ebx
push eax
call fcn.00545b40
mov dword [ebp - 0x444], eax
add esp, 0x10
mov eax, dword [ebp - 0x428]
test eax, eax
je 0x549b4b
push 2
push eax
call fcn.0056f898
add esp, 8
mov esi, dword [ebp - 0x44c]
test esi, esi
je 0x549b7e
mov eax, dword [esi]
test eax, eax
je 0x549b6c
push 2
push eax
call fcn.0056f898
add esp, 8
mov dword [esi], 0
push 8
push esi
mov dword [esi + 4], 0
call fcn.0056f898
add esp, 8
mov esi, dword [ebp - 0x43c]
test esi, esi
je 0x549bb1
mov eax, dword [esi]
test eax, eax
je 0x549b9f
push 2
push eax
call fcn.0056f898
add esp, 8
mov dword [esi], 0
push 8
push esi
mov dword [esi + 4], 0
call fcn.0056f898
add esp, 8
test edi, edi
je 0x549bde
mov eax, dword [edi]
test eax, eax
je 0x549bcc
push 2
push eax
call fcn.0056f898
add esp, 8
mov dword [edi], 0
push 8
push edi
mov dword [edi + 4], 0
call fcn.0056f898
add esp, 8
mov esi, dword [ebp - 0x440]
test esi, esi
je 0x549c11
mov eax, dword [esi]
test eax, eax
je 0x549bff
push 2
push eax
call fcn.0056f898
add esp, 8
mov dword [esi], 0
push 8
push esi
mov dword [esi + 4], 0
call fcn.0056f898
add esp, 8
mov esi, dword [ebp - 0x438]
test esi, esi
je 0x549c44
mov eax, dword [esi]
test eax, eax
je 0x549c32
push 2
push eax
call fcn.0056f898
add esp, 8
mov dword [esi], 0
push 8
push esi
mov dword [esi + 4], 0
call fcn.0056f898
add esp, 8
mov edi, dword [ebp - 0x434]
mov esi, dword [ebp - 0x444]
test ebx, ebx
je 0x549c7d
mov eax, dword [ebx]
test eax, eax
je 0x549c6b
push 2
push eax
call fcn.0056f898
add esp, 8
mov dword [ebx], 0
push 8
push ebx
mov dword [ebx + 4], 0
call fcn.0056f898
add esp, 8
test edi, edi
je 0x549caa
mov eax, dword [edi]
test eax, eax
je 0x549c98
push 2
push eax
call fcn.0056f898
add esp, 8
mov dword [edi], 0
push 8
push edi
mov dword [edi + 4], 0
call fcn.0056f898
add esp, 8
mov eax, esi
jmp 0x549fd6
push edi
mov ecx, esi
call fcn.005473f0
test al, al
je 0x549fbd
call fcn.00548f30
mov ecx, eax
call fcn.00549210
mov esi, eax
lea ecx, [ebp - 0x428]
push 0x61bab8
mov dword [ebp - 0x434], esi
call fcn.005455a0
push ecx
lea eax, [ebp - 0x428]
mov ecx, esi
push eax
call fcn.00546950
lea ecx, [ebp - 0x428]
mov esi, eax
call fcn.00500b70
mov ecx, dword [ebp - 0x434]
lea eax, [esi - 1]
push eax
push 0
call fcn.005469d0
mov esi, eax
lea ecx, [ebp - 0x428]
push 0x61bab8
mov dword [ebp - 0x440], esi
call fcn.005455a0
push ecx
lea eax, [ebp - 0x428]
mov ecx, esi
push eax
call fcn.00546950
lea ecx, [ebp - 0x428]
mov esi, eax
call fcn.00500b70
mov ecx, dword [ebp - 0x434]
lea eax, [esi + 1]
push 0xffffffffffffffff
push eax
call fcn.005469d0
push 0x6259f8
lea ecx, [ebp - 0x430]
mov esi, eax
call fcn.005455a0
push 0x61bab8
lea ecx, [ebp - 0x428]
mov dword [ebp - 4], 0x24
call fcn.005455a0
push ecx
lea eax, [ebp - 0x430]
mov byte [ebp - 4], 0x25
push eax
mov ecx, esi
call fcn.005468a0
push eax
push ecx
lea eax, [ebp - 0x428]
mov ecx, esi
push eax
call fcn.005468a0
inc eax
mov ecx, esi
push eax
call fcn.005469d0
lea ecx, [ebp - 0x428]
mov dword [ebp - 0x43c], eax
call fcn.00500b70
lea ecx, [ebp - 0x430]
mov dword [ebp - 4], 0xffffffff
call fcn.00500b70
push 0x6259f8
lea ecx, [ebp - 0x428]
call fcn.005455a0
push 0xffffffffffffffff
push ecx
lea eax, [ebp - 0x428]
mov dword [ebp - 4], 0x26
push eax
mov ecx, esi
call fcn.00546950
inc eax
mov ecx, esi
push eax
call fcn.005469d0
lea ecx, [ebp - 0x428]
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 0xffffffff
call fcn.00500b70
push str._sPackages_s__sLocalCacheLocal
lea ecx, [ebp - 0x454]
call fcn.005455a0
mov dword [ebp - 4], 0x27
push dword [ebp - 0x438]
push dword [ebp - 0x43c]
push edi
push eax
call fcn.00545b40
add esp, 0x10
mov dword [ebp - 0x42c], eax
lea ecx, [ebp - 0x454]
mov dword [ebp - 4], 0xffffffff
call fcn.00500b70
mov ecx, dword [ebp - 0x44c]
call fcn.00545a50
push dword [ebp - 0x42c]
mov ecx, eax
mov dword [ebp - 0x444], eax
push edi
call fcn.00547200
mov eax, dword [ebp - 0x434]
test eax, eax
je 0x549eb5
mov ecx, dword [eax]
test ecx, ecx
je 0x549ea3
push 2
push ecx
call fcn.0056f898
mov eax, dword [ebp - 0x434]
add esp, 8
mov dword [eax], 0
push 8
push eax
mov dword [eax + 4], 0
call fcn.0056f898
add esp, 8
mov eax, dword [ebp - 0x440]
test eax, eax
je 0x549eee
mov ecx, dword [eax]
test ecx, ecx
je 0x549edc
push 2
push ecx
call fcn.0056f898
mov eax, dword [ebp - 0x440]
add esp, 8
mov dword [eax], 0
push 8
push eax
mov dword [eax + 4], 0
call fcn.0056f898
add esp, 8
test esi, esi
je 0x549f1b
mov eax, dword [esi]
test eax, eax
je 0x549f09
push 2
push eax
call fcn.0056f898
add esp, 8
mov dword [esi], 0
push 8
push esi
mov dword [esi + 4], 0
call fcn.0056f898
add esp, 8
mov esi, dword [ebp - 0x43c]
test esi, esi
je 0x549f4e
mov eax, dword [esi]
test eax, eax
je 0x549f3c
push 2
push eax
call fcn.0056f898
add esp, 8
mov dword [esi], 0
push 8
push esi
mov dword [esi + 4], 0
call fcn.0056f898
add esp, 8
mov esi, dword [ebp - 0x438]
test esi, esi
je 0x549f81
mov eax, dword [esi]
test eax, eax
je 0x549f6f
push 2
push eax
call fcn.0056f898
add esp, 8
mov dword [esi], 0
push 8
push esi
mov dword [esi + 4], 0
call fcn.0056f898
add esp, 8
mov esi, dword [ebp - 0x42c]
test esi, esi
je 0x549c4a
mov eax, dword [esi]
test eax, eax
je 0x549fa6
push 2
push eax
call fcn.0056f898
add esp, 8
mov dword [esi], 0
push 8
push esi
mov dword [esi + 4], 0
call fcn.0056f898
add esp, 8
jmp 0x549c4a
mov ecx, esi
call fcn.00545a50
mov esi, eax
jmp 0x549c50
mov ecx, esi
call fcn.00545a50
jmp 0x549fd6
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0056f3c2
mov esp, ebp
pop ebp
ret