Function at 0x100216d0
Capabilities:
Terminate process

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0xdb8
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 0x510]
push esi
push edi
mov edi, dword [eax + 0x504]
mov dword [ebp - 0x3c], ecx
mov ecx, dword [eax + 0x508]
xor eax, eax
lea esi, [ecx*4 + 0xf]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x34], eax
mov eax, esi
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x18], edi
call fcn.10026880
mov eax, esp
call fcn.100019b0
mov dword [ebp - 0x48], eax
mov eax, esi
call fcn.10026880
mov eax, esp
call fcn.100019b0
mov dword [ebp - 0x1c], eax
mov eax, esi
call fcn.10026880
mov eax, esp
call fcn.100019b0
cmp dword [ebp - 0x14], 0
mov edx, dword [ebp - 0x3c]
movss xmm0, dword [edx + 0x458]
mov esi, dword [ebx + 0x14]
mov dword [ebp - 0x40], eax
shufps xmm0, xmm0, 0
jle 0x10021858
mov edx, dword [ebp - 0x48]
movaps xmm5, xmmword [0x1002fec0]
movaps xmm6, xmmword [0x1002fed0]
lea ecx, [edx + 0x30]
sub edx, esi
mov dword [ebp - 0x30], edx
mov edx, dword [ebp - 0x14]
dec edx
shr edx, 4
inc edx
lea eax, [esi + 0x20]
mov dword [ebp - 0x10], edx
movaps xmm1, xmmword [eax - 0x20]
movaps xmm2, xmmword [eax - 0x10]
movaps xmm3, xmmword [eax]
movaps xmm7, xmmword [0x10027170]
movaps xmm4, xmmword [0x1002fee0]
mulps xmm1, xmm5
mov edx, dword [ebp - 0x30]
addps xmm1, xmm6
maxps xmm1, xmm7
minps xmm1, xmm4
cvttps2pi mm0, xmm1
mulps xmm2, xmm5
mulps xmm3, xmm5
addps xmm2, xmm6
maxps xmm2, xmm7
minps xmm2, xmm4
addps xmm3, xmm6
maxps xmm3, xmm7
minps xmm3, xmm4
movaps xmm4, xmmword [eax + 0x10]
movhlps xmm1, xmm1
mulps xmm4, xmm5
addps xmm4, xmm6
maxps xmm4, xmm7
minps xmm4, xmmword [0x1002fee0]
cvttps2pi mm1, xmm2
cvttps2pi mm2, xmm3
cvttps2pi mm3, xmm4
cvttps2pi mm4, xmm1
cvtpi2ps xmm1, mm4
movaps xmm7, xmm1
movlhps xmm7, xmm1
movhlps xmm2, xmm2
cvttps2pi mm4, xmm2
cvtpi2ps xmm2, mm4
movhlps xmm3, xmm3
movaps xmm1, xmm2
movlhps xmm1, xmm2
cvtpi2ps xmm1, mm1
cvttps2pi mm4, xmm3
cvtpi2ps xmm3, mm4
cvtpi2ps xmm7, mm0
movaps xmmword [ecx - 0x30], xmm7
movaps xmmword [ecx - 0x20], xmm1
movhlps xmm4, xmm4
movaps xmm1, xmm3
movlhps xmm1, xmm3
cvtpi2ps xmm1, mm2
movaps xmmword [edx + eax], xmm1
cvttps2pi mm4, xmm4
cvtpi2ps xmm4, mm4
movaps xmm1, xmm4
movlhps xmm1, xmm4
cvtpi2ps xmm1, mm3
movaps xmmword [ecx], xmm1
add eax, 0x40
add ecx, 0x40
sub dword [ebp - 0x10], 1
jne 0x10021791
emms
cmp dword [ebp - 0x14], 0
jle 0x10021acd
mov edi, dword [ebx + 0x10]
mov eax, dword [ebp - 0x1c]
lea ecx, [edi + 0x30]
sub edi, esi
mov dword [ebp - 0x30], edi
mov edi, dword [ebp - 0x1c]
sub edi, esi
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x80], edi
mov edi, dword [ebp - 0x40]
sub edi, esi
add eax, 0x50
mov dword [ebp - 0x10], eax
lea eax, [esi + 0x10]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x84], edi
mov edi, dword [ebx + 0x10]
sub esi, edi
mov dword [ebp - 0x70], esi
mov esi, dword [ebp - 0x40]
sub esi, edi
mov dword [ebp - 0x44], esi
mov esi, dword [ebp - 0x1c]
sub esi, dword [ebp - 0x40]
add edx, 0x20
mov dword [ebp - 0x60], esi
mov esi, dword [ebp - 0x14]
dec esi
shr esi, 6
inc esi
mov dword [ebp - 0x38], esi
mov esi, dword [ebp - 0x10]
mov edi, edi
movaps xmm2, xmmword [ecx - 0x30]
movaps xmm1, xmmword [eax - 0x10]
movaps xmm4, xmmword [eax + 0x20]
movaps xmm5, xmmword [ecx - 0x10]
movaps xmm6, xmmword [ecx]
mov edi, dword [ebp - 0x30]
movaps xmm3, xmmword [eax + edi]
mov edi, dword [ebp - 0x84]
addps xmm2, xmm0
cmpltps xmm1, xmm2
movaps xmm2, xmmword [eax]
addps xmm3, xmm0
cmpltps xmm2, xmm3
movaps xmm3, xmmword [eax + 0x10]
movaps xmmword [esi - 0x50], xmm1
mov esi, dword [ebp - 0x80]
movaps xmmword [eax + esi], xmm2
movaps xmm7, xmmword [ecx + 0x10]
addps xmm5, xmm0
cmpltps xmm3, xmm5
movaps xmm5, xmmword [ecx + 0x20]
addps xmm6, xmm0
cmpltps xmm4, xmm6
movaps xmm6, xmmword [eax + 0x30]
movmskps esi, xmm1
mov dword [edx - 0x20], esi
movaps xmm1, xmmword [eax + 0x40]
movmskps esi, xmm2
mov dword [eax + edi], esi
movaps xmm2, xmmword [ecx + 0x30]
mov esi, dword [ebp - 0x60]
movaps xmmword [edx + esi], xmm3
mov edi, dword [ebp - 0x44]
movmskps esi, xmm3
mov dword [edx], esi
mov esi, dword [ebp - 0x70]
movaps xmmword [ecx + esi], xmm4
movaps xmm3, xmmword [ecx + 0x40]
movmskps esi, xmm4
mov dword [ecx + edi], esi
movaps xmm4, xmmword [ecx + 0x50]
mov esi, dword [ebp - 0x10]
addps xmm7, xmm0
cmpltps xmm6, xmm7
movaps xmm7, xmmword [eax + 0x60]
addps xmm5, xmm0
cmpltps xmm1, xmm5
movaps xmm5, xmmword [eax + 0x50]
movaps xmmword [esi - 0x10], xmm6
movaps xmmword [esi], xmm1
addps xmm2, xmm0
cmpltps xmm5, xmm2
movaps xmm2, xmmword [ecx + 0x60]
addps xmm3, xmm0
cmpltps xmm7, xmm3
movaps xmm3, xmmword [eax + 0x70]
movmskps edi, xmm6
mov dword [edx + 0x20], edi
movaps xmm6, xmmword [eax + 0x80]
movmskps edi, xmm1
mov dword [edx + 0x30], edi
movaps xmm1, xmmword [ecx + 0x70]
movaps xmmword [esi + 0x10], xmm5
movmskps edi, xmm5
mov dword [edx + 0x40], edi
movaps xmm5, xmmword [ecx + 0x80]
movaps xmmword [esi + 0x20], xmm7
addps xmm2, xmm0
addps xmm4, xmm0
movmskps edi, xmm7
mov dword [edx + 0x50], edi
cmpltps xmm6, xmm2
movaps xmm2, xmmword [eax + 0x90]
cmpltps xmm3, xmm4
movaps xmm4, xmmword [eax + 0xa0]
movaps xmmword [esi + 0x30], xmm3
addps xmm1, xmm0
movaps xmmword [esi + 0x40], xmm6
movaps xmm7, xmmword [ecx + 0x90]
cmpltps xmm2, xmm1
movaps xmm1, xmmword [ecx + 0xa0]
addps xmm5, xmm0
cmpltps xmm4, xmm5
movaps xmm5, xmmword [eax + 0xb0]
movmskps edi, xmm3
mov dword [edx + 0x60], edi
movaps xmm3, xmmword [eax + 0xc0]
movmskps edi, xmm6
mov dword [edx + 0x70], edi
movaps xmm6, xmmword [ecx + 0xb0]
movaps xmmword [esi + 0x50], xmm2
movmskps edi, xmm2
mov dword [edx + 0x80], edi
movaps xmmword [esi + 0x60], xmm4
movaps xmm2, xmmword [ecx + 0xc0]
movmskps edi, xmm4
mov dword [edx + 0x90], edi
movaps xmm4, xmmword [eax + 0xe0]
addps xmm1, xmm0
cmpltps xmm3, xmm1
movaps xmm1, xmmword [eax + 0xd0]
addps xmm7, xmm0
cmpltps xmm5, xmm7
movaps xmmword [esi + 0x70], xmm5
movaps xmmword [esi + 0x80], xmm3
movmskps edi, xmm5
mov dword [edx + 0xa0], edi
movmskps edi, xmm3
mov dword [edx + 0xb0], edi
addps xmm6, xmm0
cmpltps xmm1, xmm6
movaps xmmword [esi + 0x90], xmm1
movmskps edi, xmm1
mov dword [edx + 0xc0], edi
addps xmm2, xmm0
cmpltps xmm4, xmm2
movaps xmmword [esi + 0xa0], xmm4
movmskps edi, xmm4
mov dword [edx + 0xd0], edi
add esi, 0x100
add eax, 0x100
add edx, 0x100
add ecx, 0x100
sub dword [ebp - 0x38], 1
mov dword [ebp - 0x10], esi
jne 0x100218c0
mov esi, dword [ebx + 0x14]
mov edi, dword [ebp - 0x18]
test edi, edi
jle 0x10021b33
mov ecx, edi
mov eax, 0xffffff38
lea edi, [ebp - 0x298]
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x18]
test edi, edi
jle 0x10021b33
mov ecx, edi
lea edi, [ebp - 0x190]
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x18]
test edi, edi
jle 0x10021b33
mov ecx, edi
xor eax, eax
lea edi, [ebp - 0x3a0]
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x18]
test edi, edi
jle 0x10021b33
mov ecx, edi
mov eax, 1
lea edi, [ebp - 0x4a8]
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x18]
test edi, edi
jle 0x10021b33
mov ecx, edi
or eax, 0xffffffff
lea edi, [ebp - 0x5b0]
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x18]
test edi, edi
jne 0x10021b60
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x48]
push ecx
mov ecx, dword [ebp - 0x3c]
push edx
mov edx, dword [ebx + 0x10]
push eax
mov eax, dword [ebp - 0x14]
push ecx
push eax
push edx
push esi
lea esi, [ebp - 0xdb0]
xor edx, edx
call fcn.1001f750
add esp, 0x1c
jmp 0x10021bc1
mov eax, dword [ebp - 0x18]
dec eax
xor edi, edi
mov dword [ebp - 0x44], eax
test eax, eax
jle 0x10021efc
lea eax, [ebp - 0xdb0]
mov dword [ebp - 0x10], eax
jmp 0x10021b83
mov esi, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x48]
push ecx
mov ecx, dword [ebp - 0x3c]
push edx
mov edx, dword [ebx + 0xc]
push eax
mov eax, dword [edx + edi*4 + 4]
mov edx, dword [edx + edi*4]
push ecx
mov ecx, dword [ebx + 0x10]
push eax
mov eax, dword [ebp - 0x14]
push ecx
push esi
mov esi, dword [ebp - 0x10]
call fcn.1001f750
add dword [ebp - 0x20], eax
add dword [ebp - 0x10], 0x20
inc edi
add esp, 0x1c
cmp edi, dword [ebp - 0x44]
jl 0x10021b80
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x10021efc
mov edi, dword [ebp - 0x18]
mov eax, 0xffffff38
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x38]
push ecx
lea ecx, [edi - 1]
lea eax, [ebp - 0xdb0]
call fcn.10021060
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x298], eax
mov dword [ebp - 0x190], eax
mov eax, dword [ebp - 0x34]
add esp, 8
cmp edi, 2
mov dword [ebp - 0x18c], eax
mov dword [ebp - 0x294], eax
mov dword [ebp - 0x14], 2
jle 0x10021e08
mov ecx, dword [ebx + 0xc]
lea edx, [ecx + 0x210]
mov dword [ebp - 0x10], edx
jmp 0x10021c33
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
mov edi, dword [ebp + eax*4 - 0x3a0]
mov esi, dword [ebp + eax*4 - 0x4a8]
mov dword [ebp - 0x1c], eax
cmp dword [ebp + edi*4 - 0x5b0], esi
je 0x10021df1
mov eax, dword [ecx + esi*4 + 0x208]
mov edx, dword [ecx + edi*4 + 0x208]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax + edi*4 + 0x344]
mov dword [ebp - 0x84], edx
mov edx, dword [eax + esi*4 + 0x344]
lea eax, [ebp - 0x298]
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x70], edx
push eax
mov ecx, edi
lea edx, [ebp - 0x190]
mov dword [ebp + edi*4 - 0x5b0], esi
call fcn.1001f730
lea ecx, [ebp - 0x298]
add esp, 4
push ecx
mov ecx, esi
mov dword [ebp - 0x44], eax
call fcn.1001f730
mov ecx, dword [ebp - 0x44]
add esp, 4
cmp ecx, 0xffffffff
je 0x10021e73
cmp eax, 0xffffffff
je 0x10021e73
mov edx, dword [ebp - 0x40]
push edx
mov edx, dword [ebp - 0x48]
push edx
mov edx, dword [ebp - 0x3c]
push edx
mov edx, dword [ebx + 0x10]
push edx
mov edx, dword [ebx + 0x14]
push edx
push ecx
mov ecx, dword [ebp - 0x70]
push ecx
mov ecx, dword [ebp - 0x60]
call fcn.10020d40
add esp, 0x1c
test eax, eax
je 0x10021ddb
mov ecx, dword [ebp - 0x1c]
mov eax, 0xffffff38
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x30], eax
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x84]
sub ecx, eax
shl eax, 5
lea eax, [ebp + eax - 0xdb0]
call fcn.10021060
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x30]
push ecx
mov ecx, dword [ebp - 0x80]
sub ecx, eax
lea edx, [ebp - 0x20]
shl eax, 5
push edx
lea eax, [ebp + eax - 0xdb0]
call fcn.10021060
mov eax, dword [ebp - 0x38]
add esp, 0x10
mov dword [ebp + edi*4 - 0x190], eax
test edi, edi
jne 0x10021d60
mov dword [ebp - 0x298], eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
mov dword [ebp + ecx*4 - 0x190], edx
mov edx, dword [ebp - 0x30]
mov dword [ebp + ecx*4 - 0x298], eax
mov dword [ebp + esi*4 - 0x298], edx
cmp esi, 1
jne 0x10021d8c
mov dword [ebp - 0x18c], edx
test eax, eax
jge 0x10021d99
cmp dword [ebp - 0x20], 0
jl 0x10021df1
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
add eax, 0xffffffff
js 0x10021db6
cmp dword [ebp + eax*4 - 0x4a8], esi
jne 0x10021db6
sub eax, 1
mov dword [ebp + eax*4 - 0x4a4], ecx
jns 0x10021da1
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
inc eax
cmp eax, ecx
jge 0x10021df1
cmp dword [ebp + eax*4 - 0x3a0], edi
jne 0x10021df1
mov edx, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x3a0], edx
inc eax
cmp eax, ecx
jl 0x10021dc1
jmp 0x10021df1
mov eax, dword [ebp - 0x14]
mov ecx, 0xffffff38
mov dword [ebp + eax*4 - 0x298], ecx
mov dword [ebp + eax*4 - 0x190], ecx
mov eax, dword [ebp - 0x14]
add dword [ebp - 0x10], 4
inc eax
cmp eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
jl 0x10021c30
mov edi, dword [ebp - 0x18]
mov esi, dword [ebx + 8]
lea eax, [edi*4]
call fcn.10024f40
mov esi, eax
lea eax, [ebp - 0x298]
push eax
xor ecx, ecx
lea edx, [ebp - 0x190]
mov dword [ebp - 0x34], esi
call fcn.1001f730
lea ecx, [ebp - 0x298]
add esp, 4
push ecx
mov ecx, 1
mov dword [esi], eax
call fcn.1001f730
mov dword [esi + 4], eax
mov esi, 2
add esp, 4
cmp edi, esi
jle 0x10021efc
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebx + 0xc]
add edx, 0x34c
add ecx, 0x30c
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x20], ecx
jmp 0x10021e83
push 1
call dword [sym.imp.MSVCR90.dll_exit]
jmp 0x10021e80
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx + 0xfc]
mov edx, dword [ecx]
mov edi, dword [ebp - 0x34]
mov ecx, dword [edi + eax*4]
push ecx
mov ecx, dword [ebp - 0x3c]
mov ecx, dword [ecx + edx*4 + 0x344]
push ecx
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ecx + eax*4 + 0x344]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx]
push eax
mov eax, dword [edi + edx*4]
call fcn.100201d0
lea edx, [ebp - 0x298]
add esp, 0xc
push edx
mov ecx, esi
lea edx, [ebp - 0x190]
mov dword [ebp - 0x30], eax
call fcn.1001f730
mov ecx, dword [ebp - 0x30]
add esp, 4
test eax, eax
jl 0x10021ee2
cmp ecx, eax
je 0x10021ee2
mov dword [edi + esi*4], eax
jmp 0x10021eeb
or ecx, 0x8000
mov dword [edi + esi*4], ecx
mov eax, 4
add dword [ebp - 0x20], eax
add dword [ebp - 0x10], eax
inc esi
cmp esi, dword [ebp - 0x18]
jl 0x10021e80
mov eax, dword [ebp - 0x34]
lea esp, [ebp - 0xdc0]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret