Function at 0x42b3d0
Capabilities:
Set registry value

Disassembly:
push 0xffffffffffffffff
push 0x49aa95
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x4a0
mov eax, dword [0x4bc410]
xor eax, esp
push esi
mov esi, dword [esp + 0x4b8]
push edi
mov edi, dword [esp + 0x4b8]
lea ecx, [esp + 8]
mov dword [esp + 0x4a4], eax
call dword [0x49f754]
lea ecx, [esp + 0x14]
mov dword [esp + 0x4b0], 0
call dword [0x49f754]
mov dword [esp + 0x10], 0
push edi
lea eax, [esp + 0xc]
push str.Software_sUserProfile
push eax
mov byte [esp + 0x4bc], 2
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Format]
add esp, 0xc
lea ecx, [esp + 8]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
lea ecx, [esp + 0xc]
push ecx
lea edx, [esp + 0x14]
push edx
push 0
push 0x2001f
push 0
push 0
push 0
push eax
push reloc.libdb43.dll_Ordinal_1
mov dword [esp + 0x34], 0
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x42b687
mov edi, dword [esp + 0x10]
push esi
lea ecx, [esp + 0xc]
mov dword [esp + 0x14], edi
call dword [sym.imp.MFC71.DLL_ATL::CStringT::operator_3]
lea ecx, [esp + 8]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::MakeLower]
lea ecx, [esp + 0x18]
call fcn.0048cb40
lea ecx, [esp + 0x74]
mov byte [esp + 0x4b0], 3
call fcn.0047cd00
lea ecx, [esp + 0x18]
mov byte [esp + 0x4b0], 4
call fcn.0048c8e0
lea ecx, [esp + 8]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::GetLength]
push eax
lea ecx, [esp + 0xc]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
lea ecx, [esp + 0x20]
call fcn.0048c960
lea ecx, [esp + 0x18]
call fcn.0048c980
lea eax, [esp + 0x90]
push eax
lea ecx, [esp + 0x1c]
call fcn.0048c920
push 0
lea ecx, [esp + 0x94]
push ecx
lea edx, [esp + 0x14]
push edx
call fcn.0048c9e0
add esp, 0xc
push eax
lea ecx, [esp + 0xc]
mov byte [esp + 0x4b4], 5
call dword [0x49f214]
lea ecx, [esp + 0xc]
mov byte [esp + 0x4b0], 4
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
call dword [sym.imp.MSVCR71.dll_rand]
mov ecx, dword [esp + 0x4c4]
mov edx, dword [esp + 0x4c0]
push eax
mov eax, dword [esp + 0x4cc]
push eax
push ecx
push edx
push 0
call dword [sym.imp.MSVCR71.dll_time]
add esp, 4
push eax
push 1
lea eax, [esp + 0xbc]
push str._d_u_u_d_d_dFFFFFFFF
push eax
call dword [sym.imp.MSVCR71.dll_sprintf]
add esp, 0x20
lea ecx, [esp + 0x74]
call fcn.0047cf30
lea eax, [esp + 0xa4]
lea ecx, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42b5a0
sub eax, ecx
lea esi, [eax + 1]
push esi
lea ecx, [esp + 0xa8]
push ecx
lea ecx, [esp + 0x7c]
call fcn.0047cfa0
lea ecx, [esp + 8]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push esi
lea edx, [esp + 0xa8]
push edx
push 3
push 0
push eax
push edi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push str.config_config.ini
lea eax, [esp + 0x10]
push 0x4bc618
push eax
call fcn.00401050
add esp, 0xc
mov ecx, eax
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
push 0x4a112c
push str.WRITEREG
push 0x49fd90
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
lea ecx, [esp + 0xc]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x74]
mov byte [esp + 0x4b0], 3
call fcn.0047cd10
lea ecx, [esp + 0x18]
mov byte [esp + 0x4b0], 2
call fcn.00406f90
test edi, edi
je 0x42b649
push edi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 8]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov eax, 1
mov ecx, dword [esp + 0x4a8]
pop edi
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x4a0]
pop esi
xor ecx, esp
call fcn.00496ace
add esp, 0x4ac
ret
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 8]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
xor eax, eax
jmp 0x42b662