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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x2c
mov eax, dword [0x100a400c]
xor eax, ebp
mov dword [ebp - 0x10], eax
cmp dword [0x100a4810], 0
je 0x1004cb6b
mov ebx, dword [ebp + 8]
test bl, 1
jne 0x1004cb72
push 0x100a472c
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov esi, dword [0x100a4750]
test esi, esi
je 0x1004cb56
xor eax, eax
dec eax
xor ecx, ecx
cmp dword [esi + 8], ebx
setb cl
cmova ecx, eax
cmp ecx, 0xffffffff
jne 0x1004c803
mov esi, dword [esi]
test esi, esi
jne 0x1004c7e8
jmp 0x1004cb56
test ecx, ecx
jne 0x1004cbba
push 0x100a472c
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
cmp dword [0x100a4810], 0
je 0x1004c91e
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov eax, ecx
mul ebx
jo 0x1004cc5f
imul ebx, ecx
xor edi, edi
inc edi
test ebx, ebx
cmovne edi, ebx
test esi, esi
jne 0x1004c8b1
cmp edi, 0x1f1
jae 0x1004c8ab
mov eax, dword [0x100a43c8]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
cmp byte [eax + 8], 0
je 0x1004cbc5
mov eax, dword [0x100a43c8]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov esi, dword [eax + 0xc]
test esi, esi
je 0x1004c8ce
mov ecx, esi
mov edx, edi
push 1
call fcn.10024cd0
add esp, 4
mov esi, eax
test eax, eax
je 0x1004cc5f
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1004f020
mov eax, esi
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [0x100a4744]
cmp edi, 0xf00
jbe 0x1004c87f
mov ecx, esi
mov edx, edi
cmp edi, 0xfd000
ja 0x1004c90a
push 1
call fcn.10035340
jmp 0x1004c88a
mov esi, dword [0x100a4744]
mov eax, dword [0x100a43c8]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
cmp byte [eax + 8], 0
je 0x1004cbcf
mov eax, dword [0x100a43c8]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0xc], esi
jmp 0x1004c87f
push 1
push 0x100000
call fcn.100023d0
add esp, 8
jmp 0x1004c88d
push 0x100a4814
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
cmp dword [0x100a4810], 0
jne 0x1004cb46
mov eax, dword [0x100a43c8]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
cmp byte [eax + 8], 0
je 0x1004cc01
mov eax, dword [0x100a481c]
mov ecx, dword [0x100a43c8]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jle 0x1004c9a4
push 0x100a481c
call fcn.1004f02e
add esp, 4
cmp dword [0x100a481c], 0xffffffff
jne 0x1004c9a4
lea edi, [ebp - 0x34]
push edi
call dword [sym.imp.kernel32.dll_GetSystemInfo]
mov eax, dword [edi + 4]
mov dword [0x100a4818], eax
push 0x100a481c
call fcn.1004f02e
add esp, 4
mov eax, 0x1000
xor edx, edx
div dword [0x100a4818]
test edx, edx
jne 0x1004cc0b
mov ebx, 0x100a4820
push 0x40
push ebx
push str.MALLOC_OPTIONS
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableA]
test eax, eax
cmove ebx, eax
je 0x1004ca1d
mov al, byte [ebx]
test al, al
je 0x1004ca1d
mov dword [ebp - 0x38], 0
movsx eax, al
add eax, 0xffffffd0
cmp eax, 9
jbe 0x1004cc72
xor edi, edi
inc edi
mov eax, dword [ebp - 0x38]
mov al, byte [ebx + eax]
movsx ecx, al
cmp ecx, 0x72
jne 0x1004cbd9
mov byte [0x100a4778], 1
dec edi
jne 0x1004c9f2
mov ecx, dword [ebp - 0x38]
mov al, byte [ebx + ecx + 1]
inc ecx
mov dword [ebp - 0x38], ecx
test al, al
jne 0x1004c9e0
xor edi, edi
mov dword [0x100a47dc], edi
mov eax, 0x1388
mov ebx, dword [sym.imp.kernel32.dll_InitializeCriticalSectionAndSpinCount]
push eax
push 0x100a47bc
call ebx
mov dword [0x100a47d4], edi
mov dword [0x100a47d8], edi
mov eax, 0x1388
push eax
push 0x100a477c
call ebx
mov dword [0x100a4794], edi
mov dword [0x100a4798], edi
mov dword [0x100a479c], edi
mov eax, 0x1388
push eax
push 0x100a47e0
call ebx
mov dword [0x100a480c], edi
mov dword [0x100a4804], edi
mov dword [0x100a474c], edi
mov dword [0x100a4750], edi
mov dword [0x100a4754], edi
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x28], edi
mov eax, dword [0x100a4024]
mov dword [ebp - 0x34], eax
mov eax, 0x1388
push eax
push 0x100a472c
call ebx
test eax, eax
je 0x1004cc2f
lea edx, [ebp - 0x34]
xor ecx, ecx
call fcn.10040920
mov dword [0x100a4744], eax
test eax, eax
je 0x1004cc54
mov ecx, dword [0x100a43c8]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp byte [ecx + 8], 0
je 0x1004cc3b
mov ecx, dword [0x100a43c8]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
mov dword [ecx + 0xc], eax
push 0x1388
push 0x100a47a0
call dword [sym.imp.kernel32.dll_InitializeCriticalSectionAndSpinCount]
mov ecx, 0x4000
call fcn.100123e0
test eax, eax
je 0x1004cc4a
mov edi, eax
push 0x4000
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [0x100a47b8], edi
xor eax, eax
inc eax
xchg dword [0x100a4810], eax
call fcn.10001250
push 0x100a4814
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
jmp 0x1004c823
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_RELEASE_ASSERT_result_
int3
xor esi, esi
jmp 0x1004c816
mov esi, dword [0x100a4754]
test esi, esi
je 0x1004cba5
xor eax, eax
dec eax
xor ecx, ecx
cmp dword [esi + 8], ebx
setb cl
cmova ecx, eax
cmp ecx, 0xffffffff
je 0x1004cb9f
test ecx, ecx
je 0x1004c816
mov esi, dword [esi + 4]
and esi, 0xfffffffe
jmp 0x1004cba1
mov esi, dword [esi]
test esi, esi
jne 0x1004cb7f
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_RELEASE_ASSERT_result_
int3
mov esi, dword [esi + 4]
and esi, 0xfffffffe
jmp 0x1004c7fa
call fcn.1004eb54
jmp 0x1004c866
call fcn.1004eb54
jmp 0x1004c8f0
cmp ecx, 0x46
jne 0x1004cc9b
mov eax, dword [0x100a4024]
test eax, eax
je 0x1004ccbc
add eax, eax
je 0x1004ca0b
mov dword [0x100a4024], eax
jmp 0x1004ca0b
call fcn.1004eb54
jmp 0x1004c952
mov ecx, str._jemalloc_
mov edx, str.Compile_time_page_size_does_not_divide_the_runtime_one._n
call fcn.10054100
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_CRASH__
int3
mov dword [0x100a4744], 0
jmp 0x1004cc54
call fcn.1004eb54
mov eax, dword [0x100a4744]
jmp 0x1004cae8
mov dword [0x100a47b8], 0
push 0x100a4814
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov dword [eax], 0xc
xor esi, esi
jmp 0x1004c897
xor edi, edi
lea ecx, [edi + edi*4]
lea edi, [eax + ecx*2]
mov ecx, dword [ebp - 0x38]
movsx eax, byte [ebx + ecx + 1]
inc ecx
mov dword [ebp - 0x38], ecx
add eax, 0xffffffd0
cmp eax, 0xa
jb 0x1004cc74
test edi, edi
je 0x1004ca0e
jmp 0x1004c9f2
cmp ecx, 0x52
jne 0x1004ccac
mov byte [0x100a4778], 0
jmp 0x1004ca0b
cmp ecx, 0x66
jne 0x1004cccb
shr dword [0x100a4024], 1
jmp 0x1004ca0b
mov dword [0x100a4024], 1
jmp 0x1004ca0b
lea ecx, [ebp - 0x34]
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, [ebp - 0x34]
mov edx, 0x1009a0a1
call fcn.10054100
jmp 0x1004ca0b