Function at 0x413990
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov eax, 0x2118
call fcn.00460860
mov esi, ecx
mov eax, dword [0x4ef418]
xor eax, ebp
mov dword [ebp - 0x10], eax
lea edi, [ebp - 0x2010]
push 0x2000
push 0xff
push edi
call fcn.00463600
add esp, 0xc
mov ecx, esi
push edi
call fcn.004907b0
test eax, eax
js 0x413a63
push str.SMDB
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x413a8a
push 0x4d7284
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x413a84
push 0x4d7288
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x413a7e
push 0x4d728c
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 0x413a65
mov dword [ebp - 0x211c], edx
jmp 0x413a94
cmp eax, 0x13
jne 0x413c7e
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 0x413c13
mov ebx, eax
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0045bb2d
mov eax, ebx
add esp, 0x2118
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
mov ax, 0x13
jmp 0x413a8e
mov ax, 0x4008
jmp 0x413a8e
mov ax, 8
mov dword [ebp - 0x211c], eax
mov eax, dword [esi]
mov edi, 0x800013
mov ebx, dword [sym.imp.USER32.dll_CharNextW]
jmp 0x413dcc
mov ecx, esi
lea edi, [ebp - 0x2010]
push edi
call fcn.004907b0
test eax, eax
js 0x413a63
movzx eax, word [ebp - 0x211c]
cmp eax, 0x12
jg 0x413a34
cmp eax, 0x11
jne 0x413c2b
lea eax, [ebp - 0x2010]
push eax
call fcn.0047e4dc
add esp, 4
mov ebx, 0x80004005
test al, 1
jne 0x413a65
mov dword [ebp - 0x211c], eax
mov edi, eax
sar edi, 1
lea eax, [ebp - 0x2110]
push 0x100
push 0xff
push eax
call fcn.00463600
lea edx, [ebp - 0x2110]
add esp, 0xc
mov dword [edx - 4], 0
mov dword [ebp - 0x2120], edi
cmp edi, 0x101
jae 0x413de5
mov dword [ebp - 0x2114], edx
test edx, edx
je 0x413b62
push dword [ebp - 0x2120]
push 0
mov dword [ebp - 0x2124], edx
push edx
call fcn.00463600
add esp, 0xc
cmp dword [ebp - 0x211c], 0
jle 0x413b68
xor eax, eax
xor edx, edx
jmp 0x413be6
xor eax, eax
xor edi, edi
jmp 0x413b99
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 0x413dff
test edx, edx
je 0x413a65
jmp 0x413c56
add ecx, 0xc9
jmp 0x413bc2
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 0x413b68
movzx ecx, word [ebp + edx*2 - 0x2010]
lea ebx, [ecx - 0x30]
cmp ebx, 0xa
jb 0x413bbc
lea ebx, [ecx - 0x41]
cmp ebx, 6
jb 0x413bb4
lea edi, [ecx - 0x61]
mov ebx, 0
cmp edi, 6
jae 0x413bc4
add ecx, 0xa9
jmp 0x413bc2
mov eax, dword [ebp - 0x2118]
lea ecx, [ebp - 0x2114]
mov dword [ecx], eax
mov eax, 4
push eax
push ecx
push eax
jmp 0x413c44
cmp eax, 8
jne 0x413c68
push edi
call fcn.0047e4dc
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 0x413c68
push edi
call fcn.00490a30
add esp, 4
jmp 0x413a63
mov ecx, esi
push dword [ebp + 0x10]
call fcn.004907b0
mov ebx, eax
sar ebx, 0x1f
and ebx, eax
jmp 0x413a65
cmp eax, 0x4008
jne 0x413c68
lea eax, [ebp - 0x2010]
push eax
call fcn.0047e4dc
add esp, 4
mov edi, eax
lea eax, [ebp - 0x2110]
push 0x100
push 0xff
push eax
call fcn.00463600
mov eax, edi
lea edi, [ebp - 0x2110]
add esp, 0xc
add eax, 2
mov dword [edi - 4], 0
js 0x413e1f
cmp eax, 0x81
jae 0x413cd6
mov dword [ebp - 0x2114], edi
jmp 0x413ce8
add eax, eax
lea edi, [ebp - 0x2114]
mov ecx, edi
push eax
call fcn.00490780
mov edi, dword [edi]
lea edx, [ebp - 0x2010]
xor ecx, ecx
test edi, edi
jne 0x413d17
mov edi, 0xe
lea eax, [ebp - 0x2110]
cmp ecx, eax
je 0x413c56
lea ecx, [ebp - 0x2114]
call fcn.00490a50
jmp 0x413c56
cmp word [ebp - 0x2010], 0
jne 0x413d99
mov dword [edi], 0
mov eax, dword [ebp - 0x2114]
mov edi, 0xd
test eax, eax
mov ecx, 0
je 0x413cf9
xor ebx, ebx
mov dword [ebp - 0x211c], eax
mov edi, eax
push edi
call fcn.0047e4dc
add esp, 4
lea edi, [edi + eax*2]
add edi, 2
lea ebx, [ebx + eax*2]
add ebx, 2
test eax, eax
jne 0x413d45
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 0x413cf9
mov edi, dword [ebp - 0x211c]
mov word [edi], cx
add edx, 2
add edi, 2
cmp word [edx], 0
je 0x413d21
mov dword [ebp - 0x211c], edi
push edx
mov edi, edx
call ebx
mov edx, edi
movzx ecx, word [edi]
cmp cx, 0x5c
jne 0x413d84
cmp word [eax], 0x30
jne 0x413d84
mov edi, dword [ebp - 0x211c]
mov word [edi], 0
push eax
call ebx
mov edx, eax
jmp 0x413d90
push eax
call ebx
mov dword [esi], eax
movzx ecx, word [eax]
add ecx, 0xfffffff7
cmp ecx, 0x17
ja 0x413aa6
bt edi, ecx
jb 0x413dc7
jmp 0x413aa6
lea edi, [ebp - 0x2114]
mov ecx, edi
push dword [ebp - 0x2120]
call fcn.00490780
mov edx, dword [edi]
jmp 0x413b35
lea ecx, [ebp - 0x2114]
mov dword [ebp - 0x211c], edi
mov edi, edx
call fcn.00490a50
mov edx, edi
mov edi, dword [ebp - 0x211c]
jmp 0x413ba7
push 0x80070216
call fcn.004ab480
int3