Function at 0x401d20
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x444
mov eax, dword [0x5a4e60]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
xor esi, esi
cmp dword [0x5ac2a0], 1
jg 0x401e0d
xor eax, eax
push 0x206
push eax
lea ecx, [ebp - 0x23a]
push ecx
mov word [ebp - 0x23c], ax
call fcn.00525e90
xor edx, edx
push 0x206
push edx
lea eax, [ebp - 0x442]
push eax
mov word [ebp - 0x444], dx
call fcn.00525e90
add esp, 0x18
push 0x104
lea ecx, [ebp - 0x444]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea edx, [ebp - 0x23c]
push edx
push 0
push 0
push 0x23
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
push str.haogamerGameLogin
lea eax, [ebp - 0x23c]
push 0x104
push eax
call fcn.00523249
lea ecx, [ebp - 0x23c]
push 0x104
push ecx
call fcn.00523c10
lea edx, [ebp - 0x444]
push 0x104
push edx
call fcn.00523c10
lea eax, [ebp - 0x23c]
push eax
lea ecx, [ebp - 0x444]
push ecx
call fcn.00523c27
add esp, 0x24
test eax, eax
mov eax, 3
jne 0x401dfe
mov eax, esi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00523022
mov esp, ebp
pop ebp
ret
mov eax, dword [0x5ac2a8]
mov ecx, dword [eax + 4]
push ecx
push str._SinaD
call fcn.005239c1
add esp, 8
test eax, eax
jne 0x401e3b
mov eax, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00523022
mov esp, ebp
pop ebp
ret
mov edx, dword [0x5ac2a8]
mov eax, dword [edx + 4]
push eax
push str._QshaogamerD
call fcn.005239c1
add esp, 8
test eax, eax
jne 0x401e6a
mov eax, 2
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00523022
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x5ac2a8]
mov edx, dword [ecx + 4]
push edx
push str._uninst
call fcn.005239c1
add esp, 8
test eax, eax
jne 0x401e99
mov eax, 4
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00523022
mov esp, ebp
pop ebp
ret
mov eax, dword [0x5ac2a8]
mov ecx, dword [eax + 4]
push ecx
push str._update
call fcn.005239c1
add esp, 8
test eax, eax
jne 0x401ec7
mov eax, 5
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00523022
mov esp, ebp
pop ebp
ret
mov edx, dword [0x5ac2a8]
mov eax, dword [edx + 4]
push eax
push str._newgm
call fcn.005239c1
add esp, 8
test eax, eax
jne 0x401f74
xor ecx, ecx
lea esi, [eax + 6]
mov dword [ebp - 0x22], eax
mov dword [ebp - 0x1e], eax
mov dword [ebp - 0x1a], eax
mov dword [ebp - 0x16], eax
mov dword [ebp - 0x12], eax
mov dword [ebp - 0xe], eax
mov dword [ebp - 0xa], eax
mov word [ebp - 6], ax
mov dword [ebp - 0x32], eax
mov dword [ebp - 0x2e], eax
mov dword [ebp - 0x2a], eax
mov word [ebp - 0x26], ax
mov eax, dword [0x5ac2a8]
mov word [ebp - 0x24], cx
mov ecx, dword [eax + 8]
xor edx, edx
push ecx
mov word [ebp - 0x34], dx
lea edx, [ebp - 0x24]
push 0x10
push edx
call fcn.005231b8
lea eax, [ebp - 0x22]
push eax
call fcn.00523a62
mov ecx, dword [0x5ac2a8]
mov edx, dword [ecx + 0xc]
push edx
mov dword [0x5ad1d4], eax
lea eax, [ebp - 0x34]
push 8
push eax
call fcn.005231b8
lea ecx, [ebp - 0x32]
push ecx
call fcn.00523a62
add esp, 0x20
mov dword [0x5ad1d0], eax
mov eax, esi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00523022
mov esp, ebp
pop ebp
ret
mov edx, dword [0x5ac2a8]
mov eax, dword [edx + 4]
push eax
push str._gmhall
call fcn.005239c1
add esp, 8
test eax, eax
jne 0x401d43
mov edx, dword [0x5ac2a8]
lea esi, [eax + 7]
mov dword [ebp - 0x22], eax
mov dword [ebp - 0x1e], eax
mov dword [ebp - 0x1a], eax
mov dword [ebp - 0x16], eax
mov dword [ebp - 0x12], eax
mov dword [ebp - 0xe], eax
mov dword [ebp - 0xa], eax
mov word [ebp - 6], ax
mov eax, dword [edx + 8]
xor ecx, ecx
push eax
mov word [ebp - 0x24], cx
lea ecx, [ebp - 0x24]
push 0x10
push ecx
call fcn.005231b8
lea edx, [ebp - 0x22]
push edx
call fcn.00523a62
mov ecx, dword [ebp - 4]
add esp, 0x10
mov dword [0x5ad1d4], eax
mov eax, esi
xor ecx, ebp
pop esi
call fcn.00523022
mov esp, ebp
pop ebp
ret