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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43d5f8
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.00401e30
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 0x404c2b
mov esi, dword [ebp - 0x14]
mov dword [ebp - 0x14], esi
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x5c]
cmp ecx, 8
jb 0x4047fa
mov edx, dword [ebp - 0x70]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4047f0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404c47
push ecx
push edx
call fcn.00420d85
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 0x404bf7
push 0x450a2c
lea ecx, [ebp - 0x58]
call fcn.00402010
push str.__
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 4
call fcn.00405bc0
test al, al
je 0x4048d6
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 0x404c4c
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.00401e30
mov ecx, dword [ebp - 0x44]
cmp ecx, 8
jb 0x4048c1
mov edx, dword [ebp - 0x58]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4048b7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404c7c
push ecx
push edx
call fcn.00420d85
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 0x404c51
cmp dword [ebp - 0x44], 8
lea eax, [ebp - 0x58]
push ecx
cmovae eax, dword [ebp - 0x58]
push eax
push 1
push 0x447434
push ecx
push dword [ebp - 0x14]
lea ecx, [ebp - 0x70]
call fcn.004085b0
push 0x447434
lea edx, [ebp - 0x70]
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x88]
call fcn.00406fe0
mov edi, eax
add esp, 4
lea eax, [ebp - 0x58]
cmp eax, edi
je 0x404998
mov ecx, dword [ebp - 0x44]
cmp ecx, 8
jb 0x404966
mov edx, dword [ebp - 0x58]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40495c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404c56
push ecx
push edx
call fcn.00420d85
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 0x4049d5
mov edx, dword [ebp - 0x88]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4049cb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404c56
push ecx
push edx
call fcn.00420d85
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 0x404a2a
mov edx, dword [ebp - 0x70]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x404a20
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404c56
push ecx
push edx
call fcn.00420d85
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 0x404a52
sub ecx, edi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x88]
call fcn.00401e30
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x70]
push 0xc
xorps xmm0, xmm0
mov dword [ebp - 0x60], 0
push 0x447438
movups xmmword [ebp - 0x70], xmm0
mov dword [ebp - 0x5c], 0
call fcn.00401e30
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 0x404c5b
mov ecx, dword [ebp - 0x5c]
cmp ecx, 8
jb 0x404b10
mov edx, dword [ebp - 0x70]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x404b06
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404c77
push ecx
push edx
call fcn.00420d85
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 0x404b61
mov edx, dword [ebp - 0x88]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x404b57
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404c77
push ecx
push edx
call fcn.00420d85
add esp, 8
push str.___Program_added_to_autostart_successfully._n
call fcn.00401d70
mov ecx, dword [ebp - 0x44]
add esp, 4
cmp ecx, 8
jb 0x404ba8
mov edx, dword [ebp - 0x58]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x404b9e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404c7c
push ecx
push edx
call fcn.00420d85
add esp, 8
cmp esi, 0x80000001
je 0x404bf7
cmp esi, 0x80000002
je 0x404bf7
cmp esi, 0x80000000
je 0x404bf7
cmp esi, 0x80000005
je 0x404bf7
cmp esi, 0x80000007
je 0x404bf7
cmp esi, 0x80000004
je 0x404bf7
cmp esi, 0x80000060
je 0x404bf7
cmp esi, 0x80000050
je 0x404bf7
cmp esi, 0x80000003
je 0x404bf7
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.00402e80
push 0x44e278
lea eax, [ebp - 0x2c]
push eax
call fcn.004222c7
call fcn.0042d25f
call fcn.00401b70
call fcn.00401660
call fcn.0042d25f
push str.Cannot_write_string_value:_RegSetValueExW_failed.
push eax
lea ecx, [ebp - 0x40]
call fcn.00402e80
push 0x44e278
lea eax, [ebp - 0x40]
push eax
call fcn.004222c7
call fcn.0042d25f
call fcn.0042d25f
int3