Function at 0x6c1c20a0
Capabilities:
Query environment variable

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov r14d, dword [0x6c1c3070]
mov rbp, rcx
cmp r14d, 0xffffffff
je 0x6c1c2150
sub r14d, 1
js 0x6c1c2119
mov r13, qword [0x6c1cb148]
mov rdi, qword [sym.imp.ucrtbase.dll_strcmp]
lea r12, [rbp + 1]
xor r15d, r15d
jmp 0x6c1c20f1
lea r15d, [rsi + 1]
cmp r15d, r14d
jg 0x6c1c2119
lea esi, [r14 + r15]
mov rcx, r12
sar esi, 1
movsxd rbx, esi
shl rbx, 4
add rbx, r13
lea rdx, [rbx + 1]
call rdi
test eax, eax
je 0x6c1c2148
jns 0x6c1c20e8
lea r14d, [rsi - 1]
cmp r15d, r14d
jle 0x6c1c20f1
cmp byte [rbp], 0
movzx eax, byte [0x6c1c3074]
js 0x6c1c2140
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov byte [rbp], al
jmp 0x6c1c2126
movzx eax, byte [rbx]
jmp 0x6c1c2126
lea rcx, str.WINEDEBUG
call qword [sym.imp.ucrtbase.dll_getenv]
mov dword [0x6c1c3070], 0
mov rcx, rax
test rax, rax
je 0x6c1c2119
call qword [sym.imp.ucrtbase.dll__strdup]
mov qword [rsp + 0x20], rax
test rax, rax
je 0x6c1c2382
mov qword [rsp + 0x90], rbp
mov r12, qword [rsp + 0x20]
mov edx, 0x2c
mov rcx, r12
xor ebp, ebp
call qword [sym.imp.ucrtbase.dll_strchr]
test rax, rax
je 0x6c1c21ac
mov byte [rax], 0
lea rbp, [rax + 1]
lea rdx, [0x6c1c7d3e]
mov rcx, r12
call qword [sym.imp.ucrtbase.dll_strcspn]
lea r14, [r12 + rax]
mov rbx, rax
movzx esi, byte [r14]
test sil, sil
je 0x6c1c2258
cmp r14, r12
jbe 0x6c1c22d0
mov eax, 5
mov r13, qword [sym.imp.ucrtbase.dll_strlen]
xor r15d, r15d
cdqe
cmp rax, rbx
jne 0x6c1c220d
lea rax, str.fixme
mov r8, rbx
mov rcx, r12
mov rdx, qword [rax + r15*8]
call sym.memcmp
test eax, eax
je 0x6c1c240a
add r15, 1
cmp r15, 4
je 0x6c1c2240
lea rax, str.fixme
mov rcx, qword [rax + r15*8]
call r13
cdqe
cmp rax, rbx
je 0x6c1c21ef
add r15, 1
cmp r15, 4
jne 0x6c1c2217
nop word cs:[rax + rax]
test rbp, rbp
je 0x6c1c236f
mov r12, rbp
jmp 0x6c1c2190
movzx esi, byte [r12]
cmp sil, 0x2d
je 0x6c1c22b0
lea ebx, [rsi - 0x2b]
and ebx, 0xfd
je 0x6c1c22d8
mov r13d, 0xffffffff
xor ebx, ebx
test sil, sil
je 0x6c1c2240
mov ecx, 4
mov rsi, r12
lea rdi, [0x6c1c7d41]
repe cmpsb byte [rsi], byte [rdi]
seta al
sbb al, 0
test al, al
jne 0x6c1c22e8
not ebx
and bl, byte [0x6c1c3074]
or r13d, ebx
mov byte [0x6c1c3074], r13b
jmp 0x6c1c2240
mov ebx, 0xffffffff
xor r13d, r13d
mov r14, r12
movzx esi, byte [r14 + 1]
lea r12, [r14 + 1]
jmp 0x6c1c2276
mov r12, r14
jmp 0x6c1c225d
mov r14, r12
mov r13d, 0xffffffff
jmp 0x6c1c22bb
mov rcx, r12
call qword [sym.imp.ucrtbase.dll_strlen]
cmp rax, 0xe
ja 0x6c1c2240
mov eax, dword [0x6c1c3070]
mov rcx, qword [0x6c1cb148]
mov dword [rsp + 0x38], eax
sub eax, 1
mov qword [rsp + 0x28], rcx
mov edi, eax
js 0x6c1c24d9
mov rax, qword [sym.imp.ucrtbase.dll_strcmp]
xor r15d, r15d
mov qword [rsp + 0x30], rbp
mov byte [rsp + 0x3f], bl
mov ebp, r15d
mov ebx, edi
mov rdi, rcx
mov r15, rax
jmp 0x6c1c2348
lea ebp, [r14 + 1]
cmp ebp, ebx
jg 0x6c1c23a7
lea r14d, [rbx + rbp]
mov rcx, r12
sar r14d, 1
movsxd rsi, r14d
shl rsi, 4
add rsi, rdi
lea rdx, [rsi + 1]
call r15
test eax, eax
je 0x6c1c238e
jns 0x6c1c2340
lea ebx, [r14 - 1]
jmp 0x6c1c2344
mov rbp, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.ucrtbase.dll_free]
mov r14d, dword [0x6c1c3070]
jmp 0x6c1c20c4
movzx ebx, byte [rsp + 0x3f]
mov rbp, qword [rsp + 0x30]
not ebx
and bl, byte [rsi]
or r13d, ebx
mov byte [rsi], r13b
jmp 0x6c1c2240
movsxd r14, ebp
movzx ebx, byte [rsp + 0x3f]
mov rbp, qword [rsp + 0x30]
mov rsi, r14
mov r15, r14
shl rsi, 4
mov eax, dword [0x6c1cb150]
cmp dword [rsp + 0x38], eax
jge 0x6c1c246a
add rsi, qword [rsp + 0x28]
cmp r15d, dword [rsp + 0x38]
jl 0x6c1c2440
lea rcx, [rsi + 1]
mov rdx, r12
not ebx
call qword [sym.imp.ucrtbase.dll_strcpy]
mov r15d, dword [rsp + 0x38]
and bl, byte [0x6c1c3074]
or r13d, ebx
add r15d, 1
mov byte [rsi], r13b
mov dword [0x6c1c3070], r15d
jmp 0x6c1c2240
mov r13d, 1
mov ecx, r15d
shl r13d, cl
mov ebx, r13d
cmp sil, 0x2b
je 0x6c1c24cf
sub esi, 0x2b
and esi, 0xfd
mov r13d, esi
je 0x6c1c22bb
mov r12, r14
xor r13d, r13d
jmp 0x6c1c227b
mov r8d, dword [rsp + 0x38]
lea rcx, [r14 + 1]
mov rdx, rsi
shl rcx, 4
add rcx, qword [rsp + 0x28]
sub r8d, r15d
movsxd r8, r8d
shl r8, 4
call qword [sym.imp.ucrtbase.dll_memmove]
jmp 0x6c1c23da
add eax, eax
mov edx, 0x10
cmp eax, 0x10
cmovl eax, edx
mov dword [0x6c1cb150], eax
cdqe
shl rax, 4
mov r8, rax
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
cmp qword [rsp + 0x28], 0
mov rcx, qword [rax + 0x30]
je 0x6c1c24e6
mov r9, r8
xor edx, edx
mov r8, qword [rsp + 0x28]
call qword [sym.imp.kernel32.dll_HeapReAlloc]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
mov qword [0x6c1cb148], rax
mov eax, dword [0x6c1c3070]
mov dword [rsp + 0x38], eax
jmp 0x6c1c23ce
mov r12, r14
xor ebx, ebx
jmp 0x6c1c22b8
xor esi, esi
xor r14d, r14d
xor r15d, r15d
jmp 0x6c1c23be
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
mov qword [rsp + 0x28], rax
jmp 0x6c1c24b4