Function at 0x41d490
Capabilities:
Persist via run registry key
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x43154d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x430
push ebx
push ebp
push esi
mov esi, ecx
push edi
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::CString_3
lea ecx, [esp + 0x18]
mov dword [esp + 0x448], 0
call sub.MFC42.DLL_CString::CString_3
push 0x93
lea ecx, [esp + 0x18]
mov byte [esp + 0x44c], 1
call sub.MFC42.DLL_CString::LoadStringA
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
mov bl, 2
mov eax, dword [esp + 0x14]
push 0x447680
push eax
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
test eax, eax
je 0x41d571
push 0x44637c
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::Find_1
mov ebp, eax
lea ecx, [esp + 0x10]
push ebp
push ecx
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::Left
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x44c], bl
call sub.MFC42.DLL_CString::operator_1
lea ecx, [esp + 0x10]
mov byte [esp + 0x448], 1
call sub.MFC42.DLL_CString::CString
lea edx, [ebp + 1]
lea ecx, [esp + 0x14]
push edx
push 0
call sub.MFC42.DLL_CString::Delete
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0x4c4]
push eax
push 0
push 0x143
push ecx
call edi
cmp ebp, 0xffffffff
jne 0x41d4ec
mov edx, dword [esi + 0x4c4]
push 0
push 0
push 0x14e
push edx
call edi
push 0x9b
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::LoadStringA
mov bl, 3
mov eax, dword [esp + 0x14]
push 0x447680
push eax
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
test eax, eax
je 0x41d618
push 0x44637c
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::Find_1
mov ebp, eax
lea ecx, [esp + 0x10]
push ebp
push ecx
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::Left
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x44c], bl
call sub.MFC42.DLL_CString::operator_1
lea ecx, [esp + 0x10]
mov byte [esp + 0x448], 1
call sub.MFC42.DLL_CString::CString
lea edx, [ebp + 1]
lea ecx, [esp + 0x14]
push edx
push 0
call sub.MFC42.DLL_CString::Delete
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0x144]
push eax
push 0
push 0x143
push ecx
call edi
cmp ebp, 0xffffffff
jne 0x41d593
mov edx, dword [esi + 0x144]
push 0
push 0
push 0x14e
push edx
call edi
mov ecx, esi
call fcn.0041dbf0
mov eax, dword [esi + 0x54c]
mov cx, word [esi + 0x54c]
shr eax, 0x10
xor edx, edx
push 0
mov dh, al
mov eax, dword [esi + 0x484]
mov dl, cl
push edx
push 0x401
push eax
call edi
mov ecx, dword [esi + 0x444]
push 0x4e20
push 0
push 0x46f
push ecx
call edi
push str.speeder.ini
lea edx, [esp + 0x14]
push 0x4478a0
push edx
call sub.MFC42.DLL_operator_1
mov eax, dword [eax]
mov ebp, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push eax
push 0
push str.StartUp
push 0x446a2c
call ebp
push 0
push eax
mov eax, dword [esi + 0x3c4]
push 0xf1
push eax
call edi
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString
push reloc.inproc.dll_Ordinal_1
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x447680
call fcn.004265c8
push ecx
mov byte [esp + 0x458], 4
mov ecx, esp
mov dword [esp + 0x2c], esp
push str.SOFTWAREMicrosoftWindowsCurrentVersionRunSpeeder
call fcn.004265c8
lea ecx, [esp + 0x30]
mov byte [esp + 0x458], 1
call fcn.0041c940
lea ecx, [esp + 0x10]
mov byte [esp + 0x448], 5
push ecx
lea ecx, [esp + 0x24]
call fcn.0041ccb0
mov edx, dword [esp + 0x10]
push 0x447680
push edx
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
test eax, eax
setne al
and eax, 0xff
push 0
push eax
mov eax, dword [esi + 0x384]
push 0xf1
push eax
call edi
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString
lea eax, [esi + 0xa4]
test eax, eax
je 0x41d74e
mov eax, dword [eax + 0x20]
mov ecx, dword [esi + 0x104]
push 0
push eax
push 0x469
push ecx
call edi
push eax
call sub.MFC42.DLL_CWnd::FromHandle
mov edx, dword [esi + 0x104]
push 0xa0100
push 0
push 0x465
push edx
call edi
mov eax, dword [esi + 0x184]
push 0x98967f
push 0
push 0x46f
push eax
call edi
lea eax, [esi + 0x264]
test eax, eax
je 0x41d79c
mov eax, dword [eax + 0x20]
mov ecx, dword [esi + 0x184]
push 0
push eax
push 0x469
push ecx
call edi
push eax
call sub.MFC42.DLL_CWnd::FromHandle
mov edx, dword [esi + 0x1c4]
push 0x98967f
push 0
push 0x46f
push edx
call edi
lea eax, [esi + 0x224]
test eax, eax
je 0x41d7d5
mov eax, dword [eax + 0x20]
push 0
push eax
mov eax, dword [esi + 0x1c4]
push 0x469
push eax
call edi
push eax
call sub.MFC42.DLL_CWnd::FromHandle
push str.speeder.ini
lea ecx, [esp + 0x14]
push 0x4478a0
push ecx
call sub.MFC42.DLL_operator_1
mov eax, dword [eax]
push eax
push 0
push str.Enable
push str.FreqConversion
call ebp
mov edx, dword [esi + 0x2c4]
push 0
push eax
push 0xf1
push edx
call edi
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString
mov ecx, esi
call fcn.0041e9e0
push str.speeder.ini
lea eax, [esp + 0x14]
push 0x4478a0
push eax
call sub.MFC42.DLL_operator_1
mov eax, dword [eax]
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push eax
lea ecx, [esp + 0x44]
push 0x400
push ecx
push str.20000
push str.Normal
push str.FreqConversion
call ebx
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString
lea edx, [esp + 0x40]
lea ecx, [esi + 0x264]
push edx
call sub.MFC42.DLL_CWnd::SetWindowTextA
push str.speeder.ini
lea eax, [esp + 0x14]
push 0x4478a0
push eax
call sub.MFC42.DLL_operator_1
mov eax, dword [eax]
lea ecx, [esp + 0x40]
push eax
push 0x400
push ecx
push str.20000
push str.Change
push str.FreqConversion
call ebx
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString
lea edx, [esp + 0x40]
lea ecx, [esi + 0x224]
push edx
call sub.MFC42.DLL_CWnd::SetWindowTextA
push str.speeder.ini
lea eax, [esp + 0x14]
push 0x4478a0
push eax
call sub.MFC42.DLL_operator_1
mov eax, dword [eax]
push eax
push 0
push str.NormalSpeed
push str.FreqConversion
call ebp
mov ecx, dword [esi + 0x144]
push 0
push eax
push 0x14e
push ecx
call edi
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString
push str.speeder.ini
lea edx, [esp + 0x14]
push 0x4478a0
push edx
call sub.MFC42.DLL_operator_1
mov eax, dword [eax]
push eax
push 0
push str.EnableMaxWindowSpeed
push str.Option
call ebp
push 0
push eax
mov eax, dword [esi + 0x84]
push 0xf1
push eax
call edi
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString
mov ecx, esi
call fcn.0041ef30
push str.speeder.ini
lea ecx, [esp + 0x14]
push 0x4478a0
push ecx
call sub.MFC42.DLL_operator_1
mov eax, dword [eax]
lea edx, [esp + 0x40]
push eax
push 0x400
push edx
push 0x44699c
push str.MaxWindowSpeed
push str.Option
call ebx
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString
lea eax, [esp + 0x40]
lea ecx, [esi + 0xa4]
push eax
call sub.MFC42.DLL_CWnd::SetWindowTextA
mov eax, dword [0x44777c]
test eax, eax
jbe 0x41d9f2
lea edi, [esi + 0x324]
push 0
mov ecx, edi
call sub.MFC42.DLL_CWnd::EnableWindow
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString_3
push 0xf1f1
lea ecx, [esp + 0x14]
mov byte [esp + 0x44c], 6
call sub.MFC42.DLL_CString::LoadStringA
mov ecx, dword [esp + 0x10]
push ecx
mov ecx, edi
call sub.MFC42.DLL_CWnd::SetWindowTextA
lea ecx, [esp + 0x10]
mov byte [esp + 0x448], 5
call sub.MFC42.DLL_CString::CString
push 0
lea ecx, [esi + 0x324]
call sub.MFC42.DLL_CWnd::ShowWindow
mov ecx, esi
call fcn.0041e660
lea ecx, [esp + 0x20]
mov byte [esp + 0x448], 1
call fcn.0041cac0
lea ecx, [esp + 0x18]
mov byte [esp + 0x448], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov dword [esp + 0x448], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x440]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x43c
ret