Function at 0x40899b
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x41316a
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
mov eax, 0x7598
call fcn.00411b30
lea ecx, [ebp - 0x4e48]
call sub.MFC42.DLL_CFile::CFile
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x4e38]
call sub.MFC42.DLL_CString::CString_2
mov byte [ebp - 4], 1
push 0
push 0
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x4e48]
call sub.MFC42.DLL_CFile::Open
test eax, eax
jne 0x408a2b
mov dword [ebp - 0x757c], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x4e38]
call sub.MFC42.DLL_CString::CString
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x4e48]
call fcn.0041173c
mov eax, dword [ebp - 0x757c]
jmp 0x408eb4
lea ecx, [ebp - 0x4e48]
call sub.MFC42.DLL_CFile::GetLength
push eax
lea ecx, [ebp - 0x4e2c]
push ecx
lea ecx, [ebp - 0x4e48]
call sub.MFC42.DLL_CFile::Read
mov dword [ebp - 0x4e30], eax
mov dword [ebp - 0x4e34], 0
jmp 0x408a6a
mov edx, dword [ebp - 0x4e34]
add edx, 1
mov dword [ebp - 0x4e34], edx
mov eax, dword [ebp - 0x4e34]
cmp eax, dword [ebp - 0x4e30]
jge 0x408e83
mov dword [ebp - 0x755c], 0
mov ecx, dword [ebp - 0x4e34]
movsx edx, byte [ebp + ecx - 0x4e2c]
test edx, edx
je 0x408af3
mov eax, dword [ebp - 0x4e34]
movsx ecx, byte [ebp + eax - 0x4e2c]
cmp ecx, 0xd
je 0x408af3
mov edx, dword [ebp - 0x4e34]
cmp edx, dword [ebp - 0x4e30]
je 0x408af3
mov eax, dword [ebp - 0x755c]
mov ecx, dword [ebp - 0x4e34]
mov dl, byte [ebp + ecx - 0x4e2c]
mov byte [ebp + eax - 0x7558], dl
mov eax, dword [ebp - 0x755c]
add eax, 1
mov dword [ebp - 0x755c], eax
mov ecx, dword [ebp - 0x4e34]
add ecx, 1
mov dword [ebp - 0x4e34], ecx
jmp 0x408a86
mov edx, dword [ebp - 0x755c]
mov byte [ebp + edx - 0x7558], 0
cmp dword [ebp - 0x755c], 0
jne 0x408b0f
jmp 0x408a5b
lea ecx, [ebp - 0x7560]
call sub.MFC42.DLL_CString::CString_2
mov byte [ebp - 4], 2
lea eax, [ebp - 0x7558]
push eax
lea ecx, [ebp - 0x7560]
call fcn.0041153e
push 0x418c88
lea ecx, [ebp - 0x7560]
call sub.MFC42.DLL_CString::TrimLeft_1
push str.__n_t__
lea ecx, [ebp - 0x7560]
call sub.MFC42.DLL_CString::TrimRight_1
lea ecx, [ebp - 0x7560]
call fcn.004037e0
test eax, eax
jne 0x408b73
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x7560]
call sub.MFC42.DLL_CString::CString
jmp 0x408a5b
lea ecx, [ebp - 0x7560]
call fcn.00401900
push eax
lea ecx, [ebp - 0x7558]
push ecx
call sub.MSVCRT.dll_strcpy
add esp, 8
push 0
lea ecx, [ebp - 0x7560]
call fcn.0040b920
movsx edx, al
cmp edx, 0x5b
jne 0x408c51
lea ecx, [ebp - 0x7560]
call fcn.004037e0
sub eax, 1
push eax
lea ecx, [ebp - 0x7560]
call fcn.0040b920
movsx eax, al
cmp eax, 0x5d
jne 0x408c51
push 0x418c98
push str.HKEY_LOCAL_MACHINE_
lea ecx, [ebp - 0x7560]
call sub.MFC42.DLL_CString::Replace_1
push 0x418cb0
lea ecx, [ebp - 0x7560]
call sub.MFC42.DLL_CString::TrimLeft_1
push 0x418cb4
lea ecx, [ebp - 0x7560]
call sub.MFC42.DLL_CString::TrimRight_1
push str.
lea ecx, [ebp - 0x7560]
push ecx
lea edx, [ebp - 0x7580]
push edx
call sub.MFC42.DLL_operator
mov dword [ebp - 0x7590], eax
mov eax, dword [ebp - 0x7590]
mov dword [ebp - 0x7594], eax
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x7594]
push ecx
lea ecx, [ebp - 0x4e38]
call sub.MFC42.DLL_CString::operator_1
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x7580]
call sub.MFC42.DLL_CString::CString
push 0x418cbc
lea ecx, [ebp - 0x7560]
call sub.MFC42.DLL_CString::Find
test eax, eax
jle 0x408e6f
lea ecx, [ebp - 0x756c]
call sub.MFC42.DLL_CString::CString_2
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x7578]
call sub.MFC42.DLL_CString::CString_2
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x7570]
call sub.MFC42.DLL_CString::CString_2
mov byte [ebp - 4], 6
push 0x418cc0
lea ecx, [ebp - 0x7560]
call sub.MFC42.DLL_CString::Find
push eax
push 0
lea edx, [ebp - 0x7584]
push edx
lea ecx, [ebp - 0x7560]
call sub.MFC42.DLL_CString::Mid
mov dword [ebp - 0x7598], eax
mov eax, dword [ebp - 0x7598]
mov dword [ebp - 0x759c], eax
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x759c]
push ecx
lea ecx, [ebp - 0x756c]
call sub.MFC42.DLL_CString::operator_1
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x7584]
call sub.MFC42.DLL_CString::CString
push 0x418cc4
lea ecx, [ebp - 0x7560]
call sub.MFC42.DLL_CString::Find
push eax
lea edx, [ebp - 0x7588]
push edx
lea ecx, [ebp - 0x7560]
call sub.MFC42.DLL_CString::Mid_1
mov dword [ebp - 0x75a0], eax
mov eax, dword [ebp - 0x75a0]
mov dword [ebp - 0x75a4], eax
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x75a4]
push ecx
lea ecx, [ebp - 0x7578]
call sub.MFC42.DLL_CString::operator_1
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x7588]
call sub.MFC42.DLL_CString::CString
push 0x418cc8
lea ecx, [ebp - 0x756c]
call sub.MFC42.DLL_CString::TrimRight_1
push 0x418ccc
lea ecx, [ebp - 0x7578]
call sub.MFC42.DLL_CString::TrimLeft_1
lea edx, [ebp - 0x7564]
push edx
lea eax, [ebp - 0x7574]
push eax
push 0
push 0xf003f
push 0
push 0
push 0
lea ecx, [ebp - 0x4e38]
call fcn.00401900
push eax
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
mov dword [ebp - 0x7568], eax
cmp dword [ebp - 0x7568], 0
je 0x408dee
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x7570]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x7578]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x756c]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x7560]
call sub.MFC42.DLL_CString::CString
jmp 0x408a5b
lea ecx, [ebp - 0x7578]
call fcn.004037e0
push eax
lea ecx, [ebp - 0x7578]
call fcn.004037e0
push eax
lea ecx, [ebp - 0x7578]
call sub.MFC42.DLL_CString::GetBuffer
push eax
push 1
push 0
lea ecx, [ebp - 0x756c]
call fcn.00401900
push eax
mov ecx, dword [ebp - 0x7574]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov dword [ebp - 0x7568], eax
mov edx, dword [ebp - 0x7574]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x7570]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x7578]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x756c]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x7560]
call sub.MFC42.DLL_CString::CString
jmp 0x408a5b
mov dword [ebp - 0x758c], 1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x4e38]
call sub.MFC42.DLL_CString::CString
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x4e48]
call fcn.0041173c
mov eax, dword [ebp - 0x758c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret