Function at 0x1004d3e0
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 [0x100a500c]
xor eax, ebp
mov dword [ebp - 0x10], eax
cmp dword [0x100a580c], 0
je 0x1004d7a7
push 0x100a572c
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov esi, dword [0x100a5750]
test esi, esi
je 0x1004d792
mov eax, dword [ebp + 8]
xor ecx, ecx
dec ecx
xor edx, edx
cmp dword [esi + 8], eax
setb dl
cmova edx, ecx
cmp edx, 0xffffffff
jne 0x1004d43a
mov esi, dword [esi]
test esi, esi
jne 0x1004d41f
jmp 0x1004d792
test edx, edx
jne 0x1004d505
push 0x100a572c
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
cmp dword [0x100a580c], 0
je 0x1004d560
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov eax, ecx
mul ebx
jo 0x1004d848
imul ebx, ecx
xor edi, edi
inc edi
test ebx, ebx
cmovne edi, ebx
test esi, esi
jne 0x1004d4e8
cmp edi, 0x1f1
jae 0x1004d4e2
mov eax, dword [0x100a53c8]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
cmp byte [eax + 8], 0
je 0x1004d7ae
mov eax, dword [0x100a53c8]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov esi, dword [eax + 0xc]
test esi, esi
je 0x1004d510
mov ecx, esi
mov edx, edi
push 1
call fcn.10024830
add esp, 4
mov esi, eax
test eax, eax
je 0x1004d848
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1004fb50
mov eax, esi
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [0x100a5744]
cmp edi, 0xf00
jbe 0x1004d4b6
mov ecx, esi
mov edx, edi
cmp edi, 0xfd000
ja 0x1004d54c
push 1
call fcn.1003a880
jmp 0x1004d4c1
mov esi, dword [esi + 4]
and esi, 0xfffffffe
jmp 0x1004d431
mov esi, dword [0x100a5744]
mov eax, dword [0x100a53c8]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
cmp byte [eax + 8], 0
je 0x1004d7b8
mov eax, dword [0x100a53c8]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0xc], esi
jmp 0x1004d4b6
push 1
push 0x100000
call fcn.100029a0
add esp, 8
jmp 0x1004d4c4
push 0x100a5810
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
cmp dword [0x100a580c], 0
jne 0x1004d782
mov eax, dword [0x100a53c8]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
cmp byte [eax + 8], 0
je 0x1004d7ea
mov eax, dword [0x100a5818]
mov ecx, dword [0x100a53c8]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jle 0x1004d5e6
push 0x100a5818
call fcn.1004fb5e
add esp, 4
cmp dword [0x100a5818], 0xffffffff
jne 0x1004d5e6
lea edi, [ebp - 0x34]
push edi
call dword [sym.imp.kernel32.dll_GetSystemInfo]
mov eax, dword [edi + 4]
mov dword [0x100a5814], eax
push 0x100a5818
call fcn.1004fb5e
add esp, 4
mov eax, 0x1000
xor edx, edx
div dword [0x100a5814]
test edx, edx
jne 0x1004d7f4
mov ebx, 0x100a581c
push 0x40
push ebx
push str.MALLOC_OPTIONS
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableA]
test eax, eax
cmove ebx, eax
je 0x1004d65f
mov al, byte [ebx]
test al, al
je 0x1004d65f
mov dword [ebp - 0x38], 0
movsx eax, al
add eax, 0xffffffd0
cmp eax, 9
jbe 0x1004d85b
xor edi, edi
inc edi
mov eax, dword [ebp - 0x38]
mov al, byte [ebx + eax]
movsx ecx, al
cmp ecx, 0x72
jne 0x1004d7c2
mov byte [0x100a5774], 1
dec edi
jne 0x1004d634
mov ecx, dword [ebp - 0x38]
mov al, byte [ebx + ecx + 1]
inc ecx
mov dword [ebp - 0x38], ecx
test al, al
jne 0x1004d622
xor edi, edi
mov dword [0x100a57d8], edi
mov eax, 0x1388
mov ebx, dword [sym.imp.kernel32.dll_InitializeCriticalSectionAndSpinCount]
push eax
push 0x100a57b8
call ebx
mov dword [0x100a57d0], edi
mov dword [0x100a57d4], edi
mov eax, 0x1388
push eax
push 0x100a5778
call ebx
mov dword [0x100a5790], edi
mov dword [0x100a5794], edi
mov dword [0x100a5798], edi
mov eax, 0x1388
push eax
push 0x100a57dc
call ebx
mov dword [0x100a5808], edi
mov dword [0x100a5800], edi
mov dword [0x100a574c], edi
mov dword [0x100a5750], edi
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x28], edi
mov eax, dword [0x100a5024]
mov dword [ebp - 0x34], eax
mov eax, 0x1388
push eax
push 0x100a572c
call ebx
test eax, eax
je 0x1004d818
lea edx, [ebp - 0x34]
xor ecx, ecx
call fcn.10041370
mov dword [0x100a5744], eax
test eax, eax
je 0x1004d83d
mov ecx, dword [0x100a53c8]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp byte [ecx + 8], 0
je 0x1004d824
mov ecx, dword [0x100a53c8]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
mov dword [ecx + 0xc], eax
push 0x1388
push 0x100a579c
call dword [sym.imp.kernel32.dll_InitializeCriticalSectionAndSpinCount]
mov ecx, 0x4000
call fcn.10011e30
test eax, eax
je 0x1004d833
mov edi, eax
push 0x4000
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [0x100a57b4], edi
xor eax, eax
inc eax
xchg dword [0x100a580c], eax
call fcn.10001250
push 0x100a5810
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
jmp 0x1004d45a
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_RELEASE_ASSERT_result_
int3
xor esi, esi
jmp 0x1004d44d
call fcn.1004f684
jmp 0x1004d49d
call fcn.1004f684
jmp 0x1004d532
cmp ecx, 0x46
jne 0x1004d884
mov eax, dword [0x100a5024]
test eax, eax
je 0x1004d8a5
add eax, eax
je 0x1004d64d
mov dword [0x100a5024], eax
jmp 0x1004d64d
call fcn.1004f684
jmp 0x1004d594
mov ecx, str._jemalloc_
mov edx, str.Compile_time_page_size_does_not_divide_the_runtime_one._n
call fcn.10054c10
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_CRASH__
int3
mov dword [0x100a5744], 0
jmp 0x1004d83d
call fcn.1004f684
mov eax, dword [0x100a5744]
jmp 0x1004d724
mov dword [0x100a57b4], 0
push 0x100a5810
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 0x1004d4ce
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 0x1004d85d
test edi, edi
je 0x1004d650
jmp 0x1004d634
cmp ecx, 0x52
jne 0x1004d895
mov byte [0x100a5774], 0
jmp 0x1004d64d
cmp ecx, 0x66
jne 0x1004d8b4
shr dword [0x100a5024], 1
jmp 0x1004d64d
mov dword [0x100a5024], 1
jmp 0x1004d64d
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, 0x1009afc9
call fcn.10054c10
jmp 0x1004d64d