Function at 0x4068fd
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x617be5
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x2128
call fcn.00411010
mov eax, dword [0x6ab06c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, ecx
mov dword [ebp - 0x212c], ebx
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov dword [ebp - 0x211c], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x2138], eax
lea eax, [ebp - 0x2014]
push eax
mov dword [ebp - 0x2128], ebx
mov dword [ebp - 0x2124], edi
call fcn.004067b3
test eax, eax
js 0x406d88
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
lea eax, [ebp - 0x2014]
push str.SMDB
push eax
call esi
test eax, eax
jne 0x40698c
push 8
jmp 0x4069d3
push 0x698840
lea eax, [ebp - 0x2014]
push eax
call esi
test eax, eax
jne 0x4069a5
mov esi, 0x4008
jmp 0x4069d4
push 0x698844
lea eax, [ebp - 0x2014]
push eax
call esi
test eax, eax
jne 0x4069bb
push 0x13
jmp 0x4069d3
push 0x698848
lea eax, [ebp - 0x2014]
push eax
call esi
test eax, eax
jne 0x406d83
push 0x11
pop esi
mov ecx, ebx
call fcn.00406793
lea eax, [ebp - 0x2014]
mov ecx, ebx
push eax
call fcn.004067b3
test eax, eax
js 0x406d88
sub esi, 8
je 0x406d1c
sub esi, 9
je 0x406b95
dec esi
sub esi, 1
je 0x406b59
sub esi, 0x3ff5
jne 0x406d6b
lea ecx, [ebp - 0x2014]
xor ebx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, bx
jne 0x406a24
sub ecx, edx
mov dword [ebp - 0x2118], ebx
sar ecx, 1
add ecx, 2
push 2
mov dword [ebp - 4], ebx
pop edx
mov byte [ebp - 4], 1
call fcn.00408952
cmp eax, 0x100
jbe 0x406a60
push eax
lea ecx, [ebp - 0x2118]
call fcn.00408840
jmp 0x406a82
lea esi, [ebp - 0x2114]
mov dword [ebp - 0x2118], esi
jmp 0x406a88
mov esi, dword [ebp - 0x2118]
test esi, esi
je 0x406b38
cmp word [ebp - 0x2014], 0
lea edi, [ebp - 0x2014]
je 0x406ad5
push edi
call dword [sym.imp.USER32.dll_CharNextW]
movzx ecx, word [edi]
cmp ecx, 0x5c
jne 0x406ac7
push 0x30
pop edx
cmp word [eax], dx
jne 0x406ac7
xor ecx, ecx
push eax
mov word [esi], cx
call dword [sym.imp.USER32.dll_CharNextW]
mov edi, eax
jmp 0x406acd
mov word [esi], cx
add edi, 2
add esi, 2
cmp word [edi], bx
jne 0x406aa0
xor eax, eax
mov dword [esi], eax
mov esi, dword [ebp - 0x2118]
test esi, esi
jne 0x406ae7
push 0xd
jmp 0x406b3a
mov edx, ebx
mov edi, esi
mov ecx, edi
lea eax, [ecx + 2]
mov dword [ebp - 0x2120], eax
mov ax, word [ecx]
add ecx, 2
cmp ax, bx
jne 0x406af6
sub ecx, dword [ebp - 0x2120]
sar ecx, 1
inc ecx
lea edi, [edi + ecx*2]
lea edx, [edx + ecx*2]
cmp ecx, 1
jne 0x406aeb
mov eax, dword [ebp - 0x2124]
push edx
push esi
push 7
push ebx
push dword [ebp - 0x211c]
push dword [eax]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov esi, dword [ebp - 0x2118]
mov edi, eax
jmp 0x406b3b
push 0xe
pop edi
lea eax, [ebp - 0x2114]
cmp esi, eax
je 0x406d58
lea ecx, [ebp - 0x2118]
call fcn.004087e2
jmp 0x406d58
lea eax, [ebp - 0x2120]
xor ebx, ebx
push eax
push ebx
push ebx
lea eax, [ebp - 0x2014]
push eax
call dword [sym.imp.OLEAUT32.dll_VarUI4FromDisp]
test eax, eax
js 0x406d88
mov eax, dword [ebp - 0x2120]
mov dword [ebp - 0x2128], eax
lea eax, [ebp - 0x2128]
push 4
push eax
push 4
jmp 0x406d47
lea ecx, [ebp - 0x2014]
xor ebx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, bx
jne 0x406ba0
sub ecx, edx
sar ecx, 1
mov dword [ebp - 0x2134], ecx
mov dword [ebp - 0x2130], ecx
test cl, 1
je 0x406bca
mov eax, 0x80004005
jmp 0x406d88
mov eax, ecx
mov dword [ebp - 0x2118], ebx
cdq
sub eax, edx
mov edi, eax
sar edi, 1
mov dword [ebp - 0x2120], edi
xor edx, edx
mov dword [ebp - 4], 3
inc edx
mov byte [ebp - 4], 4
mov ecx, edi
call fcn.00408952
cmp eax, 0x100
jbe 0x406c0f
push eax
lea ecx, [ebp - 0x2118]
call fcn.00408840
mov eax, dword [ebp - 0x2118]
jmp 0x406c1b
lea eax, [ebp - 0x2114]
mov dword [ebp - 0x2118], eax
mov esi, dword [ebp - 0x2134]
jmp 0x406c49
test eax, eax
jne 0x406c5d
lea ecx, [ebp - 0x2118]
call fcn.004087e2
jmp 0x406bc0
push edi
push ebx
push eax
call fcn.004cd760
add esp, 0xc
test esi, esi
jle 0x406ce1
mov edi, ebx
movzx ecx, word [ebp + edi*2 - 0x2014]
mov eax, edi
cdq
sub eax, edx
mov edx, ecx
sar eax, 1
add eax, dword [ebp - 0x2118]
mov dword [ebp - 0x2130], eax
mov eax, ecx
push 0x30
pop ecx
cmp ax, cx
jb 0x406cbd
cmp eax, 0x39
jbe 0x406cb8
cmp eax, 0x40
jbe 0x406cbd
cmp eax, 0x46
jbe 0x406cb3
cmp eax, 0x60
jbe 0x406cbd
cmp edx, 0x66
ja 0x406cbd
sub dl, 0x57
jmp 0x406cbf
sub dl, 0x37
jmp 0x406cbf
sub dl, 0x30
jmp 0x406cbf
mov dl, bl
mov eax, edi
and eax, 1
shl eax, 2
push 4
pop ecx
sub ecx, eax
mov eax, dword [ebp - 0x2130]
shl dl, cl
or byte [eax], dl
inc edi
cmp edi, esi
jl 0x406c6e
mov edi, dword [ebp - 0x2120]
mov eax, dword [ebp - 0x2124]
push edi
push dword [ebp - 0x2118]
push 3
push ebx
push dword [ebp - 0x211c]
push dword [eax]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov edi, eax
lea eax, [ebp - 0x2114]
cmp dword [ebp - 0x2118], eax
je 0x406d58
lea ecx, [ebp - 0x2118]
call fcn.004087e2
jmp 0x406d58
lea ecx, [ebp - 0x2014]
xor ebx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, bx
jne 0x406d27
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
lea eax, [ebp - 0x2014]
push eax
push 1
push ebx
push dword [ebp - 0x211c]
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov edi, eax
test edi, edi
je 0x406d65
mov ecx, edi
call fcn.00405d62
jmp 0x406d88
mov ebx, dword [ebp - 0x212c]
push dword [ebp - 0x2138]
mov ecx, ebx
call fcn.004067b3
xor ecx, ecx
test eax, eax
cmovs ecx, eax
mov eax, ecx
jmp 0x406d88
mov eax, 0x80020009
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0040fc89
leave
ret 0xc