Function at 0x18e877c
Capabilities:
Set registry value

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x2168
call fcn.01943ac0
sub rsp, rax
mov rax, qword [0x0195c138]
xor rax, rsp
mov qword [rsp + 0x2150], rax
mov r13, rdx
lea rdx, [rsp + 0x150]
xor ebx, ebx
mov r15, r9
mov r14, r8
mov r12, rcx
mov word [rsp + 0x30], bx
call fcn.018e8604
cmp eax, ebx
jl 0x18e8b7e
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x150]
call fcn.018e8514
cmp eax, ebx
jne 0x18e87f0
mov eax, 0x80020009
jmp 0x18e8b7e
mov rcx, qword [r12]
movzx eax, word [rcx]
cmp eax, 9
jl 0x18e8817
cmp eax, 0xa
jle 0x18e880b
cmp eax, 0xd
je 0x18e880b
cmp eax, 0x20
jne 0x18e8817
call qword [sym.imp.USER32.dll_CharNextW]
mov qword [r12], rax
jmp 0x18e87f0
lea rdx, [rsp + 0x150]
mov rcx, r12
call fcn.018e8604
cmp eax, ebx
jl 0x18e8b7e
movzx eax, word [rsp + 0x30]
cmp eax, 8
je 0x18e8b24
cmp eax, 0x11
je 0x18e89d1
cmp eax, 0x13
je 0x18e8997
cmp eax, 0x4008
jne 0x18e8b6c
lea rcx, [rsp + 0x150]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov qword [rsp + 0x40], rbx
add eax, 2
movsxd rcx, eax
cmp rcx, rbx
je 0x18e88b0
xor edx, edx
or rax, 0xffffffffffffffff
div rcx
cmp rax, 2
jb 0x18e88a5
lea rdx, [rcx + rcx]
cmp rdx, 0x100
jbe 0x18e88b0
lea rcx, [rsp + 0x40]
call fcn.018eb6c4
mov rdi, qword [rsp + 0x40]
jmp 0x18e88ba
mov ecx, 0x80070057
call fcn.018e7be8
int3
lea rdi, [rsp + 0x48]
mov qword [rsp + 0x40], rdi
cmp rdi, rbx
je 0x18e8975
cmp word [rsp + 0x150], bx
lea rsi, [rsp + 0x150]
je 0x18e8912
mov rcx, rsi
call qword [sym.imp.USER32.dll_CharNextW]
movzx ecx, word [rsi]
cmp cx, 0x5c
jne 0x18e8902
cmp word [rax], 0x30
jne 0x18e8902
mov word [rdi], bx
mov rcx, rax
add rdi, 2
call qword [sym.imp.USER32.dll_CharNextW]
mov rsi, rax
jmp 0x18e890d
mov word [rdi], cx
add rdi, 2
add rsi, 2
cmp word [rsi], bx
jne 0x18e88d5
mov word [rdi], bx
mov word [rdi + 2], bx
mov rdi, qword [rsp + 0x40]
cmp rdi, rbx
jne 0x18e892e
mov ecx, 0x80004005
call fcn.018e7be8
int3
mov ebp, ebx
mov rsi, rdi
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea r11d, [rax + 1]
cmp r11d, 1
lea rsi, [rsi + r11*2]
lea ebp, [rbp + r11*2]
jne 0x18e8933
mov rcx, qword [r13]
lea r9d, [r11 + 6]
xor r8d, r8d
mov rdx, r14
mov dword [rsp + 0x28], ebp
mov qword [rsp + 0x20], rdi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rdi, qword [rsp + 0x40]
mov esi, eax
jmp 0x18e897a
mov esi, 0xe
lea rax, [rsp + 0x48]
cmp rdi, rax
je 0x18e8b5f
lea rcx, [rsp + 0x40]
call fcn.018eb0fc
jmp 0x18e8b5f
lea r9, [rsp + 0x30]
lea rcx, [rsp + 0x150]
xor r8d, r8d
xor edx, edx
call qword [sym.imp.OLEAUT32.dll_VarUI4FromDisp]
mov r11d, dword [rsp + 0x30]
mov dword [rsp + 0x28], 4
mov dword [rsp + 0x38], r11d
lea rax, [rsp + 0x38]
mov r9d, 4
jmp 0x18e8b48
lea rcx, [rsp + 0x150]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rsi, eax
test sil, 1
je 0x18e89f2
mov eax, 0x80004005
jmp 0x18e8b7e
mov eax, esi
mov qword [rsp + 0x40], rbx
cdq
sub eax, edx
sar eax, 1
movsxd rbp, eax
cmp rbp, rbx
mov rdi, rbp
je 0x18e8a40
xor edx, edx
or rax, 0xffffffffffffffff
div rdi
cmp rax, 1
jae 0x18e8a23
mov ecx, 0x80070057
call fcn.018e7be8
int3
cmp rbp, 0x100
jbe 0x18e8a40
lea rcx, [rsp + 0x40]
mov rdx, rbp
call fcn.018eb6c4
mov rcx, qword [rsp + 0x40]
jmp 0x18e8a4a
lea rcx, [rsp + 0x48]
mov qword [rsp + 0x40], rcx
cmp rcx, rbx
jne 0x18e8a65
lea rax, [rsp + 0x48]
cmp rax, rbx
je 0x18e89e8
lea rcx, [rsp + 0x40]
call fcn.018eb0fc
jmp 0x18e89e8
mov r8, rbp
xor edx, edx
call sub.msvcrt.dll_memset
cmp rsi, rbx
mov r11d, ebx
mov r8, rbx
jle 0x18e8ae6
mov eax, r11d
cdq
sub eax, edx
movzx edx, word [rsp + r8*2 + 0x150]
sar eax, 1
movsxd r9, eax
mov eax, edx
add r9, qword [rsp + 0x40]
cmp edx, 0x30
jl 0x18e8ac0
cmp eax, 0x39
jle 0x18e8abb
cmp eax, 0x40
jle 0x18e8ac0
cmp eax, 0x46
jle 0x18e8ab6
add eax, 0xffffff9f
cmp eax, 5
ja 0x18e8ac0
sub dl, 0x57
jmp 0x18e8ac2
sub dl, 0x37
jmp 0x18e8ac2
sub dl, 0x30
jmp 0x18e8ac2
mov dl, bl
mov ecx, r11d
mov eax, 4
add r8, 1
and ecx, 1
add r11d, 1
shl ecx, 2
sub eax, ecx
mov cl, al
shl dl, cl
or byte [r9], dl
cmp r8, rsi
jl 0x18e8a7a
mov rax, qword [rsp + 0x40]
mov rcx, qword [r13]
mov r9d, 3
xor r8d, r8d
mov rdx, r14
mov dword [rsp + 0x28], ebp
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov esi, eax
lea rax, [rsp + 0x48]
cmp qword [rsp + 0x40], rax
je 0x18e8b5f
lea rcx, [rsp + 0x40]
call fcn.018eb0fc
jmp 0x18e8b5f
lea rcx, [rsp + 0x150]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r9d, 1
lea eax, [rax + rax + 2]
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x150]
mov rcx, qword [r13]
xor r8d, r8d
mov rdx, r14
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov esi, eax
cmp esi, ebx
je 0x18e8b6c
mov ecx, esi
call fcn.018e7c98
jmp 0x18e8b7e
mov rdx, r15
mov rcx, r12
call fcn.018e8604
cmp eax, ebx
cmovl ebx, eax
mov eax, ebx
mov rcx, qword [rsp + 0x2150]
xor rcx, rsp
call fcn.018fdad0
add rsp, 0x2168
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret