Function at 0x1000e000
Capabilities:
Query environment variable

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov r13d, dword [0x1000f090]
mov qword [rsp + 0xa0], rcx
cmp r13d, 0xffffffff
je 0x1000e0c8
sub r13d, 1
js 0x1000e082
mov rax, qword [rsp + 0xa0]
mov r12, qword [0x10017128]
xor r14d, r14d
mov rdi, qword [sym.imp.ucrtbase.dll_strcmp]
lea rbp, [rax + 1]
jmp 0x1000e059
lea r14d, [rsi + 1]
cmp r14d, r13d
jg 0x1000e082
lea esi, [r13 + r14]
mov rcx, rbp
sar esi, 1
movsxd rbx, esi
shl rbx, 4
add rbx, r12
lea rdx, [rbx + 1]
call rdi
test eax, eax
je 0x1000e0c0
jns 0x1000e050
lea r13d, [rsi - 1]
cmp r14d, r13d
jle 0x1000e059
mov rdi, qword [rsp + 0xa0]
movzx eax, byte [0x1000f094]
cmp byte [rdi], 0
js 0x1000e0b0
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdi, qword [rsp + 0xa0]
mov byte [rdi], al
jmp 0x1000e096
movzx eax, byte [rbx]
jmp 0x1000e096
lea rcx, str.WINEDEBUG
call qword [sym.imp.ucrtbase.dll_getenv]
mov dword [0x1000f090], 0
mov rcx, rax
test rax, rax
je 0x1000e082
call qword [sym.imp.ucrtbase.dll__strdup]
mov qword [rsp + 0x28], rax
test rax, rax
je 0x1000e21a
mov r15, qword [rsp + 0x28]
mov edx, 0x2c
mov rcx, r15
xor ebp, ebp
call qword [sym.imp.ucrtbase.dll_strchr]
test rax, rax
je 0x1000e11c
mov byte [rax], 0
lea rbp, [rax + 1]
lea rdx, [0x10013abe]
mov rcx, r15
call qword [sym.imp.ucrtbase.dll_strcspn]
lea r13, [r15 + rax]
mov rbx, rax
movzx esi, byte [r13]
test sil, sil
je 0x1000e1b8
cmp r13, r15
jbe 0x1000e250
mov eax, 5
mov r12, qword [sym.imp.ucrtbase.dll_strlen]
xor r14d, r14d
cdqe
cmp rax, rbx
jne 0x1000e17a
lea rax, str.fixme
mov r8, rbx
mov rcx, r15
mov rdx, qword [rax + r14*8]
call sym.memcmp
test eax, eax
je 0x1000e39e
add r14, 1
cmp r14, 4
je 0x1000e1a8
lea rax, str.fixme
mov rcx, qword [rax + r14*8]
call r12
cdqe
cmp rax, rbx
je 0x1000e15c
add r14, 1
cmp r14, 4
jne 0x1000e184
nop dword [rax + rax]
test rbp, rbp
je 0x1000e20f
mov r15, rbp
jmp 0x1000e100
movzx esi, byte [r15]
cmp sil, 0x2d
je 0x1000e230
lea ebx, [rsi - 0x2b]
and ebx, 0xfd
je 0x1000e2f0
mov r12d, 0xffffffff
xor ebx, ebx
test sil, sil
je 0x1000e1a8
mov ecx, 4
mov rsi, r15
lea rdi, [0x10013ac1]
repe cmpsb byte [rsi], byte [rdi]
seta al
sbb al, 0
test al, al
jne 0x1000e260
not ebx
and bl, byte [0x1000f094]
or r12d, ebx
mov byte [0x1000f094], r12b
test rbp, rbp
jne 0x1000e1ad
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.ucrtbase.dll_free]
mov r13d, dword [0x1000f090]
jmp 0x1000e029
mov ebx, 0xffffffff
xor r12d, r12d
mov r13, r15
movzx esi, byte [r13 + 1]
lea r15, [r13 + 1]
jmp 0x1000e1d9
mov r15, r13
jmp 0x1000e1bc
mov rcx, r15
call qword [sym.imp.ucrtbase.dll_strlen]
mov qword [rsp + 0x30], rax
cmp rax, 0xe
ja 0x1000e1a8
mov eax, dword [0x1000f090]
mov rcx, qword [0x10017128]
mov dword [rsp + 0x48], eax
sub eax, 1
mov qword [rsp + 0x38], rcx
mov edi, eax
js 0x1000e4b7
mov rax, qword [sym.imp.ucrtbase.dll_strcmp]
xor r14d, r14d
mov qword [rsp + 0x40], rbp
mov byte [rsp + 0x4f], bl
mov ebp, r14d
mov ebx, edi
mov rdi, rcx
mov r14, rax
jmp 0x1000e2c8
lea ebp, [r13 + 1]
cmp ebp, ebx
jg 0x1000e317
lea r13d, [rbx + rbp]
mov rcx, r15
sar r13d, 1
movsxd rsi, r13d
shl rsi, 4
add rsi, rdi
lea rdx, [rsi + 1]
call r14
test eax, eax
je 0x1000e2fe
jns 0x1000e2c0
lea ebx, [r13 - 1]
jmp 0x1000e2c4
mov r13, r15
mov r12d, 0xffffffff
jmp 0x1000e23b
movzx ebx, byte [rsp + 0x4f]
mov rbp, qword [rsp + 0x40]
not ebx
and bl, byte [rsi]
or r12d, ebx
mov byte [rsi], r12b
jmp 0x1000e1a8
movsxd r13, ebp
movzx ebx, byte [rsp + 0x4f]
mov rbp, qword [rsp + 0x40]
mov rsi, r13
mov r14, r13
shl rsi, 4
mov eax, dword [0x10017130]
cmp dword [rsp + 0x48], eax
jge 0x1000e448
add rsi, qword [rsp + 0x38]
cmp r14d, dword [rsp + 0x48]
jl 0x1000e41e
mov rax, qword [rsp + 0x30]
lea rdx, [rsi + 1]
add rax, 1
cmp eax, 8
jae 0x1000e3d4
test al, 4
jne 0x1000e4d3
test eax, eax
je 0x1000e37b
movzx ecx, byte [r15]
mov byte [rsi + 1], cl
test al, 2
jne 0x1000e4e9
mov r14d, dword [rsp + 0x48]
not ebx
and bl, byte [0x1000f094]
or r12d, ebx
add r14d, 1
mov byte [rsi], r12b
mov dword [0x1000f090], r14d
jmp 0x1000e1a8
mov r12d, 1
mov ecx, r14d
shl r12d, cl
mov ebx, r12d
cmp sil, 0x2b
je 0x1000e4ad
sub esi, 0x2b
and esi, 0xfd
mov r12d, esi
je 0x1000e23b
mov r15, r13
xor r12d, r12d
jmp 0x1000e1de
mov rcx, qword [r15]
lea r9, [rsi + 9]
and r9, 0xfffffffffffffff8
mov qword [rsi + 1], rcx
mov ecx, eax
mov r8, qword [r15 + rcx - 8]
mov qword [rdx + rcx - 8], r8
sub rdx, r9
add eax, edx
sub r15, rdx
and eax, 0xfffffff8
cmp eax, 8
jb 0x1000e37b
and eax, 0xfffffff8
xor edx, edx
mov ecx, edx
add edx, 8
mov r8, qword [r15 + rcx]
mov qword [r9 + rcx], r8
cmp edx, eax
jb 0x1000e408
jmp 0x1000e37b
mov r8d, dword [rsp + 0x48]
lea rcx, [r13 + 1]
mov rdx, rsi
shl rcx, 4
add rcx, qword [rsp + 0x38]
sub r8d, r14d
movsxd r8, r8d
shl r8, 4
call qword [sym.imp.ucrtbase.dll_memmove]
jmp 0x1000e34e
add eax, eax
mov edx, 0x10
cmp eax, 0x10
cmovl eax, edx
mov dword [0x10017130], eax
cdqe
shl rax, 4
mov r8, rax
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
cmp qword [rsp + 0x38], 0
mov rcx, qword [rax + 0x30]
je 0x1000e4c4
mov r9, r8
xor edx, edx
mov r8, qword [rsp + 0x38]
call qword [sym.imp.kernel32.dll_HeapReAlloc]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x38]
mov qword [0x10017128], rax
mov eax, dword [0x1000f090]
mov dword [rsp + 0x48], eax
jmp 0x1000e33e
mov r15, r13
xor ebx, ebx
jmp 0x1000e238
xor esi, esi
xor r13d, r13d
xor r14d, r14d
jmp 0x1000e32e
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
mov qword [rsp + 0x38], rax
jmp 0x1000e492
mov ecx, dword [r15]
mov dword [rsi + 1], ecx
mov ecx, eax
mov eax, dword [r15 + rcx - 4]
mov dword [rdx + rcx - 4], eax
jmp 0x1000e37b
mov ecx, eax
movzx eax, word [r15 + rcx - 2]
mov word [rdx + rcx - 2], ax
jmp 0x1000e37b