Function at 0x1000be70
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0xd8
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x64], edx
mov ecx, dword [0x10100b74]
mov dword [ebp - 0x18], edi
mov dword [ebp - 8], ecx
mov edx, dword [edi + 0xc]
mov dword [ebp - 0x58], edx
test dl, 0x42
jne 0x1000d281
cmp byte [edi + 0xcc], 0
jg 0x1000d281
cmp byte [edi + 0xcd], 0
jg 0x1000d281
cmp byte [edi + 0xaf], 0
je 0x1000d281
movss xmm2, dword [ecx + 0x3cf4]
xor eax, eax
cmp byte [ecx + 0x4a], 0
movaps xmm1, xmm2
movss xmm0, dword [edi + 0x50]
addss xmm0, dword [0x1005016c]
mulss xmm2, dword [0x1005011c]
mov dword [ebp - 0x60], eax
mulss xmm1, dword [0x10050174]
addss xmm0, xmm2
maxss xmm1, xmm0
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x10050150]
cvttss2si esi, xmm0
mov dword [ebp - 0x9c], esi
je 0x1000bf37
movss xmm0, dword [0x100501b8]
jmp 0x1000bf3a
xorps xmm0, xmm0
cmp byte [ecx + 0x4b], 0
mov eax, dword [ebx + 0x18]
movss dword [ebp - 0x34], xmm0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x98], xmm0
je 0x1000bfa2
test dl, 1
jne 0x1000bfa2
mov ecx, dword [edi]
mov eax, dword [edi + 0x300]
mov byte [ebp - 9], 1
movss xmm1, dword [ecx + 0x3cf8]
mulss xmm1, dword [edi + 0x264]
test eax, eax
je 0x1000bf7f
mulss xmm1, dword [eax + 0x264]
movss xmm0, dword [ecx + 0x38e8]
addss xmm0, xmm0
addss xmm0, xmm1
movss xmm1, dword [ebp - 0x94]
subss xmm1, xmm0
movss dword [ebp - 0x5c], xmm1
jmp 0x1000bfb3
movss xmm0, dword [ebp - 0x94]
mov byte [ebp - 9], 0
movss dword [ebp - 0x5c], xmm0
mov dword [ebp - 0xa4], 0x7f7fffff
mov dword [ebp - 0xa0], 0x7f7fffff
mov dword [ebp - 0x6c], 0x7f7fffff
mov dword [ebp - 0x68], 0x7f7fffff
mov dword [edi + 0x150], 1
call fcn.10011dc0
xor edx, edx
mov dword [ebp - 0x10], edx
cmp dword [ebx + 0x10], edx
jle 0x1000c54b
movss xmm0, dword [edi + 0x18]
lea eax, [edx + edx*2]
movss xmm1, dword [edi + 0x1c]
lea ecx, [eax*8 + 0x1004b520]
movaps xmm3, xmm0
mov dword [ebp - 0x20], ecx
addss xmm3, dword [edi + 0x20]
movaps xmm2, xmm1
xorps xmm6, xmm6
addss xmm2, dword [edi + 0x24]
cvtsi2ss xmm6, esi
subss xmm3, xmm0
subss xmm2, xmm1
mulss xmm3, dword [eax*8 + 0x1004b520]
mulss xmm2, dword [eax*8 + 0x1004b524]
addss xmm3, xmm0
movss xmm0, dword [eax*8 + 0x1004b528]
movaps xmm5, xmm0
mulss xmm0, dword [ebp - 0x34]
addss xmm2, xmm1
mulss xmm5, xmm6
movss xmm1, dword [eax*8 + 0x1004b52c]
movaps xmm4, xmm1
mulss xmm1, dword [ebp - 0x34]
mulss xmm4, xmm6
addss xmm5, xmm3
subss xmm3, xmm0
addss xmm4, xmm2
subss xmm2, xmm1
movss dword [ebp - 0x28], xmm5
comiss xmm3, xmm5
movss dword [ebp - 0x30], xmm3
movss dword [ebp - 0x2c], xmm2
movss dword [ebp - 0x24], xmm4
jbe 0x1000c09f
movss dword [ebp - 0x30], xmm5
movss dword [ebp - 0x28], xmm3
comiss xmm2, xmm4
jbe 0x1000c0ae
movss dword [ebp - 0x2c], xmm4
movss dword [ebp - 0x24], xmm2
mov ecx, dword [edi + 0xec]
lea esi, [ebp - 0x38]
mov eax, dword [edi + 0xf4]
mov edi, 4
mov dword [ebp - 0x38], edx
mov edx, dword [eax + ecx*4 - 4]
not edx
nop dword [eax + eax]
movzx eax, byte [esi]
lea esi, [esi + 1]
movzx ecx, dl
xor ecx, eax
shr edx, 8
xor edx, dword [ecx*4 + 0x1004b580]
sub edi, 1
jne 0x1000c0d0
mov edi, dword [ebp - 0x18]
not edx
mov esi, dword [ebp - 0x9c]
mov dword [ebp - 0x1c], edx
mov eax, dword [edi]
cmp dword [eax + 0x3fc0], edx
jne 0x1000c119
push ecx
push dword [ebp - 0x10]
mov ecx, dword [ebp - 0x1c]
mov edx, 4
call fcn.1001b3e0
mov edx, dword [ebp - 0x1c]
add esp, 8
push 8
push 0
lea ecx, [ebp - 0x30]
call fcn.10014290
mov edx, dword [ebp - 0x1c]
lea eax, [ebp - 1]
push 0x40800
push eax
lea eax, [ebp - 2]
push eax
lea ecx, [ebp - 0x30]
call fcn.1002ffe0
mov cl, byte [ebp - 2]
add esp, 0x14
test cl, cl
jne 0x1000c152
mov al, byte [ebp - 1]
test al, al
je 0x1000c485
mov edx, dword [ebp - 0x10]
mov eax, edx
mov ecx, dword [ebp - 8]
not eax
and eax, 1
add eax, 5
mov dword [ecx + 0x4d0c], eax
mov al, byte [ebp - 1]
test al, al
je 0x1000c2ba
mov edx, ecx
cmp byte [edx + 0x3825], 0
je 0x1000c321
mov eax, dword [0x10100b74]
mov ecx, dword [ebp - 0x64]
test byte [eax + 0x490c], 0x10
movss xmm5, dword [ecx]
movss xmm6, dword [ecx + 4]
je 0x1000c286
movups xmm0, xmmword [eax + 0x494c]
xorps xmm2, xmm2
comiss xmm0, xmm2
movups xmmword [ebp - 0xc4], xmm0
jb 0x1000c1d7
movss xmm1, dword [ebp - 0xbc]
comiss xmm1, xmm2
jb 0x1000c1d7
comiss xmm0, xmm5
jbe 0x1000c1cd
movaps xmm5, xmm0
jmp 0x1000c1dc
comiss xmm5, xmm1
jbe 0x1000c1dc
movaps xmm5, xmm1
jmp 0x1000c1dc
movss xmm5, dword [edi + 0x28]
movss xmm1, dword [ebp - 0xc0]
comiss xmm1, xmm2
jb 0x1000c20a
movss xmm0, dword [ebp - 0xb8]
comiss xmm0, xmm2
jb 0x1000c20a
comiss xmm1, xmm6
jbe 0x1000c200
movaps xmm6, xmm1
jmp 0x1000c20f
comiss xmm6, xmm0
jbe 0x1000c20f
movaps xmm6, xmm0
jmp 0x1000c20f
movss xmm6, dword [edi + 0x2c]
mov ecx, dword [eax + 0x495c]
test ecx, ecx
je 0x1000c270
movss xmm0, dword [edi + 0x18]
mov eax, dword [eax + 0x4960]
movss dword [ebp - 0x84], xmm0
movss xmm0, dword [edi + 0x1c]
movss dword [ebp - 0x80], xmm0
movss xmm0, dword [edi + 0x28]
mov dword [ebp - 0x88], eax
lea eax, [ebp - 0x88]
movss dword [ebp - 0x7c], xmm0
movss xmm0, dword [edi + 0x2c]
push eax
movss dword [ebp - 0x78], xmm0
movss dword [ebp - 0x74], xmm5
movss dword [ebp - 0x70], xmm6
call ecx
movss xmm5, dword [ebp - 0x74]
add esp, 4
movss xmm6, dword [ebp - 0x70]
cvttss2si eax, xmm5
movd xmm5, eax
cvttss2si eax, xmm6
cvtdq2ps xmm5, xmm5
movd xmm6, eax
cvtdq2ps xmm6, xmm6
mov edx, edi
lea ecx, [ebp - 0x40]
call fcn.1000b760
maxss xmm5, dword [ebp - 0x40]
maxss xmm6, dword [ebp - 0x3c]
xor edx, edx
mov dword [ebp - 0x60], 3
xor ecx, ecx
movss dword [ebp - 0x6c], xmm5
movss dword [ebp - 0x68], xmm6
call fcn.10007720
mov al, byte [ebp - 1]
mov edx, dword [ebp - 0x10]
mov cl, byte [ebp - 2]
test edx, edx
je 0x1000c48d
test al, al
jne 0x1000c495
test cl, cl
je 0x1000c53e
xor eax, eax
test cl, cl
setne al
add eax, 0x1e
mov ecx, dword [0x10100b74]
add eax, eax
movss xmm4, dword [0x1005016c]
xorps xmm3, xmm3
movups xmm1, xmmword [ecx + eax*8 + 0x398c]
comiss xmm3, xmm1
movaps xmm2, xmm1
shufps xmm2, xmm1, 0xff
mulss xmm2, dword [ecx + 0x38a8]
movups xmmword [ebp - 0xc4], xmm1
jbe 0x1000c49f
xorps xmm0, xmm0
jmp 0x1000c4a6
mov ecx, dword [ebp - 0x20]
xorps xmm2, xmm2
movss xmm3, dword [0x1005016c]
movss xmm0, dword [ecx + 4]
ucomiss xmm0, xmm3
lahf
test ah, 0x44
jnp 0x1000c359
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x1000c34c
cmp byte [ebp - 9], 0
jne 0x1000c359
movss xmm4, dword [0x100502b0]
movaps xmm7, xmm4
jmp 0x1000c366
movss xmm7, dword [ebp - 0x5c]
movss xmm4, dword [0x100502b0]
movss xmm1, dword [ecx]
ucomiss xmm1, xmm3
lahf
test ah, 0x44
jp 0x1000c37d
movss xmm5, dword [ebp - 0x98]
jmp 0x1000c380
movaps xmm5, xmm4
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x1000c3a0
movss xmm0, dword [ebp - 0x8c]
movss dword [ebp - 0x20], xmm0
movss xmm0, dword [0x10050280]
jmp 0x1000c3ad
movss xmm0, dword [0x10050280]
movss dword [ebp - 0x20], xmm0
ucomiss xmm1, xmm2
lahf
test ah, 0x44
jp 0x1000c3be
movss xmm0, dword [ebp - 0x90]
movss xmm3, dword [ecx + 0xc]
xorps xmm6, xmm6
cvtsi2ss xmm6, esi
movss dword [ebp - 0x44], xmm0
movaps xmm2, xmm3
movss xmm0, dword [ecx + 8]
movaps xmm4, xmm6
mulss xmm0, dword [ebp - 0x34]
xorps xmm4, xmmword [0x10050570]
mulss xmm2, dword [ebp - 0x34]
movaps xmm6, xmm4
mulss xmm6, dword [ecx + 8]
mulss xmm3, xmm4
subss xmm6, xmm0
subss xmm3, xmm2
mulss xmm6, xmm1
mulss xmm3, dword [ecx + 4]
addss xmm6, xmm0
movss xmm0, dword [edx + 0xe00]
subss xmm0, dword [edx + 0x3fec]
addss xmm3, xmm2
addss xmm6, xmm0
movss xmm0, dword [edx + 0xe04]
subss xmm0, dword [edx + 0x3ff0]
addss xmm0, xmm3
comiss xmm7, xmm0
ja 0x1000c446
movss xmm7, dword [ebp - 0x20]
minss xmm7, xmm0
comiss xmm5, xmm6
ja 0x1000c454
movss xmm5, dword [ebp - 0x44]
minss xmm5, xmm6
lea eax, [ebp - 0x6c]
movss dword [ebp - 0xac], xmm5
push eax
lea eax, [ebp - 0xa4]
movss dword [ebp - 0xa8], xmm7
push eax
push ecx
lea edx, [ebp - 0xac]
mov ecx, edi
call fcn.1000bc80
add esp, 0xc
jmp 0x1000c2b4
mov edx, dword [ebp - 0x10]
jmp 0x1000c2bd
test al, al
je 0x1000c2d5
mov eax, 0x20
jmp 0x1000c2df
movaps xmm0, xmm4
minss xmm0, xmm1
movss xmm5, dword [0x10050248]
movss xmm6, dword [0x10050134]
movss xmm1, dword [ebp - 0xc0]
comiss xmm3, xmm1
mulss xmm0, xmm5
addss xmm0, xmm6
cvttss2si ecx, xmm0
jbe 0x1000c4d4
xorps xmm0, xmm0
jmp 0x1000c4db
movaps xmm0, xmm4
minss xmm0, xmm1
movss xmm1, dword [ebp - 0xbc]
mulss xmm0, xmm5
addss xmm0, xmm6
cvttss2si eax, xmm0
shl eax, 8
or ecx, eax
comiss xmm3, xmm1
jbe 0x1000c4fe
xorps xmm0, xmm0
jmp 0x1000c505
movaps xmm0, xmm4
minss xmm0, xmm1
mulss xmm0, xmm5
addss xmm0, xmm6
cvttss2si eax, xmm0
shl eax, 0x10
or ecx, eax
comiss xmm3, xmm2
jbe 0x1000c520
xorps xmm0, xmm0
jmp 0x1000c527
movaps xmm0, xmm4
minss xmm0, xmm2
mulss xmm0, xmm5
addss xmm0, xmm6
cvttss2si eax, xmm0
shl eax, 0x18
or eax, ecx
mov ecx, dword [ebx + 0x14]
mov dword [ecx + edx*4], eax
inc edx
mov dword [ebp - 0x10], edx
cmp edx, dword [ebx + 0x10]
jl 0x1000bff2
test dword [edi + 0xc], 0x1000000
je 0x1000c565
mov eax, dword [edi + 0x10]
mov edx, eax
shr edx, 1
and eax, 8
and edx, 2
or edx, eax
jmp 0x1000c575
mov eax, dword [ebp - 8]
xor edx, edx
mov ecx, 0xf
cmp byte [eax + 0x4a], dl
cmovne edx, ecx
xor ecx, ecx
mov dword [ebp - 0x44], edx
mov eax, 1
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x20], eax
test edx, eax
je 0x1000c93a
lea eax, [ecx*8]
sub eax, ecx
shl eax, 2
mov dword [ebp - 0xa8], eax
test ecx, ecx
je 0x1000c5af
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jne 0x1000c5b6
mov dword [ebp - 0x1c], 0
movss xmm4, dword [edi + 0x18]
movss xmm3, dword [edi + 0x1c]
movaps xmm1, xmm4
movaps xmm2, xmm3
addss xmm1, dword [edi + 0x20]
addss xmm2, dword [edi + 0x24]
test ecx, ecx
jne 0x1000c60f
movd xmm6, esi
movaps xmm0, xmm4
subss xmm0, dword [0x100501b8]
addss xmm4, dword [0x100501b8]
cvtdq2ps xmm6, xmm6
movss dword [ebp - 0x54], xmm0
addss xmm3, xmm6
movss dword [ebp - 0x4c], xmm4
subss xmm2, xmm6
movss dword [ebp - 0x50], xmm3
movss dword [ebp - 0x48], xmm2
jmp 0x1000c6d0
cmp ecx, 1
jne 0x1000c64f
movd xmm5, esi
movaps xmm0, xmm1
subss xmm0, dword [0x100501b8]
addss xmm1, dword [0x100501b8]
cvtdq2ps xmm5, xmm5
movss dword [ebp - 0x54], xmm0
addss xmm3, xmm5
movss dword [ebp - 0x4c], xmm1
subss xmm2, xmm5
movss dword [ebp - 0x50], xmm3
movss dword [ebp - 0x48], xmm2
jmp 0x1000c6d0
cmp ecx, 2
jne 0x1000c68c
movd xmm5, esi
movaps xmm0, xmm3
subss xmm0, dword [0x100501b8]
addss xmm3, dword [0x100501b8]
cvtdq2ps xmm5, xmm5
movss dword [ebp - 0x50], xmm0
addss xmm4, xmm5
movss dword [ebp - 0x48], xmm3
subss xmm1, xmm5
movss dword [ebp - 0x54], xmm4
movss dword [ebp - 0x4c], xmm1
jmp 0x1000c6d0
cmp ecx, 3
jne 0x1000c6c9
movd xmm5, esi
movaps xmm0, xmm2
subss xmm0, dword [0x100501b8]
addss xmm2, dword [0x100501b8]
cvtdq2ps xmm5, xmm5
movss dword [ebp - 0x50], xmm0
addss xmm4, xmm5
movss dword [ebp - 0x48], xmm2
subss xmm1, xmm5
movss dword [ebp - 0x54], xmm4
movss dword [ebp - 0x4c], xmm1
jmp 0x1000c6d0
xorps xmm0, xmm0
movups xmmword [ebp - 0x54], xmm0
lea eax, [ecx + 4]
mov esi, 4
mov ecx, dword [edi + 0xec]
mov dword [ebp - 0x38], eax
mov eax, dword [edi + 0xf4]
lea edi, [ebp - 0x38]
mov edx, dword [eax + ecx*4 - 4]
not edx
movzx eax, byte [edi]
lea edi, [edi + 1]
movzx ecx, dl
xor ecx, eax
shr edx, 8
xor edx, dword [ecx*4 + 0x1004b580]
sub esi, 1
jne 0x1000c6f0
mov edi, dword [ebp - 0x18]
not edx
mov esi, dword [ebp - 0x9c]
mov dword [ebp - 0x34], edx
mov eax, dword [edi]
cmp dword [eax + 0x3fc0], edx
jne 0x1000c739
push ecx
push dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
mov edx, 4
call fcn.1001b3e0
mov edx, dword [ebp - 0x34]
add esp, 8
push 8
push 0
lea ecx, [ebp - 0x54]
call fcn.10014290
mov edx, dword [ebp - 0x34]
lea eax, [ebp - 1]
push 0x40800
push eax
lea eax, [ebp - 2]
push eax
lea ecx, [ebp - 0x54]
call fcn.1002ffe0
mov ecx, dword [ebp - 8]
add esp, 0x14
cmp byte [ebp - 2], 0
je 0x1000c77e
movss xmm0, dword [0x10050104]
comiss xmm0, dword [ecx + 0x3fd0]
jb 0x1000c789
mov byte [ebp - 2], 0
mov al, byte [ebp - 1]
test al, al
je 0x1000ccd2
mov eax, dword [ebp - 0x1c]
xor eax, 1
add eax, 3
mov dword [ecx + 0x4d0c], eax
mov al, byte [ebp - 1]
test al, al
je 0x1000ccd2
cmp byte [ecx + 0x3825], 0
je 0x1000c9d6
mov eax, dword [ebp - 0x10]
cmp eax, 1
je 0x1000c7c1
cmp eax, 3
jne 0x1000c911
mov eax, dword [0x10100b74]
mov ecx, dword [ebp - 0x64]
test byte [eax + 0x490c], 0x10
movss xmm5, dword [ecx]
movss xmm6, dword [ecx + 4]
je 0x1000c8c5
movups xmm0, xmmword [eax + 0x494c]
xorps xmm2, xmm2
comiss xmm0, xmm2
movups xmmword [ebp - 0xb4], xmm0
jb 0x1000c816
movss xmm1, dword [ebp - 0xac]
comiss xmm1, xmm2
jb 0x1000c816
comiss xmm0, xmm5
jbe 0x1000c80c
movaps xmm5, xmm0
jmp 0x1000c81b
comiss xmm5, xmm1
jbe 0x1000c81b
movaps xmm5, xmm1
jmp 0x1000c81b
movss xmm5, dword [edi + 0x28]
movss xmm1, dword [ebp - 0xb0]
comiss xmm1, xmm2
jb 0x1000c849
movss xmm0, dword [ebp - 0xa8]
comiss xmm0, xmm2
jb 0x1000c849
comiss xmm1, xmm6
jbe 0x1000c83f
movaps xmm6, xmm1
jmp 0x1000c84e
comiss xmm6, xmm0
jbe 0x1000c84e
movaps xmm6, xmm0
jmp 0x1000c84e
movss xmm6, dword [edi + 0x2c]
mov ecx, dword [eax + 0x495c]
test ecx, ecx
je 0x1000c8af
movss xmm0, dword [edi + 0x18]
mov eax, dword [eax + 0x4960]
movss dword [ebp - 0x84], xmm0
movss xmm0, dword [edi + 0x1c]
movss dword [ebp - 0x80], xmm0
movss xmm0, dword [edi + 0x28]
mov dword [ebp - 0x88], eax
lea eax, [ebp - 0x88]
movss dword [ebp - 0x7c], xmm0
movss xmm0, dword [edi + 0x2c]
push eax
movss dword [ebp - 0x78], xmm0
movss dword [ebp - 0x74], xmm5
movss dword [ebp - 0x70], xmm6
call ecx
movss xmm5, dword [ebp - 0x74]
add esp, 4
movss xmm6, dword [ebp - 0x70]
cvttss2si eax, xmm5
movd xmm5, eax
cvttss2si eax, xmm6
cvtdq2ps xmm5, xmm5
movd xmm6, eax
cvtdq2ps xmm6, xmm6
mov edx, edi
lea ecx, [ebp - 0xcc]
call fcn.1000b760
maxss xmm5, dword [ebp - 0xcc]
maxss xmm6, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0x1c]
mov byte [ebp - 1], 0
mov byte [ebp - 2], 0
movss dword [ebp - 0xd4], xmm5
movss dword [ebp - 0xd0], xmm6
mov eax, dword [ebp + ecx*4 - 0xd4]
mov dword [ebp + ecx*4 - 0x6c], eax
mov eax, dword [ebp - 0x60]
bts eax, ecx
mov dword [ebp - 0x60], eax
xor edx, edx
xor ecx, ecx
call fcn.10007720
mov ecx, dword [ebp - 0x10]
mov al, byte [ebp - 1]
cmp byte [ebp - 2], 0
je 0x1000c92b
mov edx, dword [ebx + 8]
mov dword [edx], ecx
mov edx, dword [ebp - 0x44]
test al, al
je 0x1000c937
mov eax, dword [ebx + 0xc]
mov dword [eax], ecx
mov eax, dword [ebp - 0x20]
inc ecx
rol eax, 1
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x20], eax
cmp ecx, 4
jl 0x1000c585
mov ecx, dword [0x10100b74]
mov eax, dword [ecx + 0x3f88]
dec dword [eax + 0xec]
mov eax, dword [ebp - 8]
mov dword [edi + 0x150], 0
mov eax, dword [eax + 0x4ba0]
test eax, eax
je 0x1000d032
cmp dword [eax + 0x308], edi
mov edi, dword [ebp - 8]
jne 0x1000d02d
mov eax, dword [edi + 0x4a20]
cmp eax, 2
jne 0x1000ccda
cmp byte [edi + 0xe1d], 0
je 0x1000d02d
mov edx, 0x202
call fcn.10011f10
mov edx, 0x201
movss xmm2, dword [eax + 0xc]
call fcn.10011f10
mov edx, 0x204
subss xmm2, dword [eax + 0xc]
call fcn.10011f10
mov edx, 0x203
jmp 0x1000cd10
cmp dword [ecx + 0x3f98], 0
je 0x1000ca22
mov eax, dword [ecx + 0x3fa8]
cmp eax, dword [ecx + 0x3f08]
jne 0x1000ca22
mov edx, edi
mov ecx, edi
mov eax, ecx
mov ecx, dword [ecx + 0x308]
cmp eax, ecx
jne 0x1000c9f1
mov esi, dword [ebp - 8]
mov eax, dword [esi + 0x3f98]
mov esi, dword [ebp - 0x9c]
cmp ecx, eax
je 0x1000ca77
cmp edx, eax
je 0x1000ca77
cmp edx, ecx
je 0x1000ca22
mov edx, dword [edx + 0x300]
test edx, edx
jne 0x1000ca10
xor al, al
mov ecx, dword [ebp - 8]
cmp byte [ecx + 0x3fe4], 0
jne 0x1000ca34
test al, al
je 0x1000ca46
movups xmm0, xmmword [ebp - 0x54]
mov byte [ecx + 0x5c70], 0
movups xmmword [ecx + 0x5c60], xmm0
test dword [edi + 0xc], 0x1000000
je 0x1000ca85
add ecx, 0x5c60
mov dword [ebp - 0x38], 0xc
lea edx, [ebp - 0x54]
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1000ca7b
add ecx, 4
add edx, 4
sub dword [ebp - 0x38], 4
jae 0x1000ca60
mov ecx, dword [ebp - 8]
jmp 0x1000ca85
mov al, 1
jmp 0x1000ca24
mov ecx, dword [ebp - 8]
mov byte [ecx + 0x5c70], 1
cmp byte [ecx + 0x5c70], 0
mov edx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0x1c]
mov byte [ebp - 0x11], 0
movss xmm0, dword [edx + 0x1004b350]
minss xmm0, dword [edx + 0x1004b358]
movss xmm1, dword [ecx + eax*4 + 0xe00]
subss xmm1, dword [ecx + eax*4 + 0x3fec]
movss xmm3, dword [ecx + eax*4 + 0xac]
movaps xmm2, xmm3
mulss xmm0, dword [edi + 0x20]
addss xmm1, dword [0x100501b8]
addss xmm0, dword [edi + 0x18]
movss dword [ebp - 0xbc], xmm0
movss xmm0, dword [edx + 0x1004b354]
minss xmm0, dword [edx + 0x1004b35c]
mulss xmm0, dword [edi + 0x24]
addss xmm0, dword [edi + 0x1c]
movss dword [ebp - 0xb8], xmm0
movss xmm0, dword [edi + 0x18]
addss xmm2, dword [ebp + eax*4 - 0xbc]
movss dword [ebp - 0x40], xmm0
movss xmm0, dword [edi + 0x1c]
movss dword [ebp - 0x3c], xmm0
movss dword [ebp + eax*4 - 0x40], xmm1
je 0x1000cb52
xorps xmm0, xmm0
movss dword [ebp + eax*4 - 0x40], xmm2
ucomiss xmm3, xmm0
lahf
test ah, 0x44
jnp 0x1000cb4e
xor ecx, ecx
comiss xmm2, xmm1
seta cl
xor eax, eax
comiss xmm3, xmm0
seta al
cmp eax, ecx
jne 0x1000cb52
mov byte [ebp - 0x11], 1
mov ecx, dword [ebp - 0x10]
cmp ecx, 3
je 0x1000cb72
cmp ecx, 2
jne 0x1000cb65
cmp byte [ebp - 9], 0
jne 0x1000cb72
movss xmm0, dword [0x100502b0]
movaps xmm1, xmm0
jmp 0x1000cb7f
movss xmm1, dword [ebp - 0x5c]
movss xmm0, dword [0x100502b0]
cmp ecx, 1
jne 0x1000cc0b
movss xmm0, dword [ebp - 0x98]
movss xmm2, dword [0x10050280]
movss xmm4, dword [0x10050280]
movss xmm3, dword [ebp - 0x3c]
comiss xmm1, xmm3
ja 0x1000cbb1
movaps xmm1, xmm2
minss xmm1, xmm3
movss xmm2, dword [ebp - 0x40]
comiss xmm0, xmm2
ja 0x1000cbc2
movaps xmm0, xmm4
minss xmm0, xmm2
mov eax, dword [ebp - 0x58]
movss dword [ebp - 0x40], xmm0
movss dword [ebp - 0x3c], xmm1
test eax, 0x1000000
je 0x1000cc7d
test eax, 0x8800
je 0x1000cbe9
test al, 8
je 0x1000cc7d
mov eax, dword [edi + 0x300]
movss xmm3, dword [eax + 0x1e8]
comiss xmm3, xmm0
movss xmm2, dword [eax + 0x1f0]
jbe 0x1000cc40
movss dword [ebp - 0x40], xmm3
jmp 0x1000cc4a
movaps xmm3, xmm0
cmp ecx, 2
jne 0x1000cc20
movss xmm2, dword [ebp - 0x8c]
jmp 0x1000cb98
movss xmm2, dword [0x10050280]
movaps xmm0, xmm3
test ecx, ecx
jne 0x1000cb98
movss xmm4, dword [ebp - 0x90]
jmp 0x1000cba0
comiss xmm0, xmm2
jbe 0x1000cc4a
movss dword [ebp - 0x40], xmm2
mov eax, dword [ebp - 0x58]
test al, 8
je 0x1000cc7d
mov eax, dword [edi + 0x300]
movss xmm2, dword [eax + 0x1ec]
comiss xmm2, xmm1
movss xmm0, dword [eax + 0x1f4]
jbe 0x1000cc73
movss dword [ebp - 0x3c], xmm2
jmp 0x1000cc7d
comiss xmm1, xmm0
jbe 0x1000cc7d
movss dword [ebp - 0x3c], xmm0
cmp byte [ebp - 0x11], 0
jne 0x1000c91d
movss xmm0, dword [edx + 0x1004b350]
lea eax, [ebp - 0x6c]
minss xmm0, dword [edx + 0x1004b358]
push eax
lea eax, [ebp - 0xa4]
mov ecx, edi
push eax
lea eax, [ebp - 0x28]
movss dword [ebp - 0x28], xmm0
movss xmm0, dword [edx + 0x1004b354]
minss xmm0, dword [edx + 0x1004b35c]
push eax
lea edx, [ebp - 0x40]
movss dword [ebp - 0x24], xmm0
call fcn.1000bc80
add esp, 0xc
jmp 0x1000c91a
mov ecx, dword [ebp - 0x10]
jmp 0x1000c920
cmp eax, 3
jne 0x1000d02d
mov edx, 0x27e
call fcn.10011f10
mov edx, 0x27d
movss xmm2, dword [eax + 0xc]
call fcn.10011f10
mov edx, 0x280
subss xmm2, dword [eax + 0xc]
call fcn.10011f10
mov edx, 0x27f
movss xmm3, dword [eax + 0xc]
call fcn.10011f10
xorps xmm4, xmm4
ucomiss xmm2, xmm4
subss xmm3, dword [eax + 0xc]
lahf
test ah, 0x44
jp 0x1000cd38
ucomiss xmm3, xmm4
lahf
test ah, 0x44
jnp 0x1000d02d
mov eax, edi
mov edx, dword [ebp - 0x18]
movss xmm1, dword [eax + 0x3c]
minss xmm1, dword [eax + 0x40]
movss xmm0, dword [eax + 0x18]
mulss xmm0, dword [0x10050260]
mulss xmm1, xmm0
movss xmm0, dword [ebp - 0x98]
mulss xmm2, xmm1
mulss xmm3, xmm1
addss xmm2, dword [eax + 0x4bc0]
addss xmm3, dword [eax + 0x4bc4]
movss dword [eax + 0x4bc0], xmm2
movss dword [eax + 0x4bc4], xmm3
subss xmm0, dword [edx + 0x18]
subss xmm0, dword [edx + 0x20]
maxss xmm2, xmm0
movss xmm0, dword [ebp - 0x5c]
subss xmm0, dword [edx + 0x1c]
subss xmm0, dword [edx + 0x24]
movss dword [eax + 0x4bc0], xmm2
mov byte [eax + 0x4bb4], 0
mov byte [eax + 0x4a33], 1
maxss xmm3, xmm0
movss dword [eax + 0x4bc4], xmm3
movups xmm2, xmmword [ecx + 0x3b8c]
movss xmm3, dword [0x1005016c]
comiss xmm4, xmm2
movaps xmm1, xmm2
shufps xmm1, xmm2, 0xff
mulss xmm1, dword [ecx + 0x38a8]
movups xmmword [ebp - 0x98], xmm2
jbe 0x1000cdf6
xorps xmm0, xmm0
jmp 0x1000cdfd
movaps xmm0, xmm3
minss xmm0, xmm2
movss xmm5, dword [0x10050248]
movss xmm6, dword [0x10050134]
movss xmm2, dword [ebp - 0x94]
comiss xmm4, xmm2
mulss xmm0, xmm5
addss xmm0, xmm6
cvttss2si edi, xmm0
jbe 0x1000ce2b
xorps xmm0, xmm0
jmp 0x1000ce32
movaps xmm0, xmm3
minss xmm0, xmm2
movss xmm2, dword [ebp - 0x90]
mulss xmm0, xmm5
addss xmm0, xmm6
cvttss2si eax, xmm0
shl eax, 8
or edi, eax
comiss xmm4, xmm2
jbe 0x1000ce55
xorps xmm0, xmm0
jmp 0x1000ce5c
movaps xmm0, xmm3
minss xmm0, xmm2
mulss xmm0, xmm5
addss xmm0, xmm6
cvttss2si eax, xmm0
shl eax, 0x10
or edi, eax
comiss xmm4, xmm1
jbe 0x1000ce77
xorps xmm3, xmm3
jmp 0x1000ce7b
minss xmm3, xmm1
mulss xmm3, xmm5
addss xmm3, xmm6
cvttss2si eax, xmm3
shl eax, 0x18
or eax, edi
mov edi, dword [ebx + 0x14]
mov dword [edi], eax
mov eax, dword [ebp - 8]
cvttss2si edi, dword [eax + 0x4bc0]
cvttss2si eax, dword [eax + 0x4bc4]
movd xmm0, edi
cvtdq2ps xmm0, xmm0
movd xmm7, eax
ucomiss xmm0, xmm4
cvtdq2ps xmm7, xmm7
lahf
movss dword [ebp - 0x64], xmm7
test ah, 0x44
jp 0x1000cecd
ucomiss xmm7, xmm4
lahf
test ah, 0x44
jnp 0x1000d035
test byte [ecx + 0x490c], 0x10
movaps xmm5, xmm7
movss xmm2, dword [edx + 0x28]
addss xmm5, dword [edx + 0x2c]
movaps xmm6, xmm2
addss xmm6, xmm0
je 0x1000cfdf
movups xmm0, xmmword [ecx + 0x494c]
comiss xmm0, xmm4
movups xmmword [ebp - 0x98], xmm0
jb 0x1000cf22
movss xmm1, dword [ebp - 0x90]
comiss xmm1, xmm4
jb 0x1000cf22
comiss xmm0, xmm6
jbe 0x1000cf18
movaps xmm6, xmm0
jmp 0x1000cf25
comiss xmm6, xmm1
jbe 0x1000cf25
movaps xmm6, xmm1
jmp 0x1000cf25
movaps xmm6, xmm2
movss xmm0, dword [ebp - 0x94]
comiss xmm0, xmm4
jb 0x1000cf53
movss xmm1, dword [ebp - 0x8c]
comiss xmm1, xmm4
jb 0x1000cf53
comiss xmm0, xmm5
jbe 0x1000cf49
movaps xmm5, xmm0
jmp 0x1000cf58
comiss xmm5, xmm1
jbe 0x1000cf58
movaps xmm5, xmm1
jmp 0x1000cf58
movss xmm5, dword [edx + 0x2c]
mov eax, dword [ecx + 0x495c]
mov dword [ebp - 0xa8], eax
test eax, eax
je 0x1000cfc9
movss xmm0, dword [edx + 0x18]
mov eax, dword [ecx + 0x4960]
movss dword [ebp - 0x84], xmm0
movss xmm0, dword [edx + 0x1c]
movss dword [ebp - 0x80], xmm0
movaps xmm0, xmm2
mov dword [ebp - 0x88], eax
lea eax, [ebp - 0x88]
movss dword [ebp - 0x7c], xmm0
movss xmm0, dword [edx + 0x2c]
push eax
movss dword [ebp - 0x78], xmm0
movss dword [ebp - 0x74], xmm6
movss dword [ebp - 0x70], xmm5
call dword [ebp - 0xa8]
movss xmm6, dword [ebp - 0x74]
add esp, 4
movss xmm5, dword [ebp - 0x70]
movss xmm7, dword [ebp - 0x64]
mov edx, dword [ebp - 0x18]
cvttss2si eax, xmm6
movd xmm6, eax
cvttss2si eax, xmm5
cvtdq2ps xmm6, xmm6
movd xmm5, eax
cvtdq2ps xmm5, xmm5
lea ecx, [ebp - 0x28]
call fcn.1000b760
mov eax, dword [ebp - 8]
maxss xmm6, dword [ebp - 0x28]
maxss xmm5, dword [ebp - 0x24]
mov ecx, dword [0x10100b74]
movss xmm0, dword [eax + 0x4bc0]
movd xmm1, edi
mov edi, eax
cvtdq2ps xmm1, xmm1
subss xmm0, xmm1
movss dword [edi + 0x4bc0], xmm0
movss xmm0, dword [edi + 0x4bc4]
subss xmm0, xmm7
movss dword [edi + 0x4bc4], xmm0
jmp 0x1000d042
mov edx, dword [ebp - 0x18]
jmp 0x1000d038
mov edx, dword [ebp - 0x18]
mov edi, dword [ebp - 8]
movss xmm5, dword [ebp - 0x68]
movss xmm6, dword [ebp - 0x6c]
movss xmm3, dword [0x10050280]
ucomiss xmm6, xmm3
lahf
test ah, 0x44
jnp 0x1000d05d
movss dword [edx + 0x28], xmm6
movss dword [edx + 0x20], xmm6
ucomiss xmm5, xmm3
lahf
test ah, 0x44
jnp 0x1000d070
movss dword [edx + 0x2c], xmm5
movss dword [edx + 0x24], xmm5
movss xmm2, dword [ebp - 0xa4]
ucomiss xmm2, xmm3
lahf
test ah, 0x44
jnp 0x1000d091
cvttss2si eax, xmm2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edx + 0x18], xmm0
movss xmm1, dword [ebp - 0xa0]
ucomiss xmm1, xmm3
lahf
test ah, 0x44
jnp 0x1000d0b2
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edx + 0x1c], xmm0
ucomiss xmm6, xmm3
lahf
test ah, 0x44
jp 0x1000d0d6
ucomiss xmm5, xmm3
lahf
test ah, 0x44
jp 0x1000d0d6
ucomiss xmm2, xmm3
lahf
test ah, 0x44
jp 0x1000d0d6
ucomiss xmm1, xmm3
lahf
test ah, 0x44
jnp 0x1000d0f4
test dword [edx + 0xc], 0x100
jne 0x1000d0f4
xorps xmm0, xmm0
comiss xmm0, dword [ecx + 0x5d34]
jb 0x1000d0f4
mov eax, dword [ecx + 0x1c]
mov dword [ecx + 0x5d34], eax
mov eax, dword [ebx + 0xc]
mov eax, dword [eax]
cmp eax, 0xffffffff
je 0x1000d275
movss xmm4, dword [edx + 0x18]
movss xmm3, dword [edx + 0x1c]
movaps xmm1, xmm4
movaps xmm2, xmm3
addss xmm1, dword [edx + 0x20]
addss xmm2, dword [edx + 0x24]
test eax, eax
jne 0x1000d16d
mov eax, dword [ebp - 0x60]
movaps xmm0, xmm4
subss xmm0, dword [0x100501b8]
addss xmm4, dword [0x100501b8]
movd xmm6, esi
cvtdq2ps xmm6, xmm6
movss dword [ebp - 0x30], xmm0
addss xmm3, xmm6
movss dword [ebp - 0x28], xmm4
subss xmm2, xmm6
movss dword [ebp - 0x2c], xmm3
movss dword [ebp - 0x24], xmm2
movups xmm0, xmmword [ebp - 0x30]
movups xmmword [edi + 0x5c60], xmm0
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
cmp eax, 1
jne 0x1000d1bf
mov eax, dword [ebp - 0x60]
movaps xmm0, xmm1
subss xmm0, dword [0x100501b8]
addss xmm1, dword [0x100501b8]
movd xmm6, esi
cvtdq2ps xmm6, xmm6
movss dword [ebp - 0x30], xmm0
addss xmm3, xmm6
movss dword [ebp - 0x28], xmm1
subss xmm2, xmm6
movss dword [ebp - 0x2c], xmm3
movss dword [ebp - 0x24], xmm2
movups xmm0, xmmword [ebp - 0x30]
movups xmmword [edi + 0x5c60], xmm0
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
cmp eax, 2
jne 0x1000d211
mov eax, dword [ebp - 0x60]
movaps xmm0, xmm3
subss xmm0, dword [0x100501b8]
addss xmm3, dword [0x100501b8]
movd xmm6, esi
cvtdq2ps xmm6, xmm6
movss dword [ebp - 0x2c], xmm0
addss xmm4, xmm6
movss dword [ebp - 0x24], xmm3
subss xmm1, xmm6
movss dword [ebp - 0x30], xmm4
movss dword [ebp - 0x28], xmm1
movups xmm0, xmmword [ebp - 0x30]
movups xmmword [edi + 0x5c60], xmm0
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
cmp eax, 3
jne 0x1000d263
mov eax, dword [ebp - 0x60]
movaps xmm0, xmm2
subss xmm0, dword [0x100501b8]
addss xmm2, dword [0x100501b8]
movd xmm6, esi
cvtdq2ps xmm6, xmm6
movss dword [ebp - 0x2c], xmm0
addss xmm4, xmm6
movss dword [ebp - 0x24], xmm2
subss xmm1, xmm6
movss dword [ebp - 0x30], xmm4
movss dword [ebp - 0x28], xmm1
movups xmm0, xmmword [ebp - 0x30]
movups xmmword [edi + 0x5c60], xmm0
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
xorps xmm0, xmm0
movups xmmword [ebp - 0x30], xmm0
movups xmm0, xmmword [ebp - 0x30]
movups xmmword [edi + 0x5c60], xmm0
mov eax, dword [ebp - 0x60]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret