Function at 0x47b260
Capabilities:
Create directory
Get common file path
Get startup folder

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4b7486
push eax
mov dword fs:[0], esp
sub esp, 0x560
push ebp
mov ebp, ecx
cmp dword [ebp + 0x1880], 0x2710
jbe 0x47bb5d
push ebx
push esi
push edi
call fcn.0047a730
mov eax, dword [ebp + 0x6cc]
lea edi, [esp + 0x46d]
mov dword [ebp + 0x5f4], eax
mov ecx, dword [ebp + 0x6d0]
mov dword [ebp + 0x5f8], ecx
mov edx, dword [ebp + 0x690]
mov dword [ebp + 0x5fc], edx
mov eax, dword [ebp + 0x6ac]
mov dword [ebp + 0x600], eax
mov ecx, dword [ebp + 0x6b0]
mov eax, dword [ebp + 0x694]
mov dword [ebp + 0x604], ecx
mov edx, dword [ebp + 0x68c]
mov ecx, dword [ebp + 0x688]
mov dword [ebp + 0x608], edx
mov dword [ebp + 0x60c], eax
mov eax, dword [ebp + 0x698]
mov dword [ebp + 0x610], ecx
mov ecx, dword [ebp + 0x6a0]
mov dword [ebp + 0x618], eax
mov eax, dword [ebp + 0x6a8]
mov dword [ebp + 0x61c], ecx
xor ecx, ecx
mov dword [ebp + 0x624], eax
mov cl, byte [ebp + 0x6c8]
mov eax, dword [ebp + 0x6d8]
mov edx, dword [ebp + 0x69c]
mov dword [ebp + 0x628], ecx
mov ecx, dword [ebp + 0x6dc]
mov dword [ebp + 0x630], eax
mov eax, dword [ebp + 0x6b8]
mov dword [ebp + 0x634], ecx
mov ecx, dword [ebp + 0x6bc]
mov dword [ebp + 0x63c], eax
mov eax, dword [ebp + 0x6c4]
mov dword [ebp + 0x640], ecx
mov dword [ebp + 0x648], eax
mov ecx, 0x40
xor eax, eax
mov dword [ebp + 0x614], edx
mov edx, dword [ebp + 0x6a4]
mov byte [esp + 0x46c], 0
rep stosd dword es:[edi], eax
mov dword [ebp + 0x620], edx
mov edx, dword [ebp + 0x6d4]
mov dword [ebp + 0x62c], edx
mov edx, dword [ebp + 0x6b4]
stosw word es:[edi], ax
push 1
lea ecx, [esp + 0x470]
mov dword [ebp + 0x638], edx
mov edx, dword [ebp + 0x6c0]
push 0x1a
push ecx
push 0
mov dword [ebp + 0x644], edx
stosb byte es:[edi], al
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
lea edx, [esp + 0x46c]
lea ecx, [esp + 0x10]
push edx
call sub.MFC42.DLL_CString::CString_2
push 0x4d5a08
lea ecx, [esp + 0x14]
mov dword [esp + 0x57c], 0
call fcn.004ab4d0
mov eax, dword [esp + 0x10]
mov esi, dword [sym.imp.MSVCRT.dll__mkdir]
push eax
call esi
add esp, 4
lea ecx, [esp + 0x10]
push str.QQGame
call fcn.004ab4d0
mov ecx, dword [esp + 0x10]
push ecx
call esi
add esp, 4
lea ecx, [esp + 0x10]
push str.DDzRpg
call fcn.004ab4d0
mov edx, dword [esp + 0x10]
push edx
call esi
add esp, 4
lea ecx, [esp + 0x10]
push str.Setting
call fcn.004ab4d0
mov eax, dword [esp + 0x10]
push eax
call esi
mov ecx, 5
mov esi, str.bPlayAvatarSound_
lea edi, [esp + 0x24]
xor eax, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, 7
lea edi, [esp + 0x38]
rep stosd dword es:[edi], eax
mov ecx, dword [str.bPlayAvatarAni_]
mov edx, dword [0x4d5f34]
stosw word es:[edi], ax
mov eax, dword [0x4d5f38]
mov dword [esp + 0x56], ecx
mov ecx, dword [0x4d5f3c]
mov dword [esp + 0x5a], edx
mov dx, word [0x4d5f40]
mov dword [esp + 0x5e], eax
mov dword [esp + 0x62], ecx
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x68]
mov word [esp + 0x66], dx
mov edx, dword [0x4d5f28]
rep stosd dword es:[edi], eax
mov eax, dword [str.bAllowWatch_]
mov ecx, dword [0x4d5f24]
mov dword [esp + 0x88], eax
mov ax, word [0x4d5f2c]
mov dword [esp + 0x8c], ecx
mov cl, byte [0x4d5f2e]
mov word [esp + 0x94], ax
mov byte [esp + 0x96], cl
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x97]
mov dword [esp + 0x90], edx
rep stosd dword es:[edi], eax
mov ecx, dword [0x4d5f1c]
mov edx, dword [str.bShowAni_]
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [0x4d5f18]
mov dword [esp + 0xc2], ecx
mov dword [esp + 0xbe], eax
mov ecx, 9
xor eax, eax
lea edi, [esp + 0xc6]
mov dword [esp + 0xba], edx
mov esi, str.bShowOtherPetAni_
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 5
lea edi, [esp + 0xec]
rep movsd dword es:[edi], dword [esi]
add esp, 4
mov ecx, 7
xor eax, eax
lea edi, [esp + 0xfc]
rep stosd dword es:[edi], eax
mov edx, dword [str.bShowHintOn_]
mov ecx, dword [0x4d5ef8]
stosw word es:[edi], ax
mov eax, dword [0x4d5ef4]
mov dword [esp + 0x11a], edx
mov dword [esp + 0x11e], eax
mov dword [esp + 0x122], ecx
mov al, byte [0x4d5efe]
mov dx, word [0x4d5efc]
mov byte [esp + 0x128], al
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x129]
mov word [esp + 0x126], dx
mov edx, dword [0x4d5ee4]
rep stosd dword es:[edi], eax
mov ecx, dword [str.bShowMark_]
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [0x4d5ee8]
mov dword [esp + 0x14c], ecx
mov cl, byte [0x4d5eec]
mov dword [esp + 0x154], eax
mov byte [esp + 0x158], cl
mov ecx, 9
xor eax, eax
lea edi, [esp + 0x159]
mov dword [esp + 0x150], edx
mov edx, dword [str.bVoiceOn_]
rep stosd dword es:[edi], eax
mov ecx, dword [0x4d5edc]
stosb byte es:[edi], al
mov eax, dword [0x4d5ed8]
mov dword [esp + 0x186], ecx
mov dword [esp + 0x182], eax
mov ecx, 9
xor eax, eax
lea edi, [esp + 0x18a]
mov dword [esp + 0x17e], edx
mov edx, dword [str.bAntiClockWise_]
rep stosd dword es:[edi], eax
mov ecx, dword [0x4d5ec8]
stosw word es:[edi], ax
mov eax, dword [0x4d5ec4]
mov dword [esp + 0x1b0], edx
mov edx, dword [0x4d5ecc]
mov dword [esp + 0x1b4], eax
mov ax, word [0x4d5ed0]
mov dword [esp + 0x1b8], ecx
mov word [esp + 0x1c0], ax
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x1c2]
mov dword [esp + 0x1bc], edx
mov edx, dword [0x4d5eb4]
rep stosd dword es:[edi], eax
mov ecx, dword [str.bSortByLevel_]
mov eax, dword [0x4d5eb8]
mov dword [esp + 0x1e2], ecx
mov ecx, dword [0x4d5ebc]
mov dword [esp + 0x1ea], eax
mov dword [esp + 0x1ee], ecx
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x1f2]
mov dword [esp + 0x1e6], edx
mov edx, dword [str.bShowWelcome_]
rep stosd dword es:[edi], eax
mov ecx, dword [0x4d5ea8]
stosw word es:[edi], ax
mov eax, dword [0x4d5ea4]
mov dword [esp + 0x214], edx
mov edx, dword [0x4d5eac]
mov dword [esp + 0x218], eax
mov dword [esp + 0x21c], ecx
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x224]
mov dword [esp + 0x220], edx
mov edx, dword [0x4d5e98]
rep stosd dword es:[edi], eax
mov ecx, dword [0x4d5e94]
stosw word es:[edi], ax
mov eax, dword [str.bShowScore_]
mov dword [esp + 0x24a], ecx
mov dword [esp + 0x246], eax
mov ax, word [0x4d5e9c]
mov dword [esp + 0x24e], edx
mov word [esp + 0x252], ax
mov ecx, 9
xor eax, eax
lea edi, [esp + 0x254]
mov edx, dword [0x4d5e88]
rep stosd dword es:[edi], eax
mov ecx, dword [str.bUpDown_]
mov ax, word [0x4d5e8c]
mov dword [esp + 0x278], ecx
mov cl, byte [0x4d5e8e]
mov word [esp + 0x280], ax
mov byte [esp + 0x282], cl
mov ecx, 9
xor eax, eax
lea edi, [esp + 0x283]
mov dword [esp + 0x27c], edx
rep stosd dword es:[edi], eax
mov ecx, dword [0x4d5e80]
mov edx, dword [str.bShowPet_]
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [0x4d5e7c]
mov dword [esp + 0x2b2], ecx
mov dword [esp + 0x2ae], eax
mov ecx, 9
xor eax, eax
lea edi, [esp + 0x2b6]
mov dword [esp + 0x2aa], edx
mov edx, dword [str.bShowBar_]
rep stosd dword es:[edi], eax
mov ecx, dword [0x4d5e74]
stosw word es:[edi], ax
mov eax, dword [0x4d5e70]
mov dword [esp + 0x2e4], ecx
mov dword [esp + 0x2e0], eax
mov ecx, 9
xor eax, eax
lea edi, [esp + 0x2e8]
mov dword [esp + 0x2dc], edx
mov edx, dword [str.bShowChat_]
rep stosd dword es:[edi], eax
mov ecx, dword [0x4d5e64]
stosw word es:[edi], ax
mov eax, dword [0x4d5e60]
mov dword [esp + 0x30e], edx
mov dl, byte [0x4d5e68]
mov dword [esp + 0x312], eax
mov dword [esp + 0x316], ecx
mov ecx, 9
xor eax, eax
lea edi, [esp + 0x31b]
mov byte [esp + 0x31a], dl
mov edx, dword [0x4d5e58]
rep stosd dword es:[edi], eax
mov ecx, dword [0x4d5e54]
stosb byte es:[edi], al
mov eax, dword [str.bUsePopo_]
mov dword [esp + 0x344], ecx
mov dword [esp + 0x340], eax
mov ecx, 9
xor eax, eax
lea edi, [esp + 0x34c]
mov dword [esp + 0x348], edx
mov edx, dword [0x4d5e48]
rep stosd dword es:[edi], eax
mov ecx, dword [0x4d5e44]
stosw word es:[edi], ax
mov eax, dword [str.bPetAction1_]
mov dword [esp + 0x376], ecx
mov cl, byte [0x4d5e4e]
mov dword [esp + 0x372], eax
mov ax, word [0x4d5e4c]
mov byte [esp + 0x380], cl
mov word [esp + 0x37e], ax
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x381]
mov dword [esp + 0x37a], edx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [0x4d5e34]
mov edx, dword [str.bPetAction2_]
mov ecx, dword [0x4d5e38]
mov dword [esp + 0x3a8], eax
mov al, byte [0x4d5e3e]
mov dword [esp + 0x3a4], edx
mov dx, word [0x4d5e3c]
mov dword [esp + 0x3ac], ecx
mov byte [esp + 0x3b2], al
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x3b3]
mov word [esp + 0x3b0], dx
mov edx, dword [0x4d5e24]
rep stosd dword es:[edi], eax
mov ecx, dword [str.bPetAction3_]
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [0x4d5e28]
mov dword [esp + 0x3d6], ecx
mov cx, word [0x4d5e2c]
mov dword [esp + 0x3da], edx
mov dl, byte [0x4d5e2e]
mov dword [esp + 0x3de], eax
mov word [esp + 0x3e2], cx
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x3e5]
mov byte [esp + 0x3e4], dl
mov edx, dword [0x4d5e18]
rep stosd dword es:[edi], eax
mov ecx, dword [0x4d5e14]
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [str.bPetAction4_]
mov dword [esp + 0x40c], ecx
mov cl, byte [0x4d5e1e]
mov dword [esp + 0x408], eax
mov ax, word [0x4d5e1c]
mov byte [esp + 0x416], cl
mov word [esp + 0x414], ax
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x417]
mov dword [esp + 0x410], edx
mov edx, dword [str.bPetAction5_]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, dword [0x4d5e08]
stosb byte es:[edi], al
mov eax, dword [0x4d5e04]
mov dword [esp + 0x43a], edx
mov dx, word [0x4d5e0c]
mov dword [esp + 0x43e], eax
mov al, byte [0x4d5e0e]
mov dword [esp + 0x442], ecx
mov byte [esp + 0x448], al
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x449]
mov word [esp + 0x446], dx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0x18]
stosb byte es:[edi], al
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [ebp + 0x1880]
mov edx, dword [esp + 0x10]
push ecx
push edx
lea eax, [esp + 0x20]
push str._s_u.cfg
push eax
mov byte [esp + 0x588], 1
call sub.MFC42.DLL_CString::Format
mov ecx, dword [esp + 0x28]
mov edi, dword [sym.imp.MSVCRT.dll_fopen]
push 0x4d03a4
push ecx
call edi
add esp, 0x18
lea ecx, [esp + 0x1c]
mov esi, eax
call sub.MFC42.DLL_CString::CString_3
test esi, esi
je 0x47bac1
push str._Setting__n
push esi
call dword [sym.imp.MSVCRT.dll_fprintf]
add esp, 8
lea ebx, [esp + 0x20]
lea edi, [ebp + 0x5f4]
mov dword [esp + 0x14], 0x16
mov edx, dword [edi]
push edx
push ebx
push str._s_d_n
push esi
call dword [sym.imp.MSVCRT.dll_fprintf]
mov eax, dword [esp + 0x24]
add esp, 0x10
add edi, 4
add ebx, 0x32
dec eax
mov dword [esp + 0x14], eax
jne 0x47ba9a
push esi
jmp 0x47bb1c
mov eax, dword [esp + 0x18]
push 0x4d5c20
push eax
call edi
add esp, 8
mov ebx, eax
push str._Setting__n
push ebx
call dword [sym.imp.MSVCRT.dll_fprintf]
add esp, 8
test ebx, ebx
je 0x47bb25
lea edi, [esp + 0x20]
lea esi, [ebp + 0x5f4]
mov dword [esp + 0x14], 0x16
mov ecx, dword [esi]
push ecx
push edi
push str._s_d_n
push ebx
call dword [sym.imp.MSVCRT.dll_fprintf]
mov eax, dword [esp + 0x24]
add esp, 0x10
add esi, 4
add edi, 0x32
dec eax
mov dword [esp + 0x14], eax
jne 0x47baf7
push ebx
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
mov ecx, ebp
call fcn.004759c0
lea ecx, [esp + 0x1c]
call fcn.004ab42e
lea ecx, [esp + 0x18]
mov byte [esp + 0x578], 0
call fcn.004ab42e
lea ecx, [esp + 0x10]
mov dword [esp + 0x578], 0xffffffff
call fcn.004ab42e
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x564]
pop ebp
mov dword fs:[0], ecx
add esp, 0x56c
ret