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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffe0
sub esp, 0x1d8
mov eax, dword [0x10a78b80]
xor eax, esp
mov dword [esp + 0x1d4], eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x28]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x60], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0x14]
vmovdqa xmm1, xmmword [0x108c06f0]
mov dword [esp + 0x5c], eax
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x2c]
shl ecx, 4
add ecx, 0x1063c708
push esi
push edi
mov edi, dword [ecx + eax*4]
vpbroadcastd ymm0, dword [ecx + eax*4 + 8]
vmovdqu ymmword [esp + 0x80], ymm0
mov eax, 0x40
mov dword [esp + 0x24], edi
lea edx, [edi*2 + 1]
imul edx, edx
mov dword [esp + 0x5c], edx
vpbroadcastd ymm0, dword [edx*4 + 0x1063cc04]
vmovdqu ymmword [esp + 0xa0], ymm0
vmovd xmm0, eax
vpsrlq xmm0, xmm1, xmm0
vpmovsxbd ymm0, xmm0
vmovdqu ymmword [esp + 0xc0], ymm0
mov eax, 0x38
vmovd xmm0, eax
vpsrlq xmm0, xmm1, xmm0
vpmovsxbd ymm0, xmm0
vmovdqu ymmword [esp + 0xe0], ymm0
mov eax, 0x30
vmovd xmm0, eax
vpsrlq xmm0, xmm1, xmm0
vpmovsxbd ymm0, xmm0
vmovdqu ymmword [esp + 0x100], ymm0
mov eax, 0x28
vmovd xmm0, eax
vpsrlq xmm0, xmm1, xmm0
vpmovsxbd ymm0, xmm0
vmovdqu ymmword [esp + 0x120], ymm0
mov eax, 0x20
vmovd xmm0, eax
vpsrlq xmm0, xmm1, xmm0
vpmovsxbd ymm0, xmm0
vmovdqu ymmword [esp + 0x140], ymm0
mov eax, 0x18
vmovd xmm0, eax
vpsrlq xmm0, xmm1, xmm0
vpmovsxbd ymm0, xmm0
vmovdqu ymmword [esp + 0x160], ymm0
mov eax, 0x10
vmovd xmm0, eax
vpsrlq xmm0, xmm1, xmm0
vpmovsxbd ymm0, xmm0
vmovdqu ymmword [esp + 0x180], ymm0
mov eax, 8
vmovd xmm0, eax
mov eax, dword [ebp + 0x1c]
vpsrlq xmm0, xmm1, xmm0
inc eax
mov dword [esp + 0x1c], eax
vpmovsxbd ymm0, xmm0
vmovdqu ymmword [esp + 0x1a0], ymm0
cmp eax, 0xffffffff
jle 0x10233c8b
mov eax, dword [ebp + 0x24]
mov esi, 0xfffffffe
mov ecx, dword [esp + 0x20]
add eax, 0xfffffff8
mov dword [esp + 0x44], eax
sub esi, ecx
add eax, eax
shl esi, 2
mov dword [esp + 0x70], eax
mov eax, dword [ebp + 0x18]
lea edx, [ecx*8]
inc eax
mov dword [esp + 0x7c], edx
mov dword [esp + 0x40], eax
lea eax, [edi + 2]
imul eax, ecx
add edi, 2
vmovdqu ymm6, ymmword [0x108c2020]
vmovdqu ymm7, ymmword [0x108c2040]
mov dword [esp + 0x58], esi
mov dword [esp + 0x48], 1
add eax, edi
mov dword [esp + 0x74], 0x1063c808
mov edi, dword [esp + 0x18]
shl eax, 2
sub edi, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x54], edi
lea ecx, [eax + 2]
imul ecx, dword [esp + 0x20]
sub eax, ecx
mov ecx, dword [esp + 0x18]
lea ecx, [ecx + eax*4]
mov eax, dword [esp + 0x3c]
add eax, 4
add ecx, 0xfffffffc
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x1c]
shr eax, 1
inc eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x1c], eax
nop word [eax + eax]
cmp dword [esp + 0x40], 0xffffffff
jle 0x10233c6c
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x20]
rol eax, cl
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x60]
add eax, esi
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0x4c], eax
add ecx, 2
mov eax, dword [esp + 0x38]
vpbroadcastd ymm5, dword [esp + 0x5c]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x18]
shl eax, 5
mov dword [esp + 0x28], edi
lea edi, [edx*4 + 4]
imul edi, dword [esp + 0x24]
lea edx, [edx*4 - 4]
imul edx, dword [esp + 0x24]
lea eax, [esp + eax + 0x100]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x68]
sub eax, dword [esp + 0x3c]
add edi, 4
add edi, dword [esp + 0x18]
add edx, esi
add edx, dword [esp + 0x18]
add edi, esi
mov esi, dword [esp + 0x64]
sub esi, dword [esp + 0x18]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x40]
shr eax, 3
inc eax
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x30], 8
mov ecx, dword [esp + 0x2c]
vmovdqu ymm0, ymmword [esi + edi]
vpsubd ymm1, ymm0, ymmword [esi + edx]
vmovdqu ymm0, ymmword [esi + ecx]
vpsubd ymm0, ymm0, ymmword [esi + eax]
vpsubd ymm3, ymm1, ymm0
vmovdqu ymm0, ymmword [edi]
vpsubd ymm1, ymm0, ymmword [edx]
vmovdqu ymm0, ymmword [ecx]
vpsubd ymm0, ymm0, ymmword [eax]
vpsubd ymm2, ymm1, ymm0
jge 0x10233b67
mov ecx, dword [esp + 0x34]
vmovdqu ymm0, ymmword [ecx]
vpand ymm3, ymm0, ymm3
vpand ymm2, ymm0, ymm2
cmp dword [ebp + 0x24], 8
jle 0x10233bbc
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x70]
sar eax, 1
vmovd xmm0, eax
shlx eax, dword [esp + 0x48], ecx
vpbroadcastd ymm0, xmm0
vpaddd ymm1, ymm0, ymm3
vmovd xmm0, dword [esp + 0x44]
vpsrld ymm0, ymm1, xmm0
vpmaddwd ymm4, ymm0, ymm0
sar eax, 1
vmovd xmm0, eax
vpbroadcastd ymm0, xmm0
vpaddd ymm1, ymm0, ymm2
vmovd xmm0, ecx
vpsrld ymm0, ymm1, xmm0
vpmulld ymm0, ymm0, ymm5
vpmaxsd ymm0, ymm0, ymm4
jmp 0x10233bc5
vpmaddwd ymm4, ymm3, ymm3
vpmulld ymm0, ymm5, ymm2
mov eax, dword [esp + 0x74]
add edx, 0x20
mov ecx, dword [esp + 0x4c]
add edi, 0x20
vpsubd ymm0, ymm0, ymm4
vpmulld ymm0, ymm0, ymmword [esp + 0x80]
vpaddd ymm0, ymm0, ymmword [0x108c2080]
add dword [esp + 0x2c], 0x20
sub dword [esp + 0x30], 8
sub dword [esp + 0x34], 0x100
vpsrld ymm0, ymm0, 0x14
vpminsd ymm2, ymm0, ymm6
vpcmpeqb ymm0, ymm0, ymm0
vpgatherdd ymm1, ymmword [eax + ymm2*4], ymm0
mov eax, dword [esp + 0x78]
vpsubd ymm0, ymm7, ymm1
vpmaddwd ymm0, ymm0, ymmword [esp + 0xa0]
vpmulld ymm0, ymm0, ymm3
vpaddd ymm0, ymm0, ymmword [0x10865fe0]
vmovdqu ymmword [eax + ecx], ymm1
mov eax, dword [esp + 0x28]
vpsrld ymm0, ymm0, 0xc
vmovdqu ymmword [ecx], ymm0
add ecx, 0x20
add eax, 0x20
sub dword [esp + 0x50], 1
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x28], eax
jne 0x10233b20
mov esi, dword [esp + 0x58]
mov edx, dword [esp + 0x7c]
mov edi, dword [esp + 0x54]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x38]
add ecx, edx
add edi, edx
add esi, edx
mov dword [esp + 0x38], ecx
sub eax, 1
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], esi
mov dword [esp + 0x1c], eax
jne 0x10233a80
vzeroupper
mov ecx, dword [esp + 0x1dc]
pop edi
pop esi
xor ecx, esp
call fcn.105116c0
mov esp, ebp
pop ebp
ret