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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x210
mov eax, dword [0x1005b00c]
xor eax, esp
mov dword [esp + 0x20c], eax
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, edx
mov dword [esp + 0x88], esi
mov edx, ecx
mov dword [esp + 0x8c], edi
sub esp, 0xc
mov dword [esp + 0x8c], edx
mov ecx, esp
mov dword [esp + 0x68], 1
mov dword [esp + 0x64], 0
vmovq xmm0, qword [edx + 0x58]
mov eax, dword [edx + 0x60]
vmovq qword [esp + 0xa0], xmm0
vmovq xmm0, qword [edx + 0x40]
mov dword [esp + 0xa8], eax
mov eax, dword [edx + 0x48]
vmovq qword [ecx], xmm0
mov dword [ecx + 8], eax
lea eax, [esp + 0xac]
push eax
mov ecx, edi
mov dword [esp + 0x70], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x8c], 0
call fcn.1002af70
vmovss xmm1, dword [esp + 0xe8]
vmovss xmm2, dword [esp + 0xd8]
vmovss xmm3, dword [esp + 0xd4]
vmovq xmm0, qword [eax]
mov edi, dword [eax + 8]
add esp, 0x10
vmovss xmm5, dword [esp + 0xc0]
vmovss xmm7, dword [esp + 0xbc]
vmovss xmm6, dword [esp + 0xb8]
vmovss xmm4, dword [esp + 0xb0]
vmovss dword [esp + 0x78], xmm1
vmovss xmm1, dword [esp + 0xd4]
vmovss dword [esp + 0x70], xmm1
vmovss xmm1, dword [esp + 0xd0]
vmovss dword [esp + 0x64], xmm1
vmovss xmm1, dword [esp + 0xcc]
vmovq qword [esp + 0x4c], xmm0
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
vmovss dword [esp + 0x68], xmm1
vmovss xmm1, dword [esp + 0xb4]
mov dword [esp + 0x10], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x90], 0x46b
vxorps xmm0, xmm0, xmm0
mov dword [esp + 0x44], eax
vmovss dword [esp + 0x18], xmm2
vmovss dword [esp + 0x1c], xmm3
vmovss dword [esp + 0x20], xmm5
vmovss dword [esp + 0x30], xmm7
vmovss dword [esp + 0x2c], xmm6
vmovss dword [esp + 0x28], xmm1
vmovss dword [esp + 0x38], xmm4
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x40], ecx
cmp edx, edi
jge case.default.0x1002d9f7
mov al, byte [eax + edx]
xor edi, edi
movzx eax, al
inc edx
mov ecx, edx
mov dword [esp + 0x6c], 1
mov dword [esp + 0x3c], edx
mov dword [esp + 0x74], ecx
lea esi, [eax - 1]
mov dword [esp + 0x50], edx
mov dword [esp + 0x14], esi
cmp esi, 0x1e
mov esi, dword [esp + 0x88]
mov dword [esp + 0x24], eax
ja case.default.0x1002cebb
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + 0x1002dfcc]
jmp dword [eax*4 + 0x1002df7c]
cmp dword [esp + 0x5c], edi
je 0x1002cedd
mov eax, dword [esp + 0xc]
cdq
sub eax, edx
mov edx, dword [esp + 0x58]
sar eax, 1
add edx, eax
mov dword [esp + 0x58], edx
jmp 0x1002cee1
mov edx, dword [esp + 0x58]
lea eax, [edx + 7]
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x10]
cdq
and edx, 7
add edx, eax
sar edx, 3
add edx, ecx
cmp edx, edi
jg 0x1002cf03
test edx, edx
jns 0x1002d07f
mov edx, edi
jmp 0x1002d07f
mov eax, dword [esp + 0xc]
cdq
sub eax, edx
mov edx, dword [esp + 0x3c]
sar eax, 1
add dword [esp + 0x58], eax
jmp 0x1002d07b
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x5c], edi
cmp ecx, 2
jl case.default.0x1002d9f7
vmovss xmm1, dword [esi + 8]
vucomiss xmm1, dword [esi + 0x10]
lea edx, [esi + 0xc]
lahf
mov dword [esp + 0x24], edx
lea edi, [esi + 0x14]
test ah, 0x44
jp 0x1002cf59
vmovss xmm0, dword [edx]
vucomiss xmm0, dword [edi]
lahf
test ah, 0x44
jnp 0x1002cf7f
vcvttss2si eax, dword [edx]
push 0
push 0
push 0
push 0
push eax
vcvttss2si eax, xmm1
push eax
mov dl, 2
mov ecx, esi
call fcn.1002c9f0
mov edx, dword [esp + 0x3c]
add esp, 0x18
mov ecx, dword [esp + 0xc]
vmovss xmm0, dword [esp + ecx*4 + 0xa8]
vaddss xmm1, xmm0, dword [esi + 0x10]
vmovss xmm0, dword [edi]
vaddss xmm0, xmm0, dword [esp + ecx*4 + 0xac]
vmovss dword [esi + 0x10], xmm1
vmovss dword [esi + 8], xmm1
vmovss dword [edx], xmm0
jmp 0x1002d027
cmp dword [esp + 0xc], 1
mov dword [esp + 0x5c], edi
jl case.default.0x1002d9f7
vmovss xmm1, dword [esi + 8]
vucomiss xmm1, dword [esi + 0x10]
lea ecx, [esi + 0xc]
lahf
mov dword [esp + 0x24], ecx
lea edi, [esi + 0x14]
test ah, 0x44
jp 0x1002cfe1
vmovss xmm0, dword [ecx]
vucomiss xmm0, dword [edi]
lahf
test ah, 0x44
jnp 0x1002d003
vcvttss2si eax, dword [ecx]
push 0
push 0
push 0
push 0
push eax
vcvttss2si eax, xmm1
push eax
mov dl, 2
mov ecx, esi
call fcn.1002c9f0
mov ecx, dword [esp + 0x3c]
add esp, 0x18
mov eax, dword [esp + 0xc]
vmovss xmm1, dword [esi + 0x10]
vmovss xmm0, dword [edi]
vmovss dword [esi + 0x10], xmm1
vaddss xmm0, xmm0, dword [esp + eax*4 + 0xac]
vmovss dword [esi + 8], xmm1
vmovss dword [ecx], xmm0
vmovss dword [edi], xmm0
mov dl, 1
push 0
push 0
push 0
vcvttss2si eax, xmm0
push 0
push eax
vcvttss2si eax, xmm1
push eax
mov ecx, esi
call fcn.1002c9f0
add esp, 0x18
vxorps xmm0, xmm0, xmm0
mov edx, dword [esp + 0x3c]
vmovss xmm3, dword [esp + 0x1c]
vmovss xmm2, dword [esp + 0x18]
vmovss xmm1, dword [esp + 0x28]
vmovss xmm7, dword [esp + 0x30]
vmovss xmm6, dword [esp + 0x2c]
vmovss xmm4, dword [esp + 0x38]
vmovss xmm5, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
xor eax, eax
cmp dword [esp + 0x6c], eax
cmove eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x44]
jmp 0x1002ce66
cmp dword [esp + 0xc], 1
mov dword [esp + 0x5c], edi
jl case.default.0x1002d9f7
vmovss xmm1, dword [esi + 8]
vucomiss xmm1, dword [esi + 0x10]
lea ecx, [esi + 0xc]
lahf
mov dword [esp + 0x24], ecx
lea edi, [esi + 0x14]
test ah, 0x44
jp 0x1002d0d0
vmovss xmm0, dword [ecx]
vucomiss xmm0, dword [edi]
lahf
test ah, 0x44
jnp 0x1002d0f2
vcvttss2si eax, dword [ecx]
push 0
push 0
push 0
push 0
push eax
vcvttss2si eax, xmm1
push eax
mov dl, 2
mov ecx, esi
call fcn.1002c9f0
mov ecx, dword [esp + 0x3c]
add esp, 0x18
mov eax, dword [esp + 0xc]
vmovss xmm0, dword [esi + 0x10]
vaddss xmm1, xmm0, dword [esp + eax*4 + 0xac]
vmovss xmm0, dword [edi]
vmovss dword [esi + 0x10], xmm1
vmovss dword [esi + 8], xmm1
jmp 0x1002d023
cmp dword [esp + 0xc], 2
jl case.default.0x1002d9f7
mov dword [esp + 0x24], 1
lea edi, [esp + 0xb4]
vmovss xmm0, dword [edi - 4]
vaddss xmm1, xmm0, dword [esi + 0x10]
vmovss xmm0, dword [esi + 0x14]
vaddss xmm0, xmm0, dword [edi]
push 0
push 0
push 0
vcvttss2si eax, xmm0
push 0
push eax
vcvttss2si eax, xmm1
push eax
mov dl, 2
mov ecx, esi
vmovss dword [esi + 0x10], xmm1
vmovss dword [esi + 0x14], xmm0
call fcn.1002c9f0
mov eax, dword [esp + 0x3c]
lea edi, [edi + 8]
add eax, 2
add esp, 0x18
mov dword [esp + 0x24], eax
cmp eax, dword [esp + 0xc]
jl 0x1002d131
jmp 0x1002d049
mov eax, dword [esp + 0xc]
cmp eax, 1
jl case.default.0x1002d9f7
lea ecx, [esi + 0x10]
jmp 0x1002d1eb
cmp dword [esp + 0xc], 1
jl case.default.0x1002d9f7
lea eax, [esi + 0x10]
mov dword [esp + 0x48], eax
vmovss xmm0, dword [esp + edi*4 + 0xb0]
vaddss xmm1, xmm0, dword [eax]
vmovss xmm0, dword [esi + 0x14]
push 0
push 0
push 0
vmovss dword [eax], xmm1
vcvttss2si eax, xmm0
push 0
push eax
vcvttss2si eax, xmm1
push eax
mov dl, 2
mov ecx, esi
vmovss dword [esi + 0x14], xmm0
call fcn.1002c9f0
mov eax, dword [esp + 0x24]
add esp, 0x18
mov ecx, dword [esp + 0x48]
inc edi
mov dword [esp + 0x48], ecx
cmp edi, eax
jge 0x1002d049
vmovss xmm0, dword [esp + edi*4 + 0xb0]
vaddss xmm0, xmm0, dword [esi + 0x14]
vmovss xmm1, dword [ecx]
push 0
push 0
push 0
vcvttss2si eax, xmm0
push 0
push eax
vcvttss2si eax, xmm1
vmovss dword [ecx], xmm1
push eax
mov dl, 2
mov ecx, esi
vmovss dword [esi + 0x14], xmm0
call fcn.1002c9f0
inc edi
add esp, 0x18
cmp edi, dword [esp + 0xc]
jge 0x1002d049
mov eax, dword [esp + 0x48]
jmp 0x1002d1a9
cmp dword [esp + 0xc], 4
jl case.default.0x1002d9f7
lea edx, [esi + 0x10]
lea eax, [esi + 0x14]
jmp 0x1002d32b
mov eax, dword [esp + 0xc]
cmp eax, 4
jl case.default.0x1002d9f7
lea edx, [esi + 0x14]
lea ecx, [esi + 0x10]
mov dword [esp + 0x48], edx
mov dword [esp + 0x84], edx
mov dword [esp + 0x40], edx
mov edx, edi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x14], ecx
sub eax, edi
lea ecx, [edx*4]
cmp eax, 5
jne 0x1002d2a3
vmovss xmm6, dword [esp + ecx + 0xc0]
jmp 0x1002d2a7
vmovaps xmm6, xmm0
mov eax, dword [esp + 0x14]
mov dl, 4
vmovss xmm0, dword [esp + ecx + 0xb0]
vmovss xmm5, dword [eax]
mov eax, dword [esp + 0x40]
vaddss xmm2, xmm5, dword [esp + ecx + 0xb4]
vaddss xmm3, xmm2, dword [esp + ecx + 0xbc]
vaddss xmm4, xmm0, dword [eax]
mov eax, dword [esp + 0x74]
vaddss xmm1, xmm4, dword [esp + ecx + 0xb8]
vaddss xmm0, xmm1, xmm6
mov ecx, esi
vmovss dword [eax], xmm3
mov eax, dword [esp + 0x84]
vmovss dword [eax], xmm0
vcvttss2si eax, xmm1
push eax
vcvttss2si eax, xmm2
push eax
vcvttss2si eax, xmm4
push eax
vcvttss2si eax, xmm5
push eax
vcvttss2si eax, xmm0
push eax
vcvttss2si eax, xmm3
push eax
call fcn.1002c9f0
mov edx, dword [esp + 0x3c]
add esp, 0x18
mov eax, dword [esp + 0x48]
add edi, 4
vxorps xmm0, xmm0, xmm0
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], eax
lea eax, [edi + 3]
mov dword [esp + 0x14], edx
mov dword [esp + 0x24], edx
cmp eax, ecx
jge 0x1002dec5
mov eax, ecx
sub eax, edi
cmp eax, 5
jne 0x1002d35e
vmovss xmm1, dword [esp + edi*4 + 0xc0]
jmp 0x1002d362
vmovaps xmm1, xmm0
vmovss xmm0, dword [esp + edi*4 + 0xb0]
vaddss xmm5, xmm0, dword [edx]
mov edx, dword [esp + 0x48]
mov ecx, esi
vaddss xmm2, xmm5, dword [esp + edi*4 + 0xb4]
mov eax, dword [esp + 0x14]
vaddss xmm3, xmm2, xmm1
vmovss xmm4, dword [edx]
vaddss xmm0, xmm4, dword [esp + edi*4 + 0xb8]
vaddss xmm1, xmm0, dword [esp + edi*4 + 0xbc]
vmovss dword [eax], xmm3
mov eax, dword [esp + 0x40]
mov dl, 4
vmovss dword [eax], xmm1
vcvttss2si eax, xmm0
push eax
vcvttss2si eax, xmm2
push eax
vcvttss2si eax, xmm4
push eax
vcvttss2si eax, xmm5
push eax
vcvttss2si eax, xmm1
push eax
vcvttss2si eax, xmm3
push eax
call fcn.1002c9f0
mov eax, dword [esp + 0x60]
add edi, 4
mov ecx, dword [esp + 0x3c]
add esp, 0x18
mov dword [esp + 0x84], eax
mov edx, edi
mov dword [esp + 0x40], eax
mov dword [esp + 0x74], ecx
lea eax, [edi + 3]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
vxorps xmm0, xmm0, xmm0
cmp eax, ecx
jge 0x1002dec5
mov eax, ecx
jmp 0x1002d28a
cmp dword [esp + 0xc], 6
jl case.default.0x1002d9f7
mov dword [esp + 0x14], 5
lea edi, [esp + 0xb4]
nop dword [eax]
nop dword [eax + eax]
vmovss xmm0, dword [edi - 4]
vaddss xmm5, xmm0, dword [esi + 0x10]
vmovss xmm0, dword [edi]
vaddss xmm4, xmm0, dword [esi + 0x14]
vaddss xmm1, xmm4, dword [edi + 8]
vaddss xmm2, xmm5, dword [edi + 4]
vaddss xmm0, xmm1, dword [edi + 0x10]
vaddss xmm3, xmm2, dword [edi + 0xc]
vcvttss2si eax, xmm1
push eax
vcvttss2si eax, xmm2
push eax
vcvttss2si eax, xmm4
push eax
vcvttss2si eax, xmm5
push eax
vcvttss2si eax, xmm0
push eax
vcvttss2si eax, xmm3
push eax
mov dl, 4
mov ecx, esi
vmovss dword [esi + 0x10], xmm3
vmovss dword [esi + 0x14], xmm0
call fcn.1002c9f0
mov eax, dword [esp + 0x2c]
lea edi, [edi + 0x18]
add eax, 6
add esp, 0x18
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0xc]
jl 0x1002d430
jmp 0x1002d049
mov eax, dword [esp + 0xc]
cmp eax, 8
jl case.default.0x1002d9f7
add eax, 0xfffffffe
mov dword [esp + 0x40], eax
cmp eax, 5
jle 0x1002d55c
mov dword [esp + 0x14], 5
nop dword [eax]
vmovss xmm0, dword [esp + edi*4 + 0xb0]
vaddss xmm5, xmm0, dword [esi + 0x10]
vmovss xmm0, dword [esp + edi*4 + 0xb4]
vaddss xmm4, xmm0, dword [esi + 0x14]
vaddss xmm1, xmm4, dword [esp + edi*4 + 0xbc]
vaddss xmm2, xmm5, dword [esp + edi*4 + 0xb8]
vaddss xmm0, xmm1, dword [esp + edi*4 + 0xc4]
vaddss xmm3, xmm2, dword [esp + edi*4 + 0xc0]
vcvttss2si eax, xmm1
push eax
vcvttss2si eax, xmm2
push eax
vcvttss2si eax, xmm4
push eax
vcvttss2si eax, xmm5
push eax
vcvttss2si eax, xmm0
push eax
vcvttss2si eax, xmm3
push eax
mov dl, 4
mov ecx, esi
vmovss dword [esi + 0x10], xmm3
vmovss dword [esi + 0x14], xmm0
call fcn.1002c9f0
mov eax, dword [esp + 0x2c]
add esp, 0x18
add eax, 6
add edi, 6
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x40]
jl 0x1002d4d0
lea eax, [edi + 1]
cmp eax, dword [esp + 0xc]
jge case.default.0x1002d9f7
vmovss xmm0, dword [esp + edi*4 + 0xb0]
vaddss xmm1, xmm0, dword [esi + 0x10]
vmovss xmm0, dword [esp + edi*4 + 0xb4]
vaddss xmm0, xmm0, dword [esi + 0x14]
vmovss dword [esi + 0x10], xmm1
vmovss dword [esi + 0x14], xmm0
mov dl, 2
jmp 0x1002d02d
mov eax, dword [esp + 0xc]
cmp eax, 8
jl case.default.0x1002d9f7
add eax, 0xfffffffa
mov dword [esp + 0x40], eax
cmp eax, 1
jle 0x1002d618
mov dword [esp + 0x14], 1
nop word [eax + eax]
vmovss xmm0, dword [esp + edi*4 + 0xb0]
vaddss xmm1, xmm0, dword [esi + 0x10]
vmovss xmm0, dword [esp + edi*4 + 0xb4]
vaddss xmm0, xmm0, dword [esi + 0x14]
push 0
push 0
push 0
vcvttss2si eax, xmm0
push 0
push eax
vcvttss2si eax, xmm1
push eax
mov dl, 2
mov ecx, esi
vmovss dword [esi + 0x10], xmm1
vmovss dword [esi + 0x14], xmm0
call fcn.1002c9f0
mov eax, dword [esp + 0x2c]
add esp, 0x18
add eax, 2
add edi, 2
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x40]
jl 0x1002d5c0
lea eax, [edi + 5]
cmp eax, dword [esp + 0xc]
jge case.default.0x1002d9f7
vmovss xmm0, dword [esp + edi*4 + 0xb0]
vaddss xmm5, xmm0, dword [esi + 0x10]
vmovss xmm0, dword [esp + edi*4 + 0xb4]
vaddss xmm4, xmm0, dword [esi + 0x14]
vaddss xmm1, xmm4, dword [esp + edi*4 + 0xbc]
vaddss xmm2, xmm5, dword [esp + edi*4 + 0xb8]
vaddss xmm0, xmm1, dword [esp + edi*4 + 0xc4]
vaddss xmm3, xmm2, dword [esp + edi*4 + 0xc0]
vcvttss2si eax, xmm1
push eax
vcvttss2si eax, xmm2
push eax
vcvttss2si eax, xmm4
push eax
vcvttss2si eax, xmm5
push eax
vcvttss2si eax, xmm0
push eax
vmovss dword [esi + 0x10], xmm3
vmovss dword [esi + 0x14], xmm0
vcvttss2si eax, xmm3
mov dl, 4
jmp 0x1002d03e
mov eax, dword [esp + 0xc]
cmp eax, 4
jl case.default.0x1002d9f7
mov edi, eax
vmovaps xmm5, xmm0
and edi, 1
je 0x1002d6af
vmovaps xmm5, xmm4
lea ecx, [edi + 3]
mov dword [esp + 0x14], ecx
cmp ecx, eax
jge 0x1002d075
lea edi, [esp + edi*4 + 0xb8]
nop word [eax + eax]
cmp dword [esp + 0x24], 0x1b
vmovss xmm2, dword [esi + 0x10]
vmovss xmm0, dword [esi + 0x14]
vmovss xmm1, dword [edi]
vmovss xmm3, dword [edi - 8]
vmovss xmm4, dword [edi - 4]
vmovss xmm6, dword [edi + 4]
jne 0x1002d70e
vaddss xmm2, xmm3, xmm2
vaddss xmm3, xmm0, xmm5
vaddss xmm4, xmm4, xmm2
vaddss xmm1, xmm3, xmm1
vaddss xmm0, xmm4, xmm6
vmovaps xmm5, xmm1
jmp 0x1002d726
vaddss xmm2, xmm2, xmm5
vaddss xmm3, xmm3, xmm0
vaddss xmm0, xmm4, xmm2
vaddss xmm5, xmm3, xmm1
vaddss xmm1, xmm5, xmm6
vmovaps xmm4, xmm0
vcvttss2si eax, xmm5
push eax
vcvttss2si eax, xmm4
push eax
vcvttss2si eax, xmm3
push eax
vcvttss2si eax, xmm2
push eax
vcvttss2si eax, xmm1
push eax
vcvttss2si eax, xmm0
vmovss dword [esi + 0x10], xmm0
push eax
mov dl, 4
mov ecx, esi
vmovss dword [esi + 0x14], xmm1
call fcn.1002c9f0
mov ecx, dword [esp + 0x2c]
add esp, 0x18
add ecx, 4
add edi, 0x10
vxorps xmm0, xmm0, xmm0
vxorps xmm5, xmm5, xmm5
mov dword [esp + 0x14], ecx
cmp ecx, dword [esp + 0xc]
jl 0x1002d6d0
jmp 0x1002d04d
cmp dword [esp + 0x7c], edi
jne case.0x1002cebb.29
mov eax, dword [esp + 0x80]
cmp dword [eax + 0x78], edi
je 0x1002d7c1
mov edx, dword [esp + 0x8c]
lea ecx, [esp + 0x170]
push ecx
mov ecx, eax
call fcn.1002cb20
add esp, 4
vmovq xmm0, qword [eax]
mov eax, dword [eax + 8]
vmovq qword [esp + 0x94], xmm0
mov dword [esp + 0x9c], eax
mov dword [esp + 0x7c], 1
mov eax, dword [esp + 0xc]
cmp eax, 1
jl case.default.0x1002d9f7
mov edx, dword [esp + 0x60]
dec eax
mov dword [esp + 0xc], eax
cmp edx, 0xa
jge case.default.0x1002d9f7
vmovq xmm0, qword [esp + 0x4c]
mov ecx, dword [esp + 0x10]
lea eax, [edx + edx*2]
vmovq qword [esp + eax*4 + 0x190], xmm0
mov dword [esp + eax*4 + 0x198], ecx
inc edx
cmp dword [esp + 0x24], 0xa
mov eax, dword [esp + 0xc]
mov dword [esp + 0x60], edx
vcvttss2si edi, dword [esp + eax*4 + 0xb0]
jne 0x1002d827
lea edx, [esp + 0x94]
jmp 0x1002d831
mov edx, dword [esp + 0x80]
add edx, 0x4c
vmovq xmm0, qword [edx]
mov edx, dword [edx + 8]
xor ecx, ecx
test edx, edx
mov dword [esp + 0x14], edx
mov eax, edx
cmovns eax, ecx
vmovq qword [esp + 0x208], xmm0
mov dword [esp + 0x20c], eax
cmp eax, edx
jl 0x1002d85d
xor cl, cl
jmp 0x1002d86f
mov ecx, dword [esp + 0x208]
mov cl, byte [ecx + eax]
inc eax
mov dword [esp + 0x20c], eax
movzx ecx, cl
cmp eax, edx
jl 0x1002d87a
xor al, al
jmp 0x1002d898
mov edx, dword [esp + 0x208]
mov dl, byte [edx + eax]
inc eax
mov byte [esp + 0x37], dl
mov edx, dword [esp + 0x14]
mov dword [esp + 0x20c], eax
mov al, byte [esp + 0x37]
shl ecx, 8
movzx eax, al
or ecx, eax
mov eax, 0x6b
cmp ecx, 0x846c
jb 0x1002d8b4
mov eax, 0x8000
jmp 0x1002d8c2
cmp ecx, 0x4d8
cmovae eax, dword [esp + 0x90]
add edi, eax
js 0x1002d903
cmp edi, ecx
jge 0x1002d903
vmovq xmm0, qword [esp + 0x208]
sub esp, 0xc
mov ecx, edi
mov eax, esp
vmovq qword [eax], xmm0
mov dword [eax + 8], edx
lea eax, [esp + 0x18c]
push eax
call fcn.1002af70
add esp, 0x10
vmovq xmm0, qword [eax]
mov edi, dword [eax + 8]
vmovq qword [esp + 0xa0], xmm0
jmp 0x1002d924
mov dword [esp + 0xa0], 0
xor edi, edi
mov dword [esp + 0xa4], 0
vmovq xmm0, qword [esp + 0xa0]
mov dword [esp + 0x10], edi
mov dword [esp + 0x54], edi
vmovq qword [esp + 0x4c], xmm0
test edi, edi
je case.default.0x1002d9f7
mov eax, dword [esp + 0x4c]
xor edx, edx
vmovss xmm4, dword [esp + 0x38]
vmovss xmm6, dword [esp + 0x2c]
vmovss xmm7, dword [esp + 0x30]
vmovss xmm1, dword [esp + 0x28]
vmovss xmm2, dword [esp + 0x18]
vmovss xmm3, dword [esp + 0x1c]
vmovss xmm5, dword [esp + 0x20]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x44], eax
vxorps xmm0, xmm0, xmm0
jmp 0x1002d07f
mov eax, dword [esp + 0x60]
test eax, eax
jle case.default.0x1002d9f7
dec eax
mov dword [esp + 0x6c], 0
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x40]
lea eax, [eax + eax*2]
vmovq xmm0, qword [esp + eax*4 + 0x184]
mov edi, dword [esp + eax*4 + 0x18c]
vmovq qword [esp + 0x4c], xmm0
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x10], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x44], eax
vxorps xmm0, xmm0, xmm0
jmp 0x1002d07f
mov edi, dword [esp + 0x10]
cmp ecx, edi
jl 0x1002d9da
xor dl, dl
jmp 0x1002d9e8
mov eax, dword [esp + 0x44]
mov dl, byte [eax + ecx]
lea eax, [ecx + 1]
mov dword [esp + 0x3c], eax
movzx eax, dl
add eax, 0xffffffde
cmp eax, 3
ja case.default.0x1002d9f7
jmp dword [eax*4 + 0x1002dfec]
cmp dword [esp + 0xc], 7
jl case.default.0x1002d9f7
vmovss xmm3, dword [esi + 0x14]
vaddss xmm4, xmm4, dword [esi + 0x10]
vaddss xmm0, xmm6, xmm3
vcvttss2si ecx, xmm0
push ecx
vaddss xmm1, xmm1, xmm4
vcvttss2si eax, xmm1
push eax
vcvttss2si eax, xmm3
push eax
vcvttss2si eax, xmm4
push eax
vaddss xmm2, xmm7, xmm1
push ecx
vcvttss2si eax, xmm2
push eax
mov dl, 4
mov ecx, esi
vmovss dword [esi + 0x10], xmm2
vmovss dword [esi + 0x14], xmm0
call fcn.1002c9f0
vmovss xmm1, dword [esp + 0x38]
vaddss xmm2, xmm1, dword [esi + 0x10]
vmovss xmm3, dword [esi + 0x14]
vaddss xmm4, xmm2, dword [esp + 0x34]
vsubss xmm0, xmm3, dword [esp + 0x44]
vaddss xmm1, xmm4, dword [esp + 0x30]
vmovaps xmm5, xmm0
jmp 0x1002dca9
cmp dword [esp + 0xc], 0xd
jl case.default.0x1002d9f7
vaddss xmm5, xmm4, dword [esi + 0x10]
vaddss xmm4, xmm1, dword [esi + 0x14]
vaddss xmm0, xmm7, xmm4
vaddss xmm1, xmm0, dword [esp + 0x1c]
vcvttss2si eax, xmm0
push eax
vaddss xmm2, xmm6, xmm5
vaddss xmm3, xmm2, dword [esp + 0x24]
vcvttss2si eax, xmm2
push eax
vcvttss2si eax, xmm4
push eax
vcvttss2si eax, xmm5
push eax
vcvttss2si eax, xmm1
push eax
vcvttss2si eax, xmm3
push eax
mov dl, 4
mov ecx, esi
vmovss dword [esi + 0x10], xmm3
vmovss dword [esi + 0x14], xmm1
call fcn.1002c9f0
vmovss xmm1, dword [esp + 0x30]
vmovss xmm0, dword [esp + 0x80]
vaddss xmm2, xmm1, dword [esi + 0x10]
vaddss xmm3, xmm0, dword [esi + 0x14]
vaddss xmm4, xmm2, dword [esp + 0x7c]
vaddss xmm5, xmm3, dword [esp + 0x88]
vaddss xmm1, xmm4, dword [esp + 0x90]
vaddss xmm0, xmm5, dword [esp + 0xf4]
jmp 0x1002dca9
cmp dword [esp + 0xc], 9
jl case.default.0x1002d9f7
vaddss xmm3, xmm1, dword [esi + 0x14]
vaddss xmm4, xmm4, dword [esi + 0x10]
vaddss xmm0, xmm7, xmm3
vcvttss2si ecx, xmm0
push ecx
vaddss xmm1, xmm6, xmm4
vcvttss2si eax, xmm1
push eax
vcvttss2si eax, xmm3
push eax
vcvttss2si eax, xmm4
push eax
vaddss xmm2, xmm5, xmm1
push ecx
vcvttss2si eax, xmm2
push eax
mov dl, 4
mov ecx, esi
vmovss dword [esi + 0x10], xmm2
vmovss dword [esi + 0x14], xmm0
call fcn.1002c9f0
vmovss xmm1, dword [esp + 0x34]
vmovss xmm0, dword [esp + 0x48]
vaddss xmm2, xmm1, dword [esi + 0x10]
vaddss xmm0, xmm0, dword [esp + 0x40]
vmovss xmm3, dword [esi + 0x14]
vaddss xmm4, xmm2, dword [esp + 0x30]
vaddss xmm5, xmm3, dword [esp + 0x80]
vaddss xmm0, xmm0, dword [esp + 0x80]
vaddss xmm1, xmm4, dword [esp + 0x7c]
vsubss xmm0, xmm5, xmm0
jmp 0x1002dca9
cmp dword [esp + 0xc], 0xb
jl case.default.0x1002d9f7
vmovss xmm0, dword [esp + 0x78]
vmovss dword [esp + 0x40], xmm0
vmovss dword [esp + 0x14], xmm0
vaddss xmm0, xmm4, xmm6
vaddss xmm0, xmm0, xmm5
vaddss xmm0, xmm0, xmm2
vaddss xmm2, xmm0, dword [esp + 0x64]
vaddss xmm0, xmm7, xmm1
vaddss xmm0, xmm0, xmm3
vaddss xmm0, xmm0, dword [esp + 0x68]
vaddss xmm3, xmm0, dword [esp + 0x70]
vmovaps xmm1, xmm2
vandps xmm1, xmm1, xmmword [0x10055240]
vmovaps xmm0, xmm3
vandps xmm0, xmm0, xmmword [0x10055240]
vcomiss xmm1, xmm0
jbe 0x1002dc12
vxorps xmm0, xmm3, xmmword [0x10055260]
vmovss dword [esp + 0x40], xmm0
jmp 0x1002dc20
vxorps xmm0, xmm2, xmmword [0x10055260]
vmovss dword [esp + 0x14], xmm0
vaddss xmm5, xmm4, dword [esi + 0x10]
vmovss xmm0, dword [esp + 0x28]
vaddss xmm4, xmm0, dword [esi + 0x14]
vaddss xmm0, xmm7, xmm4
vaddss xmm1, xmm0, dword [esp + 0x1c]
vcvttss2si eax, xmm0
push eax
vaddss xmm2, xmm6, xmm5
vaddss xmm3, xmm2, dword [esp + 0x24]
vcvttss2si eax, xmm2
push eax
vcvttss2si eax, xmm4
push eax
vcvttss2si eax, xmm5
push eax
vcvttss2si eax, xmm1
push eax
vcvttss2si eax, xmm3
push eax
mov dl, 4
mov ecx, esi
vmovss dword [esi + 0x10], xmm3
vmovss dword [esi + 0x14], xmm1
call fcn.1002c9f0
vmovss xmm1, dword [esp + 0x30]
vmovss xmm0, dword [esp + 0x80]
vaddss xmm2, xmm1, dword [esi + 0x10]
vaddss xmm3, xmm0, dword [esi + 0x14]
vaddss xmm4, xmm2, dword [esp + 0x7c]
vaddss xmm5, xmm3, dword [esp + 0x88]
vaddss xmm1, xmm4, dword [esp + 0x2c]
vaddss xmm0, xmm5, dword [esp + 0x58]
add esp, 0x18
mov dl, 4
vcvttss2si eax, xmm5
mov ecx, esi
vmovss dword [esi + 0x14], xmm0
push eax
vcvttss2si eax, xmm4
push eax
vcvttss2si eax, xmm3
push eax
vcvttss2si eax, xmm2
push eax
vcvttss2si eax, xmm0
push eax
vcvttss2si eax, xmm1
push eax
vmovss dword [esi + 0x10], xmm1
call fcn.1002c9f0
vmovss xmm4, dword [esp + 0x50]
vmovss xmm6, dword [esp + 0x44]
vmovss xmm7, dword [esp + 0x48]
vmovss xmm1, dword [esp + 0x40]
vmovss xmm2, dword [esp + 0x30]
vmovss xmm3, dword [esp + 0x34]
vmovss xmm5, dword [esp + 0x38]
mov edx, dword [esp + 0x54]
add esp, 0x18
vxorps xmm0, xmm0, xmm0
jmp 0x1002d07f
mov eax, dword [esp + 0x24]
cmp eax, 0xff
je 0x1002dd75
cmp eax, 0x1c
je 0x1002dd35
add eax, 0xffffffe0
cmp eax, 0xde
ja case.default.0x1002d9f7
mov ecx, dword [esp + 0x10]
dec edx
cmp edx, ecx
jg 0x1002dd46
mov dword [esp + 0x50], edx
test edx, edx
jns 0x1002dd4a
mov dword [esp + 0x50], ecx
lea ecx, [esp + 0x4c]
call fcn.1002ac10
mov edi, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
cwde
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x10], edi
mov dword [esp + 0x44], eax
jmp 0x1002ddf4
mov edi, dword [esp + 0x10]
cmp ecx, edi
jl 0x1002dd85
mov eax, dword [esp + 0x74]
xor cl, cl
jmp 0x1002dd99
mov eax, dword [esp + 0x44]
lea edx, [ecx + 1]
mov al, byte [eax + ecx]
mov byte [esp + 0x37], al
mov eax, edx
mov cl, byte [esp + 0x37]
movzx ecx, cl
cmp eax, edi
jl 0x1002dda4
xor al, al
jmp 0x1002ddac
mov eax, dword [esp + 0x44]
mov al, byte [eax + edx]
inc edx
shl ecx, 8
movzx eax, al
or ecx, eax
cmp edx, edi
jl 0x1002ddbc
xor al, al
jmp 0x1002ddc4
mov eax, dword [esp + 0x44]
mov al, byte [eax + edx]
inc edx
shl ecx, 8
movzx eax, al
or ecx, eax
cmp edx, edi
jl 0x1002ddd4
xor al, al
jmp 0x1002dddc
mov eax, dword [esp + 0x44]
mov al, byte [eax + edx]
inc edx
shl ecx, 8
movzx eax, al
vxorps xmm0, xmm0, xmm0
or ecx, eax
vcvtsi2ss xmm0, xmm0, ecx
vmulss xmm0, xmm0, dword [0x10054b58]
mov eax, dword [esp + 0xc]
cmp eax, 0x30
jge case.default.0x1002d9f7
vmovss dword [esp + eax*4 + 0xb0], xmm0
vmovss xmm0, dword [esp + 0xd8]
vmovss xmm2, dword [esp + 0xc8]
vmovss xmm3, dword [esp + 0xc4]
vmovss xmm5, dword [esp + 0xc0]
vmovss xmm7, dword [esp + 0xbc]
vmovss xmm6, dword [esp + 0xb8]
vmovss xmm1, dword [esp + 0xb4]
vmovss xmm4, dword [esp + 0xb0]
vmovss dword [esp + 0x78], xmm0
vmovss xmm0, dword [esp + 0xd4]
vmovss dword [esp + 0x70], xmm0
vmovss xmm0, dword [esp + 0xd0]
vmovss dword [esp + 0x64], xmm0
vmovss xmm0, dword [esp + 0xcc]
inc eax
mov dword [esp + 0x6c], 0
vmovss dword [esp + 0x68], xmm0
mov dword [esp + 0xc], eax
vmovss dword [esp + 0x18], xmm2
vmovss dword [esp + 0x1c], xmm3
vmovss dword [esp + 0x20], xmm5
vmovss dword [esp + 0x30], xmm7
vmovss dword [esp + 0x2c], xmm6
vmovss dword [esp + 0x28], xmm1
vmovss dword [esp + 0x38], xmm4
vxorps xmm0, xmm0, xmm0
jmp 0x1002d07f
vmovss xmm4, dword [esp + 0x38]
vmovss xmm6, dword [esp + 0x2c]
vmovss xmm7, dword [esp + 0x30]
vmovss xmm1, dword [esp + 0x28]
vmovss xmm2, dword [esp + 0x18]
vmovss xmm3, dword [esp + 0x1c]
vmovss xmm5, dword [esp + 0x20]
mov edx, dword [esp + 0x3c]
xor eax, eax
cmp dword [esp + 0x6c], eax
mov edi, dword [esp + 0x10]
cmove eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x44]
jmp 0x1002ce66
vmovss xmm1, dword [esi + 8]
vucomiss xmm1, dword [esi + 0x10]
lahf
test ah, 0x44
jp 0x1002df2d
vmovss xmm0, dword [esi + 0xc]
vucomiss xmm0, dword [esi + 0x14]
lahf
test ah, 0x44
jnp 0x1002df4c
vcvttss2si eax, dword [esi + 0xc]
push 0
push 0
push 0
push 0
push eax
vcvttss2si eax, xmm1
push eax
mov dl, 2
mov ecx, esi
call fcn.1002c9f0
add esp, 0x18
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x20c]
xor ecx, esp
call fcn.10049096
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x214]
xor eax, eax
pop edi
pop esi
xor ecx, esp
call fcn.10049096
mov esp, ebp
pop ebp
ret