Function at 0x4019e0
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40e7f1
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x45c
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x10], esp
push str.res_std.dll
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x5c], ebx
call fcn.00408bea
mov ecx, 0xc
xor eax, eax
lea edi, [ebp - 0x57]
mov byte [ebp - 0x58], bl
rep stosd dword es:[edi], eax
lea ecx, [ebp - 0x18]
mov dword [ebp - 4], 1
stosb byte es:[edi], al
call sub.MFC42.DLL_CString::CString_2
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 2
call sub.MFC42.DLL_CString::CString_2
mov eax, dword [0x4179a8]
lea ecx, [ebp - 0x18]
push eax
push str._sTcOem.xml
push ecx
mov byte [ebp - 4], 3
call sub.MFC42.DLL_CString::Format
mov edx, dword [0x4179a8]
add esp, 0xc
lea eax, [ebp - 0x14]
push edx
push str._sTcOem.xmb
push eax
call sub.MFC42.DLL_CString::Format
xor esi, esi
add esp, 0xc
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x20], esi
call fcn.00408bae
mov ecx, dword [ebp - 0x14]
push ebx
push ebx
push ecx
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 5
call sub.MFC42.DLL_CFile::Open
cmp eax, 1
jne 0x401a9d
mov dword [ebp - 0x20], eax
mov esi, eax
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
push 0x4e4
push str.ProfileOfOEM
mov word [edx], 0x3a8
lea ecx, [ebp - 0x344]
mov dword [ebp - 4], 4
mov word [eax], 0x3a8
call fcn.0040b7a0
cmp esi, ebx
mov byte [ebp - 4], 7
mov edi, str.D575B1EE_30BC_4cf4_B5D0_AE3BEF97FE96
jne 0x401ad8
xor edi, edi
lea ecx, [ebp - 0x344]
call fcn.0040c150
cmp esi, ebx
lea eax, [ebp - 0x14]
jne 0x401aed
lea eax, [ebp - 0x18]
mov eax, dword [eax]
push 0x4e4
push edi
push eax
lea ecx, [ebp - 0x344]
call fcn.0040b830
test eax, eax
je 0x401c8b
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x21f]
mov byte [ebp - 0x220], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x417920
test ecx, ecx
stosb byte es:[edi], al
je 0x401b52
cmp byte [0x417920], bl
je 0x401b52
mov edi, dword [sym.imp.MSVCRT.dll_strncpy]
push 0x104
lea edx, [ebp - 0x220]
push ecx
push edx
call edi
add esp, 0xc
mov byte [ebp - 0x11d], bl
jmp 0x401b5e
mov edi, dword [sym.imp.MSVCRT.dll_strncpy]
mov byte [ebp - 0x220], bl
lea eax, [ebp - 0x220]
push 0x104
push eax
push 0x417920
push str.User
push str.__Language
lea ecx, [ebp - 0x344]
call fcn.0040c1b0
mov esi, dword [sym.imp.MSVCRT.dll__mbscmp]
lea ecx, [ebp - 0x220]
push 0x417920
push ecx
call esi
add esp, 8
test eax, eax
jne 0x401ba9
mov edx, dword [ebp + 0xc]
mov word [edx], 0x3a8
jmp 0x401bdb
lea eax, [ebp - 0x220]
push str.auto
push eax
call esi
add esp, 8
test eax, eax
jne 0x401bc6
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
jmp 0x401bd5
lea edx, [ebp - 0x220]
push edx
call fcn.00409b70
add esp, 4
mov ecx, dword [ebp + 0xc]
mov word [ecx], ax
mov edx, 0x417920
test edx, edx
je 0x401c06
cmp byte [0x417920], bl
je 0x401c06
push 0x104
lea eax, [ebp - 0x220]
push edx
push eax
call edi
add esp, 0xc
mov byte [ebp - 0x11d], bl
jmp 0x401c0c
mov byte [ebp - 0x220], bl
lea ecx, [ebp - 0x220]
push 0x104
push ecx
push 0x417920
push str.Prof
push str.__Language
lea ecx, [ebp - 0x344]
call fcn.0040c1b0
lea edx, [ebp - 0x220]
push 0x417920
push edx
call esi
add esp, 8
test eax, eax
jne 0x401c51
mov eax, dword [ebp + 0x10]
mov word [eax], 0x3a8
jmp 0x401c91
lea ecx, [ebp - 0x220]
push str.auto
push ecx
call esi
add esp, 8
test eax, eax
jne 0x401c74
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
mov edx, dword [ebp + 0x10]
mov word [edx], ax
jmp 0x401c91
lea eax, [ebp - 0x220]
push eax
call fcn.00409b70
mov ecx, dword [ebp + 0x10]
add esp, 4
mov word [ecx], ax
jmp 0x401c91
mov edi, dword [sym.imp.MSVCRT.dll_strncpy]
mov esi, dword [ebp + 0xc]
mov dx, word [esi]
push edx
call fcn.0040a590
mov word [esi], ax
mov esi, dword [ebp + 0x10]
mov ax, word [esi]
push eax
call fcn.0040a590
add esp, 8
lea ecx, [ebp - 0x344]
mov word [esi], ax
mov byte [ebp - 4], 4
call fcn.0040b810
push str.Connect.cfg
lea ecx, [ebp - 0x24]
push 0x4179a8
push ecx
call sub.MFC42.DLL_operator_1
mov eax, dword [eax]
push eax
push ebx
push str.NewJy
push str.Version
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
lea ecx, [ebp - 0x24]
mov esi, eax
call sub.MFC42.DLL_CString::CString
lea eax, [esi - 1]
cmp eax, 0xc
ja case.0x401cfe.2
jmp dword [eax*4 + 0x402100]
mov edx, str.res_zszq.dll
test edx, edx
je 0x401e04
cmp byte [str.res_zszq.dll], bl
je 0x401e04
push 0x32
push edx
jmp 0x401df6
mov ecx, str.res_gxzq.dll
test ecx, ecx
je 0x401e04
cmp byte [str.res_gxzq.dll], bl
je 0x401e04
push 0x32
lea edx, [ebp - 0x58]
push ecx
push edx
call edi
add esp, 0xc
mov byte [ebp - 0x27], bl
jmp case.0x401cfe.2
mov eax, str.res_yhzq.dll
test eax, eax
je 0x401e04
cmp byte [str.res_yhzq.dll], bl
je 0x401e04
push 0x32
lea ecx, [ebp - 0x58]
push str.res_yhzq.dll
push ecx
call edi
add esp, 0xc
mov byte [ebp - 0x27], bl
jmp case.0x401cfe.2
mov edx, str.res_shzq.dll
test edx, edx
je 0x401e04
cmp byte [str.res_shzq.dll], bl
je 0x401e04
push 0x32
push edx
jmp 0x401df6
mov ecx, str.res_hyzq.dll
test ecx, ecx
je 0x401e04
cmp byte [str.res_hyzq.dll], bl
je 0x401e04
push 0x32
lea edx, [ebp - 0x58]
push ecx
push edx
call edi
add esp, 0xc
mov byte [ebp - 0x27], bl
jmp case.0x401cfe.2
mov eax, str.res_xyzq.dll
test eax, eax
je 0x401e04
cmp byte [str.res_xyzq.dll], bl
je 0x401e04
push 0x32
lea ecx, [ebp - 0x58]
push str.res_xyzq.dll
push ecx
call edi
add esp, 0xc
mov byte [ebp - 0x27], bl
jmp case.0x401cfe.2
mov edx, str.res_hlzq.dll
test edx, edx
je 0x401e04
cmp byte [str.res_hlzq.dll], bl
je 0x401e04
push 0x32
push edx
lea eax, [ebp - 0x58]
push eax
call edi
add esp, 0xc
mov byte [ebp - 0x27], bl
jmp case.0x401cfe.2
mov byte [ebp - 0x58], bl
lea edi, [ebp - 0x58]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x401e4f
push str.embui.cfg
lea ecx, [ebp - 0x24]
push 0x4179a8
push ecx
call sub.MFC42.DLL_operator_1
mov eax, dword [eax]
lea edx, [ebp - 0x58]
push eax
push 0x32
push edx
push 0x417920
push str.ResDllName
push str.EMBUI
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [ebp - 0x24]
call sub.MFC42.DLL_CString::CString
mov ecx, 7
mov esi, str.Private_Profile_TDX.COM.CN
lea edi, [ebp - 0x11c]
mov eax, dword [ebp + 0xc]
rep movsd dword es:[edi], dword [esi]
mov cx, word [eax]
push ecx
call fcn.0040a550
add esp, 4
lea ecx, [ebp - 0x468]
push eax
push str.ROOT
call fcn.0040b7a0
mov eax, dword [ebp - 0x20]
mov byte [ebp - 4], 8
cmp eax, ebx
je 0x401ea8
mov edx, dword [ebp + 0x10]
mov esi, dword [ebp - 0x14]
mov ax, word [edx]
push eax
call fcn.0040a550
add esp, 4
lea ecx, [ebp - 0x11c]
push eax
push ecx
jmp 0x401ebc
mov edx, dword [ebp + 0x10]
mov esi, dword [ebp - 0x18]
mov ax, word [edx]
push eax
call fcn.0040a550
add esp, 4
push eax
push ebx
push esi
lea ecx, [ebp - 0x468]
call fcn.0040b830
push ebx
lea ecx, [ebp - 0x468]
push 1
push ecx
lea ecx, [ebp - 0xcc]
call fcn.004094d0
push 2
lea edx, [ebp - 0xac]
push str.QsTags
push edx
lea ecx, [ebp - 0xcc]
mov byte [ebp - 4], 9
call fcn.004095b0
push 2
lea eax, [ebp - 0x9c]
push str.ITEM
push eax
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 0xa
call fcn.00409720
push ebx
push 0x417be0
push str.Qsid
lea ecx, [ebp - 0x9c]
mov byte [ebp - 4], 0xb
call fcn.004097f0
push 2
lea ecx, [ebp - 0x7c]
push str.TcSkinUtility
push ecx
lea ecx, [ebp - 0xcc]
call fcn.004095b0
push 2
lea edx, [ebp - 0x8c]
push str.EmbUI
push edx
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 0xc
call fcn.00409720
mov ecx, 0xc
xor eax, eax
lea edi, [ebp - 0xff]
mov byte [ebp - 0x100], bl
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
push str.res_std.dll
lea eax, [ebp - 0x100]
push 0x32
push eax
push str.ResDllName
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 0xd
call fcn.00409870
lea edi, [ebp - 0x58]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x401fb9
lea ecx, [ebp - 0x58]
push ebx
push ecx
call fcn.00409a20
add esp, 8
test eax, eax
jne 0x401fe9
lea edx, [ebp - 0x100]
test edx, edx
je 0x401fe6
cmp byte [ebp - 0x100], bl
je 0x401fe6
lea eax, [ebp - 0x100]
push 0x32
lea ecx, [ebp - 0x58]
push eax
push ecx
call dword [sym.imp.MSVCRT.dll_strncpy]
add esp, 0xc
mov byte [ebp - 0x27], bl
jmp 0x401fe9
mov byte [ebp - 0x58], bl
lea edx, [ebp - 0x58]
lea ecx, [ebp - 0x1c]
push edx
call sub.MFC42.DLL_CString::operator
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x1c]
push eax
mov ecx, esi
call sub.MFC42.DLL_CString::CString_1
lea ecx, [ebp - 0x8c]
mov dword [ebp - 0x5c], 1
mov byte [ebp - 4], 0xc
call fcn.00409680
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 0xb
call fcn.00409680
lea ecx, [ebp - 0x9c]
mov byte [ebp - 4], 0xa
call fcn.00409680
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 9
call fcn.00409680
lea ecx, [ebp - 0xcc]
mov byte [ebp - 4], 8
call fcn.00409530
lea ecx, [ebp - 0x468]
mov byte [ebp - 4], 4
call fcn.0040b810
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 3
call sub.MFC42.DLL_CFile::CFile
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call sub.MFC42.DLL_CString::CString
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret