Function at 0x14006bc40
Capabilities:
Query environment variable

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xc8
mov qword [rsp + 0x68], 0xfffffffffffffffe
mov rax, qword [0x140197b10]
xor rax, rsp
mov qword [rsp + 0xb0], rax
mov r15d, r9d
mov dword [rsp + 0x20], r9d
mov r13, r8
mov qword [rsp + 0x40], r8
mov rbp, rdx
mov rbx, rcx
mov qword [rsp + 0x48], rcx
lea rdi, [0x14019cf50]
mov qword [rsp + 0x60], rdi
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
test r15d, r15d
sets cl
mov byte [rsp + 0x30], cl
movzx r12d, byte [rsp + 0x130]
movzx eax, r12b
and al, 0x40
movzx edx, byte [rbx + 0xf]
and dl, 0x11
mov byte [rsp + 0x31], dl
test cl, cl
jne 0x14006bccc
test al, al
je 0x14006bcd2
xor dl, dl
mov byte [rsp + 0x31], dl
and r12b, 1
mov byte [rsp + 0x130], r12b
mov eax, 0x50
mov dword [rsp + 0x54], eax
mov edx, eax
lea rcx, [rsp + 0x58]
call fcn.140063580
nop
cmp r15d, 0x400
jge 0x14006bd13
mov r15d, 0x400
mov dword [rsp + 0x20], r15d
mov edx, r15d
mov rcx, r13
call fcn.1400635c0
mov r9, qword [r13]
mov qword [rsp + 0x28], r9
movsxd rax, r15d
lea r8, [r9 + rax*2 - 2]
mov qword [rsp + 0x38], r8
lea r10, [r8 - 0x7e4]
mov rsi, r9
mov r11d, 0x25
xor r14d, r14d
mov rbx, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x48]
jmp 0x14006bdf2
mov r15d, dword [rsp + 0x20]
xor r14d, r14d
jmp 0x14006bdf2
mov r15d, dword [rsp + 0x20]
mov r13, qword [rsp + 0x40]
xor r14d, r14d
jmp 0x14006bdf2
mov r15d, dword [rsp + 0x20]
mov r13, qword [rsp + 0x40]
xor r14d, r14d
jmp 0x14006bdf2
mov r15d, dword [rsp + 0x20]
xor r14d, r14d
jmp 0x14006bdf2
mov r13, qword [rsp + 0x40]
mov r12b, byte [rsp + 0x130]
jmp 0x14006bdf2
mov r13, qword [rsp + 0x40]
mov r12b, byte [rsp + 0x130]
jmp 0x14006bdf2
mov r13, qword [rsp + 0x40]
mov r12b, byte [rsp + 0x130]
jmp 0x14006bdf2
mov r13, qword [rsp + 0x40]
xor r14d, r14d
jmp 0x14006bdf2
mov r13, qword [rsp + 0x40]
xor r14d, r14d
jmp 0x14006bdf2
mov r12b, byte [rsp + 0x130]
xor r14d, r14d
jmp 0x14006bdf2
mov r12b, byte [rsp + 0x130]
jmp 0x14006bdf2
mov r12b, byte [rsp + 0x130]
jmp 0x14006bdf2
mov r12b, byte [rsp + 0x130]
cmp rsi, r8
jae 0x14006c758
cmp word [rbp], 0
je 0x14006c758
mov rax, rsi
sub rax, r10
sar rax, 1
test eax, eax
js 0x14006be5a
sub rsi, r9
sar rsi, 1
add r15d, 0x400
mov dword [rsp + 0x20], r15d
mov edx, r15d
mov rcx, r13
call fcn.1400635c0
mov r9, qword [r13]
mov qword [rsp + 0x28], r9
movsxd rax, r15d
lea r8, [r9 + rax*2 - 2]
mov qword [rsp + 0x38], r8
lea r10, [r8 - 0x7e4]
movsxd rax, esi
lea rsi, [r9 + rax*2]
mov r11d, 0x25
cmp word [rbp], 0x25
je 0x14006be8e
mov ecx, 0x3dd
movzx eax, word [rbp]
test ax, ax
je 0x14006bdf2
cmp r11w, ax
je 0x14006bdf2
mov word [rsi], ax
add rsi, 2
add rbp, 2
sub ecx, 1
jns 0x14006be66
jmp 0x14006bdf2
mov r14, rbp
test r12b, r12b
je 0x14006c218
lea rdx, [rbp + 2]
movzx ecx, word [rdx]
cmp cx, 0x25
jne 0x14006bebb
mov word [rsi], r11w
add rsi, 2
add rbp, 4
xor r14d, r14d
jmp 0x14006bdf2
cmp cx, 0x23
jne 0x14006bf08
add rbp, 4
mov rcx, qword [rdi + 0x50]
test rcx, rcx
mov r14d, 0
je 0x14006bdf2
movsxd rax, dword [rdi + 0x4c]
mov rcx, qword [rcx + rax*8 + 0x10]
movzx eax, word [rcx]
test ax, ax
je 0x14006bdf2
nop dword [rax]
mov word [rsi], ax
add rsi, 2
add rcx, 2
mov ax, word [rcx]
test ax, ax
jne 0x14006bef0
jmp 0x14006bdf2
cmp cx, 0x2a
jne 0x14006bfe1
add rbp, 4
mov rcx, qword [rdi + 0x50]
test rcx, rcx
mov r14d, 0
je 0x14006bdf2
movsxd rax, dword [rdi + 0x4c]
mov rcx, qword [rcx + rax*8]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r12d, eax
add eax, 2
movsxd rcx, eax
add rcx, rcx
mov r8, qword [rsp + 0x38]
sub rcx, r8
add rcx, rsi
sar rcx, 1
test ecx, ecx
js 0x14006bf98
sub rsi, qword [rsp + 0x28]
sar rsi, 1
lea r15d, [r15 + r12 + 0x10]
mov dword [rsp + 0x20], r15d
mov edx, r15d
mov rcx, r13
call fcn.1400635c0
mov r9, qword [r13]
mov qword [rsp + 0x28], r9
movsxd rax, r15d
lea r8, [r9 + rax*2 - 2]
mov qword [rsp + 0x38], r8
lea r10, [r8 - 0x7e4]
movsxd rax, esi
lea rsi, [r9 + rax*2]
jmp 0x14006bfa4
mov r9, qword [rsp + 0x28]
lea r10, [r8 - 0x7e4]
movsxd rcx, dword [rdi + 0x4c]
mov rax, qword [rdi + 0x50]
mov rdx, qword [rax + rcx*8]
sub r12d, 1
mov r11d, 0x25
js 0x14006bdea
movzx eax, word [rdx]
mov word [rsi], ax
add rsi, 2
add rdx, 2
sub r12d, 1
jns 0x14006bfc0
mov r12b, byte [rsp + 0x130]
jmp 0x14006bdf2
cmp cx, 0x40
jne 0x14006c0c1
add rbp, 4
mov rcx, qword [rdi + 0x50]
test rcx, rcx
mov r14d, 0
je 0x14006bdf2
movsxd rax, dword [rdi + 0x4c]
mov rcx, qword [rcx + rax*8 + 8]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r12d, eax
add eax, 2
movsxd rcx, eax
add rcx, rcx
mov r8, qword [rsp + 0x38]
sub rcx, r8
add rcx, rsi
sar rcx, 1
test ecx, ecx
js 0x14006c072
sub rsi, qword [rsp + 0x28]
sar rsi, 1
lea r15d, [r15 + r12 + 0x10]
mov dword [rsp + 0x20], r15d
mov edx, r15d
mov rcx, r13
call fcn.1400635c0
mov r9, qword [r13]
mov qword [rsp + 0x28], r9
movsxd rax, r15d
lea r8, [r9 + rax*2 - 2]
mov qword [rsp + 0x38], r8
lea r10, [r8 - 0x7e4]
movsxd rax, esi
lea rsi, [r9 + rax*2]
jmp 0x14006c07e
mov r9, qword [rsp + 0x28]
lea r10, [r8 - 0x7e4]
movsxd rcx, dword [rdi + 0x4c]
mov rax, qword [rdi + 0x50]
mov rdx, qword [rax + rcx*8 + 8]
sub r12d, 1
mov r11d, 0x25
js 0x14006bde0
nop dword [rax + rax]
movzx eax, word [rdx]
mov word [rsi], ax
add rsi, 2
add rdx, 2
sub r12d, 1
jns 0x14006c0a0
mov r12b, byte [rsp + 0x130]
jmp 0x14006bdf2
lea eax, [rcx - 0x30]
cmp ax, 9
jbe 0x14006c0e6
cmp cx, 0x7e
jb 0x14006c218
movzx eax, word [rbp + 4]
sub ax, 0x30
cmp ax, 9
ja 0x14006c218
xor eax, eax
mov r14d, eax
cmp cx, 0x7e
jb 0x14006c0f7
mov r14d, r11d
mov rbp, rdx
add rbp, 2
mov r13, rax
nop
movzx edx, word [rbp]
lea eax, [rdx - 0x30]
cmp ax, 9
ja 0x14006c120
lea rcx, [r13 + r13*4]
movzx eax, dx
lea r13, [rax + rcx*2 - 0x30]
add rbp, 2
jmp 0x14006c100
movsxd rax, dword [rdi + 0x4c]
cmp r13, rax
jae 0x14006bdbf
mov rax, qword [rdi + 0x50]
test rax, rax
je 0x14006bdb5
mov r13, qword [rax + r13*8]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd r12, eax
test r14d, r14d
je 0x14006c16a
cmp word [r13], 0x22
jne 0x14006c16a
cmp word [r13 + r12*2 - 2], 0x22
jne 0x14006c163
dec r12d
dec r12d
add r13, 2
lea eax, [r12 + 2]
movsxd rcx, eax
add rcx, rcx
mov r8, qword [rsp + 0x38]
sub rcx, r8
add rcx, rsi
sar rcx, 1
test ecx, ecx
js 0x14006c1ce
sub rsi, qword [rsp + 0x28]
sar rsi, 1
lea r15d, [r15 + r12 + 0x10]
mov dword [rsp + 0x20], r15d
mov edx, r15d
mov r14, qword [rsp + 0x40]
mov rcx, r14
call fcn.1400635c0
mov r9, qword [r14]
mov qword [rsp + 0x28], r9
movsxd rax, r15d
lea r8, [r9 + rax*2 - 2]
mov qword [rsp + 0x38], r8
lea r10, [r8 - 0x7e4]
movsxd rax, esi
lea rsi, [r9 + rax*2]
jmp 0x14006c1da
mov r9, qword [rsp + 0x28]
lea r10, [r8 - 0x7e4]
sub r12d, 1
mov r11d, 0x25
lea r14d, [r11 - 0x25]
js 0x14006bda6
nop
movzx eax, word [r13]
mov word [rsi], ax
add rsi, 2
add r13, 2
sub r12d, 1
jns 0x14006c1f0
mov r13, qword [rsp + 0x40]
mov r12b, byte [rsp + 0x130]
jmp 0x14006bdf2
mov r8d, 8
lea rdx, str._RANDOM_
mov rcx, rbp
call qword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x14006c321
add rbp, 0x10
xor r14d, r14d
mov word [rsp + 0x70], r14w
call fcn.14005d820
movabs rdx, 0x7fffffffffffffff
and rdx, rax
lea rcx, [rsp + 0x70]
call fcn.140062c80
mov word [rsp + 0xae], r14w
lea rcx, [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r12d, eax
cmp eax, 1
cmovl r12d, r14d
lea eax, [r12 + 2]
movsxd rcx, eax
add rcx, rcx
mov r8, qword [rsp + 0x38]
sub rcx, r8
add rcx, rsi
sar rcx, 1
test ecx, ecx
js 0x14006c2dd
sub rsi, qword [rsp + 0x28]
sar rsi, 1
lea r15d, [r15 + r12 + 0x10]
mov dword [rsp + 0x20], r15d
mov edx, r15d
mov rcx, r13
call fcn.1400635c0
mov r9, qword [r13]
mov qword [rsp + 0x28], r9
movsxd rax, r15d
lea r8, [r9 + rax*2 - 2]
mov qword [rsp + 0x38], r8
lea r10, [r8 - 0x7e4]
movsxd rax, esi
lea rsi, [r9 + rax*2]
jmp 0x14006c2e9
mov r9, qword [rsp + 0x28]
lea r10, [r8 - 0x7e4]
lea rcx, [rsp + 0x70]
sub r12d, 1
mov r11d, 0x25
js 0x14006bdd6
nop
movzx eax, word [rcx]
mov word [rsi], ax
add rsi, 2
add rcx, 2
sub r12d, 1
jns 0x14006c300
mov r12b, byte [rsp + 0x130]
jmp 0x14006bdf2
add rbp, 2
mov qword [rsp + 0x48], rbp
movzx eax, word [rbp]
test ax, ax
je 0x14006c369
mov ecx, 0x20
lea edx, [rcx - 0x17]
nop dword [rax + rax]
cmp ax, 0x25
je 0x14006c369
cmp ax, 0x3d
je 0x14006c369
cmp dx, ax
ja 0x14006c357
cmp ax, 0xd
jbe 0x14006c369
cmp cx, ax
je 0x14006c369
add rbp, 2
mov ax, word [rbp]
test ax, ax
jne 0x14006c340
mov r15, rbp
mov r12, rbp
sub r12, r14
sar r12, 1
xor r13b, r13b
movsx ecx, byte [rsp + 0x31]
mov eax, ecx
mov dword [rsp + 0x50], ecx
cmp word [rbp], 0x25
je 0x14006c445
lea eax, [r12 + 2]
movsxd rcx, eax
add rcx, rcx
mov r8, qword [rsp + 0x38]
sub rcx, r8
add rcx, rsi
sar rcx, 1
test ecx, ecx
js 0x14006c3f8
sub rsi, qword [rsp + 0x28]
sar rsi, 1
mov r15d, dword [rsp + 0x20]
lea r15d, [r15 + r12 + 0x10]
mov dword [rsp + 0x20], r15d
mov edx, r15d
mov r13, qword [rsp + 0x40]
mov rcx, r13
call fcn.1400635c0
mov r9, qword [r13]
mov qword [rsp + 0x28], r9
movsxd rax, r15d
lea r8, [r9 + rax*2 - 2]
mov qword [rsp + 0x38], r8
lea r10, [r8 - 0x7e4]
movsxd rax, esi
lea rsi, [r9 + rax*2]
jmp 0x14006c40e
mov r15d, dword [rsp + 0x20]
mov r9, qword [rsp + 0x28]
mov r13, qword [rsp + 0x40]
lea r10, [r8 - 0x7e4]
sub r12d, 1
mov r11d, 0x25
js 0x14006bdc9
nop
movzx eax, word [r14]
mov word [rsi], ax
add rsi, 2
add r14, 2
sub r12d, 1
jns 0x14006c420
mov r12b, byte [rsp + 0x130]
xor r14d, r14d
jmp 0x14006bdf2
cmp byte [rsp + 0x30], 0
jne 0x14006c494
mov r14, qword [rsp + 0x48]
movzx eax, word [r14]
cmp ax, 0x26
je 0x14006c469
test cl, cl
je 0x14006c499
mov ecx, 0x5e
cmp cx, ax
je 0x14006c499
add rbp, 2
mov rax, r14
mov qword [rsp + 0x48], rax
cmp word [r14], 0x26
jne 0x14006c561
add r14, 2
mov r12d, 1
mov dword [rsp + 0x50], r12d
jmp 0x14006c566
mov r14, qword [rsp + 0x48]
add rbp, 2
mov eax, 0x5e
cmp ax, word [r14]
jne 0x14006c4af
add r14, 2
mov r13b, 8
mov qword [rsp + 0x48], r14
xor eax, eax
mov word [rbx], ax
mov word [r15], ax
mov r8d, dword [rsp + 0x54]
mov rdx, rbx
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov r12d, eax
test eax, eax
jle 0x14006c505
cmp word [rbx], 0
jne 0x14006c505
lea ebx, [rax + 0x64]
mov dword [rsp + 0x54], ebx
mov edx, ebx
lea rcx, [rsp + 0x58]
call fcn.1400635c0
mov r8d, ebx
mov rbx, qword [rsp + 0x58]
mov rdx, rbx
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov r12d, eax
mov r11d, 0x25
mov word [r15], r11w
cmp word [rbx], 0
jne 0x14006c698
test r13b, r13b
mov r8, qword [rsp + 0x38]
mov r9, qword [rsp + 0x28]
mov r13, qword [rsp + 0x40]
lea r10, [r8 - 0x7e4]
mov r12b, byte [rsp + 0x130]
jne 0x14006bd50
mov r13b, 1
cmp byte [rsp + 0x30], 0
lea r10, [r8 - 0x7e4]
jne 0x14006bd5d
mov rax, qword [rsp + 0x48]
mov r12d, dword [rsp + 0x50]
jmp 0x14006c566
mov r12d, dword [rsp + 0x50]
xor ecx, ecx
mov word [r15], cx
or r9d, 0xffffffff
xor r8d, r8d
mov rdx, rax
mov rcx, rdi
call fcn.1400307c0
mov r11d, 0x25
mov word [r15], r11w
test rax, rax
jne 0x14006c5cc
test r12d, r12d
mov r8, qword [rsp + 0x38]
mov r9, qword [rsp + 0x28]
lea r10, [r8 - 0x7e4]
mov r12b, byte [rsp + 0x130]
jne 0x14006bd6f
test r13b, r13b
mov r13, qword [rsp + 0x40]
lea r10, [r8 - 0x7e4]
jne 0x14006bd7e
mov r13b, 1
jmp 0x14006c4b4
mov r12, qword [rax]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r13d, eax
add eax, 2
movsxd rcx, eax
add rcx, rcx
mov r8, qword [rsp + 0x38]
sub rcx, r8
add rcx, rsi
sar rcx, 1
test ecx, ecx
js 0x14006c642
sub rsi, qword [rsp + 0x28]
sar rsi, 1
mov r15d, dword [rsp + 0x20]
lea r15d, [r15 + r13 + 0x10]
mov dword [rsp + 0x20], r15d
mov edx, r15d
mov r14, qword [rsp + 0x40]
mov rcx, r14
call fcn.1400635c0
mov r9, qword [r14]
mov qword [rsp + 0x28], r9
movsxd rax, r15d
lea r8, [r9 + rax*2 - 2]
mov qword [rsp + 0x38], r8
lea r10, [r8 - 0x7e4]
movsxd rax, esi
lea rsi, [r9 + rax*2]
jmp 0x14006c653
mov r15d, dword [rsp + 0x20]
mov r9, qword [rsp + 0x28]
lea r10, [r8 - 0x7e4]
sub r13d, 1
mov r11d, 0x25
lea r14d, [r11 - 0x25]
js 0x14006bd88
nop word [rax + rax]
movzx eax, word [r12]
mov word [rsi], ax
add rsi, 2
add r12, 2
sub r13d, 1
jns 0x14006c670
mov r13, qword [rsp + 0x40]
mov r12b, byte [rsp + 0x130]
jmp 0x14006bdf2
mov r13, rbx
lea eax, [r12 + 2]
movsxd rcx, eax
add rcx, rcx
mov r8, qword [rsp + 0x38]
sub rcx, r8
add rcx, rsi
sar rcx, 1
test ecx, ecx
js 0x14006c70a
sub rsi, qword [rsp + 0x28]
sar rsi, 1
mov r15d, dword [rsp + 0x20]
lea r15d, [r15 + r12 + 0x10]
mov dword [rsp + 0x20], r15d
mov edx, r15d
mov r14, qword [rsp + 0x40]
mov rcx, r14
call fcn.1400635c0
mov r9, qword [r14]
mov qword [rsp + 0x28], r9
movsxd rax, r15d
lea r8, [r9 + rax*2 - 2]
mov qword [rsp + 0x38], r8
lea r10, [r8 - 0x7e4]
movsxd rax, esi
lea rsi, [r9 + rax*2]
mov r11d, 0x25
jmp 0x14006c71b
mov r15d, dword [rsp + 0x20]
mov r9, qword [rsp + 0x28]
lea r10, [r8 - 0x7e4]
sub r12d, 1
mov r14d, 0
js 0x14006bd97
nop dword [rax + rax]
movzx eax, word [r13]
mov word [rsi], ax
add rsi, 2
add r13, 2
sub r12d, 1
jns 0x14006c730
mov r13, qword [rsp + 0x40]
mov r12b, byte [rsp + 0x130]
jmp 0x14006bdf2
mov word [rsi], r14w
sub rsi, r9
sar rsi, 1
lea edx, [rsi + 2]
mov rcx, r13
call fcn.1400635c0
nop
lea rcx, [rsp + 0x58]
call fcn.14005b520
nop
lea rcx, [0x14019cf50]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, esi
mov rcx, qword [rsp + 0xb0]
xor rcx, rsp
call fcn.14010bcc0
add rsp, 0xc8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret