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

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x1c
push 0
push 0
dec ecx
jne 0x556df0
push ebx
push esi
push edi
mov dword [ebp - 4], edx
mov edi, eax
xor eax, eax
push ebp
push 0x557a7c
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp dword [eax + 8], 1
sbb edx, edx
inc edx
mov eax, dword [edi + 0x564]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
cmp dword [eax + 0xc], 1
sbb edx, edx
inc edx
mov eax, dword [edi + 0x53c]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
cmp dword [eax + 0x10], 1
sbb edx, edx
inc edx
mov eax, dword [edi + 0x540]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
cmp dword [eax + 0x14], 1
sbb edx, edx
inc edx
mov eax, dword [edi + 0x544]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
cmp dword [eax + 0x18], 1
sbb edx, edx
inc edx
mov eax, dword [edi + 0x548]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
cmp dword [eax + 0x1c], 1
sbb edx, edx
inc edx
mov eax, dword [edi + 0x54c]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 1
sbb edx, edx
inc edx
mov eax, dword [edi + 0x550]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
cmp dword [eax + 0x24], 1
sbb edx, edx
inc edx
mov eax, dword [edi + 0x554]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
cmp dword [eax + 0x28], 1
sbb edx, edx
inc edx
mov eax, dword [edi + 0x558]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
cmp dword [eax + 0x2c], 1
sbb edx, edx
inc edx
mov eax, dword [edi + 0x55c]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
cmp dword [eax + 0x30], 1
sbb edx, edx
inc edx
mov eax, dword [edi + 0x560]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 4]
add edx, 0x2f0
mov ecx, 0x40
call fcn.0040500c
mov edx, dword [ebp - 0xc]
mov eax, dword [edi + 0x2f0]
call fcn.004a68a4
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 4]
add edx, 0x334
mov ecx, 0x40
call fcn.0040500c
mov edx, dword [ebp - 0x10]
mov eax, dword [edi + 0x330]
call fcn.004a68a4
lea eax, [ebp - 0x14]
mov edx, dword [ebp - 4]
add edx, 0x378
mov ecx, 0x40
call fcn.0040500c
mov edx, dword [ebp - 0x14]
mov eax, dword [edi + 0x340]
call fcn.004a68a4
lea eax, [ebp - 0x18]
mov edx, dword [ebp - 4]
add edx, 0x3bc
mov ecx, 0x40
call fcn.0040500c
mov edx, dword [ebp - 0x18]
mov eax, dword [edi + 0x350]
call fcn.004a68a4
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 4]
movzx eax, word [eax + 0x2ee]
call fcn.00409880
mov edx, dword [ebp - 0x20]
lea eax, [ebp - 0x1c]
call fcn.00405040
mov edx, dword [ebp - 0x1c]
mov eax, dword [edi + 0x2f8]
call fcn.004a68a4
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 4]
movzx eax, word [eax + 0x332]
call fcn.00409880
mov edx, dword [ebp - 0x28]
lea eax, [ebp - 0x24]
call fcn.00405040
mov edx, dword [ebp - 0x24]
mov eax, dword [edi + 0x334]
call fcn.004a68a4
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 4]
movzx eax, word [eax + 0x376]
call fcn.00409880
mov edx, dword [ebp - 0x30]
lea eax, [ebp - 0x2c]
call fcn.00405040
mov edx, dword [ebp - 0x2c]
mov eax, dword [edi + 0x344]
call fcn.004a68a4
lea edx, [ebp - 0x38]
mov eax, dword [ebp - 4]
movzx eax, word [eax + 0x3ba]
call fcn.00409880
mov edx, dword [ebp - 0x38]
lea eax, [ebp - 0x34]
call fcn.00405040
mov edx, dword [ebp - 0x34]
mov eax, dword [edi + 0x354]
call fcn.004a68a4
mov eax, dword [ebp - 4]
test byte [eax + 0x2ec], 1
setne dl
mov eax, dword [edi + 0x43c]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
test byte [eax + 0x330], 1
setne dl
mov eax, dword [edi + 0x450]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
test byte [eax + 0x374], 1
setne dl
mov eax, dword [edi + 0x454]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
test byte [eax + 0x3b8], 1
setne dl
mov eax, dword [edi + 0x460]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
test byte [eax + 0x2ec], 2
setne dl
mov eax, dword [edi + 0x440]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
test byte [eax + 0x330], 2
setne dl
mov eax, dword [edi + 0x44c]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
test byte [eax + 0x374], 2
setne dl
mov eax, dword [edi + 0x458]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
test byte [eax + 0x3b8], 2
setne dl
mov eax, dword [edi + 0x464]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
test byte [eax + 0x2ec], 4
setne dl
mov eax, dword [edi + 0x444]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
test byte [eax + 0x330], 4
setne dl
mov eax, dword [edi + 0x448]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
test byte [eax + 0x374], 4
setne dl
mov eax, dword [edi + 0x45c]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
test byte [eax + 0x3b8], 4
setne dl
mov eax, dword [edi + 0x468]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
lea eax, [ebp - 0x3c]
mov edx, dword [ebp - 4]
add edx, 0x3fc
mov ecx, 0x80
call fcn.0040500c
mov edx, dword [ebp - 0x3c]
mov eax, dword [edi + 0x310]
call fcn.004a68a4
lea eax, [ebp - 0x40]
mov edx, dword [ebp - 4]
add edx, 0x47c
mov ecx, 0x80
call fcn.0040500c
mov edx, dword [ebp - 0x40]
mov eax, dword [edi + 0x360]
call fcn.004a68a4
lea eax, [ebp - 0x44]
mov edx, dword [ebp - 4]
add edx, 0x4fc
mov ecx, 0x80
call fcn.0040500c
mov edx, dword [ebp - 0x44]
mov eax, dword [edi + 0x368]
call fcn.004a68a4
lea eax, [ebp - 0x48]
mov edx, dword [ebp - 4]
add edx, 0x57c
mov ecx, 0x80
call fcn.0040500c
mov edx, dword [ebp - 0x48]
mov eax, dword [edi + 0x370]
call fcn.004a68a4
mov eax, dword [ebp - 4]
push dword [eax + 0x2dc]
call sub.wsock32.dll_inet_ntoa
mov edx, eax
lea eax, [ebp - 0x4c]
call fcn.00404f94
mov edx, dword [ebp - 0x4c]
mov eax, dword [edi + 0x390]
call fcn.004a68a4
mov eax, dword [ebp - 4]
push dword [eax + 0x2e0]
call sub.wsock32.dll_inet_ntoa
mov edx, eax
lea eax, [ebp - 0x50]
call fcn.00404f94
mov edx, dword [ebp - 0x50]
mov eax, dword [edi + 0x398]
call fcn.004a68a4
mov eax, dword [ebp - 4]
push dword [eax + 0x2e4]
call sub.wsock32.dll_inet_ntoa
mov edx, eax
lea eax, [ebp - 0x54]
call fcn.00404f94
mov edx, dword [ebp - 0x54]
mov eax, dword [edi + 0x3a0]
call fcn.004a68a4
mov eax, dword [ebp - 4]
push dword [eax + 0x2e8]
call sub.wsock32.dll_inet_ntoa
mov edx, eax
lea eax, [ebp - 0x58]
call fcn.00404f94
mov edx, dword [ebp - 0x58]
mov eax, dword [edi + 0x3a8]
call fcn.004a68a4
lea eax, [ebp - 0x5c]
mov edx, dword [ebp - 4]
add edx, 0x600
mov ecx, 0x40
call fcn.0040500c
mov edx, dword [ebp - 0x5c]
mov eax, dword [edi + 0x514]
call fcn.004a68a4
lea eax, [ebp - 0x60]
mov edx, dword [ebp - 4]
add edx, 0x6c4
mov ecx, 0x40
call fcn.0040500c
mov edx, dword [ebp - 0x60]
mov eax, dword [edi + 0x4f8]
call fcn.004a68a4
lea eax, [ebp - 0x64]
mov edx, dword [ebp - 4]
add edx, 0x788
mov ecx, 0x40
call fcn.0040500c
mov edx, dword [ebp - 0x64]
mov eax, dword [edi + 0x4dc]
call fcn.004a68a4
lea eax, [ebp - 0x68]
mov edx, dword [ebp - 4]
add edx, 0x84c
mov ecx, 0x40
call fcn.0040500c
mov edx, dword [ebp - 0x68]
mov eax, dword [edi + 0x424]
call fcn.004a68a4
lea eax, [ebp - 0x6c]
mov edx, dword [ebp - 4]
add edx, 0x640
mov ecx, 0x40
call fcn.0040500c
mov edx, dword [ebp - 0x6c]
mov eax, dword [edi + 0x51c]
call fcn.004a68a4
lea eax, [ebp - 0x70]
mov edx, dword [ebp - 4]
add edx, 0x704
mov ecx, 0x40
call fcn.0040500c
mov edx, dword [ebp - 0x70]
mov eax, dword [edi + 0x500]
call fcn.004a68a4
lea eax, [ebp - 0x74]
mov edx, dword [ebp - 4]
add edx, 0x7c8
mov ecx, 0x40
call fcn.0040500c
mov edx, dword [ebp - 0x74]
mov eax, dword [edi + 0x4e4]
call fcn.004a68a4
lea eax, [ebp - 0x78]
mov edx, dword [ebp - 4]
add edx, 0x88c
mov ecx, 0x40
call fcn.0040500c
mov edx, dword [ebp - 0x78]
mov eax, dword [edi + 0x47c]
call fcn.004a68a4
lea eax, [ebp - 0x7c]
mov edx, dword [ebp - 4]
add edx, 0x680
mov ecx, 0x40
call fcn.0040500c
mov edx, dword [ebp - 0x7c]
mov eax, dword [edi + 0x520]
call fcn.004a68a4
lea eax, [ebp - 0x80]
mov edx, dword [ebp - 4]
add edx, 0x744
mov ecx, 0x40
call fcn.0040500c
mov edx, dword [ebp - 0x80]
mov eax, dword [edi + 0x504]
call fcn.004a68a4
lea eax, [ebp - 0x84]
mov edx, dword [ebp - 4]
add edx, 0x808
mov ecx, 0x40
call fcn.0040500c
mov edx, dword [ebp - 0x84]
mov eax, dword [edi + 0x4e8]
call fcn.004a68a4
lea eax, [ebp - 0x88]
mov edx, dword [ebp - 4]
add edx, 0x8cc
mov ecx, 0x40
call fcn.0040500c
mov edx, dword [ebp - 0x88]
mov eax, dword [edi + 0x484]
call fcn.004a68a4
lea edx, [ebp - 0x90]
mov eax, dword [ebp - 4]
movzx eax, word [eax + 0x5fe]
call fcn.00409880
mov edx, dword [ebp - 0x90]
lea eax, [ebp - 0x8c]
call fcn.00405040
mov edx, dword [ebp - 0x8c]
mov eax, dword [edi + 0x518]
call fcn.004a68a4
lea edx, [ebp - 0x98]
mov eax, dword [ebp - 4]
movzx eax, word [eax + 0x6c2]
call fcn.00409880
mov edx, dword [ebp - 0x98]
lea eax, [ebp - 0x94]
call fcn.00405040
mov edx, dword [ebp - 0x94]
mov eax, dword [edi + 0x4fc]
call fcn.004a68a4
lea edx, [ebp - 0xa0]
mov eax, dword [ebp - 4]
movzx eax, word [eax + 0x786]
call fcn.00409880
mov edx, dword [ebp - 0xa0]
lea eax, [ebp - 0x9c]
call fcn.00405040
mov edx, dword [ebp - 0x9c]
mov eax, dword [edi + 0x4e0]
call fcn.004a68a4
lea edx, [ebp - 0xa8]
mov eax, dword [ebp - 4]
movzx eax, word [eax + 0x84a]
call fcn.00409880
mov edx, dword [ebp - 0xa8]
lea eax, [ebp - 0xa4]
call fcn.00405040
mov edx, dword [ebp - 0xa4]
mov eax, dword [edi + 0x428]
call fcn.004a68a4
mov eax, dword [ebp - 4]
cmp word [eax + 0x5fc], 1
sete dl
mov eax, dword [edi + 0x524]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
cmp word [eax + 0x6c0], 1
sete dl
mov eax, dword [edi + 0x508]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
cmp word [eax + 0x784], 1
sete dl
mov eax, dword [edi + 0x4ec]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
cmp word [eax + 0x848], 1
sete dl
mov eax, dword [edi + 0x478]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
cmp word [eax + 0x5fc], 2
sete dl
mov eax, dword [edi + 0x52c]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
cmp word [eax + 0x6c0], 2
sete dl
mov eax, dword [edi + 0x510]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
cmp word [eax + 0x784], 2
sete dl
mov eax, dword [edi + 0x4f4]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
cmp word [eax + 0x848], 2
sete dl
mov eax, dword [edi + 0x494]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
cmp word [eax + 0x5fc], 3
sete dl
mov eax, dword [edi + 0x528]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
cmp word [eax + 0x6c0], 3
sete dl
mov eax, dword [edi + 0x50c]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
cmp word [eax + 0x784], 3
sete dl
mov eax, dword [edi + 0x4f0]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 4]
cmp word [eax + 0x848], 3
sete dl
mov eax, dword [edi + 0x48c]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
lea edx, [ebp - 0xb0]
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x34]
call fcn.00409880
mov edx, dword [ebp - 0xb0]
lea eax, [ebp - 0xac]
call fcn.00405040
mov edx, dword [ebp - 0xac]
mov eax, dword [edi + 0x3fc]
call fcn.004a68a4
lea edx, [ebp - 0xb8]
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x35]
call fcn.00409880
mov edx, dword [ebp - 0xb8]
lea eax, [ebp - 0xb4]
call fcn.00405040
mov edx, dword [ebp - 0xb4]
mov eax, dword [edi + 0x3f0]
call fcn.004a68a4
lea edx, [ebp - 0xc0]
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x36]
call fcn.00409880
mov edx, dword [ebp - 0xc0]
lea eax, [ebp - 0xbc]
call fcn.00405040
mov edx, dword [ebp - 0xbc]
mov eax, dword [edi + 0x3e0]
call fcn.004a68a4
lea edx, [ebp - 0xc8]
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x37]
call fcn.00409880
mov edx, dword [ebp - 0xc8]
lea eax, [ebp - 0xc4]
call fcn.00405040
mov edx, dword [ebp - 0xc4]
mov eax, dword [edi + 0x3d0]
call fcn.004a68a4
mov eax, dword [edi + 0x400]
mov edx, 0x557a94
call fcn.004a68a4
mov eax, dword [edi + 0x3ec]
mov edx, 0x557a94
call fcn.004a68a4
mov eax, dword [edi + 0x3dc]
mov edx, 0x557a94
call fcn.004a68a4
mov eax, dword [edi + 0x3c4]
mov edx, 0x557a94
call fcn.004a68a4
xor eax, eax
mov dword [ebp - 8], eax
xor esi, esi
xor ebx, ebx
mov eax, dword [ebp - 8]
shl eax, 3
lea eax, [eax + eax*2]
shl eax, 2
mov edx, esi
shl edx, 2
add eax, edx
add eax, ebx
mov edx, dword [ebp - 4]
cmp byte [edx + eax + 0x3c], 1
jne 0x557813
mov cl, 0x64
mov dl, 0xff
xor eax, eax
call fcn.00408020
mov edx, eax
mov eax, dword [ebp - 8]
shl eax, 3
lea eax, [eax + eax*2]
shl eax, 2
mov ecx, esi
shl ecx, 2
add eax, ecx
add eax, ebx
mov eax, dword [edi + eax*4 + 0x570]
mov eax, dword [eax + 0x16c]
call fcn.00424da4
jmp 0x557847
mov cl, 0xff
mov dl, 0xff
mov al, 0xff
call fcn.00408020
mov edx, eax
mov eax, dword [ebp - 8]
shl eax, 3
lea eax, [eax + eax*2]
shl eax, 2
mov ecx, esi
shl ecx, 2
add eax, ecx
add eax, ebx
mov eax, dword [edi + eax*4 + 0x570]
mov eax, dword [eax + 0x16c]
call fcn.00424da4
inc ebx
cmp ebx, 4
jne 0x5577be
inc esi
cmp esi, 0x18
jne 0x5577bc
inc dword [ebp - 8]
cmp dword [ebp - 8], 7
jne 0x5577ba
lea eax, [ebp - 0xcc]
mov edx, dword [ebp - 4]
add edx, 0x90c
mov ecx, pe_nt_image_headers32
call fcn.00405024
mov edx, dword [ebp - 0xcc]
mov eax, dword [edi + 0x534]
call fcn.004a88d0
lea eax, [ebp - 0xd0]
mov edx, dword [ebp - 4]
add edx, 0xb0c
mov ecx, pe_nt_image_headers32
call fcn.00405024
mov edx, dword [ebp - 0xd0]
mov eax, dword [edi + 0x380]
call fcn.004a68a4
lea eax, [ebp - 0xd4]
mov edx, dword [ebp - 4]
add edx, 0xd0c
mov ecx, pe_nt_image_headers32
call fcn.00405024
mov edx, dword [ebp - 0xd4]
mov eax, dword [edi + 0x434]
call fcn.004a68a4
lea eax, [ebp - 0xd8]
mov edx, dword [ebp - 4]
add edx, 0xf0c
mov ecx, pe_nt_image_headers32
call fcn.00405024
mov edx, dword [ebp - 0xd8]
mov eax, dword [edi + 0x388]
call fcn.004a68a4
lea eax, [ebp - 0xdc]
mov edx, dword [ebp - 4]
add edx, 0x110c
mov ecx, pe_nt_image_headers32
call fcn.00405024
mov edx, dword [ebp - 0xdc]
mov eax, dword [edi + 0x568]
call fcn.004a68a4
lea eax, [ebp - 0xe0]
mov edx, dword [ebp - 4]
add edx, 0x130c
mov ecx, pe_nt_image_headers32
call fcn.00405024
mov edx, dword [ebp - 0xe0]
mov eax, dword [edi + 0x56c]
call fcn.004a68a4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x557a86
lea eax, [ebp - 0xe0]
mov edx, 6
call fcn.00404e74
lea eax, [ebp - 0xc8]
call fcn.00404730
lea eax, [ebp - 0xc4]
call fcn.00404e5c
lea eax, [ebp - 0xc0]
call fcn.00404730
lea eax, [ebp - 0xbc]
call fcn.00404e5c
lea eax, [ebp - 0xb8]
call fcn.00404730
lea eax, [ebp - 0xb4]
call fcn.00404e5c
lea eax, [ebp - 0xb0]
call fcn.00404730
lea eax, [ebp - 0xac]
call fcn.00404e5c
lea eax, [ebp - 0xa8]
call fcn.00404730
lea eax, [ebp - 0xa4]
call fcn.00404e5c
lea eax, [ebp - 0xa0]
call fcn.00404730
lea eax, [ebp - 0x9c]
call fcn.00404e5c
lea eax, [ebp - 0x98]
call fcn.00404730
lea eax, [ebp - 0x94]
call fcn.00404e5c
lea eax, [ebp - 0x90]
call fcn.00404730
lea eax, [ebp - 0x8c]
mov edx, 0x15
call fcn.00404e74
lea eax, [ebp - 0x38]
call fcn.00404730
lea eax, [ebp - 0x34]
call fcn.00404e5c
lea eax, [ebp - 0x30]
call fcn.00404730
lea eax, [ebp - 0x2c]
call fcn.00404e5c
lea eax, [ebp - 0x28]
call fcn.00404730
lea eax, [ebp - 0x24]
call fcn.00404e5c
lea eax, [ebp - 0x20]
call fcn.00404730
lea eax, [ebp - 0x1c]
mov edx, 5
call fcn.00404e74
ret