Function at 0x101571e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffe0
push esi
push edi
push ebx
sub esp, 0x234
mov ebx, dword [ebp + 0x10]
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x18]
cmp ebx, 2
je 0x10158872
test esi, esi
jne 0x1015785d
lea esi, [ebx - 4]
test esi, esi
jle 0x10157669
mov edi, ebx
shl edi, 5
mov dword [esp + 0x1f0], edi
mov edi, ebx
mov dword [esp + 0x1e8], 0
shl edi, 4
mov dword [esp + 0x1ec], edi
lea edi, [ebx + ebx*2]
mov dword [esp + 0x1e0], esi
mov dword [esp + 0x1e4], edi
mov esi, dword [esp + 0x1e8]
vmovups xmm1, xmmword [edx + ebx*8 + 0x10]
vmovups xmm5, xmmword [edx + ebx*8]
vmovups xmm2, xmmword [ecx]
vmovups xmm4, xmmword [ecx + 0x10]
mov edi, dword [esp + 0x1f0]
mov dword [esp + 0x1e8], esi
mov esi, dword [esp + 0x1ec]
vinsertf128 ymm7, ymm1, xmmword [edx + ebx*8 + 0x30], 1
vinsertf128 ymm3, ymm5, xmmword [edx + ebx*8 + 0x20], 1
vinsertf128 ymm2, ymm2, xmmword [ecx + 0x80], 1
vinsertf128 ymm1, ymm4, xmmword [ecx + 0x90], 1
vmulps ymm6, ymm3, ymm2
vmulps ymm0, ymm7, ymm1
vmulps ymm2, ymm7, ymm2
vmulps ymm7, ymm3, ymm1
vmovups xmm3, xmmword [edx + edi]
vmovups xmm4, xmmword [edx + edi + 0x10]
vsubps ymm1, ymm2, ymm7
vmovups xmm2, xmmword [ecx + 0x60]
vmovups xmm7, xmmword [ecx + 0x70]
vaddps ymm5, ymm6, ymm0
vinsertf128 ymm0, ymm3, xmmword [edx + edi + 0x20], 1
vinsertf128 ymm6, ymm4, xmmword [edx + edi + 0x30], 1
vinsertf128 ymm4, ymm2, xmmword [ecx + 0xe0], 1
vinsertf128 ymm3, ymm7, xmmword [ecx + 0xf0], 1
vmulps ymm2, ymm0, ymm4
vmulps ymm7, ymm6, ymm3
vmulps ymm6, ymm6, ymm4
vmulps ymm0, ymm0, ymm3
vaddps ymm7, ymm2, ymm7
vsubps ymm4, ymm6, ymm0
vaddps ymm2, ymm5, ymm7
vsubps ymm5, ymm5, ymm7
vaddps ymm3, ymm1, ymm4
vsubps ymm1, ymm1, ymm4
vmovups xmm7, xmmword [edx + esi + 0x10]
vmovups ymmword [esp + 0x20], ymm3
vmovups ymmword [esp + 0x60], ymm1
vmovups xmm1, xmmword [edx + esi]
vmovups xmm3, xmmword [ecx + 0x20]
vmovups ymmword [esp + 0x40], ymm5
vmovups xmm5, xmmword [ecx + 0x30]
vmovups ymmword [esp], ymm2
vinsertf128 ymm2, ymm1, xmmword [edx + esi + 0x20], 1
vinsertf128 ymm6, ymm3, xmmword [ecx + 0xa0], 1
vmulps ymm0, ymm2, ymm6
vinsertf128 ymm3, ymm5, xmmword [ecx + 0xb0], 1
vinsertf128 ymm1, ymm7, xmmword [edx + esi + 0x30], 1
vmulps ymm4, ymm1, ymm6
vmulps ymm2, ymm2, ymm3
vmulps ymm7, ymm1, ymm3
vmovups xmm5, xmmword [ecx + 0x40]
vsubps ymm6, ymm4, ymm2
vmovups xmm4, xmmword [ecx + 0x50]
vaddps ymm7, ymm0, ymm7
mov esi, dword [esp + 0x1e4]
vmovups xmm1, xmmword [edx + esi*8]
vmovups xmm3, xmmword [edx + esi*8 + 0x10]
vinsertf128 ymm0, ymm5, xmmword [ecx + 0xc0], 1
vinsertf128 ymm2, ymm1, xmmword [edx + esi*8 + 0x20], 1
vinsertf128 ymm1, ymm3, xmmword [edx + esi*8 + 0x30], 1
vinsertf128 ymm4, ymm4, xmmword [ecx + 0xd0], 1
add ecx, 0x100
vmulps ymm3, ymm2, ymm0
vmulps ymm5, ymm1, ymm4
vmulps ymm0, ymm1, ymm0
vmulps ymm2, ymm2, ymm4
vaddps ymm3, ymm3, ymm5
vmovups ymm5, ymmword [esp]
vsubps ymm1, ymm0, ymm2
vaddps ymm4, ymm7, ymm3
vsubps ymm7, ymm7, ymm3
vaddps ymm0, ymm6, ymm1
vsubps ymm6, ymm6, ymm1
vmovups xmm1, xmmword [edx]
vmovups xmm2, xmmword [edx + 0x10]
vaddps ymm3, ymm5, ymm4
vmovups ymmword [esp + 0xa0], ymm6
vmovups ymmword [esp + 0x80], ymm7
vinsertf128 ymm6, ymm1, xmmword [edx + 0x20], 1
vmovups ymmword [esp + 0xc0], ymm6
vinsertf128 ymm7, ymm2, xmmword [edx + 0x30], 1
add edx, 0x40
vaddps ymm2, ymm3, ymm6
vmovups ymm3, ymmword [esp + 0x20]
vmovups ymmword [esp + 0xe0], ymm7
vaddps ymm1, ymm3, ymm0
vaddps ymm7, ymm1, ymm7
vunpcklps ymm1, ymm2, ymm7
vunpckhps ymm2, ymm2, ymm7
vmovups xmmword [eax], xmm1
vmovups xmmword [eax + 0x10], xmm2
vextractf128 xmmword [eax + 0x20], ymm1, 1
vextractf128 xmmword [eax + 0x30], ymm2, 1
vbroadcastf128 ymm1, xmmword [0x103a2050]
vbroadcastf128 ymm6, xmmword [0x103a2060]
vmulps ymm7, ymm5, ymm1
vmulps ymm2, ymm4, ymm6
vmulps ymm5, ymm5, ymm6
vmulps ymm4, ymm4, ymm1
vaddps ymm7, ymm7, ymm2
vmulps ymm2, ymm3, ymm1
vmovups ymmword [esp + 0x100], ymm7
vmulps ymm7, ymm0, ymm6
vmulps ymm0, ymm0, ymm1
vaddps ymm2, ymm2, ymm7
vmulps ymm7, ymm3, ymm6
vmovups ymmword [esp + 0x120], ymm2
vaddps ymm2, ymm5, ymm4
vaddps ymm1, ymm7, ymm0
vmovups ymm5, ymmword [esp + 0x40]
vmovups ymm7, ymmword [esp + 0x80]
vmovups ymmword [esp + 0x140], ymm2
vmovups ymmword [esp + 0x160], ymm1
vbroadcastf128 ymm2, xmmword [0x103a20a0]
vbroadcastf128 ymm1, xmmword [0x103a20b0]
vmulps ymm3, ymm5, ymm2
vmulps ymm4, ymm7, ymm1
vmulps ymm5, ymm5, ymm1
vmulps ymm7, ymm7, ymm2
vaddps ymm6, ymm3, ymm4
vmovups ymm3, ymmword [esp + 0x60]
vmovups ymm4, ymmword [esp + 0xa0]
vmovups ymmword [esp + 0x180], ymm6
vsubps ymm7, ymm5, ymm7
vmulps ymm0, ymm3, ymm2
vmulps ymm6, ymm4, ymm1
vmulps ymm1, ymm3, ymm1
vmulps ymm2, ymm4, ymm2
vmovups ymm5, ymmword [esp + 0xe0]
vmovups ymm4, ymmword [esp + 0xc0]
vmovups ymmword [esp + 0x1a0], ymm7
vsubps ymm3, ymm1, ymm2
vaddps ymm6, ymm0, ymm6
vaddps ymm7, ymm5, ymmword [esp + 0x120]
vaddps ymm1, ymm5, ymmword [esp + 0x160]
vaddps ymm0, ymm4, ymmword [esp + 0x100]
vaddps ymm4, ymm4, ymmword [esp + 0x140]
vmovups ymm5, ymmword [esp + 0x180]
vmovups ymmword [esp + 0x1c0], ymm1
vaddps ymm2, ymm0, ymm6
vsubps ymm1, ymm7, ymm5
vsubps ymm0, ymm0, ymm6
vaddps ymm6, ymm7, ymm5
vunpcklps ymm7, ymm2, ymm1
vunpckhps ymm2, ymm2, ymm1
vunpcklps ymm5, ymm0, ymm6
vunpckhps ymm1, ymm0, ymm6
nop
vmovups ymm0, ymmword [esp + 0x1c0]
vmovups ymm6, ymmword [esp + 0x1a0]
vmovups xmmword [eax + ebx*8], xmm7
vmovups xmmword [eax + ebx*8 + 0x10], xmm2
vextractf128 xmmword [eax + ebx*8 + 0x20], ymm7, 1
vextractf128 xmmword [eax + ebx*8 + 0x30], ymm2, 1
vaddps ymm2, ymm4, ymm3
vsubps ymm7, ymm0, ymm6
vmovups xmmword [eax + edi + 0x10], xmm1
vextractf128 xmmword [eax + edi + 0x30], ymm1, 1
vsubps ymm1, ymm4, ymm3
vaddps ymm3, ymm0, ymm6
vunpcklps ymm0, ymm2, ymm7
vunpckhps ymm2, ymm2, ymm7
vunpcklps ymm4, ymm1, ymm3
vunpckhps ymm1, ymm1, ymm3
vmovups xmmword [eax + edi], xmm5
vextractf128 xmmword [eax + edi + 0x20], ymm5, 1
mov edi, dword [esp + 0x1ec]
vmovups xmmword [eax + edi], xmm0
vmovups xmmword [eax + edi + 0x10], xmm2
vextractf128 xmmword [eax + edi + 0x20], ymm0, 1
vextractf128 xmmword [eax + edi + 0x30], ymm2, 1
vmovups xmmword [eax + esi*8], xmm4
vmovups xmmword [eax + esi*8 + 0x10], xmm1
vextractf128 xmmword [eax + esi*8 + 0x20], ymm4, 1
vextractf128 xmmword [eax + esi*8 + 0x30], ymm1, 1
add eax, 0x40
mov esi, dword [esp + 0x1e8]
add esi, 8
cmp esi, dword [esp + 0x1e0]
jl 0x10157255
test bl, 4
je 0x10158862
mov edi, ebx
lea esi, [ebx + ebx*2]
shl edi, 4
vmovups xmm1, xmmword [edx + ebx*8 + 0x10]
vmovups xmm3, xmmword [edx + ebx*8]
vmovups xmm0, xmmword [ecx]
vmovups xmm7, xmmword [ecx + 0x10]
mov dword [esp + 0x20], edi
vinsertf128 ymm5, ymm1, xmmword [edi + edx + 0x10], 1
vinsertf128 ymm6, ymm3, xmmword [edi + edx], 1
mov edi, ebx
shl edi, 5
vinsertf128 ymm2, ymm0, xmmword [ecx + 0x20], 1
vinsertf128 ymm1, ymm7, xmmword [ecx + 0x30], 1
vmulps ymm4, ymm6, ymm2
vmulps ymm3, ymm5, ymm1
vmulps ymm2, ymm5, ymm2
vmulps ymm5, ymm6, ymm1
vmovups xmm6, xmmword [edi + edx]
vaddps ymm0, ymm4, ymm3
vmovups xmm3, xmmword [ecx + 0x60]
vmovups xmm1, xmmword [ecx + 0x70]
vsubps ymm2, ymm2, ymm5
vmovups xmm5, xmmword [edi + edx + 0x10]
vinsertf128 ymm4, ymm6, xmmword [edx + esi*8], 1
vinsertf128 ymm7, ymm5, xmmword [edx + esi*8 + 0x10], 1
vinsertf128 ymm3, ymm3, xmmword [ecx + 0x40], 1
vinsertf128 ymm6, ymm1, xmmword [ecx + 0x50], 1
vmulps ymm5, ymm4, ymm3
vmulps ymm1, ymm7, ymm6
vmulps ymm7, ymm7, ymm3
vmulps ymm4, ymm4, ymm6
vaddps ymm1, ymm5, ymm1
vsubps ymm3, ymm7, ymm4
vaddps ymm5, ymm0, ymm1
vsubps ymm4, ymm0, ymm1
vaddps ymm6, ymm2, ymm3
vsubps ymm2, ymm2, ymm3
vperm2f128 ymm3, ymm5, ymm6, 0x20
vperm2f128 ymm0, ymm5, ymm6, 0x31
vmovups xmm5, xmmword [edx]
vaddps ymm1, ymm3, ymm0
vperm2f128 ymm6, ymm2, ymm4, 0x20
vperm2f128 ymm4, ymm2, ymm4, 0x31
vinsertf128 ymm7, ymm5, xmmword [edx + 0x10], 1
vaddps ymm2, ymm1, ymm7
vmovups ymmword [esp], ymm7
vperm2f128 ymm5, ymm2, ymm2, 0x31
vunpcklps ymm1, ymm2, ymm5
vunpckhps ymm7, ymm2, ymm5
mov edx, dword [esp + 0x20]
vmovups xmmword [eax], xmm1
vmovups xmmword [eax + 0x10], xmm7
vbroadcastf128 ymm1, xmmword [0x103a2050]
vbroadcastf128 ymm5, xmmword [0x103a2060]
vmulps ymm2, ymm3, ymm1
vmulps ymm7, ymm0, ymm5
vmulps ymm3, ymm3, ymm5
vmulps ymm0, ymm0, ymm1
vaddps ymm2, ymm2, ymm7
vaddps ymm5, ymm3, ymm0
vmovups xmm3, xmmword [0x103a20c0]
vmovups xmm0, xmmword [0x103a20d0]
vinsertf128 ymm1, ymm3, xmmword [0x103a20a0], 1
vmulps ymm7, ymm6, ymm1
vmulps ymm1, ymm4, ymm1
vinsertf128 ymm3, ymm0, xmmword [0x103a20b0], 1
vmulps ymm0, ymm4, ymm3
vmulps ymm6, ymm6, ymm3
vmovups ymm4, ymmword [esp]
vaddps ymm7, ymm7, ymm0
vsubps ymm1, ymm6, ymm1
vaddps ymm6, ymm2, ymm4
vaddps ymm5, ymm5, ymm4
vsubps ymm0, ymm6, ymm7
vaddps ymm7, ymm6, ymm7
vsubps ymm6, ymm5, ymm1
vaddps ymm5, ymm5, ymm1
vperm2f128 ymm2, ymm0, ymm0, 0x31
vperm2f128 ymm3, ymm7, ymm7, 0x31
vunpcklps ymm4, ymm0, ymm2
vunpckhps ymm0, ymm0, ymm2
vunpcklps ymm1, ymm7, ymm3
vunpckhps ymm3, ymm7, ymm3
vperm2f128 ymm7, ymm6, ymm6, 0x31
vunpckhps ymm2, ymm6, ymm7
vmovups xmmword [eax + ebx*8 + 0x10], xmm0
vperm2f128 ymm0, ymm5, ymm5, 0x31
vmovups xmmword [eax + ebx*8], xmm4
vunpckhps ymm4, ymm5, ymm0
vmovups xmmword [edi + eax], xmm1
vunpcklps ymm1, ymm6, ymm7
vmovups xmmword [edi + eax + 0x10], xmm3
vunpcklps ymm3, ymm5, ymm0
vmovups xmmword [edx + eax], xmm1
vmovups xmmword [edx + eax + 0x10], xmm2
vmovups xmmword [eax + esi*8], xmm3
vmovups xmmword [eax + esi*8 + 0x10], xmm4
jmp 0x10158862
cmp ebx, 4
jne 0x10157a3b
test esi, esi
jle 0x10158862
vmovups xmm0, xmmword [0x103a20c0]
vmovups xmm1, xmmword [0x103a20d0]
xor ebx, ebx
vinsertf128 ymm1, ymm1, xmmword [0x103a20b0], 1
vinsertf128 ymm0, ymm0, xmmword [0x103a20a0], 1
vmovups ymmword [esp], ymm0
vmovups ymmword [esp + 0x20], ymm1
vmovups xmm5, xmmword [edx + 0x30]
vmovups xmm7, xmmword [edx + 0x20]
vmovups xmm0, xmmword [ecx]
vmovups xmm6, xmmword [ecx + 0x10]
inc ebx
vinsertf128 ymm3, ymm5, xmmword [edx + 0x50], 1
vinsertf128 ymm1, ymm7, xmmword [edx + 0x40], 1
vinsertf128 ymm2, ymm0, xmmword [ecx + 0x20], 1
vinsertf128 ymm5, ymm6, xmmword [ecx + 0x30], 1
vmulps ymm4, ymm1, ymm2
vmulps ymm7, ymm3, ymm5
vmulps ymm2, ymm3, ymm2
vmulps ymm3, ymm1, ymm5
vmovups xmm5, xmmword [ecx + 0x60]
vaddps ymm0, ymm4, ymm7
vmovups xmm7, xmmword [edx + 0x90]
vmovups xmm1, xmmword [edx + 0x80]
vsubps ymm2, ymm2, ymm3
vmovups xmm3, xmmword [ecx + 0x70]
vinsertf128 ymm6, ymm7, xmmword [edx + 0x70], 1
vinsertf128 ymm4, ymm1, xmmword [edx + 0x60], 1
vinsertf128 ymm5, ymm5, xmmword [ecx + 0x40], 1
vinsertf128 ymm7, ymm3, xmmword [ecx + 0x50], 1
vmulps ymm1, ymm4, ymm5
vmulps ymm3, ymm6, ymm7
vmulps ymm6, ymm6, ymm5
vmulps ymm4, ymm4, ymm7
vaddps ymm1, ymm1, ymm3
vsubps ymm5, ymm6, ymm4
vaddps ymm4, ymm0, ymm1
vsubps ymm7, ymm0, ymm1
vaddps ymm6, ymm2, ymm5
vsubps ymm2, ymm2, ymm5
vperm2f128 ymm3, ymm4, ymm6, 0x20
vperm2f128 ymm0, ymm4, ymm6, 0x31
vperm2f128 ymm4, ymm2, ymm7, 0x20
vperm2f128 ymm5, ymm2, ymm7, 0x31
vmovups xmm7, xmmword [edx]
vaddps ymm6, ymm3, ymm0
vinsertf128 ymm2, ymm7, xmmword [edx + 0x10], 1
add edx, 0xa0
vaddps ymm1, ymm6, ymm2
vmovups ymmword [esp + 0x40], ymm2
vmovups xmmword [eax], xmm1
vextractf128 xmmword [eax + 0x10], ymm1, 1
vbroadcastf128 ymm7, xmmword [0x103a2050]
vbroadcastf128 ymm1, xmmword [0x103a2060]
vmulps ymm6, ymm3, ymm7
vmulps ymm2, ymm0, ymm1
vmulps ymm3, ymm3, ymm1
vmulps ymm0, ymm0, ymm7
vaddps ymm6, ymm6, ymm2
nop
vmovups ymm2, ymmword [esp]
vaddps ymm0, ymm3, ymm0
vmovups ymm3, ymmword [esp + 0x20]
vmulps ymm7, ymm4, ymm2
vmulps ymm1, ymm5, ymm3
vmulps ymm4, ymm4, ymm3
vmulps ymm5, ymm5, ymm2
vaddps ymm7, ymm7, ymm1
vmovups ymm1, ymmword [esp + 0x40]
vsubps ymm5, ymm4, ymm5
vaddps ymm2, ymm6, ymm1
vaddps ymm0, ymm0, ymm1
vsubps ymm3, ymm2, ymm7
vaddps ymm7, ymm2, ymm7
vsubps ymm6, ymm0, ymm5
vaddps ymm0, ymm0, ymm5
vmovups xmmword [eax + 0x20], xmm3
vmovups xmmword [eax + 0x40], xmm6
vmovups xmmword [eax + 0x60], xmm0
vmovups xmmword [eax + 0x80], xmm7
vextractf128 xmmword [eax + 0x30], ymm3, 1
vextractf128 xmmword [eax + 0x50], ymm6, 1
vextractf128 xmmword [eax + 0x70], ymm0, 1
vextractf128 xmmword [eax + 0x90], ymm7, 1
add eax, 0xa0
cmp ebx, esi
jl 0x1015789f
jmp 0x10158862
cmp ebx, 5
jne 0x10157d4b
test esi, esi
jle 0x10158862
vmovups xmm0, xmmword [0x103a2050]
xor ebx, ebx
vmovups xmm1, xmmword [0x103a2060]
vmovups xmm2, xmmword [0x103a2070]
vmovups xmm3, xmmword [0x103a2080]
vmovups ymmword [esp], ymm3
vmovups ymmword [esp + 0x20], ymm2
vmovups ymmword [esp + 0x40], ymm1
vmovups ymmword [esp + 0x60], ymm0
vmovsd xmm1, qword [edx + 0x28]
inc ebx
vmovsd xmm0, qword [edx + 0x50]
vmovsd xmm2, qword [edx + 0x78]
vmovsd xmm7, qword [edx + 0xa0]
vmovsd xmm5, qword [edx]
vaddps ymm3, ymm1, ymm7
vsubps ymm6, ymm1, ymm7
vaddps ymm7, ymm0, ymm2
vsubps ymm4, ymm0, ymm2
vshufps ymm0, ymm6, ymm6, 0xb1
vaddps ymm6, ymm3, ymm7
vshufps ymm1, ymm4, ymm4, 0xb1
vaddps ymm4, ymm6, ymm5
vmovups ymm6, ymmword [esp + 0x40]
vmovups ymmword [esp + 0x80], ymm5
vmulps ymm5, ymm7, ymm6
vmovlps qword [eax], xmm4
vmovups ymm4, ymmword [esp + 0x60]
vmulps ymm2, ymm3, ymm4
vmulps ymm3, ymm3, ymm6
vmulps ymm7, ymm7, ymm4
vaddps ymm2, ymm2, ymm5
vaddps ymm5, ymm3, ymm7
vmovups ymm3, ymmword [esp + 0x20]
vmovups ymm7, ymmword [esp]
vmulps ymm6, ymm0, ymm3
vmulps ymm4, ymm1, ymm7
vmulps ymm0, ymm0, ymm7
vmulps ymm3, ymm1, ymm3
vmovups ymm1, ymmword [esp + 0x80]
vaddps ymm4, ymm6, ymm4
vsubps ymm6, ymm0, ymm3
vaddps ymm0, ymm2, ymm1
vaddps ymm7, ymm5, ymm1
vsubps ymm5, ymm0, ymm4
vaddps ymm3, ymm0, ymm4
vsubps ymm4, ymm7, ymm6
vaddps ymm6, ymm7, ymm6
vmovlps qword [eax + 0x28], xmm5
vmovlps qword [eax + 0x50], xmm4
vmovlps qword [eax + 0x78], xmm6
vmovlps qword [eax + 0xa0], xmm3
vmovups xmm0, xmmword [edx + 0x58]
vmovups xmm2, xmmword [edx + 0x30]
vmovups xmm7, xmmword [edx + 0x80]
vmovups xmm1, xmmword [edx + 0xa8]
vinsertf128 ymm3, ymm0, xmmword [edx + 0x68], 1
vmovups xmm0, xmmword [ecx + 0x20]
vinsertf128 ymm5, ymm2, xmmword [edx + 0x40], 1
vinsertf128 ymm2, ymm0, xmmword [ecx + 0x60], 1
vinsertf128 ymm4, ymm7, xmmword [edx + 0x90], 1
vmovsldup ymm7, ymm2
vmulps ymm0, ymm7, ymm5
vshufps ymm7, ymm5, ymm5, 0xb1
vmovshdup ymm2, ymm2
vbroadcastf128 ymm5, xmmword [0x103a2090]
vinsertf128 ymm6, ymm1, xmmword [edx + 0xb8], 1
vxorps ymm1, ymm7, ymm5
vmulps ymm2, ymm2, ymm1
vaddps ymm2, ymm0, ymm2
vmovups xmm0, xmmword [ecx + 0x30]
vinsertf128 ymm1, ymm0, xmmword [ecx + 0x70], 1
vmovsldup ymm7, ymm1
vmulps ymm0, ymm7, ymm3
vshufps ymm3, ymm3, ymm3, 0xb1
vmovshdup ymm1, ymm1
vxorps ymm7, ymm3, ymm5
vmulps ymm3, ymm1, ymm7
vaddps ymm3, ymm0, ymm3
vmovups xmm0, xmmword [ecx + 0x40]
vinsertf128 ymm0, ymm0, xmmword [ecx + 0x80], 1
vmovsldup ymm1, ymm0
vmulps ymm7, ymm1, ymm4
vshufps ymm4, ymm4, ymm4, 0xb1
vmovshdup ymm0, ymm0
vxorps ymm1, ymm4, ymm5
vmulps ymm0, ymm0, ymm1
vmovups xmm4, xmmword [ecx + 0x50]
vaddps ymm7, ymm7, ymm0
vinsertf128 ymm1, ymm4, xmmword [ecx + 0x90], 1
vmovsldup ymm0, ymm1
vmulps ymm4, ymm0, ymm6
vshufps ymm6, ymm6, ymm6, 0xb1
vmovshdup ymm1, ymm1
vxorps ymm5, ymm6, ymm5
vmulps ymm0, ymm1, ymm5
vaddps ymm5, ymm3, ymm7
vaddps ymm1, ymm4, ymm0
vsubps ymm0, ymm3, ymm7
vmovups xmm3, xmmword [edx + 8]
vaddps ymm6, ymm2, ymm1
vsubps ymm2, ymm2, ymm1
vaddps ymm1, ymm6, ymm5
vshufps ymm4, ymm2, ymm2, 0xb1
vshufps ymm7, ymm0, ymm0, 0xb1
nop
vinsertf128 ymm2, ymm3, xmmword [edx + 0x18], 1
add edx, 0xc8
vaddps ymm0, ymm1, ymm2
vmovups ymmword [esp + 0xa0], ymm2
vmovups xmmword [eax + 8], xmm0
vextractf128 xmmword [eax + 0x18], ymm0, 1
vbroadcastf128 ymm0, xmmword [0x103a2050]
vbroadcastf128 ymm2, xmmword [0x103a2060]
vmulps ymm3, ymm6, ymm0
vmulps ymm1, ymm5, ymm2
vmulps ymm6, ymm6, ymm2
vmulps ymm5, ymm5, ymm0
vaddps ymm1, ymm3, ymm1
vaddps ymm3, ymm6, ymm5
vbroadcastf128 ymm6, xmmword [0x103a2070]
vbroadcastf128 ymm5, xmmword [0x103a2080]
vmulps ymm2, ymm4, ymm6
vmulps ymm0, ymm7, ymm5
vmulps ymm4, ymm4, ymm5
vmulps ymm7, ymm7, ymm6
vaddps ymm0, ymm2, ymm0
vmovups ymm2, ymmword [esp + 0xa0]
vsubps ymm7, ymm4, ymm7
vaddps ymm1, ymm1, ymm2
vaddps ymm3, ymm3, ymm2
vsubps ymm4, ymm1, ymm0
vaddps ymm0, ymm1, ymm0
vsubps ymm5, ymm3, ymm7
vaddps ymm6, ymm3, ymm7
vmovups xmmword [eax + 0x30], xmm4
vmovups xmmword [eax + 0x58], xmm5
vmovups xmmword [eax + 0x80], xmm6
vmovups xmmword [eax + 0xa8], xmm0
vextractf128 xmmword [eax + 0x40], ymm4, 1
vextractf128 xmmword [eax + 0x68], ymm5, 1
vextractf128 xmmword [eax + 0x90], ymm6, 1
vextractf128 xmmword [eax + 0xb8], ymm0, 1
add eax, 0xc8
cmp ebx, esi
jl 0x10157a85
jmp 0x10158862
test bl, 3
jne 0x101583b0
test esi, esi
jle 0x10158862
mov edi, ebx
shl edi, 5
mov dword [esp + 0x214], edi
mov edi, ebx
shl edi, 4
mov dword [esp + 0x210], edi
lea edi, [ebx + ebx*2]
mov dword [esp + 0x20c], edi
lea edi, [ebx - 4]
mov dword [esp + 0x208], edi
mov edi, ebx
mov dword [esp + 0x200], 0
and edi, 4
mov dword [esp + 0x204], edi
mov esi, dword [esp + 0x200]
mov ecx, dword [ebp + 0x18]
cmp dword [esp + 0x208], 0
jle 0x101581c3
mov dword [esp + 0x200], esi
xor edi, edi
vmovups xmm7, xmmword [edx + ebx*8 + 0x10]
vmovups xmm0, xmmword [edx + ebx*8]
vmovups xmm2, xmmword [ecx]
vmovups xmm4, xmmword [ecx + 0x10]
mov dword [esp + 0x218], edi
mov edi, dword [esp + 0x214]
mov esi, dword [esp + 0x210]
vinsertf128 ymm3, ymm7, xmmword [edx + ebx*8 + 0x30], 1
vinsertf128 ymm6, ymm0, xmmword [edx + ebx*8 + 0x20], 1
vinsertf128 ymm2, ymm2, xmmword [ecx + 0x80], 1
vinsertf128 ymm7, ymm4, xmmword [ecx + 0x90], 1
vmulps ymm5, ymm6, ymm2
vmulps ymm1, ymm3, ymm7
vmulps ymm2, ymm3, ymm2
vmulps ymm3, ymm6, ymm7
vmovups xmm6, xmmword [edx + edi]
vmovups xmm4, xmmword [edx + edi + 0x10]
vsubps ymm7, ymm2, ymm3
vmovups xmm2, xmmword [ecx + 0x60]
vmovups xmm3, xmmword [ecx + 0x70]
vaddps ymm0, ymm5, ymm1
vinsertf128 ymm1, ymm6, xmmword [edx + edi + 0x20], 1
vinsertf128 ymm5, ymm4, xmmword [edx + edi + 0x30], 1
vinsertf128 ymm4, ymm2, xmmword [ecx + 0xe0], 1
vinsertf128 ymm6, ymm3, xmmword [ecx + 0xf0], 1
vmulps ymm2, ymm1, ymm4
vmulps ymm3, ymm5, ymm6
vmulps ymm5, ymm5, ymm4
vmulps ymm1, ymm1, ymm6
vaddps ymm2, ymm2, ymm3
vsubps ymm4, ymm5, ymm1
vaddps ymm3, ymm0, ymm2
vsubps ymm0, ymm0, ymm2
vaddps ymm6, ymm7, ymm4
vsubps ymm7, ymm7, ymm4
vmovups xmm2, xmmword [edx + esi + 0x10]
vmovups ymmword [esp + 0x40], ymm6
vmovups ymmword [esp + 0x80], ymm7
vmovups xmm7, xmmword [edx + esi]
vmovups xmm6, xmmword [ecx + 0x20]
vmovups ymmword [esp + 0x60], ymm0
vmovups xmm0, xmmword [ecx + 0x30]
vmovups ymmword [esp + 0x20], ymm3
vinsertf128 ymm3, ymm7, xmmword [edx + esi + 0x20], 1
vinsertf128 ymm1, ymm6, xmmword [ecx + 0xa0], 1
vmulps ymm5, ymm3, ymm1
vinsertf128 ymm6, ymm0, xmmword [ecx + 0xb0], 1
vinsertf128 ymm7, ymm2, xmmword [edx + esi + 0x30], 1
vmulps ymm4, ymm7, ymm1
vmulps ymm3, ymm3, ymm6
vmulps ymm2, ymm7, ymm6
vmovups xmm6, xmmword [ecx + 0x40]
vmovups xmm0, xmmword [ecx + 0x50]
vsubps ymm1, ymm4, ymm3
vaddps ymm2, ymm5, ymm2
mov esi, dword [esp + 0x20c]
nop dword [eax]
vmovups xmm7, xmmword [edx + esi*8]
vmovups xmm3, xmmword [edx + esi*8 + 0x10]
vinsertf128 ymm4, ymm6, xmmword [ecx + 0xc0], 1
vinsertf128 ymm6, ymm0, xmmword [ecx + 0xd0], 1
add ecx, 0x100
vinsertf128 ymm7, ymm7, xmmword [edx + esi*8 + 0x20], 1
vinsertf128 ymm5, ymm3, xmmword [edx + esi*8 + 0x30], 1
vmulps ymm3, ymm7, ymm4
vmulps ymm0, ymm5, ymm6
vmulps ymm5, ymm5, ymm4
vmulps ymm4, ymm7, ymm6
vaddps ymm3, ymm3, ymm0
vmovups ymm0, ymmword [esp + 0x20]
vsubps ymm7, ymm5, ymm4
vaddps ymm4, ymm2, ymm3
vsubps ymm2, ymm2, ymm3
vaddps ymm5, ymm1, ymm7
vsubps ymm1, ymm1, ymm7
vmovups xmm7, xmmword [edx]
vaddps ymm3, ymm0, ymm4
vmovups ymmword [esp + 0xa0], ymm2
vmovups xmm2, xmmword [edx + 0x10]
vmovups ymmword [esp + 0xc0], ymm1
vinsertf128 ymm6, ymm7, xmmword [edx + 0x20], 1
vaddps ymm7, ymm3, ymm6
vmovups ymm3, ymmword [esp + 0x40]
vmovups ymmword [esp + 0xe0], ymm6
vaddps ymm1, ymm3, ymm5
vinsertf128 ymm2, ymm2, xmmword [edx + 0x30], 1
add edx, 0x40
vmovups ymmword [esp + 0x100], ymm2
vaddps ymm2, ymm1, ymm2
vmovups xmmword [eax], xmm7
vmovups xmmword [eax + 0x10], xmm2
vextractf128 xmmword [eax + 0x20], ymm7, 1
vextractf128 xmmword [eax + 0x30], ymm2, 1
vbroadcastf128 ymm7, xmmword [0x103a2050]
vbroadcastf128 ymm6, xmmword [0x103a2060]
vmulps ymm1, ymm0, ymm7
vmulps ymm2, ymm4, ymm6
vmulps ymm0, ymm0, ymm6
vmulps ymm4, ymm4, ymm7
vaddps ymm1, ymm1, ymm2
vmulps ymm2, ymm3, ymm7
vmulps ymm3, ymm3, ymm6
vmovups ymmword [esp + 0x120], ymm1
vmulps ymm1, ymm5, ymm6
vmulps ymm5, ymm5, ymm7
vaddps ymm2, ymm2, ymm1
vaddps ymm7, ymm3, ymm5
nop dword [eax]
vmovups ymm1, ymmword [esp + 0x60]
vmovups ymm5, ymmword [esp + 0xa0]
vmovups ymmword [esp + 0x140], ymm2
vmovups ymmword [esp + 0x180], ymm7
vaddps ymm2, ymm0, ymm4
vmovups ymmword [esp + 0x160], ymm2
vmovups ymm2, ymmword [esp + 0xc0]
vbroadcastf128 ymm4, xmmword [0x103a20a0]
vbroadcastf128 ymm3, xmmword [0x103a20b0]
vmulps ymm6, ymm1, ymm4
vmulps ymm0, ymm5, ymm3
vmulps ymm1, ymm1, ymm3
vmulps ymm5, ymm5, ymm4
vaddps ymm7, ymm6, ymm0
vmulps ymm0, ymm2, ymm3
vmulps ymm2, ymm2, ymm4
vmovups ymmword [esp + 0x1a0], ymm7
vmovups ymm7, ymmword [esp + 0x80]
vmulps ymm6, ymm7, ymm4
vmovups ymm4, ymmword [esp + 0xe0]
vmulps ymm3, ymm7, ymm3
vaddps ymm6, ymm6, ymm0
vsubps ymm0, ymm1, ymm5
vsubps ymm2, ymm3, ymm2
vaddps ymm3, ymm4, ymmword [esp + 0x160]
vmovups ymm1, ymmword [esp + 0x100]
vmovups ymm5, ymmword [esp + 0x1a0]
vmovups ymmword [esp + 0x1c0], ymm0
nop dword [eax]
vaddps ymm0, ymm4, ymmword [esp + 0x120]
vaddps ymm4, ymm1, ymmword [esp + 0x180]
vaddps ymm7, ymm1, ymmword [esp + 0x140]
vaddps ymm1, ymm0, ymm6
vsubps ymm0, ymm0, ymm6
vaddps ymm6, ymm7, ymm5
vmovups ymmword [esp + 0x1e0], ymm4
vsubps ymm4, ymm7, ymm5
vmovups ymm5, ymmword [esp + 0x1e0]
vmovups xmmword [eax + ebx*8], xmm1
vmovups xmmword [eax + ebx*8 + 0x10], xmm4
vextractf128 xmmword [eax + ebx*8 + 0x20], ymm1, 1
vextractf128 xmmword [eax + ebx*8 + 0x30], ymm4, 1
vaddps ymm1, ymm3, ymm2
vsubps ymm2, ymm3, ymm2
vmovups xmmword [eax + edi], xmm0
vextractf128 xmmword [eax + edi + 0x20], ymm0, 1
vmovups ymm0, ymmword [esp + 0x1c0]
vsubps ymm7, ymm5, ymm0
vaddps ymm3, ymm5, ymm0
vmovups xmmword [eax + edi + 0x10], xmm6
vextractf128 xmmword [eax + edi + 0x30], ymm6, 1
mov edi, dword [esp + 0x210]
vmovups xmmword [eax + edi], xmm1
vmovups xmmword [eax + edi + 0x10], xmm7
vextractf128 xmmword [eax + edi + 0x20], ymm1, 1
vextractf128 xmmword [eax + edi + 0x30], ymm7, 1
mov edi, dword [esp + 0x218]
add edi, 8
vmovups xmmword [eax + esi*8], xmm2
vmovups xmmword [eax + esi*8 + 0x10], xmm3
vextractf128 xmmword [eax + esi*8 + 0x20], ymm2, 1
vextractf128 xmmword [eax + esi*8 + 0x30], ymm3, 1
add eax, 0x40
cmp edi, dword [esp + 0x208]
jl 0x10157dc0
mov esi, dword [esp + 0x200]
cmp dword [esp + 0x204], 0
je 0x10158396
mov dword [esp + 0x200], esi
vmovups xmm4, xmmword [edx + ebx*8 + 0x10]
vmovups xmm6, xmmword [edx + ebx*8]
vmovups xmm3, xmmword [ecx]
vmovups xmm7, xmmword [ecx + 0x10]
mov esi, dword [esp + 0x210]
mov edi, dword [esp + 0x214]
vinsertf128 ymm5, ymm4, xmmword [edx + esi + 0x10], 1
vinsertf128 ymm2, ymm6, xmmword [edx + esi], 1
mov esi, dword [esp + 0x20c]
vinsertf128 ymm1, ymm3, xmmword [ecx + 0x20], 1
vinsertf128 ymm4, ymm7, xmmword [ecx + 0x30], 1
vmulps ymm0, ymm2, ymm1
vmulps ymm6, ymm5, ymm4
vmulps ymm1, ymm5, ymm1
vmulps ymm5, ymm2, ymm4
vmovups xmm4, xmmword [edx + edi + 0x10]
vaddps ymm0, ymm0, ymm6
vmovups xmm6, xmmword [edx + edi]
vsubps ymm2, ymm1, ymm5
vmovups xmm1, xmmword [ecx + 0x60]
vmovups xmm5, xmmword [ecx + 0x70]
vinsertf128 ymm7, ymm6, xmmword [edx + esi*8], 1
vinsertf128 ymm3, ymm4, xmmword [edx + esi*8 + 0x10], 1
vinsertf128 ymm4, ymm1, xmmword [ecx + 0x40], 1
vinsertf128 ymm6, ymm5, xmmword [ecx + 0x50], 1
vmulps ymm1, ymm7, ymm4
vmulps ymm5, ymm3, ymm6
vmulps ymm3, ymm3, ymm4
vmulps ymm7, ymm7, ymm6
vaddps ymm1, ymm1, ymm5
vsubps ymm4, ymm3, ymm7
vaddps ymm5, ymm0, ymm1
vsubps ymm6, ymm0, ymm1
vaddps ymm7, ymm2, ymm4
vsubps ymm2, ymm2, ymm4
vperm2f128 ymm3, ymm5, ymm7, 0x20
vperm2f128 ymm0, ymm5, ymm7, 0x31
vperm2f128 ymm5, ymm2, ymm6, 0x20
vperm2f128 ymm4, ymm2, ymm6, 0x31
vmovups xmm6, xmmword [edx]
vaddps ymm7, ymm3, ymm0
mov ecx, dword [esp + 0x210]
vinsertf128 ymm1, ymm6, xmmword [edx + 0x10], 1
add edx, 0x20
vaddps ymm2, ymm7, ymm1
vmovups ymmword [esp], ymm1
vmovups xmmword [eax], xmm2
vextractf128 xmmword [eax + 0x10], ymm2, 1
vbroadcastf128 ymm1, xmmword [0x103a2050]
vbroadcastf128 ymm6, xmmword [0x103a2060]
vmulps ymm7, ymm3, ymm1
vmulps ymm2, ymm0, ymm6
vmulps ymm3, ymm3, ymm6
vmulps ymm0, ymm0, ymm1
vaddps ymm7, ymm7, ymm2
vmovups xmm2, xmmword [0x103a20d0]
vaddps ymm6, ymm3, ymm0
vmovups xmm3, xmmword [0x103a20c0]
vinsertf128 ymm1, ymm3, xmmword [0x103a20a0], 1
vinsertf128 ymm2, ymm2, xmmword [0x103a20b0], 1
vmulps ymm0, ymm5, ymm1
vmulps ymm3, ymm4, ymm2
vmulps ymm5, ymm5, ymm2
vmulps ymm4, ymm4, ymm1
vaddps ymm3, ymm0, ymm3
vmovups ymm0, ymmword [esp]
vsubps ymm4, ymm5, ymm4
vaddps ymm1, ymm7, ymm0
vaddps ymm2, ymm6, ymm0
vsubps ymm5, ymm1, ymm3
vaddps ymm6, ymm1, ymm3
vsubps ymm3, ymm2, ymm4
vaddps ymm4, ymm2, ymm4
vmovups xmmword [eax + ebx*8], xmm5
vextractf128 xmmword [eax + ebx*8 + 0x10], ymm5, 1
vmovups xmmword [eax + ecx], xmm3
vextractf128 xmmword [eax + ecx + 0x10], ymm3, 1
vmovups xmmword [eax + esi*8], xmm4
vextractf128 xmmword [eax + esi*8 + 0x10], ymm4, 1
mov esi, dword [esp + 0x200]
vmovups xmmword [eax + edi], xmm6
vextractf128 xmmword [eax + edi + 0x10], ymm6, 1
add eax, 0x20
inc esi
mov ecx, dword [esp + 0x214]
add edx, ecx
add eax, ecx
cmp esi, dword [ebp + 0x14]
jl 0x10157da6
jmp 0x10158862
test esi, esi
jle 0x10158862
mov edi, ebx
and edi, 1
mov dword [esp + 0x4c], edi
lea edi, [ebx - 3]
mov dword [esp + 0x50], edi
mov edi, ebx
and edi, 2
mov dword [esp + 0x48], edi
mov edi, ebx
shl edi, 5
mov dword [esp + 4], edi
mov edi, ebx
shl edi, 4
mov dword [esp + 0x54], edi
lea edi, [ebx + ebx*2]
mov dword [esp], edi
lea edi, [ecx + 0x20]
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], edi
mov ebx, dword [esp]
mov esi, dword [esp + 4]
mov ecx, dword [ebp + 0x18]
cmp dword [esp + 0x4c], 0
je 0x101584e2
mov ecx, dword [ebp + 0x10]
mov edi, dword [esp + 0x54]
vmovsd xmm5, qword [edx + ebx*8]
vmovsd xmm4, qword [edx + ecx*8]
vmovsd xmm3, qword [edx + edi]
vmovsd xmm7, qword [edx + esi]
vmovsd xmm6, qword [edx]
add edx, 8
vaddps ymm0, ymm4, ymm7
vsubps ymm2, ymm4, ymm7
vaddps ymm1, ymm3, ymm5
vsubps ymm7, ymm3, ymm5
vshufps ymm4, ymm2, ymm2, 0xb1
vaddps ymm2, ymm0, ymm1
vshufps ymm3, ymm7, ymm7, 0xb1
vmovups xmm7, xmmword [0x103a2050]
vmovups ymmword [esp], ymm6
vaddps ymm6, ymm2, ymm6
vmovlps qword [eax], xmm6
vmovups xmm6, xmmword [0x103a2060]
vmulps ymm2, ymm0, ymm7
vmulps ymm5, ymm1, ymm6
vmulps ymm0, ymm0, ymm6
vmulps ymm1, ymm1, ymm7
vaddps ymm5, ymm2, ymm5
vaddps ymm2, ymm0, ymm1
vmovups xmm0, xmmword [0x103a2070]
vmovups xmm1, xmmword [0x103a2080]
vmulps ymm7, ymm4, ymm0
vmulps ymm6, ymm3, ymm1
vmulps ymm3, ymm3, ymm0
vaddps ymm6, ymm7, ymm6
vmulps ymm7, ymm4, ymm1
vmovups ymm4, ymmword [esp]
vsubps ymm7, ymm7, ymm3
vaddps ymm5, ymm5, ymm4
vaddps ymm2, ymm2, ymm4
vsubps ymm0, ymm5, ymm6
vsubps ymm1, ymm2, ymm7
vaddps ymm2, ymm2, ymm7
vaddps ymm6, ymm5, ymm6
vmovlps qword [eax + ecx*8], xmm0
mov ecx, dword [esp + 0x40]
vmovlps qword [eax + edi], xmm1
vmovlps qword [eax + ebx*8], xmm2
vmovlps qword [eax + esi], xmm6
add eax, 8
cmp dword [esp + 0x50], 0
jle 0x101586e9
xor edi, edi
mov dword [esp + 0x5c], edi
mov edi, dword [ebp + 0x10]
vmovups xmm6, xmmword [edx + ebx*8]
vmovups xmm3, xmmword [edx + edi*8]
vmovups xmm4, xmmword [ecx]
vmovups xmm5, xmmword [edx + esi]
mov dword [esp + 0x58], ecx
vinsertf128 ymm2, ymm3, xmmword [edx + edi*8 + 0x10], 1
mov edi, dword [esp + 0x54]
vmovups xmm1, xmmword [edx + edi]
vinsertf128 ymm0, ymm1, xmmword [edx + edi + 0x10], 1
vinsertf128 ymm1, ymm6, xmmword [edx + ebx*8 + 0x10], 1
vinsertf128 ymm6, ymm4, xmmword [ecx + 0x40], 1
vmovsldup ymm7, ymm6
vmulps ymm7, ymm7, ymm2
vmovshdup ymm6, ymm6
vinsertf128 ymm3, ymm5, xmmword [edx + esi + 0x10], 1
vshufps ymm5, ymm2, ymm2, 0xb1
vbroadcastf128 ymm2, xmmword [0x103a2090]
vxorps ymm5, ymm5, ymm2
vmulps ymm6, ymm6, ymm5
vaddps ymm6, ymm7, ymm6
vmovups xmm7, xmmword [ecx + 0x10]
vinsertf128 ymm5, ymm7, xmmword [ecx + 0x50], 1
vmovsldup ymm4, ymm5
vmulps ymm7, ymm4, ymm0
vshufps ymm0, ymm0, ymm0, 0xb1
vmovshdup ymm5, ymm5
vxorps ymm4, ymm0, ymm2
vmulps ymm5, ymm5, ymm4
vaddps ymm5, ymm7, ymm5
vmovups xmm7, xmmword [ecx + 0x20]
vinsertf128 ymm4, ymm7, xmmword [ecx + 0x60], 1
vmovsldup ymm0, ymm4
vmulps ymm7, ymm0, ymm1
vshufps ymm1, ymm1, ymm1, 0xb1
vmovshdup ymm4, ymm4
vxorps ymm1, ymm1, ymm2
vmulps ymm4, ymm4, ymm1
vaddps ymm4, ymm7, ymm4
vmovups xmm7, xmmword [ecx + 0x30]
vinsertf128 ymm1, ymm7, xmmword [ecx + 0x70], 1
vmovsldup ymm0, ymm1
vmulps ymm7, ymm0, ymm3
vshufps ymm3, ymm3, ymm3, 0xb1
vmovshdup ymm0, ymm1
vxorps ymm2, ymm3, ymm2
vmulps ymm3, ymm0, ymm2
vmovups xmm1, xmmword [edx]
vaddps ymm7, ymm7, ymm3
vsubps ymm3, ymm5, ymm4
vaddps ymm2, ymm6, ymm7
vsubps ymm6, ymm6, ymm7
vaddps ymm7, ymm5, ymm4
vshufps ymm4, ymm6, ymm6, 0xb1
vaddps ymm6, ymm2, ymm7
vshufps ymm5, ymm3, ymm3, 0xb1
nop
mov ecx, dword [ebp + 0x10]
vinsertf128 ymm0, ymm1, xmmword [edx + 0x10], 1
add edx, 0x20
vaddps ymm3, ymm6, ymm0
vmovups ymmword [esp + 0x60], ymm0
vmovups xmmword [eax], xmm3
vextractf128 xmmword [eax + 0x10], ymm3, 1
vbroadcastf128 ymm1, xmmword [0x103a2050]
vbroadcastf128 ymm3, xmmword [0x103a2060]
vmulps ymm6, ymm2, ymm1
vmulps ymm0, ymm7, ymm3
vmulps ymm2, ymm2, ymm3
vmulps ymm7, ymm7, ymm1
vaddps ymm6, ymm6, ymm0
vaddps ymm2, ymm2, ymm7
vbroadcastf128 ymm7, xmmword [0x103a2070]
vbroadcastf128 ymm0, xmmword [0x103a2080]
vmulps ymm1, ymm4, ymm7
vmulps ymm3, ymm5, ymm0
vmulps ymm5, ymm5, ymm7
vmovups ymm7, ymmword [esp + 0x60]
vmulps ymm4, ymm4, ymm0
vaddps ymm1, ymm1, ymm3
vaddps ymm0, ymm6, ymm7
vsubps ymm3, ymm4, ymm5
vaddps ymm2, ymm2, ymm7
vsubps ymm4, ymm0, ymm1
vaddps ymm7, ymm0, ymm1
vsubps ymm1, ymm2, ymm3
vaddps ymm3, ymm2, ymm3
vmovups xmmword [eax + ecx*8], xmm4
vextractf128 xmmword [eax + ecx*8 + 0x10], ymm4, 1
mov ecx, dword [esp + 0x58]
add ecx, 0x80
vmovups xmmword [eax + edi], xmm1
vextractf128 xmmword [eax + edi + 0x10], ymm1, 1
nop
mov edi, dword [esp + 0x5c]
add edi, 4
vmovups xmmword [eax + ebx*8], xmm3
vextractf128 xmmword [eax + ebx*8 + 0x10], ymm3, 1
vmovups xmmword [eax + esi], xmm7
vextractf128 xmmword [eax + esi + 0x10], ymm7, 1
add eax, 0x20
cmp edi, dword [esp + 0x50]
jl 0x101584ef
cmp dword [esp + 0x48], 0
je 0x1015884c
mov edi, dword [ebp + 0x10]
vmovsldup xmm6, xmmword [ecx]
vmovups xmm2, xmmword [0x103a2090]
vmovups xmm5, xmmword [edx + edi*8]
vmovups xmm1, xmmword [edx + ebx*8]
vmovups xmm3, xmmword [edx + esi]
mov edi, dword [esp + 0x54]
vshufps ymm4, ymm5, ymm5, 0xb1
vmovups xmm0, xmmword [edx + edi]
vmulps ymm7, ymm6, ymm5
vmovshdup xmm6, xmmword [ecx]
vxorps ymm5, ymm4, ymm2
vmulps ymm6, ymm6, ymm5
vmovshdup xmm5, xmmword [ecx + 0x10]
vaddps ymm6, ymm7, ymm6
vmovsldup xmm7, xmmword [ecx + 0x10]
vmulps ymm7, ymm7, ymm0
vshufps ymm0, ymm0, ymm0, 0xb1
vxorps ymm4, ymm0, ymm2
vmulps ymm0, ymm5, ymm4
vmovshdup xmm4, xmmword [ecx + 0x20]
vaddps ymm5, ymm7, ymm0
vmovsldup xmm7, xmmword [ecx + 0x20]
vmulps ymm0, ymm7, ymm1
vshufps ymm1, ymm1, ymm1, 0xb1
vxorps ymm1, ymm1, ymm2
vmulps ymm7, ymm4, ymm1
vaddps ymm4, ymm0, ymm7
vmovsldup xmm0, xmmword [ecx + 0x30]
vmovshdup xmm7, xmmword [ecx + 0x30]
mov ecx, dword [ebp + 0x10]
vmulps ymm1, ymm0, ymm3
vshufps ymm3, ymm3, ymm3, 0xb1
vxorps ymm2, ymm3, ymm2
vmulps ymm3, ymm7, ymm2
vaddps ymm7, ymm5, ymm4
vaddps ymm1, ymm1, ymm3
vmovups xmm3, xmmword [edx]
vaddps ymm2, ymm6, ymm1
vsubps ymm0, ymm6, ymm1
vsubps ymm6, ymm5, ymm4
vaddps ymm1, ymm2, ymm7
vshufps ymm4, ymm0, ymm0, 0xb1
add edx, 0x10
vshufps ymm5, ymm6, ymm6, 0xb1
vaddps ymm0, ymm1, ymm3
vmovups xmm1, xmmword [0x103a2050]
vmovups ymmword [esp + 0x20], ymm3
vmovups xmm3, xmmword [0x103a2060]
vmovups xmmword [eax], xmm0
vmulps ymm0, ymm2, ymm1
vmulps ymm6, ymm7, ymm3
vmulps ymm2, ymm2, ymm3
vmulps ymm7, ymm7, ymm1
vmovups xmm1, xmmword [0x103a2080]
vaddps ymm6, ymm0, ymm6
vaddps ymm7, ymm2, ymm7
vmovups xmm2, xmmword [0x103a2070]
vmulps ymm3, ymm4, ymm2
vmulps ymm0, ymm5, ymm1
vmulps ymm4, ymm4, ymm1
vmulps ymm5, ymm5, ymm2
vaddps ymm0, ymm3, ymm0
vmovups ymm3, ymmword [esp + 0x20]
vsubps ymm1, ymm4, ymm5
vaddps ymm2, ymm6, ymm3
vaddps ymm4, ymm7, ymm3
vsubps ymm5, ymm2, ymm0
vaddps ymm3, ymm2, ymm0
vsubps ymm0, ymm4, ymm1
vaddps ymm1, ymm4, ymm1
vmovups xmmword [eax + ecx*8], xmm5
vmovups xmmword [eax + edi], xmm0
vmovups xmmword [eax + ebx*8], xmm1
vmovups xmmword [eax + esi], xmm3
add eax, 0x10
mov ecx, dword [esp + 0x44]
add edx, esi
inc ecx
add eax, esi
mov dword [esp + 0x44], ecx
cmp ecx, dword [ebp + 0x14]
jl 0x101583ff
vzeroupper
add esp, 0x234
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test esi, esi
jle 0x10158862
vmovups xmm1, xmmword [0x103a2090]
xor edi, edi
vmovups xmm2, xmmword [0x103a2050]
xor ebx, ebx
vmovups xmm3, xmmword [0x103a2060]
vmovups xmm4, xmmword [0x103a2070]
vmovups xmm0, xmmword [0x103a2080]
vmovups ymmword [esp], ymm0
vmovups ymmword [esp + 0x20], ymm4
vmovups ymmword [esp + 0x40], ymm3
vmovups ymmword [esp + 0x60], ymm2
vmovups ymmword [esp + 0x80], ymm1
vmovups xmm2, xmmword [ebx + edx + 0x10]
vmovups xmm0, xmmword [ebx + edx + 0x20]
vmovups xmm1, xmmword [ebx + edx + 0x30]
vmovups xmm3, xmmword [ebx + edx + 0x40]
vmovsldup xmm6, xmmword [ecx]
inc edi
vmulps ymm7, ymm6, ymm2
vmovshdup xmm6, xmmword [ecx]
vshufps ymm5, ymm2, ymm2, 0xb1
vmovups ymm2, ymmword [esp + 0x80]
vxorps ymm4, ymm5, ymm2
vmovshdup xmm5, xmmword [ecx + 0x10]
vmulps ymm6, ymm6, ymm4
vaddps ymm6, ymm7, ymm6
vmovsldup xmm7, xmmword [ecx + 0x10]
vshufps ymm4, ymm0, ymm0, 0xb1
vmulps ymm7, ymm7, ymm0
vxorps ymm0, ymm4, ymm2
vmovshdup xmm4, xmmword [ecx + 0x20]
vmulps ymm5, ymm5, ymm0
vmovshdup xmm0, xmmword [ecx + 0x30]
vaddps ymm5, ymm7, ymm5
vmovsldup xmm7, xmmword [ecx + 0x20]
vmulps ymm7, ymm7, ymm1
vshufps ymm1, ymm1, ymm1, 0xb1
vxorps ymm1, ymm1, ymm2
vmulps ymm4, ymm4, ymm1
vaddps ymm4, ymm7, ymm4
vmovsldup xmm7, xmmword [ecx + 0x30]
vmulps ymm7, ymm7, ymm3
vshufps ymm3, ymm3, ymm3, 0xb1
vxorps ymm2, ymm3, ymm2
vmulps ymm3, ymm0, ymm2
vmovups xmm0, xmmword [ebx + edx]
vaddps ymm7, ymm7, ymm3
vaddps ymm2, ymm6, ymm7
vsubps ymm1, ymm6, ymm7
vaddps ymm7, ymm5, ymm4
vsubps ymm6, ymm5, ymm4
vaddps ymm3, ymm2, ymm7
vshufps ymm4, ymm1, ymm1, 0xb1
vshufps ymm5, ymm6, ymm6, 0xb1
vaddps ymm1, ymm3, ymm0
vmovups ymm3, ymmword [esp + 0x40]
vmovups ymmword [esp + 0xa0], ymm0
vmulps ymm0, ymm7, ymm3
vmovups xmmword [ebx + eax], xmm1
vmovups ymm1, ymmword [esp + 0x60]
vmulps ymm6, ymm2, ymm1
vmulps ymm2, ymm2, ymm3
vmulps ymm7, ymm7, ymm1
vaddps ymm6, ymm6, ymm0
vmovups ymm0, ymmword [esp]
vaddps ymm2, ymm2, ymm7
vmovups ymm7, ymmword [esp + 0x20]
vmulps ymm1, ymm5, ymm0
vmulps ymm3, ymm4, ymm7
vmulps ymm4, ymm4, ymm0
vmulps ymm5, ymm5, ymm7
vmovups ymm7, ymmword [esp + 0xa0]
vaddps ymm1, ymm3, ymm1
vsubps ymm3, ymm4, ymm5
vaddps ymm0, ymm6, ymm7
vaddps ymm2, ymm2, ymm7
vsubps ymm4, ymm0, ymm1
vaddps ymm7, ymm0, ymm1
vsubps ymm1, ymm2, ymm3
vaddps ymm3, ymm2, ymm3
vmovups xmmword [ebx + eax + 0x10], xmm4
vmovups xmmword [ebx + eax + 0x20], xmm1
vmovups xmmword [ebx + eax + 0x30], xmm3
vmovups xmmword [ebx + eax + 0x40], xmm7
add ebx, 0x50
cmp edi, esi
jb 0x101588c2
jmp 0x10158862