Function at 0x140103650
Capabilities:
Delete registry value
Set registry value

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x48]
sub rsp, 0x120
mov qword [rbp - 0x68], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x14044b080]
xor rax, rsp
mov qword [rbp + 0x18], rax
mov rbx, rcx
mov qword [rsp + 0x70], rcx
xor r15d, r15d
mov dword [rsp + 0x58], r15d
lea rdx, [rcx + 0x2d1]
movzx eax, byte [rdx]
cmp al, 0xff
jne 0x1401036c8
lea r9, [rcx + 0x2d3]
lea r8, [rcx + 0x2d2]
add rcx, 0x2d0
call fcn.14006edf0
movzx eax, byte [rbx + 0x2d1]
xor ecx, ecx
mov qword [rbp - 8], rcx
mov qword [rbp], rcx
mov qword [rbp + 8], rcx
mov qword [rbp - 0x18], rcx
mov qword [rbp - 0x10], rcx
movzx eax, al
mov qword [rsp + 0x78], rax
mov dword [rbp - 0x80], 1
mov byte [rbp - 0x78], 1
lea rax, [0x14016da80]
mov qword [rbp - 0x70], rax
lea rdx, [rsp + 0x78]
mov ecx, 3
call fcn.140112d10
mov rcx, rax
mov qword [rbp - 0x20], rax
mov byte [rbp - 0x18], 0
mov byte [rbp - 0x10], 0
test rax, rax
je 0x140103ad8
lock inc dword [rax + 8]
mov rax, qword [rbp - 0x20]
mov qword [rsp + 0x60], rax
mov byte [rsp + 0x68], 1
mov dword [rsp + 0x58], 2
mov r13d, 0xffffffff
mov eax, r13d
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x140103786
mov rcx, qword [rbp - 0x20]
mov r8, qword [rcx + 0xe0]
test r8, r8
je 0x140103774
mov rax, qword [r8]
mov rdx, rcx
mov rcx, r8
mov rax, qword [rax]
call qword [case.0x14004487d.0]
jmp 0x140103786
mov rax, qword [rcx]
mov edx, 1
mov rax, qword [rax]
call qword [case.0x14004487d.0]
nop
lea rdx, [rbp - 8]
lea rcx, [rsp + 0x60]
call fcn.140110ad0
nop
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x1401037e3
mov eax, r13d
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x1401037e3
mov rcx, qword [rsp + 0x60]
mov r8, qword [rcx + 0xe0]
test r8, r8
je 0x1401037d1
mov rax, qword [r8]
mov rdx, rcx
mov rcx, r8
mov rax, qword [rax]
call qword [case.0x14004487d.0]
jmp 0x1401037e3
mov rax, qword [rcx]
mov edx, 1
mov rax, qword [rax]
call qword [case.0x14004487d.0]
nop
xor eax, eax
mov qword [rbp - 0x28], rax
mov rsi, r15
mov qword [rbp - 0x40], r15
mov rdi, r15
mov qword [rbp - 0x38], r15
mov r12, r15
mov qword [rbp - 0x30], r15
mov dword [rbp - 0x28], r15d
mov r14, qword [rbp - 8]
cmp r14, qword [rbp]
je 0x140103899
xor r15d, r15d
mov rcx, qword [r14]
sub rcx, 0x18
call fcn.14003c400
lea rbx, [rax + 0x18]
mov qword [rbp - 0x60], rbx
cmp r15, r12
jb 0x140103849
lea rdx, [r15 + 1]
lea rcx, [rbp - 0x40]
call fcn.140058ea0
test al, al
je 0x140103aef
mov rdi, qword [rbp - 0x38]
mov rsi, qword [rbp - 0x40]
lea rcx, [rsi + r15*8]
mov rdx, rbx
call fcn.14003be10
lea r15, [rdi + 1]
mov qword [rbp - 0x38], r15
lea rdx, [rbx - 0x18]
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14010387e
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x14004487d.0]
add r14, 8
mov rdi, qword [rbp - 0x38]
mov rsi, qword [rbp - 0x40]
cmp r14, qword [rbp]
je 0x140103899
mov r12, qword [rbp - 0x30]
jmp 0x140103813
xor r12d, r12d
mov qword [rbp - 0x48], r12
lea rax, [rbp + 0x10]
mov qword [rsp + 0x40], rax
lea rax, [rbp - 0x48]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 0x2001f
mov dword [rsp + 0x20], r12d
xor r9d, r9d
xor r8d, r8d
lea rdx, [0x140320430]
mov rcx, 0xffffffff80000002
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegCreateKeyExW]
mov rcx, qword [rbp - 0x48]
test rcx, rcx
je 0x140103a56
test r15, r15
je 0x140103a3f
call fcn.140039c50
mov rcx, rax
test rax, rax
je 0x140103afa
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x14004487d.0]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x50], rbx
mov r14d, r12d
test rdi, rdi
je 0x1401039a2
cmp r12, rdi
jae 0x140103b26
mov rdx, qword [rsi + r14*8]
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x50]
call fcn.14003c4a0
mov rbx, qword [rsp + 0x50]
movsxd r13, dword [rbx - 0x10]
lea r15d, [r13 + 1]
test r15d, r15d
js 0x140103b1b
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, r15d
or eax, ecx
jge 0x140103978
mov edx, r15d
lea rcx, [rsp + 0x50]
call fcn.14003b630
mov rbx, qword [rsp + 0x50]
mov eax, r13d
mov word [rbx + rax*2], r12w
cmp r15d, dword [rbx - 0xc]
jg 0x140103b10
mov dword [rbx - 0x10], r15d
mov word [rbx + r13*2 + 2], r12w
inc r14
cmp r14, rdi
jb 0x14010392c
mov r13d, 0xffffffff
movsxd rsi, dword [rbx - 0x10]
lea edi, [rsi + 1]
test edi, edi
js 0x140103b05
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x1401039d3
mov edx, edi
lea rcx, [rsp + 0x50]
call fcn.14003b630
mov rbx, qword [rsp + 0x50]
mov eax, esi
mov word [rbx + rax*2], r12w
cmp edi, dword [rbx - 0xc]
jg 0x140103acd
mov dword [rbx - 0x10], edi
mov word [rbx + rsi*2 + 2], r12w
mov eax, dword [rbx - 0x10]
add eax, eax
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rbx
mov r9d, 7
xor r8d, r8d
lea rdx, str.ACXFactoryCircuitDeviceList
mov rcx, qword [rbp - 0x48]
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegSetValueExW]
nop
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], r13d
sub r13d, 1
jg 0x140103a35
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x14004487d.0]
mov rdi, qword [rbp - 0x38]
mov rsi, qword [rbp - 0x40]
jmp 0x140103a4c
lea rdx, str.ACXFactoryCircuitDeviceList
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegDeleteValueW]
mov rcx, qword [rbp - 0x48]
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegCloseKey]
mov rcx, qword [rsp + 0x70]
add rcx, 0xb0
mov qword [rsp + 0x20], rdi
lea r9, str.Write_ACX_Factory_CircuitInfo___d_
mov edx, 1
mov r8d, edx
call fcn.14011e570
nop
test rsi, rsi
je 0x140103a95
mov rdx, rdi
mov rcx, rsi
call fcn.140059000
mov rcx, rsi
call fcn.1402384fc
nop
lea rcx, [rbp - 8]
call fcn.14009c740
mov al, 1
mov rcx, qword [rbp + 0x18]
xor rcx, rsp
call fcn.140202880
lea r11, [rsp + 0x120]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov ecx, 0x80070057
call fcn.140039950
nop
mov edx, 4
lea rcx, [rbp - 0x58]
call fcn.1400acdc0
mov rcx, rax
call fcn.1401e85d8
nop
mov ecx, 0x8007000e
call fcn.140039950
nop
mov ecx, 0x80004005
call fcn.140039950
nop
mov ecx, 0x80070057
call fcn.140039950
int3
mov ecx, 0x80070057
call fcn.140039950
int3
mov ecx, 0x80070057
call fcn.140039950
int3
mov ecx, 0x80070057
call fcn.140039950
int3