Function at 0x4a3170
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x4db046
mov eax, dword fs:[0]
push eax
sub esp, 0xc4
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5181f4]
xor eax, esp
push eax
lea eax, [esp + 0xd8]
mov dword fs:[0], eax
mov ebx, ecx
xor esi, esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov ecx, dword [esp + 0xf4]
mov edx, dword [esp + 0xf0]
mov eax, dword [ebx + 0x40]
push ecx
push edx
push eax
push 0x4f0440
lea eax, [esp + 0x24]
push eax
lea ecx, [ebx + 4]
mov dword [esp + 0xf4], esi
call fcn.004a2a10
mov eax, 7
mov dword [esp + 0x60], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x90], eax
mov eax, dword [ebx + 0x38]
sub eax, esi
mov dword [esp + 0x70], 0x64
mov dword [esp + 0x88], 5
je 0x4a3234
sub eax, 1
je 0x4a3227
sub eax, 1
jne 0x4a323b
mov dword [esp + 0x98], 2
jmp 0x4a323b
mov dword [esp + 0x98], 1
jmp 0x4a323b
mov dword [esp + 0x98], esi
cmp byte [ebx + 0x3c], 0
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x60]
je 0x4a326e
mov dword [esp + 0xb0], 0xd
mov dword [esp + 0xb8], 6
mov dword [esp + 0xc0], 1
push 3
jmp 0x4a3270
push 2
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0xc]
call eax
mov edi, eax
cmp edi, esi
jge 0x4a32aa
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
push 0x50b128
lea eax, [esp + 0x40]
push eax
mov dword [esp + 0x48], esi
mov dword [esp + 0x44], vtable.ADS::ADSException.0
mov dword [esp + 0x4c], edi
call fcn.0044661f
mov eax, dword [ebx + 0x2c]
cmp eax, esi
je 0x4a32c9
mov ecx, dword [ebx + 0x30]
sub ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov esi, edx
shr esi, 0x1f
add esi, edx
xor ecx, ecx
mov eax, esi
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00444285
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x24]
mov ecx, eax
add esp, 4
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ecx
xor esi, esi
mov byte [esp + 0xe0], 1
xor edi, edi
lea ebp, [esi + 8]
mov eax, dword [ebx + 0x2c]
test eax, eax
je 0x4a337e
mov ecx, dword [ebx + 0x30]
sub ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jae 0x4a337e
mov eax, dword [ebx + 0x2c]
test eax, eax
je 0x4a334b
mov ecx, dword [ebx + 0x30]
sub ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x4a3350
call fcn.00441e1b
mov eax, dword [ebx + 0x2c]
add eax, edi
cmp dword [eax + 0x18], ebp
jb 0x4a336c
mov eax, dword [eax + 4]
mov edx, dword [esp + 0x28]
mov dword [edx + esi*4], eax
add esi, 1
add edi, 0x1c
jmp 0x4a3305
mov edx, dword [esp + 0x28]
add eax, 4
mov dword [edx + esi*4], eax
add esi, 1
add edi, 0x1c
jmp 0x4a3305
mov eax, dword [ebx + 0x2c]
test eax, eax
je 0x4a339d
mov ecx, dword [ebx + 0x30]
sub ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebx + 0x24], ebp
jb 0x4a33a7
mov edx, dword [ebx + 0x10]
jmp 0x4a33aa
lea edx, [ebx + 0x10]
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx]
lea edi, [esp + 0x1c]
push edi
push eax
mov eax, dword [esp + 0x30]
push eax
push edx
push ecx
mov ecx, dword [esi + 0x10]
call ecx
mov esi, eax
mov eax, dword [esp + 0x14]
mov edx, dword [eax]
xor ebp, ebp
cmp esi, ebp
jge 0x4a33f5
push eax
mov eax, dword [edx + 8]
call eax
push 0x50b128
lea ecx, [esp + 0x40]
push ecx
mov dword [esp + 0x48], ebp
mov dword [esp + 0x44], vtable.ADS::ADSException.0
mov dword [esp + 0x4c], esi
call fcn.0044661f
mov ecx, dword [esp + 0x1c]
mov edx, dword [edx + 0x1c]
push ecx
push eax
call edx
mov esi, eax
cmp esi, ebp
mov dword [esp + 0x18], esi
jne 0x4a361e
jmp 0x4a3412
xor ebp, ebp
mov eax, dword [ebx + 0x2c]
cmp eax, ebp
jne 0x4a341d
xor eax, eax
jmp 0x4a3435
mov ecx, dword [ebx + 0x30]
sub ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
lea ecx, [esp + 0x30]
call fcn.004a2d10
xor esi, esi
mov eax, dword [ebx + 0x2c]
cmp eax, ebp
je 0x4a34a5
mov ecx, dword [ebx + 0x30]
sub ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jae 0x4a34a5
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
lea edx, [esp + 0x4c]
push edx
mov edx, dword [esp + 0x2c]
mov edx, dword [edx + esi*4]
push edx
mov edx, dword [esp + 0x24]
push edx
push eax
mov eax, dword [ecx + 0x28]
call eax
cmp eax, ebp
mov dword [esp + 0x18], eax
jge 0x4a3492
mov dword [esp + 0x50], ebp
mov dword [esp + 0x18], ebp
lea ecx, [esp + 0x4c]
push ecx
lea ecx, [esp + 0x30]
call fcn.004a30d0
add esi, 1
jmp 0x4a3441
mov eax, dword [esp + 0xe8]
cmp eax, ebp
je 0x4a34c6
mov edx, dword [esp + 0xec]
push edx
lea ecx, [esp + 0x30]
push ecx
call eax
add esp, 8
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x48], ebp
mov eax, dword [ebx + 0x2c]
test eax, eax
je 0x4a357d
mov esi, dword [ebx + 0x30]
sub esi, eax
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jae 0x4a357d
test edi, edi
je 0x4a351a
mov edx, ecx
sub edx, edi
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x4a3527
call fcn.00441e1b
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x48]
cmp dword [esi + edi + 4], 0
je 0x4a356e
test edi, edi
je 0x4a354d
sub ecx, edi
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x4a3556
call fcn.00441e1b
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
mov edx, dword [eax]
mov edx, dword [edx + 0x2c]
lea ecx, [esi + edi]
push ecx
push eax
call edx
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
add ebp, 1
add esi, 0x14
mov dword [esp + 0x48], esi
jmp 0x4a34d2
cmp edi, ecx
mov esi, ecx
jbe 0x4a359d
call fcn.00441e1b
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
cmp edi, ecx
jbe 0x4a359d
call fcn.00441e1b
mov ecx, dword [esp + 0x34]
cmp edi, esi
je 0x4a35f4
mov edx, ecx
sub edx, esi
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, ecx
lea eax, [eax + eax*4]
lea edx, [edi + eax*4]
mov ebp, ecx
mov eax, esi
je 0x4a35f0
mov ecx, edi
sub ecx, esi
mov esi, dword [eax]
mov dword [eax + ecx], esi
mov esi, dword [eax + 4]
mov dword [eax + ecx + 4], esi
mov esi, dword [eax + 8]
mov dword [eax + ecx + 8], esi
mov esi, dword [eax + 0xc]
mov dword [eax + ecx + 0xc], esi
mov esi, dword [eax + 0x10]
mov dword [eax + ecx + 0x10], esi
add eax, 0x14
cmp eax, ebp
jne 0x4a35c8
mov dword [esp + 0x34], edx
cmp dword [esp + 0x18], 0
jl 0x4a3618
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0x1c]
call eax
test eax, eax
mov dword [esp + 0x18], eax
je 0x4a3410
mov esi, dword [esp + 0x18]
xor ebp, ebp
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0x30]
call eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
cmp esi, 0x5012
je 0x4a3666
cmp esi, ebp
jge 0x4a3666
push 0x50b128
lea eax, [esp + 0x40]
push eax
mov dword [esp + 0x48], ebp
mov dword [esp + 0x44], vtable.ADS::ADSException.0
mov dword [esp + 0x4c], esi
call fcn.0044661f
mov ecx, dword [esp + 0x20]
cmp ecx, ebp
je 0x4a367d
xor eax, eax
lea edx, [esp + 0x20]
cmp ecx, edx
sete al
test al, al
je 0x4a368c
mov eax, dword [esp + 0x28]
push eax
call fcn.00441cca
add esp, 4
jmp 0x4a36a5
mov edx, dword [esp + 0x24]
mov dword [ecx + 4], edx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov dword [eax], ecx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], ebp
mov eax, dword [esp + 0x30]
cmp eax, ebp
mov dword [esp + 0x28], ebp
je 0x4a36ba
push eax
call fcn.00441cca
add esp, 4
mov ecx, dword [esp + 0xd8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd0
ret 0x10