Function at 0x416d15
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x90
lea eax, [0x61559f]
lea esi, [ebp - 0x28]
and dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 1
mov dword [ebp - 0x2c], ecx
and dword [ebp - 0x48], 0
mov dword [esi], eax
mov ecx, dword [esi]
mov dword [esi], 0x97bed06d
mov edx, dword [esi]
call fcn.004088ed
and dword [esi + 0x14], 0
and dword [esi + 0x10], 0
xorps xmm0, xmm0
xor ecx, ecx
movups xmmword [esi], xmm0
cmp ecx, 0x17
ja 0x416d74
mov edx, dword [ecx + str.__31]
xor edx, dword [eax + ecx]
mov dword [ebp + ecx - 0x28], edx
add ecx, 4
jmp 0x416d5d
lea esi, [ebp - 0x28]
lea edx, [ebp - 0x9c]
movsd xmm0, qword [esi + 0x10]
movsd xmm2, qword [esi]
movsd xmm1, qword [esi + 8]
mov ecx, esi
movsd qword [edx + 0x10], xmm0
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm2
push 0x18
call fcn.00409355
pop eax
lea eax, [ebp - 0x44]
mov edi, dword [esi + 4]
and dword [eax], 0
push eax
push 0x20019
push 0
push edi
push 0x80000001
call sub.advapi32.dll_RegOpenKeyExW
test eax, eax
je 0x416dd1
and dword [ebp - 0x64], 0
mov ebx, eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x10], eax
jmp 0x416de0
mov ecx, dword [ebp - 0x44]
mov ebx, eax
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x10], ecx
mov byte [ebp - 0x64], 4
mov ecx, dword [ebp - 0x28]
mov edx, edi
call fcn.00448e50
test ebx, ebx
mov dword [ebp - 0x30], ebx
je 0x416f8c
call fcn.004860a7
lea edi, [ebp - 0x28]
mov edx, 0x6c4590
mov ecx, edi
push 8
push eax
call fcn.00406188
pop eax
pop ecx
mov esi, dword [edi + 4]
lea ecx, [ebp - 0x50]
mov edx, esi
push dword [edi + 8]
call fcn.004464a3
pop eax
mov ecx, dword [edi]
mov edx, esi
call fcn.00563c9c
lea eax, [0x613355]
mov dword [edi], eax
mov ecx, dword [edi]
mov dword [edi], 0xf5611b7c
mov edx, dword [edi]
call fcn.00408b5c
and dword [edi], 0
xor edx, edx
mov bl, 1
push 4
pop ecx
test bl, 1
je 0x416e95
mov esi, edx
movzx edi, byte [edx + 0x59680b]
xor ebx, ebx
or esi, 1
movzx esi, byte [esi + 0x59680b]
shl esi, 8
or esi, edi
mov edi, edx
or edi, 2
movzx edi, byte [edi + 0x59680b]
shl edi, 0x10
or esi, edi
mov edi, edx
or edi, 3
movzx edi, byte [edi + 0x59680b]
shl edi, 0x18
or esi, edi
xor esi, dword [eax + edx]
mov dword [ebp + edx - 0x28], esi
mov edx, ecx
jmp 0x416e49
movzx eax, word [eax + 4]
mov ecx, dword [ebp - 0x28]
xor eax, 0x7c59
mov dword [ebp - 0x5c], ecx
mov word [ebp - 0x58], ax
lea eax, [0x621bdd]
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x28]
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x28], 0x461a25b2
mov edx, dword [ebp - 0x28]
call fcn.00409318
xorps xmm0, xmm0
xor ecx, ecx
movups xmmword [ebp - 0x28], xmm0
cmp ecx, 0xf
ja 0x416ee6
mov edx, dword [ecx + 0x596811]
xor edx, dword [eax + ecx]
mov dword [ebp + ecx - 0x28], edx
add ecx, 4
jmp 0x416ecf
mov al, byte [eax + 0x10]
lea esi, [ebp - 0x28]
lea ebx, [ebp - 0x84]
lea edi, [ebp - 0x44]
lea edx, [ebp - 0x5c]
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
mov ecx, ebx
xor al, 0x3b
movsd qword [edi], xmm0
movsd qword [edi + 8], xmm1
mov byte [edi + 0x10], al
push 0x11
lea eax, [ebp - 0x44]
push eax
push 6
call fcn.00548a80
add esp, 0xc
mov ecx, dword [ebx + 4]
mov eax, dword [ebx + 8]
mov edx, esi
add eax, ecx
mov dword [esi + 4], ecx
mov dword [ebp - 0x68], ecx
mov ecx, edi
mov dword [esi + 8], eax
and word [esi + 0xc], 0
mov dword [esi], 1
call fcn.00406223
lea eax, [ebp - 0x74]
mov edi, dword [edi + 4]
and dword [esi], 0
and dword [eax], 0
push esi
push eax
push 0
push 0xf003f
push 0
push 0
push 0
push edi
push 0x80000001
call sub.advapi32.dll_RegCreateKeyExW
mov ebx, eax
test eax, eax
je 0x417020
and dword [ebp - 0x58], 0
xor eax, eax
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x10], 0
inc eax
jmp 0x417031
lea eax, [0x622367]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x28], 0x730bdf41
mov edx, dword [ebp - 0x28]
call fcn.00408f36
mov ebx, dword [ebp - 0x10]
and dword [ebp - 0x24], 0
and dword [ebp - 0x28], 0
xor ecx, ecx
cmp ecx, 7
ja 0x416fcb
mov edx, dword [ecx + 0x596800]
xor edx, dword [eax + ecx]
mov dword [ebp + ecx - 0x28], edx
add ecx, 4
jmp 0x416fb4
movzx ecx, byte [eax + 0xa]
movzx eax, word [eax + 8]
lea esi, [ebp - 0x28]
mov edx, ebx
xor eax, 0x8896
xor cl, 0x51
mov word [esi + 8], ax
mov byte [esi + 0xa], cl
mov ecx, esi
movsd xmm0, qword [esi]
mov eax, dword [esi + 7]
movsd qword [ebp - 0x44], xmm0
mov dword [ebp - 0x3d], eax
push 0xb
lea eax, [ebp - 0x44]
push eax
call fcn.0040940a
pop eax
pop ecx
mov esi, dword [esi]
cmp esi, 0x80000000
jne 0x417113
lea ecx, [ebp - 0x28]
call fcn.00405c83
jmp 0x41712d
mov ecx, dword [ebp - 0x74]
mov al, byte [ebp - 0x28]
mov dword [ebp - 0x58], ecx
mov byte [ebp - 0x54], al
mov dword [ebp - 0x10], ecx
xor eax, eax
mov ecx, dword [ebp - 0x44]
mov edx, edi
mov dword [ebp - 0x5c], eax
call fcn.00448e50
test ebx, ebx
je 0x41705f
mov ecx, dword [ebp - 0x84]
mov edx, dword [ebp - 0x68]
call fcn.00563c9c
lea eax, [ebp - 0x58]
push eax
call fcn.0045c928
pop eax
jmp 0x4171c4
lea eax, [0x619080]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x28], 0xf47f965e
mov edx, dword [ebp - 0x28]
call fcn.00408c7e
and dword [ebp - 0x24], 0
and dword [ebp - 0x28], 0
xor ecx, ecx
cmp ecx, 7
ja 0x41709b
mov edx, dword [ecx + 0x596822]
xor edx, dword [eax + ecx]
mov dword [ebp + ecx - 0x28], edx
add ecx, 4
jmp 0x417084
movzx ecx, byte [eax + 0xa]
movzx eax, word [eax + 8]
lea edx, [ebp - 0x28]
mov esi, dword [ebp - 0x4c]
xor eax, 0x5b7d
xor cl, 0xe0
mov word [edx + 8], ax
mov byte [edx + 0xa], cl
mov ecx, dword [ebp - 0x48]
movsd xmm0, qword [edx]
mov eax, dword [edx + 7]
mov dword [edx], 1
mov dword [edx + 4], esi
add ecx, esi
lea esi, [ebp - 0x44]
mov dword [edx + 8], ecx
and word [edx + 0xc], 0
mov ecx, esi
movsd qword [ebp - 0x74], xmm0
mov dword [ebp - 0x6d], eax
call fcn.00567de0
mov edi, dword [esi + 4]
mov esi, dword [esi + 8]
add esi, esi
test esi, esi
je 0x41713c
js 0x4171fa
xor ecx, ecx
mov edx, esi
inc ecx
call fcn.004388c9
mov ebx, eax
test eax, eax
jne 0x41713f
xor ecx, ecx
mov edx, esi
inc ecx
call fcn.00434230
mov edi, dword [ebp - 0x24]
lea ecx, [ebp - 0x50]
mov edx, edi
push dword [ebp - 0x20]
call fcn.004464a3
pop eax
mov ecx, esi
mov edx, edi
call fcn.00563c9c
mov esi, dword [ebp - 0x2c]
mov ecx, ebx
call fcn.0056803e
jmp 0x4171c7
xor ebx, ebx
inc ebx
push esi
push edi
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x417160
mov ecx, dword [ebp - 0x40]
add eax, eax
push 2
pop edx
push eax
call fcn.00408833
pop eax
lea edi, [ebp - 0x28]
lea edx, [ebp - 0x74]
mov ecx, edi
push 0xb
call fcn.00409355
pop eax
mov edi, dword [edi + 4]
push esi
push ebx
push 1
push 0
push edi
push dword [ebp - 0x10]
call sub.advapi32.dll_RegSetValueExW
test eax, eax
je 0x41718f
and dword [ebp - 0x44], 0
mov dword [ebp - 0x40], eax
jmp 0x417193
mov byte [ebp - 0x44], 4
mov ecx, dword [ebp - 0x28]
mov edx, edi
call fcn.00448e50
mov ecx, esi
mov edx, ebx
call fcn.00563c9c
mov ecx, dword [ebp - 0x10]
call fcn.0056803e
lea ecx, [ebp - 0x44]
call fcn.0045d60c
mov ecx, dword [ebp - 0x84]
mov edx, dword [ebp - 0x80]
call fcn.00563c9c
mov esi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x4171d6
lea ecx, [ebp - 0x64]
call fcn.00405cbe
mov eax, dword [ebp - 0x48]
movsd xmm0, qword [ebp - 0x50]
mov ecx, 0x80000001
mov dword [esi + 8], eax
movsd qword [esi], xmm0
call fcn.0056803e
add esp, 0x90
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.004341f0