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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffcc
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x574a71
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x30], 0
je 0x574a4e
lea edx, [ebp - 0x2c]
mov eax, dword [ebp - 8]
call fcn.0056dab0
mov eax, dword [ebp - 0x2c]
lea edx, [ebp - 0x28]
call fcn.00409404
cmp dword [ebp - 0x28], 0
jne 0x5740bf
mov eax, dword [ebp - 8]
cmp dword [eax + 0xf0], 0
je 0x574a4e
mov eax, dword [ebp - 8]
mov byte [eax + 0xc4], 1
mov byte [ebp - 0xd], 0
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0xec], edx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xdc]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
mov al, byte [eax + 0x2c]
mov byte [ebp - 0x15], al
mov eax, dword [ebp - 8]
mov al, byte [eax + 0x3d]
mov byte [ebp - 0x16], al
mov eax, dword [ebp - 8]
mov byte [eax + 0x3d], 1
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xd8]
mov edx, dword [ebp - 8]
mov dword [edx + 0xdc], eax
mov eax, dword [ebp - 8]
mov byte [eax + 0x2c], 7
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x1a0]
cmp byte [ebx + 0x11], 0
je 0x574176
cmp byte [ebx + 0x10], 0
je 0x574176
mov eax, dword [ebp - 8]
cmp byte [eax + 0x196], 0
je 0x57413e
mov esi, 0x19
jmp 0x574140
xor esi, esi
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x30]
mov edx, dword [eax]
call dword [edx + 0x14]
add esi, 0x3a
imul esi
add eax, dword [ebx + 0xc]
add eax, 0x16
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0x144]
movzx edx, word [edx + 0x18]
add eax, edx
add eax, 0x800
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0x1a0]
mov dword [edx + 0xc], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x1a0]
mov dl, byte [eax + 0x11]
cmp dl, 1
jne 0x5741a6
mov eax, dword [ebp - 8]
call fcn.00574ca8
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0x1a0]
sub eax, dword [edx + 0xc]
mov edx, dword [ebp - 8]
mov dword [edx + 0x1fc], eax
jmp 0x5741b7
cmp dl, 2
jne 0x5741b7
mov eax, dword [eax + 8]
mov edx, dword [ebp - 8]
mov dword [edx + 0x1fc], eax
mov eax, dword [ebp - 8]
cmp byte [eax + 0x195], 0
je 0x5741d2
mov dl, 1
mov eax, dword [0x410d70]
call fcn.0040315c
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
cmp byte [eax + 0x238], 0
jne 0x57420c
mov eax, dword [ebp - 8]
cmp byte [eax + 0x168], 0
jne 0x57420c
mov eax, dword [ebp - 8]
cmp byte [eax + 0x169], 0
jne 0x57420c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x30]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x57420c
push ebp
call fcn.00573810
pop ecx
xor ecx, ecx
push ebp
push 0x574a44
push dword fs:[ecx]
mov dword fs:[ecx], esp
mov eax, dword [ebp - 8]
cmp byte [eax + 0xce], 0
je 0x574238
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xf0]
call fcn.0041489c
test eax, eax
jg 0x57424f
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 8]
call fcn.0056dab0
mov eax, dword [ebp - 0x28]
call fcn.0056624c
test al, al
je 0x5742ab
push ebp
call fcn.00573f08
pop ecx
mov eax, dword [ebp - 8]
mov byte [eax + 0x200], 1
mov eax, dword [ebp - 8]
cmp byte [eax + 0xce], 0
jne 0x574292
lea edx, [ebp - 0x2c]
mov eax, dword [ebp - 8]
call fcn.005765d8
mov eax, dword [ebp - 0x2c]
lea edx, [ebp - 0x28]
call fcn.0056657c
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
add eax, 0x230
call fcn.00403dcc
mov eax, dword [ebp - 8]
call fcn.00574ab4
mov eax, dword [ebp - 8]
call fcn.0056e358
push ebp
call fcn.0057321c
pop ecx
jmp 0x5742eb
push ebp
call fcn.00573f08
pop ecx
mov eax, dword [ebp - 8]
cmp byte [eax + 0xce], 0
jne 0x5742d9
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 8]
call fcn.0056dab0
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
add eax, 0x230
call fcn.00403dcc
mov eax, dword [ebp - 8]
mov byte [eax + 0x200], 0
mov eax, dword [ebp - 8]
call fcn.00574ab4
mov eax, dword [ebp - 8]
cmp byte [eax + 0x238], 0
jne 0x57437d
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x30]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x57437d
mov byte [ebp - 0x1d], 0
mov eax, dword [ebp - 8]
cmp word [eax + 0x1c2], 0
je 0x574356
mov eax, dword [ebp - 8]
push dword [eax + 0x184]
push dword [eax + 0x180]
mov eax, dword [ebp - 8]
add eax, 0x228
push eax
lea eax, [ebp - 0x1d]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x30]
mov edx, dword [eax]
call dword [edx + 0x14]
mov ecx, eax
mov ebx, dword [ebp - 8]
mov edx, dword [ebp - 8]
mov eax, dword [ebx + 0x1c4]
call dword [ebx + 0x1c0]
cmp byte [ebp - 0x1d], 0
je 0x57437d
lea edx, [ebp - 0x28]
mov eax, 0xbb
call fcn.00409694
mov ecx, dword [ebp - 0x28]
mov dl, 1
mov eax, dword [0x5680dc]
call fcn.0040cde4
call fcn.00403870
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x1a0]
cmp byte [eax + 0x11], 0
je 0x5743a5
mov eax, dword [ebp - 8]
fild qword [eax + 0x180]
fmul dword [0x574a84]
mov eax, dword [ebp - 8]
fistp qword [eax + 0x180]
wait
mov eax, dword [ebp - 8]
cmp byte [eax + 0x238], 0
jne 0x574481
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x30]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x574481
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x30]
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
dec esi
test esi, esi
jl 0x574481
inc esi
xor ebx, ebx
mov dl, 1
mov eax, dword [0x5669b4]
call fcn.00566c38
mov edx, dword [ebp - 8]
mov dword [edx + 0x22c], eax
xor eax, eax
push ebp
push 0x574451
push dword fs:[eax]
mov dword fs:[eax], esp
lea ecx, [ebp - 0x28]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x30]
mov edx, ebx
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
call fcn.00575414
test al, al
je 0x57442e
push ebp
mov eax, ebx
call fcn.00572e18
pop ecx
jmp 0x574447
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x22c]
call fcn.0040318c
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x22c], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x574479
inc ebx
dec esi
jne 0x5743e1
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x20c]
call fcn.00414880
mov edx, dword [ebp - 8]
mov ebx, dword [edx + 0x228]
mov dword [ebx + 0x14], eax
mov eax, dword [ebp - 8]
mov ax, word [eax + 0xec]
mov word [ebx + 0xa], ax
xor eax, eax
mov dword [ebp - 0x24], eax
mov edi, dword [ebx + 0x14]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x224]
mov esi, dword [eax + 0xc]
dec esi
test esi, esi
jl 0x574574
inc esi
xor ebx, ebx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x224]
mov edx, ebx
call fcn.005641a4
mov edx, dword [0x5669b4]
call fcn.00403314
mov edx, dword [ebp - 8]
mov dword [edx + 0x22c], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x1a0]
cmp byte [eax + 0x11], 0
je 0x574555
mov eax, dword [ebp - 8]
call fcn.00574d1c
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x22c]
call fcn.00567700
pop edx
cmp edx, eax
jge 0x574555
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x20c]
call fcn.00414880
sub eax, edi
add dword [ebp - 0x24], eax
xor edi, edi
mov eax, dword [ebp - 8]
call fcn.00574e70
test ebx, ebx
jne 0x574555
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x228]
xor edx, edx
mov dword [eax + 0x14], edx
mov edx, dword [ebp - 8]
mov dx, word [edx + 0xec]
mov word [eax + 0xa], dx
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x20c]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x22c]
call fcn.00567140
inc ebx
dec esi
jne 0x5744c9
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x20c]
call fcn.00414880
sub eax, edi
add dword [ebp - 0x24], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x228]
mov edx, dword [ebp - 0x24]
mov dword [eax + 0x10], edx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x1a0]
cmp byte [eax + 0x11], 0
je 0x5745c9
mov eax, dword [ebp - 8]
call fcn.00574d1c
mov ebx, eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x228]
call fcn.00567c1c
cmp ebx, eax
jge 0x5745c9
mov eax, dword [ebp - 8]
call fcn.00574e70
mov edx, dword [ebp - 8]
mov dx, word [edx + 0xec]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x228]
mov word [eax + 8], dx
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0x20c]
call fcn.00567a1c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x1a0]
cmp byte [eax + 0x11], 1
jne 0x574605
mov eax, dword [ebp - 8]
call fcn.00574d38
mov byte [ebp - 0xd], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x574a4e
push ebp
call fcn.00573fa4
pop ecx
mov eax, dword [ebp - 8]
cmp byte [eax + 0xce], 0
jne 0x574642
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x20c]
call fcn.0040318c
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x20c], edx
cmp byte [ebp - 0xd], 0
je 0x57499e
mov eax, dword [ebp - 8]
cmp byte [eax + 0xce], 0
jne 0x57466f
mov eax, dword [ebp - 8]
cmp byte [eax + 0x201], 0
jne 0x57466f
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 8]
call fcn.0056dab0
mov eax, dword [ebp - 8]
cmp byte [eax + 0x201], 0
jne 0x57469b
mov eax, dword [ebp - 8]
cmp byte [eax + 0xce], 0
jne 0x57469b
mov eax, dword [ebp - 8]
cmp byte [eax + 0x200], 0
je 0x57469b
mov eax, dword [ebp - 8]
call fcn.0056e6a0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x1a0]
cmp byte [eax + 0x11], 2
jne 0x574774
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0xec]
test ebx, ebx
jle 0x574704
lea eax, [ebp - 0x28]
push eax
inc ebx
mov dword [ebp - 0x34], ebx
mov byte [ebp - 0x30], 0
lea edx, [ebp - 0x34]
xor ecx, ecx
mov eax, 0x574a90
call fcn.0040a6d8
mov ecx, dword [ebp - 0x28]
lea eax, [ebp - 0x2c]
mov edx, 0x574aa0
call fcn.00404040
mov edx, dword [ebp - 0x2c]
lea ecx, [ebp - 0x28]
mov eax, dword [ebp - 0x1c]
call fcn.00409a94
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx + 0x30]
jmp 0x574797
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx + 0x30]
lea eax, [ebp - 0x28]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xec]
inc eax
mov dword [ebp - 0x34], eax
mov byte [ebp - 0x30], 0
lea edx, [ebp - 0x34]
xor ecx, ecx
mov eax, 0x574a90
call fcn.0040a6d8
mov ecx, dword [ebp - 0x28]
lea eax, [ebp - 0x2c]
mov edx, 0x574aa0
call fcn.00404040
mov edx, dword [ebp - 0x2c]
lea ecx, [ebp - 0x28]
mov eax, dword [ebp - 0x1c]
call fcn.00409a94
mov edx, dword [ebp - 0x28]
lea eax, [ebp - 0x1c]
call fcn.00403e10
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 8]
call fcn.0056dab0
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x1c]
call fcn.004099f0
jmp 0x574797
mov eax, dword [ebp - 8]
cmp byte [eax + 0xce], 0
jne 0x574797
mov eax, dword [ebp - 8]
cmp byte [eax + 0x201], 0
jne 0x574797
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx + 0x30]
mov eax, dword [ebp - 8]
cmp byte [eax + 0x200], 0
je 0x5747ad
mov eax, dword [ebp - 8]
call fcn.00576080
jmp 0x5747c4
mov eax, dword [ebp - 8]
cmp byte [eax + 0xce], 0
je 0x5747c4
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x20c], edx
mov eax, dword [ebp - 8]
cmp byte [eax + 0x195], 0
je 0x5747d7
push ebp
call fcn.00572ec8
pop ecx
mov eax, dword [ebp - 8]
cmp byte [eax + 0x201], 0
jne 0x57481e
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x228]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x144]
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x224]
mov edx, dword [ebp - 8]
mov dword [edx + 0xd8], eax
mov edx, dword [ebp - 8]
mov dword [edx + 0xdc], eax
mov eax, dword [ebp - 8]
mov byte [eax + 0x2c], 7
jmp 0x574843
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x224]
call fcn.0040318c
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x224], edx
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x14]
mov dword [eax + 0xdc], edx
mov eax, dword [ebp - 8]
cmp byte [eax + 0xce], 0
jne 0x574878
mov eax, dword [ebp - 8]
cmp byte [eax + 0x201], 0
jne 0x574878
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 8]
call fcn.0056dab0
mov eax, dword [ebp - 0x28]
call fcn.00566178
mov eax, dword [ebp - 8]
fstp qword [eax + 0xe0]
wait
cmp byte [ebp - 0x15], 0
je 0x574897
mov eax, dword [ebp - 8]
cmp byte [eax + 0x201], 0
jne 0x574897
mov dl, byte [ebp - 0x15]
mov eax, dword [ebp - 8]
call fcn.0056f294
jmp 0x5748c0
mov eax, dword [ebp - 8]
cmp byte [eax + 0x201], 0
jne 0x5748c0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x220]
mov edx, dword [ebp - 8]
mov dword [edx + 0xdc], eax
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x220], edx
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0xec]
inc edx
mov eax, dword [ebp - 8]
call fcn.0056e268
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x1a0]
cmp byte [eax + 0x11], 0
je 0x574905
mov eax, dword [ebp - 8]
cmp word [eax + 0xaa], 0
je 0x574905
mov ebx, dword [ebp - 8]
mov ecx, 0x64
mov edx, dword [ebp - 8]
mov eax, dword [ebx + 0xac]
call dword [ebx + 0xa8]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x1a0]
mov dl, byte [eax + 0x11]
test dl, dl
je 0x5749c5
cmp byte [eax + 0x10], 0
je 0x5749c5
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x144]
cmp word [eax + 8], 0
jbe 0x5749c5
cmp dl, 1
jne 0x574959
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.0056e3f4
mov eax, dword [0x5c66a0]
mov eax, dword [eax]
mov dx, 0xfff5
call fcn.0044fa98
lea edx, [ebp - 0x2c]
mov eax, dword [ebp - 8]
call fcn.0056dab0
mov eax, dword [ebp - 0x2c]
lea ecx, [ebp - 0x28]
mov edx, 0x574aac
call fcn.00409a94
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
call fcn.005761d0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x1a0]
cmp byte [eax + 0x11], 1
jne 0x5749c5
mov eax, dword [0x5c66a0]
mov eax, dword [eax]
xor edx, edx
call fcn.0044fa98
jmp 0x5749c5
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x224]
call fcn.0040318c
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x224], edx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x230]
call fcn.004099d8
mov eax, dword [ebp - 8]
mov dl, byte [ebp - 0x15]
mov byte [eax + 0x2c], dl
mov eax, dword [ebp - 8]
mov dl, byte [ebp - 0x16]
mov byte [eax + 0x3d], dl
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x220]
call fcn.0040318c
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x220], edx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x228]
call fcn.0040318c
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x228], edx
mov eax, dword [ebp - 8]
call fcn.0056e3d4
mov eax, dword [ebp - 8]
cmp byte [eax + 0xce], 0
je 0x574a2e
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0xf0]
mov eax, dword [ebp - 8]
call fcn.0056eb98
mov eax, dword [ebp - 8]
mov byte [eax + 0xc4], 0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x30]
mov edx, dword [eax]
call dword [edx + 0x40]
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x574a78
lea eax, [ebp - 0x2c]
mov edx, 2
call fcn.00403d9c
lea eax, [ebp - 0x1c]
call fcn.00403d78
ret