Function at 0x140003f90
Capabilities:
Delete registry value
Get common file path
Set registry value

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
lea rbp, [rsp - 0x180]
sub rsp, 0x280
mov rax, qword [0x1400c81d8]
xor rax, rsp
mov qword [rbp + 0x170], rax
test cl, cl
mov eax, 0x100
movzx edi, cl
mov ebx, 0x200
cmovne ebx, eax
xor r9d, r9d
lea rax, [rsp + 0x60]
xor r8d, r8d
xor ecx, ecx
mov qword [rsp + 0x20], rax
lea edx, [r9 + 0x23]
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov edx, 0x104
lea rax, [rsp + 0x60]
mov ecx, edx
nop word [rax + rax]
cmp word [rax], 0
je 0x140004010
add rax, 2
sub rcx, 1
jne 0x140004000
xor esi, esi
mov rax, rdx
sub rax, rcx
mov r11d, 0x7ffffffe
test rcx, rcx
cmove rax, rsi
je 0x140004074
mov r8, rdx
lea rcx, [rsp + 0x60]
lea rcx, [rcx + rax*2]
sub r8, rax
je 0x140004066
lea r10, [0x1400aa954]
mov eax, r11d
sub r10, rcx
test rax, rax
je 0x140004066
movzx r9d, word [r10 + rcx]
test r9w, r9w
je 0x140004066
mov word [rcx], r9w
dec rax
add rcx, 2
sub r8, 1
jne 0x140004045
test r8, r8
lea rax, [rcx - 2]
cmovne rax, rcx
mov word [rax], si
mov rcx, rdx
lea rax, [rsp + 0x60]
nop dword [rax]
cmp word [rax], si
je 0x14000408f
add rax, 2
sub rcx, 1
jne 0x140004080
mov rax, rdx
sub rax, rcx
test rcx, rcx
cmove rax, rsi
je 0x1400040ef
mov r8, rdx
lea rcx, [rsp + 0x60]
lea rcx, [rcx + rax*2]
sub r8, rax
je 0x1400040e1
lea r10, [0x1400aa958]
mov rax, r11
sub r10, rcx
nop dword [rax]
test rax, rax
je 0x1400040e1
movzx r9d, word [rcx + r10]
test r9w, r9w
je 0x1400040e1
mov word [rcx], r9w
dec rax
add rcx, 2
sub r8, 1
jne 0x1400040c0
test r8, r8
lea rax, [rcx - 2]
cmovne rax, rcx
mov word [rax], si
mov rcx, rdx
lea rax, [rsp + 0x60]
cmp word [rax], si
je 0x140004106
add rax, 2
sub rcx, 1
jne 0x1400040f7
mov rax, rdx
sub rax, rcx
test rcx, rcx
cmove rax, rsi
je 0x140004162
mov r8, rdx
lea rcx, [rsp + 0x60]
lea rcx, [rcx + rax*2]
sub r8, rax
je 0x140004154
lea r10, str.obs_vulkan
mov rax, r11
sub r10, rcx
test rax, rax
je 0x140004154
movzx r9d, word [rcx + r10]
test r9w, r9w
je 0x140004154
mov word [rcx], r9w
dec rax
add rcx, 2
sub r8, 1
jne 0x140004133
test r8, r8
lea rax, [rcx - 2]
cmovne rax, rcx
mov word [rax], si
mov rcx, rdx
lea rax, [rsp + 0x60]
nop word [rax + rax]
cmp word [rax], si
je 0x14000417f
add rax, 2
sub rcx, 1
jne 0x140004170
mov rax, rdx
sub rax, rcx
test rcx, rcx
cmove rax, rsi
je 0x1400041ef
test dil, dil
lea rcx, [0x1400aa908]
lea r10, [0x1400aa910]
mov r8, rdx
cmovne r10, rcx
lea rcx, [rsp + 0x60]
lea rcx, [rcx + rax*2]
sub r8, rax
je 0x1400041e1
mov rax, r11
sub r10, rcx
nop word [rax + rax]
test rax, rax
je 0x1400041e1
movzx r9d, word [rcx + r10]
test r9w, r9w
je 0x1400041e1
mov word [rcx], r9w
dec rax
add rcx, 2
sub r8, 1
jne 0x1400041c0
test r8, r8
lea rax, [rcx - 2]
cmovne rax, rcx
mov word [rax], si
mov rcx, rdx
lea rax, [rsp + 0x60]
cmp word [rax], si
je 0x140004206
add rax, 2
sub rcx, 1
jne 0x1400041f7
mov rax, rdx
sub rax, rcx
test rcx, rcx
cmove rax, rsi
je 0x14000425d
lea rcx, [rsp + 0x60]
lea rcx, [rcx + rax*2]
sub rdx, rax
je 0x14000424f
lea r8, str..json
sub r8, rcx
nop dword [rax]
test r11, r11
je 0x14000424f
movzx eax, word [r8 + rcx]
test ax, ax
je 0x14000424f
mov word [rcx], ax
dec r11
add rcx, 2
sub rdx, 1
jne 0x140004230
test rdx, rdx
lea rax, [rcx - 2]
cmovne rax, rcx
mov word [rax], si
movzx r9d, dil
lea r8, [rsp + 0x60]
lea rdx, str.SOFTWAREKhronosVulkanImplicitLayers
mov rcx, 0xffffffff80000001
call fcn.140003540
test eax, eax
jne 0x1400042c7
mov r9d, ebx
lea rax, [rsp + 0x50]
or r9d, 0x20006
mov qword [rsp + 0x20], rax
xor r8d, r8d
lea rdx, str.SOFTWAREKhronosVulkanImplicitLayers
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1400042c7
mov rcx, qword [rsp + 0x50]
lea rdx, [rsp + 0x60]
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
movzx r9d, dil
lea r8, [rsp + 0x60]
lea rdx, str.SOFTWAREKhronosVulkanImplicitLayers
mov rcx, 0xffffffff80000002
call fcn.140003540
test eax, eax
je 0x14000436f
lea rax, [rsp + 0x5c]
or ebx, 0x20006
mov qword [rsp + 0x40], rax
lea rdx, str.SOFTWAREKhronosVulkanImplicitLayers
lea rax, [rsp + 0x50]
xor r9d, r9d
mov qword [rsp + 0x38], rax
xor r8d, r8d
mov qword [rsp + 0x30], rsi
mov rcx, 0xffffffff80000002
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], esi
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x14000435f
mov rcx, qword [rsp + 0x50]
lea rax, [rsp + 0x58]
mov dword [rsp + 0x28], 4
lea rdx, [rsp + 0x60]
mov r9d, 4
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov dword [rsp + 0x58], esi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x14000436f
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, qword [rbp + 0x170]
xor rcx, rsp
call fcn.1400890e0
lea r11, [rsp + 0x280]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret