Function at 0x5590d0
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 0x559645
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp byte [eax + 0x61], 0
jne 0x5591b7
push 0
mov eax, dword [ebp - 4]
add eax, 0x74
mov ecx, 1
mov edx, dword [0x556c14]
call fcn.00407178
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 [0x430918]
call fcn.004321fc
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x68]
call fcn.00437ef4
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.00437ef4
mov edx, 0x559660
call fcn.004335d4
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.005590d0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x68]
call fcn.00437ef4
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 8]
lea eax, [ebp - 0x10]
call fcn.0041252c
mov eax, dword [ebp - 4]
mov byte [eax + 0x61], 0
mov eax, dword [ebp - 4]
test byte [eax + 0x61], bl
jne 0x5591d4
mov eax, dword [ebp - 4]
cmp byte [eax + 0x61], 0
jne 0x559622
test bl, bl
jne 0x559622
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x68]
call fcn.00437ef4
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x70]
call fcn.004323d0
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.0055978c
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 [0x556ba0]
call fcn.004071c0
push 0
mov eax, dword [ebp - 4]
add eax, 0x64
mov ecx, 1
mov edx, dword [0x556ba0]
call fcn.00407178
add esp, 4
mov eax, dword [ebp - 4]
mov dword [eax + 0x3c], 0xffffffff
xor ecx, ecx
push ebp
push 0x559607
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.00559ab0
jmp 0x55953f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
movzx eax, byte [eax + ebx - 1]
cmp eax, 0x26
jg 0x5592c6
je 0x5592dd
sub eax, 0xd
je 0x559376
sub eax, 0x13
je 0x559513
jmp 0x559539
sub eax, 0x3c
je 0x559413
sub eax, 0x20
je 0x559524
jmp 0x559539
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x2c]
cmp ebx, esi
jle 0x5592f3
mov ecx, esi
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.00559ad8
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.00558b34
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
add eax, 0x14
call fcn.004059b8
mov eax, dword [ebp - 4]
cmp dword [eax + 0x14], 0
je 0x559344
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
call fcn.00405c40
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 0x55953f
push ebp
call fcn.005590ac
pop ecx
test al, al
je 0x559539
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 0x559539
mov eax, dword [0x63d088]
cmp byte [eax], 0
je 0x5593ca
push ebp
call fcn.00558de0
pop ecx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x28]
jge 0x5593a9
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.00559ad8
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.005599f8
mov eax, dword [ebp - 4]
call fcn.00559840
jmp 0x559539
push ebp
call fcn.00558de0
pop ecx
mov eax, dword [ebp - 4]
inc dword [eax + 0x28]
mov eax, dword [ebp - 4]
inc dword [eax + 0x2c]
push ebp
call fcn.005590ac
pop ecx
test al, al
je 0x559406
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 0x559406
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.00559ab0
jmp 0x55953f
push ebp
call fcn.005590ac
pop ecx
test al, al
je 0x559434
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 0x5594dd
push ebp
call fcn.00558de0
pop ecx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x28]
jge 0x55945d
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.00559ad8
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.00556e04
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
add eax, 0x10
call fcn.004059b8
mov eax, dword [ebp - 4]
cmp dword [eax + 0x10], 0
jne 0x55949f
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 0x55953f
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x10]
mov eax, dword [ebp - 4]
call fcn.0055787c
test al, al
jne 0x55953f
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.00559ad8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
mov edx, dword [ebp - 4]
mov dword [edx + 0x2c], eax
jmp 0x559539
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x28]
jge 0x5594ff
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.00559ad8
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 0x559539
push ebp
call fcn.00558de0
pop ecx
mov eax, dword [ebp - 4]
call fcn.00559ab0
jmp 0x559539
mov eax, dword [ebp - 4]
inc dword [eax + 0x28]
push ebp
call fcn.00558de0
pop ecx
mov eax, dword [ebp - 4]
call fcn.00559ab0
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 0x55929d
push ebp
call fcn.00558de0
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.00405ea0
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x2c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28]
cmp edx, eax
jge 0x559593
mov ecx, edx
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.00559ad8
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.005572f4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x4c]
jle 0x5595bf
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 0x55960e
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.0057a514
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 0x55964c
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.00405988
lea eax, [ebp - 0xc]
call fcn.00405964
ret