Function at 0x51a4d0
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov eax, 0x2118
call fcn.004e7f70
mov esi, ecx
mov eax, dword [0x57f040]
xor eax, ebp
mov dword [ebp - 0x10], eax
lea edi, [ebp - 0x2010]
push 0x2000
push 0xff
push edi
call fcn.004eac00
add esp, 0xc
mov ecx, esi
push edi
call fcn.00519440
test eax, eax
js 0x51a5a3
push str.SMDB
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x51a5ca
push 0x563c34
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x51a5c4
push 0x563c38
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x51a5be
push 0x563c3c
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
xor ecx, ecx
mov edx, 0x11
mov ebx, 0x80020009
test eax, eax
cmovne edx, ecx
jne 0x51a5a5
mov dword [ebp - 0x211c], edx
jmp 0x51a5d4
cmp eax, 0x13
jne 0x51a7be
lea eax, [ebp - 0x2118]
mov dword [eax], 0xffffffff
xor ecx, ecx
lea edx, [ebp - 0x2010]
push eax
push ecx
push ecx
push edx
call dword [sym.imp.OLEAUT32.dll_VarUI4FromDisp]
test eax, eax
jns 0x51a753
mov ebx, eax
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004e71b0
mov eax, ebx
add esp, 0x2118
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
mov ax, 0x13
jmp 0x51a5ce
mov ax, 0x4008
jmp 0x51a5ce
mov ax, 8
mov dword [ebp - 0x211c], eax
mov eax, dword [esi]
mov edi, 0x800013
mov ebx, dword [sym.imp.USER32.dll_CharNextW]
jmp 0x51a90c
mov ecx, esi
lea edi, [ebp - 0x2010]
push edi
call fcn.00519440
test eax, eax
js 0x51a5a3
movzx eax, word [ebp - 0x211c]
cmp eax, 0x12
jg 0x51a574
cmp eax, 0x11
jne 0x51a76b
lea eax, [ebp - 0x2010]
push eax
call fcn.00502114
add esp, 4
mov ebx, 0x80004005
test al, 1
jne 0x51a5a5
mov dword [ebp - 0x211c], eax
mov edi, eax
sar edi, 1
lea eax, [ebp - 0x2110]
push 0x100
push 0xff
push eax
call fcn.004eac00
lea edx, [ebp - 0x2110]
add esp, 0xc
mov dword [edx - 4], 0
mov dword [ebp - 0x2120], edi
cmp edi, 0x101
jae 0x51a925
mov dword [ebp - 0x2114], edx
test edx, edx
je 0x51a6a2
push dword [ebp - 0x2120]
push 0
mov dword [ebp - 0x2124], edx
push edx
call fcn.004eac00
add esp, 0xc
cmp dword [ebp - 0x211c], 0
jle 0x51a6a8
xor eax, eax
xor edx, edx
jmp 0x51a726
xor eax, eax
xor edi, edi
jmp 0x51a6d9
push dword [ebp - 0x2120]
push dword [ebp - 0x2114]
push 3
push 0
push dword [ebp + 0xc]
mov eax, dword [ebp + 8]
push dword [eax]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov edi, eax
mov eax, dword [ebp - 0x2114]
mov ebx, 0x80004005
mov edx, dword [ebp - 0x2124]
lea ecx, [ebp - 0x2110]
cmp eax, ecx
jne 0x51a93f
test edx, edx
je 0x51a5a5
jmp 0x51a796
add ecx, 0xc9
jmp 0x51a702
add ecx, 0xd0
mov ebx, ecx
mov ecx, eax
not cl
and cl, 4
shl ebx, cl
mov ecx, dword [ebp - 0x2114]
mov edi, edx
shr edi, 1
or byte [ecx + edi], bl
inc edx
add eax, 4
cmp dword [ebp - 0x211c], edx
je 0x51a6a8
movzx ecx, word [ebp + edx*2 - 0x2010]
lea ebx, [ecx - 0x30]
cmp ebx, 0xa
jb 0x51a6fc
lea ebx, [ecx - 0x41]
cmp ebx, 6
jb 0x51a6f4
lea edi, [ecx - 0x61]
mov ebx, 0
cmp edi, 6
jae 0x51a704
add ecx, 0xa9
jmp 0x51a702
mov eax, dword [ebp - 0x2118]
lea ecx, [ebp - 0x2114]
mov dword [ecx], eax
mov eax, 4
push eax
push ecx
push eax
jmp 0x51a784
cmp eax, 8
jne 0x51a7a8
push edi
call fcn.00502114
add esp, 4
lea eax, [eax*2 + 2]
push eax
push edi
push 1
push 0
push dword [ebp + 0xc]
mov eax, dword [ebp + 8]
push dword [eax]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov edi, eax
test edi, edi
je 0x51a7a8
push edi
call fcn.0051a970
add esp, 4
jmp 0x51a5a3
mov ecx, esi
push dword [ebp + 0x10]
call fcn.00519440
mov ebx, eax
sar ebx, 0x1f
and ebx, eax
jmp 0x51a5a5
cmp eax, 0x4008
jne 0x51a7a8
lea eax, [ebp - 0x2010]
push eax
call fcn.00502114
add esp, 4
mov edi, eax
lea eax, [ebp - 0x2110]
push 0x100
push 0xff
push eax
call fcn.004eac00
mov eax, edi
lea edi, [ebp - 0x2110]
add esp, 0xc
add eax, 2
mov dword [edi - 4], 0
js 0x51a95f
cmp eax, 0x81
jae 0x51a816
mov dword [ebp - 0x2114], edi
jmp 0x51a828
add eax, eax
lea edi, [ebp - 0x2114]
mov ecx, edi
push eax
call fcn.005190b0
mov edi, dword [edi]
lea edx, [ebp - 0x2010]
xor ecx, ecx
test edi, edi
jne 0x51a857
mov edi, 0xe
lea eax, [ebp - 0x2110]
cmp ecx, eax
je 0x51a796
lea ecx, [ebp - 0x2114]
call fcn.0051ab60
jmp 0x51a796
cmp word [ebp - 0x2010], 0
jne 0x51a8d9
mov dword [edi], 0
mov eax, dword [ebp - 0x2114]
mov edi, 0xd
test eax, eax
mov ecx, 0
je 0x51a839
xor ebx, ebx
mov dword [ebp - 0x211c], eax
mov edi, eax
push edi
call fcn.00502114
add esp, 4
lea edi, [edi + eax*2]
add edi, 2
lea ebx, [ebx + eax*2]
add ebx, 2
test eax, eax
jne 0x51a885
push ebx
push dword [ebp - 0x211c]
push 7
push 0
push dword [ebp + 0xc]
mov eax, dword [ebp + 8]
push dword [eax]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov edi, eax
mov ecx, dword [ebp - 0x2114]
jmp 0x51a839
mov edi, dword [ebp - 0x211c]
mov word [edi], cx
add edx, 2
add edi, 2
cmp word [edx], 0
je 0x51a861
mov dword [ebp - 0x211c], edi
push edx
mov edi, edx
call ebx
mov edx, edi
movzx ecx, word [edi]
cmp cx, 0x5c
jne 0x51a8c4
cmp word [eax], 0x30
jne 0x51a8c4
mov edi, dword [ebp - 0x211c]
mov word [edi], 0
push eax
call ebx
mov edx, eax
jmp 0x51a8d0
push eax
call ebx
mov dword [esi], eax
movzx ecx, word [eax]
add ecx, 0xfffffff7
cmp ecx, 0x17
ja 0x51a5e6
bt edi, ecx
jb 0x51a907
jmp 0x51a5e6
lea edi, [ebp - 0x2114]
mov ecx, edi
push dword [ebp - 0x2120]
call fcn.005190b0
mov edx, dword [edi]
jmp 0x51a675
lea ecx, [ebp - 0x2114]
mov dword [ebp - 0x211c], edi
mov edi, edx
call fcn.0051ab60
mov edx, edi
mov edi, dword [ebp - 0x211c]
jmp 0x51a6e7
push 0x80070216
call fcn.00531440
int3