Function at 0x1002ac90
Capabilities:
Get system information on windows
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x78
mov eax, dword [0x1007a00c]
xor eax, ebp
mov dword [esp + 0x70], eax
mov eax, dword [0x1007a708]
test eax, eax
je 0x1002b332
push 0x1007a70c
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov ebx, dword [0x1007a730]
test ebx, ebx
je 0x1002aced
mov eax, dword [ebp + 8]
xor ecx, ecx
dec ecx
xor edx, edx
cmp dword [ebx + 8], eax
setb dl
cmova edx, ecx
test edx, edx
je 0x1002ad02
cmp edx, 0xffffffff
jne 0x1002b08a
mov ebx, dword [ebx]
test ebx, ebx
jne 0x1002accf
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_RELEASE_ASSERT_result_
int3
push 0x1007a70c
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
mov eax, dword [0x1007a708]
test eax, eax
je 0x1002b137
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov esi, ecx
imul esi, eax
xor edi, edi
mul ecx
cmovno edi, esi
jo 0x1002b3a4
xor ecx, ecx
inc ecx
test edi, edi
cmove edi, ecx
mov esi, ebx
test ebx, ebx
je 0x1002b339
cmp edi, 0x800
ja 0x1002b020
cmp edi, 8
jbe 0x1002b041
cmp edi, 0x201
jae 0x1002af7d
add edi, 0xf
mov ecx, edi
and ecx, 0xfffffff0
shr edi, 4
mov dword [esp + 0x34], ecx
shl edi, 5
lea ebx, [esi + edi]
add ebx, 0x50
cmp byte [esi + 0x3c], 0
mov dword [esp + 4], esi
jne 0x1002ae44
lea eax, [esi + 0xc]
mov dword [esp + 0x14], eax
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov edx, dword [ebx]
test edx, edx
je 0x1002af63
cmp dword [edx + 8], 0
je 0x1002af63
mov ecx, dword [edx + 4]
mov esi, dword [edx + ecx*4 + 0xc]
test esi, esi
mov dword [esp + 0x24], edx
je 0x1002afa3
mov eax, dword [esp + 4]
mov ebx, dword [eax + 0x40]
test ebx, ebx
mov dword [esp + 0x30], edi
jne 0x1002aeca
bsf edx, esi
mov ebx, ecx
shl ebx, 5
or ebx, edx
btc esi, edx
mov edi, ecx
mov ecx, dword [esp + 4]
mov eax, dword [esp + 0x30]
imul ebx, dword [ecx + eax + 0x58]
mov eax, dword [ecx + eax + 0x68]
mov edx, dword [esp + 0x24]
mov dword [edx + edi*4 + 0xc], esi
add eax, edx
add ebx, eax
dec dword [edx + 8]
test ebx, ebx
je 0x1002b39a
mov esi, dword [esp + 0x34]
add dword [ecx + 0x2c], esi
push dword [esp + 0x14]
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
push esi
push 0
push ebx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
test ebx, ebx
je 0x1002b3a4
mov ecx, dword [esp + 0x70]
xor ecx, ebp
call fcn.1002cad0
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp dword [esi + 0x40], 0
jne 0x1002ad8b
mov byte [esi + 0x3c], 0
lea eax, [esp + 0x48]
push eax
call sym.mozglue.dll_class_mozilla::Maybe_unsigned_long_long_unsigned___int64_____cdecl_mozilla::RandomUint64_void_
add esp, 4
lea esi, [esp + 0x38]
push esi
call sym.mozglue.dll_class_mozilla::Maybe_unsigned_long_long_unsigned___int64_____cdecl_mozilla::RandomUint64_void_
add esp, 4
mov ecx, 0x10
call fcn.1000b180
xor edx, edx
cmp byte [esi + 8], 0
mov dword [esp + 0x14], 0
mov esi, 0
je 0x1002ae97
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x14], ecx
mov esi, dword [esp + 0x38]
cmp byte [esp + 0x50], 0
mov ecx, 0
je 0x1002aeab
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov dword [eax + 8], esi
mov ecx, dword [esp + 0x14]
mov dword [eax + 0xc], ecx
mov esi, dword [esp + 4]
mov dword [esi + 0x40], eax
mov byte [esi + 0x3c], 1
jmp 0x1002ad8b
mov dword [esp + 0x10], ecx
mov ecx, dword [ebx]
mov eax, dword [ebx + 4]
mov dword [esp + 0xc], eax
shld eax, ecx, 0x17
mov edx, eax
mov eax, ecx
shl eax, 0x17
xor eax, ecx
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x18], ecx
xor edx, dword [esp + 0xc]
mov dword [esp + 8], edx
mov ecx, dword [ebx + 8]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
mov dword [ebx + 4], ecx
shld edx, eax, 0xf
mov dword [esp + 0x20], edx
xor eax, dword [esp + 0xc]
mov dword [esp + 0x1c], eax
mov eax, ecx
shr ecx, 0x1a
xor ecx, eax
mov edx, dword [esp + 0xc]
shld eax, edx, 6
xor eax, dword [esp + 0x1c]
xor eax, dword [esp + 0x20]
mov edx, dword [esp + 8]
xor ecx, edx
shr edx, 0x11
xor ecx, edx
mov edx, dword [esp + 0xc]
mov dword [ebx], edx
mov dword [ebx + 0xc], ecx
mov dword [ebx + 8], eax
add eax, edx
mov edx, esi
mov ecx, eax
ror edx, cl
test edx, edx
je 0x1002af5c
bsf edx, edx
mov ecx, dword [esp + 0x10]
add edx, eax
and edx, 0x1f
jmp 0x1002add6
mov edx, 0x20
jmp 0x1002af4e
mov ecx, esi
mov edx, ebx
call fcn.10017000
mov edx, eax
mov dword [ebx], eax
test eax, eax
jne 0x1002adad
jmp 0x1002b39a
mov eax, ecx
dec edi
je 0x1002b080
bsr ecx, edi
xor ecx, 0x1f
neg cl
shl eax, cl
mov ecx, eax
shr eax, 9
or eax, 1
bsr edi, eax
xor edi, 0x20
jmp 0x1002ad70
mov eax, dword [esp + 4]
mov ebx, ecx
mov ecx, dword [eax + edi + 0x64]
mov dword [esp + 8], ecx
mov dword [esp + 0x10], ebx
shl ebx, 5
mov ecx, dword [esp + 0x10]
lea esi, [ecx + 1]
mov dword [esp + 0x10], esi
cmp esi, dword [esp + 8]
jae 0x1002b397
mov esi, dword [edx + ecx*4 + 0x10]
add ebx, 0x20
mov dword [esp + 0xc], esi
test esi, esi
je 0x1002afb8
mov dword [esp + 0x20], ecx
mov esi, dword [eax + 0x40]
test esi, esi
jne 0x1002b095
mov esi, dword [esp + 0xc]
bsf edx, esi
mov ecx, dword [esp + 4]
or ebx, edx
btc esi, edx
imul ebx, dword [ecx + edi + 0x58]
mov eax, dword [ecx + edi + 0x68]
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov dword [edx + edi*4 + 0x10], esi
add eax, edx
add ebx, eax
mov eax, dword [esp + 0x10]
mov dword [edx + 4], eax
jmp 0x1002adff
mov ecx, esi
mov edx, edi
cmp edi, 0xfe000
ja 0x1002b3b7
push 1
call fcn.10018a40
add esp, 4
mov ebx, eax
jmp 0x1002ae27
mov edx, ecx
cmp edi, 2
jb 0x1002b130
mov ecx, 0x20
mov eax, 0x20
dec edi
je 0x1002b05f
bsr eax, edi
xor eax, 0x1f
sub ecx, eax
shl edx, cl
mov ecx, edx
cmp edx, 8
mov eax, 8
cmovbe ecx, eax
mov eax, ecx
shr eax, 3
or eax, 1
bsr edi, eax
jmp 0x1002ad70
mov ecx, 0x20
jmp 0x1002af8c
mov ebx, dword [ebx + 4]
and ebx, 0xfffffffe
jmp 0x1002ace9
mov ecx, dword [esi]
mov eax, dword [esi + 4]
mov dword [esp + 8], eax
shld eax, ecx, 0x17
mov edx, eax
mov eax, ecx
shl eax, 0x17
xor eax, ecx
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x28], ecx
xor edx, dword [esp + 8]
mov dword [esp + 0x1c], edx
mov ecx, dword [esi + 8]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x28]
mov dword [esi + 4], ecx
shld edx, eax, 0xf
mov dword [esp + 0x18], edx
xor eax, dword [esp + 8]
mov dword [esp + 0x2c], eax
mov eax, ecx
shr ecx, 0x1a
xor ecx, eax
mov edx, dword [esp + 8]
shld eax, edx, 6
xor eax, dword [esp + 0x2c]
xor eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
xor ecx, edx
shr edx, 0x11
xor ecx, edx
mov edx, dword [esp + 8]
mov dword [esi], edx
mov dword [esi + 0xc], ecx
mov dword [esi + 8], eax
add eax, edx
mov edx, dword [esp + 0xc]
mov ecx, eax
ror edx, cl
test edx, edx
je 0x1002b129
bsf edx, edx
mov ecx, dword [esp + 4]
add edx, eax
and edx, 0x1f
mov esi, dword [esp + 0xc]
jmp 0x1002aff6
mov edx, 0x20
jmp 0x1002b117
xor ecx, ecx
jmp 0x1002b061
push 0x1007a734
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov eax, dword [0x1007a708]
test eax, eax
jne 0x1002b322
mov eax, dword [0x1007a73c]
mov ecx, dword [0x1007a2f0]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jle 0x1002b1a2
push 0x1007a73c
call fcn.1002d432
add esp, 4
cmp dword [0x1007a73c], 0xffffffff
jne 0x1002b1a2
lea esi, [esp + 0x48]
push esi
call dword [sym.imp.kernel32.dll_GetSystemInfo]
mov eax, dword [esi + 4]
mov dword [0x1007a738], eax
push 0x1007a73c
call fcn.1002d432
add esp, 4
mov eax, 0x1000
xor edx, edx
div dword [0x1007a738]
test edx, edx
jne 0x1002b3f3
mov esi, 0x1007a740
push 0x40
push esi
push str.MALLOC_OPTIONS
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableA]
test eax, eax
cmove esi, eax
je 0x1002b21b
mov al, byte [esi]
test al, al
je 0x1002b21b
xor edi, edi
movsx ecx, al
add ecx, 0xffffffd0
cmp ecx, 9
jbe 0x1002b43d
xor ecx, ecx
inc ecx
mov dword [esp + 4], ecx
dec dword [esp + 4]
movsx ecx, al
cmp ecx, 0x72
jne 0x1002b3cb
mov byte [0x1007a674], 1
cmp dword [esp + 4], 0
je 0x1002b212
mov al, byte [esi + edi]
jmp 0x1002b1ef
mov al, byte [esi + edi + 1]
inc edi
test al, al
jne 0x1002b1d9
mov dword [0x1007a6e8], 0
mov eax, 0x1388
mov esi, dword [sym.imp.kernel32.dll_InitializeCriticalSectionAndSpinCount]
push eax
push 0x1007a6ec
call esi
xor edi, edi
mov dword [0x1007a780], edi
mov dword [0x1007a704], edi
mov eax, 0x1388
push eax
push 0x1007a678
call esi
mov dword [0x1007a690], edi
mov dword [0x1007a694], edi
mov dword [0x1007a698], edi
mov dword [0x1007a6e4], edi
mov dword [0x1007a6dc], edi
mov eax, 0x1388
push eax
push 0x1007a6b8
call esi
mov dword [0x1007a72c], edi
mov dword [0x1007a730], edi
mov dword [esp + 0x4c], edi
mov eax, dword [0x1007a024]
mov dword [esp + 0x48], eax
mov eax, 0x1388
push eax
push 0x1007a70c
call esi
test eax, eax
je 0x1002b417
lea edx, [esp + 0x48]
xor ecx, ecx
call fcn.10021bf0
mov dword [0x1007a724], eax
test eax, eax
je 0x1002b42d
mov ecx, dword [0x1007a2f0]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
mov dword [ecx + 8], eax
push 0x1388
push 0x1007a69c
call dword [sym.imp.kernel32.dll_InitializeCriticalSectionAndSpinCount]
mov ecx, 0x4000
call fcn.1000b180
test eax, eax
je 0x1002b423
mov edi, eax
push 0x4000
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [0x1007a6b4], edi
xor eax, eax
inc eax
xchg dword [0x1007a708], eax
call fcn.100016e0
push 0x1007a734
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
jmp 0x1002ad1a
xor ebx, ebx
jmp 0x1002ad0d
mov edx, ecx
mov ebx, edi
cmp edi, 0x201
jb 0x1002b354
mov esi, dword [0x1007a724]
mov ecx, edx
mov edi, ebx
jmp 0x1002ad44
mov eax, dword [0x1007a2f0]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov esi, dword [eax + 8]
test esi, esi
mov ecx, edx
mov edi, ebx
jne 0x1002ad50
mov esi, dword [0x1007a724]
mov eax, dword [0x1007a2f0]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov ecx, edx
mov dword [eax + 8], esi
jmp 0x1002ad50
dec dword [edx + 8]
push dword [esp + 0x14]
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov dword [eax], 0xc
xor ebx, ebx
jmp 0x1002ae2f
push 1
push 0x100000
call fcn.10001700
add esp, 8
jmp 0x1002b03a
cmp ecx, 0x46
jne 0x1002b473
mov eax, dword [0x1007a024]
test eax, eax
je 0x1002b494
add eax, eax
je 0x1002b206
mov dword [0x1007a024], eax
jmp 0x1002b206
mov ecx, str._jemalloc_
mov edx, str.Compile_time_page_size_does_not_divide_the_runtime_one._n
call fcn.10030280
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_CRASH__
int3
mov dword [0x1007a724], 0
jmp 0x1002b42d
mov dword [0x1007a6b4], 0
push 0x1007a734
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
jmp 0x1002b3a4
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2]
mov dword [esp + 4], eax
movsx eax, byte [esi + edi + 1]
inc edi
mov ecx, eax
add ecx, 0xffffffd0
cmp ecx, 0xa
jb 0x1002b445
cmp dword [esp + 4], 0
je 0x1002b212
jmp 0x1002b1ef
cmp ecx, 0x52
jne 0x1002b484
mov byte [0x1007a674], 0
jmp 0x1002b206
cmp ecx, 0x66
jne 0x1002b4a3
shr dword [0x1007a024], 1
jmp 0x1002b206
mov dword [0x1007a024], 1
jmp 0x1002b206
lea ecx, [esp + 0x48]
mov byte [ecx], al
mov byte [ecx + 1], 0
mov eax, 2
push 0xa
push str._jemalloc_
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__write]
add esp, 0xc
push 0x35
push str.:__malloc__Unsupported_character_in_malloc_options:_
mov eax, 2
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__write]
add esp, 0xc
lea ecx, [esp + 0x48]
mov edx, 0x10071020
call fcn.10030280
jmp 0x1002b206