Function at 0x180014cd0
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xfe0]
mov eax, 0x10e0
call fcn.18006ce90
sub rsp, rax
lea ebx, [rcx + 0x6d0]
mov rsi, r8
mov dword [rsp + 0x58], ebx
mov r13d, ecx
cmp ecx, ebx
jae 0x180015014
mov r12, qword [rbp + 0x1038]
xor r14d, r14d
mov r15, qword [rbp + 0x1038]
mov eax, 0xfa5
mov edi, dword [rbp + 0x1020]
nop
cmp r13d, 0x153
ja 0x180014ecd
je 0x180014e98
cmp r13d, 0xe4
ja 0x180014de2
je 0x180014daf
mov eax, r13d
sub eax, 0x25
je 0x180014d90
sub eax, 0x19
je 0x180014d85
sub eax, 0x54
je 0x180015304
cmp eax, 0x19
mov eax, 0xfa5
jne 0x1800152f2
mov dword [rbp + 0x1038], 1
jmp 0x1800152f2
mov r15, r14
mov edi, r14d
jmp 0x1800152ed
mov ecx, 0xfffffdd4
lea rdx, [rbp + 0x9f0]
call qword [0x1800ce8f0]
mov word [0x1800ce8f8], r14w
jmp 0x1800152e6
movzx eax, word [rsi]
lea r8, [rsp + 0x48]
xor r9d, r9d
mov word [rbp + 0x848], ax
lea rcx, [rbp + 0x400]
mov dword [rsp + 0x48], 0x200
mov dword [rsp + 0x20], 0x157
call fcn.1800108e0
jmp 0x1800152e6
mov eax, r13d
sub eax, 0xe6
je 0x180014e68
sub eax, 0x32
je 0x180014e1d
cmp eax, 0x39
jne 0x1800152ed
lea ecx, [rax - 0x55]
lea rdx, [rbp + 0x400]
call qword [0x1800ce8f0]
movzx eax, word [rbp + 0x95a]
mov word [0x1800ce8f8], ax
jmp 0x1800152e6
movups xmm0, xmmword [str.header__next__NULL__header__next__prev__header]
mov eax, dword [0x18009ae00]
movups xmm1, xmmword [0x18009ade0]
mov dword [rbp - 0x40], eax
movzx eax, byte [0x18009ae04]
movaps xmmword [rbp - 0x70], xmm0
movups xmm0, xmmword [0x18009adf0]
mov dword [rbp + 0x1020], 0x96
mov dword [rsp + 0x40], 0x96
movaps xmmword [rbp - 0x50], xmm0
movaps xmmword [rbp - 0x60], xmm1
mov byte [rbp - 0x3c], al
jmp 0x1800152ed
mov r9d, 1
lea r8, str.ws2_32.dll
mov edx, 0xe5
xor ecx, ecx
call fcn.1800588e0
mov rcx, qword [rsi]
mov qword [rbp - 0x80], rax
mov rdx, qword [rcx]
mov rcx, qword [rdx]
mov qword [rsp + 0x78], rcx
jmp 0x1800152e6
mov rcx, qword [rsp + 0x78]
cmp word [rcx], 0x15
jne 0x180014ec1
cmp qword [rbp - 0x80], 0
mov eax, 0x67
mov word [0x1800ce8f8], r14w
cmovne eax, r14d
mov dword [rcx + 2], eax
jmp 0x1800152ed
mov word [0x1800ce8f8], ax
jmp 0x1800152f2
cmp r13d, 0x2cc
ja 0x180014ffc
je 0x180014f93
mov eax, r13d
sub eax, 0x185
je 0x180014f73
sub eax, 0x6d
je 0x180014f6c
cmp eax, 0x6d
jne 0x1800152ed
test r12, r12
jne 0x180015315
mov rcx, qword [rsp + 0x60]
lea rax, [rbp + 0x1020]
mov qword [rsp + 0x28], rax
lea r9, [rbp + 0x1038]
lea rax, [rbp + 0xa0]
xor r8d, r8d
lea rdx, str.Device
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
movsxd r12, eax
test eax, eax
jne 0x1800152e6
mov rcx, r14
nop word [rax + rax]
movzx eax, byte [rbp + rcx + 0xa0]
mov byte [rbp + rcx + 0x140], al
lea rcx, [rcx + 1]
test al, al
jne 0x180014f50
jmp 0x1800152e6
lea rax, [rsp + 0x60]
jmp 0x180014fd7
mov qword [rsp + 0x70], 0xffffffff80000001
mov qword [rsp + 0x60], 0xffffffff80000001
mov qword [rsp + 0x50], 0xffffffff80000001
jmp 0x1800152ed
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [0x18009ae48]
movups xmm0, xmmword [str.vec4_texture2DProjGradARB_sampler2D_vec3_vec2_vec2__]
mov dword [rbp - 0x40], eax
movzx eax, byte [0x18009ae4c]
movups xmm1, xmmword [0x18009ae28]
mov byte [rbp - 0x3c], al
lea rax, [rsp + 0x50]
movaps xmmword [rbp - 0x70], xmm0
movups xmm0, xmmword [0x18009ae38]
movaps xmmword [rbp - 0x60], xmm1
movaps xmmword [rbp - 0x50], xmm0
mov rcx, qword [rsp + 0x70]
lea rdx, [rbp - 0x70]
mov r9d, 0x20019
mov qword [rsp + 0x20], rax
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
movsxd r12, eax
jmp 0x1800152e6
mov eax, r13d
sub eax, 0x339
je 0x18001504c
sub eax, 0x6d
je 0x180015034
cmp eax, 0x6d
jne 0x1800152ed
mov rax, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x1130]
add rsp, 0x10e0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
movsxd r12, eax
mov qword [rsp + 0x68], r15
jmp 0x1800152e6
test r12, r12
jne 0x180015315
mov rcx, qword [rsp + 0x50]
lea rax, [rsp + 0x40]
mov qword [rsp + 0x38], rax
lea r9, [rbp + 0x1020]
lea rax, [rbp + 0xa0]
mov dword [rbp + 0x1020], 0x96
mov qword [rsp + 0x30], rax
lea r8, [rbp]
lea rax, [rbp + 0x1038]
mov edx, edi
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r14
call qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
movsxd r12, eax
cmp r12, 0x103
je 0x1800152e6
nop
mov r14d, 0xe7
mov eax, r14d
sub eax, 0xe7
je 0x180015114
cmp eax, 1
jne 0x1800152c2
mov rcx, qword [rsp + 0x50]
lea rax, [rsp + 0x40]
mov qword [rsp + 0x38], rax
lea r9, [rbp + 0x1020]
lea rax, [rbp + 0xa0]
mov edx, edi
mov qword [rsp + 0x30], rax
lea r8, [rbp]
lea rax, [rbp + 0x1038]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0
call qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
movsxd r12, eax
jmp 0x1800152c2
test r12, r12
jne 0x1800152ae
mov ebx, 0xbb
mov eax, ebx
sub eax, 0xbb
je 0x180015228
cmp eax, 1
jne 0x1800152a0
lea rax, [rbp]
lea r8, [rbp + 0x140]
sub r8, rax
nop word [rax + rax]
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x180015163
inc rax
test ecx, ecx
jne 0x180015150
test edx, edx
jne 0x18001516b
lea r15d, [rdi + 1]
mov rax, rsi
lea rcx, [rbp + 0x1e0]
mov edx, 2
nop word [rax + rax]
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
lea rax, [rax + 0x80]
movups xmmword [rcx - 0x80], xmm0
movups xmm0, xmmword [rax - 0x60]
movups xmmword [rcx - 0x70], xmm1
movups xmm1, xmmword [rax - 0x50]
movups xmmword [rcx - 0x60], xmm0
movups xmm0, xmmword [rax - 0x40]
movups xmmword [rcx - 0x50], xmm1
movups xmm1, xmmword [rax - 0x30]
movups xmmword [rcx - 0x40], xmm0
movups xmm0, xmmword [rax - 0x20]
movups xmmword [rcx - 0x30], xmm1
movups xmm1, xmmword [rax - 0x10]
movups xmmword [rcx - 0x20], xmm0
movups xmmword [rcx - 0x10], xmm1
sub rdx, 1
jne 0x180015180
mov eax, dword [rax]
mov dword [rcx], eax
lea rcx, [rbp]
mov rax, 0xffffffffffffffff
inc rax
cmp byte [rcx + rax], 0
jne 0x1800151e2
mov qword [rbp - 0x78], rax
lea ecx, [rdi + 1]
lea rax, [rbp + 0x1e0]
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x28], rax
lea r9, [rbp]
lea rax, [rsp + 0x48]
mov edx, 0xa5
lea r8, [rbp - 0x78]
mov qword [rsp + 0x20], rax
lea rcx, [rbp + 0x2f0]
call fcn.18003b5b0
jmp 0x1800152a0
lea eax, [rdi + 1]
mov qword [rsp + 0x20], 0
mov r9d, 0xb6
mov dword [rsp + 0x48], eax
mov r8, rsi
lea rdx, [rsp + 0x48]
xor ecx, ecx
call fcn.180034b90
lea rcx, [rbp]
dec rcx
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x180015254
movzx eax, word [0x180095758]
mov word [rcx], ax
lea rax, [rbp]
dec rax
nop
cmp byte [rax + 1], 0
lea rax, [rax + 1]
jne 0x180015270
lea r8, [rbp + 0xa0]
xor edx, edx
nop dword [rax]
nop word [rax + rax]
movzx ecx, byte [r8 + rdx]
mov byte [rax + rdx], cl
lea rdx, [rdx + 1]
test cl, cl
jne 0x180015290
inc ebx
cmp ebx, 0xbd
jb 0x180015122
inc edi
mov dword [rbp + 0x1020], 0x96
mov dword [rsp + 0x40], 0x96
inc r14d
cmp r14d, 0xe9
jb 0x1800150b6
cmp r12, 0x103
jne 0x1800150b0
mov ebx, dword [rsp + 0x58]
xor r14d, r14d
mov rdx, qword [rbp + 0x1028]
mov eax, 0xfa5
add r13d, 0x6d
cmp r13d, ebx
jb 0x180014d30
jmp 0x180015014
cmp dword [rbp + 0xf50], 0
setne byte [rsp + 0x68]
jmp 0x180015014
mov rax, r15
jmp 0x180015019