Function at 0x140049bb0
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], xmm7
movdqa xmmword [rsp + 0x4b0], xmm6
mov rbp, r8
mov rsi, rdx
mov rdi, rcx
mov eax, dword [0x14009e2a0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 0x30], 1
jne 0x140049c32
mov eax, dword [0x14009e2a0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rbx, qword [rax + 0x38]
add rbx, 1
mov qword [rax + 0x38], rbx
cmp rbx, 2
jbe 0x140049c5a
lea rax, [0x14008c4b0]
jmp 0x14004a5c5
mov eax, dword [0x14009e2a0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
movdqa xmm0, xmmword [0x140067d80]
movdqa xmmword [rax + 0x30], xmm0
mov ebx, 1
mov rax, qword [0x14009e4f8]
test rax, rax
jne 0x140049c8f
lea rcx, str.AcquireSRWLockShared
mov edx, 0x14
call fcn.140048de0
test rax, rax
lea rax, [0x14004a6b0]
cmovne rax, rdx
mov rcx, rax
xchg qword [0x14009e4f8], rcx
lea rcx, [0x14009e500]
call rax
mov rcx, rdi
call qword [rsi + 0x20]
mov rdi, rax
mov eax, dword [0x14009e2a0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 0x30], 1
mov qword [rsp + 0xa0], rbx
jne 0x140049cea
mov eax, dword [0x14009e2a0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 0x38], 1
jbe 0x140049d0f
mov al, 1
jmp 0x14004a313
mov eax, dword [0x14009e2a0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov ecx, 1
movq xmm0, rcx
movdqa xmmword [rax + 0x30], xmm0
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0x80], rbp
mov rcx, qword [0x14009e510]
test rcx, rcx
jne 0x14004a66c
mov qword [rsp + 0x70], rdx
lea r14, str.RUST_BACKTRACE0fullBox_Any__unnamed_
mov qword [rsp + 0x88], r14
mov qword [rsp + 0x90], 0xe
call sub.KERNEL32.dll_GetProcessHeap
mov r8d, 0xa
mov rcx, rax
xor edx, edx
call sub.KERNEL32.dll_HeapAlloc
test rax, rax
je 0x14004a692
mov word [rax], 0x52
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], 5
lea rsi, [0x14008c569]
mov edi, 1
xor ebp, ebp
lea r12, [0x14008c576]
mov r15, 0xffffffffffffffff
jmp 0x140049de9
mov rdx, r14
sub rdx, rsi
add rdx, 0xe
add rdx, 3
cmovb rdx, r15
shr rdx, 2
add rdx, 1
lea rcx, [rsp + 0xb0]
call fcn.1400493a0
mov rax, qword [rsp + 0xb0]
mov word [rax + rdi*2], bp
add rdi, 1
mov ebp, ebx
mov qword [rsp + 0xc0], rdi
test bp, bp
jne 0x140049eb0
cmp rsi, r12
je 0x140049ef9
lea rdx, [rsi + 1]
movzx ebx, byte [rsi]
movzx ebp, bl
test bpl, bpl
js 0x140049e1a
mov rsi, rdx
jmp 0x140049eb0
cmp rdx, r12
je 0x140049e2f
movzx ecx, byte [rsi + 1]
add rsi, 2
and ecx, 0x3f
mov r8, rsi
jmp 0x140049e37
xor ecx, ecx
mov rsi, rdx
mov r8, r12
mov edx, ebp
and edx, 0x1f
cmp bpl, 0xdf
jbe 0x140049e57
cmp r8, r12
je 0x140049e5e
movzx ebp, byte [r8]
add r8, 1
and ebp, 0x3f
mov rsi, r8
jmp 0x140049e63
shl edx, 6
or ecx, edx
jmp 0x140049e98
xor ebp, ebp
mov r8, r12
shl ecx, 6
or ecx, ebp
cmp bl, 0xf0
jb 0x140049e82
cmp r8, r12
je 0x140049e89
movzx ebp, byte [r8]
add r8, 1
and ebp, 0x3f
mov rsi, r8
jmp 0x140049e8b
shl edx, 0xc
or ecx, edx
jmp 0x140049e98
xor ebp, ebp
and edx, 7
shl edx, 0x12
shl ecx, 6
or ecx, edx
or ecx, ebp
mov ebp, ecx
cmp ecx, 0xffff
ja 0x140049ec5
nop word cs:[rax + rax]
nop dword [rax]
xor ebx, ebx
cmp rdi, qword [rsp + 0xb8]
jne 0x140049ddf
jmp 0x140049db0
add ebp, 0xffff0000
mov ecx, ebp
shr ecx, 0xa
or ecx, 0xd800
and ebp, 0x3ff
or ebp, 0xdc00
mov ebx, ebp
mov ebp, ecx
cmp rdi, qword [rsp + 0xb8]
jne 0x140049ddf
jmp 0x140049db0
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x40], rax
movdqu xmm0, xmmword [rsp + 0xb0]
movdqa xmmword [rsp + 0x30], xmm0
mov rbx, qword [rsp + 0x30]
lea rcx, [rax + rax]
xor edx, edx
cmp rcx, rdx
je 0x140049fcc
cmp word [rbx + rdx], 0
lea rdx, [rdx + 2]
jne 0x140049f20
lea rdx, [0x14008cf2c]
lea rcx, [rsp + 0x50]
mov r8d, 0x2c
call fcn.14004b2a0
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0xc0], rax
movdqu xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0xb0], xmm0
call sub.KERNEL32.dll_GetProcessHeap
mov r8d, 0x18
mov rcx, rax
xor edx, edx
call sub.KERNEL32.dll_HeapAlloc
test rax, rax
je 0x140049fbb
mov rdi, rax
mov rax, qword [rsp + 0xc0]
mov qword [rdi + 0x10], rax
movdqa xmm0, xmmword [rsp + 0xb0]
movdqu xmmword [rdi], xmm0
call sub.KERNEL32.dll_GetProcessHeap
mov r8d, 0x18
mov rcx, rax
xor edx, edx
call sub.KERNEL32.dll_HeapAlloc
test rax, rax
jne 0x14004a618
mov ecx, 0x18
mov edx, 8
call fcn.1400308f0
ud2
cmp rax, qword [rsp + 0x38]
jne 0x140049fec
lea rcx, [rsp + 0x30]
mov edx, 1
call fcn.1400493a0
mov rbx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x40]
mov word [rbx + rax*2], 0
add rax, 1
mov qword [rsp + 0x40], rax
movdqu xmm6, xmmword [rsp + 0x38]
xor r13d, r13d
mov r8d, 0x400
lea rcx, [rsp + 0xb0]
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov qword [rsp + 0x30], 2
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x38], xmm0
mov ebp, 0x200
mov r15d, 2
cmp rbp, 0x201
jae 0x14004a065
jmp 0x14004a090
cmp rbp, r12
mov rbp, r12
ja 0x14004a0e9
cmp rbp, 0x201
jb 0x14004a090
mov rdx, rbp
sub rdx, r13
lea rcx, [rsp + 0x30]
call fcn.1400493a0
mov qword [rsp + 0x40], rbp
mov r15, qword [rsp + 0x30]
mov r13, rbp
mov r14, rbp
mov rdi, r15
jmp 0x14004a09e
mov r14d, 0x200
lea rdi, [rsp + 0xb0]
xor ecx, ecx
call sub.KERNEL32.dll_SetLastError
mov rcx, rbx
mov rdx, rdi
mov r8d, ebp
call sub.KERNEL32.dll_GetEnvironmentVariableW
mov esi, eax
test eax, eax
jne 0x14004a0c2
call sub.KERNEL32.dll_GetLastError
test eax, eax
jne 0x14004a0fb
mov r12d, esi
cmp rbp, r12
jne 0x14004a050
call sub.KERNEL32.dll_GetLastError
cmp eax, 0x7a
jne 0x14004a050
add rbp, rbp
cmp rbp, 0x201
jb 0x14004a090
jmp 0x14004a065
cmp r14, r12
jae 0x14004a10c
mov rcx, r12
mov rdx, r14
call fcn.140033740
ud2
mov edi, 1
xor r12d, r12d
call sub.KERNEL32.dll_GetLastError
mov esi, eax
jmp 0x14004a13c
lea rcx, [rsp + 0x50]
mov rdx, rdi
mov r8, r12
call fcn.14004e290
mov r12b, byte [rsp + 0x50]
movzx eax, byte [rsp + 0x53]
shl eax, 0x10
movzx ebp, word [rsp + 0x51]
or ebp, eax
mov esi, dword [rsp + 0x54]
movdqu xmm7, xmmword [rsp + 0x58]
xor edi, edi
mov rax, qword [rsp + 0x38]
shl rax, 1
test rax, rax
je 0x14004a15c
call sub.KERNEL32.dll_GetProcessHeap
mov rcx, rax
xor edx, edx
mov r8, r15
call sub.KERNEL32.dll_HeapFree
test rdi, rdi
je 0x14004a195
cmp esi, 0xcb
jne 0x14004a176
xor r14d, r14d
mov edi, 0
test r12b, r12b
je 0x14004a1b2
movzx eax, r12b
and ebp, 0xffffff
shl rbp, 8
or rbp, rax
shl rsi, 0x20
or rsi, rbp
mov edi, 1
jmp 0x14004a1af
movzx eax, r12b
and ebp, 0xffffff
shl rbp, 8
or rbp, rax
shl rsi, 0x20
or rsi, rbp
xor edi, edi
mov r14, rsi
movq rax, xmm6
shl rax, 1
test rax, rax
je 0x14004a1d2
call sub.KERNEL32.dll_GetProcessHeap
mov rcx, rax
xor edx, edx
mov r8, rbx
call sub.KERNEL32.dll_HeapFree
movq rsi, xmm7
test rdi, rdi
je 0x14004a26f
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], rsi
lea rax, [rsp + 0x88]
mov qword [rsp + 0x50], rax
lea rax, [0x14004f9a0]
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x60], rax
lea rax, [0x14004fbd0]
mov qword [rsp + 0x68], rax
lea rax, [0x14008cbe0]
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], 2
mov qword [rsp + 0xc0], 0
lea rax, [rsp + 0x50]
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0xd8], 2
lea rdx, str.srclibstdenv.rsfailed_to_get_environment_variable___:_other_os_erroroperation_interruptedwrite_zerotimed_outinvalid_datainvalid_input_parameteroperation_would_blockentity_already_existsbroken_pipeaddress_not_availableaddress_in_usenot_connectedconnection_abortedconnection_resetconnection_refusedpermission_deniedentity_not_foundunexpected_end_of_file
lea rcx, [rsp + 0xb0]
call fcn.1400330e0
ud2
test r14, r14
jne 0x14004a278
mov bl, 5
jmp 0x14004a2e3
pshufd xmm0, xmm7, 0x4e
movq rax, xmm0
cmp rax, 4
je 0x14004a2a9
cmp rax, 1
jne 0x14004a2c5
mov bl, 4
mov edi, 1
lea rax, [0x14008c576]
cmp r14, rax
je 0x14004a2cc
cmp byte [r14], 0x30
jne 0x14004a2c5
jmp 0x14004a2cc
mov bl, 1
mov edi, 3
lea rax, [0x14008c577]
cmp r14, rax
je 0x14004a2cc
cmp dword [r14], 0x6c6c7566
je 0x14004a2cc
mov edi, 2
xor ebx, ebx
test rsi, rsi
je 0x14004a2e3
call sub.KERNEL32.dll_GetProcessHeap
mov rcx, rax
xor edx, edx
mov r8, r14
call sub.KERNEL32.dll_HeapFree
mov rdx, qword [rsp + 0x70]
cmp bl, 5
movzx ecx, bl
mov eax, 4
cmovne eax, ecx
mov ecx, 1
cmovne rcx, rdi
xchg qword [0x14009e510], rcx
mov rbp, qword [rsp + 0x80]
mov rdi, qword [rsp + 0x78]
mov byte [rsp + 0x2f], al
mov qword [rsp + 0xa8], rbp
mov rsi, qword [rdx + 0x18]
mov rcx, rdi
call rsi
movabs rcx, 0x111094d970b09764
cmp rax, rcx
jne 0x14004a340
mov rcx, qword [rdi]
mov rax, qword [rdi + 8]
jmp 0x14004a369
mov rcx, rdi
call rsi
movabs rcx, 0x5963f230e623e9ab
cmp rax, rcx
jne 0x14004a35d
mov rcx, qword [rdi]
mov rax, qword [rdi + 0x10]
jmp 0x14004a369
lea rcx, [0x14008c57b]
mov eax, 8
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x90], rax
mov eax, dword [0x14009e2a0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 0x10], 1
jne 0x14004a39f
lea rcx, [rax + 0x18]
jmp 0x14004a3be
call fcn.140048aa0
mov rcx, rax
test rax, rax
jne 0x14004a3be
mov qword [rsp + 0x98], 0
xor esi, esi
xor eax, eax
jmp 0x14004a3f9
call fcn.140048b80
mov rsi, rax
mov qword [rsp + 0x98], rax
add rax, 0x10
mov rcx, qword [rsi + 0x10]
test rcx, rcx
cmove rax, rcx
jne 0x14004a3e3
xor eax, eax
jmp 0x14004a3f9
mov rcx, qword [rax + 8]
sub rcx, 1
jae 0x14004a3f6
xor edx, edx
call fcn.140033740
ud2
mov rax, qword [rax]
test rax, rax
lea rdx, [0x14008c583]
cmovne rdx, rax
mov eax, 9
cmovne rax, rcx
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x30]
mov qword [rsp + 0xb0], rax
lea rax, [rsp + 0x88]
mov qword [rsp + 0xb8], rax
lea rax, [rsp + 0xa8]
mov qword [rsp + 0xc0], rax
lea rax, [rsp + 0x2f]
mov qword [rsp + 0xc8], rax
xor ecx, ecx
call fcn.14004a950
mov rdi, rax
mov r14, rdx
test rax, rax
jne 0x14004a4da
lea r8, [0x14008c5d8]
lea rcx, [rsp + 0xb0]
lea rdx, [rsp + 0x50]
call fcn.14004aaf0
mov bl, 1
test rsi, rsi
je 0x14004a56c
lock sub qword [rsi], 1
jne 0x14004a56c
lea rcx, [rsp + 0x98]
call fcn.140040220
test rdi, rdi
je 0x14004a575
test bl, bl
je 0x14004a575
mov rcx, rdi
call qword [r14]
cmp qword [r14 + 8], 0
je 0x14004a575
cmp qword [r14 + 0x10], 0x11
jae 0x14004a539
call sub.KERNEL32.dll_GetProcessHeap
mov rcx, rax
xor edx, edx
mov r8, rdi
jmp 0x14004a547
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], r14
lea r8, [0x14008c590]
lea rcx, [rsp + 0xb0]
lea rdx, [rsp + 0x50]
call fcn.14004aaf0
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x58]
call fcn.14004a950
test rax, rax
je 0x14004a561
mov rbp, rax
mov rbx, rdx
mov rcx, rax
call qword [rdx]
cmp qword [rbx + 8], 0
je 0x14004a561
cmp qword [rbx + 0x10], 0x11
jae 0x14004a54e
call sub.KERNEL32.dll_GetProcessHeap
mov rcx, rax
xor edx, edx
mov r8, rbp
jmp 0x14004a55c
call sub.KERNEL32.dll_GetProcessHeap
mov r8, qword [rdi - 8]
mov rcx, rax
xor edx, edx
call sub.KERNEL32.dll_HeapFree
jmp 0x14004a575
call sub.KERNEL32.dll_GetProcessHeap
mov r8, qword [rbp - 8]
mov rcx, rax
xor edx, edx
call sub.KERNEL32.dll_HeapFree
xor ebx, ebx
test rsi, rsi
jne 0x14004a48a
test rdi, rdi
jne 0x14004a4ab
mov rax, qword [0x14009e508]
test rax, rax
jne 0x14004a5aa
lea rcx, str.ReleaseSRWLockShared
mov edx, 0x14
call fcn.140048de0
test rax, rax
lea rax, [0x14004a8d0]
cmovne rax, rdx
mov rcx, rax
xchg qword [0x14009e508], rcx
lea rcx, [0x14009e500]
call rax
cmp qword [rsp + 0xa0], 1
jbe 0x14004a611
lea rax, str.thread_panicked_while_panicking._aborting._n
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], 1
mov qword [rsp + 0xc0], 0
lea rax, [0x1400965e0]
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0xd8], 0
lea rcx, [rsp + 0xb0]
call fcn.14004a6d0
ud2
call 0x1400071a0
ud2
mov rsi, rax
mov qword [rax], rdi
lea rax, [0x14008c660]
mov qword [rsi + 8], rax
mov byte [rsi + 0x10], 0xb
mov eax, dword [rsp + 0xb0]
mov ecx, dword [rsp + 0xb3]
mov dword [rsi + 0x14], ecx
mov dword [rsi + 0x11], eax
mov rax, qword [rsp + 0x38]
shl rax, 1
test rax, rax
je 0x14004a661
call sub.KERNEL32.dll_GetProcessHeap
mov rcx, rax
xor edx, edx
mov r8, rbx
call sub.KERNEL32.dll_HeapFree
mov r14d, 2
jmp 0x14004a1e0
cmp rcx, 1
je 0x14004a6a3
mov al, 1
cmp rcx, 2
mov rbp, qword [rsp + 0x80]
mov rdi, qword [rsp + 0x78]
jne 0x14004a313
xor eax, eax
jmp 0x14004a313
mov ecx, 0xa
mov edx, 2
call fcn.1400308f0
ud2
mov al, 4
jmp 0x14004a306