Function at 0x140014f1b
Capabilities:
Query environment variable

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x528
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x4a0], 0xfffffffffffffffe
mov byte [rbp + 0x49f], r9b
mov qword [rbp + 0x408], rcx
mov qword [rbp + 0x410], rdx
mov qword [rbp + 0x430], r8
lock inc qword [0x1400211d0]
jle 0x140015af4
mov eax, dword [0x140021248]
mov r8, qword gs:[0x58]
mov rax, qword [r8 + rax*8]
cmp byte [rax + 0x20], 0
jne 0x140015b6c
mov eax, dword [0x140021248]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
inc qword [rax + 0x18]
mov byte [rax + 0x20], 1
mov eax, dword [0x1400211b0]
cmp eax, 0x3ffffffd
ja 0x1400150e5
lea ecx, [rax + 1]
lock cmpxchg dword [0x1400211b0], ecx
jne 0x1400150e5
mov bl, byte [rbp + 0x510]
mov al, byte [0x1400211b8]
cmp qword [0x1400211c0], 0
jne 0x140015201
mov rdi, qword [rbp + 0x430]
mov r14, qword [rbp + 0x408]
mov r15, qword [rbp + 0x410]
mov rcx, r14
call qword [r15 + 0x28]
mov r12, rax
mov r13, rdx
mov sil, 3
test bl, bl
jne 0x140015045
mov eax, dword [0x140021248]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov sil, 1
cmp qword [rax + 0x18], 1
ja 0x140015045
mov sil, byte [0x1400211a8]
dec sil
cmp sil, 3
jae 0x1400152d7
mov eax, dword [0x1400211b0]
cmp eax, 0x3fffffff
jne 0x14001510d
push 0xffffffffffffff9d
pop rcx
pause
mov eax, dword [0x1400211b0]
cmp eax, 0x3fffffff
jne 0x14001510d
lea edx, [rcx + 1]
test ecx, ecx
mov ecx, edx
jne 0x1400150f5
push 0xffffffffffffff9d
pop rbx
lea rsi, [0x1400211b0]
lea rdi, [rbp - 0x50]
push 4
pop r14
push 0xffffffffffffffff
pop r15
mov r12, qword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_WaitOnAddress]
mov r13, qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
and ecx, 0x3fffffff
cmp ecx, 0x3ffffffe
setb dl
cmp eax, 0x40000000
setb r8b
test r8b, dl
je 0x140015162
lea ecx, [rax + 1]
lock cmpxchg dword [0x1400211b0], ecx
jne 0x140015131
jmp 0x140014fce
cmp ecx, 0x3ffffffe
je 0x1400151d0
bt eax, 0x1e
jb 0x140015184
mov ecx, eax
or ecx, 0x40000000
lock cmpxchg dword [0x1400211b0], ecx
jne 0x140015131
jmp 0x140015186
mov ecx, eax
mov dword [rbp - 0x50], ecx
mov rcx, rsi
mov rdx, rdi
mov r8, r14
mov r9d, r15d
call r12
cmp eax, 1
je 0x1400151a0
call r13
mov eax, dword [0x1400211b0]
cmp eax, 0x3fffffff
jne 0x140015131
mov ecx, ebx
pause
mov eax, dword [0x1400211b0]
lea edx, [rcx + 1]
cmp eax, 0x3fffffff
jne 0x140015131
test ecx, ecx
mov ecx, edx
jne 0x1400151af
jmp 0x140015131
lea rax, str.too_many_active_read_locks_on_RwLock
lea rcx, [rbp - 0x50]
mov qword [rcx], rax
mov qword [rcx + 8], 1
mov qword [rcx + 0x10], 8
xorps xmm0, xmm0
movups xmmword [rcx + 0x18], xmm0
lea rdx, str.std_src_sys_sync_rwlock_futex.rs
call fcn.140017350
mov rsi, qword [rbp + 0x430]
mov r14, qword [rbp + 0x408]
mov r15, qword [rbp + 0x410]
mov rcx, r14
call qword [r15 + 0x28]
lea r8, [rbp - 0x50]
mov qword [r8], rax
mov qword [r8 + 8], rdx
mov qword [r8 + 0x10], rsi
mov al, byte [rbp + 0x49f]
mov byte [r8 + 0x18], al
mov byte [r8 + 0x19], bl
mov rcx, qword [0x1400211c0]
mov rax, qword [0x1400211c8]
mov rdx, r8
call qword [rax + 0x28]
mov al, byte [0x140021150]
push 0x1e
pop rcx
call fcn.140012bf0
test rax, rax
jne 0x140015304
push 2
pop rcx
push 0x1e
pop rdx
call fcn.14001720d
jmp 0x140015302
mov qword [rbp + 0x488], r13
mov qword [rbp + 0x480], rdi
mov qword [rbp + 0x478], r12
mov qword [rbp + 0x470], r15
mov qword [rbp + 0x468], r14
lea rcx, [rbp - 0x50]
mov qword [rcx], 0xf
mov qword [rcx + 8], rax
and qword [rcx + 0x10], 0
xor r13d, r13d
lea rsi, [0x14001b9a4]
push 0xe
pop rdi
push 0xffffffffffffffff
pop r14
xor r15d, r15d
xor ebx, ebx
test bx, bx
jne 0x1400153da
cmp r15, 0xe
je 0x14001548e
mov dl, byte [r15 + rsi]
movzx ebx, dl
test bl, bl
js 0x140015374
inc r15
jmp 0x1400153da
mov ecx, ebx
and ecx, 0x1f
movzx r8d, byte [r15 + rsi + 1]
and r8d, 0x3f
cmp bl, 0xdf
jbe 0x1400153bb
movzx ebx, byte [r15 + rsi + 2]
shl r8d, 6
and ebx, 0x3f
or ebx, r8d
cmp dl, 0xf0
jb 0x1400153c9
movzx edx, byte [r15 + rsi + 3]
add r15, 4
and ecx, 7
shl ecx, 0x12
shl ebx, 6
and edx, 0x3f
or edx, ebx
or edx, ecx
mov ebx, edx
jmp 0x1400153d2
add r15, 2
shl ecx, 6
or ecx, r8d
mov ebx, ecx
jmp 0x1400153da
add r15, 3
shl ecx, 0xc
or ebx, ecx
cmp ebx, 0xffff
ja 0x140015433
xor r12d, r12d
cmp r13, qword [rbp - 0x50]
jne 0x14001541f
mov r8, rdi
sub r8, r15
add r8, 3
cmovb r8, r14
shr r8, 2
cmp r12w, 1
sbb r8, 0
add r8, 2
mov qword [rsp + 0x20], 2
lea rcx, [rbp - 0x50]
mov rdx, r13
push 2
pop r9
call fcn.140017cc0
mov rax, qword [rbp - 0x48]
mov word [rax + r13*2], bx
inc r13
mov qword [rbp - 0x40], r13
mov ebx, r12d
jmp 0x140015351
lea ecx, [rbx + 0xff0000]
shr ecx, 0xa
or ecx, 0xd800
and ebx, 0x3ff
or ebx, 0xdc00
mov r12d, ebx
mov ebx, ecx
jmp 0x1400153dd
mov rcx, qword [rbp - 0x48]
mov rax, r13
mov rsi, rcx
cmp r13, 8
jb 0x1400154e9
mov rcx, rsi
mov rax, r13
cmp word [rcx], 0
je 0x140015502
cmp word [rcx + 2], 0
je 0x140015502
cmp word [rcx + 4], 0
je 0x140015502
cmp word [rcx + 6], 0
je 0x140015502
cmp word [rcx + 8], 0
je 0x140015502
cmp word [rcx + 0xa], 0
je 0x140015502
cmp word [rcx + 0xc], 0
je 0x140015502
cmp word [rcx + 0xe], 0
je 0x140015502
add rax, 0xfffffffffffffff8
add rcx, 0x10
cmp rax, 7
ja 0x1400154a4
add rax, rax
xor edx, edx
cmp rax, rdx
je 0x140015797
cmp word [rcx + rdx], 0
lea rdx, [rdx + 2]
jne 0x1400154ee
cmp qword [rbp - 0x50], 0
je 0x14001551d
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
xor edx, edx
mov r8, rsi
call qword [sym.imp.KERNEL32.dll_HeapFree]
lea rcx, [0x14001cd08]
mov r14, qword [rbp + 0x468]
mov r15, qword [rbp + 0x470]
mov r12, qword [rbp + 0x478]
mov rdi, qword [rbp + 0x480]
mov r13, qword [rbp + 0x488]
mov eax, ecx
and eax, 3
mov sil, 2
mov bl, 3
cmp eax, 1
jne 0x1400155b5
lea rax, [rcx - 1]
mov qword [rbp + 0x490], rax
mov rax, qword [rcx - 1]
mov qword [rbp + 0x460], rax
mov rax, qword [rcx + 7]
mov qword [rbp + 0x450], rax
mov rax, qword [rax]
mov eax, dword [rax]
mov rcx, qword [rbp - 0x50]
cmp r13, rcx
jne 0x1400157b8
lea rdx, str.std_src_syspalwindowsmod.rsstrings_passed_to_WinAPI_cannot_contain_NULs
lea rcx, [rbp - 0x50]
call fcn.140010d50
mov rcx, qword [rbp - 0x50]
mov rsi, qword [rbp - 0x48]
and word [rsi + r13*2], 0
mov r13, rsi
mov rax, rcx
neg rax
jno 0x1400157df
mov r14, qword [rbp + 0x468]
mov r15, qword [rbp + 0x470]
mov rcx, r13
jmp 0x140015532
mov qword [rbp + 0x400], rcx
lea rax, [rbp + 0x438]
and qword [rax], 0
mov qword [rax + 8], 2
and qword [rax + 0x10], 0
mov r8d, 0x200
mov qword [rbp + 0x460], 0
push 2
pop rax
mov qword [rbp + 0x490], rax
xor ebx, ebx
xor edi, edi
mov qword [rbp + 0x450], r13
cmp r8, 0x201
jae 0x14001583b
mov esi, 0x200
lea r15, [rbp - 0x50]
mov r14, r8
jmp 0x1400158b1
sub r8, rdi
sub rbx, rdi
cmp rbx, r8
jae 0x140015885
mov qword [rsp + 0x20], 2
lea rcx, [rbp + 0x438]
mov rdx, rdi
push 2
pop r9
call fcn.140017cc0
mov rax, qword [rbp + 0x438]
mov qword [rbp + 0x460], rax
mov rax, qword [rbp + 0x440]
mov qword [rbp + 0x490], rax
mov r13, qword [rbp + 0x450]
mov eax, 0xffffffff
mov rbx, qword [rbp + 0x460]
cmp rbx, rax
mov edi, 0xffffffff
cmovb rdi, rbx
mov qword [rbp + 0x448], rdi
mov rsi, rdi
mov r15, qword [rbp + 0x490]
mov r14, rdi
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov r12, r13
mov rcx, r13
mov rdx, r15
mov r8d, r14d
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov r13d, eax
test eax, eax
jne 0x1400158dc
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x140015950
mov r8d, r13d
cmp r14, r8
jne 0x140015909
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x140015935
mov r13, r12
add r14, r14
mov eax, 0xffffffff
cmp r14, rax
cmovae r14, rax
mov r8, r14
jmp 0x140015824
mov r13, r12
jb 0x140015824
cmp rsi, r8
jae 0x140015a33
lea rax, str.std_src_syspalwindowsmod.rsstrings_passed_to_WinAPI_cannot_contain_NULs
mov rcx, r8
mov rdx, rsi
mov r8, rax
call fcn.140017380
jmp 0x140015302
lea rcx, str.internal_error:_entered_unreachable_code_rustc_f2a35426b6586178c44b27cedae182502092e898library_alloc_src_vecmod.rs
lea r8, str.std_src_syspalwindowsmod.rsstrings_passed_to_WinAPI_cannot_contain_NULs
push 0x28
pop rdx
call fcn.140017390
jmp 0x140015302
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r15d, eax
shl r15, 0x20
cmp qword [rbp + 0x438], 0
je 0x140015976
mov rcx, qword [rbp + 0x440]
push 2
pop rdx
call fcn.140002310
or r15, 2
mov eax, r15d
and eax, 3
movabs rdi, 0x8000000000000000
cmp eax, 1
jne 0x1400159f5
lea rax, [r15 - 1]
mov qword [rbp + 0x460], rax
mov rax, qword [r15 - 1]
mov qword [rbp + 0x418], rax
mov rax, qword [r15 + 7]
mov qword [rbp + 0x490], rax
mov rax, qword [rax]
test rax, rax
je 0x1400159c1
mov rcx, qword [rbp + 0x418]
call rax
mov rax, qword [rbp + 0x490]
cmp qword [rax + 8], 0
je 0x1400159e6
mov rax, qword [rbp + 0x490]
mov rdx, qword [rax + 0x10]
mov rcx, qword [rbp + 0x418]
call fcn.140002310
push 8
pop rdx
mov rcx, qword [rbp + 0x460]
call fcn.140002310
cmp qword [rbp + 0x400], 0
je 0x140015a0e
push 2
pop rdx
mov rcx, qword [rbp + 0x450]
call fcn.140002310
mov sil, 2
mov bl, 3
mov rax, rdi
neg rax
jo 0x140015abd
cmp r14, 4
je 0x140015a81
cmp r14, 1
jne 0x140015a9c
cmp byte [r15], 0x30
je 0x140015a8f
jmp 0x140015a9c
lea rcx, [rbp + 0x3b8]
mov rdx, r15
call fcn.14000fda0
mov rdi, qword [rbp + 0x3b8]
mov r15, qword [rbp + 0x3c0]
mov r14, qword [rbp + 0x3c8]
cmp qword [rbp + 0x438], 0
je 0x140015a70
mov rcx, qword [rbp + 0x440]
push 2
pop rdx
call fcn.140002310
mov rax, rdi
neg rax
jo 0x14001597a
jmp 0x1400159f5
cmp dword [r15], 0x6c6c7566
jne 0x140015a9c
mov sil, 1
mov bl, 2
test rdi, rdi
je 0x140015abd
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
jmp 0x140015aaf
mov bl, 1
test rdi, rdi
jne 0x140015aa7
xor esi, esi
jmp 0x140015abd
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
xor esi, esi
mov rcx, rax
xor edx, edx
mov r8, r15
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov r14, qword [rbp + 0x468]
mov r15, qword [rbp + 0x470]
mov r12, qword [rbp + 0x478]
mov rdi, qword [rbp + 0x480]
mov r13, qword [rbp + 0x488]
jmp 0x1400155b5
lea rcx, [rbp + 0x420]
and dword [rcx], 0
mov byte [rcx + 4], 0
lea rax, [rbp + 0x430]
lea r8, [rbp + 0x3b8]
mov qword [r8], rax
lea rax, [0x140014d10]
mov qword [r8 + 8], rax
lea rax, [rbp + 0x408]
mov qword [r8 + 0x10], rax
lea rax, [0x14001c590]
lea rdx, [rbp - 0x50]
mov qword [rdx], rax
mov qword [rdx + 8], 3
and qword [rdx + 0x20], 0
lea rax, [0x1400031d0]
mov qword [r8 + 0x18], rax
mov qword [rdx + 0x10], r8
mov qword [rdx + 0x18], 2
call fcn.14000cdb0
lea rcx, [rbp + 0x438]
jmp 0x140015bf8
call qword [rdx + 0x30]
test rax, rax
push 1
pop r8
cmovne r8, rax
cmove rdx, rax
lea rax, [rbp + 0x438]
lea rcx, [rbp + 0x3e8]
and dword [rcx], 0
mov qword [rax], r8
mov qword [rax + 8], rdx
mov byte [rcx + 4], 0
lea rdx, [rbp + 0x430]
lea r8, [rbp + 0x3b8]
mov qword [r8], rdx
lea rdx, [0x140014d10]
mov qword [r8 + 8], rdx
mov qword [r8 + 0x10], rax
lea rax, str.panicked_at_:_nstd_srcpath.rs
lea rdx, [rbp - 0x50]
mov qword [rdx], rax
mov qword [rdx + 8], 3
and qword [rdx + 0x20], 0
lea rax, [0x1400031b0]
mov qword [r8 + 0x18], rax
mov qword [rdx + 0x10], r8
mov qword [rdx + 0x18], 2
call fcn.14000cdb0
lea rcx, [rbp + 0x420]
mov qword [rcx], rax
call fcn.14000cf30
push 7
pop rcx
int 0x29
ud2