Function at 0x14004bfd0
Capabilities:
Create directory
Query environment variable
Set file attributes

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x40
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov r12, rdx
mov rsi, rcx
xor ebp, ebp
mov dword [rsp + 0x30], ebp
xor eax, eax
mov qword [rcx], rax
call fcn.140015220
mov rdi, rax
test rax, rax
je 0x14004c28d
mov rax, qword [rax]
mov rbx, qword [rax + 0x18]
mov rcx, rbx
call qword [fcn.14000dba0]
mov rcx, rdi
call rbx
add rax, 0x18
mov qword [rsi], rax
lea rcx, [rax - 0x18]
mov rdi, qword [rcx]
cmp dword [rcx + 8], ebp
je 0x14004c075
cmp dword [rcx + 0x10], ebp
jge 0x14004c054
cmp dword [rax - 0xc], ebp
jl 0x14004c298
mov dword [rax - 0x10], ebp
mov rax, qword [rsi]
mov word [rax], bp
jmp 0x14004c075
call fcn.14001a8a0
mov rax, qword [rdi]
mov rbx, qword [rax + 0x18]
mov rcx, rbx
call qword [fcn.14000dba0]
mov rcx, rdi
call rbx
add rax, 0x18
mov qword [rsi], rax
mov dword [rsp + 0x30], 1
mov ecx, 0x400
call fcn.14004e500
mov r14, rax
mov rbp, 0xffffffffffffffff
test rax, rax
je 0x14004c24f
mov r8d, 0x200
mov rdx, rax
lea rcx, str._LOCALAPPDATA_
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
mov rcx, rbp
inc rcx
cmp word [r14 + rcx*2], 0
jne 0x14004c0b3
mov r8d, ecx
mov rdx, r14
mov rcx, rsi
call fcn.14001b050
mov rax, qword [rsi]
cmp dword [rax - 0x10], 0
jle 0x14004c246
lea r15, [0x14009a8f8]
mov rax, rbp
inc rax
cmp word [r15 + rax*2], 0
jne 0x14004c0e3
mov r8d, eax
mov rdx, r15
mov rcx, rsi
call fcn.140020250
lea rdx, str.Intel
mov rax, rbp
inc rax
cmp word [rdx + rax*2], 0
jne 0x14004c106
mov r8d, eax
mov rcx, rsi
call fcn.140020250
xor edx, edx
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
nop
xor eax, eax
mov qword [rsp + 0x90], rax
mov rax, qword [r12]
mov rdi, qword [rax - 0x18]
test rdi, rdi
je 0x14004c15b
mov rax, qword [rdi]
mov rbx, qword [rax + 0x20]
mov rcx, rbx
call qword [fcn.14000dba0]
mov rcx, rdi
call rbx
mov rdi, rax
test rax, rax
jne 0x14004c17b
call fcn.140015220
mov rdi, rax
mov rcx, qword [rax]
mov rbx, qword [rcx + 0x20]
mov rcx, rbx
call qword [fcn.14000dba0]
mov rcx, rdi
call rbx
mov rdi, rax
test rdi, rdi
je 0x14004c2a3
mov rax, qword [rdi]
mov rbx, qword [rax + 0x18]
mov rcx, rbx
call qword [fcn.14000dba0]
mov rcx, rdi
call rbx
add rax, 0x18
mov qword [rsp + 0x90], rax
mov dword [rsp + 0x30], 3
mov r9, qword [r12]
mov ecx, dword [r9 - 0x10]
mov rax, rbp
nop dword [rax + rax]
inc rax
cmp word [r15 + rax*2], 0
jne 0x14004c1c0
mov dword [rsp + 0x20], ecx
mov r8d, eax
mov rdx, r15
lea rcx, [rsp + 0x90]
call fcn.14001e110
mov rbx, qword [rsp + 0x90]
mov r8d, dword [rbx - 0x10]
mov rdx, rbx
mov rcx, rsi
call fcn.140020250
mov dword [rsp + 0x30], 1
lea r15, [rbx - 0x18]
mov eax, ebp
lock xadd dword [r15 + 0x10], eax
sub eax, 1
jg 0x14004c22d
mov rdi, qword [r15]
mov rax, qword [rdi]
mov rbx, qword [rax + 8]
mov rcx, rbx
call qword [fcn.14000dba0]
mov rdx, r15
mov rcx, rdi
call rbx
xor edx, edx
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov edx, 6
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov rcx, r14
call fcn.14004d92c
nop
mov r14, qword [r12]
lock xadd dword [r14 - 8], ebp
sub ebp, 1
jg 0x14004c27b
mov rdi, qword [r14 - 0x18]
mov rax, qword [rdi]
mov rbx, qword [rax + 8]
mov rcx, rbx
call qword [fcn.14000dba0]
lea rdx, [r14 - 0x18]
mov rcx, rdi
call rbx
mov rax, rsi
add rsp, 0x40
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov ecx, 0x80004005
call fcn.140012af0
nop
mov ecx, 0x80070057
call fcn.140012af0
nop
mov ecx, 0x80004005
call fcn.140012af0
int3