Function at 0x180010920
Capabilities:
Set registry value

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
sub rsp, 0x50
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov qword [rsp + 0x80], rbx
mov rbx, rdx
mov r12, rcx
lea rcx, case.0x180034a3c.6
mov rax, qword [case.0x180034a3c.6]
call qword [rax + Ordinal_26]
lea rsi, [rax + 0x18]
mov qword [rsp + 0x30], rsi
xor edx, edx
mov ecx, 0x9c
call fcn.180003260
test rax, rax
je 0x180010986
mov r8d, LoadRegTypeLib
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.180003b50
mov rsi, qword [rsp + 0x30]
lea rcx, case.0x180034a3c.6
mov rax, qword [case.0x180034a3c.6]
call qword [rax + Ordinal_26]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x90], rdi
xor r13d, r13d
or rbp, 0xffffffffffffffff
add rbx, 2
je 0x1800109fa
test rbx, 0xffffffffffff0000
jne 0x1800109e7
movzx ebx, bx
xor edx, edx
mov ecx, ebx
call fcn.180003260
test rax, rax
je 0x180010a18
mov r8d, ebx
mov rdx, rax
lea rcx, [rsp + 0x90]
call fcn.180003b50
mov rdi, qword [rsp + 0x90]
jmp 0x180010a18
xor eax, eax
mov rcx, rbp
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
dec rcx
jmp 0x1800109fd
mov ecx, r13d
mov r8d, ecx
mov rdx, rbx
lea rcx, [rsp + 0x90]
call fcn.180003c80
mov rdi, qword [rsp + 0x90]
movsxd rbx, dword [rdi - 0x10]
mov ecx, 1
sub ecx, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
sub eax, ebx
or eax, ecx
jge 0x180010a44
mov edx, ebx
lea rcx, [rsp + 0x90]
call fcn.180003fe0
mov rdi, qword [rsp + 0x90]
lea eax, [rbx + 1]
movsxd rdx, eax
mov rcx, rdi
call fcn.1800608f8
test ebx, ebx
js 0x180010c22
cmp ebx, dword [rdi - 0xc]
jg 0x180010c22
mov dword [rdi - 0x10], ebx
mov word [rdi + rbx*2], r13w
lea rcx, case.0x180034a3c.6
mov rax, qword [case.0x180034a3c.6]
call qword [rax + Ordinal_26]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x98], rbx
xor edx, edx
mov ecx, 0xcb
call fcn.180003260
test rax, rax
je 0x180010ab7
mov r8d, 0xcb
mov rdx, rax
lea rcx, [rsp + 0x98]
call fcn.180003b50
mov rbx, qword [rsp + 0x98]
lea rcx, case.0x180034a3c.6
mov rax, qword [case.0x180034a3c.6]
call qword [rax + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x20], rbx
mov r9, rdi
mov r8, rsi
lea rdx, str._s__s__s
lea rcx, [rsp + 0x38]
call fcn.180011550
mov rdi, qword [rsp + 0x38]
mov eax, dword [rdi - 0x10]
test eax, eax
je 0x180010ba0
lea eax, [rax + rax + 2]
mov dword [rsp + 0x20], eax
mov r9, rdi
xor edx, edx
lea r8d, [rdx + 1]
mov rcx, r12
call qword [sym.imp.ADVAPI32.dll_RegSetValueW]
nop
lea rdx, [rdi - 0x18]
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180010b33
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
nop
mov rdx, qword [rsp + 0x98]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180010b56
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
nop
mov rdx, qword [rsp + 0x90]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180010b79
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebp
dec ebp
test ebp, ebp
jg 0x180010b96
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
mov eax, 1
jmp 0x180010c2d
lea rdx, [rdi - 0x18]
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180010bbb
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
nop
mov rdx, qword [rsp + 0x98]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180010bde
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
nop
mov rdx, qword [rsp + 0x90]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180010c01
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebp
dec ebp
test ebp, ebp
jg 0x180010c1e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
xor eax, eax
jmp 0x180010c2d
mov ecx, 0x80070057
call fcn.180002fb0
nop
mov rbx, qword [rsp + 0x80]
add rsp, 0x50
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret