Function at 0x64a870
Capabilities:
Get number of processors
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x72a578
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x64
push ebx
push ebp
push edi
xor edi, edi
mov ebx, ecx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x78], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x48], edi
xor ebp, ebp
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x3c], ebp
mov eax, dword [0x7a39fc]
mov ecx, dword [eax + 8]
mov byte [esp + 0x78], 3
call fcn.004ae6b0
mov ecx, eax
call fcn.004c30f0
mov eax, dword [eax + 0x2b0]
cmp eax, edi
jne 0x64aea5
mov eax, dword [ebx + 4]
xor ecx, ecx
cmp eax, edi
push esi
mov dword [esp + 0x28], ecx
jle 0x64ac91
mov edx, dword [ebx]
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x14], eax
push eax
mov eax, dword [0x7a3a28]
mov ecx, dword [eax + 0x8c]
call fcn.0059b6d0
mov ebp, eax
cmp ebp, edi
je 0x64ac79
mov ecx, dword [esp + 0x94]
test dword [ebp + 0x188], ecx
jne 0x64ac79
mov al, byte [ebp + 0x130]
movzx eax, al
xor esi, esi
cmp eax, edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x30], eax
jle 0x64ac79
push esi
mov ecx, ebp
call fcn.0059b6a0
mov edx, eax
mov eax, 0xcccccccd
mul edx
shr edx, 3
lea eax, [edx + edx*4]
shl eax, 1
push esi
mov ecx, ebp
mov ebx, eax
call fcn.0059b6a0
mov edi, eax
push esi
mov ecx, ebp
sub edi, ebx
call fcn.0059b6a0
mov ecx, eax
mov eax, 0x10624dd3
mul ecx
shr edx, 6
mov ebx, edx
push esi
imul ebx, ebx, 0x3e8
mov ecx, ebp
call fcn.0059b6a0
mov ecx, eax
sub ecx, ebx
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
push esi
mov ecx, ebp
mov dword [esp + 0x14], edx
call fcn.0059b6a0
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
mov eax, dword [esp + 0x88]
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
cmp edx, eax
jne 0x64ac62
mov eax, dword [esp + 0x38]
xor ebx, ebx
xor esi, esi
test eax, eax
jle 0x64aa82
test ebx, ebx
jne 0x64ac5e
mov edx, dword [esp + 0x4c]
mov ax, word [edx + esi*2]
mov ecx, dword [esp + 0x10]
cmp ax, cx
jne 0x64aa32
mov eax, dword [esp + 0x58]
cmp word [eax + esi*2], di
mov ebx, 1
jge 0x64aa6d
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x40]
mov word [eax + esi*2], di
mov eax, dword [esp + 0x34]
mov dword [eax + esi*4], ebp
mov dword [edx + esi*4], ecx
jmp 0x64aa6d
jle 0x64aa6d
push esi
push edi
lea ecx, [esp + 0x60]
mov ebx, 1
call fcn.006169a0
mov eax, dword [esp + 0x10]
push esi
push eax
lea ecx, [esp + 0x54]
call fcn.006169a0
push esi
push ebp
lea ecx, [esp + 0x3c]
call fcn.00616940
mov ecx, dword [esp + 0x14]
push esi
push ecx
lea ecx, [esp + 0x48]
call fcn.00616940
mov eax, dword [esp + 0x38]
inc esi
cmp esi, eax
jl 0x64a9f2
test ebx, ebx
jne 0x64ac5e
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x38], eax
jne 0x64aae5
test eax, eax
je 0x64aa94
add eax, eax
jmp 0x64aa99
mov eax, 0x10
mov ebx, dword [esp + 0x34]
lea edx, [eax*4]
push edx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x40], eax
call fcn.006fa7e6
mov edx, dword [esp + 0x3c]
add esp, 4
test edx, edx
mov esi, eax
mov dword [esp + 0x34], esi
jle 0x64aad6
mov ecx, ebx
sub ecx, esi
mov ebx, dword [ecx + eax]
mov dword [eax], ebx
add eax, 4
dec edx
jne 0x64aac7
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x64aae9
push ebx
call fcn.006fa390
add esp, 4
jmp 0x64aae9
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov dword [esi + eax*4], ebp
mov esi, dword [esp + 0x5c]
inc eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x60]
cmp esi, eax
jne 0x64ab68
test eax, eax
je 0x64ab09
add eax, eax
jmp 0x64ab0e
mov eax, 0x10
mov ecx, dword [esp + 0x58]
lea edx, [eax + eax]
push edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x64], eax
call fcn.006fa7e6
add esp, 4
test esi, esi
mov ebx, eax
mov dword [esp + 0x58], ebx
jle 0x64ab55
mov ecx, dword [esp + 0x20]
sub ecx, ebx
mov dword [esp + 0x1c], esi
lea ebx, [ebx]
mov dx, word [ecx + eax]
mov word [eax], dx
mov edx, dword [esp + 0x1c]
add eax, 2
dec edx
mov dword [esp + 0x1c], edx
jne 0x64ab40
mov eax, dword [esp + 0x20]
test eax, eax
je 0x64ab6c
push eax
call fcn.006fa390
add esp, 4
jmp 0x64ab6c
mov ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
mov word [ebx + esi*2], di
mov edi, dword [esp + 0x50]
inc esi
cmp edi, eax
mov dword [esp + 0x5c], esi
jne 0x64abd5
test eax, eax
je 0x64ab89
add eax, eax
jmp 0x64ab8e
mov eax, 0x10
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x54], eax
add eax, eax
push eax
mov dword [esp + 0x24], ebx
call fcn.006fa7e6
add esp, 4
test edi, edi
mov esi, eax
mov dword [esp + 0x4c], esi
jle 0x64abc6
mov ecx, ebx
sub ecx, esi
mov edx, edi
mov bx, word [ecx + eax]
mov word [eax], bx
add eax, 2
dec edx
jne 0x64abb5
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x64abd9
push ebx
call fcn.006fa390
add esp, 4
jmp 0x64abd9
mov esi, dword [esp + 0x4c]
mov cx, word [esp + 0x10]
mov eax, dword [esp + 0x48]
mov word [esi + edi*2], cx
mov esi, dword [esp + 0x44]
inc edi
cmp esi, eax
mov dword [esp + 0x50], edi
jne 0x64ac4e
test eax, eax
je 0x64abfb
add eax, eax
jmp 0x64ac00
mov eax, 0x10
mov ebx, dword [esp + 0x40]
lea edx, [eax*4]
push edx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x4c], eax
call fcn.006fa7e6
add esp, 4
test esi, esi
mov edi, eax
mov dword [esp + 0x40], edi
jle 0x64ac3f
mov ecx, ebx
sub ecx, edi
mov edx, esi
lea esp, [esp]
mov ebx, dword [ecx + eax]
mov dword [eax], ebx
add eax, 4
dec edx
jne 0x64ac30
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x64ac52
push ebx
call fcn.006fa390
add esp, 4
jmp 0x64ac52
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x14]
mov dword [edi + esi*4], eax
inc esi
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x30]
inc esi
cmp esi, eax
mov dword [esp + 0x18], esi
jl 0x64a954
mov ebx, dword [esp + 0x2c]
xor edi, edi
mov ecx, dword [esp + 0x28]
mov eax, dword [ebx + 4]
inc ecx
cmp ecx, eax
mov dword [esp + 0x28], ecx
jl 0x64a902
mov ebp, dword [esp + 0x40]
mov ecx, dword [esp + 0x38]
cmp ecx, edi
mov esi, dword [esp + 0x84]
mov eax, dword [esi + 4]
jle 0x64aea4
mov edi, eax
imul edi, edi, 0x38
inc eax
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x34]
sub eax, ebp
mov dword [esp + 0x88], ebp
mov dword [esp + 0x30], eax
mov dword [esp + 0x84], ecx
jmp 0x64acd2
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x88]
mov ebx, dword [eax + ecx]
mov eax, dword [esp + 0x94]
test eax, eax
mov ebp, 1
jne 0x64ad26
mov eax, dword [esi]
test eax, eax
je 0x64ad2e
mov edx, dword [eax - 4]
lea ecx, [eax - 4]
push fcn.0059ea30
push edx
push 0x38
push eax
mov dword [esp + 0x38], ecx
call fcn.006fa852
mov eax, dword [esp + 0x28]
push eax
call fcn.006fa390
add esp, 4
mov dword [esi], 0
mov dword [esi + 8], 0
jmp 0x64ad2e
push eax
mov ecx, esi
call fcn.004f7920
mov ecx, dword [esp + 0x94]
mov dword [esi + 4], ecx
mov eax, dword [ebx + 8]
mov edx, dword [0x7a39fc]
mov ecx, dword [edx + 4]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.005edeb0
mov ecx, dword [esi]
push eax
add ecx, edi
mov byte [esp + 0x80], 4
call fcn.005e5c50
lea ecx, [esp + 0x20]
mov byte [esp + 0x7c], 3
call fcn.005e5c20
mov ecx, dword [esp + 0x88]
mov edx, dword [ecx]
mov eax, dword [esi]
or edx, 0x20000000
mov dword [edi + eax + 8], edx
mov eax, dword [esi]
lea ecx, [ebx + 0x10]
push ecx
lea edx, [esp + 0x68]
push edx
lea ecx, [edi + eax + 0x20]
call fcn.00406120
mov ecx, dword [esi]
mov edx, dword [edi + ecx + 0x30]
lea eax, [edi + ecx + 0x30]
and edx, 0xffffffe1
mov dword [eax], edx
mov edx, dword [esp + 0x90]
push 1
push edx
mov ecx, ebx
call fcn.0059b8a0
cmp eax, dword [esp + 0x8c]
jbe 0x64add5
mov eax, dword [esi]
mov ecx, dword [edi + eax + 0x30]
lea eax, [edi + eax + 0x30]
and ecx, 0xffffffe3
xor ebp, ebp
or ecx, 2
mov dword [eax], ecx
mov ecx, dword [esp + 0x2c]
lea edx, [ebx + 0x20]
push edx
call fcn.00647dd0
fld st(0)
fmul st(1)
fcomp dword [esp + 0x9c]
fnstsw ax
fstp st(0)
test ah, 1
jne 0x64ae0a
mov eax, dword [esi]
mov ecx, dword [edi + eax + 0x30]
lea eax, [edi + eax + 0x30]
and ecx, 0xffffffe9
xor ebp, ebp
or ecx, 8
mov dword [eax], ecx
mov eax, dword [esp + 0x98]
test dword [ebx + 0x18c], eax
je 0x64ae2d
mov edx, dword [esi]
mov ecx, dword [edi + edx + 0x30]
lea eax, [edi + edx + 0x30]
and ecx, 0xffffffe5
xor ebp, ebp
or ecx, 4
jmp 0x64ae51
test ebp, ebp
je 0x64ae53
mov ebx, dword [ebx + 0x190]
mov edx, ebx
and edx, eax
cmp edx, ebx
je 0x64ae53
mov eax, dword [esi]
mov ecx, dword [edi + eax + 0x30]
lea eax, [edi + eax + 0x30]
and ecx, 0xffffffe7
xor ebp, ebp
or ecx, 6
mov dword [eax], ecx
mov edx, dword [esi]
mov ecx, dword [edi + edx + 0x30]
mov ebx, dword [esp + 0x94]
lea eax, [edi + edx + 0x30]
xor ecx, ebp
mov ebp, dword [eax]
and ecx, 1
xor ebp, ecx
mov ecx, dword [esp + 0x88]
mov dword [eax], ebp
mov eax, dword [esp + 0x84]
inc ebx
add ecx, 4
add edi, 0x38
dec eax
mov dword [esp + 0x94], ebx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x84], eax
jne 0x64acce
mov ebp, dword [esp + 0x40]
pop esi
push ebp
mov byte [esp + 0x7c], 2
call fcn.006fa390
mov edx, dword [esp + 0x4c]
push edx
mov byte [esp + 0x80], 1
call fcn.006fa390
mov eax, dword [esp + 0x5c]
push eax
mov byte [esp + 0x84], 0
call fcn.006fa390
mov ecx, dword [esp + 0x3c]
push ecx
mov dword [esp + 0x88], 0xffffffff
call fcn.006fa390
mov ecx, dword [esp + 0x80]
add esp, 0x10
pop edi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x70
ret 0x1c