Function at 0x7c122e1a
Capabilities:
Set registry value

Disassembly:
push ebp
mov eax, 0x2124
lea ebp, [esp - 0x20a4]
call fcn.7c12d240
mov eax, dword [0x7c133774]
xor eax, ebp
push ebx
mov dword [ebp + 0x20a0], eax
mov eax, dword [ebp + 0x20b4]
push esi
mov esi, dword [ebp + 0x20ac]
push edi
mov edi, dword [ebp + 0x20b0]
mov dword [ebp - 0x80], eax
lea eax, [ebp + 0xa0]
xor ebx, ebx
push eax
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x78], ebx
call fcn.7c122332
cmp eax, ebx
jl 0x7c1230d5
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp + 0xa0]
push eax
call fcn.7c123129
test eax, eax
pop ecx
pop ecx
jne 0x7c122e93
mov eax, 0x80020009
jmp 0x7c1230d5
mov ecx, dword [ebp - 0x74]
call fcn.7c122309
mov ecx, dword [ebp - 0x74]
lea eax, [ebp + 0xa0]
push eax
call fcn.7c122332
cmp eax, ebx
jl 0x7c1230d5
movzx eax, word [ebp - 0x78]
sub eax, 8
je 0x7c123090
sub eax, 9
je 0x7c122fc2
dec eax
dec eax
je 0x7c122f7f
sub eax, 0x3ff5
jne 0x7c1230c4
lea eax, [ebp + 0xa0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
add eax, eax
cmp eax, 0x100
mov dword [ebp - 0x64], ebx
jbe 0x7c122f00
push eax
lea ecx, [ebp - 0x64]
call fcn.7c1231f6
jmp 0x7c122f06
lea eax, [ebp - 0x60]
mov dword [ebp - 0x64], eax
mov esi, dword [ebp - 0x64]
cmp esi, ebx
je 0x7c122f63
cmp word [ebp + 0xa0], bx
lea edi, [ebp + 0xa0]
je 0x7c122f4e
push edi
call dword [sym.imp.USER32.dll_CharNextW]
mov cx, word [edi]
cmp cx, 0x5c
jne 0x7c122f42
cmp word [eax], 0x30
jne 0x7c122f42
mov word [esi], bx
inc esi
push eax
inc esi
call dword [sym.imp.USER32.dll_CharNextW]
mov edi, eax
jmp 0x7c122f49
mov word [esi], cx
inc esi
inc esi
inc edi
inc edi
cmp word [edi], bx
jne 0x7c122f1c
mov ecx, dword [ebp - 0x6c]
mov word [esi], bx
push dword [ebp - 0x64]
push dword [ebp - 0x68]
call fcn.7c1230ef
mov esi, eax
jmp 0x7c122f66
push 0xe
pop esi
lea eax, [ebp - 0x60]
cmp dword [ebp - 0x64], eax
je 0x7c1230b7
lea ecx, [ebp - 0x64]
call fcn.7c1231ed
jmp 0x7c1230b7
call dword [0x7c132050]
lea eax, [ebp - 0x68]
push eax
push ebx
push ebx
lea eax, [ebp + 0xa0]
push eax
mov dword [ebp - 0x70], ebx
call dword [sym.imp.OLEAUT32.dll_VarUI4FromDisp]
mov eax, dword [ebp - 0x68]
push 4
mov dword [ebp - 0x6c], eax
lea eax, [ebp - 0x6c]
push eax
push 4
push ebx
push edi
push dword [esi]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
lea ecx, [ebp - 0x70]
mov esi, eax
call fcn.7c1217ba
jmp 0x7c1230b7
lea eax, [ebp + 0xa0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test al, 1
mov dword [ebp - 0x70], eax
jne 0x7c123010
cdq
sub eax, edx
mov edi, eax
sar edi, 1
cmp edi, 0x100
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x64], ebx
jbe 0x7c122ff6
push edi
lea ecx, [ebp - 0x64]
call fcn.7c1231f6
jmp 0x7c122ffc
lea eax, [ebp - 0x60]
mov dword [ebp - 0x64], eax
cmp dword [ebp - 0x64], ebx
jne 0x7c12301a
lea eax, [ebp - 0x60]
test eax, eax
je 0x7c123010
lea ecx, [ebp - 0x64]
call fcn.7c1231ed
mov eax, 0x80004005
jmp 0x7c1230d5
push edi
push ebx
push dword [ebp - 0x64]
call fcn.7c12cd40
add esp, 0xc
xor edi, edi
cmp dword [ebp - 0x70], ebx
jle 0x7c123067
mov eax, edi
cdq
sub eax, edx
mov esi, eax
xor eax, eax
mov ax, word [ebp + edi*2 + 0xa0]
sar esi, 1
add esi, dword [ebp - 0x64]
push eax
call fcn.7c1231bb
pop ecx
mov ecx, edi
and ecx, 1
shl ecx, 2
mov edx, ecx
push 4
pop ecx
sub ecx, edx
shl al, cl
or byte [esi], al
inc edi
cmp edi, dword [ebp - 0x70]
jl 0x7c12302e
mov esi, dword [ebp - 0x6c]
push dword [ebp - 0x7c]
mov esi, dword [esi]
push dword [ebp - 0x64]
push 3
push ebx
push dword [ebp - 0x68]
push esi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov esi, eax
lea eax, [ebp - 0x60]
cmp dword [ebp - 0x64], eax
je 0x7c1230b7
lea ecx, [ebp - 0x64]
call fcn.7c1231ed
jmp 0x7c1230b7
lea eax, [ebp + 0xa0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp + 0xa0]
push eax
push 1
push ebx
push edi
push dword [esi]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov esi, eax
cmp esi, ebx
je 0x7c1230c4
push esi
call fcn.7c1216e0
pop ecx
jmp 0x7c1230d5
push dword [ebp - 0x80]
mov ecx, dword [ebp - 0x74]
call fcn.7c122332
cmp eax, ebx
jl 0x7c1230d5
xor eax, eax
mov ecx, dword [ebp + 0x20a0]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.7c12c83f
add ebp, 0x20a4
leave
ret 0xc