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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43d208
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 0x4049cb
mov esi, dword [ebp - 0x14]
mov dword [ebp - 0x14], esi
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x5c]
cmp ecx, 8
jb 0x40459a
mov edx, dword [ebp - 0x70]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x404590
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4049e7
push ecx
push edx
call fcn.004209ec
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 0x404997
push 0x450a2c
lea ecx, [ebp - 0x58]
call fcn.00402010
push str.__
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 4
call fcn.004058d0
test al, al
je 0x404676
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 0x4049ec
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 0x404661
mov edx, dword [ebp - 0x58]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x404657
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404a1c
push ecx
push edx
call fcn.004209ec
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 0x4049f1
cmp dword [ebp - 0x44], 8
lea eax, [ebp - 0x58]
push ecx
cmovae eax, dword [ebp - 0x58]
push eax
push 1
push 0x4472e4
push ecx
push dword [ebp - 0x14]
lea ecx, [ebp - 0x70]
call fcn.004082c0
push 0x4472e4
lea edx, [ebp - 0x70]
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x88]
call fcn.00406cf0
mov edi, eax
add esp, 4
lea eax, [ebp - 0x58]
cmp eax, edi
je 0x404738
mov ecx, dword [ebp - 0x44]
cmp ecx, 8
jb 0x404706
mov edx, dword [ebp - 0x58]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4046fc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4049f6
push ecx
push edx
call fcn.004209ec
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 0x404775
mov edx, dword [ebp - 0x88]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40476b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4049f6
push ecx
push edx
call fcn.004209ec
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 0x4047ca
mov edx, dword [ebp - 0x70]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4047c0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4049f6
push ecx
push edx
call fcn.004209ec
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 0x4047f2
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 0x4472e8
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 0x4049fb
mov ecx, dword [ebp - 0x5c]
cmp ecx, 8
jb 0x4048b0
mov edx, dword [ebp - 0x70]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4048a6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404a17
push ecx
push edx
call fcn.004209ec
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 0x404901
mov edx, dword [ebp - 0x88]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4048f7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404a17
push ecx
push edx
call fcn.004209ec
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 0x404948
mov edx, dword [ebp - 0x58]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40493e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404a1c
push ecx
push edx
call fcn.004209ec
add esp, 8
cmp esi, 0x80000001
je 0x404997
cmp esi, 0x80000002
je 0x404997
cmp esi, 0x80000000
je 0x404997
cmp esi, 0x80000005
je 0x404997
cmp esi, 0x80000007
je 0x404997
cmp esi, 0x80000004
je 0x404997
cmp esi, 0x80000060
je 0x404997
cmp esi, 0x80000050
je 0x404997
cmp esi, 0x80000003
je 0x404997
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 0x44dfe0
lea eax, [ebp - 0x2c]
push eax
call fcn.00421f27
call fcn.0042cebf
call fcn.00401b70
call fcn.00401660
call fcn.0042cebf
push str.Cannot_write_string_value:_RegSetValueExW_failed.
push eax
lea ecx, [ebp - 0x40]
call fcn.00402e80
push 0x44dfe0
lea eax, [ebp - 0x40]
push eax
call fcn.00421f27
call fcn.0042cebf
call fcn.0042cebf
int3