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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x188
mov eax, dword [0x10a78b80]
xor eax, esp
mov dword [esp + 0x184], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x34], eax
mov al, byte [ebp + 0x14]
movzx eax, al
mov edx, dword [ebp + 0x10]
push esi
push edi
mov ecx, dword [eax*4 + 0x10a73a30]
mov edi, 0x20
mov esi, dword [eax*4 + 0x109603d0]
mov dword [esp + 0x60], ecx
mov ecx, dword [eax*4 + 0x109604c0]
sub ecx, 2
mov dword [esp + 0x38], edx
mov dword [esp + 0x70], ecx
mov ecx, dword [eax*4 + 0x10960560]
sub ecx, 2
mov dword [esp + 0x6c], ecx
mov ecx, dword [eax*4 + 0x10960380]
cmp ecx, edi
mov eax, ecx
cmovg eax, edi
cmp esi, 0x20
mov dword [esp + 0x30], eax
mov edi, esi
mov eax, 0x20
cmovg edi, eax
mov dword [esp + 0x50], edi
cmp ecx, esi
je 0x102c5343
jle 0x102c5322
lea eax, [esi + esi]
cmp ecx, eax
jne 0x102c530d
mov dword [esp + 0x14], 1
jmp 0x102c5349
lea eax, [esi*4]
cmp ecx, eax
jne 0x102c5343
mov dword [esp + 0x14], 2
jmp 0x102c5349
lea eax, [ecx + ecx]
cmp esi, eax
jne 0x102c532e
or eax, 0xffffffff
jmp 0x102c5345
lea eax, [ecx*4]
cmp esi, eax
jne 0x102c5343
mov dword [esp + 0x14], 0xfffffffe
jmp 0x102c5349
xor eax, eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x30]
sar eax, 3
mov dword [esp + 0x30], eax
test eax, eax
jle 0x102c5aea
mov edx, dword [esp + 0x50]
mov ecx, edi
movaps xmm3, xmmword [0x106c2270]
xor esi, esi
movaps xmm7, xmmword [0x10960ff0]
xor edi, edi
sar ecx, 3
mov dword [esp + 0x48], edx
shl dword [esp + 0x48], 5
mov dword [esp + 0x40], esi
lea esi, [edx*8]
mov dword [esp + 0x54], ecx
xor ecx, ecx
shl edx, 4
mov dword [esp + 0x7c], esi
mov esi, ecx
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x4c], edi
mov dword [esp + 0x44], ecx
nop word [eax + eax]
cmp dword [esp + 0x54], 0
jle 0x102c5ac0
mov eax, dword [esp + 0x6c]
movaps xmm4, xmmword [0x10960fb0]
mov ecx, dword [esp + 0x50]
shl ecx, 2
movzx eax, word [eax*4 + 0x10a73b50]
pinsrw xmm4, eax, 0
pinsrw xmm4, eax, 2
lea eax, [edx*8]
mov edx, dword [ebp + 8]
mov dword [esp + 0x74], eax
punpcklqdq xmm4, xmm4
movaps xmmword [esp + 0xf0], xmm4
lea eax, [edi + edx]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x34], eax
lea eax, [edi + ecx]
add eax, edx
mov dword [esp + 0x1c], eax
lea eax, [esi + ecx]
lea eax, [edx + eax*2]
mov dword [esp + 0x20], eax
lea esi, [edi + ecx*2]
mov eax, dword [esp + 0x44]
add esi, ecx
add eax, ecx
add esi, edx
mov dword [esp + 0x64], esi
lea eax, [edx + eax*4]
mov dword [esp + 0x24], eax
lea eax, [edi + ecx*4]
add eax, ecx
add eax, edx
mov dword [esp + 0x28], eax
lea eax, [ecx + ecx*2]
lea eax, [edi + eax*2]
add eax, edx
lea edi, [ecx*8]
sub edi, ecx
mov dword [esp + 0x2c], eax
add edi, dword [esp + 0x4c]
mov eax, 0x10
add edi, edx
sub eax, ecx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x68], eax
nop dword [eax]
mov eax, dword [esp + 0x60]
mov ecx, 0xb
mov edx, 1
movsx eax, byte [eax]
sub ecx, eax
mov dword [esp + 0x5c], eax
shl dx, cl
mov eax, 0x800
add dx, ax
mov eax, dword [esp + 0x70]
movzx ecx, word [eax*4 + 0x10a73b50]
mov eax, ecx
movd xmm2, eax
mov eax, dword [esp + 0x14]
pinsrw xmm2, edx, 1
pinsrw xmm2, ecx, 2
pinsrw xmm2, edx, 3
punpcklqdq xmm2, xmm2
cmp eax, 1
je 0x102c5670
cmp eax, 0xffffffff
je 0x102c5670
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
movups xmm1, xmmword [eax]
mov eax, 0xc
packssdw xmm1, xmmword [ecx + edx]
sub eax, dword [esp + 0x5c]
movaps xmm5, xmm1
punpckhwd xmm1, xmm3
pmaddwd xmm1, xmm2
punpcklwd xmm5, xmm3
pmaddwd xmm5, xmm2
movd xmm0, eax
psrad xmm5, xmm0
movd xmm0, eax
psrad xmm1, xmm0
movd xmm0, eax
packssdw xmm5, xmm1
movups xmm1, xmmword [ecx]
mov ecx, dword [esp + 0x20]
packssdw xmm1, xmmword [edx + ecx]
movaps xmm4, xmm1
punpckhwd xmm1, xmm3
pmaddwd xmm1, xmm2
punpcklwd xmm4, xmm3
pmaddwd xmm4, xmm2
psrad xmm4, xmm0
movd xmm0, eax
psrad xmm1, xmm0
movd xmm0, eax
packssdw xmm4, xmm1
movups xmm1, xmmword [ecx]
packssdw xmm1, xmmword [edx + esi]
mov ecx, dword [esp + 0x24]
movaps xmmword [esp + 0xe0], xmm4
movaps xmm4, xmm1
punpckhwd xmm1, xmm3
pmaddwd xmm1, xmm2
punpcklwd xmm4, xmm3
pmaddwd xmm4, xmm2
psrad xmm4, xmm0
movd xmm0, eax
psrad xmm1, xmm0
movd xmm0, eax
packssdw xmm4, xmm1
movups xmm1, xmmword [esi]
packssdw xmm1, xmmword [edx + ecx]
movaps xmm6, xmm1
movaps xmmword [esp + 0x90], xmm4
punpcklwd xmm6, xmm3
punpckhwd xmm1, xmm3
pmaddwd xmm6, xmm2
pmaddwd xmm1, xmm2
psrad xmm6, xmm0
movd xmm0, eax
psrad xmm1, xmm0
movd xmm0, eax
packssdw xmm6, xmm1
movups xmm1, xmmword [ecx]
mov ecx, dword [esp + 0x28]
movaps xmmword [esp + 0xb0], xmm6
packssdw xmm1, xmmword [edx + ecx]
movaps xmm6, xmm1
punpckhwd xmm1, xmm3
punpcklwd xmm6, xmm3
pmaddwd xmm6, xmm2
pmaddwd xmm1, xmm2
psrad xmm6, xmm0
movd xmm0, eax
psrad xmm1, xmm0
movd xmm0, eax
packssdw xmm6, xmm1
movups xmm1, xmmword [ecx]
mov ecx, dword [esp + 0x2c]
movaps xmmword [esp + 0x80], xmm6
packssdw xmm1, xmmword [edx + ecx]
movaps xmm7, xmm1
punpckhwd xmm1, xmm3
punpcklwd xmm7, xmm3
pmaddwd xmm7, xmm2
psrad xmm7, xmm0
pmaddwd xmm1, xmm2
movd xmm0, eax
psrad xmm1, xmm0
movd xmm0, eax
packssdw xmm7, xmm1
movups xmm1, xmmword [ecx]
packssdw xmm1, xmmword [edx + edi]
movaps xmmword [esp + 0xc0], xmm7
movaps xmm7, xmm1
punpcklwd xmm7, xmm3
punpckhwd xmm1, xmm3
pmaddwd xmm7, xmm2
pmaddwd xmm1, xmm2
psrad xmm7, xmm0
movd xmm0, eax
psrad xmm1, xmm0
packssdw xmm7, xmm1
movups xmm1, xmmword [edi]
packssdw xmm1, xmmword [edi + 0x10]
jmp 0x102c583e
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
movups xmm1, xmmword [eax]
mov eax, 0xc
packssdw xmm1, xmmword [ecx + edx]
sub eax, dword [esp + 0x5c]
pmulhrsw xmm1, xmm7
movd xmm0, eax
movaps xmm5, xmm1
punpckhwd xmm1, xmm3
pmaddwd xmm1, xmm2
punpcklwd xmm5, xmm3
pmaddwd xmm5, xmm2
psrad xmm5, xmm0
movd xmm0, eax
psrad xmm1, xmm0
movd xmm0, eax
packssdw xmm5, xmm1
movups xmm1, xmmword [ecx]
mov ecx, dword [esp + 0x20]
packssdw xmm1, xmmword [edx + ecx]
pmulhrsw xmm1, xmm7
movaps xmm4, xmm1
punpckhwd xmm1, xmm3
pmaddwd xmm1, xmm2
punpcklwd xmm4, xmm3
pmaddwd xmm4, xmm2
psrad xmm4, xmm0
movd xmm0, eax
psrad xmm1, xmm0
movd xmm0, eax
packssdw xmm4, xmm1
movups xmm1, xmmword [ecx]
packssdw xmm1, xmmword [edx + esi]
pmulhrsw xmm1, xmm7
mov ecx, dword [esp + 0x24]
movaps xmmword [esp + 0xe0], xmm4
movaps xmm4, xmm1
punpckhwd xmm1, xmm3
pmaddwd xmm1, xmm2
punpcklwd xmm4, xmm3
pmaddwd xmm4, xmm2
psrad xmm4, xmm0
movd xmm0, eax
psrad xmm1, xmm0
movd xmm0, eax
packssdw xmm4, xmm1
movups xmm1, xmmword [esi]
packssdw xmm1, xmmword [edx + ecx]
pmulhrsw xmm1, xmm7
movaps xmmword [esp + 0x90], xmm4
movaps xmm6, xmm1
punpckhwd xmm1, xmm3
punpcklwd xmm6, xmm3
pmaddwd xmm6, xmm2
pmaddwd xmm1, xmm2
psrad xmm6, xmm0
movd xmm0, eax
psrad xmm1, xmm0
movd xmm0, eax
packssdw xmm6, xmm1
movups xmm1, xmmword [ecx]
mov ecx, dword [esp + 0x28]
movaps xmmword [esp + 0xb0], xmm6
packssdw xmm1, xmmword [edx + ecx]
pmulhrsw xmm1, xmm7
movaps xmm6, xmm1
punpckhwd xmm1, xmm3
punpcklwd xmm6, xmm3
pmaddwd xmm6, xmm2
pmaddwd xmm1, xmm2
psrad xmm6, xmm0
movd xmm0, eax
psrad xmm1, xmm0
packssdw xmm6, xmm1
movups xmm1, xmmword [ecx]
mov ecx, dword [esp + 0x2c]
movaps xmmword [esp + 0x80], xmm6
packssdw xmm1, xmmword [edx + ecx]
pmulhrsw xmm1, xmm7
movaps xmm7, xmm1
movd xmm0, eax
punpcklwd xmm7, xmm3
punpckhwd xmm1, xmm3
pmaddwd xmm7, xmm2
pmaddwd xmm1, xmm2
psrad xmm7, xmm0
movd xmm0, eax
psrad xmm1, xmm0
movd xmm0, eax
packssdw xmm7, xmm1
movups xmm1, xmmword [ecx]
packssdw xmm1, xmmword [edx + edi]
pmulhrsw xmm1, xmmword [0x10960ff0]
movaps xmmword [esp + 0xc0], xmm7
movaps xmm7, xmm1
punpckhwd xmm1, xmm3
punpcklwd xmm7, xmm3
pmaddwd xmm7, xmm2
pmaddwd xmm1, xmm2
psrad xmm7, xmm0
movd xmm0, eax
psrad xmm1, xmm0
packssdw xmm7, xmm1
movups xmm1, xmmword [edi]
packssdw xmm1, xmmword [edi + 0x10]
pmulhrsw xmm1, xmmword [0x10960ff0]
punpcklwd xmm6, xmmword [esp + 0xc0]
mov edx, 1
movaps xmmword [esp + 0xa0], xmm7
movaps xmm7, xmm1
punpcklwd xmm7, xmm3
pmaddwd xmm7, xmm2
punpckhwd xmm1, xmm3
movaps xmm3, xmmword [esp + 0xb0]
pmaddwd xmm1, xmm2
movaps xmm2, xmmword [esp + 0xa0]
movd xmm0, eax
psrad xmm7, xmm0
movd xmm0, eax
psrad xmm1, xmm0
mov eax, dword [esp + 0x60]
movaps xmm0, xmm2
packssdw xmm7, xmm1
movaps xmm1, xmmword [esp + 0x90]
punpcklwd xmm4, xmm3
movsx esi, byte [eax + 1]
punpckhwd xmm1, xmm3
mov ecx, esi
movaps xmm3, xmmword [esp + 0x80]
not ecx
punpckhwd xmm3, xmmword [esp + 0xc0]
movaps xmmword [esp + 0xd0], xmm7
movaps xmm7, xmm5
punpcklwd xmm0, xmmword [esp + 0xd0]
punpckhwd xmm2, xmmword [esp + 0xd0]
punpcklwd xmm7, xmmword [esp + 0xe0]
punpckhwd xmm5, xmmword [esp + 0xe0]
movaps xmmword [esp + 0x90], xmm1
movaps xmm1, xmm6
punpckldq xmm1, xmm0
punpckhdq xmm6, xmm0
movaps xmmword [esp + 0x80], xmm3
movaps xmm0, xmmword [esp + 0x80]
mov eax, dword [esp + 0x34]
movaps xmmword [esp + 0xa0], xmm2
movaps xmm2, xmm7
punpckhdq xmm0, xmmword [esp + 0xa0]
punpckldq xmm3, xmmword [esp + 0xa0]
movaps xmmword [esp + 0x80], xmm0
punpckldq xmm2, xmm4
punpckhdq xmm7, xmm4
movaps xmm0, xmm2
punpcklqdq xmm0, xmm1
movaps xmmword [esp + 0x100], xmm0
movaps xmm0, xmm7
punpcklqdq xmm0, xmm6
movaps xmmword [esp + 0xb0], xmm5
punpckldq xmm5, xmmword [esp + 0x90]
movaps xmm4, xmmword [esp + 0xb0]
punpckhdq xmm4, xmmword [esp + 0x90]
movaps xmmword [esp + 0x120], xmm0
movaps xmm0, xmm5
punpcklqdq xmm0, xmm3
movaps xmmword [esp + 0x140], xmm0
movaps xmm0, xmm4
punpcklqdq xmm0, xmmword [esp + 0x80]
punpckhqdq xmm4, xmmword [esp + 0x80]
shl edx, cl
neg esi
punpckhqdq xmm5, xmm3
lea ecx, [esp + 0x100]
movaps xmm3, xmmword [0x106c2270]
movaps xmmword [esp + 0x160], xmm0
movd xmm0, edx
mov edx, 8
punpckhqdq xmm2, xmm1
punpckhqdq xmm7, xmm6
movaps xmmword [esp + 0x150], xmm5
movaps xmmword [esp + 0x170], xmm4
movaps xmm4, xmmword [esp + 0xf0]
movaps xmmword [esp + 0x110], xmm2
movaps xmmword [esp + 0x130], xmm7
pshufd xmm5, xmm0, 0
nop
movups xmm1, xmmword [ecx]
lea ecx, [ecx + 0x10]
movaps xmm2, xmm1
movd xmm0, esi
punpcklwd xmm2, xmm3
pmaddwd xmm2, xmm4
punpckhwd xmm1, xmm3
pmaddwd xmm1, xmm4
psrad xmm2, 0xc
paddd xmm2, xmm5
psrad xmm1, 0xc
psrad xmm2, xmm0
paddd xmm1, xmm5
movd xmm0, esi
psrad xmm1, xmm0
movq xmm0, qword [eax]
packssdw xmm2, xmm1
xorps xmm1, xmm1
punpcklbw xmm0, xmm1
paddsw xmm2, xmm0
packuswb xmm2, xmm2
movq qword [eax], xmm2
add eax, dword [esp + 0x38]
sub edx, 1
jne 0x102c5a00
mov esi, dword [esp + 0x64]
add edi, 0x20
mov eax, dword [esp + 0x74]
add esi, 0x20
add dword [esp + 0x18], 0x20
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
add dword [esp + 0x34], eax
sub dword [esp + 0x68], 1
movaps xmm7, xmmword [0x10960ff0]
mov dword [esp + 0x64], esi
jne 0x102c5470
movaps xmm7, xmmword [0x10960ff0]
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
add esi, dword [esp + 0x78]
add ecx, dword [esp + 0x7c]
add edi, dword [esp + 0x48]
add dword [esp + 0x3c], 8
sub eax, 1
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], ecx
mov dword [esp + 0x4c], edi
mov dword [esp + 0x30], eax
jne 0x102c53b0
mov ecx, dword [esp + 0x18c]
pop edi
pop esi
xor ecx, esp
call fcn.105116c0
mov esp, ebp
pop ebp
ret