Function at 0x418e80
Capabilities:
Read .ini file

Disassembly:
sub esp, 0xc
push esi
mov esi, dword [esp + 0x14]
test esi, esi
je 0x4192d9
push ebp
push 4
call sub.MFC71U.DLL_CWordArray::CWordArray
add esp, 4
test eax, eax
je 0x418eab
mov ecx, eax
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
mov ebp, eax
jmp 0x418ead
xor ebp, ebp
mov eax, dword [esi + 4]
push ebx
push eax
call dword [sym.imp.USER32.dll_GetMenuItemCount]
xor ebx, ebx
test eax, eax
mov dword [esp + 0x14], eax
jle 0x4192c2
push edi
mov ecx, dword [esi + 4]
push ebx
push ecx
call dword [sym.imp.USER32.dll_GetMenuItemID]
test eax, eax
mov dword [esp + 0x10], eax
je 0x4192b4
cmp eax, 0xffffffff
push 0x400
jne 0x41909a
mov edi, dword [esp + 0x30]
mov edx, dword [esi + 4]
push 0x200
push edi
push ebx
push edx
call dword [sym.imp.USER32.dll_GetMenuStringW]
mov eax, dword [esp + 0x28]
test eax, eax
push ebx
jne 0x418f1b
push 0x4517bc
push ebp
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
add esp, 0xc
jmp 0x418f2b
push eax
push str._s__d
push ebp
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
add esp, 0x10
mov eax, dword [0x468a78]
push eax
push 0x200
push edi
push 0x44f7f4
mov ecx, ebp
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::GetBuffer_1]
mov ecx, dword [esp + 0x34]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov dword [esp + 0x10], eax
mov al, byte [0x468a61]
test al, al
jne 0x418fa2
mov edx, dword [0x468a78]
push edx
push 0xffffffffffffffff
push str.RecordRes
push 0x451774
mov byte [0x468a61], 1
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
cmp eax, 0xffffffff
mov dword [0x468a64], eax
jne 0x418fa2
mov eax, dword [0x468a78]
push eax
push 0x451770
push str.RecordRes
push 0x451774
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov eax, dword [esp + 0x10]
test eax, eax
je 0x418fd0
push edi
mov ecx, ebp
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::operator_5]
mov ecx, ebp
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::GetBuffer_1]
mov ecx, dword [esi + 4]
push eax
push 0xffffffffffffffff
push 0x400
push ebx
push ecx
call dword [sym.imp.USER32.dll_ModifyMenuW]
jmp 0x41900a
mov eax, dword [0x468a64]
test eax, eax
je 0x41900a
mov edx, dword [esi + 4]
push 0x400
push 0x200
push edi
push ebx
push edx
call dword [sym.imp.USER32.dll_GetMenuStringW]
mov eax, dword [0x468a78]
push eax
push edi
mov ecx, ebp
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::GetBuffer_1]
mov ecx, dword [esp + 0x2c]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov edx, dword [esi + 4]
push ebx
push edx
call dword [sym.imp.USER32.dll_GetSubMenu]
push eax
call sub.MFC71U.DLL_CImageList::FromHandle
mov ecx, ebp
mov dword [esp + 0x14], eax
call dword [sym.imp.MFC71U.DLL_CHtmlView::GetLeft]
lea eax, [eax + eax + 2]
mov ecx, ebp
mov dword [esp + 0x10], eax
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::GetBuffer_1]
mov esi, eax
mov eax, dword [esp + 0x10]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x28]
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
push ebx
jne 0x419065
push 0x4517bc
push ebp
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
add esp, 0xc
jmp 0x419075
push eax
push str._s__d
push ebp
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
add esp, 0x10
mov ecx, dword [esp + 0x2c]
push ecx
mov ecx, ebp
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::GetBuffer_1]
mov edx, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x1c]
push edx
push eax
call fcn.00418e80
add esp, 0x10
jmp 0x4192b0
push ebp
push ebx
mov ecx, esi
call sub.MFC71U.DLL_CHtmlView::GetMenuBar
push 0x4517a8
push 0x4517a4
mov ecx, ebp
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Replace_1]
push 0x45179c
push 0x451798
mov ecx, ebp
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Replace_1]
mov ecx, ebp
call dword [sym.imp.MFC71U.DLL_CHtmlView::GetLeft]
lea eax, [eax + eax + 2]
mov ecx, ebp
mov dword [esp + 0x14], eax
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::GetBuffer_1]
mov edi, dword [esp + 0x2c]
mov esi, eax
mov eax, dword [esp + 0x14]
mov ecx, eax
mov eax, dword [esp + 0x28]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
push ebx
jne 0x419113
push 0x4517bc
push ebp
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
add esp, 0xc
jmp 0x419123
push eax
push str._s__d
push ebp
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
add esp, 0x10
mov eax, dword [0x468a78]
mov esi, dword [esp + 0x2c]
push eax
push 0x200
push esi
push 0x44f7f4
mov ecx, ebp
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::GetBuffer_1]
mov ecx, dword [esp + 0x34]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov edi, eax
mov al, byte [0x468a61]
test al, al
jne 0x41919c
mov edx, dword [0x468a78]
push edx
push 0xffffffffffffffff
push str.RecordRes
push 0x451774
mov byte [0x468a61], 1
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
cmp eax, 0xffffffff
mov dword [0x468a64], eax
jne 0x41919c
mov eax, dword [0x468a78]
push eax
push 0x451770
push str.RecordRes
push 0x451774
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
test edi, edi
je 0x4191f4
push esi
mov ecx, ebp
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::operator_5]
push 0x4517a4
push 0x4517a8
mov ecx, ebp
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Replace_1]
push 0x451798
push 0x45179c
mov ecx, ebp
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Replace_1]
mov ecx, ebp
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::GetBuffer_1]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
push eax
mov eax, dword [edx + 4]
push ecx
push 0x400
push ebx
push eax
call dword [sym.imp.USER32.dll_ModifyMenuW]
jmp 0x4192b0
mov eax, dword [0x468a64]
test eax, eax
je 0x4192b0
mov ecx, dword [esp + 0x20]
push 0x400
push ebp
push ebx
call sub.MFC71U.DLL_CHtmlView::GetMenuBar
push 0x4517a8
push 0x4517a4
mov ecx, ebp
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Replace_1]
push 0x45179c
push 0x451798
mov ecx, ebp
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Replace_1]
mov ecx, ebp
call dword [sym.imp.MFC71U.DLL_CHtmlView::GetLeft]
lea eax, [eax + eax + 2]
mov ecx, ebp
mov dword [esp + 0x14], eax
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::GetBuffer_1]
mov edi, dword [esp + 0x2c]
mov esi, eax
mov eax, dword [esp + 0x14]
mov ecx, eax
mov eax, dword [esp + 0x28]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
push ebx
jne 0x419281
push 0x4517bc
push ebp
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
add esp, 0xc
jmp 0x419291
push eax
push str._s__d
push ebp
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
add esp, 0x10
mov eax, dword [0x468a78]
mov ecx, dword [esp + 0x2c]
push eax
push ecx
mov ecx, ebp
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::GetBuffer_1]
mov edx, dword [esp + 0x2c]
push eax
push edx
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
inc ebx
cmp ebx, eax
jl 0x418ec7
pop edi
test ebp, ebp
pop ebx
je 0x4192d8
mov ecx, ebp
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT_2]
push ebp
call sub.MFC71U.DLL_CNoTrackObject::operator_new
add esp, 4
pop ebp
pop esi
add esp, 0xc
ret