Function at 0x504e24
Capabilities:
Access peb ldr_data
Get number of processors

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0xc], ebx
mov ebx, ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x505399
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp byte [eax + 0x61], 0
jne 0x504f0b
push 0
mov eax, dword [ebp - 4]
add eax, 0x74
mov ecx, 1
mov edx, dword [0x502a8c]
call fcn.00406378
add esp, 4
mov eax, dword [ebp - 4]
mov byte [eax + 0x61], 1
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x44], edx
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x20], edx
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x24], edx
mov dl, 1
mov eax, dword [0x421cf4]
call fcn.004234fc
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x68]
call fcn.00428ccc
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x68]
call fcn.00428ccc
mov edx, 0x5053b4
call fcn.0042467c
mov edx, dword [ebp - 4]
mov dword [edx + 0x58], eax
mov eax, dword [ebp + 8]
push eax
mov edx, dword [ebp - 8]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.00504e24
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x68]
call fcn.00428ccc
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 8]
lea eax, [ebp - 0x10]
call fcn.0040f0a8
mov eax, dword [ebp - 4]
mov byte [eax + 0x61], 0
mov eax, dword [ebp - 4]
test byte [eax + 0x61], bl
jne 0x504f28
mov eax, dword [ebp - 4]
cmp byte [eax + 0x61], 0
jne 0x505376
test bl, bl
jne 0x505376
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x68]
call fcn.00428ccc
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x70]
call fcn.004236d0
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x24], edx
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x44], edx
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x4c], edx
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x50], edx
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x54], edx
mov eax, dword [ebp - 4]
call fcn.005054e0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebp - 4]
mov dword [edx + 0x24], eax
mov eax, dword [ebp - 4]
add eax, 0x64
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov ecx, dword [0x502a18]
call fcn.004063c0
push 0
mov eax, dword [ebp - 4]
add eax, 0x64
mov ecx, 1
mov edx, dword [0x502a18]
call fcn.00406378
add esp, 4
mov eax, dword [ebp - 4]
mov dword [eax + 0x3c], 0xffffffff
xor ecx, ecx
push ebp
push 0x50535b
push dword fs:[ecx]
mov dword fs:[ecx], esp
mov eax, dword [ebp - 4]
mov dword [eax + 0x2c], 1
mov eax, dword [ebp - 4]
mov dword [eax + 0x30], 1
mov eax, dword [ebp - 4]
mov dword [eax + 0x28], 1
mov eax, dword [ebp - 4]
call fcn.00505804
jmp 0x505293
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
movzx eax, byte [eax + ebx - 1]
cmp eax, 0x26
jg 0x50501a
je 0x505031
sub eax, 0xd
je 0x5050ca
sub eax, 0x13
je 0x505267
jmp 0x50528d
sub eax, 0x3c
je 0x505167
sub eax, 0x20
je 0x505278
jmp 0x50528d
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x2c]
cmp ebx, esi
jle 0x505047
mov ecx, esi
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.0050582c
lea eax, [ebp - 0x14]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x28]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 4]
call fcn.00504888
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
add eax, 0x14
call fcn.00404be8
mov eax, dword [ebp - 4]
cmp dword [eax + 0x14], 0
je 0x505098
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
call fcn.00404e54
mov edx, dword [ebp - 4]
add dword [edx + 0x28], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov edx, dword [ebp - 4]
mov dword [edx + 0x2c], eax
jmp 0x505293
push ebp
call fcn.00504e00
pop ecx
test al, al
je 0x50528d
mov eax, dword [ebp - 4]
mov edi, dword [eax + 0x28]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
cmp byte [eax + edi], 0x26
sete al
and eax, 0x7f
add eax, edi
mov edx, dword [ebp - 4]
mov dword [edx + 0x2c], eax
jmp 0x50528d
mov eax, dword [0x586b60]
cmp byte [eax], 0
je 0x50511e
push ebp
call fcn.00504b34
pop ecx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x28]
jge 0x5050fd
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x2c]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x28]
mov eax, dword [ebp - 4]
call fcn.0050582c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov edx, dword [ebp - 4]
mov dword [edx + 0x2c], eax
mov eax, dword [ebp - 4]
call fcn.0050574c
mov eax, dword [ebp - 4]
call fcn.00505594
jmp 0x50528d
push ebp
call fcn.00504b34
pop ecx
mov eax, dword [ebp - 4]
inc dword [eax + 0x28]
mov eax, dword [ebp - 4]
inc dword [eax + 0x2c]
push ebp
call fcn.00504e00
pop ecx
test al, al
je 0x50515a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x18]
cmp byte [edx + eax], 0xa
jne 0x50515a
mov eax, dword [ebp - 4]
inc dword [eax + 0x28]
mov eax, dword [ebp - 4]
inc dword [eax + 0x2c]
mov eax, dword [ebp - 4]
call fcn.00505804
jmp 0x505293
push ebp
call fcn.00504e00
pop ecx
test al, al
je 0x505188
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x18]
cmp byte [edx + eax], 0x3c
je 0x505231
push ebp
call fcn.00504b34
pop ecx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x28]
jge 0x5051b1
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x2c]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x28]
mov eax, dword [ebp - 4]
call fcn.0050582c
lea ecx, [ebp - 0x18]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x28]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
call fcn.00502b58
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
add eax, 0x10
call fcn.00404be8
mov eax, dword [ebp - 4]
cmp dword [eax + 0x10], 0
jne 0x5051f3
mov eax, dword [ebp - 4]
inc dword [eax + 0x28]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov edx, dword [ebp - 4]
mov dword [edx + 0x2c], eax
jmp 0x505293
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x10]
mov eax, dword [ebp - 4]
call fcn.005035d0
test al, al
jne 0x505293
mov eax, dword [ebp - 4]
inc dword [eax + 0x28]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x2c]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x28]
mov eax, dword [ebp - 4]
call fcn.0050582c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov edx, dword [ebp - 4]
mov dword [edx + 0x2c], eax
jmp 0x50528d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x28]
jge 0x505253
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x2c]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x28]
mov eax, dword [ebp - 4]
call fcn.0050582c
mov eax, dword [ebp - 4]
inc dword [eax + 0x28]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov edx, dword [ebp - 4]
mov dword [edx + 0x2c], eax
jmp 0x50528d
push ebp
call fcn.00504b34
pop ecx
mov eax, dword [ebp - 4]
call fcn.00505804
jmp 0x50528d
mov eax, dword [ebp - 4]
inc dword [eax + 0x28]
push ebp
call fcn.00504b34
pop ecx
mov eax, dword [ebp - 4]
call fcn.00505804
mov eax, dword [ebp - 4]
inc dword [eax + 0x28]
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x28]
mov eax, dword [ebp - 4]
cmp ebx, dword [eax + 0x1c]
jle 0x504ff1
push ebp
call fcn.00504b34
pop ecx
lea eax, [ebp - 0xc]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x28]
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x2c]
sub ecx, ebx
mov edx, ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
call fcn.004050b4
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x2c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
cmp edx, eax
jge 0x5052e7
mov ecx, edx
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.0050582c
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x58]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x54]
mov eax, dword [ebp - 4]
call fcn.00503048
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x4c]
jle 0x505313
mov edx, dword [ebp - 4]
mov dword [edx + 0x4c], eax
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x54], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, dword [ebp - 4]
add eax, dword [edx + 0x58]
mov edx, dword [ebp - 4]
mov dword [edx + 0x50], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x505362
push 0
mov eax, dword [ebp + 8]
push eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x50]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
xor ecx, ecx
call fcn.00533e78
mov eax, dword [ebp - 4]
mov byte [eax + 0x61], 0
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5053a0
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.00404bb8
lea eax, [ebp - 0xc]
call fcn.00404b94
ret