Function at 0x1021cbf0
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1026290b
mov eax, dword fs:[0]
push eax
sub esp, 0xd0
mov eax, dword [0x102a5f40]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x78], ecx
mov ecx, dword [eax]
mov dword [ebp - 0x58], ecx
mov ecx, dword [eax + 0x2c]
mov dword [ebp - 0x3c], ecx
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0x94], ecx
mov ecx, dword [eax + 0x34]
mov dword [ebp - 0x80], ecx
mov ecx, dword [eax + 0x38]
mov edi, dword [eax + 0x28]
mov edx, dword [eax + 0x48]
mov esi, dword [eax + 4]
movsd xmm3, qword [eax + 0x68]
movsd xmm0, qword [eax + 0x60]
mov dword [ebp - 0x54], ecx
mov ecx, dword [eax + 0xd8]
mov dword [ebp - 0xa8], ecx
mov ecx, dword [eax + 0x4c]
mov dword [ebp - 0x98], ecx
mov ecx, dword [eax + 0x78]
mov dword [ebp - 0xb8], ecx
mov ecx, dword [eax + 0xc8]
mov dword [ebp - 0xb0], ecx
mov ecx, dword [eax + 0xcc]
mov dword [ebp - 0xb4], ecx
mov ecx, dword [eax + 0xd4]
mov dword [ebp - 0xa4], ecx
mov ecx, dword [eax + 0x50]
mov dword [ebp - 0x8c], ecx
mov ecx, dword [eax + 0x54]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x90], edi
mov dword [ebp - 0x74], edx
mov dword [ebp - 0x60], esi
mov dword [ebp - 0xa0], ecx
movsd qword [ebp - 0xc0], xmm3
mov dword [ebp - 0xdc], 0x1027eab4
movsd qword [ebp - 0xd4], xmm0
cmp dword [ebp - 0x60], 0
mov ecx, dword [eax + 0x130]
movsd xmm4, qword [0x1028cdd0]
movsd xmm5, qword [0x1027ab98]
movsd xmm6, qword [0x1028b910]
lea esi, [ecx + esi*8]
mov dword [ebp - 4], 0
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x5c], esi
xorps xmm2, xmm2
jle 0x1021cda3
mov edi, dword [ebp - 0x8c]
mov edx, dword [ebp - 0xa0]
movsd xmm1, qword [0x102a5968]
mov eax, edi
sub edx, edi
sub ecx, edi
sub esi, eax
mov dword [ebp - 0x4c], esi
mov esi, dword [ebp - 0x60]
mov dword [ebp - 0x9c], edx
mov dword [ebp - 0x88], ecx
nop
movsd xmm0, qword [edx + eax]
comisd xmm0, xmm5
setae dl
comisd xmm6, xmmword [eax]
setae cl
test dl, dl
je 0x1021cd61
test cl, cl
jne 0x1021cd61
movapd xmm0, xmm2
jmp 0x1021cd69
movapd xmm0, xmm1
xorpd xmm0, xmm4
mov edi, dword [ebp - 0x88]
movsd qword [edi + eax], xmm0
mov edi, dword [ebp - 0x4c]
test cl, cl
je 0x1021cd85
test dl, dl
jne 0x1021cd85
movapd xmm0, xmm2
jmp 0x1021cd89
movapd xmm0, xmm1
mov edx, dword [ebp - 0x9c]
movsd qword [edi + eax], xmm0
add eax, 8
dec esi
jne 0x1021cd40
mov edx, dword [ebp - 0x74]
mov edi, dword [ebp - 0x90]
mov eax, dword [ebp - 0x58]
xor esi, esi
test eax, eax
jle 0x1021ce74
mov eax, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x98]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x74]
sub ecx, eax
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x70], ecx
sub dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x44]
jmp 0x1021cde0
mov ecx, dword [ebp - 0xa8]
cmp byte [esi + ecx], 0
mov ecx, dword [ebp - 0x40]
jne 0x1021ce61
cmp dword [eax + edi], 1
jne 0x1021ce61
movsd xmm0, qword [ecx + edx]
comisd xmm0, xmm5
setae cl
comisd xmm6, xmmword [edx]
mov byte [ebp - 0x35], cl
setae al
cmp cl, al
je 0x1021ce5e
mov eax, dword [edi]
mov ecx, dword [ebp - 0x80]
movsd xmm0, qword [ecx + eax*8]
mov eax, dword [ebp - 0x70]
xor ecx, ecx
movsd xmm1, qword [eax + edx]
movzx eax, byte [ebp - 0x35]
comisd xmm0, xmm2
divsd xmm1, xmm0
seta cl
cmp ecx, eax
mov eax, dword [edi]
mov ecx, dword [ebp - 0x94]
mov eax, dword [ecx + eax*4]
jne 0x1021ce4f
mov ecx, dword [ebp - 0x5c]
movsd xmm0, qword [ecx + eax*8]
comisd xmm0, xmm1
jmp 0x1021ce57
mov ecx, dword [ebp - 0x64]
comisd xmm1, xmmword [ecx + eax*8]
jbe 0x1021ce5e
movsd qword [ecx + eax*8], xmm1
mov eax, dword [ebp - 0x44]
inc esi
add edi, 4
add edx, 8
cmp esi, dword [ebp - 0x58]
jl 0x1021cde0
mov eax, dword [ebp - 0x58]
mov edi, dword [ebp - 0x50]
mov esi, eax
mov ecx, dword [edi + 0x134]
mov dword [ebp - 0xac], 0
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x70], ecx
xor eax, eax
inc eax
mov dword [ebp - 0x84], eax
xor eax, eax
xor edx, edx
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
cmp dword [ebp - 0x58], eax
jle 0x1021d39e
mov ecx, dword [ebp - 0x54]
sub ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x98]
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x50]
mov dword [ebp - 0xc8], ecx
mov ecx, dword [ebp - 0x74]
sub ecx, dword [ebp - 0x98]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0xcc], ecx
mov ecx, dword [ebp - 0xb8]
sub esi, eax
sub ecx, dword [ebp - 0x98]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x88], ecx
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x40], esi
jmp 0x1021cf00
mov eax, dword [eax + esi]
test eax, eax
jle 0x1021d2d1
mov esi, dword [ebp - 0x4c]
add ecx, dword [ebp - 0xcc]
mov esi, dword [esi]
add eax, esi
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x7c], ecx
movsd xmm1, qword [ecx + eax]
xor edi, edi
mov ecx, esi
xor edx, edx
mov dword [ebp - 0xc4], esi
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x9c], edi
movapd xmm6, xmm1
xorps xmm7, xmm7
cmp ecx, dword [ebp - 0x48]
jge 0x1021d000
mov eax, dword [ebp - 0x94]
mov esi, dword [ebp - 0x64]
mov eax, dword [eax + ecx*4]
movsd xmm3, qword [esi + eax*8]
mov esi, dword [ebp - 0x80]
movapd xmm4, xmm3
movsd xmm0, qword [esi + ecx*8]
comisd xmm0, xmm7
mov esi, dword [ebp - 0x5c]
mulsd xmm4, xmm0
movsd xmm2, qword [esi + eax*8]
movapd xmm5, xmm2
mulsd xmm5, xmm0
jbe 0x1021cfb1
comisd xmm3, xmmword [0x10268b10]
jb 0x1021cf99
subsd xmm6, xmm4
jmp 0x1021cf9c
inc dword [ebp - 0x34]
movsd xmm0, qword [0x10268a68]
comisd xmm0, xmm2
jb 0x1021cfd9
subsd xmm1, xmm5
inc edx
jmp 0x1021cfda
movsd xmm0, qword [0x10268a68]
comisd xmm0, xmm2
jb 0x1021cfc5
subsd xmm6, xmm5
jmp 0x1021cfc8
inc dword [ebp - 0x34]
comisd xmm3, xmmword [0x10268b10]
jb 0x1021cfd9
subsd xmm1, xmm4
inc edx
jmp 0x1021cfda
inc edi
inc ecx
cmp ecx, dword [ebp - 0x48]
jl 0x1021cf52
movsd xmm3, qword [ebp - 0xc0]
movsd xmm4, qword [0x1028cdd0]
mov esi, dword [ebp - 0xc4]
mov dword [ebp - 0x9c], edi
mov eax, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0x68]
movsd xmm2, qword [0x1027ab98]
cmp byte [ecx + eax], 0
mov eax, dword [ebp - 0x48]
jne 0x1021d1c6
mov ecx, dword [ebp - 0x30]
movsd xmm0, qword [ecx]
comisd xmm0, xmm2
mov ecx, dword [ebp - 0x34]
jbe 0x1021d1c9
cmp ecx, 1
jne 0x1021d155
movapd xmm0, xmm3
xorpd xmm0, xmm4
comisd xmm0, xmm6
jbe 0x1021d155
cmp esi, eax
jge 0x1021d1c9
mov ecx, eax
jmp 0x1021d060
mov edx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x94]
movsd xmm2, qword [edx + esi*8]
comisd xmm2, xmm7
mov eax, dword [eax + esi*4]
movsd xmm5, qword [0x10268b10]
mov edx, dword [ebp - 0x64]
jbe 0x1021d0d0
comisd xmm5, xmmword [edx + eax*8]
jbe 0x1021d0d0
mov edx, dword [ebp - 0x5c]
movsd xmm4, qword [edx + eax*8]
movapd xmm0, xmm4
mulsd xmm0, xmm2
subsd xmm0, xmm3
comisd xmm0, xmm6
jbe 0x1021d142
movsd xmm0, qword [0x10268a68]
comisd xmm4, xmm0
movapd xmm3, xmm6
divsd xmm3, xmm2
jbe 0x1021d0ca
comisd xmm0, xmm3
jb 0x1021d0ca
dec edi
movapd xmm0, xmm3
jmp 0x1021d12a
comisd xmm0, xmm4
jmp 0x1021d120
comisd xmm7, xmm2
jbe 0x1021d142
mov ecx, dword [ebp - 0x5c]
movsd xmm0, qword [ecx + eax*8]
comisd xmm0, xmmword [0x10268a68]
mov ecx, dword [ebp - 0x48]
jbe 0x1021d142
movsd xmm4, qword [edx + eax*8]
movaps xmm0, xmm4
mulsd xmm0, xmm2
subsd xmm0, xmm3
comisd xmm0, xmm6
jbe 0x1021d142
comisd xmm5, xmm4
movapd xmm3, xmm6
divsd xmm3, xmm2
jbe 0x1021d11c
comisd xmm3, xmm5
jb 0x1021d11c
dec edi
movapd xmm0, xmm3
jmp 0x1021d12a
comisd xmm4, xmm5
jb 0x1021d132
movapd xmm0, xmm3
subsd xmm0, xmm4
mulsd xmm0, xmm2
subsd xmm1, xmm0
inc dword [ebp - 0x6c]
movsd qword [edx + eax*8], xmm3
movsd xmm3, qword [ebp - 0xc0]
inc esi
cmp esi, ecx
jl 0x1021d060
movsd xmm2, qword [0x1027ab98]
jmp 0x1021d1c6
test edi, edi
jne 0x1021d1c9
cmp edx, 1
jne 0x1021d1c9
movapd xmm0, xmm3
xorpd xmm0, xmm4
comisd xmm0, xmm1
jbe 0x1021d1c9
cmp esi, eax
jge 0x1021d1c9
mov edi, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x80]
lea esp, [esp]
mov eax, dword [ebp - 0x94]
movsd xmm0, qword [edx + esi*8]
comisd xmm0, xmm7
mov eax, dword [eax + esi*4]
jbe 0x1021d199
mov edx, dword [ebp - 0x5c]
jmp 0x1021d1a2
comisd xmm7, xmm0
jbe 0x1021d1b8
mov edx, dword [ebp - 0x64]
divsd xmm1, xmm0
inc edi
addsd xmm1, qword [edx + eax*8]
movsd qword [edx + eax*8], xmm1
mov edx, dword [ebp - 0x80]
movapd xmm1, xmm7
inc esi
cmp esi, ecx
jl 0x1021d180
mov dword [ebp - 0x6c], edi
mov edi, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x34]
comisd xmm1, xmm3
jbe 0x1021d24c
test edi, edi
mov edi, dword [ebp - 0x50]
jne 0x1021d24f
cmp byte [edi + 0x128], 0
mov edx, dword [ebp - 0x68]
je 0x1021d1f1
mov eax, dword [edi + 0xfc]
mov al, byte [edx + eax]
shr al, 1
and al, 1
jne 0x1021d252
mov eax, dword [ebp - 0x7c]
movsd xmm6, qword [0x1028b910]
comisd xmm6, xmmword [eax]
jae 0x1021d2ef
mov esi, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x70]
movsd xmm4, qword [0x1028cdd0]
dec esi
cmp dword [ebp - 0xb8], 0
mov dword [ebp - 0x44], esi
mov dword [ecx + esi*4], edx
mov esi, dword [ebp - 0x40]
je 0x1021d2ce
movsd xmm0, qword [eax]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x88]
movsd qword [ecx + eax], xmm0
mov eax, dword [edi + 0x88]
mov byte [edx + eax], 3
jmp 0x1021d2ce
mov edi, dword [ebp - 0x50]
mov edx, dword [ebp - 0x68]
movsd xmm4, qword [0x1028cdd0]
movapd xmm0, xmm3
xorpd xmm0, xmm4
comisd xmm0, xmm6
jbe 0x1021d2cb
test ecx, ecx
jne 0x1021d2cb
cmp byte [edi + 0x128], cl
je 0x1021d283
mov eax, dword [edi + 0xfc]
mov al, byte [edx + eax]
shr al, 1
and al, 1
jne 0x1021d2cb
mov ecx, dword [ebp - 0x30]
movsd xmm0, qword [ecx]
comisd xmm0, xmm2
jae 0x1021d30f
mov esi, dword [ebp - 0xac]
mov eax, dword [ebp - 0x70]
inc esi
cmp dword [ebp - 0xb8], 0
mov dword [eax + esi*4 - 4], edx
mov dword [ebp - 0xac], esi
mov esi, dword [ebp - 0x40]
je 0x1021d2d1
mov eax, dword [ebp - 0x88]
movsd xmm0, qword [ecx]
movsd qword [eax + ecx], xmm0
mov eax, dword [edi + 0x88]
mov byte [edx + eax], 2
jmp 0x1021d2d1
mov esi, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x4c]
inc edx
add eax, 4
add ecx, 8
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x30], ecx
cmp edx, dword [ebp - 0x58]
jl 0x1021cf00
jmp 0x1021d35d
mov esi, dword [edi + 0x90]
lea eax, [ebp - 0x2c]
push eax
mov ecx, edi
call fcn.10167330
mov ecx, dword [ebp - 0x68]
push 0
push ecx
push eax
mov byte [ebp - 4], 1
push 0x12
jmp 0x1021d32d
mov esi, dword [edi + 0x90]
lea eax, [ebp - 0x2c]
push eax
mov ecx, edi
call fcn.10167330
mov ecx, dword [ebp - 0x68]
push 0
push ecx
push eax
mov byte [ebp - 4], 2
push 0x11
mov ecx, esi
call fcn.101d3c20
mov ecx, eax
call fcn.101d31d0
mov ecx, eax
call fcn.101d35a0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0
call fcn.101d2d20
movsd xmm3, qword [ebp - 0xc0]
or dword [edi + 0xf0], 2
cmp dword [ebp - 0x6c], 0x64
jl 0x1021d438
mov eax, dword [ebp - 0x58]
cmp dword [ebp - 0x44], eax
jl 0x1021d438
mov esi, dword [ebp - 0xac]
test esi, esi
jne 0x1021d446
mov eax, dword [ebp - 0x84]
movsd xmm4, qword [0x1028cdd0]
mov esi, dword [ebp - 0x44]
cmp eax, 0x64
jl 0x1021ce91
mov esi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x58]
cmp esi, edx
jge 0x1021d3c3
push eax
mov eax, edx
sub eax, esi
push 1
push eax
mov eax, dword [ebp - 0x70]
lea eax, [eax + esi*4]
push eax
push edi
call fcn.10214ef0
add esp, 0x14
mov dword [ebp - 0x78], eax
mov edx, dword [edi + 0x12c]
movsd xmm5, qword [0x1027ab98]
movsd xmm1, qword [0x1028b910]
xor ecx, ecx
mov dword [ebp - 0x30], edx
xorps xmm2, xmm2
cmp dword [ebp - 0x60], ecx
jle 0x1021d489
mov eax, dword [ebp - 0xa0]
mov edi, dword [ebp - 0x8c]
sub dword [ebp - 0x64], eax
sub edi, eax
sub dword [ebp - 0x5c], eax
mov esi, eax
comisd xmm1, xmmword [edi + esi]
movsd xmm0, qword [esi]
setae ah
comisd xmm0, xmm5
mov dword [edx + ecx*4], 0
setae al
test al, al
je 0x1021d464
test ah, ah
jne 0x1021d47c
mov eax, dword [ebp - 0x64]
movsd xmm0, qword [eax + esi]
xor eax, eax
comisd xmm0, xmm2
seta al
add eax, 0xfffffffe
jmp 0x1021d479
mov esi, dword [ebp - 0xac]
test esi, esi
je 0x1021d39b
mov ecx, dword [ebp - 0x78]
push ecx
push 0
push esi
push dword [ebp - 0x70]
push edi
call fcn.10214ef0
mov esi, dword [ebp - 0x44]
add esp, 0x14
mov dword [ebp - 0x78], eax
jmp 0x1021d3a1
test ah, ah
je 0x1021d47c
mov edx, dword [ebp - 0x5c]
xor eax, eax
comisd xmm2, xmmword [edx + esi]
mov edx, dword [ebp - 0x30]
setbe al
inc eax
mov dword [edx + ecx*4], eax
inc ecx
add esi, 8
cmp ecx, dword [ebp - 0x60]
jl 0x1021d400
xor esi, esi
mov dword [ebp - 0x4c], esi
cmp dword [ebp - 0x58], esi
jle 0x1021d5f3
mov ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x98]
sub dword [ebp - 0x54], ecx
sub eax, ecx
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x3c]
sub dword [ebp - 0x90], eax
mov dword [ebp - 0x34], ecx
mov eax, dword [eax]
mov dword [ebp - 0x7c], eax
cmp eax, 1
jle 0x1021d5d4
mov edi, dword [ebp - 0xa8]
cmp byte [esi + edi], 0
jne 0x1021d5d4
mov esi, dword [ebp - 0x34]
mov edx, dword [ebp - 0x84]
movsd xmm0, qword [esi]
or ecx, 0xffffffff
or edi, ecx
comisd xmm5, xmmword [esi + edx]
mov edx, 0xfffffffe
cmova ecx, edx
comisd xmm0, xmm1
mov dword [ebp - 0x48], ecx
cmova edi, edx
cmp ecx, edx
mov edx, dword [ebp - 0x30]
jne 0x1021d50e
cmp edi, 0xfffffffe
je 0x1021d5d1
mov eax, dword [ebp - 0x90]
mov esi, dword [ebp - 0x3c]
mov esi, dword [eax + esi]
mov eax, dword [ebp - 0x7c]
add eax, esi
mov dword [ebp - 0x7c], eax
cmp esi, eax
jge 0x1021d598
jmp 0x1021d530
mov eax, dword [ebp - 0x94]
mov ecx, dword [eax + esi*4]
mov eax, dword [edx + ecx*4]
cdq
xor eax, edx
sub eax, edx
mov edx, dword [ebp - 0x30]
cmp eax, 2
jne 0x1021d5d1
mov eax, dword [ebp - 0x80]
movsd xmm0, qword [eax + esi*8]
comisd xmm0, xmm2
mov eax, 0xfffffffe
jbe 0x1021d573
cmp dword [edx + ecx*4], 2
je 0x1021d586
cmp edi, 0xffffffff
cmove eax, ecx
mov ecx, dword [ebp - 0x48]
mov edi, eax
jmp 0x1021d592
cmp dword [edx + ecx*4], 2
jne 0x1021d586
cmp edi, 0xffffffff
cmove eax, ecx
mov ecx, dword [ebp - 0x48]
mov edi, eax
jmp 0x1021d592
cmp dword [ebp - 0x48], 0xffffffff
cmove eax, ecx
mov ecx, eax
mov dword [ebp - 0x48], ecx
inc esi
cmp esi, dword [ebp - 0x7c]
jl 0x1021d530
cmp ecx, 0xfffffffe
jne 0x1021d5a1
cmp edi, ecx
je 0x1021d5d1
mov eax, dword [ebp - 0x34]
mov esi, dword [ebp - 0x54]
movsd xmm0, qword [eax + esi]
cmp ecx, 0xfffffffe
jle 0x1021d6c4
comisd xmm2, xmm0
jb 0x1021d6c4
test ecx, ecx
js 0x1021d5d1
mov eax, dword [edx + ecx*4]
cdq
sub eax, edx
mov edx, dword [ebp - 0x30]
sar eax, 1
mov dword [edx + ecx*4], eax
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x4c]
add dword [ebp - 0x3c], 4
inc eax
add ecx, 8
cmp eax, dword [ebp - 0x58]
mov dword [ebp - 0x4c], eax
mov esi, eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x34], ecx
jl 0x1021d4b7
mov eax, dword [ebp - 0x60]
mov edi, dword [ebp - 0x30]
mov esi, eax
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x54], 0
test eax, eax
jle 0x1021d71a
mov eax, dword [ebp - 0xb0]
sub dword [ebp - 0xb4], eax
mov ecx, edx
sub eax, edx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0xb0], eax
mov eax, dword [ecx]
cdq
xor eax, edx
sub eax, edx
cmp eax, 1
jne 0x1021d701
mov eax, dword [ebp - 0xb0]
mov esi, dword [ebp - 0xb4]
mov edx, dword [eax + ecx]
add eax, ecx
mov esi, dword [eax + esi]
add esi, edx
cmp edx, esi
jge 0x1021d6b0
mov eax, dword [ebp - 0x74]
jmp 0x1021d660
mov ecx, dword [ebp - 0xa4]
mov edi, dword [ebp - 0x98]
mov ecx, dword [ecx + edx*4]
movsd xmm0, qword [edi + ecx*8]
comisd xmm0, xmmword [eax + ecx*8]
mov edi, dword [ebp - 0x30]
jbe 0x1021d6a8
mov eax, dword [ebp - 0xa8]
cmp byte [ecx + eax], 0
jne 0x1021d6f5
mov eax, dword [ebp - 0x50]
cmp byte [eax + 0x128], 0
je 0x1021d6a5
mov eax, dword [eax + 0xfc]
mov al, byte [ecx + eax]
shr al, 1
and al, 1
jne 0x1021d6f5
mov eax, dword [ebp - 0x74]
inc edx
cmp edx, esi
jl 0x1021d660
mov ecx, dword [ebp - 0x4c]
cmp dword [ecx], 0
mov esi, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x54]
je 0x1021d704
mov dword [edi + esi*4], eax
inc esi
mov dword [ebp - 0x3c], esi
jmp 0x1021d704
cmp edi, 0xfffffffe
jle 0x1021d5d1
comisd xmm0, xmm2
jb 0x1021d5d1
mov ecx, dword [ebp - 0x34]
test edi, edi
js 0x1021d5d4
mov eax, dword [edx + edi*4]
cdq
sub eax, edx
mov edx, dword [ebp - 0x30]
sar eax, 1
mov dword [edx + edi*4], eax
jmp 0x1021d5d4
mov ecx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x3c]
mov dword [ecx], 0
mov eax, dword [ebp - 0x54]
inc eax
add ecx, 4
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x4c], ecx
cmp eax, dword [ebp - 0x60]
jl 0x1021d626
mov eax, dword [ebp - 0x60]
sub esi, eax
mov dword [ebp - 0x3c], esi
test esi, esi
jle 0x1021d874
xor ecx, ecx
mov eax, esi
mov edx, 0x18
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10251cd1
add esp, 4
mov dword [ebp - 0x7c], eax
test esi, esi
jle 0x1021d84b
mov ecx, dword [ebp - 0x3c]
lea esi, [eax + 0x10]
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x88], ecx
lea edx, [edi + eax*4]
nop
mov eax, dword [edx]
mov ecx, dword [ebp - 0x8c]
movsd xmm0, qword [ecx + eax*8]
mov ecx, dword [ebp - 0xa0]
movsd qword [esi - 0x10], xmm0
mov eax, dword [edx]
movsd xmm0, qword [ecx + eax*8]
movsd qword [esi - 8], xmm0
mov eax, dword [edx]
mov dword [esi], eax
mov eax, dword [edx]
mov ecx, dword [edi + eax*4]
cmp ecx, 1
jne 0x1021d7ce
mov ecx, dword [ebp - 0xa0]
movsd xmm0, qword [ecx + eax*8]
mov ecx, dword [ebp - 0x8c]
movsd qword [ecx + eax*8], xmm0
mov eax, dword [ebp - 0x50]
mov ecx, dword [edx]
mov eax, dword [eax + 0x110]
mov dword [ebp - 0xa4], eax
mov al, byte [eax + ecx]
mov dword [ebp - 0x84], ecx
test al, 1
jne 0x1021d836
mov edi, dword [ebp - 0xa4]
jmp 0x1021d80d
cmp ecx, 0xffffffff
jne 0x1021d836
mov ecx, dword [ebp - 0x8c]
movsd xmm0, qword [ecx + eax*8]
mov ecx, dword [ebp - 0xa0]
movsd qword [ecx + eax*8], xmm0
mov eax, dword [ebp - 0x50]
mov ecx, dword [edx]
mov eax, dword [eax + 0x110]
mov dword [ebp - 0xa4], eax
mov al, byte [eax + ecx]
mov dword [ebp - 0x84], ecx
test al, 1
jne 0x1021d836
mov edi, dword [ebp - 0xa4]
or al, 1
mov byte [edi + ecx], al
mov eax, dword [ebp - 0x50]
mov edi, dword [ebp - 0x84]
mov ecx, dword [eax + 0x120]
mov eax, dword [eax + 0x11c]
mov dword [eax + ecx*4], edi
mov eax, dword [ebp - 0x50]
mov edi, dword [ebp - 0x30]
inc dword [eax + 0x120]
add edx, 4
add esi, 0x18
dec dword [ebp - 0x88]
jne 0x1021d760
mov esi, dword [ebp - 0x3c]
push 0x10
call sub.MSVCR110.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
test eax, eax
je 0x1021d870
mov ecx, dword [ebp - 0x78]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x7c]
mov dword [eax], 0x1028b8f0
mov dword [eax + 8], esi
mov dword [eax + 0xc], ecx
jmp 0x1021d877
xor eax, eax
jmp 0x1021d877
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10251d16
mov esp, ebp
pop ebp
ret