Function at 0x1801cd200
Capabilities:
Encode data using base64
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x840]
sub rsp, 0x940
mov rax, qword [0x1804c4e78]
xor rax, rsp
mov qword [rbp + 0x830], rax
mov r13, r8
mov r12, rdx
mov r15, rcx
xor ebx, ebx
mov dword [rsp + 0x40], 0x800
xorps xmm0, xmm0
movups xmmword [rsp + 0x70], xmm0
mov qword [rbp - 0x80], rbx
mov qword [rbp - 0x78], 0xf
lea edx, [rbx + 0x20]
lea rcx, [rsp + 0x70]
call fcn.180015660
mov qword [rsp + 0x70], rax
mov qword [rbp - 0x80], 0x18
mov qword [rbp - 0x78], 0x1f
movups xmm0, xmmword [str.SOFTWAREKhronosOpenXR_]
movups xmmword [rax], xmm0
movsd xmm0, qword [0x180348690]
movsd qword [rax + 0x10], xmm0
mov byte [rax + 0x18], bl
lea r14, [rbp + 0x25]
mov r8d, 1
nop dword [rax]
dec r14
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r14], r8b
mov r8d, edx
test edx, edx
jne 0x1801cd2a0
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rbx
lea rax, [rbp + 0x25]
lea edx, [r8 + 0x16]
movabs rcx, 0x7fffffffffffffff
cmp r14, rax
jne 0x1801cd30f
mov rdi, rbx
mov qword [rsp + 0x60], rbx
mov esi, 0xf
mov qword [rsp + 0x68], rsi
mov byte [rsp + 0x50], dil
jmp 0x1801cd39e
lea rdi, [rbp + 0x25]
sub rdi, r14
cmp rdi, rcx
ja 0x1801cdb80
cmp rdi, 0x10
jae 0x1801cd354
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x68], 0xf
mov r8, rdi
mov rdx, r14
lea rcx, [rsp + 0x50]
call fcn.180287a80
mov byte [rsp + rdi + 0x50], 0
mov rsi, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x60]
jmp 0x1801cd39e
mov rsi, rdi
or rsi, 0xf
cmp rsi, rcx
jbe 0x1801cd365
mov rsi, rcx
jmp 0x1801cd36c
cmp rsi, rdx
cmovb rsi, rdx
lea rdx, [rsi + 1]
lea rcx, [rsp + 0x50]
call fcn.180015660
mov rbx, rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x68], rsi
mov r8, rdi
mov rdx, r14
mov rcx, rax
call fcn.180287a80
mov byte [rbx + rdi], 0
lea r9, [rsp + 0x50]
cmp rsi, 0x10
cmovae r9, qword [rsp + 0x50]
mov r14, qword [rbp - 0x80]
mov rcx, qword [rbp - 0x78]
mov rax, rcx
sub rax, r14
cmp rdi, rax
ja 0x1801cd3f0
lea rax, [r14 + rdi]
mov qword [rbp - 0x80], rax
lea rbx, [rsp + 0x70]
cmp rcx, 0x10
cmovae rbx, qword [rsp + 0x70]
lea rcx, [rbx + r14]
mov r8, rdi
mov rdx, r9
call fcn.180287a80
lea rax, [rbx + r14]
mov byte [rax + rdi], 0
jmp 0x1801cd40a
mov qword [rsp + 0x20], rdi
xor r8d, r8d
mov rdx, rdi
lea rcx, [rsp + 0x70]
call fcn.1801a4c90
mov rsi, qword [rsp + 0x68]
cmp rsi, 0x10
jb 0x1801cd443
lea rdx, [rsi + 1]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1801cd43e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801cdbbc
call fcn.18026a1a0
mov rdi, qword [r15 + 0x10]
cmp qword [r15 + 0x18], 0x10
jb 0x1801cd451
mov r15, qword [r15]
mov rsi, qword [rbp - 0x80]
mov rcx, qword [rbp - 0x78]
mov rax, rcx
sub rax, rsi
cmp rdi, rax
ja 0x1801cd494
lea rax, [rdi + rsi]
mov qword [rbp - 0x80], rax
lea rbx, [rsp + 0x70]
cmp rcx, 0x10
cmovae rbx, qword [rsp + 0x70]
lea rcx, [rbx + rsi]
mov r8, rdi
mov rdx, r15
call fcn.180287a80
lea rax, [rdi + rbx]
mov byte [rax + rsi], 0
jmp 0x1801cd4ac
mov qword [rsp + 0x20], rdi
mov r9, r15
xor r8d, r8d
mov rdx, rdi
lea rcx, [rsp + 0x70]
call fcn.1801a4c90
lea rdx, [rsp + 0x70]
lea rcx, [rbp - 0x10]
call fcn.1801b9ba0
nop
mov rdx, r12
lea rcx, [rbp - 0x30]
call fcn.1801b9ba0
nop
lea rdx, [rbp - 0x10]
cmp qword [rbp + 8], 8
cmovae rdx, qword [rbp - 0x10]
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
mov r9d, 1
xor r8d, r8d
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x1801cd8d0
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], 0
mov rsi, qword [rbp - 0x80]
movabs rcx, 0x7fffffffffffffff
mov rax, rcx
sub rax, rsi
cmp rax, 0x3d
jb 0x1801cdb86
lea r15, [rsp + 0x70]
cmp qword [rbp - 0x78], 0x10
cmovae r15, qword [rsp + 0x70]
movups xmmword [rbp - 0x50], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x40], xmm1
lea r14, [rsi + 0x3d]
mov ebx, 0xf
lea rdi, [rbp - 0x50]
cmp r14, rbx
jbe 0x1801cd5d6
mov rbx, r14
or rbx, 0xf
cmp rbx, rcx
jbe 0x1801cd598
mov rbx, rcx
movabs rax, 0x8000000000000000
add rax, 0x27
mov rcx, rax
call fcn.18026a164
test rax, rax
je 0x1801cdb92
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x1801cd5d2
cmp rbx, 0x16
mov eax, 0x16
cmovb rbx, rax
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x1801cd5c1
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x1801cdb74
jmp 0x1801cd579
test rcx, rcx
je 0x1801cd5d0
call fcn.18026a164
mov rdi, rax
jmp 0x1801cd5d2
xor edi, edi
mov qword [rbp - 0x50], rdi
mov qword [rbp - 0x40], r14
mov qword [rbp - 0x38], rbx
movups xmm0, xmmword [str.ReadRuntimeDataFilesInRegistry___failed_to_open_registry_key]
movups xmmword [rdi], xmm0
movups xmm1, xmmword [0x1803486b0]
movups xmmword [rdi + 0x10], xmm1
movups xmm0, xmmword [0x1803486c0]
movups xmmword [rdi + 0x20], xmm0
movsd xmm0, qword [0x1803486d0]
movsd qword [rdi + 0x30], xmm0
mov eax, dword [0x1803486d8]
mov dword [rdi + 0x38], eax
movzx eax, byte [0x1803486dc]
mov byte [rdi + 0x3c], al
lea rcx, [rdi + 0x3d]
mov r8, rsi
mov rdx, r15
call fcn.180287a80
mov byte [rdi + r14], 0
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
xor r14d, r14d
mov qword [rbp - 0x60], r14
mov qword [rbp - 0x58], 0xf
mov byte [rbp - 0x70], r14b
lea r8, [rsp + 0x50]
lea rdx, [rbp - 0x50]
lea rcx, [rbp - 0x70]
call fcn.1801cbbc0
nop
mov rdx, qword [rbp - 0x58]
cmp rdx, 0x10
jb 0x1801cd69a
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1801cd695
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801cdb8c
call fcn.18026a1a0
mov qword [rbp - 0x60], r14
mov qword [rbp - 0x58], 0xf
mov byte [rbp - 0x70], 0
mov rdx, qword [rbp - 0x38]
cmp rdx, 0x10
jb 0x1801cd6e5
inc rdx
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1801cd6e0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801cdb92
call fcn.18026a1a0
movdqa xmm0, xmmword [0x1802f2720]
movdqu xmmword [rbp - 0x40], xmm0
mov byte [rbp - 0x50], 0
mov r8, qword [rsp + 0x50]
test r8, r8
je 0x1801cd7c6
mov rsi, qword [rsp + 0x58]
cmp r8, rsi
je 0x1801cd76d
lea rbx, [r8 + 0x28]
mov rdx, qword [rbx]
cmp rdx, 0x10
jb 0x1801cd74c
mov rcx, qword [rbx - 0x18]
inc rdx
cmp rdx, 0x1000
jb 0x1801cd747
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1801cdb98
mov rcx, r8
call fcn.18026a1a0
mov qword [rbx - 8], r14
mov qword [rbx], 0xf
mov byte [rbx - 0x18], 0
add rbx, 0x30
lea rax, [rbx - 0x28]
cmp rax, rsi
jne 0x1801cd712
mov r8, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x60]
sub rcx, r8
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
sar rdx, 3
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdx, [rdx + rdx*2]
shl rdx, 4
mov rax, r8
cmp rdx, 0x1000
jb 0x1801cd7bd
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801cdb98
mov rcx, r8
call fcn.18026a1a0
nop
mov rdx, qword [rbp - 0x18]
cmp rdx, 8
jb 0x1801cd806
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1801cd801
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801cdb9e
call fcn.18026a1a0
movdqa xmm0, xmmword [0x1802f2710]
movdqu xmmword [rbp - 0x20], xmm0
mov word [rbp - 0x30], r14w
mov rdx, qword [rbp + 8]
cmp rdx, 8
jb 0x1801cd858
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1801cd853
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801cdbbc
call fcn.18026a1a0
movdqa xmm0, xmmword [0x1802f2710]
movdqu xmmword [rbp], xmm0
mov word [rbp - 0x10], r14w
mov rdx, qword [rbp - 0x78]
cmp rdx, 0x10
jb 0x1801cd8a6
inc rdx
mov rcx, qword [rsp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1801cd8a1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801cdb6e
call fcn.18026a1a0
mov rcx, qword [rbp + 0x830]
xor rcx, rsp
call fcn.18026ad00
mov rbx, qword [rsp + 0x998]
add rsp, 0x940
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea r8, [rbp - 0x30]
cmp qword [rbp - 0x18], 8
cmovae r8, qword [rbp - 0x30]
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0x30]
mov qword [rsp + 0x28], rax
xor r14d, r14d
mov qword [rsp + 0x20], r14
xor edx, edx
mov r9d, 0x20000002
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegGetValueW]
xorps xmm0, xmm0
mov qword [rsp + 0x60], r14
test eax, eax
je 0x1801cda05
movdqu xmmword [rsp + 0x50], xmm0
mov r8, r12
lea rdx, str.ReadRuntimeDataFilesInRegistry___failed_to_read_registry_value
lea rcx, [rbp - 0x50]
call fcn.180089270
nop
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], r14
mov qword [rbp - 0x58], 0xf
mov byte [rbp - 0x70], r14b
lea r8, [rsp + 0x50]
mov rdx, rax
lea rcx, [rbp - 0x70]
call fcn.1801cbbc0
nop
mov rdx, qword [rbp - 0x58]
cmp rdx, 0x10
jb 0x1801cd99a
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1801cd995
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801cdba4
call fcn.18026a1a0
mov qword [rbp - 0x60], r14
mov qword [rbp - 0x58], 0xf
mov byte [rbp - 0x70], 0
mov rdx, qword [rbp - 0x38]
cmp rdx, 0x10
jb 0x1801cd9e5
inc rdx
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1801cd9e0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801cdbaa
call fcn.18026a1a0
movdqa xmm0, xmmword [0x1802f2720]
movdqu xmmword [rbp - 0x40], xmm0
mov byte [rbp - 0x50], 0
lea rcx, [rsp + 0x50]
call fcn.1801a54b0
jmp 0x1801cd7c6
movups xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x68], r14
lea rax, [rbp + 0x30]
mov rbx, 0xffffffffffffffff
nop word [rax + rax]
inc rbx
cmp word [rax + rbx*2], r14w
jne 0x1801cda20
movabs rsi, 0x7ffffffffffffffe
cmp rbx, rsi
ja 0x1801cdbb0
mov qword [rsp + 0x68], 7
cmp rbx, 8
jae 0x1801cda6d
mov qword [rsp + 0x60], rbx
add rbx, rbx
mov r8, rbx
lea rdx, [rbp + 0x30]
lea rcx, [rsp + 0x50]
call fcn.180287a80
mov word [rsp + rbx + 0x50], r14w
jmp 0x1801cdabf
mov rax, rbx
or rax, 7
cmp rax, rsi
ja 0x1801cda88
mov rsi, rax
mov ecx, 0xa
cmp rax, rcx
cmovb rsi, rcx
lea rdx, [rsi + 1]
lea rcx, [rsp + 0x50]
call fcn.1800156c0
mov rdi, rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rsi
add rbx, rbx
mov r8, rbx
lea rdx, [rbp + 0x30]
mov rcx, rax
call fcn.180287a80
mov word [rdi + rbx], r14w
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x70]
call fcn.1801b9df0
nop
mov r8, r13
xor edx, edx
mov rcx, rax
call fcn.1801c5b20
nop
mov rdx, qword [rbp - 0x58]
cmp rdx, 0x10
jb 0x1801cdb17
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1801cdb12
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801cdbb6
call fcn.18026a1a0
movdqa xmm0, xmmword [0x1802f2720]
movdqu xmmword [rbp - 0x60], xmm0
mov byte [rbp - 0x70], 0
mov rdx, qword [rsp + 0x68]
cmp rdx, 8
jb 0x1801cd7c6
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1801cd7c0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801cdb7a
jmp 0x1801cd7c0
call fcn.18028cdc8
nop
call fcn.180015510
nop
call fcn.18028cdc8
nop
call fcn.180015620
nop
call fcn.180015620
nop
call fcn.18028cdc8
nop
call fcn.18028cdc8
nop
call fcn.18028cdc8
nop
call fcn.18028cdc8
nop
call fcn.18028cdc8
nop
call fcn.18028cdc8
nop
call fcn.180015620
nop
call fcn.18028cdc8
nop
call fcn.18028cdc8
int3