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

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xe
push 0
push 0
dec ecx
jne 0x55e648
push ecx
push ebx
push esi
push edi
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x55f098
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 0x55f068
lea edx, [ebp - 0x2c]
mov eax, dword [ebp - 8]
call fcn.0055811c
mov eax, dword [ebp - 0x2c]
lea edx, [ebp - 0x28]
call fcn.0040a948
cmp dword [ebp - 0x28], 0
jne 0x55e6a2
mov eax, dword [ebp - 8]
cmp dword [eax + 0xf0], 0
je 0x55f068
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 0x55e759
cmp byte [ebx + 0x10], 0
je 0x55e759
mov eax, dword [ebp - 8]
cmp byte [eax + 0x196], 0
je 0x55e721
mov esi, 0x19
jmp 0x55e723
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 ecx, dword [eax + 0x1a0]
mov al, byte [ecx + 0x11]
cmp al, 1
jne 0x55e79a
mov eax, dword [ebp - 8]
call fcn.0055f2d4
push edx
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x1a0]
mov eax, dword [eax + 0xc]
cdq
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x200], eax
mov dword [ecx + 0x204], edx
jmp 0x55e7b1
cmp al, 2
jne 0x55e7b1
mov eax, dword [ecx + 8]
cdq
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x200], eax
mov dword [ecx + 0x204], edx
mov eax, dword [ebp - 8]
cmp byte [eax + 0x195], 0
je 0x55e7cc
mov dl, 1
mov eax, dword [0x41277c]
call fcn.0040323c
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
cmp byte [eax + 0x240], 0
jne 0x55e806
mov eax, dword [ebp - 8]
cmp byte [eax + 0x168], 0
jne 0x55e806
mov eax, dword [ebp - 8]
cmp byte [eax + 0x169], 0
jne 0x55e806
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x30]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x55e806
push ebp
call fcn.0055de08
pop ecx
xor ecx, ecx
push ebp
push 0x55f05e
push dword fs:[ecx]
mov dword fs:[ecx], esp
mov eax, dword [ebp - 8]
cmp byte [eax + 0xce], 0
je 0x55e832
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xf0]
call fcn.004160e4
test eax, eax
jg 0x55e849
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 8]
call fcn.0055811c
mov eax, dword [ebp - 0x30]
call fcn.0055085c
test al, al
je 0x55e8a5
push ebp
call fcn.0055e4ec
pop ecx
mov eax, dword [ebp - 8]
mov byte [eax + 0x208], 1
mov eax, dword [ebp - 8]
cmp byte [eax + 0xce], 0
jne 0x55e88c
lea edx, [ebp - 0x38]
mov eax, dword [ebp - 8]
call fcn.00560c90
mov eax, dword [ebp - 0x38]
lea edx, [ebp - 0x34]
call fcn.00550b8c
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 8]
add eax, 0x238
call fcn.00404104
mov eax, dword [ebp - 8]
call fcn.0055f0dc
mov eax, dword [ebp - 8]
call fcn.005589c4
push ebp
call fcn.0055d800
pop ecx
jmp 0x55e8e5
push ebp
call fcn.0055e4ec
pop ecx
mov eax, dword [ebp - 8]
cmp byte [eax + 0xce], 0
jne 0x55e8d3
lea edx, [ebp - 0x3c]
mov eax, dword [ebp - 8]
call fcn.0055811c
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 8]
add eax, 0x238
call fcn.00404104
mov eax, dword [ebp - 8]
mov byte [eax + 0x208], 0
mov eax, dword [ebp - 8]
call fcn.0055f0dc
mov eax, dword [ebp - 8]
cmp byte [eax + 0x240], 0
jne 0x55e977
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x30]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x55e977
mov byte [ebp - 0x1d], 0
mov eax, dword [ebp - 8]
cmp word [eax + 0x1c2], 0
je 0x55e950
mov eax, dword [ebp - 8]
push dword [eax + 0x184]
push dword [eax + 0x180]
mov eax, dword [ebp - 8]
add eax, 0x230
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 0x55e977
lea edx, [ebp - 0x40]
mov eax, 0xbb
call fcn.0040add4
mov ecx, dword [ebp - 0x40]
mov dl, 1
mov eax, dword [0x552718]
call fcn.0040e570
call fcn.00403ac4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x1a0]
cmp byte [eax + 0x11], 0
je 0x55e99f
mov eax, dword [ebp - 8]
fild qword [eax + 0x180]
fmul dword [0x55f0ac]
mov eax, dword [ebp - 8]
fistp qword [eax + 0x180]
wait
mov eax, dword [ebp - 8]
cmp byte [eax + 0x240], 0
jne 0x55ea7b
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x30]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x55ea7b
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 0x55ea7b
inc esi
xor ebx, ebx
mov dl, 1
mov eax, dword [0x550fec]
call fcn.00551270
mov edx, dword [ebp - 8]
mov dword [edx + 0x234], eax
xor eax, eax
push ebp
push 0x55ea4b
push dword fs:[eax]
mov dword fs:[eax], esp
lea ecx, [ebp - 0x44]
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 - 0x44]
mov eax, dword [ebp - 8]
call fcn.0055faac
test al, al
je 0x55ea28
push ebp
mov eax, ebx
call fcn.0055d3f8
pop ecx
jmp 0x55ea41
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x234]
call fcn.0040326c
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x234], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x55ea73
inc ebx
dec esi
jne 0x55e9db
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x214]
call fcn.004160c8
mov edx, dword [ebp - 8]
mov ebx, dword [edx + 0x230]
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 + 0x22c]
mov esi, dword [eax + 0xc]
dec esi
test esi, esi
jl 0x55eb7e
inc esi
xor ebx, ebx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x22c]
mov edx, ebx
call fcn.0054e734
mov edx, dword [0x550fec]
call fcn.004033fc
mov edx, dword [ebp - 8]
mov dword [edx + 0x234], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x1a0]
cmp byte [eax + 0x11], 0
je 0x55eb5f
mov eax, dword [ebp - 8]
call fcn.0055f35c
push edx
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x234]
call fcn.00551d38
cdq
cmp edx, dword [esp + 4]
jne 0x55eb1e
cmp eax, dword [esp]
pop edx
pop eax
jbe 0x55eb5f
jmp 0x55eb22
pop edx
pop eax
jle 0x55eb5f
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x214]
call fcn.004160c8
sub eax, edi
add dword [ebp - 0x24], eax
xor edi, edi
mov eax, dword [ebp - 8]
call fcn.0055f4d4
test ebx, ebx
jne 0x55eb5f
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x230]
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 + 0x214]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x234]
call fcn.00551778
inc ebx
dec esi
jne 0x55eac3
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x214]
call fcn.004160c8
sub eax, edi
add dword [ebp - 0x24], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x230]
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 0x55ebe3
mov eax, dword [ebp - 8]
call fcn.0055f35c
push edx
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x230]
call fcn.00552258
cdq
cmp edx, dword [esp + 4]
jne 0x55ebd7
cmp eax, dword [esp]
pop edx
pop eax
jbe 0x55ebe3
jmp 0x55ebdb
pop edx
pop eax
jle 0x55ebe3
mov eax, dword [ebp - 8]
call fcn.0055f4d4
mov edx, dword [ebp - 8]
mov dx, word [edx + 0xec]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x230]
mov word [eax + 8], dx
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0x214]
call fcn.00552054
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x1a0]
cmp byte [eax + 0x11], 1
jne 0x55ec1f
mov eax, dword [ebp - 8]
call fcn.0055f398
mov byte [ebp - 0xd], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x55f068
push ebp
call fcn.0055e588
pop ecx
mov eax, dword [ebp - 8]
cmp byte [eax + 0xce], 0
jne 0x55ec5c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x214]
call fcn.0040326c
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x214], edx
cmp byte [ebp - 0xd], 0
je 0x55efb8
mov eax, dword [ebp - 8]
cmp byte [eax + 0xce], 0
jne 0x55ec89
mov eax, dword [ebp - 8]
cmp byte [eax + 0x209], 0
jne 0x55ec89
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 8]
call fcn.0055811c
mov eax, dword [ebp - 8]
cmp byte [eax + 0x209], 0
jne 0x55ecb5
mov eax, dword [ebp - 8]
cmp byte [eax + 0xce], 0
jne 0x55ecb5
mov eax, dword [ebp - 8]
cmp byte [eax + 0x208], 0
je 0x55ecb5
mov eax, dword [ebp - 8]
call fcn.00558d30
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x1a0]
cmp byte [eax + 0x11], 2
jne 0x55ed8e
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0xec]
test ebx, ebx
jle 0x55ed1e
lea eax, [ebp - 0x50]
push eax
inc ebx
mov dword [ebp - 0x58], ebx
mov byte [ebp - 0x54], 0
lea edx, [ebp - 0x58]
xor ecx, ecx
mov eax, 0x55f0b8
call fcn.0040bdbc
mov ecx, dword [ebp - 0x50]
lea eax, [ebp - 0x4c]
mov edx, 0x55f0c8
call fcn.0040437c
mov edx, dword [ebp - 0x4c]
lea ecx, [ebp - 0x48]
mov eax, dword [ebp - 0x1c]
call fcn.0040b1e0
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx + 0x30]
jmp 0x55edb1
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx + 0x30]
lea eax, [ebp - 0x64]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xec]
inc eax
mov dword [ebp - 0x58], eax
mov byte [ebp - 0x54], 0
lea edx, [ebp - 0x58]
xor ecx, ecx
mov eax, 0x55f0b8
call fcn.0040bdbc
mov ecx, dword [ebp - 0x64]
lea eax, [ebp - 0x60]
mov edx, 0x55f0c8
call fcn.0040437c
mov edx, dword [ebp - 0x60]
lea ecx, [ebp - 0x5c]
mov eax, dword [ebp - 0x1c]
call fcn.0040b1e0
mov edx, dword [ebp - 0x5c]
lea eax, [ebp - 0x1c]
call fcn.00404148
lea edx, [ebp - 0x68]
mov eax, dword [ebp - 8]
call fcn.0055811c
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x1c]
call fcn.0040b13c
jmp 0x55edb1
mov eax, dword [ebp - 8]
cmp byte [eax + 0xce], 0
jne 0x55edb1
mov eax, dword [ebp - 8]
cmp byte [eax + 0x209], 0
jne 0x55edb1
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 + 0x208], 0
je 0x55edc7
mov eax, dword [ebp - 8]
call fcn.0056071c
jmp 0x55edde
mov eax, dword [ebp - 8]
cmp byte [eax + 0xce], 0
je 0x55edde
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x214], edx
mov eax, dword [ebp - 8]
cmp byte [eax + 0x195], 0
je 0x55edf1
push ebp
call fcn.0055d4a8
pop ecx
mov eax, dword [ebp - 8]
cmp byte [eax + 0x209], 0
jne 0x55ee38
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x230]
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 + 0x22c]
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 0x55ee5d
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x22c]
call fcn.0040326c
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x22c], 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 0x55ee92
mov eax, dword [ebp - 8]
cmp byte [eax + 0x209], 0
jne 0x55ee92
lea edx, [ebp - 0x6c]
mov eax, dword [ebp - 8]
call fcn.0055811c
mov eax, dword [ebp - 0x6c]
call fcn.00550788
mov eax, dword [ebp - 8]
fstp qword [eax + 0xe0]
wait
cmp byte [ebp - 0x15], 0
je 0x55eeb1
mov eax, dword [ebp - 8]
cmp byte [eax + 0x209], 0
jne 0x55eeb1
mov dl, byte [ebp - 0x15]
mov eax, dword [ebp - 8]
call fcn.00559854
jmp 0x55eeda
mov eax, dword [ebp - 8]
cmp byte [eax + 0x209], 0
jne 0x55eeda
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x228]
mov edx, dword [ebp - 8]
mov dword [edx + 0xdc], eax
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x228], edx
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0xec]
inc edx
mov eax, dword [ebp - 8]
call fcn.005588d4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x1a0]
cmp byte [eax + 0x11], 0
je 0x55ef1f
mov eax, dword [ebp - 8]
cmp word [eax + 0xaa], 0
je 0x55ef1f
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 0x55efdf
cmp byte [eax + 0x10], 0
je 0x55efdf
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x144]
cmp word [eax + 8], 0
jbe 0x55efdf
cmp dl, 1
jne 0x55ef73
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.00558a60
mov eax, dword [0x7c4d2c]
mov eax, dword [eax]
mov dx, 0xfff5
call fcn.00457df0
lea edx, [ebp - 0x74]
mov eax, dword [ebp - 8]
call fcn.0055811c
mov eax, dword [ebp - 0x74]
lea ecx, [ebp - 0x70]
mov edx, 0x55f0d4
call fcn.0040b1e0
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 8]
call fcn.00560874
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x1a0]
cmp byte [eax + 0x11], 1
jne 0x55efdf
mov eax, dword [0x7c4d2c]
mov eax, dword [eax]
xor edx, edx
call fcn.00457df0
jmp 0x55efdf
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x22c]
call fcn.0040326c
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x22c], edx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x238]
call fcn.0040b124
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 + 0x228]
call fcn.0040326c
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x228], edx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x230]
call fcn.0040326c
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x230], edx
mov eax, dword [ebp - 8]
call fcn.00558a40
mov eax, dword [ebp - 8]
cmp byte [eax + 0xce], 0
je 0x55f048
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0xf0]
mov eax, dword [ebp - 8]
call fcn.00559158
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 0x55f09f
lea eax, [ebp - 0x74]
mov edx, 7
call fcn.004040d4
lea eax, [ebp - 0x50]
mov edx, 0xb
call fcn.004040d4
lea eax, [ebp - 0x1c]
call fcn.004040b0
ret