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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43c5c8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x7c
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
lea ecx, [ebp - 0x70]
mov dword [ebp - 4], 0
xorps xmm0, xmm0
push 0x2d
push str.SOFTWAREMicrosoftWindowsCurrentVersionRun
movups xmmword [ebp - 0x70], xmm0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0
call fcn.00401ef0
push 0
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 1
cmp dword [ebp - 0x5c], 8
lea eax, [ebp - 0x70]
push ecx
cmovae eax, dword [ebp - 0x70]
push 0
push 2
push 0
push 0
push 0
push eax
push 0x80000001
mov dword [ebp - 0x14], 0
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x404c0b
mov esi, dword [ebp - 0x14]
mov dword [ebp - 0x14], esi
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x5c]
cmp ecx, 8
jb 0x4047da
mov edx, dword [ebp - 0x70]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4047d0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404c27
push ecx
push edx
call fcn.0041fc4a
add esp, 8
xor eax, eax
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 7
mov word [ebp - 0x70], ax
test esi, esi
je 0x404bd7
push 0x44fa2c
lea ecx, [ebp - 0x58]
call fcn.00401fd0
push str.__
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 4
call fcn.00405b30
test al, al
je 0x4048b6
mov eax, dword [ebp - 0x48]
xorps xmm0, xmm0
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0
movups xmmword [ebp - 0x88], xmm0
cmp eax, 4
jb 0x404c2c
add eax, 0xfffffffc
or ecx, 0xffffffff
cmp eax, 0xffffffff
cmovb ecx, eax
cmp dword [ebp - 0x44], 8
lea eax, [ebp - 0x58]
cmovae eax, dword [ebp - 0x58]
push ecx
add eax, 8
lea ecx, [ebp - 0x88]
push eax
call fcn.00401ef0
mov ecx, dword [ebp - 0x44]
cmp ecx, 8
jb 0x4048a1
mov edx, dword [ebp - 0x58]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x404897
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404c5c
push ecx
push edx
call fcn.0041fc4a
add esp, 8
movups xmm0, xmmword [ebp - 0x88]
movups xmmword [ebp - 0x58], xmm0
movq xmm0, qword [ebp - 0x78]
movq qword [ebp - 0x48], xmm0
mov ecx, dword [ebp - 0x48]
mov eax, 0x7ffffffe
sub eax, ecx
cmp eax, 1
jb 0x404c31
cmp dword [ebp - 0x44], 8
lea eax, [ebp - 0x58]
push ecx
cmovae eax, dword [ebp - 0x58]
push eax
push 1
push 0x4464a4
push ecx
push dword [ebp - 0x14]
lea ecx, [ebp - 0x70]
call fcn.00408520
push 0x4464a4
lea edx, [ebp - 0x70]
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x88]
call fcn.00406f50
mov edi, eax
add esp, 4
lea eax, [ebp - 0x58]
cmp eax, edi
je 0x404978
mov ecx, dword [ebp - 0x44]
cmp ecx, 8
jb 0x404946
mov edx, dword [ebp - 0x58]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40493c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404c36
push ecx
push edx
call fcn.0041fc4a
add esp, 8
mov dword [ebp - 0x48], 0
xor eax, eax
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
movups xmm0, xmmword [edi]
movups xmmword [ebp - 0x58], xmm0
movq xmm0, qword [edi + 0x10]
movq qword [ebp - 0x48], xmm0
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], 7
mov word [edi], ax
mov ecx, dword [ebp - 0x74]
cmp ecx, 8
jb 0x4049b5
mov edx, dword [ebp - 0x88]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4049ab
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404c36
push ecx
push edx
call fcn.0041fc4a
add esp, 8
xor eax, eax
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 7
mov word [ebp - 0x88], ax
cmp ecx, 8
jb 0x404a0a
mov edx, dword [ebp - 0x70]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x404a00
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404c36
push ecx
push edx
call fcn.0041fc4a
add esp, 8
cmp dword [ebp - 0x44], 8
lea edx, [ebp - 0x58]
xorps xmm0, xmm0
mov dword [ebp - 0x78], 0
cmovae edx, dword [ebp - 0x58]
mov ecx, edx
mov dword [ebp - 0x74], 0
movups xmmword [ebp - 0x88], xmm0
lea edi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404a32
sub ecx, edi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x88]
call fcn.00401ef0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x70]
push 0xc
xorps xmm0, xmm0
mov dword [ebp - 0x60], 0
push 0x4464a8
movups xmmword [ebp - 0x70], xmm0
mov dword [ebp - 0x5c], 0
call fcn.00401ef0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x88]
mov eax, dword [ebp - 0x78]
cmp dword [ebp - 0x74], 8
cmovae ecx, dword [ebp - 0x88]
cmp dword [ebp - 0x5c], 8
lea edx, [eax*2 + 2]
push edx
push ecx
push 1
lea eax, [ebp - 0x70]
cmovae eax, dword [ebp - 0x70]
push 0
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
jne 0x404c3b
mov ecx, dword [ebp - 0x5c]
cmp ecx, 8
jb 0x404af0
mov edx, dword [ebp - 0x70]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x404ae6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404c57
push ecx
push edx
call fcn.0041fc4a
add esp, 8
mov ecx, dword [ebp - 0x74]
xor eax, eax
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 7
mov word [ebp - 0x70], ax
cmp ecx, 8
jb 0x404b41
mov edx, dword [ebp - 0x88]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x404b37
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404c57
push ecx
push edx
call fcn.0041fc4a
add esp, 8
push str.___Program_added_to_autostart_successfully._n
call fcn.00401e30
mov ecx, dword [ebp - 0x44]
add esp, 4
cmp ecx, 8
jb 0x404b88
mov edx, dword [ebp - 0x58]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x404b7e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404c5c
push ecx
push edx
call fcn.0041fc4a
add esp, 8
cmp esi, 0x80000001
je 0x404bd7
cmp esi, 0x80000002
je 0x404bd7
cmp esi, 0x80000000
je 0x404bd7
cmp esi, 0x80000005
je 0x404bd7
cmp esi, 0x80000007
je 0x404bd7
cmp esi, 0x80000004
je 0x404bd7
cmp esi, 0x80000060
je 0x404bd7
cmp esi, 0x80000050
je 0x404bd7
cmp esi, 0x80000003
je 0x404bd7
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
push str.RegCreateKeyExW_failed.
push eax
lea ecx, [ebp - 0x2c]
call fcn.00402e50
push 0x44d228
lea eax, [ebp - 0x2c]
push eax
call fcn.004212b7
call fcn.0042c24f
call fcn.00401c30
call fcn.00401760
call fcn.0042c24f
push str.Cannot_write_string_value:_RegSetValueExW_failed.
push eax
lea ecx, [ebp - 0x40]
call fcn.00402e50
push 0x44d228
lea eax, [ebp - 0x40]
push eax
call fcn.004212b7
call fcn.0042c24f
call fcn.0042c24f
int3