Function at 0x47e6b0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x61e45a
mov eax, dword fs:[0]
push eax
sub esp, 0x304
mov eax, dword [0x6d8314]
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
push 0
push 0x6523fc
call fcn.00415c10
push 0
lea ebx, [esi + 0x18]
push 0x6523fc
mov ecx, ebx
call fcn.00415c10
push 0
lea ecx, [esi + 0x30]
push 0x6523fc
call fcn.00415c10
push 0
push 0x6523fc
lea ecx, [esi + 0x48]
call fcn.00415c10
push 0
lea ecx, [esi + 0x60]
push 0x6523fc
call fcn.00415c10
cmp dword [esi + 0x10], 0
mov edi, dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
jne 0x47e7e4
push str.SoftwareXuanZhildplayer
lea ecx, [ebp - 0x308]
call fcn.0047e5b0
add esp, 4
mov dword [ebp - 4], 0
lea eax, [ebp - 0x308]
cmp dword [ebp - 0x2f4], 8
cmovae eax, dword [ebp - 0x308]
push eax
push str.read_player32_path_from_ldplayer__s
push 0x59
push str.LDHelper::clacPlayerPath
call fcn.00584a40
lea eax, [esi + 0x78]
mov dl, 1
push eax
lea ecx, [ebp - 0x308]
call fcn.0047e360
add esp, 0x14
test al, al
je 0x47e7c9
lea eax, [ebp - 0x308]
cmp esi, eax
je 0x47e7a8
push 0xffffffffffffffff
push 0
push eax
mov ecx, esi
call fcn.00414cd0
cmp dword [esi + 0x14], 8
jb 0x47e7b2
mov eax, dword [esi]
jmp 0x47e7b4
mov eax, esi
push eax
push str.32_player_path__s
push 0x5c
push str.LDHelper::clacPlayerPath
call fcn.00584a40
add esp, 0x10
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x2f4], 8
jb 0x47e7e4
push dword [ebp - 0x308]
call edi
add esp, 4
cmp dword [esi + 0x28], 0
jne 0x47e89b
push str.SoftwareXuanZhildplayer64
lea ecx, [ebp - 0x2f0]
call fcn.0047e5b0
add esp, 4
mov dword [ebp - 4], 1
lea eax, [ebp - 0x2f0]
cmp dword [ebp - 0x2dc], 8
cmovae eax, dword [ebp - 0x2f0]
push eax
push str.read_player64_path_from_ldplayer__s
push 0x62
push str.LDHelper::clacPlayerPath
call fcn.00584a40
lea eax, [esi + 0x90]
xor dl, dl
push eax
lea ecx, [ebp - 0x2f0]
call fcn.0047e360
add esp, 0x14
test al, al
je 0x47e880
lea eax, [ebp - 0x2f0]
cmp ebx, eax
je 0x47e85f
push 0xffffffffffffffff
push 0
push eax
mov ecx, ebx
call fcn.00414cd0
cmp dword [ebx + 0x14], 8
jb 0x47e869
mov eax, dword [ebx]
jmp 0x47e86b
mov eax, ebx
push eax
push str.64_player_path__s
push 0x65
push str.LDHelper::clacPlayerPath
call fcn.00584a40
add esp, 0x10
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x2dc], 8
jb 0x47e89b
push dword [ebp - 0x2f0]
call edi
add esp, 4
cmp dword [esi + 0x40], 0
jne 0x47e958
push str.SoftwareXuanZhildplayer9
lea ecx, [ebp - 0x2d8]
call fcn.0047e5b0
add esp, 4
mov dword [ebp - 4], 2
lea eax, [ebp - 0x2d8]
cmp dword [ebp - 0x2c4], 8
cmovae eax, dword [ebp - 0x2d8]
push eax
push str.read_player9_path_from_ldplayer__s
push 0x6b
push str.LDHelper::clacPlayerPath
call fcn.00584a40
add esp, 0x10
lea edx, [esi + 0xa8]
lea ecx, [ebp - 0x2d8]
call fcn.0047e490
test al, al
je 0x47e93d
lea eax, [ebp - 0x2d8]
lea ecx, [esi + 0x30]
cmp ecx, eax
je 0x47e914
push 0xffffffffffffffff
push 0
push eax
call fcn.00414cd0
cmp dword [ebp - 0x2c4], 8
lea eax, [ebp - 0x2d8]
cmovae eax, dword [ebp - 0x2d8]
push eax
push str.9_player_path__s
push 0x6e
push str.LDHelper::clacPlayerPath
call fcn.00584a40
add esp, 0x10
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x2c4], 8
jb 0x47e958
push dword [ebp - 0x2d8]
call edi
add esp, 4
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x216]
push eax
call sub.MSVCR120.dll_memset
add esp, 0xc
lea eax, [ebp - 0x30c]
push eax
push 0x10
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
js 0x47e99e
lea eax, [ebp - 0x218]
push eax
push dword [ebp - 0x30c]
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
xor eax, eax
mov dword [ebp - 0x2ac], 7
mov dword [ebp - 0x2b0], 0
mov word [ebp - 0x2c0], ax
cmp word [ebp - 0x218], ax
jne 0x47e9c8
xor ecx, ecx
jmp 0x47e9e0
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x47e9d1
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x2c0]
call fcn.00415c10
mov dword [ebp - 4], 3
cmp dword [ebp - 0x2b0], 0
je 0x47f07c
cmp dword [esi + 0x40], 0
jne 0x47eb54
xor eax, eax
mov dword [ebp - 0x294], 7
mov dword [ebp - 0x298], 0
mov word [ebp - 0x2a8], ax
push str.LDPlayer9.lnk
lea edx, [ebp - 0x2c0]
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x230]
call fcn.00429ac0
add esp, 4
lea ecx, [ebp - 0x2a8]
mov byte [ebp - 4], 5
push ecx
push eax
call fcn.005950f0
add esp, 8
mov byte [ebp - 4], 4
cmp dword [ebp - 0x21c], 8
jb 0x47ea77
push dword [ebp - 0x230]
call edi
add esp, 4
cmp dword [ebp - 0x298], 0
je 0x47eab6
lea eax, [ebp - 0x2a8]
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.00597f80
add esp, 8
lea ecx, [ebp - 0x2a8]
push eax
call fcn.00433dd0
cmp dword [ebp - 0x21c], 8
jb 0x47eab6
push dword [ebp - 0x230]
call edi
add esp, 4
cmp dword [ebp - 0x294], 8
lea eax, [ebp - 0x2a8]
cmovae eax, dword [ebp - 0x2a8]
push eax
push str.read_player9_path_from_shortcut__s
push 0x80
push str.LDHelper::clacPlayerPath
call fcn.00584a40
add esp, 0x10
lea edx, [esi + 0xa8]
lea ecx, [ebp - 0x2a8]
call fcn.0047e490
test al, al
je 0x47eb3c
lea ecx, [ebp - 0x2a8]
lea eax, [esi + 0x30]
cmp eax, ecx
je 0x47eb10
push 0xffffffffffffffff
push 0
push ecx
mov ecx, eax
call fcn.00414cd0
cmp dword [ebp - 0x294], 8
lea eax, [ebp - 0x2a8]
cmovae eax, dword [ebp - 0x2a8]
push eax
push str.9_player_path__s
push 0x83
push str.LDHelper::clacPlayerPath
call fcn.00584a40
add esp, 0x10
mov byte [ebp - 4], 3
cmp dword [ebp - 0x294], 8
jb 0x47eb54
push dword [ebp - 0x2a8]
call edi
add esp, 4
cmp dword [esi + 0x70], 0
jne 0x47ec9f
xor eax, eax
mov dword [ebp - 0x27c], 7
mov dword [ebp - 0x280], 0
mov word [ebp - 0x290], ax
push 0x666c30
lea edx, [ebp - 0x2c0]
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x230]
call fcn.00429ac0
add esp, 4
lea ecx, [ebp - 0x290]
mov byte [ebp - 4], 7
push ecx
push eax
call fcn.005950f0
add esp, 8
mov byte [ebp - 4], 6
cmp dword [ebp - 0x21c], 8
jb 0x47ebc4
push dword [ebp - 0x230]
call edi
add esp, 4
cmp dword [ebp - 0x280], 0
je 0x47ec03
lea eax, [ebp - 0x290]
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.00597f80
add esp, 8
lea ecx, [ebp - 0x290]
push eax
call fcn.00433dd0
cmp dword [ebp - 0x21c], 8
jb 0x47ec03
push dword [ebp - 0x230]
call edi
add esp, 4
cmp dword [ebp - 0x27c], 8
lea eax, [ebp - 0x290]
cmovae eax, dword [ebp - 0x290]
push eax
push str.read_playervk_path_from_shortcut__s
push 0x8d
push str.LDHelper::clacPlayerPath
call fcn.00584a40
add esp, 0x10
lea edx, [esi + 0xd8]
lea ecx, [ebp - 0x290]
call fcn.0047e490
test al, al
je 0x47ec87
lea eax, [ebp - 0x290]
lea ecx, [esi + 0x60]
cmp ecx, eax
je 0x47ec5b
push 0xffffffffffffffff
push 0
push eax
call fcn.00414cd0
cmp dword [ebp - 0x27c], 8
lea eax, [ebp - 0x290]
cmovae eax, dword [ebp - 0x290]
push eax
push str.VK_player_path__s
push 0x90
push str.LDHelper::clacPlayerPath
call fcn.00584a40
add esp, 0x10
mov byte [ebp - 4], 3
cmp dword [ebp - 0x27c], 8
jb 0x47ec9f
push dword [ebp - 0x290]
call edi
add esp, 4
cmp dword [esi + 0x10], 0
jne 0x47ef33
xor eax, eax
mov dword [ebp - 0x264], 7
mov dword [ebp - 0x268], 0
mov word [ebp - 0x278], ax
push str.LDPlayer5.lnk
lea edx, [ebp - 0x2c0]
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x230]
call fcn.00429ac0
add esp, 4
lea ecx, [ebp - 0x278]
mov byte [ebp - 4], 9
push ecx
push eax
call fcn.005950f0
add esp, 8
mov byte [ebp - 4], 8
cmp dword [ebp - 0x21c], 8
jb 0x47ed0f
push dword [ebp - 0x230]
call edi
add esp, 4
cmp dword [ebp - 0x268], 0
je 0x47ed4e
lea eax, [ebp - 0x278]
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.00597f80
add esp, 8
lea ecx, [ebp - 0x278]
push eax
call fcn.00433dd0
cmp dword [ebp - 0x21c], 8
jb 0x47ed4e
push dword [ebp - 0x230]
call edi
add esp, 4
cmp dword [ebp - 0x264], 8
lea eax, [ebp - 0x278]
cmovae eax, dword [ebp - 0x278]
push eax
push str.read_player32_path_from_shortcut__s
push 0x9a
push str.LDHelper::clacPlayerPath
call fcn.00584a40
lea eax, [esi + 0x78]
mov dl, 1
push eax
lea ecx, [ebp - 0x278]
call fcn.0047e360
add esp, 0x14
test al, al
je 0x47edd1
lea eax, [ebp - 0x278]
cmp esi, eax
je 0x47eda5
push 0xffffffffffffffff
push 0
push eax
mov ecx, esi
call fcn.00414cd0
cmp dword [ebp - 0x264], 8
lea eax, [ebp - 0x278]
cmovae eax, dword [ebp - 0x278]
push eax
push str.32_player_path__s
push 0x9d
push str.LDHelper::clacPlayerPath
call fcn.00584a40
add esp, 0x10
mov byte [ebp - 4], 3
cmp dword [ebp - 0x264], 8
jb 0x47ede9
push dword [ebp - 0x278]
call edi
add esp, 4
cmp dword [esi + 0x10], 0
jne 0x47ef33
xor eax, eax
mov dword [ebp - 0x24c], 7
mov dword [ebp - 0x250], 0
mov word [ebp - 0x260], ax
push str.LDPlayer4.lnk
lea edx, [ebp - 0x2c0]
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x230]
call fcn.00429ac0
add esp, 4
lea ecx, [ebp - 0x260]
mov byte [ebp - 4], 0xb
push ecx
push eax
call fcn.005950f0
add esp, 8
mov byte [ebp - 4], 0xa
cmp dword [ebp - 0x21c], 8
jb 0x47ee59
push dword [ebp - 0x230]
call edi
add esp, 4
cmp dword [ebp - 0x250], 0
je 0x47ee98
lea eax, [ebp - 0x260]
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.00597f80
add esp, 8
lea ecx, [ebp - 0x260]
push eax
call fcn.00433dd0
cmp dword [ebp - 0x21c], 8
jb 0x47ee98
push dword [ebp - 0x230]
call edi
add esp, 4
cmp dword [ebp - 0x24c], 8
lea eax, [ebp - 0x260]
cmovae eax, dword [ebp - 0x260]
push eax
push str.read_player32_path_from_shortcut__s
push 0xa7
push str.LDHelper::clacPlayerPath
call fcn.00584a40
lea eax, [esi + 0x78]
mov dl, 1
push eax
lea ecx, [ebp - 0x260]
call fcn.0047e360
add esp, 0x14
test al, al
je 0x47ef1b
lea eax, [ebp - 0x260]
cmp esi, eax
je 0x47eeef
push 0xffffffffffffffff
push 0
push eax
mov ecx, esi
call fcn.00414cd0
cmp dword [ebp - 0x24c], 8
lea eax, [ebp - 0x260]
cmovae eax, dword [ebp - 0x260]
push eax
push str.32_player_path__s
push 0xaa
push str.LDHelper::clacPlayerPath
call fcn.00584a40
add esp, 0x10
mov byte [ebp - 4], 3
cmp dword [ebp - 0x24c], 8
jb 0x47ef33
push dword [ebp - 0x260]
call edi
add esp, 4
cmp dword [esi + 0x28], 0
jne 0x47f07c
xor eax, eax
mov dword [ebp - 0x234], 7
mov dword [ebp - 0x238], 0
mov word [ebp - 0x248], ax
push str.LDPlayer64.lnk
lea edx, [ebp - 0x2c0]
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x230]
call fcn.00429ac0
add esp, 4
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 0xd
push ecx
push eax
call fcn.005950f0
add esp, 8
mov byte [ebp - 4], 0xc
cmp dword [ebp - 0x21c], 8
jb 0x47efa3
push dword [ebp - 0x230]
call edi
add esp, 4
cmp dword [ebp - 0x238], 0
je 0x47efe2
lea eax, [ebp - 0x248]
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.00597f80
add esp, 8
lea ecx, [ebp - 0x248]
push eax
call fcn.00433dd0
cmp dword [ebp - 0x21c], 8
jb 0x47efe2
push dword [ebp - 0x230]
call edi
add esp, 4
cmp dword [ebp - 0x234], 8
lea eax, [ebp - 0x248]
cmovae eax, dword [ebp - 0x248]
push eax
push str.read_player64_path_from_shortcut__s
push 0xb4
push str.LDHelper::clacPlayerPath
call fcn.00584a40
lea eax, [esi + 0x90]
xor dl, dl
push eax
lea ecx, [ebp - 0x248]
call fcn.0047e360
add esp, 0x14
test al, al
je 0x47f068
lea eax, [ebp - 0x248]
cmp ebx, eax
je 0x47f03c
push 0xffffffffffffffff
push 0
push eax
mov ecx, ebx
call fcn.00414cd0
cmp dword [ebp - 0x234], 8
lea eax, [ebp - 0x248]
cmovae eax, dword [ebp - 0x248]
push eax
push str.64_player_path__s
push 0xb7
push str.LDHelper::clacPlayerPath
call fcn.00584a40
add esp, 0x10
cmp dword [ebp - 0x234], 8
jb 0x47f07c
push dword [ebp - 0x248]
call edi
add esp, 4
cmp dword [ebp - 0x2ac], 8
jb 0x47f090
push dword [ebp - 0x2c0]
call edi
add esp, 4
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.006116d0
mov esp, ebp
pop ebp
ret