Function at 0x548910
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5b6fcc
mov eax, dword fs:[0]
push eax
sub esp, 0x44c
mov eax, dword [0x63a404]
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 0x5491e4
push str.kernel32.dll
mov dword [ebp - 0x42c], 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x5491db
push str.GetCurrentPackageFullName
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x5491db
push 0
lea ecx, [ebp - 0x42c]
push ecx
call eax
cmp eax, 0x7a
jne 0x5491db
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 0x5489d9
push 8
call fcn.0056e7bf
add esp, 4
mov dword [ebp - 0x42c], eax
lea ecx, [ebp - 0x218]
mov dword [ebp - 4], 5
push ecx
mov ecx, eax
call fcn.00544840
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 0x548a2b
push 8
call fcn.0056e7bf
add esp, 4
mov dword [ebp - 0x42c], eax
lea ecx, [ebp - 0x420]
mov dword [ebp - 4], 0x16
push ecx
mov ecx, eax
call fcn.00544840
mov edi, eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x434], edi
push ebx
mov ecx, esi
call fcn.00546600
test al, al
je 0x548ec1
call fcn.00548140
mov ecx, eax
call fcn.00548420
mov edi, eax
mov dword [ebp - 0x42c], 0
push 4
mov dword [ebp - 0x44c], edi
mov esi, 1
call fcn.0056ea97
add esp, 4
mov dword [ebp - 0x428], eax
push 0xffffffffffffffff
push 0x61aa28
push 2
push eax
lea eax, [ebp - 0x42c]
push eax
call fcn.00584f75
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.00545b60
mov esi, eax
mov eax, dword [ebp - 0x428]
test eax, eax
je 0x548ab9
push 2
push eax
call fcn.0056ea89
add esp, 8
lea eax, [esi - 1]
mov ecx, edi
push eax
push 0
call fcn.00545be0
push 4
mov dword [ebp - 0x43c], eax
mov esi, 1
mov dword [ebp - 0x42c], 0
call fcn.0056ea97
add esp, 4
mov dword [ebp - 0x428], eax
push 0xffffffffffffffff
push 0x61aa28
push 2
push eax
lea eax, [ebp - 0x42c]
push eax
call fcn.00584f75
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.00545b60
mov esi, eax
mov eax, dword [ebp - 0x428]
test eax, eax
je 0x548b3a
push 2
push eax
call fcn.0056ea89
add esp, 8
push 0xffffffffffffffff
lea eax, [esi + 1]
mov ecx, edi
push eax
call fcn.00545be0
push 4
mov edi, eax
mov dword [ebp - 0x42c], 0
mov esi, 1
call fcn.0056ea97
add esp, 4
mov dword [ebp - 0x448], eax
push 0xffffffffffffffff
push 0x624914
push 2
push eax
lea eax, [ebp - 0x42c]
push eax
call fcn.00584f75
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.0056ea97
add esp, 4
mov dword [ebp - 0x428], eax
push 0xffffffffffffffff
push 0x61aa28
push 2
push eax
lea eax, [ebp - 0x438]
push eax
call fcn.00584f75
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.00545ab0
push eax
push ecx
lea eax, [ebp - 0x428]
mov ecx, edi
push eax
call fcn.00545ab0
inc eax
mov ecx, edi
push eax
call fcn.00545be0
mov dword [ebp - 0x440], eax
mov eax, dword [ebp - 0x428]
test eax, eax
je 0x548c1a
push 2
push eax
call fcn.0056ea89
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x448]
test eax, eax
je 0x548c36
push 2
push eax
call fcn.0056ea89
add esp, 8
push 4
mov dword [ebp - 0x42c], 0
mov esi, 1
call fcn.0056ea97
add esp, 4
mov dword [ebp - 0x428], eax
push 0xffffffffffffffff
push 0x624914
push 2
push eax
lea eax, [ebp - 0x42c]
push eax
call fcn.00584f75
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.00545b60
inc eax
mov ecx, edi
push eax
call fcn.00545be0
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x428]
mov dword [ebp - 0x438], esi
test eax, eax
je 0x548cc0
push 2
push eax
call fcn.0056ea89
add esp, 8
push 0x30
mov dword [ebp - 0x428], 0
mov dword [ebp - 0x42c], 0
mov dword [ebp - 0x424], 0x17
call fcn.0056ea97
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.00584f75
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.00544d50
mov dword [ebp - 0x444], eax
add esp, 0x10
mov eax, dword [ebp - 0x428]
test eax, eax
je 0x548d5b
push 2
push eax
call fcn.0056ea89
add esp, 8
mov esi, dword [ebp - 0x44c]
test esi, esi
je 0x548d8e
mov eax, dword [esi]
test eax, eax
je 0x548d7c
push 2
push eax
call fcn.0056ea89
add esp, 8
mov dword [esi], 0
push 8
push esi
mov dword [esi + 4], 0
call fcn.0056ea89
add esp, 8
mov esi, dword [ebp - 0x43c]
test esi, esi
je 0x548dc1
mov eax, dword [esi]
test eax, eax
je 0x548daf
push 2
push eax
call fcn.0056ea89
add esp, 8
mov dword [esi], 0
push 8
push esi
mov dword [esi + 4], 0
call fcn.0056ea89
add esp, 8
test edi, edi
je 0x548dee
mov eax, dword [edi]
test eax, eax
je 0x548ddc
push 2
push eax
call fcn.0056ea89
add esp, 8
mov dword [edi], 0
push 8
push edi
mov dword [edi + 4], 0
call fcn.0056ea89
add esp, 8
mov esi, dword [ebp - 0x440]
test esi, esi
je 0x548e21
mov eax, dword [esi]
test eax, eax
je 0x548e0f
push 2
push eax
call fcn.0056ea89
add esp, 8
mov dword [esi], 0
push 8
push esi
mov dword [esi + 4], 0
call fcn.0056ea89
add esp, 8
mov esi, dword [ebp - 0x438]
test esi, esi
je 0x548e54
mov eax, dword [esi]
test eax, eax
je 0x548e42
push 2
push eax
call fcn.0056ea89
add esp, 8
mov dword [esi], 0
push 8
push esi
mov dword [esi + 4], 0
call fcn.0056ea89
add esp, 8
mov edi, dword [ebp - 0x434]
mov esi, dword [ebp - 0x444]
test ebx, ebx
je 0x548e8d
mov eax, dword [ebx]
test eax, eax
je 0x548e7b
push 2
push eax
call fcn.0056ea89
add esp, 8
mov dword [ebx], 0
push 8
push ebx
mov dword [ebx + 4], 0
call fcn.0056ea89
add esp, 8
test edi, edi
je 0x548eba
mov eax, dword [edi]
test eax, eax
je 0x548ea8
push 2
push eax
call fcn.0056ea89
add esp, 8
mov dword [edi], 0
push 8
push edi
mov dword [edi + 4], 0
call fcn.0056ea89
add esp, 8
mov eax, esi
jmp 0x5491e6
push edi
mov ecx, esi
call fcn.00546600
test al, al
je 0x5491cd
call fcn.00548140
mov ecx, eax
call fcn.00548420
mov esi, eax
lea ecx, [ebp - 0x428]
push 0x61aa28
mov dword [ebp - 0x434], esi
call fcn.005447b0
push ecx
lea eax, [ebp - 0x428]
mov ecx, esi
push eax
call fcn.00545b60
lea ecx, [ebp - 0x428]
mov esi, eax
call fcn.004ffe40
mov ecx, dword [ebp - 0x434]
lea eax, [esi - 1]
push eax
push 0
call fcn.00545be0
mov esi, eax
lea ecx, [ebp - 0x428]
push 0x61aa28
mov dword [ebp - 0x440], esi
call fcn.005447b0
push ecx
lea eax, [ebp - 0x428]
mov ecx, esi
push eax
call fcn.00545b60
lea ecx, [ebp - 0x428]
mov esi, eax
call fcn.004ffe40
mov ecx, dword [ebp - 0x434]
lea eax, [esi + 1]
push 0xffffffffffffffff
push eax
call fcn.00545be0
push 0x624914
lea ecx, [ebp - 0x430]
mov esi, eax
call fcn.005447b0
push 0x61aa28
lea ecx, [ebp - 0x428]
mov dword [ebp - 4], 0x24
call fcn.005447b0
push ecx
lea eax, [ebp - 0x430]
mov byte [ebp - 4], 0x25
push eax
mov ecx, esi
call fcn.00545ab0
push eax
push ecx
lea eax, [ebp - 0x428]
mov ecx, esi
push eax
call fcn.00545ab0
inc eax
mov ecx, esi
push eax
call fcn.00545be0
lea ecx, [ebp - 0x428]
mov dword [ebp - 0x43c], eax
call fcn.004ffe40
lea ecx, [ebp - 0x430]
mov dword [ebp - 4], 0xffffffff
call fcn.004ffe40
push 0x624914
lea ecx, [ebp - 0x428]
call fcn.005447b0
push 0xffffffffffffffff
push ecx
lea eax, [ebp - 0x428]
mov dword [ebp - 4], 0x26
push eax
mov ecx, esi
call fcn.00545b60
inc eax
mov ecx, esi
push eax
call fcn.00545be0
lea ecx, [ebp - 0x428]
mov dword [ebp - 0x438], eax
mov dword [ebp - 4], 0xffffffff
call fcn.004ffe40
push str._sPackages_s__sLocalCacheLocal
lea ecx, [ebp - 0x454]
call fcn.005447b0
mov dword [ebp - 4], 0x27
push dword [ebp - 0x438]
push dword [ebp - 0x43c]
push edi
push eax
call fcn.00544d50
add esp, 0x10
mov dword [ebp - 0x42c], eax
lea ecx, [ebp - 0x454]
mov dword [ebp - 4], 0xffffffff
call fcn.004ffe40
mov ecx, dword [ebp - 0x44c]
call fcn.00544c60
push dword [ebp - 0x42c]
mov ecx, eax
mov dword [ebp - 0x444], eax
push edi
call fcn.00546410
mov eax, dword [ebp - 0x434]
test eax, eax
je 0x5490c5
mov ecx, dword [eax]
test ecx, ecx
je 0x5490b3
push 2
push ecx
call fcn.0056ea89
mov eax, dword [ebp - 0x434]
add esp, 8
mov dword [eax], 0
push 8
push eax
mov dword [eax + 4], 0
call fcn.0056ea89
add esp, 8
mov eax, dword [ebp - 0x440]
test eax, eax
je 0x5490fe
mov ecx, dword [eax]
test ecx, ecx
je 0x5490ec
push 2
push ecx
call fcn.0056ea89
mov eax, dword [ebp - 0x440]
add esp, 8
mov dword [eax], 0
push 8
push eax
mov dword [eax + 4], 0
call fcn.0056ea89
add esp, 8
test esi, esi
je 0x54912b
mov eax, dword [esi]
test eax, eax
je 0x549119
push 2
push eax
call fcn.0056ea89
add esp, 8
mov dword [esi], 0
push 8
push esi
mov dword [esi + 4], 0
call fcn.0056ea89
add esp, 8
mov esi, dword [ebp - 0x43c]
test esi, esi
je 0x54915e
mov eax, dword [esi]
test eax, eax
je 0x54914c
push 2
push eax
call fcn.0056ea89
add esp, 8
mov dword [esi], 0
push 8
push esi
mov dword [esi + 4], 0
call fcn.0056ea89
add esp, 8
mov esi, dword [ebp - 0x438]
test esi, esi
je 0x549191
mov eax, dword [esi]
test eax, eax
je 0x54917f
push 2
push eax
call fcn.0056ea89
add esp, 8
mov dword [esi], 0
push 8
push esi
mov dword [esi + 4], 0
call fcn.0056ea89
add esp, 8
mov esi, dword [ebp - 0x42c]
test esi, esi
je 0x548e5a
mov eax, dword [esi]
test eax, eax
je 0x5491b6
push 2
push eax
call fcn.0056ea89
add esp, 8
mov dword [esi], 0
push 8
push esi
mov dword [esi + 4], 0
call fcn.0056ea89
add esp, 8
jmp 0x548e5a
mov ecx, esi
call fcn.00544c60
mov esi, eax
jmp 0x548e60
mov ecx, esi
call fcn.00544c60
jmp 0x5491e6
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.0056e5b3
mov esp, ebp
pop ebp
ret