Function at 0x413980
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov eax, 0x2118
call fcn.0045dd50
mov esi, ecx
mov eax, dword [0x4e6418]
xor eax, ebp
mov dword [ebp - 0x10], eax
lea edi, [ebp - 0x2010]
push 0x2000
push 0xff
push edi
call fcn.00460af0
add esp, 0xc
mov ecx, esi
push edi
call fcn.0048d0c0
test eax, eax
js 0x413a53
push str.SMDB
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x413a7a
push 0x4d1264
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x413a74
push 0x4d1268
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x413a6e
push 0x4d126c
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 0x413a55
mov dword [ebp - 0x211c], edx
jmp 0x413a84
cmp eax, 0x13
jne 0x413c6e
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 0x413c03
mov ebx, eax
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0045901d
mov eax, ebx
add esp, 0x2118
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
mov ax, 0x13
jmp 0x413a7e
mov ax, 0x4008
jmp 0x413a7e
mov ax, 8
mov dword [ebp - 0x211c], eax
mov eax, dword [esi]
mov edi, 0x800013
mov ebx, dword [sym.imp.USER32.dll_CharNextW]
jmp 0x413dbc
mov ecx, esi
lea edi, [ebp - 0x2010]
push edi
call fcn.0048d0c0
test eax, eax
js 0x413a53
movzx eax, word [ebp - 0x211c]
cmp eax, 0x12
jg 0x413a24
cmp eax, 0x11
jne 0x413c1b
lea eax, [ebp - 0x2010]
push eax
call fcn.0047b6dc
add esp, 4
mov ebx, 0x80004005
test al, 1
jne 0x413a55
mov dword [ebp - 0x211c], eax
mov edi, eax
sar edi, 1
lea eax, [ebp - 0x2110]
push 0x100
push 0xff
push eax
call fcn.00460af0
lea edx, [ebp - 0x2110]
add esp, 0xc
mov dword [edx - 4], 0
mov dword [ebp - 0x2120], edi
cmp edi, 0x101
jae 0x413dd5
mov dword [ebp - 0x2114], edx
test edx, edx
je 0x413b52
push dword [ebp - 0x2120]
push 0
mov dword [ebp - 0x2124], edx
push edx
call fcn.00460af0
add esp, 0xc
cmp dword [ebp - 0x211c], 0
jle 0x413b58
xor eax, eax
xor edx, edx
jmp 0x413bd6
xor eax, eax
xor edi, edi
jmp 0x413b89
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 0x413def
test edx, edx
je 0x413a55
jmp 0x413c46
add ecx, 0xc9
jmp 0x413bb2
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 0x413b58
movzx ecx, word [ebp + edx*2 - 0x2010]
lea ebx, [ecx - 0x30]
cmp ebx, 0xa
jb 0x413bac
lea ebx, [ecx - 0x41]
cmp ebx, 6
jb 0x413ba4
lea edi, [ecx - 0x61]
mov ebx, 0
cmp edi, 6
jae 0x413bb4
add ecx, 0xa9
jmp 0x413bb2
mov eax, dword [ebp - 0x2118]
lea ecx, [ebp - 0x2114]
mov dword [ecx], eax
mov eax, 4
push eax
push ecx
push eax
jmp 0x413c34
cmp eax, 8
jne 0x413c58
push edi
call fcn.0047b6dc
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 0x413c58
push edi
call fcn.0048d340
add esp, 4
jmp 0x413a53
mov ecx, esi
push dword [ebp + 0x10]
call fcn.0048d0c0
mov ebx, eax
sar ebx, 0x1f
and ebx, eax
jmp 0x413a55
cmp eax, 0x4008
jne 0x413c58
lea eax, [ebp - 0x2010]
push eax
call fcn.0047b6dc
add esp, 4
mov edi, eax
lea eax, [ebp - 0x2110]
push 0x100
push 0xff
push eax
call fcn.00460af0
mov eax, edi
lea edi, [ebp - 0x2110]
add esp, 0xc
add eax, 2
mov dword [edi - 4], 0
js 0x413e0f
cmp eax, 0x81
jae 0x413cc6
mov dword [ebp - 0x2114], edi
jmp 0x413cd8
add eax, eax
lea edi, [ebp - 0x2114]
mov ecx, edi
push eax
call fcn.0048d090
mov edi, dword [edi]
lea edx, [ebp - 0x2010]
xor ecx, ecx
test edi, edi
jne 0x413d07
mov edi, 0xe
lea eax, [ebp - 0x2110]
cmp ecx, eax
je 0x413c46
lea ecx, [ebp - 0x2114]
call fcn.0048d360
jmp 0x413c46
cmp word [ebp - 0x2010], 0
jne 0x413d89
mov dword [edi], 0
mov eax, dword [ebp - 0x2114]
mov edi, 0xd
test eax, eax
mov ecx, 0
je 0x413ce9
xor ebx, ebx
mov dword [ebp - 0x211c], eax
mov edi, eax
push edi
call fcn.0047b6dc
add esp, 4
lea edi, [edi + eax*2]
add edi, 2
lea ebx, [ebx + eax*2]
add ebx, 2
test eax, eax
jne 0x413d35
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 0x413ce9
mov edi, dword [ebp - 0x211c]
mov word [edi], cx
add edx, 2
add edi, 2
cmp word [edx], 0
je 0x413d11
mov dword [ebp - 0x211c], edi
push edx
mov edi, edx
call ebx
mov edx, edi
movzx ecx, word [edi]
cmp cx, 0x5c
jne 0x413d74
cmp word [eax], 0x30
jne 0x413d74
mov edi, dword [ebp - 0x211c]
mov word [edi], 0
push eax
call ebx
mov edx, eax
jmp 0x413d80
push eax
call ebx
mov dword [esi], eax
movzx ecx, word [eax]
add ecx, 0xfffffff7
cmp ecx, 0x17
ja 0x413a96
bt edi, ecx
jb 0x413db7
jmp 0x413a96
lea edi, [ebp - 0x2114]
mov ecx, edi
push dword [ebp - 0x2120]
call fcn.0048d090
mov edx, dword [edi]
jmp 0x413b25
lea ecx, [ebp - 0x2114]
mov dword [ebp - 0x211c], edi
mov edi, edx
call fcn.0048d360
mov edx, edi
mov edi, dword [ebp - 0x211c]
jmp 0x413b97
push 0x80070216
call fcn.004a7480
int3