Function at 0x10054a20
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x78
mov eax, dword [0x10200e40]
xor eax, esp
mov dword [esp + 0x74], eax
push esi
mov esi, dword [0x1020f198]
push edi
mov edi, ecx
mov dword [esp + 0x38], esi
mov dword [esp + 0x4c], edi
mov eax, dword [edi + 4]
and eax, 0xe000
mov byte [edi + 0x1f3], 1
mov dword [esp + 0x30], eax
xor eax, eax
mov word [edi + 0x1b6], ax
mov eax, dword [edi + 0x40]
add eax, 0x1f
sar eax, 5
shl eax, 2
push eax
push 0
push dword [edi + 0x2c]
call fcn.1010cde0
mov eax, dword [edi + 0x40]
add esp, 0xc
add eax, 0x1f
sar eax, 5
shl eax, 2
push eax
push 0
push dword [edi + 0x28]
call fcn.1010cde0
movss xmm0, dword [0x101f4f54]
or eax, 0xffffffff
mov ecx, dword [edi + 0x40]
or edx, eax
mov word [edi + 0x1d0], ax
add esp, 0xc
maxss xmm0, dword [esi + 0x38e4]
xor esi, esi
mov dword [esp + 0x18], 0
mov dword [esp + 0x2c], 0
xorps xmm7, xmm7
mov dword [esp + 0x28], edx
xorps xmm6, xmm6
mov byte [esp + 0x14], 0
xorps xmm4, xmm4
movss dword [edi + 0x8c], xmm0
mov byte [esp + 0x40], 0
movss dword [esp + 0x48], xmm7
mov dword [esp + 0x3c], esi
test ecx, ecx
jle 0x10054d4d
nop dword [eax + eax]
mov eax, dword [edi + 0x18]
movzx eax, word [eax + esi*2]
movsx edx, ax
mov ecx, eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x1c], edx
cmp edx, esi
je 0x10054b1f
mov byte [edi + 0x1f3], 0
movsx eax, word [edi + 0x1ba]
imul esi, edx, 0x70
add esi, dword [edi + 0x10]
mov dword [esp + 0x20], esi
cmp eax, edx
jg 0x10054b5e
push ecx
mov edx, esi
mov ecx, edi
call fcn.10054940
mov edx, dword [esp + 0x20]
add esp, 4
mov ecx, dword [esp + 0x34]
or eax, 0xffffffff
mov word [esi + 0x50], ax
mov dword [esi + 0x30], 0
mov dword [esi + 0x1c], 0xbf800000
test byte [edi + 4], 4
je 0x10054b69
test byte [esi], 0x80
je 0x10054b6d
mov byte [esi + 0x64], 1
mov al, byte [esi + 0x64]
cmp byte [esi + 0x63], al
je 0x10054b7f
mov byte [esi + 0x63], al
mov byte [edi + 0x1f2], 1
cmp byte [esi + 0x63], 0
je 0x10054b8e
test byte [esi], 1
jne 0x10054b8e
mov al, 1
jmp 0x10054b90
xor al, al
cmp word [esi + 0x5a], 0xffff
mov byte [esi + 0x62], al
je 0x10054ba5
test al, al
jne 0x10054ba5
mov byte [edi + 0x1ed], 1
cmp word [esi + 0x5a], 0
jle 0x10054bbc
test dword [edi + 4], 0x4000000
jne 0x10054bbc
mov byte [edi + 0x1ed], 1
test byte [esi], 0x10
je 0x10054bc7
comiss xmm7, dword [esi + 0x10]
jmp 0x10054bcb
comiss xmm7, dword [esi + 0x18]
seta al
test al, al
je 0x10054bd8
mov word [esi + 0x6b], 0x707
cmp byte [esi + 0x62], 0
jne 0x10054bec
mov eax, 0xffffffff
mov word [esi + 0x54], ax
jmp 0x10054d35
mov eax, dword [esp + 0x28]
or edi, 0xffffffff
mov word [esi + 0x58], di
cmp eax, edi
mov edi, dword [esp + 0x4c]
mov word [esi + 0x56], ax
je 0x10054c18
mov edx, dword [esp + 0x34]
imul ecx, eax, 0x70
mov eax, dword [edi + 0x10]
mov word [ecx + eax + 0x58], dx
mov edx, dword [esp + 0x1c]
jmp 0x10054c1f
mov word [edi + 0x1d0], cx
movzx ecx, word [edi + 0x1b6]
sar edx, 5
lea eax, [ecx + 1]
mov word [edi + 0x1b6], ax
mov word [esi + 0x54], cx
mov esi, dword [edi + 0x2c]
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
mov eax, dword [esi + edx*4]
bts eax, ecx
mov dword [esi + edx*4], eax
mov eax, dword [esp + 0x20]
mov edx, dword [edi + 0x28]
movsx esi, word [eax + 0x52]
mov ecx, esi
and esi, 0x1f
sar ecx, 5
mov eax, dword [edx + ecx*4]
bts eax, esi
mov dword [edx + ecx*4], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
cmp byte [eax + 0x69], 0
jne 0x10054ccc
movss xmm1, dword [eax + 0x40]
maxss xmm1, dword [eax + 0x44]
movss xmm2, dword [eax + 0x34]
mov ecx, dword [eax]
subss xmm1, xmm2
test ecx, 0x2000
jne 0x10054ca2
movss xmm0, dword [eax + 0x4c]
subss xmm0, xmm2
maxss xmm1, xmm0
test cl, 0x10
je 0x10054cbf
movss xmm0, dword [eax + 0x1c]
comiss xmm0, xmm7
jbe 0x10054cbf
test byte [edi + 4], 1
je 0x10054cbc
test cl, 0x20
je 0x10054cbf
movaps xmm1, xmm0
maxss xmm1, dword [edi + 0x8c]
movss dword [eax + 0x14], xmm1
mov edx, dword [eax]
mov esi, 1
mov eax, dword [esp + 0x40]
mov ecx, edx
shr ecx, 5
not cl
movzx eax, al
and cl, 1
cmovne eax, esi
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x20]
test dl, 0x10
je 0x10054d07
movss xmm0, dword [eax + 0x1c]
comiss xmm0, xmm7
jbe 0x10054d07
test cl, cl
jne 0x10054d07
movss dword [eax + 0x14], xmm0
mov ecx, dword [esp + 0x14]
cmp byte [eax + 0x6b], 0
movss xmm0, dword [eax + 0x14]
movzx ecx, cl
cmovne ecx, esi
mov dword [esp + 0x14], ecx
test dl, 8
je 0x10054d2d
inc dword [esp + 0x2c]
addss xmm6, xmm0
jmp 0x10054d35
inc dword [esp + 0x18]
maxss xmm4, xmm0
mov esi, dword [esp + 0x3c]
mov ecx, dword [edi + 0x40]
inc esi
mov dword [esp + 0x3c], esi
cmp esi, ecx
jl 0x10054b00
mov edx, dword [esp + 0x28]
mov eax, dword [edi + 4]
test al, 8
je 0x10054d6c
cmp word [edi + 0x1b4], 0
jne 0x10054d6c
test eax, 0x8000000
jne 0x10054d6c
mov byte [edi + 0x1ed], 1
cmp byte [esp + 0x14], 0
mov word [edi + 0x1d2], dx
je 0x10054d99
mov eax, dword [edi + 0x158]
cmp dword [edi + 0x154], eax
je 0x10054d92
mov byte [eax + 0xb3], 0
mov ecx, dword [edi + 0x40]
mov byte [edi + 0x1f2], 1
or eax, 0xffffffff
xor esi, esi
mov word [edi + 0x1d6], ax
movaps xmm2, xmm7
mov word [edi + 0x1d4], ax
movaps xmm5, xmm7
test ecx, ecx
jle 0x10054f3b
movss xmm3, dword [0x101f4fb4]
mov dword [esp + 0x14], esi
mov eax, dword [edi + 0x2c]
mov ecx, esi
and ecx, 0x1f
mov edx, 1
shl edx, cl
mov ecx, esi
sar ecx, 5
test dword [eax + ecx*4], edx
je 0x10054f2a
mov edx, dword [edi + 0x10]
add edx, dword [esp + 0x14]
mov eax, dword [edx]
mov ecx, eax
shr ecx, 5
not cl
and cl, 1
test al, 0x10
je 0x10054e6b
cmp dword [esp + 0x30], 0x4000
movss xmm1, dword [edx + 0x14]
jne 0x10054e16
cmp byte [edx + 0x6b], 0
jne 0x10054e13
test cl, cl
jne 0x10054e16
movaps xmm1, xmm4
mov al, byte [edx + 0x6b]
test al, al
je 0x10054e53
movss dword [edx + 0x10], xmm1
cmp al, 1
jbe 0x10054e61
cmp byte [edi + 0x1ec], 0
je 0x10054e61
cmp byte [edx + 0x69], 0
jne 0x10054e61
movss xmm0, dword [edi + 0x8c]
mulss xmm0, xmm3
maxss xmm1, xmm0
movss dword [edx + 0x10], xmm1
addss xmm2, xmm1
jmp 0x10054f16
test cl, cl
jne 0x10054e61
cmp byte [edx + 0x67], cl
je 0x10054e61
movss dword [edx + 0x10], xmm1
addss xmm2, dword [edx + 0x10]
jmp 0x10054f16
cmp byte [edx + 0x6b], 0
jne 0x10054e7f
movss xmm1, dword [edx + 0x18]
comiss xmm7, xmm1
ja 0x10054e7f
test cl, cl
jne 0x10054ec6
movss xmm1, dword [edx + 0x1c]
comiss xmm1, xmm7
jbe 0x10054e90
movss dword [edx + 0x18], xmm1
jmp 0x10054ec6
cmp dword [esp + 0x30], 0x6000
jne 0x10054eb7
movss xmm1, dword [edx + 0x14]
movd xmm0, dword [esp + 0x2c]
divss xmm1, xmm6
cvtdq2ps xmm0, xmm0
mulss xmm1, xmm0
movss dword [edx + 0x18], xmm1
jmp 0x10054ec6
movss xmm1, dword [0x101f4f54]
mov dword [edx + 0x18], 0x3f800000
movzx eax, word [edi + 0x1d4]
addss xmm5, xmm1
cmp ax, 0xffff
je 0x10054ee9
cwde
imul ecx, eax, 0x70
mov eax, dword [edi + 0x10]
mov ax, word [ecx + eax + 0x52]
cmp ax, word [edx + 0x52]
jle 0x10054ef0
mov word [edi + 0x1d4], si
movzx eax, word [edi + 0x1d6]
cmp ax, 0xffff
je 0x10054f0f
cwde
imul ecx, eax, 0x70
mov eax, dword [edi + 0x10]
mov ax, word [ecx + eax + 0x52]
cmp ax, word [edx + 0x52]
jge 0x10054f16
mov word [edi + 0x1d6], si
mov byte [edx + 0x69], 0
movss xmm0, dword [edi + 0x94]
addss xmm0, xmm0
addss xmm2, xmm0
add dword [esp + 0x14], 0x70
inc esi
mov ecx, dword [edi + 0x40]
cmp esi, ecx
jl 0x10054dc6
cmp byte [edi + 0x1fb], 0
movsx esi, word [edi + 0x1b6]
movups xmm0, xmmword [edi + 0xe4]
mov eax, dword [esp + 0x18]
movss xmm4, dword [edi + 0x9c]
addss xmm4, dword [edi + 0x98]
movss xmm1, dword [edi + 0x90]
mov word [edi + 0x1b8], ax
addss xmm1, xmm1
movups xmmword [esp + 0x50], xmm0
lea eax, [esi - 1]
movss dword [edi + 0xac], xmm5
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm4, xmm0
addss xmm4, xmm1
je 0x10054fb5
mov eax, dword [edi + 0x158]
cmp byte [eax + 0xad], 0
jne 0x10054fb5
mov eax, dword [esp + 0x38]
movss xmm1, dword [eax + 0x391c]
jmp 0x10054fb8
movaps xmm1, xmm7
mov edx, dword [edi + 4]
test edx, 0x1000000
je 0x10054fe6
movss xmm0, dword [edi + 0xa0]
ucomiss xmm0, xmm7
lahf
test ah, 0x44
jp 0x10054fe6
movss xmm0, dword [edi + 0xfc]
subss xmm0, dword [edi + 0xf4]
jmp 0x10054ff2
movss xmm0, dword [esp + 0x58]
subss xmm0, dword [esp + 0x50]
movss xmm6, dword [0x101f4f54]
subss xmm0, xmm1
movss xmm1, dword [edi + 0x94]
movaps xmm3, xmm6
addss xmm1, xmm1
maxss xmm3, xmm0
movd xmm0, esi
cvtdq2ps xmm0, xmm0
xor esi, esi
subss xmm3, xmm4
mulss xmm1, xmm0
subss xmm3, xmm2
addss xmm1, xmm4
movaps xmm2, xmm3
movss dword [edi + 0xa4], xmm1
test ecx, ecx
jle 0x1005510b
movss xmm1, dword [0x101f4ec0]
mov dword [esp + 0x18], esi
nop dword [eax]
mov eax, dword [edi + 0x2c]
mov ecx, esi
and ecx, 0x1f
mov edx, 1
shl edx, cl
mov ecx, esi
sar ecx, 5
test dword [eax + ecx*4], edx
je 0x100550f7
mov ecx, dword [edi + 0x10]
add ecx, dword [esp + 0x18]
mov edx, dword [ecx]
lea eax, [ecx + 0x10]
mov dword [esp + 0x30], eax
test dl, 8
je 0x100550b2
movss xmm0, dword [ecx + 0x18]
divss xmm0, xmm5
mulss xmm0, xmm3
maxss xmm0, dword [edi + 0x8c]
addss xmm0, xmm1
cvttss2si eax, xmm0
movd xmm0, eax
mov eax, dword [esp + 0x30]
cvtdq2ps xmm0, xmm0
movss dword [eax], xmm0
subss xmm2, xmm0
cmp word [ecx + 0x58], 0xffff
jne 0x100550cb
cmp word [edi + 0x1d4], 0xffff
je 0x100550cb
or edx, 0x40000000
mov dword [ecx], edx
movss xmm0, dword [eax]
maxss xmm0, dword [edi + 0x8c]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx + 4], xmm0
addss xmm0, dword [edi + 0xa4]
movss dword [edi + 0xa4], xmm0
add dword [esp + 0x18], 0x70
inc esi
mov ecx, dword [edi + 0x40]
cmp esi, ecx
jl 0x10055050
mov edx, dword [edi + 4]
comiss xmm2, xmm6
jb 0x10055177
test edx, 0x80000
jne 0x10055177
comiss xmm5, xmm7
lea esi, [ecx - 1]
jbe 0x10055177
comiss xmm2, xmm6
jb 0x10055177
test esi, esi
js 0x10055177
mov eax, dword [edi + 0x28]
mov ecx, esi
and ecx, 0x1f
mov edx, 1
shl edx, cl
mov ecx, esi
sar ecx, 5
test dword [eax + ecx*4], edx
je 0x10055174
mov eax, dword [edi + 0x18]
movsx eax, word [eax + esi*2]
imul eax, eax, 0x70
add eax, dword [edi + 0x10]
test byte [eax], 8
je 0x10055174
movss xmm0, dword [eax + 0x10]
subss xmm2, xmm6
addss xmm0, xmm6
movss dword [eax + 0x10], xmm0
movss xmm0, dword [eax + 4]
addss xmm0, xmm6
movss dword [eax + 4], xmm0
dec esi
jmp 0x10055120
movsx eax, word [edi + 0x4c]
test eax, eax
jne 0x100551a7
lea eax, [edi + 0x178]
mov dword [esp + 0x34], eax
lea edx, [edi + 0x180]
lea eax, [edi + 0x174]
mov dword [esp + 0x30], eax
lea esi, [edi + 0x17c]
lea ecx, [edi + 0x170]
jmp 0x100551df
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x18c]
lea edx, [ecx*8 - 0xc]
add edx, eax
lea esi, [ecx - 1]
mov dword [esp + 0x34], edx
lea edx, [ecx - 2]
lea edx, [eax + edx*8]
mov dword [esp + 0x30], edx
lea esi, [eax + esi*8]
lea edx, [ecx*8 - 4]
lea ecx, [ecx*8 - 0x14]
add edx, eax
add ecx, eax
mov eax, dword [edx]
mov dword [esi], eax
or eax, 0xffffffff
mov dword [edx], 0xffffffff
xor edx, edx
movss xmm1, dword [edi + 0xc8]
movss xmm0, dword [edi + 0xc4]
mov word [edi + 0x1c0], ax
mov word [edi + 0x1be], ax
mov eax, dword [esp + 0x38]
movss dword [esp + 0x60], xmm0
movss xmm0, dword [edi + 0xcc]
movss dword [esp + 0x64], xmm1
addss xmm1, dword [ecx]
mov esi, dword [eax + 0x3fdc]
lea ecx, [esp + 0x60]
movss dword [esp + 0x68], xmm0
movss xmm0, dword [edi + 0xd0]
push 0
maxss xmm0, xmm1
mov dword [eax + 0x3fdc], 0
movss dword [esp + 0x70], xmm0
call fcn.100375d0
mov byte [esp + 0x17], al
add esp, 4
mov eax, dword [esp + 0x38]
movss xmm3, dword [eax + 0xe00]
mov dword [eax + 0x3fdc], esi
movss xmm0, dword [edi + 0xbc]
comiss xmm0, dword [0x101f4e98]
movss dword [esp + 0x28], xmm3
jbe 0x100552ca
movss xmm1, dword [eax + 0xe04]
movss xmm2, dword [edi + 0xc8]
comiss xmm1, xmm2
jb 0x100552ca
addss xmm0, xmm2
comiss xmm0, xmm1
jb 0x100552ca
subss xmm0, xmm1
mulss xmm0, dword [edi + 0xc0]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, xmm3
movss dword [esp + 0x28], xmm0
xor al, al
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], eax
movzx eax, word [edi + 0x1e0]
test ax, ax
setg byte [esp + 0x12]
test ax, ax
jle 0x100552f6
movss xmm0, dword [edi + 0xc4]
jmp 0x100552fc
movss xmm0, dword [esp + 0x50]
addss xmm0, dword [edi + 0x90]
mov eax, dword [edi + 0x40]
add eax, 0x1f
sar eax, 5
shl eax, 2
subss xmm0, dword [edi + 0x98]
push eax
push 0
push dword [edi + 0x30]
movss dword [esp + 0x28], xmm0
movups xmm0, xmmword [edi + 0xf4]
movups xmmword [esp + 0x6c], xmm0
call fcn.1010cde0
xor edx, edx
add esp, 0xc
mov dword [esp + 0x2c], edx
cmp dword [edi + 0x40], edx
jle 0x10055803
movss xmm7, dword [esp + 0x6c]
movss xmm6, dword [esp + 0x68]
movss xmm4, dword [esp + 0x60]
nop dword [eax]
mov eax, dword [edi + 0x18]
movss xmm3, dword [esp + 0x1c]
movzx eax, word [eax + edx*2]
mov ecx, eax
cwde
imul esi, eax, 0x70
mov dword [esp + 0x20], eax
mov dword [esp + 0x3c], ecx
add esi, dword [edi + 0x10]
cmp word [edi + 0x1dc], 0
mov dword [esp + 0x44], esi
setg al
cmp byte [esp + 0x12], 0
mov byte [esi + 0x6a], al
je 0x100553c1
movsx eax, word [edi + 0x1e0]
cmp eax, dword [esp + 0x18]
jne 0x100553c1
movss xmm0, dword [esp + 0x50]
subss xmm0, dword [edi + 0xc4]
mov byte [esp + 0x12], 0
addss xmm3, xmm0
movss dword [esp + 0x1c], xmm3
and dword [esi], 0xf0ffffff
mov ecx, edx
mov eax, dword [edi + 0x28]
and ecx, 0x1f
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x2c]
sar ecx, 5
test dword [eax + ecx*4], edx
jne 0x10055498
movss xmm0, dword [esp + 0x54]
movss xmm5, dword [esp + 0x64]
comiss xmm5, xmm0
mov dword [esi + 4], 0
mov dword [esi + 0x2c], 0x7f7fffff
movss dword [esi + 0x28], xmm3
movss dword [esi + 0x20], xmm3
movss dword [esi + 0x34], xmm3
movss dword [esi + 0xc], xmm3
movss dword [esi + 8], xmm3
movss dword [esi + 0x24], xmm0
jbe 0x10055428
movaps xmm1, xmm5
jmp 0x1005542f
movaps xmm1, xmm7
minss xmm1, xmm0
comiss xmm4, xmm3
jbe 0x10055439
movaps xmm0, xmm4
jmp 0x10055440
movaps xmm0, xmm6
minss xmm0, xmm3
movss dword [esi + 0x20], xmm0
movss dword [esi + 0x24], xmm1
movss xmm0, dword [esi + 0x2c]
comiss xmm5, xmm0
jbe 0x10055459
movaps xmm1, xmm5
jmp 0x10055460
movaps xmm1, xmm7
minss xmm1, xmm0
movaps xmm2, xmm3
comiss xmm4, xmm2
jbe 0x1005546d
movaps xmm0, xmm4
jmp 0x10055474
movaps xmm0, xmm6
minss xmm0, xmm2
movss dword [esi + 0x28], xmm0
movss dword [esi + 0x2c], xmm1
mov word [esi + 0x66], 0
mov byte [esi + 0x65], 0
mov byte [esi + 0x68], 1
mov dword [esi + 0x3c], 0x3f800000
jmp 0x100557ea
cmp byte [esp + 0x13], 0
je 0x100554c0
movss xmm1, dword [esp + 0x28]
comiss xmm1, dword [esi + 0x20]
jb 0x100554c0
movss xmm0, dword [esi + 0x28]
comiss xmm0, xmm1
jbe 0x100554c0
mov eax, dword [esp + 0x3c]
mov word [edi + 0x1be], ax
mov ecx, dword [esp + 0x20]
movss xmm1, dword [0x101f5050]
movss dword [esi + 8], xmm3
movss xmm6, dword [edi + 0x94]
movss xmm7, dword [edi + 0x9c]
movaps xmm5, xmm6
mov eax, dword [edi + 4]
addss xmm5, xmm6
imul edx, ecx, 0x70
movaps xmm2, xmm5
addss xmm2, dword [edi + 0x8c]
add edx, dword [edi + 0x10]
addss xmm2, dword [edi + 0x98]
addss xmm2, xmm7
test eax, 0x1000000
je 0x10055553
movzx eax, word [edx + 0x52]
movzx ecx, word [edi + 0x1de]
cmp ax, cx
jge 0x10055594
movss xmm1, dword [edi + 0xfc]
movsx ecx, cx
cwde
sub ecx, eax
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm2
subss xmm1, xmm0
subss xmm1, dword [edx + 8]
subss xmm1, dword [edi + 0x90]
subss xmm1, xmm6
subss xmm1, xmm7
jmp 0x10055594
test eax, 0x40000
jne 0x10055598
movsx eax, word [edx + 0x54]
movsx ecx, word [edi + 0x1b6]
movss xmm1, dword [edi + 0xec]
sub ecx, eax
dec ecx
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm2
subss xmm1, xmm0
subss xmm1, dword [edx + 8]
subss xmm1, xmm7
subss xmm1, xmm5
subss xmm1, dword [edi + 0x90]
mov ecx, dword [esp + 0x20]
movss xmm2, dword [esi + 4]
movss xmm0, dword [esi + 0x10]
minss xmm2, xmm1
movss xmm5, dword [esp + 0x64]
movss xmm7, dword [esp + 0x6c]
movss dword [esi + 4], xmm2
minss xmm0, dword [edi + 0x8c]
maxss xmm2, xmm0
movaps xmm1, xmm2
movss dword [esi + 4], xmm2
movss xmm0, dword [edi + 0x94]
addss xmm1, xmm3
addss xmm0, xmm0
mulss xmm2, dword [0x101f4f18]
addss xmm1, dword [edi + 0x98]
cvttss2si eax, xmm2
addss xmm1, dword [edi + 0x9c]
addss xmm1, xmm0
movaps xmm0, xmm3
movss dword [esi + 0xc], xmm1
addss xmm0, dword [edi + 0x94]
addss xmm0, dword [edi + 0x98]
movss dword [esi + 0x34], xmm0
movaps xmm0, xmm1
subss xmm0, dword [edi + 0x94]
subss xmm0, dword [edi + 0x9c]
movss dword [esi + 0x20], xmm3
movss dword [esi + 0x28], xmm1
mov dword [esi + 0x2c], 0x7f7fffff
movss dword [esi + 0x38], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi + 0x3c], xmm0
movss xmm0, dword [esp + 0x54]
comiss xmm5, xmm0
movss dword [esi + 0x24], xmm0
jbe 0x10055662
movaps xmm1, xmm5
jmp 0x10055669
movaps xmm1, xmm7
minss xmm1, xmm0
comiss xmm4, xmm3
movss xmm6, dword [esp + 0x68]
jbe 0x10055679
movaps xmm0, xmm4
jmp 0x10055680
movaps xmm0, xmm6
minss xmm0, xmm3
movss dword [esi + 0x20], xmm0
movss dword [esi + 0x24], xmm1
movss xmm0, dword [esi + 0x2c]
comiss xmm5, xmm0
jbe 0x10055699
movaps xmm1, xmm5
jmp 0x100556a0
movaps xmm1, xmm7
minss xmm1, xmm0
movss xmm2, dword [esi + 0x28]
comiss xmm4, xmm2
jbe 0x100556af
movaps xmm0, xmm4
jmp 0x100556b6
movaps xmm0, xmm6
minss xmm0, xmm2
movss dword [esi + 0x28], xmm0
movss dword [esi + 0x2c], xmm1
comiss xmm0, dword [esi + 0x20]
mov byte [esi + 0x66], 1
seta dl
mov byte [esp + 0x27], dl
mov byte [esi + 0x65], dl
test dl, dl
je 0x1005570a
mov esi, dword [edi + 0x30]
mov edx, ecx
sar edx, 5
and ecx, 0x1f
mov eax, dword [esi + edx*4]
bts eax, ecx
mov dword [esi + edx*4], eax
mov esi, dword [esp + 0x44]
mov dl, byte [esp + 0x27]
mov cl, 1
cmp byte [esi + 0x62], 0
mov byte [esi + 0x67], cl
je 0x1005571a
cmp byte [edi + 0x1fd], 0
jne 0x1005571a
xor al, al
jmp 0x1005571c
cmp byte [esi + 0x6b], 0
jne 0x100556f2
cmp byte [esi + 0x6c], 0
jne 0x100556f2
xor cl, cl
jmp 0x100556f4
mov al, 1
mov byte [esi + 0x68], al
test cl, cl
je 0x10055738
mov ecx, dword [esp + 0x14]
test al, al
movzx ecx, cl
mov eax, 1
cmove ecx, eax
mov dword [esp + 0x14], ecx
mov ecx, dword [esi]
or ecx, 0x1000000
mov dword [esi], ecx
test dl, dl
je 0x1005574e
or ecx, 0x2000000
mov dword [esi], ecx
cmp word [esi + 0x5a], 0xffff
je 0x1005575d
or ecx, 0x4000000
mov dword [esi], ecx
movsx eax, word [edi + 0x1be]
cmp eax, dword [esp + 0x20]
jne 0x10055772
or ecx, 0x8000000
mov dword [esi], ecx
movss xmm0, dword [esi + 0x34]
shufps xmm0, xmm0, 0
movups xmmword [esi + 0x40], xmm0
cmp byte [edi + 0x1fd], 0
jne 0x1005578e
shr byte [esi + 0x6b], 1
shr byte [esi + 0x6c], 1
movsx eax, word [edi + 0x1e0]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jge 0x100557b6
movss xmm0, dword [esi + 0xc]
addss xmm0, dword [0x101f4f54]
comiss xmm4, xmm0
ja 0x100557b6
movaps xmm4, xmm6
minss xmm4, xmm0
movss xmm0, dword [esi + 4]
inc ecx
addss xmm0, dword [edi + 0x98]
movss xmm1, dword [edi + 0x94]
addss xmm1, xmm1
mov dword [esp + 0x18], ecx
addss xmm0, dword [edi + 0x9c]
addss xmm0, xmm1
addss xmm0, xmm3
movss dword [esp + 0x1c], xmm0
mov edx, dword [esp + 0x2c]
inc edx
mov dword [esp + 0x2c], edx
cmp edx, dword [edi + 0x40]
jl 0x10055360
cmp byte [esp + 0x14], 0
jne 0x10055827
movsx eax, word [edi + 0x1d0]
imul ecx, eax, 0x70
mov eax, dword [edi + 0x10]
mov byte [ecx + eax + 0x67], 1
movsx eax, word [edi + 0x1d0]
imul ecx, eax, 0x70
mov eax, dword [edi + 0x10]
mov byte [ecx + eax + 0x68], 0
movsx eax, word [edi + 0x1d2]
movss xmm1, dword [edi + 0xe4]
imul ecx, eax, 0x70
cmp byte [esp + 0x13], 0
mov eax, dword [edi + 0x10]
maxss xmm1, dword [ecx + eax + 0x28]
je 0x10055869
cmp word [edi + 0x1be], 0xffff
jne 0x10055869
movss xmm0, dword [esp + 0x28]
comiss xmm0, xmm1
jb 0x10055869
mov ax, word [edi + 0x40]
mov word [edi + 0x1be], ax
cmp byte [esp + 0x40], 0
jne 0x1005587d
mov eax, dword [edi + 4]
test al, 1
je 0x1005587d
and eax, 0xfffffffe
mov dword [edi + 4], eax
mov esi, dword [esp + 0x38]
cmp dword [esi + 0x3fe0], 0
setne al
cmp word [edi + 0x1d6], 0xffff
mov byte [edi + 0x1f8], al
je 0x100558a2
and dword [edi + 4], 0xfffeffff
test dword [edi + 4], 0x10000
je 0x100558cf
movss xmm0, dword [edi + 0xfc]
minss xmm0, xmm1
movss dword [edi + 0xec], xmm1
movss dword [edi + 0xcc], xmm1
movss dword [edi + 0xfc], xmm0
mov eax, dword [edi + 0x158]
movups xmm0, xmmword [edi + 0xe4]
movups xmmword [eax + 0x20c], xmm0
mov eax, dword [edi + 0xf4]
mov dword [edi + 0x80], eax
mov eax, dword [edi + 0xfc]
mov dword [edi + 0x84], eax
mov eax, dword [edi + 4]
test eax, 0x20000
je 0x1005590f
movss xmm0, dword [edi + 0xd0]
jmp 0x10055938
test eax, 0x2000000
jne 0x10055924
movss xmm0, dword [edi + 0xd0]
movss dword [esp + 0x48], xmm0
mov eax, dword [edi + 0x158]
movss xmm0, dword [eax + 0x238]
maxss xmm0, dword [esp + 0x48]
mov eax, dword [edi + 0x158]
subss xmm0, dword [esi + 0x3908]
movss xmm1, dword [eax + 0x200]
comiss xmm1, xmm0
ja 0x1005595f
movss xmm1, dword [eax + 0x208]
minss xmm1, xmm0
mov ecx, edi
movss dword [eax + 0x208], xmm1
call fcn.100574d0
test byte [edi + 4], 1
je 0x1005597b
mov ecx, edi
call fcn.10055bb0
mov eax, dword [esp + 0x30]
mov dword [eax], 0
or eax, 0xffffffff
cmp byte [edi + 0x1ef], 0
mov byte [edi + 0x1ea], 1
mov byte [edi + 0x1ee], 0
mov word [edi + 0x1c2], ax
je 0x100559bc
movzx ecx, word [edi + 0x1d8]
cmp cx, ax
je 0x100559bc
mov ax, word [edi + 0x4e]
cmp ax, word [edi + 0x4c]
je 0x100559ff
test dword [edi + 4], 0x10000000
je 0x10055a06
movzx ecx, word [edi + 0x1be]
cmp cx, 0xffff
je 0x10055a06
movsx eax, cx
cmp eax, dword [edi + 0x40]
je 0x10055a06
cmp word [edi + 0x1c0], 0xffff
jne 0x10055a06
cmp dword [esi + 0x3fdc], 0
je 0x100559ff
cmp byte [edi + 0x1f9], 0
jne 0x100559ff
cmp byte [esi + 0x4c30], 0
je 0x10055a06
mov word [edi + 0x1c2], cx
cmp byte [edi + 0x1f0], 0
jne 0x10055ae0
cmp byte [edi + 0x1ef], 0
je 0x10055ae0
mov ax, word [edi + 0x4c]
cmp ax, word [edi + 0x4e]
jne 0x10055ae0
mov eax, dword [edi]
mov esi, 0x101f4271
mov edi, eax
mov dword [esp + 0x44], eax
not edi
mov al, 0x23
mov edx, edi
cmp al, 0x23
jne 0x10055a4f
cmp byte [esi], al
jne 0x10055a4f
cmp byte [esi + 1], al
cmove edx, edi
movzx ecx, dl
movzx eax, al
xor ecx, eax
shr edx, 8
mov al, byte [esi]
inc esi
xor edx, dword [ecx*4 + 0x101ef4a0]
test al, al
jne 0x10055a41
not edx
mov ecx, edx
call fcn.10043ee0
mov edi, dword [esp + 0x4c]
test al, al
je 0x10055ad9
mov edx, dword [edi + 4]
mov ecx, edi
call fcn.10058b30
mov esi, dword [0x1020f198]
mov ecx, dword [esi + 0x3f8c]
cmp dword [esi + 0x4a38], ecx
jne 0x10055abb
cmp byte [esi + 0x4ad1], 0
je 0x10055abb
cmp dword [esi + 0x4a80], 0
jne 0x10055abb
mov eax, dword [esi + 0x4ad4]
and eax, 0xfffffff2
or eax, 2
mov dword [esi + 0x4ad4], eax
test dword [ecx + 0xc], 0x1000000
je 0x10055acb
mov byte [esi + 0x3f16], 1
call fcn.1003fa20
mov byte [esi + 0x3f16], 0
jmp 0x10055ae0
mov byte [edi + 0x1ef], 0
cmp byte [edi + 0x1ed], 0
je 0x10055af6
test byte [edi + 4], 8
je 0x10055af6
mov ecx, edi
call fcn.10058930
movzx eax, word [edi + 0x1de]
test ax, ax
jle 0x10055b2c
movsx ecx, ax
mov eax, dword [edi + 0x18]
movsx eax, word [eax + ecx*2 - 2]
imul ecx, eax, 0x70
mov eax, dword [edi + 0x10]
movss xmm0, dword [ecx + eax + 0xc]
subss xmm0, dword [edi + 0xc4]
mov eax, dword [edi + 0x158]
movss dword [eax + 0x68], xmm0
cmp word [edi + 0x1da], 0
mov edx, dword [esp + 0x34]
jle 0x10055b45
mov ecx, dword [edi + 0x158]
mov eax, dword [edx]
mov dword [ecx + 0x6c], eax
mov dword [edx], 0
test dword [edi + 4], 0x100000
mov ecx, dword [edi + 0x158]
mov edx, dword [ecx + 0x270]
je 0x10055b7f
mov ecx, dword [edi + 0x168]
push 2
push edx
call fcn.10050a20
pop edi
pop esi
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.10109e3a
mov esp, ebp
pop ebp
ret
lea eax, [ecx + 0x224]
push 0
push eax
lea eax, [ecx + 0x21c]
mov ecx, edx
push eax
call fcn.1004de10
mov ecx, dword [esp + 0x7c]
pop edi
pop esi
xor ecx, esp
call fcn.10109e3a
mov esp, ebp
pop ebp
ret