Function at 0x559fc8
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 0x55a53d
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp byte [eax + 0x61], 0
jne 0x55a0af
push 0
mov eax, dword [ebp - 4]
add eax, 0x74
mov ecx, 1
mov edx, dword [0x557b0c]
call fcn.00407034
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 [0x430c8c]
call fcn.00432570
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x68]
call fcn.00438268
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.00438268
mov edx, 0x55a558
call fcn.00433948
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.00559fc8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x68]
call fcn.00438268
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 8]
lea eax, [ebp - 0x10]
call fcn.004126f4
mov eax, dword [ebp - 4]
mov byte [eax + 0x61], 0
mov eax, dword [ebp - 4]
test byte [eax + 0x61], bl
jne 0x55a0cc
mov eax, dword [ebp - 4]
cmp byte [eax + 0x61], 0
jne 0x55a51a
test bl, bl
jne 0x55a51a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x68]
call fcn.00438268
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x70]
call fcn.00432744
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.0055a684
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 [0x557a98]
call fcn.0040707c
push 0
mov eax, dword [ebp - 4]
add eax, 0x64
mov ecx, 1
mov edx, dword [0x557a98]
call fcn.00407034
add esp, 4
mov eax, dword [ebp - 4]
mov dword [eax + 0x3c], 0xffffffff
xor ecx, ecx
push ebp
push 0x55a4ff
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.0055a9a8
jmp 0x55a437
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
movzx eax, byte [eax + ebx - 1]
cmp eax, 0x26
jg 0x55a1be
je 0x55a1d5
sub eax, 0xd
je 0x55a26e
sub eax, 0x13
je 0x55a40b
jmp 0x55a431
sub eax, 0x3c
je 0x55a30b
sub eax, 0x20
je 0x55a41c
jmp 0x55a431
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x2c]
cmp ebx, esi
jle 0x55a1eb
mov ecx, esi
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.0055a9d0
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.00559a2c
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
add eax, 0x14
call fcn.00405874
mov eax, dword [ebp - 4]
cmp dword [eax + 0x14], 0
je 0x55a23c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
call fcn.00405afc
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 0x55a437
push ebp
call fcn.00559fa4
pop ecx
test al, al
je 0x55a431
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 0x55a431
mov eax, dword [0x63f108]
cmp byte [eax], 0
je 0x55a2c2
push ebp
call fcn.00559cd8
pop ecx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x28]
jge 0x55a2a1
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.0055a9d0
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.0055a8f0
mov eax, dword [ebp - 4]
call fcn.0055a738
jmp 0x55a431
push ebp
call fcn.00559cd8
pop ecx
mov eax, dword [ebp - 4]
inc dword [eax + 0x28]
mov eax, dword [ebp - 4]
inc dword [eax + 0x2c]
push ebp
call fcn.00559fa4
pop ecx
test al, al
je 0x55a2fe
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 0x55a2fe
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.0055a9a8
jmp 0x55a437
push ebp
call fcn.00559fa4
pop ecx
test al, al
je 0x55a32c
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 0x55a3d5
push ebp
call fcn.00559cd8
pop ecx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x28]
jge 0x55a355
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.0055a9d0
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.00557cfc
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
add eax, 0x10
call fcn.00405874
mov eax, dword [ebp - 4]
cmp dword [eax + 0x10], 0
jne 0x55a397
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 0x55a437
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x10]
mov eax, dword [ebp - 4]
call fcn.00558774
test al, al
jne 0x55a437
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.0055a9d0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov edx, dword [ebp - 4]
mov dword [edx + 0x2c], eax
jmp 0x55a431
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x28]
jge 0x55a3f7
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.0055a9d0
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 0x55a431
push ebp
call fcn.00559cd8
pop ecx
mov eax, dword [ebp - 4]
call fcn.0055a9a8
jmp 0x55a431
mov eax, dword [ebp - 4]
inc dword [eax + 0x28]
push ebp
call fcn.00559cd8
pop ecx
mov eax, dword [ebp - 4]
call fcn.0055a9a8
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 0x55a195
push ebp
call fcn.00559cd8
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.00405d5c
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x2c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
cmp edx, eax
jge 0x55a48b
mov ecx, edx
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.0055a9d0
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.005581ec
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x4c]
jle 0x55a4b7
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 0x55a506
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.0057b40c
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 0x55a544
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.00405844
lea eax, [ebp - 0xc]
call fcn.00405820
ret