Function at 0x422430
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x527dbd
mov eax, dword fs:[0]
push eax
sub esp, 0x27c
mov eax, dword [0x57f7a0]
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 ebx, ecx
xor ecx, ecx
mov dword [ebp - 0x280], ecx
mov dword [ebp - 0x284], ecx
push ecx
lea ecx, [ebp - 0x230]
call fcn.00422330
add esp, 4
mov ecx, eax
lea esi, [ebx + 0x14]
mov dword [ebp - 4], 0
cmp esi, ecx
je 0x4224c9
cmp dword [esi + 0x14], 8
mov dword [esi + 0x10], 0
jb 0x42249e
mov eax, dword [esi]
jmp 0x4224a0
mov eax, esi
xor edx, edx
mov word [eax], dx
mov eax, dword [ecx + 0x14]
cmp eax, 8
jb 0x4224b1
mov edx, dword [ecx]
jmp 0x4224b3
mov edx, ecx
mov edi, dword [ecx + 0x10]
cmp eax, 8
jb 0x4224bd
mov ecx, dword [ecx]
lea eax, [edx + edi*2]
push eax
push ecx
mov ecx, esi
call fcn.0041b3d0
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x21c], 8
jb 0x4224e7
push dword [ebp - 0x230]
call fcn.004db8b0
add esp, 4
lea eax, [ebp - 0x230]
mov ecx, esi
push eax
call fcn.00414fd0
mov dword [ebp - 4], 1
cmp dword [eax + 0x14], 8
jb 0x422504
mov eax, dword [eax]
push eax
push 0x55d0c0
push 0x43
push str.SetupControl::_initSetupPath
call fcn.00439030
add esp, 0x10
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x21c], 8
jb 0x422537
push dword [ebp - 0x230]
call fcn.004db8b0
add esp, 4
cmp dword [ebx + 0x24], 0
je 0x42259d
lea eax, [ebp - 0x248]
mov ecx, esi
push eax
call fcn.00414fd0
push 0x55a880
push eax
lea eax, [ebp - 0x230]
mov dword [ebp - 4], 2
push eax
mov dword [ebp - 0x284], 1
call fcn.00414100
add esp, 0xc
mov ecx, 3
mov dword [ebp - 4], 3
push eax
mov dword [ebp - 0x280], ecx
mov dword [ebp - 0x284], ecx
call fcn.00444880
add esp, 4
mov byte [ebp - 0x279], 1
test al, al
je 0x4225a4
mov byte [ebp - 0x279], 0
mov eax, dword [ebp - 0x280]
test al, 2
je 0x4225f1
and eax, 0xfffffffd
cmp dword [ebp - 0x21c], 8
mov dword [ebp - 0x280], eax
jb 0x4225d4
push dword [ebp - 0x230]
call fcn.004db8b0
mov eax, dword [ebp - 0x280]
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x21c], 7
mov dword [ebp - 0x220], 0
mov word [ebp - 0x230], cx
mov dword [ebp - 4], 0xffffffff
test al, 1
je 0x422613
cmp dword [ebp - 0x234], 8
jb 0x422613
push dword [ebp - 0x248]
call fcn.004db8b0
add esp, 4
cmp byte [ebp - 0x279], 0
je 0x422695
lea eax, [ebp - 0x230]
mov ecx, esi
push eax
call fcn.00414fd0
mov dword [ebp - 4], 4
cmp dword [eax + 0x14], 8
jb 0x422639
mov eax, dword [eax]
push eax
push str._s_is_not_exist_player
push 0x46
push str.SetupControl::_initSetupPath
call fcn.00439030
add esp, 0x10
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x21c], 8
jb 0x42266c
push dword [ebp - 0x230]
call fcn.004db8b0
add esp, 4
cmp dword [esi + 0x14], 8
mov dword [esi + 0x10], 0
jb 0x42267d
mov eax, dword [esi]
jmp 0x42267f
mov eax, esi
xor ecx, ecx
push 0x555a60
mov word [eax], cx
mov ecx, esi
push 0x555a60
call fcn.0041b3d0
cmp dword [ebx + 0x24], 0
jne 0x422956
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x216]
push eax
call fcn.004f31f0
add esp, 0xc
lea eax, [ebp - 0x284]
push eax
push 0x10
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
js 0x4226e5
lea eax, [ebp - 0x218]
push eax
push dword [ebp - 0x284]
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
xor eax, eax
mov dword [ebp - 0x21c], 7
mov dword [ebp - 0x220], 0
mov word [ebp - 0x230], ax
cmp word [ebp - 0x218], ax
jne 0x42270f
xor ecx, ecx
jmp 0x42272f
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
jmp 0x422720
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x422720
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x230]
call fcn.00407470
mov dword [ebp - 4], 5
cmp dword [ebp - 0x220], 0
je 0x422869
xor eax, eax
mov dword [ebp - 0x234], 7
mov dword [ebp - 0x238], 0
mov word [ebp - 0x248], ax
push 0x55d134
lea edx, [ebp - 0x230]
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x260]
call fcn.00414200
add esp, 4
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 7
push ecx
push eax
call fcn.00446600
add esp, 8
mov byte [ebp - 4], 6
cmp dword [ebp - 0x24c], 8
jb 0x4227bf
push dword [ebp - 0x260]
call fcn.004db8b0
add esp, 4
cmp dword [ebp - 0x238], 0
je 0x42280c
lea eax, [ebp - 0x248]
push eax
call fcn.00444880
add esp, 4
test al, al
je 0x42280c
lea eax, [ebp - 0x248]
push eax
lea eax, [ebp - 0x260]
push eax
call fcn.00444680
add esp, 8
push eax
mov ecx, esi
mov byte [ebp - 4], 8
call fcn.00424740
lea ecx, [ebp - 0x260]
mov byte [ebp - 4], 6
call fcn.00407e10
lea eax, [ebp - 0x260]
mov ecx, esi
push eax
call fcn.00414fd0
mov byte [ebp - 4], 9
cmp dword [eax + 0x14], 8
jb 0x422826
mov eax, dword [eax]
push eax
push str.read_player9_path_from_shortcut__s
push 0x58
push str.SetupControl::_initSetupPath
call fcn.00439030
add esp, 0x10
cmp dword [ebp - 0x24c], 8
jb 0x422852
push dword [ebp - 0x260]
call fcn.004db8b0
add esp, 4
cmp dword [ebp - 0x234], 8
jb 0x422869
push dword [ebp - 0x248]
call fcn.004db8b0
add esp, 4
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x21c], 8
jb 0x422887
push dword [ebp - 0x230]
call fcn.004db8b0
add esp, 4
cmp dword [ebx + 0x24], 0
jne 0x422956
lea ecx, [ebp - 0x278]
call fcn.004129e0
lea edi, [ebx + 0x2c]
mov dword [ebp - 4], 0xa
lea eax, [ebp - 0x278]
cmp edi, eax
je 0x4228fb
cmp dword [edi + 0x14], 8
mov dword [edi + 0x10], 0
jb 0x4228c1
mov eax, dword [edi]
jmp 0x4228c3
mov eax, edi
xor ecx, ecx
lea esi, [ebp - 0x278]
mov word [eax], cx
lea edx, [ebp - 0x278]
cmp dword [ebp - 0x264], 8
mov ecx, edi
mov eax, dword [ebp - 0x268]
cmovae esi, dword [ebp - 0x278]
cmovae edx, dword [ebp - 0x278]
lea eax, [esi + eax*2]
push eax
push edx
call fcn.0041b3d0
mov eax, str.LDPlayer_
add eax, 2
cmp word [eax], 0
jne 0x422900
push eax
push str.LDPlayer_
mov ecx, edi
call fcn.0041b3d0
mov eax, str.LDPlayer9_
jmp 0x422920
add eax, 2
cmp word [eax], 0
jne 0x422920
push eax
push str.LDPlayer9_
mov ecx, edi
call fcn.0041b3d0
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x264], 8
jb 0x42296d
push dword [ebp - 0x278]
call fcn.004db8b0
add esp, 4
jmp 0x42296d
lea edi, [ebx + 0x2c]
cmp edi, esi
je 0x422969
push 0xffffffffffffffff
push 0
push esi
mov ecx, edi
call fcn.00407b90
mov byte [ebx + 0x49], 1
lea eax, [ebp - 0x230]
mov ecx, edi
push eax
call fcn.00425940
mov dword [ebp - 4], 0xb
lea eax, [ebx + 0x50]
push eax
movzx eax, byte [ebx + 0x4b]
push eax
movzx eax, byte [ebx + 0x4a]
push eax
push ecx
mov ecx, dword [ebx + 0x10]
lea eax, [ebp - 0x230]
push eax
call fcn.0042afb0
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x21c], 8
jb 0x4229be
push dword [ebp - 0x230]
call fcn.004db8b0
add esp, 4
lea eax, [ebp - 0x260]
mov ecx, edi
push eax
call fcn.00414fd0
mov dword [ebp - 4], 0xc
cmp dword [eax + 0x14], 8
jb 0x4229db
mov eax, dword [eax]
push eax
push str.install_init_install_path___s
push 0x69
push str.SetupControl::_initSetupPath
call fcn.00439030
add esp, 0x10
cmp dword [ebp - 0x24c], 8
jb 0x422a07
push dword [ebp - 0x260]
call fcn.004db8b0
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.004ea604
mov esp, ebp
pop ebp
ret