Function at 0x688c30
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov eax, 0x2118
call fcn.00651b20
mov esi, ecx
mov eax, dword [0x7a9040]
xor eax, ebp
mov dword [ebp - 0x10], eax
lea edi, [ebp - 0x2010]
push 0x2000
push 0xff
push edi
call fcn.006547d0
add esp, 0xc
mov ecx, esi
push edi
call fcn.00687b80
test eax, eax
js 0x688d03
push str.SMDB
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x688d2a
push 0x738db4
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x688d24
push 0x738db8
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x688d1e
push 0x738dbc
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 0x688d05
mov dword [ebp - 0x211c], edx
jmp 0x688d34
cmp eax, 0x13
jne 0x688f1e
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 0x688eb3
mov ebx, eax
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00650d60
mov eax, ebx
add esp, 0x2118
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
mov ax, 0x13
jmp 0x688d2e
mov ax, 0x4008
jmp 0x688d2e
mov ax, 8
mov dword [ebp - 0x211c], eax
mov eax, dword [esi]
mov edi, 0x800013
mov ebx, dword [sym.imp.USER32.dll_CharNextW]
jmp 0x68906c
mov ecx, esi
lea edi, [ebp - 0x2010]
push edi
call fcn.00687b80
test eax, eax
js 0x688d03
movzx eax, word [ebp - 0x211c]
cmp eax, 0x12
jg 0x688cd4
cmp eax, 0x11
jne 0x688ecb
lea eax, [ebp - 0x2010]
push eax
call fcn.0066e7c4
add esp, 4
mov ebx, 0x80004005
test al, 1
jne 0x688d05
mov dword [ebp - 0x211c], eax
mov edi, eax
sar edi, 1
lea eax, [ebp - 0x2110]
push 0x100
push 0xff
push eax
call fcn.006547d0
lea edx, [ebp - 0x2110]
add esp, 0xc
mov dword [edx - 4], 0
mov dword [ebp - 0x2120], edi
cmp edi, 0x101
jae 0x689085
mov dword [ebp - 0x2114], edx
test edx, edx
je 0x688e02
push dword [ebp - 0x2120]
push 0
mov dword [ebp - 0x2124], edx
push edx
call fcn.006547d0
add esp, 0xc
cmp dword [ebp - 0x211c], 0
jle 0x688e08
xor eax, eax
xor edx, edx
jmp 0x688e86
xor eax, eax
xor edi, edi
jmp 0x688e39
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 0x68909f
test edx, edx
je 0x688d05
jmp 0x688ef6
add ecx, 0xc9
jmp 0x688e62
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 0x688e08
movzx ecx, word [ebp + edx*2 - 0x2010]
lea ebx, [ecx - 0x30]
cmp ebx, 0xa
jb 0x688e5c
lea ebx, [ecx - 0x41]
cmp ebx, 6
jb 0x688e54
lea edi, [ecx - 0x61]
mov ebx, 0
cmp edi, 6
jae 0x688e64
add ecx, 0xa9
jmp 0x688e62
mov eax, dword [ebp - 0x2118]
lea ecx, [ebp - 0x2114]
mov dword [ecx], eax
mov eax, 4
push eax
push ecx
push eax
jmp 0x688ee4
cmp eax, 8
jne 0x688f08
push edi
call fcn.0066e7c4
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 0x688f08
push edi
call fcn.006890d0
add esp, 4
jmp 0x688d03
mov ecx, esi
push dword [ebp + 0x10]
call fcn.00687b80
mov ebx, eax
sar ebx, 0x1f
and ebx, eax
jmp 0x688d05
cmp eax, 0x4008
jne 0x688f08
lea eax, [ebp - 0x2010]
push eax
call fcn.0066e7c4
add esp, 4
mov edi, eax
lea eax, [ebp - 0x2110]
push 0x100
push 0xff
push eax
call fcn.006547d0
mov eax, edi
lea edi, [ebp - 0x2110]
add esp, 0xc
add eax, 2
mov dword [edi - 4], 0
js 0x6890bf
cmp eax, 0x81
jae 0x688f76
mov dword [ebp - 0x2114], edi
jmp 0x688f88
add eax, eax
lea edi, [ebp - 0x2114]
mov ecx, edi
push eax
call fcn.006877e0
mov edi, dword [edi]
lea edx, [ebp - 0x2010]
xor ecx, ecx
test edi, edi
jne 0x688fb7
mov edi, 0xe
lea eax, [ebp - 0x2110]
cmp ecx, eax
je 0x688ef6
lea ecx, [ebp - 0x2114]
call fcn.006892c0
jmp 0x688ef6
cmp word [ebp - 0x2010], 0
jne 0x689039
mov dword [edi], 0
mov eax, dword [ebp - 0x2114]
mov edi, 0xd
test eax, eax
mov ecx, 0
je 0x688f99
xor ebx, ebx
mov dword [ebp - 0x211c], eax
mov edi, eax
push edi
call fcn.0066e7c4
add esp, 4
lea edi, [edi + eax*2]
add edi, 2
lea ebx, [ebx + eax*2]
add ebx, 2
test eax, eax
jne 0x688fe5
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 0x688f99
mov edi, dword [ebp - 0x211c]
mov word [edi], cx
add edx, 2
add edi, 2
cmp word [edx], 0
je 0x688fc1
mov dword [ebp - 0x211c], edi
push edx
mov edi, edx
call ebx
mov edx, edi
movzx ecx, word [edi]
cmp cx, 0x5c
jne 0x689024
cmp word [eax], 0x30
jne 0x689024
mov edi, dword [ebp - 0x211c]
mov word [edi], 0
push eax
call ebx
mov edx, eax
jmp 0x689030
push eax
call ebx
mov dword [esi], eax
movzx ecx, word [eax]
add ecx, 0xfffffff7
cmp ecx, 0x17
ja 0x688d46
bt edi, ecx
jb 0x689067
jmp 0x688d46
lea edi, [ebp - 0x2114]
mov ecx, edi
push dword [ebp - 0x2120]
call fcn.006877e0
mov edx, dword [edi]
jmp 0x688dd5
lea ecx, [ebp - 0x2114]
mov dword [ebp - 0x211c], edi
mov edi, edx
call fcn.006892c0
mov edx, edi
mov edi, dword [ebp - 0x211c]
jmp 0x688e47
push 0x80070216
call fcn.0069f5f0
int3