Function at 0x140014f40
Capabilities:
Delete registry value
Persist via windows service
Query or enumerate registry value
Set registry value

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x4b8]
sub rsp, 0x590
mov qword [rbp - 0x38], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov rax, qword [0x1400ae088]
xor rax, rsp
mov qword [rbp + 0x480], rax
lea rax, str.00001000_0000_1000_8000_00805f9b34fb
mov qword [rbp - 0x10], rax
lea rax, str.00001001_0000_1000_8000_00805f9b34fb
mov qword [rbp - 8], rax
lea rax, str.00001002_0000_1000_8000_00805f9b34fb
mov qword [rbp], rax
lea rax, str.00001107_0000_1000_8000_00805f9b34fb
mov qword [rbp + 8], rax
lea rax, str.0000110a_0000_1000_8000_00805f9b34fb
mov qword [rbp + 0x10], rax
lea rax, str.0000110c_0000_1000_8000_00805f9b34fb
mov qword [rbp + 0x18], rax
lea rax, str.00001111_0000_1000_8000_00805f9b34fb
mov qword [rbp + 0x20], rax
lea rax, str.00001112_0000_1000_8000_00805f9b34fb
mov qword [rbp + 0x28], rax
lea rax, str.00001115_0000_1000_8000_00805f9b34fb
mov qword [rbp + 0x30], rax
lea rax, str.00001116_0000_1000_8000_00805f9b34fb
mov qword [rbp + 0x38], rax
lea rax, str.00001117_0000_1000_8000_00805f9b34fb
mov qword [rbp + 0x40], rax
lea rax, str.0000111f_0000_1000_8000_00805f9b34fb
mov qword [rbp + 0x48], rax
lea rax, str.0000112d_0000_1000_8000_00805f9b34fb
mov qword [rbp + 0x50], rax
lea rax, str.0000112e_0000_1000_8000_00805f9b34fb
mov qword [rbp + 0x58], rax
lea rax, str.0000112f_0000_1000_8000_00805f9b34fb
mov qword [rbp + 0x60], rax
lea rax, str.00001200_0000_1000_8000_00805F9B34FB
mov qword [rbp + 0x68], rax
xor r13d, r13d
mov qword [rbp - 0x70], r13
mov dword [rbp - 0x68], r13d
mov qword [rbp - 0x60], r13
mov r9d, 0x2001f
lea r8, str.SYSTEMCurrentControlSet_servicesBTHPORTParametersUnsupportedServices
mov rdx, 0xffffffff80000002
lea rcx, [rbp - 0x70]
call fcn.140008860
mov rsi, qword [rbp - 0x70]
test eax, eax
jne 0x14001511c
mov dword [rsp + 0x78], 0xff
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x270]
call fcn.140026290
mov dword [rbp - 0x7c], 0x104
mov dword [rbp - 0x80], r13d
lea rax, [rbp - 0x30]
mov qword [rsp + 0x58], rax
lea rax, [rbp - 0x58]
mov qword [rsp + 0x50], rax
lea rax, [rbp - 0x54]
mov qword [rsp + 0x48], rax
lea rax, [rbp - 0x50]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x7c]
mov qword [rsp + 0x38], rax
lea rax, [rbp - 0x4c]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x48]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x80]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8, [rbp - 0x7c]
lea rdx, [rbp + 0x270]
mov rcx, rsi
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegQueryInfoKeyW]
test eax, eax
je 0x140015160
lea rcx, str.RegQueryInfoKey_failed
call fcn.140018760
lea r9, [0x1400af290]
lea r8d, [r13 + 0x49]
lea rdx, str.ModifyReg
lea rcx, str.__hs_____d_:_____s
call fcn.140018f50
mov r12d, r13d
test rsi, rsi
je 0x14001512d
mov rcx, rsi
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegCloseKey]
mov eax, r12d
mov rcx, qword [rbp + 0x480]
xor rcx, rsp
call fcn.140023950
lea r11, [rsp + 0x590]
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
mov rbx, r13
mov qword [rsp + 0x68], rbx
mov edi, r13d
mov dword [rsp + 0x70], edi
mov r14d, r13d
mov dword [rsp + 0x74], r13d
mov r15d, r13d
mov r12d, 1
cmp dword [rsp + 0x7c], r13d
jbe 0x140015364
nop dword [rax + rax]
mov dword [rsp + 0x78], 0xff
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r13
lea r9, [rsp + 0x78]
lea r8, [rbp + 0x70]
mov edx, r15d
mov rcx, rsi
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegEnumValueW]
call fcn.1400030f0
test rax, rax
je 0x14001547f
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rsp + 0x60], rax
lea rax, [rbp + 0x70]
cmp rax, 0x10000
jae 0x140015200
lea rax, [rbp + 0x70]
movzx edx, ax
lea rcx, [rsp + 0x60]
call fcn.140003290
jmp 0x14001522c
lea rcx, [rbp + 0x70]
mov rax, 0xffffffffffffffff
nop dword [rax + rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x140015210
mov r8d, eax
lea rdx, [rbp + 0x70]
lea rcx, [rsp + 0x60]
call fcn.140005a50
nop
cmp edi, r14d
jne 0x140015298
lea rax, [rsp + 0x60]
cmp rax, rbx
jb 0x140015250
movsxd rax, r14d
lea rcx, [rbx + rax*8]
lea rax, [rsp + 0x60]
cmp rax, rcx
jb 0x140015498
test r14d, r14d
jne 0x14001525a
mov esi, r12d
jmp 0x140015265
lea esi, [rdi + rdi]
test esi, esi
js 0x14001531e
movsxd rdx, esi
cmp rdx, 0xfffffff
ja 0x14001531e
mov r8d, 8
mov rcx, rbx
call fcn.14004aa04
mov rbx, rax
test rax, rax
je 0x14001531e
mov dword [rsp + 0x74], esi
mov qword [rsp + 0x68], rax
mov dword [rbp - 0x40], edi
movsxd rax, edi
lea rsi, [rbx + rax*8]
mov qword [rbp - 0x28], rsi
test rsi, rsi
je 0x140015318
mov rbx, qword [rsp + 0x60]
mov rcx, qword [rbx - 0x18]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rbx - 8], 0
jl 0x1400152d7
cmp rax, qword [rbx - 0x18]
jne 0x1400152d7
lea r14, [rbx - 0x18]
lock inc dword [rbx - 8]
mov edi, dword [rsp + 0x70]
jmp 0x140015311
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rbx - 0x10]
call qword [rax]
mov r14, rax
test rax, rax
je 0x1400154a3
mov ecx, dword [rbx - 0x10]
mov dword [rax + 8], ecx
mov ecx, dword [rbx - 0x10]
inc ecx
movsxd rdx, ecx
add rdx, rdx
mov r8, rbx
lea rcx, [rax + 0x18]
mov r9, rdx
call fcn.1400155c0
lea rax, [r14 + 0x18]
mov qword [rsi], rax
inc edi
mov dword [rsp + 0x70], edi
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001533f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
inc r15d
mov rsi, qword [rbp - 0x70]
mov rbx, qword [rsp + 0x68]
cmp r15d, dword [rsp + 0x7c]
jae 0x140015360
mov r14d, dword [rsp + 0x74]
mov edi, dword [rsp + 0x70]
jmp 0x140015190
mov edi, dword [rsp + 0x70]
mov r14d, r13d
test edi, edi
jle 0x1400153ca
mov r15, r13
nop
test r15, r15
js 0x14001548a
cmp r14d, edi
jge 0x14001548a
mov rdx, qword [rbx + r15*8]
mov rcx, rsi
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegDeleteValueW]
test eax, eax
je 0x1400153bf
lea rcx, str.DeleteValue_failed
call fcn.140018760
lea r9, [0x1400af290]
mov r8d, 0x5e
lea rdx, str.ModifyReg
lea rcx, str.__hs_____d_:_____s
call fcn.140018f50
inc r14d
inc r15
cmp r14d, edi
jl 0x140015370
mov r14d, r13d
lea r15, [rbp - 0x10]
nop dword [rax]
nop word [rax + rax]
mov dword [rbp - 0x78], r12d
mov dword [rsp + 0x28], 4
lea rax, [rbp - 0x78]
mov qword [rsp + 0x20], rax
mov r9d, 4
xor r8d, r8d
mov rdx, qword [r15]
mov rcx, rsi
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegSetValueExW]
inc r14d
lea r15, [r15 + 8]
cmp r14d, 0x10
jb 0x1400153e0
test rsi, rsi
je 0x14001542c
mov rcx, rsi
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegCloseKey]
mov rsi, r13
mov qword [rbp - 0x70], r13
mov dword [rbp - 0x68], r13d
test rbx, rbx
je 0x14001511f
test edi, edi
jle 0x140015472
nop dword [rax]
mov rdx, qword [rbx]
sub rdx, 0x18
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001545f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
add rbx, 8
sub rdi, 1
jne 0x140015440
mov rsi, qword [rbp - 0x70]
mov rbx, qword [rsp + 0x68]
mov rcx, rbx
call fcn.14004a44c
jmp 0x14001511f
mov ecx, 0x80004005
call fcn.140002850
int3
mov edx, r12d
mov ecx, 0xc000008c
call fcn.14000c270
nop
mov ecx, 0x80004005
call fcn.140002850
nop
call fcn.140005bc0
int3