Function at 0x40bd50
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x49388f
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, 0x20a6c
call fcn.00491fc0
mov eax, dword [0x4bdc98]
push ebx
push esi
push edi
xor eax, ebp
mov dword [esp + 0x20a74], eax
mov dword [esp + 0x18], ecx
xor eax, eax
xor esi, esi
mov word [esp + 0x468], si
mov ecx, 0x81
lea edi, [esp + 0x46a]
rep stosd dword es:[edi], eax
push str.Language.ini
push 0x4be800
push str._s_s
stosw word es:[edi], ax
lea eax, [esp + 0x474]
push 0x103
push eax
call dword [sym.imp.MSVCR71.dll__snwprintf]
add esp, 0x14
push 0x4a1ce4
lea ecx, [esp + 0x40]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__]
lea ecx, [esp + 0x58]
mov dword [esp + 0x20a84], esi
call fcn.00411520
lea ecx, [esp + 0x20]
push ecx
mov bl, 1
lea ecx, [esp + 0x5c]
mov byte [esp + 0x20a88], bl
call fcn.00411e80
push eax
lea ecx, [esp + 0x40]
mov byte [esp + 0x20a88], 2
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
lea ecx, [esp + 0x20]
mov byte [esp + 0x20a84], bl
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
xor eax, eax
mov ecx, 0x40
lea edi, [esp + 0x870]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x54]
mov ebx, 8
cmp eax, ebx
mov eax, dword [esp + 0x40]
jae 0x40be4b
lea eax, [esp + 0x40]
lea edx, [esp + 0x468]
push edx
push 0x100
lea ecx, [esp + 0x878]
push ecx
push 0x4a5168
push esi
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp eax, esi
jne 0x40be80
push 0x4a1ce4
lea ecx, [esp + 0x40]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
cmp dword [esp + 0x54], ebx
mov ecx, dword [esp + 0x40]
jae 0x40be8e
lea ecx, [esp + 0x40]
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0x8c]
add esi, 0x74
cmp eax, ebx
jb 0x40bea4
mov eax, dword [esi + 4]
jmp 0x40bea7
lea eax, [esi + 4]
push ecx
push eax
call dword [sym.imp.MSVCR71.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x40bec1
mov esi, dword [0x4becdc]
jmp 0x40c0be
lea edx, [esp + 0x3c]
push edx
mov ecx, esi
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
mov ecx, 0x4becd0
call sub.MFC71U.DLL_CMapStringToPtr::RemoveAll
xor eax, eax
xor esi, esi
mov ecx, 0x7fff
lea edi, [esp + 0xa72]
mov word [esp + 0xa70], si
rep stosd dword es:[edi], eax
cmp dword [esp + 0x54], ebx
mov eax, dword [esp + 0x40]
jae 0x40bf00
lea eax, [esp + 0x40]
lea ecx, [esp + 0x468]
push ecx
push 0xffff
lea edx, [esp + 0xa78]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
cmp eax, esi
jne 0x40bf4d
lea ecx, [esp + 0x58]
mov byte [esp + 0x20a84], 0
call fcn.00401000
lea ecx, [esp + 0x3c]
mov dword [esp + 0x20a84], 0xffffffff
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
xor eax, eax
jmp 0x40c0e6
mov word [esp + 0x670], si
xor eax, eax
mov ecx, 0x7f
lea edi, [esp + 0x672]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0xc]
stosw word es:[edi], ax
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
mov bl, 5
mov byte [esp + 0x20a84], bl
xor edi, edi
mov ax, word [esp + edi*2 + 0xa70]
mov word [esp + esi*2 + 0x670], ax
inc esi
test ax, ax
jne 0x40c08d
lea eax, [esp + 0x670]
push eax
lea ecx, [esp + 0x10]
call dword [0x49e4c4]
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx - 0xc]
test eax, eax
je 0x40c082
push 0
push 0x3d
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_CWnd::FilterToolTipMessage]
push eax
lea edx, [esp + 0x1c]
push edx
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_CToolBar::Layout]
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x20a88], 6
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::operator_2]
lea ecx, [esp + 0x18]
mov byte [esp + 0x20a84], bl
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
push 0
push 0x3d
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_CWnd::FilterToolTipMessage]
inc eax
push eax
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_COleMessageFilter::XMessageFilter::MessagePending]
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x20a88], 7
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::operator_2]
lea ecx, [esp + 0x1c]
mov byte [esp + 0x20a84], bl
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
push 0x4a1ce0
push 0x4a1cd8
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Replace]
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x10]
push ecx
push edx
mov ecx, 0x4becd0
call sub.MFC71U.DLL_CMapStringToPtr::operator
mov ecx, eax
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::operator_2]
xor esi, esi
cmp word [esp + edi*2 + 0xa72], 0
je 0x40c09a
inc edi
cmp edi, 0xfffe
jl 0x40bf90
mov esi, dword [0x4becdc]
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [esp + 0xc]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [esp + 0x58]
mov byte [esp + 0x20a84], 0
call fcn.00401000
lea ecx, [esp + 0x3c]
mov dword [esp + 0x20a84], 0xffffffff
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov eax, esi
mov ecx, dword [esp + 0x20a7c]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x20a74]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00491e29
mov esp, ebp
pop ebp
ret