Function at 0x180016d80
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 0x18], rsi
push rbp
push r14
push r15
mov rbp, rsp
mov eax, 0x80
call fcn.180025560
sub rsp, rax
mov r14, rdx
mov byte [rdx], 0
mov rsi, rcx
mov word [rbp - 0x50], 0x100
xor r15d, r15d
lea rdx, [rbp - 0x60]
lea rcx, [0x180034690]
mov qword [rbp - 0x60], r15
mov qword [rbp - 0x58], r15
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____cdecl_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const____ptr64_const___ptr64
test rax, rax
jne 0x180016f4b
lea rcx, str.MOZ_APP_RESTART
call qword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
test rax, rax
je 0x180016df8
cmp byte [rax], r15b
je 0x180016df8
movups xmm1, xmmword [0x180034678]
movsd xmm0, qword [0x180034688]
jmp 0x180016f37
mov qword [rsp + 0xa0], rbx
lea rcx, [rbp - 0x30]
mov dl, 1
mov qword [rsp + 0xa8], rdi
call sym.mozglue.dll_private:_static_class_mozilla::TimeStamp___cdecl_mozilla::TimeStamp::Now_bool_
call sym.mozglue.dll_private:_static_unsigned_long_long_unsigned___int64____cdecl_mozilla::TimeStamp::ComputeProcessUptime_void_
mov rdi, rax
xorps xmm0, xmm0
test rax, rax
js 0x180016e2a
cvtsi2sd xmm0, rax
jmp 0x180016e3f
mov rcx, rdi
and eax, 1
shr rcx, 1
or rcx, rax
cvtsi2sd xmm0, rcx
addsd xmm0, xmm0
divsd xmm0, qword [0x18002c268]
ucomisd xmm0, qword [0x18002c270]
jp 0x180016e5f
jne 0x180016e5f
movabs rbx, 0x7fffffffffffffff
jmp 0x180016e7f
ucomisd xmm0, qword [0x18002c278]
jp 0x180016e77
jne 0x180016e77
movabs rbx, 0x8000000000000000
jmp 0x180016e7f
call sym.mozglue.dll_public:_static_long_long___int64____cdecl_mozilla::BaseTimeDurationPlatformUtils::TicksFromMilliseconds_double_
mov rbx, rax
movups xmm2, xmmword [rbp - 0x30]
lea rcx, [rbp - 0x60]
movzx r9d, byte [rbp - 0x20]
movsd xmm0, qword [rbp - 0x20]
movdqa xmm1, xmm2
movsd qword [rbp - 8], xmm0
psrldq xmm1, 8
movq rdx, xmm2
movq r8, xmm1
sub rdx, rbx
sub r8, rbx
movups xmmword [rbp - 0x18], xmm2
call sym.mozglue.dll_private:_void___cdecl_mozilla::TimeStampValue::constructor_unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64___bool____ptr64
test rbx, rbx
mov rbx, qword [rsp + 0xa0]
jle 0x180016ee5
lea rdx, [rbp - 0x18]
lea rcx, [rbp - 0x60]
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____cdecl_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const____ptr64_const___ptr64
test rax, rax
jle 0x180016ee5
mov qword [rbp - 0x60], r15
mov qword [rbp - 0x58], r15
mov word [rbp - 0x50], 0x100
movups xmm0, xmmword [rbp - 0x60]
lea rdx, [0x180034678]
movsd xmm1, qword [rbp - 0x50]
lea rcx, [rbp - 0x48]
movups xmmword [rbp - 0x48], xmm0
movsd qword [rbp - 0x38], xmm1
call sym.mozglue.dll_public:_unsigned_long_long_unsigned___int64____cdecl_mozilla::TimeStampValue::operator__class_mozilla::TimeStampValue_const____ptr64_const___ptr64
test rax, rax
jg 0x180016f1c
test rdi, rdi
je 0x180016f1c
movsd xmm0, qword [rbp - 0x38]
movups xmm1, xmmword [rbp - 0x48]
jmp 0x180016f2f
mov byte [r14], 1
movups xmm1, xmmword [0x180034678]
movsd xmm0, qword [0x180034688]
mov rdi, qword [rsp + 0xa8]
movups xmmword [0x180034690], xmm1
movaps xmm2, xmm0
movsd qword [0x1800346a0], xmm0
jmp 0x180016f5a
movsd xmm2, qword [0x1800346a0]
movups xmm1, xmmword [0x180034690]
movups xmmword [rsi], xmm1
mov rax, rsi
movsd qword [rsi + 0x10], xmm2
mov rsi, qword [rsp + 0xb0]
add rsp, 0x80
pop r15
pop r14
pop rbp
ret