Function at 0x140022838
Capabilities:
Query environment variable

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x58
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
mov esi, ecx
xorps xmm0, xmm0
movaps xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x30], xmm0
mov rdx, qword [rdx]
lea rcx, [rsp + 0x20]
lea r8, [rsp + 0x30]
call case.0x14001ede3.122
dec dword [rax - 0x7d]
jl 0x14001f88d
and byte [rax], al
je 0x14001f8e1
lea r12, [0x140033d40]
lea r14, [rsp + 0x20]
lea r15, [rsp + 0x30]
jmp 0x14001f8a7
mov rax, rcx
shr rax, 0x20
shr eax, 0x20
cmp eax, 0x23
jne case.0x14001fa61.2
call fcn.140018f30
mov rdx, qword [rbx]
mov rcx, r14
mov r8, r15
call case.0x14001ede3.122
cmp qword [rsp + 0x20], 0
je 0x14001f8e1
mov rcx, qword [rsp + 0x28]
mov eax, ecx
and eax, 3
movsxd rax, dword [r12 + rax*4]
add rax, r12
jmp rax
cmp byte [rcx + 0x10], 0x23
je 0x14001f88c
jmp case.0x14001fa61.2
cmp byte [rcx + 0xf], 0x23
je 0x14001f88c
mov qword [rsi + 8], rcx
mov eax, 1
jmp 0x14001f91c
mov rbx, qword [rsp + 0x28]
cmp rbx, 0x21
jae 0x14001f941
push rbp
mov rax, qword [rdi]
mov r14, qword [rdi + 0x10]
sub rax, r14
cmp rax, rbx
jb 0x14001f92d
mov rcx, qword [rdi + 8]
add rcx, r14
lea rdx, [rsp + 0x30]
mov r8, rbx
call sub.VCRUNTIME140.dll_memcpy
add r14, rbx
mov qword [rdi + 0x10], r14
mov qword [rsi + 8], rbx
pop rsi
or byte [rcx], dh
invalid
mov qword [rsi], rax
add rsp, 0x58
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
mov rcx, rdi
mov rdx, r14
mov r8, rbx
call fcn.140026100
mov r14, qword [rdi + 0x10]
jmp 0x14001f8fb
lea r8, [0x1400310b0]
mov edx, 0x20
mov rcx, rbx
call fcn.140024fc0
int3
add dword [rax], eax
jmp 0x14001fa30
call fcn.140018f30
test rsi, rsi
je 0x14001fa9e
mov qword [rsp + 0x20], rbx
mov rcx, r14
mov edx, 0xfffffff5
mov r8, rdi
mov r9, rsi
call fcn.140019f80
cmp qword [rsp + 0x28], 0
je case.default.0x14001fa61
mov rcx, qword [rsp + 0x30]
and al, 0x30
mov eax, ecx
and eax, 3
movsxd rax, dword [r12 + rax*4]
add rax, r12
jmp rax
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x14001fab1
mov rax, rsi
sub rax, rcx
jb 0x14001fab6
add rdi, rcx
mov rsi, rax
test rsi, rsi
jne 0x14001fa30
jmp 0x14001fa9e
mov rax, rcx
shr rax, 0x20
cmp eax, 0x23
je 0x14001fa26
jmp 0x14001faa0
xor ecx, ecx
mov rax, rcx
add rsp, 0x38
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
mov rcx, r15
jmp 0x14001faa0
lea r8, [0x140031100]
mov rdx, rsi
call fcn.140024ec0
int3
add dword [rax], eax
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov r14b, 1
cmp qword [rax + 0x28], 1
cmp dword [rax + 0x28], 1
jbe 0x140022685
mov rax, qword [rsi + 0x18]
mov qword [rbp + 0x3e8], rax
mov rdi, qword [rsi]
mov rsi, qword [rsi + 8]
jbe 0x140022460
mov rcx, rdi
call qword [rsi + 0x18]
movabs rcx, 0xfdbc168100b1ef64
out dx, eax
mov cl, 0
adc dword [rsi], 0x3148fdbc
ror dword [rax - 0x46], 1
sar dword [rbx + 0x1e], 0xcd
pushfq
enter 0xffffffffffffc1a2, 0x48
invalid
ror dword [rax + 0x31], 0xc2
or rdx, rcx
jne 0x140022483
lea rax, [rdi + 8]
jmp 0x1400224b6
mov rcx, rdi
call qword [rsi + 0x18]
movabs rcx, 0x5a9321854ae00251
xor rcx, rdx
movabs rdx, 0xcbef1d73f98b3e9f
xor rdx, rax
xor edx, eax
or rdx, rcx
jne 0x1400224be
lea rcx, [rdi + 8]
add rdi, 0x10
mov rax, rdi
mov eax, edi
mov rdi, rcx
mov rcx, qword [rdi]
mov rax, qword [rax]
jmp 0x1400224ca
mov eax, 0xc
lea rcx, str.Box_dyn_Any__unnamed_thread__panicked_at_:_n
mov qword [rbp + 0x3a8], rcx
mov qword [rbp + 0x3b0], rax
call fcn.1400193f0
mov r8d, 9
lea rcx, [0x14003183c]
test rax, rax
je 0x140022502
mov rdx, qword [rax + 0x18]
test rdx, rdx
je 0x140022502
mov r8, qword [rax + 0x20]
dec r8
dec eax
mov rcx, rdx
mov qword [rbp + 0x420], rax
mov qword [rbp + 0x3f8], rcx
mov qword [rbp + 0x400], r8
mov dword [rbp + 0x428], 0
add al, 0
add byte [rax], al
add byte [rax], al
add dh, al
test dword [rsp + rax], ebp
add byte [rax], al
add byte [rax - 0x73], cl
test eax, edi
add eax, dword [rax]
add byte [rax - 0x77], cl
test al, 0x48
lea eax, [0x140016fe0]
invalid
invalid
invalid
mov qword [rbp - 0x50], rax
lea rcx, [rbp + 0x3e8]
mov qword [rbp - 0x48], rcx
lea rcx, [0x140022aa0]
mov qword [rbp - 0x40], rcx
lea rcx, [rbp + 0x3a8]
lea ecx, [rbp + 0x3a8]
mov qword [rbp - 0x38], rcx
mov qword [rbp - 0x30], rax
lea rax, [0x140031860]
mov qword [rbp + 0x3b8], rax
mov qword [rbp + 0x3c0], 4
mov qword [rbp + 0x3d8], 0
lea rax, [rbp - 0x58]
mov qword [rbp + 0x3c8], rax
mov qword [rbp + 0x3d0], 3
lea rcx, [rbp + 0x428]
add al, 0
add byte [rax - 0x73], cl
xchg ebp, eax
mov eax, 0xe8000003
xor byte [rcx - 1], 0xff
add al, 0
add byte [rax - 0x73], cl
xchg ebp, eax
mov eax, 0xe8000003
xor byte [rcx - 1], 0xff
test rax, rax
je 0x1400225bd
mov rcx, rax
call fcn.140018f30
movzx eax, r14b
movzx eax, dh
lea rcx, [0x140033d70]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
lea rcx, [rbp + 0x428]
xor edx, edx
call fcn.140022b30
push rcx
add eax, 0x85480000
invalid
push rcx
add eax, 0x85480000
sal byte [rbp + rsi*2 + 0x48], 0x89
je case.0x1400225cf.3
mov rcx, rax
call fcn.140018f30
jmp case.0x1400225cf.3
lea rcx, [rbp + 0x428]
je case.0x1400225cf.3
mov rcx, rax
call fcn.140018f30
jmp case.0x1400225cf.3
lea rcx, [rbp + 0x428]
mov dl, 1
call fcn.140022b30
test rax, rax
je case.0x1400225cf.3
mov rcx, rax
call fcn.140018f30
jmp case.0x1400225cf.3
xor eax, eax
xchg byte [0x140038001], al
test al, al
je case.0x1400225cf.3
lea rax, str.note:_run_with__RUST_BACKTRACE1__environment_variable_to_display_a_backtrace_n
mov qword [rbp - 0x58], rax
mov qword [rbp - 0x50], 1
invalid
add byte [rax - 0x73], cl
add eax, 0x10857
lea rax, [0x140032e88]
mov qword [rbp - 0x48], rax
xorps xmm0, xmm0
movups xmmword [rbp - 0x40], xmm0
lea rcx, [rbp + 0x428]
lea rdx, [rbp - 0x58]
call fcn.140019730
test rax, rax
je case.0x1400225cf.3
mov rcx, rax
call fcn.140018f30
mov rcx, qword [rbp + 0x420]
test rcx, rcx
je 0x140022670
lock dec qword [rcx]
jne 0x140022670
call fcn.1400193a0
nop
add rsp, 0x4b8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rax, qword [0x140038158]
mov eax, dword [0x140038158]
cmp rax, 3
ja case.default.0x1400226a4
lea rcx, [0x140033d60]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
lea rdx, str.RUST_BACKTRACEfailed_to_write_the_buffered_data
lea rcx, [rbp - 0x58]
mov r8d, 0xe
call fcn.14001abc0
mov rax, qword [rbp - 0x58]
mov eax, dword [rbp - 0x58]
mov eax, dword [rbp - 0x58]
movabs rcx, 0x8000000000000000
cmp rax, rcx
add byte [rax], al
add byte [rax], al
or byte [rax + 0x39], 0xc8
jne 0x1400226ed
mov rcx, qword [rbp - 0x50]
call fcn.140018f30
jmp 0x1400228ec
xor r14d, r14d
jmp case.0x1400226a4.2
mov r14b, 2
jmp case.0x1400226a4.2
mov qword [rbp + 0x3f0], rax
mov rax, qword [rbp - 0x50]
mov qword [rbp + 0x420], rax
mov qword [rbp + 0x3f8], 0
mov qword [rbp + 0x400], 2
mov qword [rbp + 0x408], 0
mov r8d, 0x200
mov eax, 2
mov qword [rbp + 0x418], rax
xor eax, eax
mov qword [rbp + 0x410], rax
xor edi, edi
xor r12d, r12d
cmp r8, 0x201
jae 0x140022770
jmp 0x14002275f
jae 0x14002283d
cmp r8, 0x201
jae 0x140022770
mov r14d, 0x200
lea r13, [rbp - 0x58]
mov r15, r8
jmp 0x1400227d3
sub r8, r12
sub rdi, r12
cmp rdi, r8
jae 0x1400227a6
lea rcx, [rbp + 0x3f8]
mov rdx, r12
call fcn.140026040
mov rax, qword [rbp + 0x3f8]
mov qword [rbp + 0x410], rax
mov rax, qword [rbp + 0x400]
mov qword [rbp + 0x418], rax
mov rdi, qword [rbp + 0x410]
mov eax, 0xffffffff
cmp rdi, rax
mov r12d, 0xffffffff
cmovb r12, rdi
mov qword [rbp + 0x408], r12
mov r14, r12
mov r13, qword [rbp + 0x418]
mov r15, r12
xor ecx, ecx
call qword [sym.imp.kernel32.dll_SetLastError]
mov rcx, qword [rbp + 0x420]
mov rdx, r13
mov r8d, r15d
call qword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
mov ebx, eax
test eax, eax
jne 0x1400227fe
call qword [sym.imp.kernel32.dll_GetLastError]
test eax, eax
jne 0x14002286c
mov r8d, ebx
cmp r15, r8
jne 0x140022750
call qword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 0x7a
jne 0x140022952
add r15, r15
mov eax, 0xffffffff
cmp r15, rax
cmovae r15, rax
mov r8, r15
cmp r8, 0x201
jb 0x14002275f
jmp 0x140022770
cmp r14, r8
jb 0x140022984
lea rcx, [rbp + 0x3b8]
mov rdx, r13
call fcn.14001c970
mov rdi, qword [rbp + 0x3b8]
mov rbx, qword [rbp + 0x3c0]
mov r14, qword [rbp + 0x3c8]
jmp 0x140022886
call qword [sym.imp.kernel32.dll_GetLastError]
mov ebx, eax
shl rbx, 0x20
or rbx, 2
movabs rdi, 0x8000000000000000
cmp qword [rbp + 0x410], 0
je 0x1400228a1
mov edx, 2
mov rcx, qword [rbp + 0x418]
call fcn.140006a10
movabs rax, 0x8000000000000000
cmp rdi, rax
jne 0x1400228c2
mov rcx, rbx
call fcn.140018f30
movabs rdi, 0x8000000000000000
cmp qword [rbp + 0x3f0], 0
je 0x1400228dd
mov edx, 2
mov rcx, qword [rbp + 0x420]
call fcn.140006a10
movabs rax, 0x8000000000000000
cmp rdi, rax
jne 0x1400228f6
mov eax, 3
mov r14b, 2
jmp 0x140022946
cmp r14, 4
je 0x14002290e
cmp r14, 1
jne 0x14002292a
cmp byte [rbx], 0x30
sete r14b
add r14b, r14b
jmp 0x14002292d
mov eax, dword [rbx]
bswap eax
xor ecx, ecx
cmp eax, 0x66756c6d
setae cl
cmp eax, 0x66756c6c
sbb ecx, 0
sete r14b
jmp 0x14002292d
xor r14d, r14d
test rdi, rdi
je 0x14002293f
mov edx, 1
mov rcx, rbx
call fcn.140006a10
lea eax, [r14 + 1]
movzx eax, al
mov qword [0x140038158], rax
jmp case.0x1400226a4.2
lea rcx, str.internal_error:_entered_unreachable_code_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrary_alloc_src_vecmod.rs
lea r8, str.library_std_src_syswindowsmod.rs
mov edx, 0x28
call fcn.140025040
jmp 0x140022999
lea rcx, str.internal_error:_entered_unreachable_code_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrary_alloc_src_vecmod.rs
lea r8, str.library_std_srcpanic.rs_
mov edx, 0x28
call fcn.140025040
lea rax, str.library_std_src_syswindowsmod.rs
mov rcx, r8
mov rdx, r14
mov r8, rax
call fcn.140024fc0
ud2