Function at 0x1003cde0
Capabilities:
Hash data with crc32

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, 0x68
push esi
mov esi, dword [0x100a93e8]
push edi
mov edi, esi
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x10], edi
mov eax, dword [edi + 0x3f8c]
mov byte [eax + 0xb0], 1
mov eax, dword [edi + 0x3f8c]
mov ecx, dword [edi + 0x4954]
mov dword [edi + 0x4954], 0
mov dword [ebp - 8], eax
cmp byte [eax + 0xb3], 0
mov dword [ebp - 0x40], ecx
jne 0x1003d60e
mov ecx, dword [eax + 0xec]
xor edx, edx
mov eax, dword [eax + 0xf4]
push dword [eax + ecx*4 - 4]
mov ecx, dword [ebp - 0x14]
call fcn.1000bb10
mov ecx, dword [ebp - 8]
add esp, 4
mov dword [ebp - 0x28], eax
mov ecx, dword [ecx]
cmp dword [ecx + 0x3fc4], eax
jne 0x1003ce88
push ecx
push dword [ebp - 0x14]
mov edx, 0xb
mov ecx, eax
call fcn.10024ce0
mov esi, dword [0x100a93e8]
add esp, 8
movss xmm0, dword [esi + 0x38e8]
movss xmm3, dword [esi + 0x3cf4]
addss xmm0, xmm0
mov eax, dword [ebp - 0x14]
mov ecx, eax
addss xmm0, xmm3
movss dword [ebp - 0x20], xmm0
cmp eax, 0xffffffff
jae 0x1003cec6
nop
mov dl, byte [ecx]
test dl, dl
je 0x1003cec6
cmp dl, 0x23
jne 0x1003cec0
cmp byte [ecx + 1], dl
je 0x1003cec6
inc ecx
cmp ecx, 0xffffffff
jb 0x1003ceb0
cmp eax, ecx
jne 0x1003cecf
xorps xmm6, xmm6
jmp 0x1003cf09
push ecx
push ecx
push eax
push ecx
mov ecx, dword [esi + 0x3cf0]
lea eax, [ebp - 0x3c]
mov dword [esp], 0xbf800000
movaps xmm2, xmm3
push eax
call fcn.100342b0
movss xmm0, dword [ebp - 0x3c]
addss xmm0, dword [0x100a2278]
movss xmm3, dword [ebp - 0x38]
cvttss2si eax, xmm0
movd xmm6, eax
cvtdq2ps xmm6, xmm6
test byte [esi + 0x48e8], 1
xorps xmm1, xmm1
mov eax, dword [esi + 0x3f8c]
movss dword [ebp - 0x34], xmm6
je 0x1003cf2a
movss xmm2, dword [esi + 0x48f8]
jmp 0x1003cf32
movss xmm2, dword [eax + 0x1ac]
comiss xmm1, xmm2
jbe 0x1003cf6c
cmp dword [eax + 0x198], 0
jne 0x1003cf4e
cmp dword [esi + 0x4ce0], 0
mov ecx, 0x234
je 0x1003cf53
mov ecx, 0x204
movss xmm0, dword [eax + ecx]
subss xmm0, dword [eax + 0xf8]
addss xmm2, xmm0
maxss xmm2, dword [0x100a2280]
comiss xmm6, xmm1
mov eax, dword [ebp - 8]
movss xmm4, dword [eax + 0xf8]
movss xmm5, dword [edi + 0x38e8]
movaps xmm0, xmm4
cvttss2si esi, xmm2
mov dword [ebp - 0x38], esi
movd xmm2, esi
cvtdq2ps xmm2, xmm2
addss xmm0, xmm2
movaps xmm2, xmm5
addss xmm2, xmm5
addss xmm2, xmm3
addss xmm2, dword [eax + 0xfc]
movss dword [ebp - 0x50], xmm4
movss xmm3, dword [eax + 0xfc]
movss dword [ebp - 0x4c], xmm3
movss dword [ebp - 0x48], xmm0
movss dword [ebp - 0x44], xmm2
jbe 0x1003cfd3
movaps xmm1, xmm6
addss xmm1, dword [edi + 0x38fc]
addss xmm0, xmm1
movss dword [ebp - 0x54], xmm2
subss xmm2, xmm3
movss dword [ebp - 0x60], xmm4
movaps xmm1, xmm5
movss dword [ebp - 0x5c], xmm3
lea ecx, [ebp - 0x1c]
movss dword [ebp - 0x58], xmm0
subss xmm0, xmm4
movss dword [ebp - 0x18], xmm2
movss dword [ebp - 0x1c], xmm0
call fcn.1001cec0
mov edi, dword [ebp - 0x28]
lea eax, [ebp - 0x50]
push 0
push eax
mov edx, edi
lea ecx, [ebp - 0x60]
call fcn.1001cbd0
add esp, 8
test al, al
je 0x1003d60e
push 0
lea eax, [ebp - 4]
mov edx, edi
push eax
lea eax, [ebp - 2]
push eax
lea ecx, [ebp - 0x50]
call fcn.10039f10
mov esi, edi
mov byte [ebp - 3], al
not esi
add esp, 0xc
mov edx, esi
mov edi, 0x1009dc99
mov al, 0x23
nop dword [eax]
cmp al, 0x23
jne 0x1003d05e
cmp byte [edi], al
jne 0x1003d05e
cmp byte [edi + 1], al
cmove edx, esi
movzx ecx, dl
movzx eax, al
xor ecx, eax
shr edx, 8
mov al, byte [edi]
inc edi
xor edx, dword [ecx*4 + 0x100995b0]
test al, al
jne 0x1003d050
mov eax, dword [0x100a93e8]
not edx
mov esi, dword [ebp - 0x38]
mov dword [ebp - 0x18], edx
mov ecx, dword [eax + 0x4a14]
cmp dword [eax + 0x4a08], ecx
jle 0x1003d0a4
mov eax, dword [eax + 0x4a10]
lea ecx, [ecx + ecx*4]
cmp dword [eax + ecx*8], edx
jne 0x1003d0a4
mov dl, 1
jmp 0x1003d0a6
xor dl, dl
cmp byte [ebp - 3], 0
mov edi, dword [ebp - 0x18]
mov byte [ebp - 1], dl
je 0x1003d0c3
test dl, dl
jne 0x1003d0c3
xor edx, edx
mov ecx, edi
call fcn.1001dde0
mov byte [ebp - 1], 1
cmp byte [ebp - 2], 0
mov eax, 0x154
mov ecx, dword [0x100a93e8]
mov edx, 0x164
movss xmm3, dword [0x100a2280]
cmovne eax, edx
xorps xmm0, xmm0
movups xmm1, xmmword [eax + ecx + 0x38a8]
comiss xmm0, xmm1
movaps xmm2, xmm1
movaps xmmword [ebp - 0x60], xmm1
shufps xmm2, xmm1, 0xff
mulss xmm2, dword [ecx + 0x38a8]
jbe 0x1003d10a
xorps xmm1, xmm1
jmp 0x1003d10e
minss xmm1, xmm3
movss xmm5, dword [0x100a239c]
movss xmm4, dword [0x100a2234]
mulss xmm1, xmm5
addss xmm1, xmm4
cvttss2si ecx, xmm1
movss xmm1, dword [ebp - 0x5c]
comiss xmm0, xmm1
jbe 0x1003d139
xorps xmm1, xmm1
jmp 0x1003d13d
minss xmm1, xmm3
mulss xmm1, xmm5
addss xmm1, xmm4
cvttss2si eax, xmm1
movss xmm1, dword [ebp - 0x58]
shl eax, 8
or ecx, eax
comiss xmm0, xmm1
jbe 0x1003d15d
xorps xmm1, xmm1
jmp 0x1003d161
minss xmm1, xmm3
mulss xmm1, xmm5
addss xmm1, xmm4
cvttss2si eax, xmm1
shl eax, 0x10
or ecx, eax
comiss xmm0, xmm2
mov dword [ebp - 0x38], ecx
jbe 0x1003d181
movss dword [ebp - 0x60], xmm0
jmp 0x1003d189
minss xmm2, xmm3
movups xmmword [ebp - 0x60], xmm2
movss xmm0, dword [ebp - 0x48]
lea ecx, [ebp - 0x50]
subss xmm0, dword [ebp - 0x20]
mov edx, dword [ebp - 0x28]
push 0
maxss xmm0, dword [ebp - 0x50]
movss dword [ebp - 0x18], xmm0
call fcn.1000e060
movss xmm0, dword [ebp - 0x18]
add esp, 4
mov eax, dword [ebp - 0x10]
movss dword [ebp - 0x2c], xmm0
movss xmm0, dword [ebp - 0x44]
push 0x50
push ecx
movss dword [ebp - 0x28], xmm0
movss xmm0, dword [eax + 0x38ec]
movss dword [esp], xmm0
movups xmm0, xmmword [ebp - 0x60]
mov ecx, dword [ebp - 8]
mulss xmm0, dword [0x100a239c]
mov ecx, dword [ecx + 0x270]
addss xmm0, dword [0x100a2234]
cvttss2si eax, xmm0
shl eax, 0x18
or eax, dword [ebp - 0x38]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.10030740
cmp byte [ebp - 1], 0
jne 0x1003d21a
cmp byte [ebp - 2], 0
mov eax, 0x234
je 0x1003d21f
mov eax, 0x244
mov ecx, dword [0x100a93e8]
xorps xmm1, xmm1
movss xmm3, dword [0x100a2280]
movups xmm2, xmmword [eax + ecx + 0x38a8]
movss xmm7, dword [ecx + 0x38a8]
comiss xmm1, xmm2
movaps xmm0, xmm2
movaps xmmword [ebp - 0x60], xmm2
movaps xmm6, xmm7
shufps xmm0, xmm2, 0xff
mulss xmm6, xmm0
jbe 0x1003d25c
xorps xmm2, xmm2
jmp 0x1003d260
minss xmm2, xmm3
movss xmm5, dword [0x100a239c]
movss xmm4, dword [0x100a2234]
movss xmm0, dword [ebp - 0x5c]
comiss xmm1, xmm0
mulss xmm2, xmm5
addss xmm2, xmm4
cvttss2si ecx, xmm2
jbe 0x1003d28b
xorps xmm0, xmm0
jmp 0x1003d28f
minss xmm0, xmm3
mulss xmm0, xmm5
addss xmm0, xmm4
cvttss2si eax, xmm0
movss xmm0, dword [ebp - 0x58]
shl eax, 8
or ecx, eax
comiss xmm1, xmm0
jbe 0x1003d2af
xorps xmm0, xmm0
jmp 0x1003d2b3
minss xmm0, xmm3
mulss xmm0, xmm5
addss xmm0, xmm4
cvttss2si eax, xmm0
shl eax, 0x10
or ecx, eax
comiss xmm1, xmm6
jbe 0x1003d2ce
xorps xmm6, xmm6
jmp 0x1003d2d2
minss xmm6, xmm3
mov eax, dword [0x100a93e8]
mulss xmm6, xmm5
movups xmm2, xmmword [eax + 0x398c]
addss xmm6, xmm4
movaps xmm0, xmm2
movaps xmmword [ebp - 0x60], xmm2
shufps xmm0, xmm2, 0xff
mulss xmm7, xmm0
cvttss2si edx, xmm6
shl edx, 0x18
or edx, ecx
comiss xmm1, xmm2
jbe 0x1003d308
xorps xmm2, xmm2
jmp 0x1003d30c
minss xmm2, xmm3
movss xmm0, dword [ebp - 0x5c]
comiss xmm1, xmm0
mulss xmm2, xmm5
addss xmm2, xmm4
cvttss2si ecx, xmm2
jbe 0x1003d327
xorps xmm0, xmm0
jmp 0x1003d32b
minss xmm0, xmm3
mulss xmm0, xmm5
addss xmm0, xmm4
cvttss2si eax, xmm0
movss xmm0, dword [ebp - 0x58]
shl eax, 8
or ecx, eax
comiss xmm1, xmm0
jbe 0x1003d34b
xorps xmm0, xmm0
jmp 0x1003d34f
minss xmm0, xmm3
mulss xmm0, xmm5
addss xmm0, xmm4
cvttss2si eax, xmm0
shl eax, 0x10
or ecx, eax
comiss xmm1, xmm7
jbe 0x1003d36a
xorps xmm7, xmm7
jmp 0x1003d36e
minss xmm7, xmm3
movss xmm0, dword [ebp - 0x18]
mulss xmm7, xmm5
movd xmm1, esi
mov esi, dword [ebp - 0x10]
addss xmm7, xmm4
movss dword [ebp - 0x2c], xmm0
movss xmm0, dword [ebp - 0x4c]
cvtdq2ps xmm1, xmm1
cvttss2si eax, xmm7
movss dword [ebp - 0x28], xmm0
movss xmm0, dword [ebp - 0x20]
shl eax, 0x18
or eax, ecx
mov dword [ebp - 0x38], eax
mov eax, 0xa0
comiss xmm0, xmm1
lea ecx, [eax + 0x50]
movss xmm0, dword [esi + 0x38ec]
cmovae eax, ecx
push eax
push ecx
movss dword [esp], xmm0
lea eax, [ebp - 0x48]
push edx
push eax
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x270]
call fcn.10030740
movss xmm2, dword [ebp - 0x18]
movss xmm0, dword [ebp - 0x48]
movaps xmm1, xmm2
addss xmm1, dword [ebp - 0x20]
subss xmm1, dword [esi + 0x38e4]
comiss xmm0, xmm1
jb 0x1003d4a2
mov eax, dword [ebp - 8]
movss xmm1, dword [esi + 0x38e8]
push dword [ebp - 0x38]
movaps xmm0, xmm1
mov ecx, dword [eax + 0x270]
addss xmm0, xmm2
addss xmm1, dword [ebp - 0x4c]
mov eax, dword [ecx + 0x2c]
movss xmm4, dword [eax + 0xc]
lea eax, [ebp - 0x2c]
movaps xmm5, xmm4
movaps xmm2, xmm4
mulss xmm5, dword [0x100a2234]
push eax
mulss xmm2, dword [0x100a220c]
lea eax, [ebp - 0x24]
push eax
movaps xmm3, xmm5
lea eax, [ebp - 0xc]
addss xmm3, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [0x100a2218]
addss xmm5, xmm1
push eax
movaps xmm1, xmm4
mulss xmm4, dword [0x100a23fc]
mulss xmm1, dword [0x100a2404]
addss xmm0, xmm3
addss xmm2, xmm5
movss dword [ebp - 0xc], xmm3
addss xmm4, xmm5
addss xmm1, xmm3
movss dword [ebp - 0x2c], xmm0
movss dword [ebp - 8], xmm2
movss dword [ebp - 0x28], xmm4
movss dword [ebp - 0x24], xmm1
movss dword [ebp - 0x20], xmm4
call fcn.10030b30
push dword [ebp - 0x44]
movss xmm0, dword [esi + 0x38ec]
push dword [ebp - 0x48]
push dword [ebp - 0x4c]
push dword [ebp - 0x50]
call fcn.1000ddb0
mov edx, dword [ebp - 0x30]
add esp, 0x10
test edx, edx
je 0x1003d5a2
cmp byte [esi + 0x5e24], 0
mov ecx, dword [0x100a93e8]
mov dword [ebp - 0x28], ecx
je 0x1003d4ef
mov dword [ecx + 0x5e3c], 0x1009dcac
mov dword [ecx + 0x5e40], 0x1009dca8
movss xmm0, dword [ebp - 0x18]
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [ebp - 0x44]
movss dword [ebp - 0x18], xmm0
movss xmm0, dword [ebp - 0x50]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
addss xmm0, dword [esi + 0x38e4]
movss dword [ebp - 0x3c], xmm0
movss xmm0, dword [ebp - 0x4c]
addss xmm0, dword [esi + 0x38e8]
mov esi, edx
movss dword [ebp - 0x38], xmm0
cmp edx, 0xffffffff
jae 0x1003d559
nop dword [eax]
mov cl, byte [esi]
test cl, cl
je 0x1003d556
cmp cl, 0x23
jne 0x1003d550
cmp byte [esi + 1], cl
je 0x1003d556
inc esi
cmp esi, 0xffffffff
jb 0x1003d540
mov ecx, dword [ebp - 0x28]
mov eax, esi
sub eax, edx
je 0x1003d59f
mov ecx, dword [ecx + 0x3f8c]
lea eax, [ebp - 0x24]
push 0
push eax
push 0
mov ecx, dword [ecx + 0x270]
lea eax, [ebp - 0x1c]
push esi
push edx
push eax
lea edx, [ebp - 0x3c]
call fcn.1000d700
mov eax, dword [ebp - 0x28]
add esp, 0x18
cmp byte [eax + 0x5e24], 0
je 0x1003d59f
mov edx, dword [ebp - 0x30]
lea ecx, [ebp - 0x3c]
push esi
call fcn.10023800
add esp, 4
mov esi, dword [ebp - 0x10]
movss xmm0, dword [ebp - 0x34]
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x1003d5e8
movss xmm0, dword [ebp - 0x48]
xor edx, edx
addss xmm0, dword [esi + 0x38fc]
mov ecx, dword [ebp - 0x14]
movss dword [ebp - 0x3c], xmm0
movss xmm0, dword [ebp - 0x4c]
addss xmm0, dword [esi + 0x38e8]
movss dword [ebp - 0x38], xmm0
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
push 1
call fcn.1000d370
add esp, 0xc
cmp byte [ebp - 1], 0
je 0x1003d60e
mov eax, dword [ebp - 0x40]
lea edx, [ebp - 0x50]
push ecx
mov ecx, edi
mov dword [esi + 0x4954], eax
call fcn.1003d620
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
pop edi
xor al, al
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret