Function at 0x419640
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 [0x00446100], rbp
call fcn.0041a0a0
test rax, rax
jne 0x4196ae
lea rax, [0x0043f0e0]
mov qword [rsp + 0x20], rax
lea rcx, [0x0043f07b]
lea r9, [0x0043ea68]
lea r8, [rsp + 0xc0]
mov edx, 0x46
call fcn.0040d290
ud2
mov r15, qword [rax]
add r15, 1
mov qword [rax], r15
test rbp, rbp
js 0x419722
cmp r15, 3
jae 0x419722
lea rcx, [0x004460f8]
call sub.kernel32.dll_AcquireSRWLockShared
mov rcx, rbx
call qword [rdi + 0x20]
mov rdi, rax
mov rsi, rdx
call fcn.0041a0a0
test rax, rax
je 0x419680
mov bpl, 1
cmp qword [rax], 1
jbe 0x41985d
mov qword [rsp + 0xb8], r14
mov rsi, qword [rsi + 0x18]
mov rcx, rdi
call rsi
movabs rcx, 0x7ef2a91eecc7bcf4
cmp rax, rcx
jne 0x4198f4
mov rcx, qword [rdi]
mov rax, qword [rdi + 8]
jmp 0x41991d
cmp r15, 2
jbe 0x419781
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, [0x0043e578]
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xe8], 0
lea rcx, [rsp + 0x58]
jmp 0x419814
lea rax, [0x0043e578]
mov qword [rsp + 0x58], rax
lea rax, [0x0043e870]
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, [0x0040d0c0]
mov qword [rsp + 0x40], rax
lea rax, [0x004400b8]
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.0041a190
cmp al, 3
jne 0x419859
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 0x419848
mov rcx, qword [rsi]
mov rdx, qword [rax + 0x10]
call fcn.0040ad40
mov rcx, qword [0x00446110]
xor edx, edx
mov r8, rsi
call sub.kernel32.dll_HeapFree
ud2
mov rax, qword [0x004460e0]
cmp rax, 2
je 0x419ccd
cmp rax, 1
je 0x419cd4
test rax, rax
jne 0x4196f2
lea rdx, str.RUST_BACKTRACEfailed_to_write_the_buffered_data
lea rcx, [rsp + 0xc0]
mov r8d, 0xe
call fcn.00431530
cmp dword [rsp + 0xc0], 1
jne 0x419cdc
cmp byte [rsp + 0xc8], 3
jne 0x4198ec
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 0x4198db
mov rcx, qword [rbx]
mov rdx, qword [rax + 0x10]
call fcn.0040ad40
mov rcx, qword [0x00446110]
xor edx, edx
mov r8, rbx
call sub.kernel32.dll_HeapFree
mov bpl, 5
jmp 0x41a070
mov rcx, rdi
call rsi
movabs rcx, 0x3973e2a9344c24d5
cmp rax, rcx
jne 0x419911
mov rcx, qword [rdi]
mov rax, qword [rdi + 0x10]
jmp 0x41991d
lea rcx, [0x0043fe94]
mov eax, 0xc
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x90], rax
call fcn.004193b0
test rax, rax
jne 0x419add
xor r14d, r14d
xor esi, esi
xor eax, eax
test rax, rax
lea rdx, [0x0043fea0]
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, [0x0041a4b0]
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, [0x0041a4d0]
mov qword [rsp + 0xe8], rax
lea rax, [0x0043fec8]
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.0041a190
cmp al, 3
jne 0x419a44
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 0x419a33
mov rcx, qword [rbx]
mov rdx, qword [rax + 0x10]
call fcn.0040ad40
mov rcx, qword [0x00446110]
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 0x419b6b
cmp eax, 1
je 0x419c27
xor eax, eax
xchg byte [0x0043b030], al
test al, al
je 0x419c27
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, [0x0043e578]
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xe8], 0
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0xc0]
call fcn.0041a190
cmp al, 3
jne 0x419c27
mov rdi, rdx
jmp 0x419bf6
mov rdi, rax
cmp qword [rax], 0
jne 0x419b3d
mov qword [rdi], 0xffffffffffffffff
mov r14, qword [rdi + 8]
test r14, r14
jne 0x419ecd
lea rcx, [0x00446030]
call sub.kernel32.dll_AcquireSRWLockExclusive
mov rsi, qword [0x0043b020]
cmp rsi, 0xffffffffffffffff
jne 0x419cf1
lea rcx, [0x00446030]
call sub.kernel32.dll_ReleaseSRWLockExclusive
lea rcx, str.failed_to_generate_unique_thread_ID:_bitspace_exhausted
lea r8, [0x0043f1c8]
mov edx, 0x37
call fcn.004195f0
ud2
lea rax, str.library_std_src_sys_common_thread_info.rs
mov qword [rsp + 0x20], rax
lea rcx, str.already_borrowed
lea r9, [0x0043ea48]
lea r8, [rsp + 0xc0]
mov edx, 0x10
call fcn.0040d290
ud2
lea rbx, [0x004460d8]
mov rcx, rbx
call sub.kernel32.dll_AcquireSRWLockExclusive
mov byte [rsp + 0x2f], bpl
lea rax, [rsp + 0x2f]
mov qword [rsp + 0x58], rax
lea rax, [0x0041a560]
mov qword [rsp + 0x60], rax
lea rax, [0x0043f2b0]
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.0041a190
mov rbp, rax
mov rdi, rdx
mov rcx, rbx
call sub.kernel32.dll_ReleaseSRWLockExclusive
cmp bpl, 3
jne 0x419c27
mov rcx, qword [rdi]
mov rax, qword [rdi + 8]
call qword [rax]
mov rax, qword [rdi + 8]
cmp qword [rax + 8], 0
je 0x419c16
mov rcx, qword [rdi]
mov rdx, qword [rax + 0x10]
call fcn.0040ad40
mov rcx, qword [0x00446110]
xor edx, edx
mov r8, rdi
call sub.kernel32.dll_HeapFree
test rsi, rsi
je 0x419c3b
lock sub qword [rsi], 1
jne 0x419c3b
mov rcx, r14
call fcn.00419590
lea rcx, [0x004460f8]
call sub.kernel32.dll_ReleaseSRWLockShared
cmp r15, 1
jbe 0x419cc6
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, [0x0043e578]
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xe8], 0
lea rcx, [rsp + 0x38]
lea rdx, [rsp + 0xc0]
call fcn.0041a190
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x58], rax
lea rcx, [rsp + 0x58]
call fcn.0041a2a0
ud2
call fcn.0041a290
ud2
xor ebp, ebp
jmp 0x4196f2
mov bpl, 4
jmp 0x4196f2
mov rbx, qword [rsp + 0xc8]
mov bpl, 5
test rbx, rbx
jne 0x419d1f
jmp 0x41a070
lea rax, [rsi + 1]
mov qword [0x0043b020], rax
test rsi, rsi
jne 0x419e45
lea rcx, str.called__Option::unwrap____on_a__None__value
lea r8, [0x0043f1e0]
mov edx, 0x2b
call fcn.0040c8f0
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 [0x00440e38]
mov qword [rsp + 0x38], r15
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
mov ebp, 0x200
cmp rbp, 0x201
jae 0x419da5
jmp 0x419de0
cmp rbp, r13
mov rbp, r13
ja 0x419e76
cmp rbp, 0x201
jb 0x419de0
mov r8, rbp
sub r8, r14
mov rax, qword [rsp + 0x40]
sub rax, r14
cmp rax, r8
jb 0x419dcb
mov qword [rsp + 0x48], rbp
mov r14, rbp
mov rdi, r15
mov r12, rbp
mov rsi, r15
jmp 0x419df1
lea rcx, [rsp + 0x38]
mov rdx, r14
call fcn.004317e0
mov r15, qword [rsp + 0x38]
jmp 0x419db8
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 0x419e19
call sub.kernel32.dll_GetLastError
test eax, eax
jne 0x419f16
mov r13d, esi
cmp rbp, r13
jne 0x419d90
call sub.kernel32.dll_GetLastError
cmp eax, 0x7a
jne 0x419d90
add rbp, rbp
cmp rbp, 0x201
jae 0x419da5
jmp 0x419de0
lea rcx, [0x00446030]
call sub.kernel32.dll_ReleaseSRWLockExclusive
mov ecx, 0x30
mov edx, 8
call fcn.0040acb0
test rax, rax
jne 0x419e93
mov ecx, 0x30
mov edx, 8
call fcn.0040b090
ud2
cmp r12, r13
jae 0x419f2b
lea r8, str.library_std_src_syswindowsmod.rsstrings_passed_to_WinAPI_cannot_contain_NULs
mov rcx, r13
mov rdx, r12
call fcn.0040c3c0
ud2
mov r14, rax
mov qword [rax + 0x10], 0
mov qword [rax + 0x20], rsi
mov byte [rax + 0x28], 0
movaps xmm0, xmmword [0x0043c090]
movups xmmword [rax], xmm0
mov rax, qword [rdi + 8]
test rax, rax
je 0x419ec9
lock sub qword [rax], 1
jne 0x419ec9
mov rcx, qword [rdi + 8]
call fcn.00419590
mov qword [rdi + 8], r14
lock add qword [r14], 1
jle 0x419859
add qword [rdi], 1
test r14, r14
jne 0x419eee
xor eax, eax
mov rsi, r14
xor r14d, r14d
jmp 0x419942
lea rcx, [r14 + 0x10]
mov rax, qword [r14 + 0x10]
test rax, rax
cmove rcx, rax
jne 0x419f03
xor eax, eax
jmp 0x419f0e
mov rax, qword [rcx]
mov rcx, qword [rcx + 8]
add rcx, 0xffffffffffffffff
mov rsi, r14
jmp 0x419942
call sub.kernel32.dll_GetLastError
mov r12d, eax
shl r12, 0x20
pxor xmm6, xmm6
mov bpl, 1
jmp 0x419f48
lea rcx, [rsp + 0x58]
mov rdx, rdi
mov r8, r13
call fcn.0041bfa0
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 0x419f8f
test r15, r15
je 0x419f8f
movabs rcx, 0x7fffffffffffffff
and rax, rcx
je 0x419f8f
mov rcx, qword [0x00446110]
xor edx, edx
mov r8, r15
call sub.kernel32.dll_HeapFree
test bpl, bpl
je 0x419fdf
cmp r12b, 3
mov r15, qword [rsp + 0x98]
jne 0x419fe9
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 0x419fc9
mov rcx, qword [rbp]
mov rdx, qword [rax + 0x10]
call fcn.0040ad40
mov rcx, qword [0x00446110]
xor r12d, r12d
xor edx, edx
mov r8, rbp
call sub.kernel32.dll_HeapFree
jmp 0x419fec
mov r15, qword [rsp + 0x98]
jmp 0x419fec
xor r12d, r12d
mov bpl, 5
mov rax, qword [rsp + 0x50]
shl rax, 1
test rax, rax
je 0x41a00e
mov rcx, qword [0x00446110]
xor edx, edx
mov r8, rbx
call sub.kernel32.dll_HeapFree
test r12, r12
je 0x41a070
movq rax, xmm6
pshufd xmm0, xmm6, 0xee
movq rcx, xmm0
cmp rcx, 4
je 0x41a03f
cmp rcx, 1
jne 0x41a053
cmp byte [r12], 0x30
jne 0x41a053
mov bpl, 4
mov ebx, 1
jmp 0x41a05a
cmp dword [r12], 0x6c6c7566
jne 0x41a053
mov bpl, 1
mov ebx, 3
jmp 0x41a05a
mov ebx, 2
xor ebp, ebp
test rax, rax
je 0x41a070
mov rcx, qword [0x00446110]
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 [0x004460e0], rax
jmp 0x4196f2