Function at 0x65005d30
Capabilities:
Query or enumerate registry value

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x890
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov rax, qword [0x65043120]
xor rax, rsp
mov qword [rsp + 0x880], rax
mov rsi, rcx
xor edi, edi
mov dword [rsp + 0x70], edi
xor eax, eax
mov dword [rsp + 0x74], eax
mov dword [rsp + 0x78], eax
mov dword [rsp + 0x7c], eax
mov qword [rsp + 0x48], rdi
lea r8, [0x650372e0]
lea edx, [rdi + 0x1f]
lea rcx, [0x65037310]
call fcn.6500c660
mov qword [rsp + 0x40], rdi
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x20], rcx
mov r9d, 0x20019
xor r8d, r8d
mov rdx, rax
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x650060c4
mov rdi, qword [rsp + 0x40]
mov qword [rsp + 0x48], rdi
lea r8, [0x65037350]
lea edx, [rax + 0xb]
lea rcx, [0x65037378]
call fcn.6500c660
mov dword [rsp + 0x38], 0x800
lea rcx, [rsp + 0x38]
mov qword [rsp + 0x28], rcx
lea rcx, [rsp + 0x80]
mov qword [rsp + 0x20], rcx
lea r9, [rsp + 0x3c]
xor r8d, r8d
mov rdx, rax
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x6500608b
mov eax, dword [rsp + 0x3c]
cmp eax, 1
je 0x65005e39
cmp eax, 2
jne 0x6500608b
mov eax, dword [rsp + 0x38]
test eax, eax
je 0x65005e59
test al, 1
jne 0x6500608b
shr rax, 1
cmp word [rsp + rax*2 + 0x7e], 0
je 0x65005e63
jmp 0x6500608b
mov word [rsp + 0x80], 0
lea rcx, [0x650430a0]
mov rax, qword [0x650430a0]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x30], rbx
lea rdx, [0x65037390]
or rbp, 0xffffffffffffffff
test rdx, 0xffffffffffff0000
jne 0x65005eb9
movzx edi, dx
xor edx, edx
mov ecx, edi
call fcn.650026f0
test rax, rax
je 0x65005eda
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.65003e00
mov rbx, qword [rsp + 0x30]
jmp 0x65005eda
xor eax, eax
mov rcx, rbp
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rcx, [rsp + 0x30]
call fcn.65003f90
mov rbx, qword [rsp + 0x30]
xor eax, eax
mov rcx, rbp
lea rdi, [rsp + 0x80]
repne scasw ax, word [rdi]
not rcx
lea r15, [rcx - 1]
lea r13, [rsp + 0x80]
lea rdi, [rsp + 0x80]
sub rdi, rbx
sar rdi, 1
mov r14d, dword [rbx - 0x10]
lea r12d, [r14 + rcx - 1]
mov edx, 1
sub edx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, r12d
or eax, edx
jge 0x65005f34
mov edx, r12d
lea rcx, [rsp + 0x30]
call fcn.65002640
mov rbx, qword [rsp + 0x30]
cmp rdi, r14
ja 0x65005f3d
lea r13, [rbx + rdi*2]
movsxd rdx, r15d
add rdx, rdx
lea rcx, [rbx + r14*2]
mov r9, rdx
mov r8, r13
call fcn.6501d7b0
test r12d, r12d
js 0x65006080
cmp r12d, dword [rbx - 0xc]
jg 0x65006080
mov dword [rbx - 0x10], r12d
movsxd rax, r12d
mov word [rbx + rax*2], 0
xor eax, eax
mov rcx, rbp
lea r13, [0x65037394]
mov rdi, r13
repne scasw ax, word [rdi]
not rcx
lea r15, [rcx - 1]
mov r12, r13
sub r12, rbx
sar r12, 1
mov r14d, dword [rbx - 0x10]
lea edi, [r14 + rcx - 1]
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x65005fbf
mov edx, edi
lea rcx, [rsp + 0x30]
call fcn.65002640
mov rbx, qword [rsp + 0x30]
cmp r12, r14
ja 0x65005fc8
lea r13, [rbx + r12*2]
movsxd rdx, r15d
add rdx, rdx
lea rcx, [rbx + r14*2]
mov r9, rdx
mov r8, r13
call fcn.6501d7b0
test edi, edi
js 0x65006075
cmp edi, dword [rbx - 0xc]
jg 0x65006075
mov dword [rbx - 0x10], edi
movsxd rax, edi
mov word [rbx + rax*2], 0
cmp dword [rbx - 8], 1
jle 0x65006012
mov edx, dword [rbx - 0x10]
lea rcx, [rsp + 0x30]
call fcn.65002130
mov rbx, qword [rsp + 0x30]
lea rdx, [rsp + 0x70]
mov rcx, rbx
call qword [sym.imp.ole32.dll_CLSIDFromString]
movaps xmm5, xmmword [rsp + 0x70]
movdqa xmmword [rsp + 0x50], xmm5
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], ebp
add ebp, 0xffffffff
test ebp, ebp
jg 0x65006045
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x65006055
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea rcx, [rsp + 0x50]
mov eax, dword [rcx]
mov dword [rsi], eax
mov eax, dword [rcx + 4]
mov dword [rsi + 4], eax
mov eax, dword [rcx + 8]
mov dword [rsi + 8], eax
mov eax, dword [rcx + 0xc]
mov dword [rsi + 0xc], eax
mov rax, rsi
jmp 0x650060e2
mov ecx, 0x80070057
call fcn.65001050
int3
mov ecx, 0x80070057
call fcn.65001050
nop
movaps xmm0, xmmword [rsp + 0x70]
movdqa xmmword [rsp + 0x50], xmm0
test rdi, rdi
je 0x650060a4
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea rcx, [rsp + 0x50]
mov eax, dword [rcx]
mov dword [rsi], eax
mov eax, dword [rcx + 4]
mov dword [rsi + 4], eax
mov eax, dword [rcx + 8]
mov dword [rsi + 8], eax
mov eax, dword [rcx + 0xc]
mov dword [rsi + 0xc], eax
mov rax, rsi
jmp 0x650060e2
lea rcx, [rsp + 0x70]
mov eax, dword [rcx]
mov dword [rsi], eax
mov eax, dword [rcx + 4]
mov dword [rsi + 4], eax
mov eax, dword [rcx + 8]
mov dword [rsi + 8], eax
mov eax, dword [rcx + 0xc]
mov dword [rsi + 0xc], eax
mov rax, rsi
mov rcx, qword [rsp + 0x880]
xor rcx, rsp
call fcn.6501e650
lea r11, [rsp + 0x890]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret