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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4b8166
push eax
mov dword fs:[0], esp
sub esp, 0x560
push ebp
mov ebp, ecx
cmp dword [ebp + 0x1878], 0x2710
jbe 0x47c79d
push ebx
push esi
push edi
call fcn.0047b370
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 0x4d7b20
lea ecx, [esp + 0x14]
mov dword [esp + 0x57c], 0
call fcn.004ac100
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.004ac100
mov ecx, dword [esp + 0x10]
push ecx
call esi
add esp, 4
lea ecx, [esp + 0x10]
push str.DDzRpg
call fcn.004ac100
mov edx, dword [esp + 0x10]
push edx
call esi
add esp, 4
lea ecx, [esp + 0x10]
push str.Setting
call fcn.004ac100
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 [0x4d8074]
stosw word es:[edi], ax
mov eax, dword [0x4d8078]
mov dword [esp + 0x56], ecx
mov ecx, dword [0x4d807c]
mov dword [esp + 0x5a], edx
mov dx, word [0x4d8080]
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 [0x4d8068]
rep stosd dword es:[edi], eax
mov eax, dword [str.bAllowWatch_]
mov ecx, dword [0x4d8064]
mov dword [esp + 0x88], eax
mov ax, word [0x4d806c]
mov dword [esp + 0x8c], ecx
mov cl, byte [0x4d806e]
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 [0x4d805c]
mov edx, dword [str.bShowAni_]
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [0x4d8058]
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 [0x4d8038]
stosw word es:[edi], ax
mov eax, dword [0x4d8034]
mov dword [esp + 0x11a], edx
mov dword [esp + 0x11e], eax
mov dword [esp + 0x122], ecx
mov al, byte [0x4d803e]
mov dx, word [0x4d803c]
mov byte [esp + 0x128], al
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x129]
mov word [esp + 0x126], dx
mov edx, dword [0x4d8024]
rep stosd dword es:[edi], eax
mov ecx, dword [str.bShowMark_]
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [0x4d8028]
mov dword [esp + 0x14c], ecx
mov cl, byte [0x4d802c]
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 [0x4d801c]
stosb byte es:[edi], al
mov eax, dword [0x4d8018]
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 [0x4d8008]
stosw word es:[edi], ax
mov eax, dword [0x4d8004]
mov dword [esp + 0x1b0], edx
mov edx, dword [0x4d800c]
mov dword [esp + 0x1b4], eax
mov ax, word [0x4d8010]
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 [0x4d7ff4]
rep stosd dword es:[edi], eax
mov ecx, dword [str.bSortByLevel_]
mov eax, dword [0x4d7ff8]
mov dword [esp + 0x1e2], ecx
mov ecx, dword [0x4d7ffc]
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 [0x4d7fe8]
stosw word es:[edi], ax
mov eax, dword [0x4d7fe4]
mov dword [esp + 0x214], edx
mov edx, dword [0x4d7fec]
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 [0x4d7fd8]
rep stosd dword es:[edi], eax
mov ecx, dword [0x4d7fd4]
stosw word es:[edi], ax
mov eax, dword [str.bShowScore_]
mov dword [esp + 0x24a], ecx
mov dword [esp + 0x246], eax
mov ax, word [0x4d7fdc]
mov dword [esp + 0x24e], edx
mov word [esp + 0x252], ax
mov ecx, 9
xor eax, eax
lea edi, [esp + 0x254]
mov edx, dword [0x4d7fc8]
rep stosd dword es:[edi], eax
mov ecx, dword [str.bUpDown_]
mov ax, word [0x4d7fcc]
mov dword [esp + 0x278], ecx
mov cl, byte [0x4d7fce]
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 [0x4d7fc0]
mov edx, dword [str.bShowPet_]
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [0x4d7fbc]
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 [0x4d7fb4]
stosw word es:[edi], ax
mov eax, dword [0x4d7fb0]
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 [0x4d7fa4]
stosw word es:[edi], ax
mov eax, dword [0x4d7fa0]
mov dword [esp + 0x30e], edx
mov dl, byte [0x4d7fa8]
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 [0x4d7f98]
rep stosd dword es:[edi], eax
mov ecx, dword [0x4d7f94]
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 [0x4d7f88]
rep stosd dword es:[edi], eax
mov ecx, dword [0x4d7f84]
stosw word es:[edi], ax
mov eax, dword [str.bPetAction1_]
mov dword [esp + 0x376], ecx
mov cl, byte [0x4d7f8e]
mov dword [esp + 0x372], eax
mov ax, word [0x4d7f8c]
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 [0x4d7f74]
mov edx, dword [str.bPetAction2_]
mov ecx, dword [0x4d7f78]
mov dword [esp + 0x3a8], eax
mov al, byte [0x4d7f7e]
mov dword [esp + 0x3a4], edx
mov dx, word [0x4d7f7c]
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 [0x4d7f64]
rep stosd dword es:[edi], eax
mov ecx, dword [str.bPetAction3_]
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [0x4d7f68]
mov dword [esp + 0x3d6], ecx
mov cx, word [0x4d7f6c]
mov dword [esp + 0x3da], edx
mov dl, byte [0x4d7f6e]
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 [0x4d7f58]
rep stosd dword es:[edi], eax
mov ecx, dword [0x4d7f54]
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [str.bPetAction4_]
mov dword [esp + 0x40c], ecx
mov cl, byte [0x4d7f5e]
mov dword [esp + 0x408], eax
mov ax, word [0x4d7f5c]
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 [0x4d7f48]
stosb byte es:[edi], al
mov eax, dword [0x4d7f44]
mov dword [esp + 0x43a], edx
mov dx, word [0x4d7f4c]
mov dword [esp + 0x43e], eax
mov al, byte [0x4d7f4e]
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 + 0x1878]
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 0x4d23f4
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 0x47c701
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 0x47c6da
push esi
jmp 0x47c75c
mov eax, dword [esp + 0x18]
push 0x4d7d60
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 0x47c765
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 0x47c737
push ebx
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
mov ecx, ebp
call fcn.00476600
lea ecx, [esp + 0x1c]
call fcn.004ac05e
lea ecx, [esp + 0x18]
mov byte [esp + 0x578], 0
call fcn.004ac05e
lea ecx, [esp + 0x10]
mov dword [esp + 0x578], 0xffffffff
call fcn.004ac05e
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x564]
pop ebp
mov dword fs:[0], ecx
add esp, 0x56c
ret