Function at 0x416870
Capabilities:
Query environment variable

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x4d8
movdqa xmmword [rsp + 0x4c0], xmm6
mov r14, r9
mov rsi, r8
mov rdi, rdx
mov rbx, rcx
mov ebp, 1
lock xadd qword [0x00447100], rbp
call fcn.004172d0
test rax, rax
jne 0x4168de
lea rax, [0x0043f388]
mov qword [rsp + 0x20], rax
lea rcx, [0x0043f323]
lea r9, [0x0043ed20]
lea r8, [rsp + 0xc0]
mov edx, 0x46
call fcn.0040a2b0
ud2
mov r15, qword [rax]
add r15, 1
mov qword [rax], r15
test rbp, rbp
js 0x416952
cmp r15, 3
jae 0x416952
lea rcx, [0x004470f8]
call sub.kernel32.dll_AcquireSRWLockShared
mov rcx, rbx
call qword [rdi + 0x20]
mov rdi, rax
mov rsi, rdx
call fcn.004172d0
test rax, rax
je 0x4168b0
mov bpl, 1
cmp qword [rax], 1
jbe 0x416a8d
mov qword [rsp + 0xb8], r14
mov rsi, qword [rsi + 0x18]
mov rcx, rdi
call rsi
movabs rcx, 0x7ef2a91eecc7bcf4
cmp rax, rcx
jne 0x416b24
mov rcx, qword [rdi]
mov rax, qword [rdi + 8]
jmp 0x416b4d
cmp r15, 2
jbe 0x4169b1
mov byte [rsp + 0x5c], 0
mov dword [rsp + 0x58], 0
lea rax, str.thread_panicked_while_processing_panic._aborting._n
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xc8], 1
mov qword [rsp + 0xd0], 0
lea rax, str._rustc_f1edd0429582dd29cccacaf50fd134b05593bd9clibrary_std_srciocopy.rs
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xe8], 0
lea rcx, [rsp + 0x58]
jmp 0x416a44
lea rax, str._rustc_f1edd0429582dd29cccacaf50fd134b05593bd9clibrary_std_srciocopy.rs
mov qword [rsp + 0x58], rax
lea rax, [0x0043eba0]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x70], r14
mov byte [rsp + 0x8c], 0
mov dword [rsp + 0x88], 0
lea rax, [rsp + 0x58]
mov qword [rsp + 0x38], rax
lea rax, [0x0040a0e0]
mov qword [rsp + 0x40], rax
lea rax, str._rustc_f1edd0429582dd29cccacaf50fd134b05593bd9clibrary_std_srciocopy.rs
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xc8], 2
mov qword [rsp + 0xd0], 0
lea rax, [rsp + 0x38]
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xe8], 1
lea rcx, [rsp + 0x88]
lea rdx, [rsp + 0xc0]
call fcn.004173c0
cmp al, 3
jne 0x416a89
mov rsi, rdx
mov rcx, qword [rdx]
mov rax, qword [rdx + 8]
call qword [rax]
mov rax, qword [rsi + 8]
cmp qword [rax + 8], 0
je 0x416a78
mov rcx, qword [rsi]
mov rdx, qword [rax + 0x10]
call fcn.00408390
mov rcx, qword [0x00447110]
xor edx, edx
mov r8, rsi
call sub.kernel32.dll_HeapFree
ud2
mov rax, qword [0x004470e0]
cmp rax, 2
je 0x416efd
cmp rax, 1
je 0x416f04
test rax, rax
jne 0x416922
lea rdx, str.RUST_BACKTRACEfailed_to_write_the_buffered_data
lea rcx, [rsp + 0xc0]
mov r8d, 0xe
call fcn.0042e760
cmp dword [rsp + 0xc0], 1
jne 0x416f0c
cmp byte [rsp + 0xc8], 3
jne 0x416b1c
mov rbx, qword [rsp + 0xd0]
mov rcx, qword [rbx]
mov rax, qword [rbx + 8]
call qword [rax]
mov rax, qword [rbx + 8]
cmp qword [rax + 8], 0
je 0x416b0b
mov rcx, qword [rbx]
mov rdx, qword [rax + 0x10]
call fcn.00408390
mov rcx, qword [0x00447110]
xor edx, edx
mov r8, rbx
call sub.kernel32.dll_HeapFree
mov bpl, 5
jmp 0x4172a0
mov rcx, rdi
call rsi
movabs rcx, 0x3973e2a9344c24d5
cmp rax, rcx
jne 0x416b41
mov rcx, qword [rdi]
mov rax, qword [rdi + 0x10]
jmp 0x416b4d
lea rcx, [0x0044013c]
mov eax, 0xc
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x90], rax
call fcn.004165e0
test rax, rax
jne 0x416d0d
xor r14d, r14d
xor esi, esi
xor eax, eax
test rax, rax
lea rdx, [0x00440148]
cmovne rdx, rax
mov eax, 9
cmovne rax, rcx
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x40], rax
mov byte [rsp + 0x34], 0
mov dword [rsp + 0x30], 0
lea rax, [rsp + 0x38]
mov qword [rsp + 0xc0], rax
lea rax, [0x004176e0]
mov qword [rsp + 0xc8], rax
lea rcx, [rsp + 0x88]
mov qword [rsp + 0xd0], rcx
mov qword [rsp + 0xd8], rax
lea rax, [rsp + 0xb8]
mov qword [rsp + 0xe0], rax
lea rax, [0x00417700]
mov qword [rsp + 0xe8], rax
lea rax, [0x00440170]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], 4
mov qword [rsp + 0x68], 0
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x80], 3
lea rcx, [rsp + 0x30]
lea rdi, [rsp + 0x58]
mov rdx, rdi
call fcn.004173c0
cmp al, 3
jne 0x416c74
mov rbx, rdx
mov rcx, qword [rdx]
mov rax, qword [rdx + 8]
call qword [rax]
mov rax, qword [rbx + 8]
cmp qword [rax + 8], 0
je 0x416c63
mov rcx, qword [rbx]
mov rdx, qword [rax + 0x10]
call fcn.00408390
mov rcx, qword [0x00447110]
xor edx, edx
mov r8, rbx
call sub.kernel32.dll_HeapFree
lea eax, [rbp - 3]
movzx ecx, al
lea rdx, [rcx + 1]
xor eax, eax
cmp cl, 2
cmovb rax, rdx
test rax, rax
je 0x416d9b
cmp eax, 1
je 0x416e57
xor eax, eax
xchg byte [0x0043b030], al
test al, al
je 0x416e57
lea rax, str.note:_run_with__RUST_BACKTRACE1__environment_variable_to_display_a_backtrace_n
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xc8], 1
mov qword [rsp + 0xd0], 0
lea rax, str._rustc_f1edd0429582dd29cccacaf50fd134b05593bd9clibrary_std_srciocopy.rs
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xe8], 0
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0xc0]
call fcn.004173c0
cmp al, 3
jne 0x416e57
mov rdi, rdx
jmp 0x416e26
mov rdi, rax
cmp qword [rax], 0
jne 0x416d6d
mov qword [rdi], 0xffffffffffffffff
mov r14, qword [rdi + 8]
test r14, r14
jne 0x4170fd
lea rcx, [0x00447030]
call sub.kernel32.dll_AcquireSRWLockExclusive
mov rsi, qword [0x0043b020]
cmp rsi, 0xffffffffffffffff
jne 0x416f21
lea rcx, [0x00447030]
call sub.kernel32.dll_ReleaseSRWLockExclusive
lea rcx, str.failed_to_generate_unique_thread_ID:_bitspace_exhausted
lea r8, [0x0043f470]
mov edx, 0x37
call fcn.00416820
ud2
lea rax, str.library_std_src_sys_common_thread_info.rs
mov qword [rsp + 0x20], rax
lea rcx, str.already_borrowed
lea r9, [0x0043ed00]
lea r8, [rsp + 0xc0]
mov edx, 0x10
call fcn.0040a2b0
ud2
lea rbx, [0x004470d8]
mov rcx, rbx
call sub.kernel32.dll_AcquireSRWLockExclusive
mov byte [rsp + 0x2f], bpl
lea rax, [rsp + 0x2f]
mov qword [rsp + 0x58], rax
lea rax, [0x00417790]
mov qword [rsp + 0x60], rax
lea rax, str._rustc_f1edd0429582dd29cccacaf50fd134b05593bd9clibrary_std_srciocopy.rs
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xc8], 1
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xe0], rdi
mov qword [rsp + 0xe8], 1
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0xc0]
call fcn.004173c0
mov rbp, rax
mov rdi, rdx
mov rcx, rbx
call sub.kernel32.dll_ReleaseSRWLockExclusive
cmp bpl, 3
jne 0x416e57
mov rcx, qword [rdi]
mov rax, qword [rdi + 8]
call qword [rax]
mov rax, qword [rdi + 8]
cmp qword [rax + 8], 0
je 0x416e46
mov rcx, qword [rdi]
mov rdx, qword [rax + 0x10]
call fcn.00408390
mov rcx, qword [0x00447110]
xor edx, edx
mov r8, rdi
call sub.kernel32.dll_HeapFree
test rsi, rsi
je 0x416e6b
lock sub qword [rsi], 1
jne 0x416e6b
mov rcx, r14
call fcn.004167c0
lea rcx, [0x004470f8]
call sub.kernel32.dll_ReleaseSRWLockShared
cmp r15, 1
jbe 0x416ef6
mov byte [rsp + 0x3c], 0
mov dword [rsp + 0x38], 0
lea rax, str.thread_panicked_while_panicking._aborting._n
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xc8], 1
mov qword [rsp + 0xd0], 0
lea rax, str._rustc_f1edd0429582dd29cccacaf50fd134b05593bd9clibrary_std_srciocopy.rs
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xe8], 0
lea rcx, [rsp + 0x38]
lea rdx, [rsp + 0xc0]
call fcn.004173c0
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x58], rax
lea rcx, [rsp + 0x58]
call fcn.004174d0
ud2
call fcn.004174c0
ud2
xor ebp, ebp
jmp 0x416922
mov bpl, 4
jmp 0x416922
mov rbx, qword [rsp + 0xc8]
mov bpl, 5
test rbx, rbx
jne 0x416f4f
jmp 0x4172a0
lea rax, [rsi + 1]
mov qword [0x0043b020], rax
test rsi, rsi
jne 0x417075
lea rcx, str.called__Option::unwrap____on_a__None__value
lea r8, [0x0043f488]
mov edx, 0x2b
call fcn.00409910
ud2
mov qword [rsp + 0xa0], rsi
mov qword [rsp + 0xa8], rdi
mov qword [rsp + 0xb0], r14
mov qword [rsp + 0x98], r15
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x50], rax
xor r14d, r14d
mov r8d, 0x400
lea rcx, [rsp + 0xc0]
xor edx, edx
call sub.msvcrt.dll_memset
mov r15, qword [0x00441a50]
mov qword [rsp + 0x38], r15
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
mov ebp, 0x200
cmp rbp, 0x201
jae 0x416fd5
jmp 0x417010
cmp rbp, r13
mov rbp, r13
ja 0x4170a6
cmp rbp, 0x201
jb 0x417010
mov r8, rbp
sub r8, r14
mov rax, qword [rsp + 0x40]
sub rax, r14
cmp rax, r8
jb 0x416ffb
mov qword [rsp + 0x48], rbp
mov r14, rbp
mov rdi, r15
mov r12, rbp
mov rsi, r15
jmp 0x417021
lea rcx, [rsp + 0x38]
mov rdx, r14
call fcn.0042ea10
mov r15, qword [rsp + 0x38]
jmp 0x416fe8
lea rsi, [rsp + 0xc0]
mov rdi, rsi
mov r12d, 0x200
xor ecx, ecx
call sub.kernel32.dll_SetLastError
mov rcx, rbx
mov rdx, rsi
mov r8d, ebp
call sub.kernel32.dll_GetEnvironmentVariableW
mov esi, eax
test eax, eax
jne 0x417049
call sub.kernel32.dll_GetLastError
test eax, eax
jne 0x417146
mov r13d, esi
cmp rbp, r13
jne 0x416fc0
call sub.kernel32.dll_GetLastError
cmp eax, 0x7a
jne 0x416fc0
add rbp, rbp
cmp rbp, 0x201
jae 0x416fd5
jmp 0x417010
lea rcx, [0x00447030]
call sub.kernel32.dll_ReleaseSRWLockExclusive
mov ecx, 0x30
mov edx, 8
call fcn.00408300
test rax, rax
jne 0x4170c3
mov ecx, 0x30
mov edx, 8
call fcn.004086e0
ud2
cmp r12, r13
jae 0x41715b
lea r8, str.library_std_src_syswindowsmod.rsstrings_passed_to_WinAPI_cannot_contain_NULs
mov rcx, r13
mov rdx, r12
call fcn.004093e0
ud2
mov r14, rax
mov qword [rax + 0x10], 0
mov qword [rax + 0x20], rsi
mov byte [rax + 0x28], 0
movaps xmm0, xmmword [0x0043c0c0]
movups xmmword [rax], xmm0
mov rax, qword [rdi + 8]
test rax, rax
je 0x4170f9
lock sub qword [rax], 1
jne 0x4170f9
mov rcx, qword [rdi + 8]
call fcn.004167c0
mov qword [rdi + 8], r14
lock add qword [r14], 1
jle 0x416a89
add qword [rdi], 1
test r14, r14
jne 0x41711e
xor eax, eax
mov rsi, r14
xor r14d, r14d
jmp 0x416b72
lea rcx, [r14 + 0x10]
mov rax, qword [r14 + 0x10]
test rax, rax
cmove rcx, rax
jne 0x417133
xor eax, eax
jmp 0x41713e
mov rax, qword [rcx]
mov rcx, qword [rcx + 8]
add rcx, 0xffffffffffffffff
mov rsi, r14
jmp 0x416b72
call sub.kernel32.dll_GetLastError
mov r12d, eax
shl r12, 0x20
pxor xmm6, xmm6
mov bpl, 1
jmp 0x417178
lea rcx, [rsp + 0x58]
mov rdx, rdi
mov r8, r13
call fcn.004191d0
mov r12, qword [rsp + 0x58]
movdqu xmm6, xmmword [rsp + 0x60]
xor ebp, ebp
mov rax, qword [rsp + 0x40]
test rax, rax
mov r14, qword [rsp + 0xb0]
mov rdi, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0xa0]
je 0x4171bf
test r15, r15
je 0x4171bf
movabs rcx, 0x7fffffffffffffff
and rax, rcx
je 0x4171bf
mov rcx, qword [0x00447110]
xor edx, edx
mov r8, r15
call sub.kernel32.dll_HeapFree
test bpl, bpl
je 0x41720f
cmp r12b, 3
mov r15, qword [rsp + 0x98]
jne 0x417219
movq rbp, xmm6
mov rcx, qword [rbp]
mov rax, qword [rbp + 8]
call qword [rax]
mov rax, qword [rbp + 8]
cmp qword [rax + 8], 0
je 0x4171f9
mov rcx, qword [rbp]
mov rdx, qword [rax + 0x10]
call fcn.00408390
mov rcx, qword [0x00447110]
xor r12d, r12d
xor edx, edx
mov r8, rbp
call sub.kernel32.dll_HeapFree
jmp 0x41721c
mov r15, qword [rsp + 0x98]
jmp 0x41721c
xor r12d, r12d
mov bpl, 5
mov rax, qword [rsp + 0x50]
shl rax, 1
test rax, rax
je 0x41723e
mov rcx, qword [0x00447110]
xor edx, edx
mov r8, rbx
call sub.kernel32.dll_HeapFree
test r12, r12
je 0x4172a0
movq rax, xmm6
pshufd xmm0, xmm6, 0xee
movq rcx, xmm0
cmp rcx, 4
je 0x41726f
cmp rcx, 1
jne 0x417283
cmp byte [r12], 0x30
jne 0x417283
mov bpl, 4
mov ebx, 1
jmp 0x41728a
cmp dword [r12], 0x6c6c7566
jne 0x417283
mov bpl, 1
mov ebx, 3
jmp 0x41728a
mov ebx, 2
xor ebp, ebp
test rax, rax
je 0x4172a0
mov rcx, qword [0x00447110]
xor edx, edx
mov r8, r12
call sub.kernel32.dll_HeapFree
cmp bpl, 5
movzx eax, bpl
mov ebp, 4
cmovne ebp, eax
mov eax, 1
cmovne rax, rbx
xchg qword [0x004470e0], rax
jmp 0x416922