Function at 0x4042f0
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x435ea0
mov eax, dword fs:[0]
push eax
sub esp, 0x450
mov eax, dword [0x445040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x444], edi
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x420], ax
lea eax, [ebp - 0x41e]
push eax
call fcn.00419170
add esp, 0xc
test edi, edi
je 0x4043a0
mov ecx, edi
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404350
sub ecx, edx
sar ecx, 1
inc ecx
cmp ecx, 0x3fffffff
jg 0x4043a0
lea eax, [ecx + ecx]
mov dword [ebp - 0x424], eax
call fcn.004166a0
mov esi, esp
test esi, esi
je 0x4043a0
push 0
push 0
push dword [ebp - 0x424]
mov byte [esi], 0
push esi
push 0xffffffffffffffff
push edi
push 0
push 3
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
xor ecx, ecx
test eax, eax
cmove esi, ecx
jmp 0x4043a2
xor esi, esi
mov ecx, esi
mov dword [ebp - 0x44c], 0
xorps xmm0, xmm0
mov dword [ebp - 0x448], 0
movups xmmword [ebp - 0x45c], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4043c5
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x45c]
call fcn.004015e0
mov eax, dword [str.Search]
xorps xmm0, xmm0
movups xmmword [ebp - 0x43c], xmm0
mov dword [ebp - 0x43c], eax
movzx eax, word [0x43fca0]
movups xmm0, xmmword [str.SoftwareStork]
mov word [ebp - 0x438], ax
mov eax, dword [0x43fc94]
mov dword [ebp - 0x200], eax
movzx eax, word [0x43fc98]
push 0x1ea
mov word [ebp - 0x1fc], ax
lea eax, [ebp - 0x1fa]
movups xmmword [ebp - 0x218], xmm0
push 0
movq xmm0, qword [0x43fc8c]
push eax
mov dword [ebp - 0x42c], 6
mov dword [ebp - 0x428], 0xf
mov byte [ebp - 0x436], 0
mov dword [ebp - 0x424], 0
movq qword [ebp - 0x208], xmm0
call fcn.00419170
add esp, 0xc
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x218]
push eax
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x4044cd
push dword [ebp - 0x44c]
cmp dword [ebp - 0x448], 0xf
lea ecx, [ebp - 0x45c]
lea eax, [ebp - 0x43c]
cmova ecx, dword [ebp - 0x45c]
cmp dword [ebp - 0x428], 0xf
push ecx
cmova eax, dword [ebp - 0x43c]
push 1
push 0
push eax
push dword [ebp - 0x424]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push dword [ebp - 0x424]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0x428]
mov dword [ebp - 0x424], 0
cmp ecx, 0xf
jbe 0x40451d
mov edx, dword [ebp - 0x43c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x404513
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4046a1
push ecx
push edx
call fcn.00415d3b
add esp, 8
mov ecx, dword [ebp - 0x448]
mov dword [ebp - 0x42c], 0
mov dword [ebp - 0x428], 0xf
mov byte [ebp - 0x43c], 0
cmp ecx, 0xf
jbe 0x404572
mov edx, dword [ebp - 0x45c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x404568
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4046a1
push ecx
push edx
call fcn.00415d3b
add esp, 8
push 0x43f7a6
push str.TracyMessage
call dword [sym.imp.USER32.dll_FindWindowA]
push 0
push 0
push dword [0x447558]
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
cmp dword [0x445af8], 0xf
mov esi, 0x445ae4
jbe 0x4045ab
mov esi, dword [0x445ae4]
test esi, esi
je 0x404600
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4045b0
sub ecx, edx
lea eax, [ecx + 1]
mov dword [ebp - 0x424], eax
cmp eax, 0x3fffffff
jg 0x404600
add eax, eax
call fcn.004166a0
mov eax, esp
mov dword [ebp - 0x440], eax
test eax, eax
je 0x404600
push dword [ebp - 0x424]
xor ecx, ecx
push eax
push 0xffffffffffffffff
push esi
push ecx
push 3
mov word [eax], cx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
neg eax
sbb ecx, ecx
and ecx, dword [ebp - 0x440]
jmp 0x404602
xor ecx, ecx
lea edx, [ebp - 0x420]
sub edx, ecx
nop word [eax + eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x404610
mov edx, edi
mov esi, edi
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x404624
lea edi, [ebp - 0x420]
sub edx, esi
add edi, 0xfffffffe
nop word [eax + eax]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x404640
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp - 0x444]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x420]
mov eax, ecx
sub edx, eax
nop word [eax + eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x404670
lea esp, [ebp - 0x468]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00415d2d
mov esp, ebp
pop ebp
ret
call fcn.0041acb4
int3