Function at 0x140017410
Capabilities:
Set registry value

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0xc8]
sub rsp, 0x1a0
mov qword [rbp - 0x38], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov rax, qword [0x14004b008]
xor rax, rsp
mov qword [rbp + 0x90], rax
mov rax, qword [0x14004bbd0]
mov qword [rsp + 0x78], rax
mov qword [0x14004bbd0], 0xffffffff80000002
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x50], xmm0
xor r14d, r14d
mov qword [rbp - 0x40], r14
movdqu xmmword [rbp - 0x68], xmm0
mov qword [rbp - 0x58], r14
movdqu xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], r14
mov qword [rbp + 0x48], 7
mov qword [rbp + 0x40], r14
mov word [rbp + 0x30], r14w
lea rcx, [rbp + 0x30]
call fcn.1400172b0
movabs rdi, 0x7fffffffffffffff
test eax, eax
je 0x140017fef
mov qword [rbp + 0x28], 7
mov qword [rbp + 0x20], r14
mov word [rbp + 0x10], r14w
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rbp + 0x30]
lea rcx, [rbp + 0x10]
call fcn.14000ca30
nop
lea r8d, [r14 + 0x18]
lea rdx, str.drivers_atheros_bth.inf
lea rcx, [rbp + 0x10]
call fcn.14000cb70
mov qword [rbp - 0x18], 7
mov qword [rbp - 0x20], r14
mov word [rbp - 0x30], r14w
lea r8d, [r14 + 0xd]
lea rdx, str.XYZBth.NT.5.1
lea rcx, [rbp - 0x30]
call fcn.14000c490
nop
lea r8, [rbp + 0x10]
lea rdx, [rbp - 0x30]
lea rcx, [rbp - 0x50]
call fcn.14000b7e0
nop
mov rax, qword [rbp - 0x18]
cmp rax, 8
jb 0x14001758c
inc rax
mov rcx, qword [rbp - 0x30]
cmp rax, rdi
jbe 0x140017543
call fcn.140022518
int3
add rax, rax
cmp rax, 0x1000
jb 0x140017587
test byte [rbp - 0x30], 0x1f
je 0x14001755a
call fcn.140022518
int3
mov rax, qword [rcx - 8]
cmp rax, rcx
jb 0x140017569
call fcn.140022518
int3
sub rcx, rax
cmp rcx, 8
jae 0x140017578
call fcn.140022518
int3
cmp rcx, 0x27
jbe 0x140017584
call fcn.140022518
int3
mov rcx, rax
call fcn.140019294
mov esi, r14d
mov r12, qword [rbp - 0x48]
mov r13, qword [rbp - 0x50]
sub r12, r13
sar r12, 5
test r12, r12
je 0x1400176ab
mov rax, r14
nop word [rax + rax]
shl rax, 5
lea rbx, [rax + r13]
cmp qword [rbx + 0x10], 1
ja 0x1400175d8
mov qword [rbx + 0x10], r14
cmp qword [rbx + 0x18], 8
jb 0x1400175cf
mov rax, qword [rbx]
jmp 0x1400175d2
mov rax, rbx
mov word [rax], r14w
jmp 0x140017616
cmp qword [rbx + 0x18], 8
jb 0x1400175e4
mov rcx, qword [rbx]
jmp 0x1400175e7
mov rcx, rbx
mov rdi, qword [rbx + 0x10]
sub rdi, 1
je 0x1400175fe
lea r8, [rdi + rdi]
lea rdx, [rcx + 2]
call fcn.14001baa0
mov qword [rbx + 0x10], rdi
cmp qword [rbx + 0x18], 8
jb 0x14001760e
mov rax, qword [rbx]
jmp 0x140017611
mov rax, rbx
mov word [rax + rdi*2], r14w
mov rax, qword [rbx + 0x10]
lea rcx, [rax - 1]
cmp rax, rcx
jb 0x14001769e
sub rax, rcx
cmp rax, 1
ja 0x140017641
mov qword [rbx + 0x10], rcx
cmp qword [rbx + 0x18], 8
jb 0x14001763a
mov rbx, qword [rbx]
mov word [rbx + rcx*2], r14w
jmp 0x140017685
cmp qword [rbx + 0x18], 8
jb 0x14001764d
mov rax, qword [rbx]
jmp 0x140017650
mov rax, rbx
lea r9, [rax + rcx*2]
mov rdi, qword [rbx + 0x10]
dec rdi
mov r8, rdi
sub r8, rcx
je 0x140017672
add r8, r8
lea rdx, [r9 + 2]
mov rcx, r9
call fcn.14001baa0
mov qword [rbx + 0x10], rdi
cmp qword [rbx + 0x18], 8
jb 0x140017680
mov rbx, qword [rbx]
mov word [rbx + rdi*2], r14w
inc esi
mov eax, esi
cmp rax, r12
jb 0x1400175b0
movabs rdi, 0x7fffffffffffffff
jmp 0x1400176ab
lea rcx, str.invalid_string_position
call fcn.140019214
int3
mov qword [rbp - 0x18], 7
mov qword [rbp - 0x20], r14
mov word [rbp - 0x30], r14w
mov r8d, 0x21
lea rdx, str.SYSTEMCurrentControlSetEnumUSB
lea rcx, [rbp - 0x30]
call fcn.14000c490
nop
lea r8, [rbp - 0x68]
lea rdx, [rbp - 0x30]
call fcn.14000b500
nop
mov rax, qword [rbp - 0x18]
cmp rax, 8
jb 0x140017746
inc rax
mov rcx, qword [rbp - 0x30]
cmp rax, rdi
jbe 0x1400176fd
call fcn.140022518
int3
add rax, rax
cmp rax, 0x1000
jb 0x140017741
test byte [rbp - 0x30], 0x1f
je 0x140017714
call fcn.140022518
int3
mov rax, qword [rcx - 8]
cmp rax, rcx
jb 0x140017723
call fcn.140022518
int3
sub rcx, rax
cmp rcx, 8
jae 0x140017732
call fcn.140022518
int3
cmp rcx, 0x27
jbe 0x14001773e
call fcn.140022518
int3
mov rcx, rax
call fcn.140019294
mov rdi, r14
mov qword [rsp + 0x60], r14
mov r15d, r14d
test r12, r12
je 0x1400177e2
mov rcx, r14
mov rsi, qword [rbp - 0x60]
mov r14, qword [rbp - 0x68]
sub rsi, r14
sar rsi, 5
xor eax, eax
nop
mov edi, eax
test rsi, rsi
je 0x1400177cf
shl rcx, 5
lea rbx, [rcx + r13]
nop
shl rax, 5
add rax, r14
lea r9, [rax + 0x10]
cmp qword [rax + 0x18], 8
jb 0x140017795
mov rax, qword [rax]
cmp qword [rbx + 0x18], 8
jb 0x1400177a1
mov rcx, qword [rbx]
jmp 0x1400177a4
mov rcx, rbx
mov r9, qword [r9]
mov r8, rax
mov rdx, qword [rbx + 0x10]
call fcn.14000c400
test eax, eax
jne 0x1400177c4
mov rdx, rbx
lea rcx, [rsp + 0x58]
call fcn.14000bf50
inc edi
mov eax, edi
cmp rax, rsi
jb 0x140017780
xor eax, eax
inc r15d
mov ecx, r15d
cmp rcx, r12
jb 0x140017770
mov rdi, qword [rsp + 0x60]
xor r14d, r14d
mov rsi, qword [rsp + 0x58]
mov rbx, rsi
cmp rsi, rdi
je 0x140017801
nop
mov rcx, rbx
call fcn.14000c290
add rbx, 0x20
cmp rbx, rdi
jne 0x1400177f0
mov qword [rsp + 0x60], rsi
mov qword [rbp - 0x18], 7
mov qword [rbp - 0x20], r14
mov word [rbp - 0x30], r14w
mov r8d, 0x17
lea rdx, str.Vid_0cf3Pid_3006MI_00
lea rcx, [rbp - 0x30]
call fcn.14000c490
nop
lea rdx, [rbp - 0x30]
lea rcx, [rsp + 0x58]
call fcn.14000c120
nop
mov rax, qword [rbp - 0x18]
movabs rdi, 0x7fffffffffffffff
cmp rax, 8
jb 0x1400178ac
inc rax
mov rcx, qword [rbp - 0x30]
cmp rax, rdi
jbe 0x140017863
call fcn.140022518
int3
add rax, rax
cmp rax, 0x1000
jb 0x1400178a7
test byte [rbp - 0x30], 0x1f
je 0x14001787a
call fcn.140022518
int3
mov rax, qword [rcx - 8]
cmp rax, rcx
jb 0x140017889
call fcn.140022518
int3
sub rcx, rax
cmp rcx, 8
jae 0x140017898
call fcn.140022518
int3
cmp rcx, 0x27
jbe 0x1400178a4
call fcn.140022518
int3
mov rcx, rax
call fcn.140019294
mov qword [rbp - 0x18], 7
mov qword [rbp - 0x20], r14
mov word [rbp - 0x30], r14w
mov r8d, 0x17
lea rdx, str.Vid_0cf3Pid_3006MI_01
lea rcx, [rbp - 0x30]
call fcn.14000c490
nop
lea rdx, [rbp - 0x30]
lea rcx, [rsp + 0x58]
call fcn.14000c120
nop
mov rax, qword [rbp - 0x18]
cmp rax, 8
jb 0x140017948
inc rax
mov rcx, qword [rbp - 0x30]
cmp rax, rdi
jbe 0x1400178ff
call fcn.140022518
int3
add rax, rax
cmp rax, 0x1000
jb 0x140017943
test byte [rbp - 0x30], 0x1f
je 0x140017916
call fcn.140022518
int3
mov rax, qword [rcx - 8]
cmp rax, rcx
jb 0x140017925
call fcn.140022518
int3
sub rcx, rax
cmp rcx, 8
jae 0x140017934
call fcn.140022518
int3
cmp rcx, 0x27
jbe 0x140017940
call fcn.140022518
int3
mov rcx, rax
call fcn.140019294
mov r15d, r14d
mov r12, qword [rsp + 0x60]
mov r13, qword [rsp + 0x58]
sub r12, r13
sar r12, 5
test r12, r12
je 0x140017f6d
mov rbx, r14
nop dword [rax + rax]
mov qword [rbp - 0x18], 7
mov qword [rbp - 0x20], r14
mov word [rbp - 0x30], r14w
mov r8d, 0x21
lea rdx, str.SYSTEMCurrentControlSetEnumUSB
lea rcx, [rbp - 0x30]
call fcn.14000c490
nop
lea rdx, [rbp - 0x30]
lea rcx, [rbp + 0x50]
call fcn.1400181f0
nop
shl rbx, 5
lea r8, [rbx + r13]
mov rdx, rax
lea rcx, [rbp - 0x10]
call fcn.140018330
mov rbx, rax
lea rax, [rbp - 0x30]
cmp rax, rbx
je 0x140017a3f
mov rcx, qword [rbp - 0x18]
cmp rcx, 8
jb 0x140017a21
lea rax, [rcx + 1]
mov rcx, qword [rbp - 0x30]
cmp rax, rdi
ja 0x140017e95
add rax, rax
cmp rax, 0x1000
jb 0x140017a1c
test cl, 0x1f
jne 0x140017e8f
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x140017e89
sub rcx, rax
cmp rcx, 8
jb 0x140017e83
cmp rcx, 0x27
ja 0x140017e7d
mov rcx, rax
call fcn.140019294
mov qword [rbp - 0x18], 7
mov qword [rbp - 0x20], r14
mov word [rbp - 0x30], r14w
mov rdx, rbx
lea rcx, [rbp - 0x30]
call fcn.14000d4c0
nop
mov rax, qword [rbp + 8]
cmp rax, 8
jb 0x140017a99
inc rax
mov rcx, qword [rbp - 0x10]
cmp rax, rdi
ja 0x140017eb3
add rax, rax
cmp rax, 0x1000
jb 0x140017a94
test cl, 0x1f
jne 0x140017ead
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x140017ea7
sub rcx, rax
cmp rcx, 8
jb 0x140017ea1
cmp rcx, 0x27
ja 0x140017e9b
mov rcx, rax
call fcn.140019294
mov qword [rbp + 8], 7
mov qword [rbp], r14
mov word [rbp - 0x10], r14w
mov rax, qword [rbp + 0x68]
cmp rax, 8
jb 0x140017b04
inc rax
mov rcx, qword [rbp + 0x50]
cmp rax, rdi
ja 0x140017ed1
add rax, rax
cmp rax, 0x1000
jb 0x140017aff
test cl, 0x1f
jne 0x140017ecb
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x140017ec5
sub rcx, rax
cmp rcx, 8
jb 0x140017ebf
cmp rcx, 0x27
ja 0x140017eb9
mov rcx, rax
call fcn.140019294
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x80], xmm0
mov qword [rbp - 0x70], r14
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 8
cmovae rdx, qword [rbp - 0x30]
mov qword [rbp + 8], 7
mov qword [rbp], r14
mov word [rbp - 0x10], r14w
cmp word [rdx], 0
jne 0x140017b3a
mov r8, r14
jmp 0x140017b4b
or r8, 0xffffffffffffffff
nop
inc r8
cmp word [rdx + r8*2], 0
jne 0x140017b40
lea rcx, [rbp - 0x10]
call fcn.14000c490
nop
lea r8, [rbp - 0x80]
lea rdx, [rbp - 0x10]
call fcn.14000b500
nop
mov rax, qword [rbp + 8]
cmp rax, 8
jb 0x140017bbd
inc rax
mov rcx, qword [rbp - 0x10]
cmp rax, rdi
ja 0x140017eef
add rax, rax
cmp rax, 0x1000
jb 0x140017bb8
test cl, 0x1f
jne 0x140017ee9
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x140017ee3
sub rcx, rax
cmp rcx, 8
jb 0x140017edd
cmp rcx, 0x27
ja 0x140017ed7
mov rcx, rax
call fcn.140019294
mov edi, r14d
mov rsi, qword [rbp - 0x78]
mov r14, qword [rbp - 0x80]
sub rsi, r14
sar rsi, 5
test rsi, rsi
je 0x140017df8
xor ebx, ebx
nop word [rax + rax]
lea rdx, [rbp - 0x30]
lea rcx, [rbp + 0x70]
call fcn.1400181f0
nop
shl rbx, 5
lea r8, [r14 + rbx]
mov rdx, rax
lea rcx, [rbp - 0x10]
call fcn.140018330
nop
mov rdx, rax
lea rcx, [rbp + 0x50]
call fcn.140018190
nop
mov rax, qword [rbp + 8]
cmp rax, 8
jb 0x140017c74
inc rax
mov rcx, qword [rbp - 0x10]
movabs rdx, 0x7fffffffffffffff
cmp rax, rdx
ja 0x140017f0d
add rax, rax
cmp rax, 0x1000
jb 0x140017c6f
test cl, 0x1f
jne 0x140017f07
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x140017f01
sub rcx, rax
cmp rcx, 8
jb 0x140017efb
cmp rcx, 0x27
ja 0x140017ef5
mov rcx, rax
call fcn.140019294
mov qword [rbp + 8], 7
xor ebx, ebx
mov qword [rbp], rbx
mov word [rbp - 0x10], bx
mov rax, qword [rbp + 0x88]
cmp rax, 8
jb 0x140017ced
inc rax
mov rcx, qword [rbp + 0x70]
movabs rdx, 0x7fffffffffffffff
cmp rax, rdx
ja 0x140017f2b
add rax, rax
cmp rax, 0x1000
jb 0x140017ce8
test cl, 0x1f
jne 0x140017f25
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x140017f1f
sub rcx, rax
cmp rcx, 8
jb 0x140017f19
cmp rcx, 0x27
ja 0x140017f13
mov rcx, rax
call fcn.140019294
mov qword [rbp + 0x88], 7
mov qword [rbp + 0x80], rbx
mov word [rbp + 0x70], bx
mov byte [rsp + 0x50], 1
lea rdx, [rbp + 0x50]
cmp qword [rbp + 0x68], 8
cmovae rdx, qword [rbp + 0x50]
mov qword [rsp + 0x40], rbx
lea rax, [rsp + 0x70]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rbx
mov eax, dword [0x14004bbc8]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ebx
xor r9d, r9d
xor r8d, r8d
mov rcx, qword [0x14004bbd0]
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x140017d87
mov dword [rsp + 0x28], 1
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov r9d, 3
xor r8d, r8d
lea rdx, str.SelectiveSuspendEnabled
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rax, qword [rbp + 0x68]
cmp rax, 8
jb 0x140017deb
inc rax
mov rcx, qword [rbp + 0x50]
movabs rdx, 0x7fffffffffffffff
cmp rax, rdx
ja 0x140017f49
add rax, rax
cmp rax, 0x1000
jb 0x140017de6
test cl, 0x1f
jne 0x140017f43
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x140017f3d
sub rcx, rax
cmp rcx, 8
jb 0x140017f37
cmp rcx, 0x27
ja 0x140017f31
mov rcx, rax
call fcn.140019294
inc edi
mov ebx, edi
cmp rbx, rsi
jb 0x140017be0
lea rcx, [rbp - 0x80]
call fcn.1400180d0
nop
mov rax, qword [rbp - 0x18]
movabs rdi, 0x7fffffffffffffff
cmp rax, 8
jb 0x140017e66
inc rax
mov rcx, qword [rbp - 0x30]
cmp rax, rdi
ja 0x140017f67
add rax, rax
cmp rax, 0x1000
jb 0x140017e61
test cl, 0x1f
jne 0x140017f61
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x140017f5b
sub rcx, rax
cmp rcx, 8
jb 0x140017f55
cmp rcx, 0x27
ja 0x140017f4f
mov rcx, rax
call fcn.140019294
inc r15d
mov ebx, r15d
xor r14d, r14d
cmp rbx, r12
jae 0x140017f6d
jmp 0x140017970
call fcn.140022518
int3
call fcn.140022518
int3
call fcn.140022518
int3
call fcn.140022518
int3
call fcn.140022518
nop
call fcn.140022518
int3
call fcn.140022518
int3
call fcn.140022518
int3
call fcn.140022518
int3
call fcn.140022518
nop
call fcn.140022518
int3
call fcn.140022518
int3
call fcn.140022518
int3
call fcn.140022518
int3
call fcn.140022518
nop
call fcn.140022518
int3
call fcn.140022518
int3
call fcn.140022518
int3
call fcn.140022518
int3
call fcn.140022518
nop
call fcn.140022518
int3
call fcn.140022518
int3
call fcn.140022518
int3
call fcn.140022518
int3
call fcn.140022518
nop
call fcn.140022518
int3
call fcn.140022518
int3
call fcn.140022518
int3
call fcn.140022518
int3
call fcn.140022518
int3
call fcn.140022518
int3
call fcn.140022518
int3
call fcn.140022518
int3
call fcn.140022518
int3
call fcn.140022518
nop
call fcn.140022518
int3
call fcn.140022518
int3
call fcn.140022518
int3
call fcn.140022518
int3
call fcn.140022518
int3
mov rax, qword [rsp + 0x78]
mov qword [0x14004bbd0], rax
mov rax, qword [rbp + 0x28]
cmp rax, 8
jb 0x140017fde
inc rax
mov rcx, qword [rbp + 0x10]
cmp rax, rdi
jbe 0x140017f95
call fcn.140022518
int3
add rax, rax
cmp rax, 0x1000
jb 0x140017fd9
test byte [rbp + 0x10], 0x1f
je 0x140017fac
call fcn.140022518
int3
mov rax, qword [rcx - 8]
cmp rax, rcx
jb 0x140017fbb
call fcn.140022518
int3
sub rcx, rax
cmp rcx, 8
jae 0x140017fca
call fcn.140022518
int3
cmp rcx, 0x27
jbe 0x140017fd6
call fcn.140022518
int3
mov rcx, rax
call fcn.140019294
mov qword [rbp + 0x28], 7
mov qword [rbp + 0x20], r14
mov word [rbp + 0x10], r14w
mov rax, qword [rbp + 0x48]
cmp rax, 8
jb 0x140018054
inc rax
mov rcx, qword [rbp + 0x30]
cmp rax, rdi
jbe 0x14001800b
call fcn.140022518
int3
add rax, rax
cmp rax, 0x1000
jb 0x14001804f
test byte [rbp + 0x30], 0x1f
je 0x140018022
call fcn.140022518
int3
mov rax, qword [rcx - 8]
cmp rax, rcx
jb 0x140018031
call fcn.140022518
int3
sub rcx, rax
cmp rcx, 8
jae 0x140018040
call fcn.140022518
int3
cmp rcx, 0x27
jbe 0x14001804c
call fcn.140022518
int3
mov rcx, rax
call fcn.140019294
mov qword [rbp + 0x48], 7
mov qword [rbp + 0x40], r14
mov word [rbp + 0x30], r14w
lea rcx, [rsp + 0x58]
call fcn.1400180d0
nop
lea rcx, [rbp - 0x68]
call fcn.1400180d0
nop
lea rcx, [rbp - 0x50]
call fcn.1400180d0
mov rcx, qword [rbp + 0x90]
xor rcx, rsp
call fcn.140019260
lea r11, [rsp + 0x1a0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret