Function at 0x140119680
Capabilities:
Set registry value

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x40]
sub rsp, 0x140
mov qword [rbp + 8], 0xfffffffffffffffe
mov qword [rsp + 0x188], rbx
mov r13, r8
mov rdi, rdx
mov r15, rcx
mov r9, qword [rcx + 0xb0]
cmp dword [r9 + 4], 0
je 0x140119f69
mov rbx, qword [r9 + 0x10]
add rbx, r9
mov rcx, rbx
call fcn.140117ff0
test rax, rax
je 0x140119f69
cmp byte [rbx + 0x18], 0
jne 0x140119f69
mov rcx, rbx
call fcn.140117ff0
test rax, rax
je 0x140119f69
mov rcx, qword [rdi]
mov qword [rsp + 0x60], rcx
mov eax, dword [rcx]
inc eax
cmp eax, 1
jbe 0x14011970e
lock inc dword [rcx]
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x48]
call fcn.140117c30
nop
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x68]
call fcn.1401183d0
mov rdi, rax
mov rcx, qword [r15 + 0xb0]
xor ebx, ebx
cmp dword [rcx + 4], ebx
je 0x140119766
mov rbx, qword [rcx + 0x10]
add rbx, rcx
mov rcx, rbx
call fcn.140117ff0
test rax, rax
je 0x140119764
cmp byte [rbx + 0x18], 0
jne 0x140119764
mov rcx, rbx
call fcn.140117ff0
xor ebx, ebx
jmp 0x140119769
xor ebx, ebx
mov rax, rbx
mov r9d, dword [r15 + 0xbc]
mov r8, rdi
mov edx, 0x2001f
mov rcx, rax
call fcn.140117520
mov r12, rax
mov qword [rbp - 0x38], rax
mov rcx, qword [rsp + 0x68]
mov edx, dword [rcx]
or esi, 0xffffffff
test edx, edx
je 0x1401197a9
cmp edx, esi
je 0x1401197b7
mov edx, esi
lock xadd dword [rcx], edx
cmp edx, 1
jne 0x1401197b7
mov rcx, qword [rsp + 0x68]
mov edx, 2
lea r8d, [rdx + 6]
call fcn.140039ba0
test r12, r12
jne 0x1401197ce
lea edx, [r12 + 1]
mov rcx, r15
call fcn.1400d3c00
jmp 0x140119f3b
lea rax, [0x140187f70]
mov qword [rsp + 0x30], rax
mov rcx, r13
call fcn.140078cb0
add eax, 0xfffffffe
mov r14d, 1
cmp eax, 0xa
ja case.0x140119807.6
cdqe
lea rdx, [0x140000000]
mov ecx, dword [rdx + rax*4 + 0x119f94]
add rcx, rdx
jmp rcx
mov dword [rbp + 0x98], 7
lea rdx, [rsp + 0x70]
mov rcx, r13
call fcn.1400789d0
nop
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.1400d5810
nop
mov r15, qword [rsp + 0x70]
mov eax, dword [r15]
test eax, eax
je 0x140119851
cmp eax, 0xffffffff
je 0x1401198a2
mov eax, esi
lock xadd dword [r15], eax
cmp eax, 1
jne 0x1401198a2
mov r15, qword [rsp + 0x70]
movsxd rbx, dword [r15 + 0xc]
add rbx, 2
lea rbx, [r15 + rbx*8]
movsxd r12, dword [r15 + 8]
add r12, 2
lea r12, [r15 + r12*8]
cmp r12, rbx
je 0x140119896
nop
sub rbx, 8
mov rdi, qword [rbx]
test rdi, rdi
je 0x140119891
mov rcx, rdi
call fcn.140075340
mov edx, 0x10
mov rcx, rdi
call fcn.140120d70
cmp rbx, r12
jne 0x140119870
mov rcx, r15
call fcn.14011dbc0
mov r12, qword [rbp - 0x38]
mov rcx, qword [rsp + 0x40]
movsxd rax, dword [rcx + 8]
add rax, 2
lea rbx, [rcx + rax*8]
movsxd rax, dword [rcx + 0xc]
add rax, 2
lea rax, [rcx + rax*8]
mov qword [rbp - 0x30], rax
cmp rbx, rax
setne al
test al, al
je 0x1401199d4
xor edi, edi
mov rax, qword [rbx]
cmp dword [rax + 4], edi
je 0x140119919
mov r9d, r14d
xor r8d, r8d
movzx edx, di
mov rcx, rbx
call fcn.1400322a0
cmp eax, 0xffffffff
jne 0x140119919
add rbx, 8
mov rcx, qword [rsp + 0x40]
movsxd rax, dword [rcx + 0xc]
add rax, 2
lea rax, [rcx + rax*8]
mov qword [rbp - 0x30], rax
cmp rbx, rax
setne al
test al, al
jne 0x1401198d3
jmp 0x1401199d4
mov dword [rbp + 0x98], 3
mov rdx, r13
lea rcx, [rsp + 0x50]
call fcn.1400d5920
nop
mov rax, qword [rsp + 0x50]
mov ecx, dword [rax + 4]
lea ebx, [rcx + rcx]
lea rcx, [rsp + 0x50]
call fcn.140036ca0
mov rdx, rax
mov r8d, ebx
lea rcx, [rsp + 0x78]
call fcn.140023060
mov rdx, qword [rsp + 0x30]
mov qword [rbp + 0x10], rdx
mov rcx, qword [rax]
mov qword [rsp + 0x30], rcx
mov qword [rax], rdx
mov rcx, qword [rsp + 0x78]
mov eax, dword [rcx]
test eax, eax
je 0x14011998a
cmp eax, 0xffffffff
je 0x140119999
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x140119999
mov rcx, qword [rsp + 0x78]
mov r8d, 8
mov rdx, r14
call fcn.140039ba0
nop
mov rcx, qword [rsp + 0x50]
mov eax, dword [rcx]
test eax, eax
je 0x1401199c1
cmp eax, 0xffffffff
je 0x140119a9f
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x140119a9f
mov rcx, qword [rsp + 0x50]
mov edx, 2
lea r8d, [rdx + 6]
call fcn.140039ba0
jmp 0x140119a9f
movsxd rax, dword [rcx + 8]
add rax, 2
lea rbx, [rcx + rax*8]
movsxd rax, dword [rcx + 0xc]
add rax, 2
lea rax, [rcx + rax*8]
mov qword [rbp - 0x28], rax
cmp rbx, rax
setne al
test al, al
je 0x140119a86
nop
mov rax, qword [rbx]
mov ecx, dword [rax + 4]
lea edi, [rcx*2 + 2]
mov rcx, rbx
call fcn.140036ca0
mov rdx, rax
mov r8d, edi
lea rcx, [rbp - 0x80]
call fcn.140023060
nop
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.140023470
nop
mov rcx, qword [rbp - 0x80]
mov eax, dword [rcx]
test eax, eax
je 0x140119a51
cmp eax, 0xffffffff
je 0x140119a5f
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x140119a5f
mov rcx, qword [rbp - 0x80]
mov r8d, 8
mov rdx, r14
call fcn.140039ba0
add rbx, 8
mov rax, qword [rsp + 0x40]
movsxd rcx, dword [rax + 0xc]
add rcx, 2
lea rcx, [rax + rcx*8]
mov qword [rbp - 0x28], rcx
cmp rbx, rcx
setne al
test al, al
jne 0x140119a00
xor edx, edx
lea rcx, [rsp + 0x30]
call fcn.140023540
xor edx, edx
lea rcx, [rsp + 0x30]
call fcn.140023540
nop
mov rdi, qword [rsp + 0x40]
mov eax, dword [rdi]
test eax, eax
je 0x140119abf
cmp eax, 0xffffffff
je 0x140119b1c
mov eax, esi
lock xadd dword [rdi], eax
cmp eax, 1
jne 0x140119b1c
mov rdi, qword [rsp + 0x40]
movsxd rbx, dword [rdi + 0xc]
add rbx, 2
lea rbx, [rdi + rbx*8]
movsxd r15, dword [rdi + 8]
add r15, 2
lea r15, [rdi + r15*8]
cmp r15, rbx
je 0x140119b13
nop dword [rax]
sub rbx, 8
mov rcx, qword [rbx]
mov eax, dword [rcx]
test eax, eax
je 0x140119afd
cmp eax, 0xffffffff
je 0x140119b0e
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x140119b0e
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbx]
call fcn.140039ba0
cmp rbx, r15
jne 0x140119ae0
mov rcx, rdi
call fcn.14011dbc0
nop
mov r15, qword [rbp + 0x80]
jmp 0x140119d23
mov ebx, 4
mov dword [rbp + 0x98], ebx
xor edx, edx
mov rcx, r13
call fcn.140078890
mov dword [rsp + 0x58], eax
mov r8d, ebx
lea rdx, [rsp + 0x58]
lea rcx, [rbp - 0x78]
call fcn.140023060
mov rdx, qword [rsp + 0x30]
mov qword [rbp + 0x18], rdx
mov rcx, qword [rax]
mov qword [rsp + 0x30], rcx
mov qword [rax], rdx
mov rcx, qword [rbp - 0x78]
mov eax, dword [rcx]
test eax, eax
je 0x140119b8c
cmp eax, 0xffffffff
je 0x140119d23
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, r14d
jne 0x140119d23
mov rcx, qword [rbp - 0x78]
mov rdx, r14
jmp 0x140119d18
mov dword [rbp + 0x98], 0xb
xor edx, edx
mov rcx, r13
call fcn.140078a00
mov qword [rbp - 0x20], rax
mov r8d, 8
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x70]
call fcn.140023060
mov rdx, qword [rsp + 0x30]
mov qword [rbp + 0x20], rdx
mov rcx, qword [rax]
mov qword [rsp + 0x30], rcx
mov qword [rax], rdx
mov rcx, qword [rbp - 0x70]
mov eax, dword [rcx]
test eax, eax
je 0x140119bf9
cmp eax, 0xffffffff
je 0x140119d23
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, r14d
jne 0x140119d23
mov rcx, qword [rbp - 0x70]
mov rdx, r14
jmp 0x140119d18
mov rdx, r13
lea rcx, [rsp + 0x38]
call fcn.1400d5920
nop
mov r9d, r14d
xor r8d, r8d
movzx edx, bx
lea rcx, [rsp + 0x38]
call fcn.1400322a0
mov ecx, r14d
mov edx, 3
cmp eax, 0xffffffff
cmovne ecx, edx
mov dword [rbp + 0x98], ecx
mov rax, qword [rsp + 0x38]
cmp ecx, edx
mov ecx, dword [rax + 4]
jne 0x140119c92
lea ebx, [rcx + rcx]
lea rcx, [rsp + 0x38]
call fcn.140036ca0
mov rdx, rax
mov r8d, ebx
lea rcx, [rbp - 0x68]
call fcn.140023060
mov rdx, qword [rsp + 0x30]
mov qword [rbp + 0x28], rdx
mov rcx, qword [rax]
mov qword [rsp + 0x30], rcx
mov qword [rax], rdx
mov rcx, qword [rbp - 0x68]
mov eax, dword [rcx]
test eax, eax
je 0x140119ce4
cmp eax, 0xffffffff
je 0x140119cf3
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x140119cf3
mov rcx, qword [rbp - 0x68]
jmp 0x140119ce4
lea ebx, [rcx*2 + 2]
lea rcx, [rsp + 0x38]
call fcn.140036ca0
mov rdx, rax
mov r8d, ebx
lea rcx, [rbp - 0x60]
call fcn.140023060
mov rdx, qword [rsp + 0x30]
mov qword [rbp + 0x30], rdx
mov rcx, qword [rax]
mov qword [rsp + 0x30], rcx
mov qword [rax], rdx
mov rcx, qword [rbp - 0x60]
mov eax, dword [rcx]
test eax, eax
je 0x140119ce4
cmp eax, 0xffffffff
je 0x140119cf3
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x140119cf3
mov rcx, qword [rbp - 0x60]
mov r8d, 8
mov rdx, r14
call fcn.140039ba0
nop
mov rcx, qword [rsp + 0x38]
mov eax, dword [rcx]
test eax, eax
je 0x140119d13
cmp eax, 0xffffffff
je 0x140119d23
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x140119d23
mov rcx, qword [rsp + 0x38]
mov edx, 2
mov r8d, 8
call fcn.140039ba0
lea rdx, [rsp + 0x48]
lea rcx, [rbp - 0x58]
call fcn.140118270
nop
mov rcx, qword [rsp + 0x30]
mov edi, dword [rcx + 4]
mov rbx, qword [rcx + 0x10]
add rbx, rcx
mov rcx, rax
call fcn.140036ca0
mov rdx, rax
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rbx
mov r9d, dword [rbp + 0x98]
xor r8d, r8d
mov rcx, r12
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov ebx, eax
mov rcx, qword [rbp - 0x58]
mov edx, dword [rcx]
test edx, edx
je 0x140119d88
cmp edx, 0xffffffff
je 0x140119d96
mov edx, esi
lock xadd dword [rcx], edx
cmp edx, 1
jne 0x140119d96
mov rcx, qword [rbp - 0x58]
mov edx, 2
lea r8d, [rdx + 6]
call fcn.140039ba0
test ebx, ebx
jne 0x140119da6
mov byte [r15 + 0xb8], bl
jmp 0x140119f02
mov edx, ebx
lea rcx, [rbp - 0x40]
call fcn.140117ba0
nop
lea rdx, [rbp - 0x48]
mov rcx, rax
call fcn.140022d80
mov rbx, rax
lea rdx, [rbp - 0x50]
lea rcx, [rsp + 0x48]
call fcn.140028c70
mov rdi, rax
mov rcx, qword [rbx]
cmp dword [rcx], 1
ja 0x140119de1
cmp qword [rcx + 0x10], 0x18
je 0x140119e01
xor r13d, r13d
mov r8d, r13d
cmp dword [rcx + 8], 0x80000000
cmovae r8d, r14d
mov edx, dword [rcx + 4]
inc edx
mov rcx, rbx
call fcn.1400243f0
jmp 0x140119e04
xor r13d, r13d
mov rcx, qword [rbx]
mov rbx, qword [rcx + 0x10]
add rbx, rcx
mov rax, qword [rdi]
cmp dword [rax], 1
ja 0x140119e1d
cmp qword [rax + 0x10], 0x18
je 0x140119e38
mov r8d, r13d
cmp dword [rax + 8], 0x80000000
cmovae r8d, r14d
mov edx, dword [rax + 4]
inc edx
mov rcx, rdi
call fcn.1400243f0
mov rcx, qword [rdi]
mov r8, qword [rcx + 0x10]
add r8, rcx
mov qword [rbp - 0x18], 2
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x10], xmm0
lea rax, [0x1402b84e0]
mov qword [rbp], rax
mov r9, rbx
lea rdx, [0x140291660]
lea rcx, [rbp - 0x18]
call fcn.140028d60
nop
mov rcx, qword [rbp - 0x50]
mov eax, dword [rcx]
test eax, eax
je 0x140119e8f
cmp eax, 0xffffffff
je 0x140119e9e
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x140119e9e
mov rcx, qword [rbp - 0x50]
mov r8d, 8
mov rdx, r14
call fcn.140039ba0
nop
mov rcx, qword [rbp - 0x48]
mov eax, dword [rcx]
test eax, eax
je 0x140119ebc
cmp eax, 0xffffffff
je 0x140119ecb
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x140119ecb
mov rcx, qword [rbp - 0x48]
mov r8d, 8
mov rdx, r14
call fcn.140039ba0
nop
mov rcx, qword [rbp - 0x40]
mov eax, dword [rcx]
test eax, eax
je 0x140119ee9
cmp eax, 0xffffffff
je 0x140119ef7
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x140119ef7
mov rcx, qword [rbp - 0x40]
mov edx, 2
lea r8d, [rdx + 6]
call fcn.140039ba0
mov edx, r14d
mov rcx, r15
call fcn.1400d3c00
mov rcx, r12
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop
mov rcx, qword [rsp + 0x30]
mov eax, dword [rcx]
test eax, eax
je 0x140119f2c
cmp eax, 0xffffffff
je 0x140119f3b
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x140119f3b
mov rcx, qword [rsp + 0x30]
mov r8d, 8
mov rdx, r14
call fcn.140039ba0
nop
mov rcx, qword [rsp + 0x48]
mov eax, dword [rcx]
test eax, eax
je 0x140119f59
cmp eax, 0xffffffff
je 0x140119f76
lock xadd dword [rcx], esi
cmp esi, 1
jne 0x140119f76
mov rcx, qword [rsp + 0x48]
mov edx, 2
lea r8d, [rdx + 6]
call fcn.140039ba0
jmp 0x140119f76
mov edx, 1
mov rcx, r15
call fcn.1400d3c00
mov rbx, qword [rsp + 0x188]
add rsp, 0x140
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret