Function at 0x1000b830
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, 0x68
mov eax, dword [0x1007a00c]
xor eax, ebp
mov dword [esp + 0x60], eax
mov eax, dword [0x1007a70c]
test eax, eax
je 0x1000bfc2
push 0x1007a710
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov esi, dword [0x1007a734]
test esi, esi
je 0x1000bfad
mov eax, dword [ebp + 8]
mov ecx, 0xffffffff
xor edx, edx
cmp dword [esi + 8], eax
setb dl
cmova edx, ecx
cmp edx, 0xffffffff
je 0x1000b8a0
test edx, edx
je 0x1000b8a4
mov esi, dword [esi + 4]
and esi, 0xfffffffe
test esi, esi
jne 0x1000b875
jmp 0x1000bfad
mov esi, dword [esi]
jmp 0x1000b88f
push 0x1007a710
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
test edx, edx
je 0x1000bfc9
mov eax, dword [0x1007a70c]
test ecx, ecx
je 0x1000b95b
test eax, eax
mov dword [esp + 8], edx
je 0x1000bfd3
mov ebx, ecx
and ebx, 0xfff00000
cmp ebx, ecx
je 0x1000bd57
mov eax, ecx
shr eax, 0xc
movzx eax, al
lea eax, [eax + eax*2]
mov eax, dword [ebx + eax*4 + 0x18]
mov edi, eax
and edi, 0xfffff000
test al, 2
jne 0x1000b906
mov eax, dword [edi]
mov edi, dword [eax + 8]
cmp edi, 0xfe000
ja 0x1000bd34
mov ecx, dword [ebx]
mov eax, dword [esp + 8]
test esi, esi
je 0x1000b924
cmp ecx, esi
jne 0x1000c008
mov edx, dword [ebp + 0xc]
cmp eax, 0xfe000
ja 0x1000bd28
push edi
push eax
call fcn.100061b0
add esp, 8
mov ebx, eax
test ebx, ebx
je 0x1000c02d
mov ecx, dword [esp + 0x60]
xor ecx, ebp
call fcn.10069260
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
test eax, eax
je 0x1000bdae
test esi, esi
jne 0x1000bcff
cmp edx, 0x201
jae 0x1000bcf9
mov eax, dword [0x1007a2f0]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov esi, dword [eax + 8]
test esi, esi
je 0x1000bfe8
cmp edx, 9
jb 0x1000bb9b
cmp edx, 0x201
jae 0x1000bb74
add edx, 0xf
mov edi, edx
shr edx, 4
and edi, 0xfffffff0
shl edx, 5
cmp byte [esi + 0x3c], 0
mov dword [esp + 0x14], edi
lea ebx, [esi + edx + 0x50]
mov eax, edx
mov dword [esp + 8], edx
jne 0x1000ba56
lea eax, [esi + 0xc]
mov dword [esp + 0x20], eax
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov eax, dword [ebx]
test eax, eax
je 0x1000bb5c
cmp dword [eax + 8], 0
je 0x1000bb5c
mov edx, dword [eax + 4]
mov dword [esp], eax
mov eax, dword [eax + edx*4 + 0xc]
test eax, eax
je 0x1000bbd3
mov edi, dword [esi + 0x40]
test edi, edi
jne 0x1000bad9
bsf edi, eax
mov ecx, dword [esp + 8]
mov ebx, edx
btc eax, edi
shl ebx, 5
or ebx, edi
mov edi, dword [esp]
imul ebx, dword [esi + ecx + 0x58]
mov ecx, dword [esi + ecx + 0x68]
mov dword [edi + edx*4 + 0xc], eax
mov eax, edi
add ecx, edi
mov edi, dword [esp + 0x14]
add ebx, ecx
dec dword [eax + 8]
test ebx, ebx
je 0x1000c023
add dword [esi + 0x2c], edi
push dword [esp + 0x20]
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
jmp 0x1000b93e
cmp dword [esi + 0x40], 0
jne 0x1000b9cf
lea eax, [esp + 0x38]
mov dword [esp + 4], esi
mov byte [esi + 0x3c], 0
push eax
call sym.mozglue.dll_class_mozilla::Maybe_unsigned_long_long_unsigned___int64_____cdecl_mozilla::RandomUint64_void_
add esp, 4
lea edi, [esp + 0x28]
push edi
call sym.mozglue.dll_class_mozilla::Maybe_unsigned_long_long_unsigned___int64_____cdecl_mozilla::RandomUint64_void_
add esp, 4
mov ecx, 0x10
call fcn.1000cea0
xor edx, edx
cmp byte [edi + 8], 0
mov esi, 0
mov edi, 0
je 0x1000baa6
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
cmp byte [esp + 0x40], 0
mov ecx, 0
je 0x1000baba
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov dword [eax + 8], edi
mov dword [eax + 0xc], esi
mov esi, dword [esp + 4]
mov edi, dword [esp + 0x14]
mov dword [esi + 0x40], eax
mov byte [esi + 0x3c], 1
jmp 0x1000b9cf
mov ecx, dword [edi]
mov dword [esp + 4], esi
mov esi, dword [edi + 4]
mov dword [esp + 0x10], edx
mov edx, ecx
mov ebx, esi
shl edx, 0x17
shld ebx, ecx, 0x17
xor edx, ecx
mov ecx, dword [edi + 0xc]
xor ebx, esi
mov dword [esp + 0xc], edx
mov edx, ebx
shr edx, 0x11
mov esi, ecx
shr esi, 0x1a
xor esi, ecx
xor esi, edx
mov edx, dword [edi + 8]
mov dword [edi + 4], ecx
xor esi, ebx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xc]
shld ebx, edx, 0xf
mov edx, dword [esp + 0x18]
shld ecx, edx, 6
mov dword [edi], edx
mov dword [edi + 0xc], esi
xor ecx, edx
xor ecx, ebx
xor ecx, dword [esp + 0xc]
mov dword [edi + 8], ecx
add ecx, edx
mov edi, eax
ror edi, cl
test edi, edi
je 0x1000bb55
bsf edi, edi
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 4]
add edi, ecx
and edi, 0x1f
jmp 0x1000ba11
mov edi, 0x20
jmp 0x1000bb43
mov ecx, esi
mov edx, ebx
call fcn.100033b0
test eax, eax
mov dword [ebx], eax
jne 0x1000b9f1
jmp 0x1000c023
dec edx
je 0x1000bc5c
bsr ecx, edx
xor ecx, 0x1f
neg cl
xor edi, edi
inc edi
shl edi, cl
mov eax, edi
shr eax, 9
or eax, 1
bsr edx, eax
xor edx, 0x20
jmp 0x1000b9b4
mov eax, edx
dec eax
je 0x1000bc66
bsr ecx, eax
xor ecx, 0x1f
neg cl
xor eax, eax
inc eax
mov edi, eax
shl edi, cl
cmp edx, eax
cmovbe edi, eax
mov eax, 8
cmp edi, 8
cmova eax, edi
mov edi, eax
shr eax, 3
or eax, 1
bsr edx, eax
jmp 0x1000b9b4
mov ecx, dword [esp + 8]
mov ebx, edx
mov dword [esp + 0x10], edx
shl ebx, 5
mov ecx, dword [esi + ecx + 0x64]
mov eax, dword [esp + 0x10]
lea edx, [eax + 1]
cmp edx, ecx
mov dword [esp + 0x10], edx
jae 0x1000c01d
mov edx, dword [esp]
add ebx, 0x20
mov edx, dword [edx + eax*4 + 0x10]
test edx, edx
je 0x1000bbe4
mov dword [esp + 4], esi
mov esi, dword [esi + 0x40]
mov dword [esp + 0x18], eax
test esi, esi
jne 0x1000bc70
mov esi, dword [esp + 4]
mov eax, edx
bsf edx, edx
mov ecx, dword [esp + 8]
btc eax, edx
or ebx, edx
mov edx, dword [esp]
mov dword [esp + 0xc], eax
mov eax, dword [esi + ecx + 0x68]
imul ebx, dword [esi + ecx + 0x58]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x18]
mov dword [edx + eax*4 + 0x10], ecx
mov eax, dword [esp + 8]
add eax, edx
add ebx, eax
mov eax, dword [esp + 0x10]
mov dword [edx + 4], eax
mov eax, edx
jmp 0x1000ba39
mov ecx, 0x20
jmp 0x1000bb81
mov ecx, 0x20
jmp 0x1000bbaa
mov ecx, dword [esi]
mov edi, dword [esi + 4]
mov eax, ecx
mov dword [esp + 0xc], edi
shld edi, ecx, 0x17
shl eax, 0x17
xor edi, dword [esp + 0xc]
mov dword [esp + 0xc], edx
xor eax, ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0xc]
mov ecx, edi
shr ecx, 0x11
mov edx, eax
shr edx, 0x1a
xor edx, eax
xor edx, ecx
mov ecx, dword [esi + 8]
mov dword [esi + 4], eax
xor edx, edi
mov dword [esp + 0x24], ecx
mov ecx, eax
mov eax, dword [esp + 0x1c]
shld edi, eax, 0xf
mov eax, dword [esp + 0x24]
shld ecx, eax, 6
mov dword [esi], eax
mov dword [esi + 0xc], edx
mov edx, dword [esp + 0xc]
xor ecx, eax
xor ecx, edi
xor ecx, dword [esp + 0x1c]
mov dword [esi + 8], ecx
add ecx, eax
mov eax, edx
ror edx, cl
test edx, edx
je 0x1000bcf2
bsf edx, edx
mov esi, dword [esp + 4]
mov edi, dword [esp + 0x14]
add edx, ecx
and edx, 0x1f
jmp 0x1000bc1d
mov edx, 0x20
jmp 0x1000bce0
mov esi, dword [0x1007a728]
cmp edx, 0x800
jbe 0x1000b994
mov ecx, esi
cmp edx, 0xfe000
ja 0x1000c040
push 0
call fcn.100046a0
add esp, 4
jmp 0x1000b93c
push edi
push eax
call fcn.100070e0
jmp 0x1000b939
mov eax, dword [ebx]
mov ecx, dword [ebx + 0x18]
cmp eax, dword [ecx + 8]
je 0x1000b914
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_RELEASE_ASSERT_mNode__mArenaId__mNode__mArena__mId_
mov ecx, 0xc3a
int3
push 0x1007a678
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov ecx, dword [0x1007a690]
test ecx, ecx
je 0x1000c051
xor eax, eax
mov ebx, ecx
dec eax
mov edx, dword [ebp + 0xc]
xor ecx, ecx
cmp dword [ebx + 0x10], edx
setb cl
cmova ecx, eax
test ecx, ecx
je 0x1000bd99
cmp ecx, 0xffffffff
je 0x1000bd94
mov ebx, dword [ebx + 0xc]
and ebx, 0xfffffffe
jmp 0x1000bd75
mov ebx, dword [ebx + 8]
jmp 0x1000bd75
mov ecx, ebx
mov edi, dword [ecx + 0x14]
push 0x1007a678
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
jmp 0x1000b906
mov dword [esp + 8], edx
mov dword [esp + 4], esi
push 0x1007a738
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov eax, dword [0x1007a70c]
test eax, eax
jne 0x1000bf95
mov ecx, dword [0x1007a2f0]
mov edx, dword fs:[0x2c]
mov eax, dword [0x1007a740]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jle 0x1000be21
push 0x1007a740
call fcn.10069281
add esp, 4
cmp dword [0x1007a740], 0xffffffff
jne 0x1000be21
lea edi, [esp + 0x38]
push edi
call dword [sym.imp.kernel32.dll_GetSystemInfo]
mov eax, dword [edi + 4]
mov dword [0x1007a73c], eax
push 0x1007a740
call fcn.10069281
add esp, 4
mov eax, 0x1000
xor edx, edx
div dword [0x1007a73c]
test edx, edx
jne 0x1000c080
mov ebx, 0x1007a744
push 0x40
push ebx
push str.MALLOC_OPTIONS
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableA]
test eax, eax
cmove ebx, eax
je 0x1000be9d
mov al, byte [ebx]
test al, al
je 0x1000be9d
mov esi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__write]
xor edi, edi
movsx ecx, al
add ecx, 0xffffffd0
cmp ecx, 9
jbe 0x1000c0ca
xor ecx, ecx
inc ecx
mov dword [esp], ecx
dec dword [esp]
movsx ecx, al
cmp ecx, 0x72
jne 0x1000c058
mov byte [0x1007a674], 1
cmp dword [esp], 0
je 0x1000be94
mov al, byte [ebx + edi]
jmp 0x1000be73
mov al, byte [ebx + edi + 1]
inc edi
test al, al
jne 0x1000be5e
mov esi, dword [sym.imp.kernel32.dll_InitializeCriticalSectionAndSpinCount]
mov edi, 0x1388
mov dword [0x1007a6e8], 0
push edi
push 0x1007a6ec
call esi
xor ebx, ebx
mov dword [0x1007a708], ebx
mov dword [0x1007a704], ebx
push edi
push 0x1007a678
call esi
mov dword [0x1007a690], ebx
mov dword [0x1007a694], ebx
mov dword [0x1007a698], ebx
mov dword [0x1007a6e4], ebx
mov dword [0x1007a6dc], ebx
push edi
push 0x1007a6b8
call esi
mov eax, dword [0x1007a024]
mov dword [0x1007a730], ebx
mov dword [esp + 0x3c], ebx
mov dword [0x1007a734], ebx
mov dword [esp + 0x38], eax
push edi
push 0x1007a710
call esi
test eax, eax
je 0x1000c0a4
lea edx, [esp + 0x38]
xor ecx, ecx
call fcn.10007350
test eax, eax
mov dword [0x1007a728], eax
je 0x1000c0ba
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.1000cea0
test eax, eax
je 0x1000c0b0
mov ebx, eax
push 0x4000
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
xor eax, eax
mov dword [0x1007a6b4], ebx
inc eax
xchg dword [0x1007a70c], eax
call fcn.10006190
push 0x1007a738
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
mov esi, dword [esp + 4]
mov edx, dword [esp + 8]
jmp 0x1000b963
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_RELEASE_ASSERT_result_
mov ecx, 0x115a
int3
xor esi, esi
jmp 0x1000b8af
mov edx, 1
jmp 0x1000b8bd
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_RELEASE_ASSERT_malloc_initialized_
mov ecx, 0x100d
int3
mov eax, dword [0x1007a2f0]
mov ecx, dword fs:[0x2c]
mov esi, dword [0x1007a728]
mov eax, dword [ecx + eax*4]
mov dword [eax + 8], esi
jmp 0x1000b994
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_RELEASE_ASSERT__mArena__arena__mArena_
mov ecx, 0x1011
int3
mov eax, dword [esp]
dec dword [eax + 8]
push dword [esp + 0x20]
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
xor ebx, ebx
mov dword [eax], 0xc
jmp 0x1000b946
push 0
push 0x100000
call fcn.10005ff0
jmp 0x1000b939
xor ebx, ebx
jmp 0x1000bd9b
cmp ecx, 0x46
jne 0x1000c0fc
mov eax, dword [0x1007a024]
test eax, eax
je 0x1000c11d
add eax, eax
je 0x1000be89
mov dword [0x1007a024], eax
jmp 0x1000be89
mov ecx, str._jemalloc_
mov edx, str.Compile_time_page_size_does_not_divide_the_runtime_one._n
call fcn.100076e0
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_CRASH__
mov ecx, 0xf21
int3
mov dword [0x1007a728], 0
jmp 0x1000c0ba
mov dword [0x1007a6b4], 0
push 0x1007a738
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
jmp 0x1000c02d
mov dword [esp], 0
mov eax, dword [esp]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2]
mov dword [esp], eax
movsx eax, byte [ebx + edi + 1]
inc edi
mov ecx, eax
add ecx, 0xffffffd0
cmp ecx, 0xa
jb 0x1000c0d1
cmp dword [esp], 0
je 0x1000be94
jmp 0x1000be73
cmp ecx, 0x52
jne 0x1000c10d
mov byte [0x1007a674], 0
jmp 0x1000be89
cmp ecx, 0x66
jne 0x1000c12c
shr dword [0x1007a024], 1
jmp 0x1000be89
mov dword [0x1007a024], 1
jmp 0x1000be89
mov byte [esp + 0x38], al
mov byte [esp + 0x39], 0
push 0xa
push str._jemalloc_
mov eax, 2
push eax
call esi
add esp, 0xc
push 0x35
push str.:__malloc__Unsupported_character_in_malloc_options:_
mov eax, 2
push eax
call esi
add esp, 0xc
lea ecx, [esp + 0x38]
mov edx, 0x10071d10
call fcn.100076e0
jmp 0x1000be89