Function at 0x10003dca4
Capabilities:
Query environment variable
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x4f0
mov rax, qword [0x10004a110]
xor rax, rsp
mov qword [rsp + 0x4e0], rax
mov r12, rdx
mov rdi, rcx
lea rdx, [0x100022d80]
xor ebx, ebx
add rcx, 0x18
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x34], ebx
call fcn.10003fc68
cmp eax, ebx
jne 0x10003e015
lea rdx, [0x100001c50]
mov rcx, rdi
call fcn.10003fc68
cmp eax, ebx
jne 0x10003e015
mov rcx, qword [r12]
lea rax, [rsp + 0x34]
lea r9, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x40]
lea rdx, [0x100022d90]
mov r15d, 0x208
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x34], r15d
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp eax, ebx
jne 0x10003e015
cmp dword [rsp + 0x30], 1
jne 0x10003e015
lea rcx, [rdi + 0x20]
lea rdx, [rsp + 0x40]
mov word [rsp + 0x246], bx
call fcn.10003fc68
cmp eax, ebx
jne 0x10003e015
mov rcx, qword [r12]
lea rax, [rsp + 0x34]
lea r9, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x40]
lea rdx, [0x100022db0]
xor r8d, r8d
mov dword [rsp + 0x34], r15d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp eax, ebx
jne 0x10003e015
cmp dword [rsp + 0x30], 1
jne 0x10003e015
lea rcx, [rdi + 8]
lea rdx, [rsp + 0x40]
call fcn.10003fc68
cmp eax, ebx
jne 0x10003e015
mov rcx, qword [r12]
lea rax, [rsp + 0x34]
lea r9, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x40]
lea rdx, [0x100022dd0]
xor r8d, r8d
mov dword [rsp + 0x34], r15d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp eax, ebx
jne 0x10003e015
cmp dword [rsp + 0x30], 1
jne 0x10003e015
lea rcx, [rdi + 0x30]
lea rdx, [rsp + 0x40]
call fcn.10003fc68
cmp eax, ebx
jne 0x10003e015
mov rcx, qword [r12]
lea rax, [rsp + 0x34]
lea r9, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x40]
lea rdx, [0x10001edd0]
xor r8d, r8d
mov dword [rsp + 0x34], r15d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp eax, ebx
jne 0x10003e015
cmp dword [rsp + 0x30], 1
je 0x10003de7d
cmp dword [rsp + 0x30], 2
jne 0x10003e015
mov esi, 0x103
lea r9, [rsp + 0x40]
lea r8, [0x100022df0]
lea rcx, [0x10004cf80]
mov rdx, rsi
call fcn.10002e570
lea rdx, [0x10004cf80]
lea rcx, [rdi + 0x38]
call fcn.10003fc68
cmp eax, ebx
jne 0x10003e015
cmp dword [rsp + 0x30], 2
jne 0x10003ded6
mov rcx, qword [rdi + 0x38]
lea rdx, [rsp + 0x40]
mov r8d, esi
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
cmp eax, ebx
je 0x10003e015
lea r9, [rsp + 0x40]
lea r8, [0x100022dfc]
lea rcx, [0x10004d190]
mov rdx, rsi
call fcn.10002e570
mov rcx, qword [r12]
lea rax, [rsp + 0x34]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x40]
lea r9, [rsp + 0x30]
lea rdx, [0x100022e08]
xor r8d, r8d
mov dword [rsp + 0x34], r15d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp eax, ebx
jne 0x10003e015
cmp dword [rsp + 0x30], 1
jne 0x10003e015
mov r9, qword [rdi + 0x38]
lea rax, [rsp + 0x40]
mov r14d, 0x20
mov esi, 0x143
lea rcx, [rsp + 0x250]
lea r8, [0x10001e1f0]
mov qword [rsp + 0x20], rax
mov rdx, rsi
cmp r14w, word [rsp + 0x40]
je 0x10003df70
lea r8, [0x100022e20]
call fcn.10002e570
lea rcx, [rdi + 0x28]
lea rdx, [rsp + 0x250]
call fcn.10003fc68
cmp eax, ebx
jne 0x10003e015
mov rcx, qword [r12]
lea rax, [rsp + 0x34]
lea r9, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x40]
lea rdx, [0x100022e30]
xor r8d, r8d
mov dword [rsp + 0x34], r15d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp eax, ebx
jne 0x10003e010
cmp dword [rsp + 0x30], 1
jne 0x10003e010
mov r9, qword [rdi + 0x38]
lea rax, [rsp + 0x40]
mov rdx, rsi
lea rcx, [rsp + 0x250]
lea r8, [0x10001e1f0]
mov qword [rsp + 0x20], rax
cmp r14w, word [rsp + 0x40]
je 0x10003dffa
lea r8, [0x100022e20]
call fcn.10002e570
lea rcx, [rdi + 0x10]
lea rdx, [rsp + 0x250]
call fcn.10003fc68
mov ebx, 1
mov rcx, qword [r12]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, ebx
mov rcx, qword [rsp + 0x4e0]
xor rcx, rsp
call fcn.1000475f0
lea r11, [rsp + 0x4f0]
mov rbx, qword [r11 + 0x40]
mov rbp, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret