Function at 0x180025710
Capabilities:
Set registry value

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x4f]
sub rsp, 0x90
mov qword [rbp + 0xf], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov r15, r9
mov r13, r8
mov r12, rdx
mov ebx, ecx
xor edi, edi
lea rdx, [0x18004e29c]
mov rcx, qword [r9]
call fcn.180030ab0
test eax, eax
sete al
or esi, 0xffffffff
test al, al
je 0x1800258cd
lea rcx, [0x18005d078]
mov rax, qword [0x18005d078]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x19], rax
mov r9, qword [r13]
mov r8, qword [r12]
lea rdx, [0x18004e290]
lea rcx, [rbp - 0x19]
call fcn.180002980
lea rdx, [0x18004e2a0]
lea rcx, [rbp - 0x19]
call fcn.180010980
lea rdx, [0x18004e2a0]
lea rcx, [rbp - 0x19]
call fcn.180003f10
mov qword [rbp - 9], rdi
test ebx, ebx
jne 0x1800257cf
mov rcx, 0xffffffff80000000
jmp 0x180025805
cmp ebx, 1
jne 0x1800257dd
mov rcx, 0xffffffff80000001
jmp 0x180025805
cmp ebx, 2
jne 0x1800257eb
mov rcx, 0xffffffff80000002
jmp 0x180025805
cmp ebx, 3
jne 0x1800257f9
mov rcx, 0xffffffff80000003
jmp 0x180025805
cmp ebx, 4
jne 0x180025878
mov rcx, 0xffffffff80000005
lea rax, [rbp - 0xd]
mov qword [rsp + 0x40], rax
lea rax, [rbp - 9]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 0x20006
mov rbx, qword [rbp - 0x19]
mov dword [rsp + 0x20], edi
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
mov ecx, 1
test eax, eax
cmove edi, ecx
mov rcx, qword [rbp - 9]
test rcx, rcx
je 0x180025855
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180025b19
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
jmp 0x180025b19
mov rdx, qword [rbp - 0x19]
add rdx, 0xffffffffffffffe8
or esi, 0xffffffff
lock xadd dword [rdx + 0x10], esi
dec esi
test esi, esi
jg 0x180025898
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rcx, r12
call fcn.180001630
nop
mov rcx, r13
call fcn.180001630
nop
mov rcx, r15
call fcn.180001630
nop
mov rcx, qword [rbp + 0x77]
call fcn.180001630
nop
mov rcx, qword [rbp + 0x7f]
call fcn.180001630
xor eax, eax
jmp 0x180025bb9
lea rdx, [0x18004e26c]
mov rcx, qword [r15]
call fcn.180030ab0
test eax, eax
sete al
test al, al
je 0x180025b19
lea rdx, [0x18004e2a0]
mov rcx, r12
call fcn.180010980
lea rdx, [0x18004e2a0]
mov rcx, r12
call fcn.180003f10
mov qword [rbp - 0x21], rdi
test ebx, ebx
jne 0x180025918
mov rcx, 0xffffffff80000000
jmp 0x180025952
cmp ebx, 1
jne 0x180025926
mov rcx, 0xffffffff80000001
jmp 0x180025952
cmp ebx, 2
jne 0x180025934
mov rcx, 0xffffffff80000002
jmp 0x180025952
cmp ebx, 3
jne 0x180025942
mov rcx, 0xffffffff80000003
jmp 0x180025952
cmp ebx, 4
jne 0x180025ae4
mov rcx, 0xffffffff80000005
lea rax, [rbp - 0x11]
mov qword [rsp + 0x40], rax
lea rax, [rbp - 0x21]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 0x20006
mov dword [rsp + 0x20], edi
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [r12]
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x180025acf
mov dword [rbp - 0x29], edi
lea r8, [rbp - 0x29]
lea rdx, [0x18004e7d0]
mov rcx, qword [rbp + 0x77]
mov rcx, qword [rcx]
call fcn.1800300e4
mov r9d, dword [rbp - 0x29]
cmp r9d, 2
je 0x180025a9b
cmp r9d, 1
je 0x180025a9b
cmp r9d, 7
je 0x180025a9b
cmp r9d, 4
jne 0x180025a03
mov dword [rbp - 1], edi
lea r8, [rbp - 1]
lea rdx, [0x18004e7d0]
mov rbx, qword [rbp + 0x7f]
mov rcx, qword [rbx]
call fcn.1800300e4
mov dword [rsp + 0x28], 4
lea rax, [rbp - 1]
mov qword [rsp + 0x20], rax
mov r9d, dword [rbp - 0x29]
jmp 0x180025aae
cmp r9d, 0xb
jne 0x180025a3b
mov qword [rbp + 7], rdi
lea r8, [rbp + 7]
lea rdx, str._lld
mov rbx, qword [rbp + 0x7f]
mov rcx, qword [rbx]
call fcn.1800300e4
mov dword [rsp + 0x28], 8
lea rax, [rbp + 7]
mov qword [rsp + 0x20], rax
mov r9d, dword [rbp - 0x29]
jmp 0x180025aae
cmp r9d, 3
jne 0x180025acf
mov r14, qword [rbp + 0x7f]
mov rax, qword [r14]
mov ecx, dword [rax - 0x10]
lea ecx, [rcx*4 + 0x100]
call fcn.18002f604
mov rbx, rax
mov rcx, qword [r14]
mov r8, rax
mov edx, dword [rcx - 0x10]
call fcn.180023170
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rbx
mov r9d, dword [rbp - 0x29]
xor r8d, r8d
mov rdx, qword [r13]
mov rcx, qword [rbp - 0x21]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov r14d, eax
mov rcx, rbx
call fcn.18002f934
mov rbx, qword [rbp + 0x7f]
jmp 0x180025ac2
mov rbx, qword [rbp + 0x7f]
mov rcx, qword [rbx]
mov eax, dword [rcx - 0x10]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
xor r8d, r8d
mov rdx, qword [r13]
mov rcx, qword [rbp - 0x21]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov r14d, eax
mov ecx, 1
test r14d, r14d
cmove edi, ecx
jmp 0x180025ad3
mov rbx, qword [rbp + 0x7f]
mov rcx, qword [rbp - 0x21]
test rcx, rcx
je 0x180025b1d
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x180025b1d
mov rcx, r12
call fcn.180001630
nop
mov rcx, r13
call fcn.180001630
nop
mov rcx, r15
call fcn.180001630
nop
mov rcx, qword [rbp + 0x77]
call fcn.180001630
nop
mov rcx, qword [rbp + 0x7f]
call fcn.180001630
xor eax, eax
jmp 0x180025bb9
mov rbx, qword [rbp + 0x7f]
mov rdx, qword [r12]
sub rdx, 0x18
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180025b3c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdx, qword [r13]
sub rdx, 0x18
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180025b5b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdx, qword [r15]
sub rdx, 0x18
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180025b79
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rax, qword [rbp + 0x77]
mov rdx, qword [rax]
sub rdx, 0x18
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180025b9b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdx, qword [rbx]
sub rdx, 0x18
lock xadd dword [rdx + 0x10], esi
dec esi
test esi, esi
jg 0x180025bb7
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.WS2_32.dll_htonl + 8]
mov eax, edi
mov rbx, qword [rsp + 0xd0]
add rsp, 0x90
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret