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

Disassembly:
sub esp, 0x74
push esi
push edi
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0xa8]
push dword [esp + 0x9c]
call fcn.0045eda0
mov edi, dword [esp + 0xac]
lea eax, [esp + 0x78]
push eax
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0x2c]
push eax
push edi
push dword [esp + 0xb0]
call fcn.0045eda0
mov eax, dword [esp + 0x80]
lea ecx, [edi*4]
imul eax, dword [esp + 0x84]
add esp, 0x30
cdq
add eax, dword [esp + 8]
mov dword [esp + 0x34], eax
adc edx, dword [esp + 0xc]
xor esi, esi
sub edi, dword [esp + 0x54]
sub dword [esp + 0x9c], ecx
sub edi, dword [esp + 0x60]
mov dword [esp + 0x30], edx
mov dword [esp + 0x44], esi
cmp dword [esp + 0x98], esi
jle 0x45f837
mov eax, dword [esp + 0x48]
xorps xmm4, xmm4
movaps xmm2, xmmword [0x541780]
movaps xmm7, xmmword [0x541790]
mov ecx, dword [esp + 0x90]
cdq
mov dword [esp + 0x3c], eax
mov eax, edi
mov dword [esp + 0x38], edx
cdq
sub eax, edx
mov edx, dword [esp + 0x10]
sar eax, 1
and edi, 1
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x94], edi
mov dword [esp + 0x5c], edx
cmp esi, dword [esp + 0x58]
jl 0x45f467
sub eax, dword [esp + 0x40]
dec eax
cmp esi, eax
jg 0x45f467
mov eax, dword [esp + 0x74]
mov esi, edx
shrd edx, eax, 9
shr esi, 0x10
mov edi, 1
and edx, 0x7f
jmp 0x45f48a
mov eax, dword [esp + 0x74]
xor edi, edi
shrd edx, eax, 9
mov dword [esp + 0x68], edi
and edx, 0x7f
cmp esi, dword [esp + 0x58]
jge 0x45f482
xor esi, esi
jmp 0x45f48e
mov esi, dword [esp + 0x88]
dec esi
mov dword [esp + 0x68], edi
xor eax, eax
test edi, edi
cmovne eax, edx
imul esi, dword [esp + 0x8c]
mov edx, dword [esp + 0x3c]
xor edi, edi
add esi, dword [esp + 0x80]
cmp dword [esp + 0x68], edi
mov dword [esp + 0x64], esi
cmovne edi, dword [esp + 0x8c]
add edi, esi
add dword [esp + 0x5c], edx
mov edx, dword [esp + 0x38]
adc dword [esp + 0x74], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x70], edx
movzx edx, ax
movsx eax, dx
mov dword [esp + 0x68], edi
movd xmm0, eax
mov eax, 0x80
sub eax, edx
punpcklwd xmm0, xmm0
movzx eax, ax
cwde
pshufd xmm5, xmm0, 0
movd xmm0, eax
mov eax, dword [esp + 0x54]
punpcklwd xmm0, xmm0
pshufd xmm6, xmm0, 0
test eax, eax
je 0x45f562
mov edx, eax
movq xmm1, qword [edi]
movq xmm0, qword [esi]
punpcklbw xmm1, xmm4
pmullw xmm1, xmm5
punpcklbw xmm0, xmm4
pmullw xmm0, xmm6
paddw xmm0, xmm1
punpcklqdq xmm1, xmm0
punpckhwd xmm1, xmm0
pmaddwd xmm1, xmm2
psrld xmm1, 0xe
packssdw xmm1, xmm1
packuswb xmm1, xmm1
movd dword [ecx], xmm1
add ecx, 4
add edx, 0xffffffff
jne 0x45f521
cmp dword [esp + 0x70], 0
je 0x45f718
mov eax, dword [esp + 0x50]
cdq
mov edi, eax
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x70]
mov dword [esp + 0x48], edi
mov esi, dword [esp + 0x78]
dec eax
mov dword [esp + 0x70], eax
mov edx, esi
mov eax, esi
shr eax, 0x10
shl eax, 2
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x6c]
shrd edx, eax, 9
sar eax, 9
add edi, esi
mov dword [esp + 0x14], eax
mov esi, edi
mov eax, dword [esp + 0x4c]
adc eax, dword [esp + 0x6c]
shr esi, 0x10
shl esi, 2
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x48]
mov dword [esp + 0x78], esi
add dword [esp + 0x78], edi
mov edi, dword [esp + 0x4c]
adc edi, eax
mov esi, dword [esp + 0x24]
and edx, 0x7f
mov dword [esp + 0x6c], edi
movzx edi, dx
mov eax, 0x80
sub eax, edx
mov dword [esp + 0x1c], edx
movzx edx, ax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x68]
movq xmm1, qword [eax + edi]
mov edi, dword [esp + 0x64]
punpcklbw xmm1, xmm4
pmullw xmm1, xmm5
movq xmm0, qword [eax + edi]
mov eax, dword [esp + 0x68]
punpcklbw xmm0, xmm4
pmullw xmm0, xmm6
movq xmm3, qword [esi + eax]
mov eax, edi
mov edi, dword [esp + 0x20]
punpcklbw xmm3, xmm4
paddw xmm0, xmm1
pmullw xmm3, xmm5
movq xmm2, qword [esi + eax]
mov eax, edx
punpcklqdq xmm1, xmm0
punpckhwd xmm1, xmm0
punpcklbw xmm2, xmm4
movd xmm0, eax
mov eax, dword [esp + 0x18]
pinsrw xmm0, edi, 1
pinsrw xmm0, edx, 2
pinsrw xmm0, edi, 3
pinsrw xmm0, edx, 4
pinsrw xmm0, edi, 5
pinsrw xmm0, edx, 6
pinsrw xmm0, word [esp + 0x1c], 7
mov edx, dword [esp + 0x14]
pmaddwd xmm1, xmm0
shrd edx, eax, 9
pmullw xmm2, xmm6
mov eax, 0x80
and dx, 0x7f
movzx edi, dx
psrld xmm1, 0xe
sub eax, edi
mov esi, edi
movzx edx, ax
packssdw xmm1, xmm1
paddw xmm2, xmm3
packuswb xmm1, xmm1
movd dword [ecx], xmm1
punpcklqdq xmm3, xmm2
mov eax, edx
punpckhwd xmm3, xmm2
movd xmm0, eax
pinsrw xmm0, esi, 1
mov eax, dword [esp + 0x70]
pinsrw xmm0, edx, 2
pinsrw xmm0, esi, 3
pinsrw xmm0, edx, 4
pinsrw xmm0, esi, 5
pinsrw xmm0, edx, 6
pinsrw xmm0, edi, 7
mov edi, dword [esp + 0x48]
pmaddwd xmm3, xmm0
psrld xmm3, 0xe
packssdw xmm3, xmm3
packuswb xmm3, xmm3
movd dword [ecx + 4], xmm3
add ecx, 8
test eax, eax
jne 0x45f580
movaps xmm2, xmmword [0x541780]
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x68]
cmp dword [esp + 0x94], 0
je 0x45f7b1
mov edx, dword [esp + 0x78]
mov eax, edx
shr eax, 0x10
movq xmm1, qword [edi + eax*4]
movq xmm0, qword [esi + eax*4]
mov eax, dword [esp + 0x6c]
punpcklbw xmm0, xmm4
shrd edx, eax, 9
punpcklbw xmm1, xmm4
mov eax, 0x80
pmullw xmm0, xmm6
and dx, 0x7f
pmullw xmm1, xmm5
movzx edi, dx
sub eax, edi
mov esi, edi
movzx edx, ax
mov eax, edx
paddw xmm0, xmm1
punpcklqdq xmm1, xmm0
punpckhwd xmm1, xmm0
movd xmm0, eax
pinsrw xmm0, esi, 1
pinsrw xmm0, edx, 2
pinsrw xmm0, esi, 3
pinsrw xmm0, edx, 4
pinsrw xmm0, esi, 5
pinsrw xmm0, edx, 6
pinsrw xmm0, edi, 7
pmaddwd xmm1, xmm0
psrld xmm1, 0xe
packssdw xmm1, xmm1
packuswb xmm1, xmm1
movd dword [ecx], xmm1
add ecx, 4
cmp dword [esp + 0x60], 0
je 0x45f814
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x68]
lea esi, [eax + edx*4]
mov eax, dword [esp + 0x64]
lea edi, [eax + edx*4]
mov edx, dword [esp + 0xc]
movq xmm1, qword [esi - 8]
movq xmm0, qword [edi - 8]
punpcklbw xmm1, xmm4
pmullw xmm1, xmm5
punpcklbw xmm0, xmm4
pmullw xmm0, xmm6
paddw xmm0, xmm1
punpcklqdq xmm1, xmm0
punpckhwd xmm1, xmm0
pmaddwd xmm1, xmm7
psrld xmm1, 0xe
packssdw xmm1, xmm1
packuswb xmm1, xmm1
movd dword [ecx], xmm1
add ecx, 4
sub edx, 1
jne 0x45f7d1
mov esi, dword [esp + 0x44]
add ecx, dword [esp + 0x9c]
inc esi
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x44], esi
cmp esi, eax
jl 0x45f441
pop edi
xor eax, eax
pop esi
add esp, 0x74
ret