Function at 0x40d75a
Capabilities:
Read .ini file
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x41389c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
mov eax, 0x209c
call fcn.00412970
mov dword [ebp - 0x2070], ecx
mov dword [ebp - 4], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x18]
call sub.MFC42u.DLL_CString::CString_1
mov byte [ebp - 4], 1
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x24]
call sub.MFC42u.DLL_CString::CString_2
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x24]
call sub.MFC42u.DLL_CString::MakeLower
lea ecx, [ebp + 8]
push ecx
lea ecx, [ebp - 0x18]
call fcn.004125e0
push str..cat
lea ecx, [ebp - 0x24]
call sub.MFC42u.DLL_CString::Find_1
cmp eax, 0xffffffff
je 0x40da63
push 0
push 0x80
push 3
push 0
push 0
push 0x80000000
lea ecx, [ebp + 8]
call fcn.00404130
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0xffffffff
je 0x40da0d
mov dword [ebp - 0x34], 0
push 0x1000
push 0
lea edx, [ebp - 0x1034]
push edx
call sub.MSVCRT.dll_memset
add esp, 0xc
push 0
lea eax, [ebp - 0x34]
push eax
push 0x1000
lea ecx, [ebp - 0x1034]
push ecx
mov edx, dword [ebp - 0x30]
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x40d9e7
mov word [ebp - 0x1038], 0xfeff
mov eax, dword [ebp - 0x1034]
and eax, 0xffff
mov ecx, dword [ebp - 0x1038]
and ecx, 0xffff
cmp eax, ecx
jne 0x40d8cd
lea edx, [ebp - 0x1032]
push edx
lea ecx, [ebp - 0x204c]
call fcn.004125b6
mov dword [ebp - 0x2074], eax
mov eax, dword [ebp - 0x2074]
mov dword [ebp - 0x2078], eax
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x2078]
push ecx
lea ecx, [ebp - 0x24]
call fcn.004125e0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x204c]
call sub.MFC42u.DLL_CString::CString
jmp 0x40d913
lea edx, [ebp - 0x1034]
push edx
lea ecx, [ebp - 0x2050]
call fcn.004125b6
mov dword [ebp - 0x207c], eax
mov eax, dword [ebp - 0x207c]
mov dword [ebp - 0x2080], eax
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x2080]
push ecx
lea ecx, [ebp - 0x24]
call fcn.004125e0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2050]
call sub.MFC42u.DLL_CString::CString
push 0x418a44
lea ecx, [ebp - 0x24]
call sub.MFC42u.DLL_CString::Find_1
mov dword [ebp - 0x103c], eax
cmp dword [ebp - 0x103c], 0xffffffff
je 0x40d9cc
mov edx, dword [ebp - 0x103c]
push edx
lea eax, [ebp - 0x2054]
push eax
lea ecx, [ebp - 0x24]
call sub.MFC42u.DLL_CString::Left
mov dword [ebp - 0x2084], eax
mov ecx, dword [ebp - 0x2084]
mov dword [ebp - 0x2088], ecx
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x2088]
push edx
mov ecx, dword [ebp + 0xc]
call fcn.004125e0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2054]
call sub.MFC42u.DLL_CString::CString
mov eax, dword [ebp - 0x103c]
add eax, 1
push eax
lea ecx, [ebp - 0x2058]
push ecx
lea ecx, [ebp - 0x24]
call sub.MFC42u.DLL_CString::Mid_1
mov dword [ebp - 0x208c], eax
mov edx, dword [ebp - 0x208c]
mov dword [ebp - 0x2090], edx
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x2090]
push eax
mov ecx, dword [ebp + 0x10]
call fcn.004125e0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2058]
call sub.MFC42u.DLL_CString::CString
jmp 0x40d9e5
lea ecx, [ebp - 0x24]
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.004125e0
push 0x41b1d8
mov ecx, dword [ebp + 0x10]
call sub.MFC42u.DLL_CString::operator_2
jmp 0x40da01
push 0x41b1dc
mov ecx, dword [ebp + 0xc]
call sub.MFC42u.DLL_CString::operator_2
push 0x41b1e0
mov ecx, dword [ebp + 0x10]
call sub.MFC42u.DLL_CString::operator_2
mov edx, dword [ebp - 0x30]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x40da27
push 0x41b1e4
mov ecx, dword [ebp + 0xc]
call sub.MFC42u.DLL_CString::operator_2
push 0x41b1e8
mov ecx, dword [ebp + 0x10]
call sub.MFC42u.DLL_CString::operator_2
mov dword [ebp - 0x205c], 1
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x24]
call sub.MFC42u.DLL_CString::CString
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x18]
call sub.MFC42u.DLL_CString::CString
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 8]
call sub.MFC42u.DLL_CString::CString
mov eax, dword [ebp - 0x205c]
jmp 0x40deb8
push 0x418a48
lea ecx, [ebp - 0x24]
call sub.MFC42u.DLL_CString::Find_1
cmp eax, 0xffffffff
je 0x40dab6
lea eax, [ebp - 0x28]
push eax
push 0x41492c
push 1
push 0
push 0x41493c
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
jl 0x40daad
lea ecx, [ebp - 0x14]
push ecx
push 0x41494c
mov edx, dword [ebp - 0x28]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x28]
push ecx
call dword [eax]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x20], 1
jmp 0x40db24
push str..url
lea ecx, [ebp - 0x24]
call sub.MFC42u.DLL_CString::Find_1
cmp eax, 0xffffffff
je 0x40db24
lea edx, [ebp - 0x1c]
push edx
push 0x41490c
push 1
push 0
push 0x41491c
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
jl 0x40db1d
lea eax, [ebp - 0x14]
push eax
push 0x41494c
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x1c]
push eax
call dword [edx]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
jl 0x40db1d
lea ecx, [ebp - 0x28]
push ecx
push 0x41492c
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x1c]
push ecx
call dword [eax]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x10], 1
cmp dword [ebp - 0x2c], 0
jl 0x40dca7
lea ecx, [ebp - 0x18]
call fcn.00404130
push eax
lea edx, [ebp - 0x183c]
push edx
call dword [sym.imp.MSVCRT.dll_wcscpy]
add esp, 8
push 0
lea eax, [ebp - 0x183c]
push eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x14]
push eax
call dword [edx + 0x14]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
jl 0x40dca7
mov dword [ebp - 0x1844], 0
mov dword [ebp - 0x1840], 0
push 0x2e
lea ecx, [ebp + 8]
call sub.MFC42u.DLL_CString::ReverseFind
mov dword [ebp - 0x1844], eax
push 0x5c
lea ecx, [ebp + 8]
call sub.MFC42u.DLL_CString::ReverseFind
mov dword [ebp - 0x1840], eax
cmp dword [ebp - 0x1840], 0xffffffff
jne 0x40dbf2
mov ecx, dword [ebp - 0x1844]
push ecx
lea edx, [ebp - 0x2060]
push edx
lea ecx, [ebp + 8]
call sub.MFC42u.DLL_CString::Left
mov dword [ebp - 0x2094], eax
mov eax, dword [ebp - 0x2094]
mov dword [ebp - 0x2098], eax
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x2098]
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.004125e0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2060]
call sub.MFC42u.DLL_CString::CString
jmp 0x40dc51
mov edx, dword [ebp - 0x1840]
add edx, 1
mov eax, dword [ebp - 0x1844]
sub eax, edx
push eax
mov ecx, dword [ebp - 0x1840]
add ecx, 1
push ecx
lea edx, [ebp - 0x2064]
push edx
lea ecx, [ebp + 8]
call sub.MFC42u.DLL_CString::Mid
mov dword [ebp - 0x209c], eax
mov eax, dword [ebp - 0x209c]
mov dword [ebp - 0x20a0], eax
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x20a0]
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.004125e0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2064]
call sub.MFC42u.DLL_CString::CString
push 0x418a60
lea ecx, [ebp - 0x24]
call sub.MFC42u.DLL_CString::Find_1
cmp eax, 0xffffffff
je 0x40dc9a
push 0x800
push 0x800
lea ecx, [ebp - 0x24]
call sub.MFC42u.DLL_CString::GetBuffer
push eax
mov edx, dword [ebp - 0x28]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x28]
push ecx
call dword [eax + 0x18]
push 0xffffffffffffffff
lea ecx, [ebp - 0x24]
call sub.MFC42u.DLL_CString::ReleaseBuffer
lea edx, [ebp - 0x24]
push edx
mov ecx, dword [ebp + 0x10]
call fcn.004125e0
jmp 0x40dca7
push 0x41b1ec
mov ecx, dword [ebp + 0x10]
call sub.MFC42u.DLL_CString::operator_2
cmp dword [ebp - 0x20], 0
je 0x40dce1
cmp dword [ebp - 0x14], 0
je 0x40dcbf
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x14]
push edx
call dword [ecx + 8]
cmp dword [ebp - 0x28], 0
je 0x40dcd1
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x28]
push edx
call dword [ecx + 8]
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x28], 0
jmp 0x40dd19
cmp dword [ebp - 0x10], 0
je 0x40dd19
cmp dword [ebp - 0x28], 0
je 0x40dcf9
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x28]
push edx
call dword [ecx + 8]
cmp dword [ebp - 0x14], 0
je 0x40dd0b
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x14]
push edx
call dword [ecx + 8]
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x28], 0
cmp dword [ebp - 0x14], 0
je 0x40dd2b
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x14]
push edx
call dword [ecx + 8]
cmp dword [ebp - 0x28], 0
je 0x40dd3d
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x28]
push edx
call dword [ecx + 8]
cmp dword [ebp - 0x1c], 0
je 0x40dd4f
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x1c]
push edx
call dword [ecx + 8]
cmp dword [ebp + 0x14], 0
je 0x40de81
lea ecx, [ebp - 0x2048]
call sub.MFC42u.DLL_CString::CString_1
mov byte [ebp - 4], 9
push 0x104
push 0x104
lea ecx, [ebp - 0x2048]
call sub.MFC42u.DLL_CString::GetBuffer
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0xffffffffffffffff
lea ecx, [ebp - 0x2048]
call sub.MFC42u.DLL_CString::ReleaseBuffer
push 0x5c
lea ecx, [ebp - 0x2048]
call sub.MFC42u.DLL_CString::ReverseFind
add eax, 1
push eax
lea eax, [ebp - 0x2068]
push eax
lea ecx, [ebp - 0x2048]
call sub.MFC42u.DLL_CString::Left
mov dword [ebp - 0x20a4], eax
mov ecx, dword [ebp - 0x20a4]
mov dword [ebp - 0x20a8], ecx
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x20a8]
push edx
lea ecx, [ebp - 0x2048]
call fcn.004125e0
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x2068]
call sub.MFC42u.DLL_CString::CString
push str.CTCMSGo.dsc
lea ecx, [ebp - 0x2048]
call sub.MFC42u.DLL_CString::operator
push 0x800
push 0
lea eax, [ebp - 0x2044]
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x2048]
call fcn.00404130
push eax
push 0x400
lea ecx, [ebp - 0x2044]
push ecx
push 0x418a84
mov edx, dword [ebp + 0x14]
push edx
push str.Description
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x2044]
push eax
mov ecx, dword [ebp + 0x10]
call fcn.004125b0
push str.JimmyHui
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.0040f390
and eax, 0xff
test eax, eax
je 0x40de72
push 0x41b1f0
mov ecx, dword [ebp + 0x10]
call fcn.004125b0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2048]
call sub.MFC42u.DLL_CString::CString
mov dword [ebp - 0x206c], 1
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x24]
call sub.MFC42u.DLL_CString::CString
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x18]
call sub.MFC42u.DLL_CString::CString
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 8]
call sub.MFC42u.DLL_CString::CString
mov eax, dword [ebp - 0x206c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x10