Function at 0x34b3815c0
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 esi, dword [0x34b3832c0]
mov r15, rcx
cmp esi, 0xffffffff
je 0x34b381670
dec esi
js 0x34b381637
mov r12, qword [0x34b393148]
mov rdi, qword [sym.imp.ucrtbase.dll_strcmp]
lea rbp, [r15 + 1]
xor r14d, r14d
jmp 0x34b381609
lea r14d, [rbx + 1]
cmp r14d, esi
jg 0x34b381637
lea eax, [rsi + r14]
mov rcx, rbp
mov ebx, eax
shr ebx, 0x1f
add ebx, eax
sar ebx, 1
movsxd r13, ebx
shl r13, 4
add r13, r12
lea rdx, [r13 + 1]
call rdi
test eax, eax
je 0x34b381660
jns 0x34b381600
lea esi, [rbx - 1]
cmp r14d, esi
jle 0x34b381609
cmp byte [r15], 0
movzx eax, byte [0x34b3832c4]
js 0x34b381658
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov byte [r15], al
jmp 0x34b381644
movzx eax, byte [r13]
jmp 0x34b381644
lea rcx, str.WINEDEBUG
call qword [sym.imp.ucrtbase.dll_getenv]
mov dword [0x34b3832c0], 0
mov rcx, rax
test rax, rax
je 0x34b381637
call qword [sym.imp.ucrtbase.dll__strdup]
mov qword [rsp + 0x20], rax
test rax, rax
je 0x34b38189e
mov qword [rsp + 0x90], r15
mov rbp, qword [rsp + 0x20]
mov edx, 0x2c
mov rcx, rbp
xor r12d, r12d
call qword [sym.imp.ucrtbase.dll_strchr]
test rax, rax
je 0x34b3816cd
mov byte [rax], 0
lea r12, [rax + 1]
lea rdx, [0x34b38c7b0]
mov rcx, rbp
call qword [sym.imp.ucrtbase.dll_strcspn]
lea r14, [rbp + rax]
mov rbx, rax
movzx esi, byte [r14]
test sil, sil
je 0x34b381768
cmp r14, rbp
jbe 0x34b3817e0
mov eax, 5
xor r15d, r15d
lea r13, str.fixme
cdqe
cmp rax, rbx
jne 0x34b381723
mov r8, rbx
mov rdx, r13
mov rcx, rbp
call sym.memcmp
test eax, eax
je 0x34b38191e
inc r15
cmp r15, 4
je 0x34b381750
lea rax, str.fixme
mov r13, qword [rax + r15*8]
mov rcx, r13
call qword [sym.imp.ucrtbase.dll_strlen]
cdqe
cmp rax, rbx
je 0x34b38170d
inc r15
cmp r15, 4
jne 0x34b38172c
test r12, r12
je 0x34b38188b
mov rbp, r12
jmp 0x34b3816b0
movzx esi, byte [rbp]
cmp sil, 0x2d
je 0x34b3817c0
lea ebx, [rsi - 0x2b]
and ebx, 0xfd
je 0x34b3817e8
mov r13d, 0xffffffff
xor ebx, ebx
test sil, sil
je 0x34b381750
mov ecx, 4
mov rsi, rbp
lea rdi, [0x34b38c7b3]
repe cmpsb byte [rsi], byte [rdi]
seta al
sbb al, 0
test al, al
jne 0x34b3817f8
not ebx
and bl, byte [0x34b3832c4]
or r13d, ebx
mov byte [0x34b3832c4], r13b
jmp 0x34b381750
mov ebx, 0xffffffff
xor r13d, r13d
mov r14, rbp
movzx esi, byte [r14 + 1]
lea rbp, [r14 + 1]
jmp 0x34b381785
mov rbp, r14
jmp 0x34b38176c
mov r14, rbp
mov r13d, 0xffffffff
jmp 0x34b3817cb
mov rcx, rbp
call qword [sym.imp.ucrtbase.dll_strlen]
cmp rax, 0xe
ja 0x34b381750
mov eax, dword [0x34b3832c0]
mov r14, qword [0x34b393148]
mov dword [rsp + 0x38], eax
dec eax
mov qword [rsp + 0x28], r14
mov edi, eax
js 0x34b3819f2
mov rax, qword [sym.imp.ucrtbase.dll_strcmp]
xor r15d, r15d
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x3f], bl
mov r12d, r15d
mov r15, rax
jmp 0x34b381859
lea r12d, [rbx + 1]
cmp r12d, edi
jg 0x34b3818c2
lea eax, [rdi + r12]
mov rcx, rbp
mov r8d, eax
shr r8d, 0x1f
add r8d, eax
mov ebx, r8d
sar ebx, 1
movsxd rsi, ebx
shl rsi, 4
add rsi, r14
lea rdx, [rsi + 1]
call r15
test eax, eax
je 0x34b3818a9
jns 0x34b381850
lea edi, [rbx - 1]
jmp 0x34b381854
mov r15, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.ucrtbase.dll_free]
mov esi, dword [0x34b3832c0]
jmp 0x34b3815e2
movzx ebx, byte [rsp + 0x3f]
mov r12, qword [rsp + 0x30]
not ebx
and bl, byte [rsi]
or r13d, ebx
mov byte [rsi], r13b
jmp 0x34b381750
movsxd rsi, r12d
movzx ebx, byte [rsp + 0x3f]
mov r12, qword [rsp + 0x30]
mov r15, rsi
shl rsi, 4
mov eax, dword [0x34b393150]
cmp dword [rsp + 0x38], eax
jge 0x34b381983
add rsi, qword [rsp + 0x28]
cmp r15d, dword [rsp + 0x38]
jl 0x34b381954
lea rcx, [rsi + 1]
mov rdx, rbp
not ebx
call qword [sym.imp.ucrtbase.dll_strcpy]
mov eax, dword [rsp + 0x38]
and bl, byte [0x34b3832c4]
or r13d, ebx
inc eax
mov byte [rsi], r13b
mov dword [0x34b3832c0], eax
jmp 0x34b381750
mov r13d, 1
mov ecx, r15d
shl r13d, cl
mov ebx, r13d
cmp sil, 0x2b
je 0x34b3819e8
sub esi, 0x2b
and esi, 0xfd
mov r13d, esi
je 0x34b3817cb
mov rbp, r14
xor r13d, r13d
jmp 0x34b38178a
mov r8d, dword [rsp + 0x38]
lea eax, [r15 + 1]
mov rcx, qword [rsp + 0x28]
mov rdx, rsi
cdqe
sub r8d, r15d
shl rax, 4
movsxd r8, r8d
add rcx, rax
shl r8, 4
call qword [sym.imp.ucrtbase.dll_memmove]
jmp 0x34b3818f2
add eax, eax
mov edx, 0x10
cmp eax, 0x10
cmovl eax, edx
mov dword [0x34b393150], 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 0x34b3819fc
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 [0x34b393148], rax
mov eax, dword [0x34b3832c0]
mov dword [rsp + 0x38], eax
jmp 0x34b3818e6
mov rbp, r14
xor ebx, ebx
jmp 0x34b3817c8
xor esi, esi
xor r15d, r15d
jmp 0x34b3818d6
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
mov qword [rsp + 0x28], rax
jmp 0x34b3819cd