Function at 0x10046880
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x60
mov esi, dword [ebp + 8]
mov eax, dword [0x100a400c]
xor eax, ebp
mov dword [esp + 0x58], eax
cmp byte [0x100a5899], 0
je 0x10046ac5
mov eax, dword [0x100a5894]
mov ecx, dword [0x100a5890]
or ecx, eax
je 0x100468e2
movsd xmm0, qword [0x100a5898]
movsd qword [esi + 0x10], xmm0
movups xmm0, xmmword [0x100a5888]
movups xmmword [esi], xmm0
mov ecx, dword [esp + 0x58]
xor ecx, ebp
call fcn.1004f020
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp], str.MOZ_APP_RESTART
call dword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
test eax, eax
jne 0x10046b20
lea eax, [esp + 0x38]
mov dword [esp], eax
mov dword [esp + 4], 1
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 dword [esp + 0x30], edx
movd xmm0, edx
mov dword [esp + 0x34], eax
movd xmm1, eax
punpckldq xmm1, xmm0
punpckldq xmm1, xmmword [0x10092200]
subpd xmm1, xmmword [0x10092210]
movapd xmm0, xmm1
unpckhpd xmm0, xmm1
addsd xmm0, xmm1
divsd xmm0, qword [0x10092230]
ucomisd xmm0, qword [0x10092220]
jae 0x10046b79
movsd qword [esp], xmm0
call sym.mozglue.dll_public:_static_long_long___int64____cdecl_mozilla::BaseTimeDurationPlatformUtils::TicksFromMilliseconds_double_
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
lea eax, [esp + 0x4a]
mov ebx, dword [eax - 6]
mov ecx, dword [eax - 0xa]
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0xc]
sub ecx, eax
mov dword [esp + 0xc], eax
mov edi, ebx
sbb edi, dword [esp + 0x10]
lea edx, [esp + 0x4a]
mov edx, dword [edx - 0x12]
mov dword [esp + 0x28], edx
sub edx, eax
lea eax, [esp + 0x4a]
mov eax, dword [eax - 0xe]
mov dword [esp + 0x24], eax
sbb eax, dword [esp + 0x10]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
or ecx, edx
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], eax
or edi, eax
or edi, ecx
sete byte [esp + 0xb]
cmp dword [esp + 0xc], 1
mov ecx, dword [esp + 0x10]
sbb ecx, 0
lea eax, [esp + 0x4a]
mov al, byte [eax - 1]
mov byte [esp + 0xa], al
jl 0x100469f7
cmp byte [esp + 0xa], 0
cmove ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
cmove eax, dword [esp + 0x28]
cmp eax, dword [esp + 0xc]
sbb ebx, dword [esp + 0x10]
jb 0x10046b8d
cmp byte [esp + 0xa], 0
sete al
mov cl, byte [0x100a5881]
mov byte [esp + 0x10], cl
test cl, cl
sete cl
or cl, al
mov ecx, dword [esp + 0x18]
cmovne ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
cmovne edx, dword [esp + 0x20]
mov edi, dword [0x100a5874]
mov eax, dword [0x100a587c]
mov dword [esp + 0x2c], eax
mov dword [esp + 0xc], edi
cmovne eax, edi
mov edi, dword [0x100a5870]
mov ebx, dword [0x100a5878]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], edi
cmovne ebx, edi
mov edi, dword [esp + 0x30]
or dword [esp + 0x34], edi
lea edi, [esp + 0x4a]
movzx edi, word [edi + 4]
mov word [esp + 0x54], di
lea edi, [esp + 0x4a]
mov edi, dword [edi]
mov dword [esp + 0x50], edi
je 0x10046ad5
cmp ebx, edx
sbb eax, ecx
jb 0x10046ad5
mov eax, dword [esp + 0x20]
mov dword [0x100a5888], eax
mov eax, dword [esp + 0x14]
mov dword [0x100a588c], eax
mov eax, dword [esp + 0x1c]
mov dword [0x100a5890], eax
mov eax, dword [esp + 0x18]
mov dword [0x100a5894], eax
mov al, byte [esp + 0xb]
mov byte [0x100a5898], al
mov al, byte [esp + 0xa]
mov byte [0x100a5899], al
mov eax, dword [esp + 0x50]
mov dword [0x100a589a], eax
movzx eax, word [esp + 0x54]
mov word [0x100a589e], ax
jmp 0x100468b6
mov eax, dword [0x100a588c]
mov ecx, dword [0x100a5888]
jmp 0x100468b2
mov eax, dword [0x100a5882]
mov dword [esp + 0x50], eax
movzx eax, word [0x100a5886]
mov word [esp + 0x54], ax
mov al, byte [0x100a5880]
mov byte [esp + 0xb], al
mov al, byte [esp + 0x10]
mov byte [esp + 0xa], al
mov eax, dword [esp + 0x24]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x14], eax
jmp 0x10046a76
cmp byte [eax], 0
je 0x100468f7
mov eax, dword [0x100a5874]
mov dword [esp + 0x14], eax
mov eax, dword [0x100a5870]
mov dword [esp + 0x20], eax
mov eax, dword [0x100a587c]
mov dword [esp + 0x18], eax
mov eax, dword [0x100a5878]
mov dword [esp + 0x1c], eax
mov eax, dword [0x100a5882]
mov dword [esp + 0x50], eax
movzx eax, word [0x100a5886]
mov word [esp + 0x54], ax
mov al, byte [0x100a5880]
mov byte [esp + 0xb], al
mov al, byte [0x100a5881]
mov byte [esp + 0xa], al
jmp 0x10046a76
mov dword [esp + 0x10], 0x7fffffff
xor eax, eax
dec eax
mov dword [esp + 0xc], eax
jmp 0x10046968
mov dword [esp + 0x20], 0
mov byte [esp + 0xb], 1
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov byte [esp + 0xa], 1
jmp 0x100469f7