Function at 0x4034b0
Capabilities:
Create directory
Delete file
Get common file path
Read .ini file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x491aa8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x234
mov eax, dword [0x4d757c]
push esi
mov esi, dword [ebp + 0xc]
xor eax, ebp
cmp esi, 2
mov dword [esp + 0x230], eax
push edi
jg 0x403a34
jl 0x4034fc
cmp dword [ebp + 8], 0x540be400
jae 0x403a34
push 0x4ae4c0
lea ecx, [esp + 0x28]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_2]
lea eax, [esp + 0xc]
xor edi, edi
push eax
mov ecx, 0x4d8288
mov dword [esp + 0x248], edi
call fcn.004022e0
mov ecx, dword [eax]
push ecx
lea edx, [esp + 0x28]
push str._sUsers
push edx
mov byte [esp + 0x250], 1
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
add esp, 0xc
lea ecx, [esp + 0xc]
mov byte [esp + 0x244], 0
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
mov eax, dword [esp + 0x24]
push edi
push eax
call dword [sym.imp.MSVCR71.dll__waccess]
add esp, 8
cmp eax, 0xffffffff
jne 0x403573
mov ecx, dword [esp + 0x24]
push edi
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push 0x4ae4c0
lea ecx, [esp + 0x24]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_2]
lea edx, [esp + 0xc]
push edx
mov ecx, 0x4d8288
mov byte [esp + 0x248], 2
call fcn.004022e0
mov ecx, dword [ebp + 8]
mov edx, dword [eax]
push esi
push ecx
push edx
lea eax, [esp + 0x2c]
push str._sUsers_I64d
push eax
mov byte [esp + 0x258], 3
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
add esp, 0x14
lea ecx, [esp + 0xc]
mov byte [esp + 0x244], 2
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
mov ecx, dword [esp + 0x20]
push 0
push ecx
call dword [sym.imp.MSVCR71.dll__waccess]
add esp, 8
cmp eax, 0xffffffff
jne 0x4035f5
mov edx, dword [esp + 0x20]
push 0
push edx
mov edi, 1
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push 0x4ae4c0
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_2]
mov eax, dword [esp + 0x20]
push str.UserConfig.ini
push eax
lea ecx, [esp + 0x18]
push 0x4ae7ec
push ecx
mov byte [esp + 0x254], 4
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
mov edx, dword [esp + 0x20]
push 0
push edx
call dword [sym.imp.MSVCR71.dll__waccess]
add esp, 0x18
cmp eax, 0xffffffff
je 0x403643
test edi, edi
je 0x4037aa
mov eax, dword [esp + 0x10]
push eax
push 0x4ae7e8
push str.UseKplayer
push str.Setting
call fcn.00409eb0
mov ecx, dword [esp + 0x20]
push ecx
push 0x4ae7b8
push str.HotKey
push str.System
call fcn.00409eb0
mov edx, dword [esp + 0x30]
push edx
push 0x4ae7e8
push str.AutoInOutMsg
push str.UserSet
call fcn.00409eb0
add esp, 0x30
push 0x4ae4c0
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_2]
lea eax, [esp + 0x14]
push eax
mov byte [esp + 0x248], 5
mov dword [esp + 0x18], 0
call fcn.004557a0
push 1
lea ecx, [esp + 0x1c]
push 0xa
push ecx
call fcn.004580b0
push 1
lea edx, [esp + 0x28]
push 0xb
push edx
call fcn.004580b0
mov eax, dword [esp + 0x30]
push eax
lea ecx, [esp + 0x2c]
push 0x4ae764
push ecx
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
push edx
push eax
push 0x4ae758
push str.UserSet
call fcn.00409eb0
mov eax, dword [ebp + 8]
add esp, 0x38
test esi, esi
jl 0x40375c
jg 0x403717
cmp eax, 0x2bf20
jb 0x403724
test esi, esi
jl 0x40373e
jg 0x403724
cmp eax, 0x2e62f
jbe 0x40373e
test esi, esi
jl 0x40375c
jg 0x403731
cmp eax, 0x29810
jb 0x40375c
test esi, esi
jg 0x40375c
jl 0x40373e
cmp eax, 0x2bf1f
ja 0x40375c
push 0x4ae4c0
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_2]
mov byte [esp + 0x244], 6
push 0xb4
jmp 0x403775
push 0x4ae4c0
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_2]
mov byte [esp + 0x244], 7
push 0xb
lea ecx, [esp + 0x1c]
push 0x4ae764
push ecx
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
push edx
push eax
push str.AutoExchange
push str.UserSet
call fcn.00409eb0
lea ecx, [esp + 0x34]
add esp, 0x1c
jmp 0x40392c
mov ecx, dword [esp + 0x10]
push ecx
push 0
push str.AutoExchange
push str.UserSet
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
test eax, eax
jne 0x403944
test esi, esi
mov eax, dword [ebp + 8]
jl 0x40381e
jg 0x4037d9
cmp eax, 0x2bf20
jb 0x4037e6
test esi, esi
jl 0x403800
jg 0x4037e6
cmp eax, 0x2e62f
jbe 0x403800
test esi, esi
jl 0x40381e
jg 0x4037f3
cmp eax, 0x29810
jb 0x40381e
test esi, esi
jg 0x40381e
jl 0x403800
cmp eax, 0x2bf1f
ja 0x40381e
push 0x4ae4c0
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_2]
mov byte [esp + 0x244], 8
push 0xb4
jmp 0x403837
push 0x4ae4c0
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_2]
mov byte [esp + 0x244], 9
push 0xb
lea edx, [esp + 0x10]
push 0x4ae764
push edx
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
push eax
push ecx
push str.AutoExchange
push str.UserSet
call fcn.00409eb0
lea ecx, [esp + 0x28]
add esp, 0x1c
mov byte [esp + 0x244], 4
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
push 0x4ae4c0
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_2]
push 0x4ae4c0
lea ecx, [esp + 0x18]
mov byte [esp + 0x248], 0xa
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_2]
lea edx, [esp + 0x18]
push edx
mov ecx, 0x4d8288
mov byte [esp + 0x248], 0xb
call fcn.004022e0
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x10]
push str._sResEquip
push ecx
mov byte [esp + 0x250], 0xc
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
add esp, 0xc
lea ecx, [esp + 0x18]
mov byte [esp + 0x244], 0xb
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
push edx
push eax
lea ecx, [esp + 0x1c]
push str._sgoods_v1.dat
push ecx
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
mov edx, dword [esp + 0x24]
push 0x4ae6f8
push edx
call dword [sym.imp.MSVCR71.dll__wfopen]
add esp, 0x18
test eax, eax
je 0x403928
push eax
call dword [sym.imp.MSVCR71.dll_fclose]
mov eax, dword [esp + 0x18]
add esp, 4
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [esp + 0xc]
mov byte [esp + 0x244], 4
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
push 0x4ae4c0
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_2]
mov word [esp + 0x28], 0
xor eax, eax
mov ecx, 0x81
lea edi, [esp + 0x2a]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x10]
push ecx
push 0x104
lea edx, [esp + 0x30]
push edx
push 0x4ae4c0
push str.SavePath
push str.System
mov byte [esp + 0x25c], 0xd
stosw word es:[edi], ax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov esi, dword [sym.imp.MSVCR71.dll__waccess]
lea eax, [esp + 0x28]
push 0
push eax
call esi
add esp, 8
cmp eax, 0xffffffff
jne 0x403a0c
push 0
push 5
lea ecx, [esp + 0x30]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x20]
push 0x4ae6d4
push eax
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
mov ecx, dword [esp + 0x28]
push 0
push ecx
call esi
add esp, 0x14
cmp eax, 0xffffffff
jne 0x4039f0
mov edx, dword [esp + 0x1c]
push 0
push edx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
push eax
push ecx
push str.SavePath
push str.System
call fcn.00409eb0
add esp, 0x10
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [esp + 0x24]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
mov ecx, dword [esp + 0x23c]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x234]
pop edi
xor ecx, ebp
pop esi
call fcn.0045a4fd
mov esp, ebp
pop ebp
ret 8