Function at 0x10020880
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x24
push ebx
push esi
mov esi, dword [0x100bc128]
xorps xmm1, xmm1
push edi
mov byte [esi + 0x357], 0
mov dword [esi + 0x1cc4], 0
mov dword [esi + 0x1cc8], 0
mov bh, byte [esi + 8]
and bh, 1
test byte [esi + 8], 2
mov byte [esp + 0x17], bh
je 0x10020949
test byte [esi + 0xc], 1
je 0x10020949
cmp dword [esi + 0x1bf4], 4
mov bl, 1
je 0x1002094b
movss xmm0, dword [esi + 0x300]
comiss xmm0, xmm1
ja 0x1002093d
movss xmm0, dword [esi + 0x308]
comiss xmm0, xmm1
ja 0x1002093d
movss xmm0, dword [esi + 0x304]
comiss xmm0, xmm1
ja 0x1002093d
movss xmm0, dword [esi + 0x30c]
comiss xmm0, xmm1
ja 0x1002093d
movss xmm0, dword [esi + 0x310]
comiss xmm0, xmm1
ja 0x1002093d
movss xmm0, dword [esi + 0x314]
comiss xmm0, xmm1
ja 0x1002093d
movss xmm0, dword [esi + 0x318]
comiss xmm0, xmm1
ja 0x1002093d
movss xmm0, dword [esi + 0x31c]
comiss xmm0, xmm1
jbe 0x1002094b
mov dword [esi + 0x1bf4], 4
jmp 0x1002094b
xor bl, bl
test bh, bh
je 0x10020a9b
mov eax, dword [esi + 0x64]
test eax, eax
js 0x10020979
mov al, byte [eax + esi + 0x100]
test al, al
je 0x10020979
mov dword [esi + 0x300], 0x3f800000
mov dword [esi + 0x1bf4], 3
mov eax, dword [esi + 0x68]
test eax, eax
js 0x1002099f
mov al, byte [eax + esi + 0x100]
test al, al
je 0x1002099f
mov dword [esi + 0x308], 0x3f800000
mov dword [esi + 0x1bf4], 3
mov eax, dword [esi + 0x6c]
test eax, eax
js 0x100209c5
mov al, byte [eax + esi + 0x100]
test al, al
je 0x100209c5
mov dword [esi + 0x304], 0x3f800000
mov dword [esi + 0x1bf4], 3
mov eax, dword [esi + 0x38]
test eax, eax
js 0x100209eb
mov al, byte [eax + esi + 0x100]
test al, al
je 0x100209eb
mov dword [esi + 0x344], 0x3f800000
mov dword [esi + 0x1bf4], 3
mov eax, dword [esi + 0x3c]
test eax, eax
js 0x10020a11
mov al, byte [eax + esi + 0x100]
test al, al
je 0x10020a11
mov dword [esi + 0x348], 0x3f800000
mov dword [esi + 0x1bf4], 3
mov eax, dword [esi + 0x40]
test eax, eax
js 0x10020a37
mov al, byte [eax + esi + 0x100]
test al, al
je 0x10020a37
mov dword [esi + 0x34c], 0x3f800000
mov dword [esi + 0x1bf4], 3
mov eax, dword [esi + 0x44]
test eax, eax
js 0x10020a5d
mov al, byte [eax + esi + 0x100]
test al, al
je 0x10020a5d
mov dword [esi + 0x350], 0x3f800000
mov dword [esi + 0x1bf4], 3
mov al, byte [esi + 0xfc]
test al, al
je 0x10020a71
mov dword [esi + 0x338], 0x3f800000
cmp byte [esi + 0xfd], 0
je 0x10020a84
mov dword [esi + 0x33c], 0x3f800000
cmp byte [esi + 0xfe], 0
je 0x10020a9b
test al, al
jne 0x10020a9b
mov dword [esi + 0x340], 0x3f800000
movups xmm0, xmmword [esi + 0x1458]
mov eax, dword [esi + 0x14a8]
lea ecx, [esi + 0x1458]
movss xmm2, dword [0x100b001c]
movups xmmword [esi + 0x14ac], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [esi + 0x14bc], xmm0
movups xmm0, xmmword [ecx + 0x20]
movups xmmword [esi + 0x14cc], xmm0
movups xmm0, xmmword [ecx + 0x30]
movups xmmword [esi + 0x14dc], xmm0
movups xmm0, xmmword [ecx + 0x40]
movups xmmword [esi + 0x14ec], xmm0
mov dword [esi + 0x14fc], eax
mov eax, 0x15
nop dword [eax]
nop dword [eax + eax]
movss xmm0, dword [ecx - 0x1158]
comiss xmm0, xmm1
jbe 0x10020b22
movss xmm0, dword [ecx]
comiss xmm1, xmm0
jbe 0x10020b1b
movaps xmm0, xmm1
jmp 0x10020b25
addss xmm0, dword [esi + 0x18]
jmp 0x10020b25
movaps xmm0, xmm2
movss dword [ecx], xmm0
add ecx, 4
sub eax, 1
jne 0x10020b00
cmp dword [esi + 0x1c1c], eax
je 0x10020bc7
cmp byte [esi + 0x1c16], al
je 0x10020b4d
cmp byte [esi + 0x1c1a], al
je 0x10020bc7
mov edi, dword [esi + 0x1bc4]
test edi, edi
je 0x10020bc7
mov ecx, dword [esi + 0x1c0c]
mov edx, dword [esi + 0x1c1c]
mov dword [esi + 0x1bcc], 0
cmp byte [esi + 0x1c1a], 0
mov dword [esi + 0x1bc8], edx
mov dword [edi + ecx*4 + 0x330], edx
je 0x10020baa
mov eax, dword [esi + 0x1bc4]
add ecx, ecx
movups xmm0, xmmword [esi + 0x1c20]
movups xmmword [eax + ecx*8 + 0x338], xmm0
mov word [esi + 0x1c15], 1
mov byte [esi + 0x1c17], 1
mov ecx, dword [esi + 0x1c0c]
mov eax, dword [esi + 0x1bc4]
add ecx, ecx
movups xmm0, xmmword [esi + 0x1c20]
movups xmmword [eax + ecx*8 + 0x338], xmm0
cmp byte [esi + 0x1c30], 0
mov word [esi + 0x1c19], 0
mov dword [esi + 0x1c1c], 0
mov dword [esi + 0x1be4], 0
je 0x10020bf2
call fcn.10021880
cmp dword [esi + 0x1c38], 2
jne 0x10020c1e
cmp dword [esi + 0x1c50], 0
jne 0x10020c14
cmp dword [esi + 0x1ca0], 0
jne 0x10020c14
mov byte [esi + 0x1c16], 0
mov dword [esi + 0x1c38], 0
cmp byte [esi + 0x1c15], 0
je 0x10020ca1
cmp byte [esi + 0x1c14], 0
je 0x10020ca1
test byte [esi + 8], 4
je 0x10020c9a
test byte [esi + 0xc], 4
je 0x10020c9a
cmp byte [esi + 0x1c16], 0
jne 0x10020c9a
cmp byte [esi + 0x1c17], 0
je 0x10020c9a
cmp dword [esi + 0x1bc4], 0
je 0x10020c9a
call fcn.100204e0
movss dword [esi + 0x380], xmm0
mov eax, dword [esi + 0x380]
movss dword [esp + 0x18], xmm0
movaps xmm0, xmm1
movss dword [esi + 0x384], xmm0
mov ecx, dword [esi + 0x384]
movss dword [esp + 0x1c], xmm1
mov dword [esi + 0xe4], eax
mov dword [esi + 0xe8], ecx
mov byte [esi + 0x357], 1
mov byte [esi + 0x1c15], 0
mov edx, dword [esi + 0x1bc4]
mov byte [esi + 0x1c14], 0
mov dword [esi + 0x1be0], 0
test edx, edx
je 0x10020ce5
mov ecx, edx
nop
mov eax, dword [ecx + 8]
and eax, 0x15000000
cmp eax, 0x1000000
jne 0x10020cdb
mov ecx, dword [ecx + 0x31c]
test ecx, ecx
jne 0x10020cc0
jmp 0x10020ce5
cmp ecx, edx
je 0x10020ce5
mov dword [ecx + 0x32c], edx
mov eax, dword [esi + 0x1bc4]
test eax, eax
je 0x10020d0b
cmp dword [eax + 0x32c], 0
je 0x10020d0b
cmp dword [esi + 0x1c0c], 0
jne 0x10020d0b
mov dword [eax + 0x32c], 0
call fcn.10022130
test bh, bh
jne 0x10020d18
test bl, bl
je 0x10020d96
mov eax, dword [esi + 0x1bc4]
test eax, eax
je 0x10020d96
test dword [eax + 8], 0x40000
jne 0x10020d96
mov byte [esi + 0x359], 1
cmp dword [esi + 0x1bc8], 0
je 0x10020d9d
cmp byte [esi + 0x1c16], 0
jne 0x10020d9d
mov al, 1
mov edi, dword [0x100bc128]
xorps xmm5, xmm5
mov byte [esi + 0x35a], al
movss xmm0, dword [edi + 0x145c]
comiss xmm5, xmm0
ja 0x10020e9a
ucomiss xmm0, xmm5
lahf
test ah, 0x44
jp 0x10020e9a
cmp dword [esi + 0x1aa4], 0
je 0x10020daa
mov eax, dword [edi + 0x1abc]
shr eax, 1
test al, 1
jne 0x10020e9a
call fcn.100144b0
jmp 0x10020e9a
mov byte [esi + 0x359], 0
cmp dword [esi + 0x1ccc], 0
jne 0x10020d44
xor al, al
jmp 0x10020d46
mov ebx, dword [esi + 0x1bc4]
test ebx, ebx
je 0x10020e1a
mov eax, dword [ebx + 8]
and eax, 0x5000000
cmp eax, 0x1000000
jne 0x10020e1a
mov ecx, dword [ebx + 0x31c]
test ecx, ecx
je 0x10020e1a
call fcn.1001d240
mov edi, dword [0x100bc128]
xorps xmm5, xmm5
mov ecx, dword [ebx + 0x54]
mov eax, dword [edi + 0x1bc4]
mov dword [edi + 0x1bc8], ecx
mov dword [edi + 0x1bcc], 0
mov dword [eax + 0x330], ecx
cmp byte [esi + 0x1c17], 0
mov byte [esi + 0x1c14], 0
je 0x10020e9a
mov byte [esi + 0x1c15], 1
jmp 0x10020e9a
mov edx, dword [esi + 0x1bac]
test edx, edx
jle 0x10020e4f
mov eax, dword [esi + 0x1bb4]
lea ecx, [edx + edx*8]
mov eax, dword [eax + ecx*4 - 0x20]
test dword [eax + 8], 0x8000000
jne 0x10020e9a
lea ecx, [edx - 1]
mov dl, 1
call fcn.1001ed20
mov edi, dword [0x100bc128]
xorps xmm5, xmm5
jmp 0x10020e9a
cmp dword [esi + 0x1c0c], 0
je 0x10020e67
xor ecx, ecx
call fcn.10020380
mov edi, dword [0x100bc128]
jmp 0x10020e9a
test ebx, ebx
je 0x10020e86
mov eax, dword [ebx + 8]
test eax, 0x4000000
jne 0x10020e7c
test eax, 0x1000000
jne 0x10020e86
mov dword [ebx + 0x330], 0
mov dword [esi + 0x1bcc], 0
mov dword [esi + 0x1bc8], 0
mov ecx, dword [esi + 0x1bc8]
mov dword [esi + 0x1bdc], 0
mov dword [esi + 0x1bd8], 0
mov dword [esi + 0x1bd4], 0
mov dword [esi + 0x1bd0], 0
test ecx, ecx
je 0x10020f9b
cmp byte [esi + 0x1c16], 0
jne 0x10020f9b
cmp dword [esi + 0x1ccc], 0
jne 0x10020f9b
mov eax, dword [esi + 0x1bc4]
test eax, eax
je 0x10020f9b
test dword [eax + 8], 0x40000
jne 0x10020f9b
movss xmm0, dword [edi + 0x300]
comiss xmm0, xmm5
seta bh
test bh, bh
je 0x10020f31
movss xmm0, dword [edi + 0x1458]
comiss xmm5, xmm0
ja 0x10020f31
ucomiss xmm0, xmm5
lahf
test ah, 0x44
jp 0x10020f31
mov bl, 1
jmp 0x10020f33
xor bl, bl
mov edx, dword [esi + 0x1aa4]
test edx, edx
jne 0x10020f49
test bl, bl
je 0x10020f4d
mov dword [esi + 0x1bd0], ecx
jmp 0x10020f4d
cmp edx, ecx
jne 0x10020f9b
mov eax, dword [esi + 0x1bd4]
test bh, bh
cmovne eax, ecx
mov dword [esi + 0x1bd4], eax
test edx, edx
je 0x10020f66
cmp edx, ecx
jne 0x10020f9b
mov eax, dword [esi + 0x1bd8]
test bl, bl
cmovne eax, ecx
mov dword [esi + 0x1bd8], eax
test edx, edx
je 0x10020f7f
cmp edx, ecx
jne 0x10020f9b
movss xmm0, dword [edi + 0x1460]
comiss xmm5, xmm0
ja 0x10020f9b
ucomiss xmm0, xmm5
lahf
test ah, 0x44
jp 0x10020f9b
mov dword [esi + 0x1bdc], ecx
mov ecx, dword [esi + 0x1bc4]
test ecx, ecx
je 0x10020fb5
test dword [ecx + 8], 0x40000
je 0x10020fb5
mov byte [esi + 0x1c16], 1
mov eax, dword [esi + 0x1bf0]
mov byte [esi + 0x1c30], 0
test eax, eax
je 0x10020fde
mov dword [esi + 0x1bdc], eax
mov dword [esi + 0x1bd8], eax
mov dword [esi + 0x1bd4], eax
mov dword [esi + 0x1bd0], eax
cmp dword [esi + 0x1c38], 0
mov dword [esi + 0x1bf0], 0
jne 0x100212a5
mov dword [esi + 0x1c40], 0xffffffff
mov dword [esi + 0x1c34], 0
test ecx, ecx
je 0x10021297
cmp dword [esi + 0x1ccc], 0
jne 0x10021297
test dword [ecx + 8], 0x40000
jne 0x10021297
test byte [edi + 0x1ab8], 1
movss xmm6, dword [0x100afea8]
movss xmm7, dword [0x100afe9c]
jne 0x100210ce
movss xmm1, dword [edi + 0x1468]
comiss xmm5, xmm1
ja 0x10021086
movss xmm3, dword [edi + 0x90]
movaps xmm0, xmm1
movss xmm2, dword [edi + 0x8c]
subss xmm0, dword [edi + 0x18]
mulss xmm3, xmm6
mulss xmm2, xmm7
call fcn.100181c0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm5, xmm0
jb 0x100210c4
movss xmm1, dword [edi + 0x149c]
comiss xmm5, xmm1
ja 0x100210ce
movss xmm3, dword [edi + 0x90]
movaps xmm0, xmm1
movss xmm2, dword [edi + 0x8c]
subss xmm0, dword [edi + 0x18]
mulss xmm3, xmm6
mulss xmm2, xmm7
call fcn.100181c0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm5
jbe 0x100210ce
mov dword [esi + 0x1c40], 0
mov edx, dword [edi + 0x1ab8]
mov eax, edx
shr eax, 1
test al, 1
jne 0x1002116c
movss xmm1, dword [edi + 0x146c]
comiss xmm5, xmm1
ja 0x1002111e
movss xmm3, dword [edi + 0x90]
movaps xmm0, xmm1
movss xmm2, dword [edi + 0x8c]
subss xmm0, dword [edi + 0x18]
mulss xmm3, xmm6
mulss xmm2, xmm7
call fcn.100181c0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm5, xmm0
jb 0x1002115c
movss xmm1, dword [edi + 0x14a0]
comiss xmm5, xmm1
ja 0x1002116c
movss xmm3, dword [edi + 0x90]
movaps xmm0, xmm1
movss xmm2, dword [edi + 0x8c]
subss xmm0, dword [edi + 0x18]
mulss xmm3, xmm6
mulss xmm2, xmm7
call fcn.100181c0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm5
jbe 0x1002116c
mov dword [esi + 0x1c40], 1
mov edx, dword [edi + 0x1ab8]
mov eax, edx
shr eax, 2
test al, 1
jne 0x10021205
movss xmm1, dword [edi + 0x1470]
comiss xmm5, xmm1
ja 0x100211b7
movss xmm3, dword [edi + 0x90]
movaps xmm0, xmm1
movss xmm2, dword [edi + 0x8c]
subss xmm0, dword [edi + 0x18]
mulss xmm3, xmm6
mulss xmm2, xmm7
call fcn.100181c0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm5, xmm0
jb 0x100211f5
movss xmm1, dword [edi + 0x14a4]
comiss xmm5, xmm1
ja 0x10021205
movss xmm3, dword [edi + 0x90]
movaps xmm0, xmm1
movss xmm2, dword [edi + 0x8c]
subss xmm0, dword [edi + 0x18]
mulss xmm3, xmm6
mulss xmm2, xmm7
call fcn.100181c0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm5
jbe 0x10021205
mov dword [esi + 0x1c40], 2
mov edx, dword [edi + 0x1ab8]
shr edx, 3
test dl, 1
jne 0x10021297
movss xmm1, dword [edi + 0x1474]
comiss xmm5, xmm1
ja 0x1002124f
movss xmm3, dword [edi + 0x90]
movaps xmm0, xmm1
movss xmm2, dword [edi + 0x8c]
subss xmm0, dword [edi + 0x18]
mulss xmm3, xmm6
mulss xmm2, xmm7
call fcn.100181c0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm5, xmm0
jb 0x1002128d
movss xmm1, dword [edi + 0x14a8]
comiss xmm5, xmm1
ja 0x10021297
movss xmm3, dword [edi + 0x90]
movaps xmm0, xmm1
movss xmm2, dword [edi + 0x8c]
subss xmm0, dword [edi + 0x18]
mulss xmm3, xmm6
mulss xmm2, xmm7
call fcn.100181c0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm5
jbe 0x10021297
mov dword [esi + 0x1c40], 3
mov eax, dword [esi + 0x1c40]
mov dword [esi + 0x1c48], eax
jmp 0x100212af
mov dword [esi + 0x1c38], 2
cmp byte [esp + 0x17], 0
xorps xmm0, xmm0
movss dword [esp + 0x18], xmm0
je 0x100212cd
call fcn.10021ab0
movss dword [esp + 0x18], xmm0
xorps xmm5, xmm5
mov ecx, dword [esi + 0x1c40]
cmp ecx, 0xffffffff
je 0x100212f1
mov byte [esi + 0x1c30], 1
mov eax, dword [esi + 0x37c]
mov dword [esi + 0x1c3c], eax
mov dword [esi + 0x1c44], ecx
cmp byte [esi + 0x1c30], 0
je 0x1002131d
cmp dword [esi + 0x1bc8], 0
jne 0x1002131d
mov word [esi + 0x1c19], 0x101
mov dword [esi + 0x1c1c], 0
mov byte [esi + 0x1c16], 0
cmp byte [edi + 0x1c30], 0
jne 0x10021333
cmp byte [edi + 0x1c19], 0
jne 0x10021333
xor al, al
jmp 0x10021335
mov al, 1
movss xmm4, dword [0x100b05c0]
movss xmm3, dword [0x100afe7c]
mov byte [edi + 0x1c18], al
mov ecx, dword [esi + 0x1bc4]
test ecx, ecx
je 0x1002151a
test dword [ecx + 8], 0x40000
jne 0x1002151a
cmp dword [esi + 0x1ccc], 0
jne 0x1002151a
movss xmm0, dword [edi + 0x1934]
mov eax, dword [ecx + 0x31c]
mulss xmm0, dword [ecx + 0x280]
test eax, eax
je 0x10021395
mulss xmm0, dword [eax + 0x280]
cmp dword [ecx + 0x144], 0
mulss xmm0, dword [0x100aff88]
mulss xmm0, dword [esi + 0x18]
addss xmm0, xmm3
cvttss2si eax, xmm0
movd xmm3, eax
cvtdq2ps xmm3, xmm3
jne 0x1002144f
cmp byte [ecx + 0x151], 0
je 0x1002144f
cmp byte [esi + 0x1c30], 0
je 0x1002144f
mov eax, dword [esi + 0x1c40]
test eax, eax
je 0x100213e8
cmp eax, 1
jne 0x10021417
movaps xmm0, xmm3
jmp 0x100213ee
movaps xmm0, xmm3
xorps xmm0, xmm4
addss xmm0, dword [ecx + 0x58]
mov dword [ecx + 0x70], 0
mov dword [ecx + 0x78], 0
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx + 0x68], xmm0
mov eax, dword [esi + 0x1c40]
cmp eax, 2
je 0x10021426
cmp eax, 3
jne 0x1002144f
movaps xmm0, xmm3
jmp 0x1002142c
movaps xmm0, xmm3
xorps xmm0, xmm4
addss xmm0, dword [ecx + 0x5c]
mov dword [ecx + 0x74], 0
mov dword [ecx + 0x7c], 0
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx + 0x6c], xmm0
movss xmm0, dword [edi + 0x338]
comiss xmm0, xmm5
movss xmm2, dword [edi + 0x324]
movss xmm1, dword [edi + 0x32c]
subss xmm2, dword [edi + 0x320]
subss xmm1, dword [edi + 0x328]
jbe 0x1002148c
mulss xmm2, dword [0x100afe38]
mulss xmm1, dword [0x100afe38]
movss xmm0, dword [edi + 0x33c]
comiss xmm0, xmm5
jbe 0x100214a9
mulss xmm2, dword [0x100aff44]
mulss xmm1, dword [0x100aff44]
ucomiss xmm2, xmm5
lahf
test ah, 0x44
jnp 0x100214e2
cmp byte [ecx + 0x88], 0
je 0x100214e2
mulss xmm2, xmm3
mov dword [ecx + 0x70], 0
mov dword [ecx + 0x78], 0
addss xmm2, dword [ecx + 0x58]
cvttss2si eax, xmm2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx + 0x68], xmm0
ucomiss xmm1, xmm5
lahf
test ah, 0x44
jnp 0x10021512
mulss xmm1, xmm3
mov dword [ecx + 0x74], 0
mov dword [ecx + 0x7c], 0
addss xmm1, dword [ecx + 0x5c]
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx + 0x6c], xmm0
movss xmm3, dword [0x100afe7c]
mov dword [esi + 0x1c4c], 0
xorps xmm0, xmm0
mov dword [esi + 0x1c54], 0
mov dword [esi + 0x1c50], 0
mov dword [esi + 0x1c60], 0x7f7fffff
mov dword [esi + 0x1c5c], 0x7f7fffff
mov dword [esi + 0x1c58], 0x7f7fffff
movups xmmword [esi + 0x1c64], xmm0
mov dword [esi + 0x1c74], 0
mov dword [esi + 0x1c7c], 0
mov dword [esi + 0x1c78], 0
mov dword [esi + 0x1c88], 0x7f7fffff
mov dword [esi + 0x1c84], 0x7f7fffff
mov dword [esi + 0x1c80], 0x7f7fffff
movups xmmword [esi + 0x1c8c], xmm0
mov dword [esi + 0x1c9c], 0
mov dword [esi + 0x1ca4], 0
mov dword [esi + 0x1ca0], 0
mov dword [esi + 0x1cb0], 0x7f7fffff
mov dword [esi + 0x1cac], 0x7f7fffff
mov dword [esi + 0x1ca8], 0x7f7fffff
movups xmmword [esi + 0x1cb4], xmm0
cmp byte [esi + 0x1c30], 0
je 0x10021765
cmp dword [esi + 0x1bf4], 4
jne 0x10021765
cmp dword [esi + 0x1c0c], 0
jne 0x10021765
mov eax, dword [esi + 0x1bc4]
movss xmm5, dword [0x100afebc]
movss xmm2, dword [eax + 0x1f4]
subss xmm2, dword [eax + 0xc]
movss xmm6, dword [eax + 0x1fc]
movss xmm7, dword [eax + 0x200]
movss xmm1, dword [eax + 0x1f8]
subss xmm6, dword [eax + 0xc]
subss xmm7, dword [eax + 0x10]
subss xmm1, dword [eax + 0x10]
subss xmm2, xmm5
addss xmm6, xmm5
addss xmm7, xmm5
subss xmm1, xmm5
movss xmm5, dword [eax + 0x338]
comiss xmm5, xmm2
jb 0x1002168f
movss xmm0, dword [eax + 0x33c]
comiss xmm0, xmm1
jb 0x1002168f
comiss xmm6, dword [eax + 0x340]
jb 0x1002168f
comiss xmm7, dword [eax + 0x344]
jae 0x10021765
movss xmm0, dword [edi + 0x1934]
mov ecx, dword [eax + 0x31c]
mulss xmm0, dword [eax + 0x280]
test ecx, ecx
je 0x100216b1
mulss xmm0, dword [ecx + 0x280]
mulss xmm0, xmm3
movaps xmm3, xmm7
subss xmm3, xmm1
minss xmm3, xmm0
xorps xmm3, xmm4
movaps xmm4, xmm6
subss xmm4, xmm2
subss xmm1, xmm3
addss xmm3, xmm7
minss xmm4, xmm0
movss xmm0, dword [eax + 0x33c]
comiss xmm1, xmm0
xorps xmm4, xmmword [0x100b05c0]
subss xmm2, xmm4
addss xmm4, xmm6
jbe 0x100216f7
movaps xmm0, xmm1
jmp 0x100216fb
minss xmm0, xmm3
comiss xmm2, xmm5
jbe 0x10021705
movaps xmm5, xmm2
jmp 0x10021709
minss xmm5, xmm4
movss dword [eax + 0x338], xmm5
movss dword [eax + 0x33c], xmm0
movss xmm0, dword [eax + 0x344]
comiss xmm1, xmm0
ja 0x1002172d
movaps xmm1, xmm0
minss xmm1, xmm3
movss xmm0, dword [eax + 0x340]
comiss xmm2, xmm0
ja 0x10021741
movaps xmm2, xmm0
minss xmm2, xmm4
movss dword [eax + 0x340], xmm2
movss dword [eax + 0x344], xmm1
mov dword [esi + 0x1bcc], 0
mov dword [esi + 0x1bc8], 0
mov ecx, dword [esi + 0x1bc4]
test ecx, ecx
je 0x10021781
mov eax, dword [esi + 0x1c0c]
add eax, eax
movups xmm0, xmmword [ecx + eax*8 + 0x338]
jmp 0x10021784
xorps xmm0, xmm0
lea eax, [esp + 0x20]
movups xmmword [esp + 0x20], xmm0
movups xmm0, xmmword [eax]
lea eax, [esp + 0x20]
movups xmmword [esp + 0x20], xmm0
test ecx, ecx
je 0x100217e3
movss xmm4, dword [esp + 0x28]
movss xmm3, dword [esp + 0x2c]
movss xmm1, dword [esp + 0x20]
movss xmm0, dword [esp + 0x24]
addss xmm4, dword [ecx + 0xc]
addss xmm3, dword [ecx + 0x10]
addss xmm1, dword [ecx + 0xc]
addss xmm0, dword [ecx + 0x10]
movss dword [esp + 0x28], xmm4
movss dword [esp + 0x2c], xmm3
movss dword [esp + 0x20], xmm1
movss dword [esp + 0x24], xmm0
jmp 0x10021809
movss xmm0, dword [edi + 0x10]
movss dword [esp + 0x28], xmm0
movss xmm0, dword [edi + 0x14]
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
movss dword [esp + 0x2c], xmm0
movups xmm0, xmmword [eax]
pop edi
movss xmm1, dword [esp + 0x14]
movups xmmword [esi + 0x1bf8], xmm0
movaps xmm0, xmm1
addss xmm0, dword [esi + 0x1bfc]
addss xmm1, dword [esi + 0x1c04]
movss dword [esi + 0x1bfc], xmm0
movss dword [esi + 0x1c04], xmm1
movss xmm0, dword [esi + 0x1bf8]
addss xmm0, dword [0x100afebc]
mov dword [esi + 0x1c08], 0
minss xmm0, dword [esi + 0x1c00]
movss dword [esi + 0x1bf8], xmm0
movss dword [esi + 0x1c00], xmm0
pop esi
pop ebx
mov esp, ebp
pop ebp
ret