Function at 0x1400fb090
Capabilities:
Set registry value

Disassembly:
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 r12, r8
mov rdi, rdx
mov r13, rcx
mov r9, qword [rcx + 0xa8]
cmp dword [r9 + 4], 0
je 0x1400fb967
mov rbx, qword [r9 + 0x10]
add rbx, r9
mov rcx, rbx
call fcn.1400f99f0
test rax, rax
je 0x1400fb967
cmp byte [rbx + 0x18], 0
jne 0x1400fb967
mov rcx, rbx
call fcn.1400f99f0
test rax, rax
je 0x1400fb967
mov rcx, qword [rdi]
mov qword [rsp + 0x60], rcx
mov eax, dword [rcx]
inc eax
cmp eax, 1
jbe 0x1400fb11a
lock inc dword [rcx]
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x48]
call fcn.1400f9630
nop
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x68]
call fcn.1400f9dd0
mov rdi, rax
mov rcx, qword [r13 + 0xa8]
xor r14d, r14d
cmp dword [rcx + 4], r14d
je 0x1400fb170
mov rbx, qword [rcx + 0x10]
add rbx, rcx
mov rcx, rbx
call fcn.1400f99f0
test rax, rax
je 0x1400fb170
cmp byte [rbx + 0x18], r14b
jne 0x1400fb170
mov rcx, rbx
call fcn.1400f99f0
jmp 0x1400fb173
mov rax, r14
mov r9d, dword [r13 + 0xb4]
mov r8, rdi
mov edx, 0x2001f
mov rcx, rax
call fcn.1400f9100
mov r15, rax
mov qword [rbp - 0x38], rax
mov rcx, qword [rsp + 0x68]
mov edx, dword [rcx]
or esi, 0xffffffff
test edx, edx
je 0x1400fb1b3
cmp edx, esi
je 0x1400fb1c1
mov edx, esi
lock xadd dword [rcx], edx
cmp edx, 1
jne 0x1400fb1c1
mov rcx, qword [rsp + 0x68]
mov edx, 2
lea r8d, [rdx + 6]
call fcn.140035d80
test r15, r15
jne 0x1400fb1d7
lea edx, [r15 + 1]
mov rcx, r13
call fcn.1400e7b80
jmp 0x1400fb939
lea rax, [0x1401885d8]
mov qword [rsp + 0x30], rax
mov rcx, r12
call fcn.140069110
add eax, 0xfffffffe
cmp eax, 0xa
ja case.0x1400fb20a.6
cdqe
lea rdx, [0x140000000]
mov ecx, dword [rdx + rax*4 + 0xfb990]
add rcx, rdx
jmp rcx
mov dword [rbp + 0x80], 7
lea rdx, [rsp + 0x70]
mov rcx, r12
call fcn.140068e30
nop
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.1400e9780
nop
mov r14, qword [rsp + 0x70]
mov eax, dword [r14]
test eax, eax
je 0x1400fb254
cmp eax, 0xffffffff
je 0x1400fb2a3
mov eax, esi
lock xadd dword [r14], eax
cmp eax, 1
jne 0x1400fb2a3
mov r14, qword [rsp + 0x70]
movsxd rbx, dword [r14 + 0xc]
add rbx, 2
lea rbx, [r14 + rbx*8]
movsxd r15, dword [r14 + 8]
add r15, 2
lea r15, [r14 + r15*8]
cmp r15, rbx
je 0x1400fb297
sub rbx, 8
mov rdi, qword [rbx]
test rdi, rdi
je 0x1400fb292
mov rcx, rdi
call fcn.1400652c0
mov edx, 0x10
mov rcx, rdi
call fcn.140102ba0
cmp rbx, r15
jne 0x1400fb271
mov rcx, r14
call fcn.140103190
mov r15, 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 0x1400fb3d8
xor edi, edi
mov rax, qword [rbx]
cmp dword [rax + 4], edi
je 0x1400fb31d
mov r9d, 1
xor r8d, r8d
movzx edx, di
mov rcx, rbx
call fcn.140026280
cmp eax, 0xffffffff
jne 0x1400fb31d
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 0x1400fb2d4
jmp 0x1400fb3d8
mov dword [rbp + 0x80], 3
mov rdx, r12
lea rcx, [rsp + 0x50]
call fcn.1400e9890
nop
mov rax, qword [rsp + 0x50]
mov ecx, dword [rax + 4]
lea ebx, [rcx + rcx]
lea rcx, [rsp + 0x50]
call fcn.14002b720
mov rdx, rax
mov r8d, ebx
lea rcx, [rsp + 0x78]
call fcn.140036750
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 0x1400fb38e
cmp eax, 0xffffffff
je 0x1400fb39d
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x1400fb39d
mov rcx, qword [rsp + 0x78]
mov edx, 1
lea r8d, [rdx + 7]
call fcn.140035d80
nop
mov rcx, qword [rsp + 0x50]
mov eax, dword [rcx]
test eax, eax
je 0x1400fb3c5
cmp eax, 0xffffffff
je 0x1400fb4af
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x1400fb4af
mov rcx, qword [rsp + 0x50]
mov edx, 2
lea r8d, [rdx + 6]
call fcn.140035d80
jmp 0x1400fb4af
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 0x1400fb496
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rbx]
mov ecx, dword [rax + 4]
lea edi, [rcx*2 + 2]
mov rcx, rbx
call fcn.14002b720
mov rdx, rax
mov r8d, edi
lea rcx, [rbp - 0x80]
call fcn.140036750
nop
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.140036c30
nop
mov rcx, qword [rbp - 0x80]
mov eax, dword [rcx]
test eax, eax
je 0x1400fb461
cmp eax, 0xffffffff
je 0x1400fb46f
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x1400fb46f
mov rcx, qword [rbp - 0x80]
mov edx, 1
lea r8d, [rdx + 7]
call fcn.140035d80
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 0x1400fb410
xor edx, edx
lea rcx, [rsp + 0x30]
call fcn.140036d00
xor edx, edx
lea rcx, [rsp + 0x30]
call fcn.140036d00
nop
mov rdi, qword [rsp + 0x40]
mov eax, dword [rdi]
test eax, eax
je 0x1400fb4cf
cmp eax, 0xffffffff
je 0x1400fb52c
mov eax, esi
lock xadd dword [rdi], eax
cmp eax, 1
jne 0x1400fb52c
mov rdi, qword [rsp + 0x40]
movsxd rbx, dword [rdi + 0xc]
add rbx, 2
lea rbx, [rdi + rbx*8]
movsxd r14, dword [rdi + 8]
add r14, 2
lea r14, [rdi + r14*8]
cmp r14, rbx
je 0x1400fb523
nop dword [rax]
sub rbx, 8
mov rcx, qword [rbx]
mov eax, dword [rcx]
test eax, eax
je 0x1400fb50d
cmp eax, 0xffffffff
je 0x1400fb51e
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x1400fb51e
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbx]
call fcn.140035d80
cmp rbx, r14
jne 0x1400fb4f0
mov rcx, rdi
call fcn.140103190
nop
jmp 0x1400fb73b
mov ebx, 4
mov dword [rbp + 0x80], ebx
xor edx, edx
mov rcx, r12
call fcn.140068cf0
mov dword [rbp + 0x98], eax
mov r8d, ebx
lea rdx, [rbp + 0x98]
lea rcx, [rbp - 0x78]
call fcn.140036750
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 0x1400fb599
cmp eax, 0xffffffff
je 0x1400fb73b
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x1400fb73b
mov rcx, qword [rbp - 0x78]
mov edx, 1
jmp 0x1400fb730
mov dword [rbp + 0x80], 0xb
xor edx, edx
mov rcx, r12
call fcn.140068e60
mov qword [rbp - 0x20], rax
mov r8d, 8
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x70]
call fcn.140036750
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 0x1400fb608
cmp eax, 0xffffffff
je 0x1400fb73b
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x1400fb73b
mov rcx, qword [rbp - 0x70]
mov edx, 1
jmp 0x1400fb730
mov rdx, r12
lea rcx, [rsp + 0x38]
call fcn.1400e9890
nop
mov r9d, 1
xor r8d, r8d
movzx edx, r14w
lea rcx, [rsp + 0x38]
call fcn.140026280
mov ecx, 1
mov edx, 3
cmp eax, 0xffffffff
cmovne ecx, edx
mov dword [rbp + 0x80], ecx
mov rax, qword [rsp + 0x38]
cmp ecx, edx
mov ecx, dword [rax + 4]
jne 0x1400fb6a9
lea ebx, [rcx + rcx]
lea rcx, [rsp + 0x38]
call fcn.14002b720
mov rdx, rax
mov r8d, ebx
lea rcx, [rbp - 0x68]
call fcn.140036750
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 0x1400fb6fb
cmp eax, 0xffffffff
je 0x1400fb70b
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x1400fb70b
mov rcx, qword [rbp - 0x68]
jmp 0x1400fb6fb
lea ebx, [rcx*2 + 2]
lea rcx, [rsp + 0x38]
call fcn.14002b720
mov rdx, rax
mov r8d, ebx
lea rcx, [rbp - 0x60]
call fcn.140036750
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 0x1400fb6fb
cmp eax, 0xffffffff
je 0x1400fb70b
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x1400fb70b
mov rcx, qword [rbp - 0x60]
mov r8d, 8
lea edx, [r8 - 7]
call fcn.140035d80
nop
mov rcx, qword [rsp + 0x38]
mov eax, dword [rcx]
test eax, eax
je 0x1400fb72b
cmp eax, 0xffffffff
je 0x1400fb73b
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x1400fb73b
mov rcx, qword [rsp + 0x38]
mov edx, 2
mov r8d, 8
call fcn.140035d80
lea rdx, [rsp + 0x48]
lea rcx, [rbp - 0x58]
call fcn.1400f9c70
nop
mov rcx, qword [rsp + 0x30]
mov edi, dword [rcx + 4]
mov rbx, qword [rcx + 0x10]
add rbx, rcx
mov rcx, rax
call fcn.14002b720
mov rdx, rax
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rbx
mov r9d, dword [rbp + 0x80]
xor r8d, r8d
mov rcx, r15
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov ebx, eax
mov rcx, qword [rbp - 0x58]
mov eax, dword [rcx]
test eax, eax
je 0x1400fb7a0
cmp eax, 0xffffffff
je 0x1400fb7ae
mov edx, esi
lock xadd dword [rcx], edx
cmp edx, 1
jne 0x1400fb7ae
mov rcx, qword [rbp - 0x58]
mov edx, 2
lea r8d, [rdx + 6]
call fcn.140035d80
test ebx, ebx
jne 0x1400fb7be
mov byte [r13 + 0xb0], bl
jmp 0x1400fb900
mov edx, ebx
lea rcx, [rbp - 0x40]
call fcn.140079d10
nop
lea rdx, [rbp - 0x48]
mov rcx, rax
call fcn.140020590
mov rbx, rax
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x58], rcx
mov edx, dword [rcx]
inc edx
cmp edx, 1
jbe 0x1400fb7ef
lock inc dword [rcx]
lea rdx, [rbp - 0x50]
lea rcx, [rsp + 0x58]
call fcn.140020590
nop
mov rdx, qword [rbx]
mov r9, qword [rdx + 0x10]
add r9, rdx
mov rcx, qword [rax]
mov r8, qword [rcx + 0x10]
add r8, rcx
mov qword [rbp - 0x18], 2
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x10], xmm0
lea rax, [0x1402c4b50]
mov qword [rbp], rax
lea rdx, [0x14029b578]
lea rcx, [rbp - 0x18]
call fcn.14001ead0
nop
mov rcx, qword [rbp - 0x50]
mov eax, dword [rcx]
test eax, eax
je 0x1400fb85c
cmp eax, 0xffffffff
je 0x1400fb86b
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x1400fb86b
mov rcx, qword [rbp - 0x50]
mov edx, 1
lea r8d, [rdx + 7]
call fcn.140035d80
nop
mov rax, qword [rsp + 0x58]
mov ecx, dword [rax]
test ecx, ecx
je 0x1400fb886
cmp ecx, 0xffffffff
je 0x1400fb89a
mov ecx, esi
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x1400fb89a
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rsp + 0x58]
call fcn.140035d80
nop
mov rcx, qword [rbp - 0x48]
mov eax, dword [rcx]
test eax, eax
je 0x1400fb8b8
cmp eax, 0xffffffff
je 0x1400fb8c7
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x1400fb8c7
mov rcx, qword [rbp - 0x48]
mov edx, 1
lea r8d, [rdx + 7]
call fcn.140035d80
nop
mov rcx, qword [rbp - 0x40]
mov eax, dword [rcx]
test eax, eax
je 0x1400fb8e5
cmp eax, 0xffffffff
je 0x1400fb8f3
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x1400fb8f3
mov rcx, qword [rbp - 0x40]
mov edx, 2
lea r8d, [rdx + 6]
call fcn.140035d80
mov edx, 1
mov rcx, r13
call fcn.1400e7b80
mov rcx, r15
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop
mov rcx, qword [rsp + 0x30]
mov eax, dword [rcx]
test eax, eax
je 0x1400fb92a
cmp eax, 0xffffffff
je 0x1400fb939
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x1400fb939
mov rcx, qword [rsp + 0x30]
mov edx, 1
lea r8d, [rdx + 7]
call fcn.140035d80
nop
mov rcx, qword [rsp + 0x48]
mov eax, dword [rcx]
test eax, eax
je 0x1400fb957
cmp eax, 0xffffffff
je 0x1400fb974
lock xadd dword [rcx], esi
cmp esi, 1
jne 0x1400fb974
mov rcx, qword [rsp + 0x48]
mov edx, 2
lea r8d, [rdx + 6]
call fcn.140035d80
jmp 0x1400fb974
mov edx, 1
mov rcx, r13
call fcn.1400e7b80
mov rbx, qword [rsp + 0x188]
add rsp, 0x140
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret