Function at 0x4e5930
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x591758
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 8
push ebx
push esi
mov ebx, ecx
push edi
lea esi, [ebx + 0x1bf8]
push esi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], esi
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov al, byte [0x62aeec]
xor edi, edi
test al, 1
mov dword [esp + 0x1c], edi
jne 0x4e59a4
mov edx, dword [0x62aeec]
or edx, 1
push 0x598030
mov dword [0x62aeec], edx
mov dword [0x62aee8], 0xf
mov dword [0x62aee4], edi
mov byte [0x62aed4], 0
call fcn.00479d31
add esp, 4
inc dword [0x62aecc]
mov eax, dword [esp + 0x28]
push 0x62aed0
push eax
mov ecx, ebx
call fcn.004e58a0
test eax, eax
jne 0x4e5a05
cmp dword [0x62aee8], 0x10
mov eax, dword [0x62aed4]
jae 0x4e59d2
mov eax, 0x62aed4
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
push edi
push ecx
push eax
push edx
lea ecx, [ebx + 0xc]
call fcn.004e7170
push esi
mov bl, al
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
pop edi
pop esi
mov al, bl
pop ebx
mov ecx, dword [esp + 8]
mov dword fs:[0], ecx
add esp, 0x14
ret 0xc
push ebp
mov ebp, 0x62aec4
jmp 0x4e5a10
mov edi, dword [ebp]
test edi, edi
je 0x4e5af8
mov ecx, edi
call fcn.004e6cb0
mov ecx, dword [0x62aee8]
mov edx, 0x10
cmp ecx, edx
mov ecx, dword [0x62aed4]
jae 0x4e5a3c
mov ecx, 0x62aed4
cmp dword [eax + 0x18], edx
jb 0x4e5a46
mov esi, dword [eax + 4]
jmp 0x4e5a49
lea esi, [eax + 4]
cmp byte [esi], 0
mov eax, ecx
je 0x4e5a6f
sub esi, ecx
mov cl, byte [esi + eax]
mov dl, byte [eax]
inc eax
cmp cl, dl
jne 0x4e5ae9
cmp byte [eax], 0
je 0x4e5ae9
cmp byte [esi + eax], 0
jne 0x4e5a52
mov ecx, dword [0x62aec0]
inc ecx
mov eax, ecx
cdq
mov esi, 0x64
idiv esi
mov dword [0x62aec0], ecx
test edx, edx
jne 0x4e5a9e
mov eax, dword [0x62aecc]
push eax
push ecx
push str.hit_rate__d__d_n
call fcn.0047afb2
add esp, 0xc
cmp dword [0x62aee8], 0x10
mov eax, dword [0x62aed4]
jae 0x4e5ab1
mov eax, 0x62aed4
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
push 0
push ecx
push eax
push edx
mov ecx, edi
call fcn.004e7170
mov bl, al
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
pop ebp
pop edi
pop esi
mov al, bl
pop ebx
mov ecx, dword [esp + 8]
mov dword fs:[0], ecx
add esp, 0x14
ret 0xc
add ebp, 4
cmp ebp, 0x62aecc
jne 0x4e5a10
mov eax, dword [ebx + 0x1bd8]
mov ebp, dword [eax]
cmp ebp, eax
je 0x4e5b81
mov edi, dword [ebp + 8]
mov ecx, edi
call fcn.004e6cb0
mov ecx, dword [0x62aee8]
cmp ecx, 0x10
mov esi, dword [0x62aed4]
jae 0x4e5b24
mov esi, 0x62aed4
cmp dword [eax + 0x18], 0x10
jb 0x4e5b2f
mov eax, dword [eax + 4]
jmp 0x4e5b32
add eax, 4
cmp byte [eax], 0
je 0x4e5b55
sub esi, eax
lea esp, [esp]
mov dl, byte [eax]
mov bl, byte [esi + eax]
inc eax
cmp dl, bl
jne 0x4e5b72
cmp byte [esi + eax], 0
je 0x4e5b72
cmp byte [eax], 0
jne 0x4e5b40
mov eax, dword [0x62aebc]
mov dword [eax*4 + 0x62aec4], edi
dec eax
and eax, 1
mov dword [0x62aebc], eax
cmp ecx, 0x10
jmp 0x4e5aa5
mov eax, dword [esp + 0x14]
mov ebp, dword [ebp]
cmp ebp, dword [eax + 0x1bd8]
jne 0x4e5b04
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
mov ecx, dword [esp + 0x18]
pop ebp
pop edi
pop esi
xor al, al
pop ebx
mov dword fs:[0], ecx
add esp, 0x14
ret 0xc