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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x4f8
mov eax, dword [0x10a78b80]
xor eax, esp
mov dword [esp + 0x4f4], eax
mov eax, dword [ebp + 0xc]
mov edx, 0x20
mov dword [esp + 0x44], eax
mov al, byte [ebp + 0x14]
mov byte [esp + 0xb], al
mov byte [esp + 0x28], al
mov al, byte [ebp + 0x18]
push esi
movzx esi, al
push edi
mov dword [esp + 0x34], edx
mov eax, dword [esi*4 + 0x10a73a30]
mov ecx, dword [esi*4 + 0x10960380]
mov edi, ecx
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0x1c]
dec eax
cmp ecx, edx
cmovg edi, edx
lea edx, [edi - 1]
mov dword [esp + 0x14], edx
cmp eax, edx
jge 0x102c49f0
mov edx, dword [eax*4 + 0x10a73ad0]
mov dword [esp + 0x14], edx
cdq
idiv edi
mov edx, dword [esi*4 + 0x10960560]
sub edx, 2
mov edi, dword [eax*4 + 0x10a73ad0]
mov eax, dword [esi*4 + 0x109604c0]
mov esi, dword [esi*4 + 0x109603d0]
sub eax, 2
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x14]
add eax, 8
mov dword [esp + 0x3c], esi
sar eax, 3
mov dword [esp + 0x14], eax
lea eax, [edi + 8]
sar eax, 3
cmp esi, 0x20
mov dword [esp + 0x54], eax
mov eax, esi
cmovg eax, dword [esp + 0x34]
mov dword [esp + 0x50], eax
cmp ecx, esi
je 0x102c4a90
jle 0x102c4a6f
lea eax, [esi + esi]
cmp ecx, eax
jne 0x102c4a5a
mov dword [esp + 0xc], 1
jmp 0x102c4a96
lea eax, [esi*4]
cmp ecx, eax
jne 0x102c4a90
mov dword [esp + 0xc], 2
jmp 0x102c4a96
lea eax, [ecx + ecx]
cmp esi, eax
jne 0x102c4a7b
or eax, 0xffffffff
jmp 0x102c4a92
lea eax, [ecx*4]
cmp esi, eax
jne 0x102c4a90
mov dword [esp + 0xc], 0xfffffffe
jmp 0x102c4a96
xor eax, eax
mov dword [esp + 0xc], eax
movzx eax, byte [esp + 0x13]
movzx ecx, byte [eax + 0x10960d68]
lea eax, [edx + edx*2]
add ecx, eax
mov eax, dword [edi*4 + 0x10960ee0]
lea eax, [eax + ecx*4]
mov eax, dword [eax*4 + 0x10960c28]
mov dword [esp + 0x80], eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x38]
push eax
push dword [esp + 0x38]
call fcn.102705b0
add esp, 0xc
cmp dword [esp + 0x14], 0
jle 0x102c524f
movaps xmm7, xmmword [0x106c2270]
xor eax, eax
cmp dword [esp + 0x34], eax
movaps xmm6, xmmword [0x10960ff0]
sete al
xor edi, edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x40], edi
lea eax, [eax*2 - 1]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x50]
mov ecx, eax
shl ecx, 5
mov dword [esp + 0x5c], ecx
lea ecx, [eax*8]
shl eax, 4
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x88], eax
nop dword [eax + eax]
cmp dword [esp + 0x54], 0
jle 0x102c517c
mov eax, dword [esp + 0x74]
mov ecx, 0xb
mov edx, 1
movzx esi, word [eax*4 + 0x10a73b50]
mov eax, dword [esp + 0x58]
movsx edi, byte [eax]
mov eax, 0x800
sub ecx, edi
mov dword [esp + 0x78], edi
mov edi, dword [ebp + 8]
shl dx, cl
add dx, ax
mov eax, esi
movd xmm4, eax
mov eax, dword [esp + 0x50]
pinsrw xmm4, edx, 1
pinsrw xmm4, esi, 2
mov esi, dword [esp + 0x48]
lea ecx, [eax*4]
pinsrw xmm4, edx, 3
mov eax, dword [ebp + 8]
lea edx, [esp + 0x110]
add eax, esi
punpcklqdq xmm4, xmm4
mov dword [esp + 0x18], eax
lea eax, [esi + ecx]
add eax, edi
movaps xmmword [esp + 0xe0], xmm4
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x40]
add eax, ecx
lea eax, [edi + eax*2]
mov dword [esp + 0x20], eax
lea eax, [esi + ecx*2]
add eax, ecx
add eax, edi
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x44]
add eax, ecx
lea eax, [edi + eax*4]
mov dword [esp + 0x24], eax
lea eax, [esi + ecx*4]
add eax, ecx
add eax, edi
mov dword [esp + 0x28], eax
lea eax, [ecx + ecx*2]
lea eax, [esi + eax*2]
add eax, edi
mov dword [esp + 0x2c], eax
lea eax, [ecx*8]
sub eax, ecx
add eax, esi
mov esi, 0x10
sub esi, ecx
add eax, edi
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x30], ecx
mov ecx, 0xc
sub ecx, dword [esp + 0x78]
mov dword [esp + 8], esi
mov esi, dword [esp + 0xc]
mov dword [esp + 0x38], eax
cmp esi, 1
je 0x102c4df8
cmp esi, 0xffffffff
je 0x102c4df8
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
movd xmm0, ecx
movups xmm1, xmmword [eax]
mov eax, dword [esp + 8]
packssdw xmm1, xmmword [esi + eax]
movaps xmm3, xmm1
punpckhwd xmm1, xmm7
pmaddwd xmm1, xmm4
punpcklwd xmm3, xmm7
pmaddwd xmm3, xmm4
psrad xmm3, xmm0
movd xmm0, ecx
psrad xmm1, xmm0
movd xmm0, ecx
packssdw xmm3, xmm1
movups xmmword [edx - 0x20], xmm3
movups xmm1, xmmword [esi]
mov esi, eax
mov eax, dword [esp + 0x20]
packssdw xmm1, xmmword [eax + esi]
movaps xmm2, xmm1
punpckhwd xmm1, xmm7
punpcklwd xmm2, xmm7
pmaddwd xmm1, xmm4
pmaddwd xmm2, xmm4
psrad xmm2, xmm0
movd xmm0, ecx
psrad xmm1, xmm0
movd xmm0, ecx
packssdw xmm2, xmm1
movups xmmword [edx - 0x10], xmm2
movups xmm1, xmmword [eax]
packssdw xmm1, xmmword [edi + esi]
mov eax, dword [esp + 0x24]
movaps xmm5, xmm1
punpckhwd xmm1, xmm7
pmaddwd xmm1, xmm4
punpcklwd xmm5, xmm7
pmaddwd xmm5, xmm4
movaps xmmword [esp + 0x60], xmm2
psrad xmm5, xmm0
movd xmm0, ecx
psrad xmm1, xmm0
movd xmm0, ecx
packssdw xmm5, xmm1
movups xmmword [edx], xmm5
movups xmm1, xmmword [edi]
packssdw xmm1, xmmword [eax + esi]
mov esi, dword [esp + 0x28]
movaps xmm2, xmm1
punpcklwd xmm2, xmm7
punpckhwd xmm1, xmm7
pmaddwd xmm2, xmm4
pmaddwd xmm1, xmm4
psrad xmm2, xmm0
movd xmm0, ecx
psrad xmm1, xmm0
movd xmm0, ecx
packssdw xmm2, xmm1
movups xmmword [edx + 0x10], xmm2
movups xmm1, xmmword [eax]
mov eax, dword [esp + 8]
movaps xmmword [esp + 0x90], xmm2
packssdw xmm1, xmmword [esi + eax]
movaps xmm2, xmm1
punpckhwd xmm1, xmm7
punpcklwd xmm2, xmm7
pmaddwd xmm2, xmm4
pmaddwd xmm1, xmm4
psrad xmm2, xmm0
movd xmm0, ecx
psrad xmm1, xmm0
packssdw xmm2, xmm1
movups xmmword [edx + 0x20], xmm2
movups xmm1, xmmword [esi]
mov esi, dword [esp + 0x2c]
packssdw xmm1, xmmword [esi + eax]
movaps xmm6, xmm1
punpcklwd xmm6, xmm7
pmaddwd xmm6, xmm4
mov eax, dword [esp + 0x38]
punpckhwd xmm1, xmm7
pmaddwd xmm1, xmm4
movd xmm0, ecx
psrad xmm6, xmm0
movd xmm0, ecx
psrad xmm1, xmm0
movd xmm0, ecx
packssdw xmm6, xmm1
movups xmmword [edx + 0x30], xmm6
movups xmm1, xmmword [esi]
mov esi, dword [esp + 8]
movaps xmmword [esp + 0xb0], xmm6
packssdw xmm1, xmmword [eax + esi]
movaps xmm6, xmm1
punpckhwd xmm1, xmm7
punpcklwd xmm6, xmm7
pmaddwd xmm6, xmm4
pmaddwd xmm1, xmm4
psrad xmm6, xmm0
movd xmm0, ecx
psrad xmm1, xmm0
packssdw xmm6, xmm1
movups xmmword [edx + 0x40], xmm6
movups xmm1, xmmword [eax]
packssdw xmm1, xmmword [eax + 0x10]
jmp 0x102c4fd3
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
movd xmm0, ecx
movups xmm1, xmmword [eax]
mov eax, dword [esp + 8]
packssdw xmm1, xmmword [esi + eax]
pmulhrsw xmm1, xmm6
movaps xmm3, xmm1
punpckhwd xmm1, xmm7
pmaddwd xmm1, xmm4
punpcklwd xmm3, xmm7
pmaddwd xmm3, xmm4
psrad xmm3, xmm0
movd xmm0, ecx
psrad xmm1, xmm0
movd xmm0, ecx
packssdw xmm3, xmm1
movups xmmword [edx - 0x20], xmm3
movups xmm1, xmmword [esi]
mov esi, eax
mov eax, dword [esp + 0x20]
packssdw xmm1, xmmword [eax + esi]
pmulhrsw xmm1, xmm6
movaps xmm2, xmm1
punpckhwd xmm1, xmm7
pmaddwd xmm1, xmm4
punpcklwd xmm2, xmm7
pmaddwd xmm2, xmm4
psrad xmm2, xmm0
movd xmm0, ecx
psrad xmm1, xmm0
movd xmm0, ecx
packssdw xmm2, xmm1
movups xmmword [edx - 0x10], xmm2
movups xmm1, xmmword [eax]
packssdw xmm1, xmmword [edi + esi]
pmulhrsw xmm1, xmm6
mov eax, dword [esp + 0x24]
movaps xmmword [esp + 0x60], xmm2
movaps xmm5, xmm1
punpckhwd xmm1, xmm7
pmaddwd xmm1, xmm4
punpcklwd xmm5, xmm7
pmaddwd xmm5, xmm4
psrad xmm5, xmm0
movd xmm0, ecx
psrad xmm1, xmm0
movd xmm0, ecx
packssdw xmm5, xmm1
movups xmmword [edx], xmm5
movups xmm1, xmmword [edi]
packssdw xmm1, xmmword [eax + esi]
pmulhrsw xmm1, xmm6
mov esi, dword [esp + 0x28]
movaps xmm2, xmm1
punpckhwd xmm1, xmm7
punpcklwd xmm2, xmm7
pmaddwd xmm2, xmm4
pmaddwd xmm1, xmm4
psrad xmm2, xmm0
movd xmm0, ecx
psrad xmm1, xmm0
movd xmm0, ecx
packssdw xmm2, xmm1
movups xmmword [edx + 0x10], xmm2
movups xmm1, xmmword [eax]
mov eax, dword [esp + 8]
movaps xmmword [esp + 0x90], xmm2
packssdw xmm1, xmmword [esi + eax]
pmulhrsw xmm1, xmm6
movaps xmm2, xmm1
punpckhwd xmm1, xmm7
punpcklwd xmm2, xmm7
pmaddwd xmm2, xmm4
pmaddwd xmm1, xmm4
psrad xmm2, xmm0
movd xmm0, ecx
psrad xmm1, xmm0
packssdw xmm2, xmm1
movups xmmword [edx + 0x20], xmm2
movups xmm1, xmmword [esi]
mov esi, dword [esp + 0x2c]
movd xmm0, ecx
packssdw xmm1, xmmword [esi + eax]
pmulhrsw xmm1, xmm6
mov eax, dword [esp + 0x38]
movaps xmm6, xmm1
punpckhwd xmm1, xmm7
punpcklwd xmm6, xmm7
pmaddwd xmm6, xmm4
pmaddwd xmm1, xmm4
psrad xmm6, xmm0
movd xmm0, ecx
psrad xmm1, xmm0
movd xmm0, ecx
packssdw xmm6, xmm1
movups xmmword [edx + 0x30], xmm6
movups xmm1, xmmword [esi]
mov esi, dword [esp + 8]
movaps xmmword [esp + 0xb0], xmm6
packssdw xmm1, xmmword [eax + esi]
pmulhrsw xmm1, xmmword [0x10960ff0]
movaps xmm6, xmm1
punpckhwd xmm1, xmm7
punpcklwd xmm6, xmm7
pmaddwd xmm6, xmm4
pmaddwd xmm1, xmm4
psrad xmm6, xmm0
movd xmm0, ecx
psrad xmm1, xmm0
packssdw xmm6, xmm1
movups xmmword [edx + 0x40], xmm6
movups xmm1, xmmword [eax]
packssdw xmm1, xmmword [eax + 0x10]
pmulhrsw xmm1, xmmword [0x10960ff0]
movaps xmmword [esp + 0xa0], xmm6
add eax, 0x20
movaps xmm6, xmm1
movd xmm0, ecx
punpcklwd xmm6, xmm7
add edi, 0x20
pmaddwd xmm6, xmm4
punpckhwd xmm1, xmm7
movaps xmm7, xmm3
punpcklwd xmm7, xmmword [esp + 0x60]
punpckhwd xmm3, xmmword [esp + 0x60]
pmaddwd xmm1, xmm4
movaps xmm4, xmm5
punpcklwd xmm4, xmmword [esp + 0x90]
punpckhwd xmm5, xmmword [esp + 0x90]
psrad xmm6, xmm0
movd xmm0, ecx
psrad xmm1, xmm0
add dword [esp + 0x18], 0x20
packssdw xmm6, xmm1
movaps xmm1, xmmword [esp + 0xa0]
movups xmmword [edx + 0x50], xmm6
movaps xmm0, xmm1
movaps xmmword [esp + 0xc0], xmm6
movaps xmm6, xmm2
punpcklwd xmm0, xmmword [esp + 0xc0]
punpckhwd xmm1, xmmword [esp + 0xc0]
punpcklwd xmm6, xmmword [esp + 0xb0]
punpckhwd xmm2, xmmword [esp + 0xb0]
movaps xmmword [esp + 0x60], xmm2
movaps xmm2, xmm7
movaps xmmword [esp + 0xa0], xmm1
movaps xmm1, xmm6
punpckhdq xmm6, xmm0
punpckldq xmm1, xmm0
movaps xmm0, xmmword [esp + 0x60]
punpckhdq xmm0, xmmword [esp + 0xa0]
add dword [esp + 0x1c], 0x20
add dword [esp + 0x20], 0x20
add dword [esp + 0x24], 0x20
add dword [esp + 0x28], 0x20
add dword [esp + 0x2c], 0x20
mov esi, dword [esp + 0xc]
movaps xmmword [esp + 0x90], xmm5
movaps xmm5, xmm3
punpckldq xmm5, xmmword [esp + 0x90]
punpckldq xmm2, xmm4
movaps xmmword [esp + 0xd0], xmm3
movaps xmm3, xmmword [esp + 0x60]
punpckldq xmm3, xmmword [esp + 0xa0]
movaps xmmword [esp + 0x60], xmm0
movaps xmm0, xmm2
punpcklqdq xmm0, xmm1
punpckhdq xmm7, xmm4
movaps xmm4, xmmword [esp + 0xd0]
punpckhdq xmm4, xmmword [esp + 0x90]
movups xmmword [edx - 0x20], xmm0
movaps xmm0, xmm7
punpcklqdq xmm0, xmm6
movups xmmword [edx], xmm0
movaps xmm0, xmm5
punpcklqdq xmm0, xmm3
movups xmmword [edx + 0x20], xmm0
movaps xmm0, xmm4
punpckhqdq xmm4, xmmword [esp + 0x60]
punpcklqdq xmm0, xmmword [esp + 0x60]
punpckhqdq xmm7, xmm6
movaps xmm6, xmmword [0x10960ff0]
punpckhqdq xmm2, xmm1
punpckhqdq xmm5, xmm3
movups xmmword [edx + 0x10], xmm7
movaps xmm7, xmmword [0x106c2270]
movups xmmword [edx + 0x50], xmm4
movaps xmm4, xmmword [esp + 0xe0]
movups xmmword [edx - 0x10], xmm2
movups xmmword [edx + 0x30], xmm5
movups xmmword [edx + 0x40], xmm0
sub edx, 0xffffff80
sub dword [esp + 0x30], 1
mov dword [esp + 0x38], eax
jne 0x102c4c36
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x3c]
lea eax, [esp + 0xf0]
push eax
push eax
call dword [esp + 0x88]
mov eax, dword [esp + 0x60]
add esp, 8
movsx ecx, byte [eax + 1]
mov eax, 1
add ecx, 0xf
shl ax, cl
cmp dword [esp + 0x34], 0
cwde
movd xmm0, eax
punpcklwd xmm0, xmm0
pshufd xmm3, xmm0, 0
je 0x102c51c1
mov ecx, esi
shl ecx, 4
sub ecx, 0x10
jmp 0x102c51c3
xor ecx, ecx
mov eax, dword [esp + 0x4c]
test esi, esi
jle 0x102c5213
mov esi, dword [esp + 0x84]
lea edx, [esp + 0xf0]
shl esi, 4
xorps xmm2, xmm2
add ecx, edx
mov edx, dword [esp + 0x3c]
movq xmm0, qword [eax]
movq xmm1, xmm0
movups xmm0, xmmword [ecx]
pmulhrsw xmm0, xmm3
add ecx, esi
punpcklbw xmm1, xmm2
paddsw xmm1, xmm0
packuswb xmm1, xmm1
movq qword [eax], xmm1
add eax, dword [ebp + 0x10]
sub edx, 1
jne 0x102c51e5
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
add edi, dword [esp + 0x5c]
add dword [esp + 0x40], eax
add dword [esp + 0x44], ecx
add dword [esp + 0x4c], 8
sub dword [esp + 0x14], 1
movaps xmm7, xmmword [0x106c2270]
movaps xmm6, xmmword [0x10960ff0]
mov dword [esp + 0x48], edi
jne 0x102c4b40
mov ecx, dword [esp + 0x4fc]
pop edi
pop esi
xor ecx, esp
call fcn.105116c0
mov esp, ebp
pop ebp
ret