Function at 0x1400bc030
Capabilities:
Encode data using base64
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x188
mov rdi, rcx
mov rsi, qword [0x1422085a0]
mov r8, qword [rcx + 0x258]
cmp byte [r8 + 0x1180], 0
je 0x1400bc071
cmp byte [r8 + 0x1181], 0
jne 0x1400bc0ed
jmp 0x1400bc104
mov rcx, qword [r8 + 0x40]
test rcx, rcx
je 0x1400bc0d1
mov eax, dword [rdi + 0x230]
add eax, dword [rdi + 0x210]
mov rdx, r8
nop dword [rax]
cmp byte [rdx + 0x1180], 0
jne 0x1400bc182
cmp byte [rdx + 0x11dc], 0
jne 0x1400bc0d1
mov r12, rcx
mov ecx, dword [rdx + 0x11c0]
not ecx
add eax, ecx
js 0x1400bc0d1
mov rcx, qword [r12 + 0x40]
mov rdx, r12
test rcx, rcx
jne 0x1400bc090
cmp byte [r12 + 0x1180], 0
jne 0x1400bc185
mov rcx, rsi
mov rdx, rdi
call fcn.1400bdb00
mov r8, qword [rdi + 0x258]
cmp byte [r8 + 0x1181], 0
je 0x1400bc104
add rsp, 0x188
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
vzeroupper
ret
mov rcx, qword [r8 + 0x40]
test rcx, rcx
je 0x1400bc161
mov eax, dword [rdi + 0x230]
add eax, dword [rdi + 0x210]
mov rdx, r8
nop dword [rax]
cmp byte [rdx + 0x1181], 0
jne 0x1400bc340
cmp byte [rdx + 0x11dd], 0
jne 0x1400bc161
mov r12, rcx
mov ecx, dword [rdx + 0x11c0]
not ecx
add eax, ecx
js 0x1400bc161
mov rcx, qword [r12 + 0x40]
mov rdx, r12
test rcx, rcx
jne 0x1400bc120
cmp byte [r12 + 0x1181], 0
jne 0x1400bc343
mov rcx, rsi
mov rdx, rdi
add rsp, 0x188
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
vzeroupper
jmp fcn.1400bd5c0
mov r12, rdx
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x38], 0
test r8, r8
je 0x1400bc0dc
mov qword [rsp + 0x48], r8
vmovdqa xmm0, xmmword [rdi + 0x1e0]
vpand xmm0, xmm0, xmmword [rdi + 0x1f0]
vmovq r8, xmm0
tzcnt rbx, r8
vpextrq rax, xmm0, 1
tzcnt r9, rax
mov ecx, dword [rdi + 0x218]
mov qword [rsp + 0x68], rdi
mov eax, dword [rdi + 0x228]
mov qword [rsp + 0xf0], 0
mov qword [rsp + 0x180], 0
xor edx, edx
nop word cs:[rax + rax]
mov r10, rdx
mov r13, qword [rsp + rdx*8 + 0x30]
dec rdx
test r13, r13
je 0x1400bc200
or r9d, 0x40
test r8, r8
cmove ebx, r9d
test r10d, r10d
js 0x1400bc291
mov r8d, r10d
mov r9, qword [rsp + r8*8 + 0x30]
mov byte [r9 + 0x1180], 1
mov rdi, r12
test r8, r8
je 0x1400bc23f
mov edx, edx
mov rdi, qword [rsp + rdx*8 + 0x30]
cmp r13, rdi
je 0x1400bc291
lea ebp, [rcx + rcx*2]
add ebp, eax
mov rax, r8
shl rax, 7
lea rax, [rax + r8*8]
lea r14, [rsp + rax]
add r14, 0x70
lea r15, [rsp + rax]
add r15, 0x100
nop word [rax + rax]
lea r8, [r13 + 0x11c0]
mov qword [rsp + 0x20], r15
mov ecx, ebx
mov edx, ebp
mov r9, r14
call fcn.1400c1040
mov r13, qword [r13 + 0x40]
cmp r13, rdi
jne 0x1400bc270
mov rax, qword [rsp + 0xf0]
lea rcx, [rax - 1]
cmp rcx, 1
ja 0x1400bc4f0
cmp qword [rsp + 0x180], 1
jne 0x1400bc4f0
mov ecx, dword [rsp + 0x70]
shl ecx, 0xa
mov edx, dword [rsp + 0x100]
shl edx, 0xa
cmp rax, 1
mov r9, qword [rsp + 0x48]
jne 0x1400bd3d7
lea rax, [rsi + rdx*2]
add rax, 0x840
lea rcx, [rsi + rcx*2]
add rcx, 0x840
xor edx, edx
nop dword [rax]
vmovdqa64 zmm0, zmmword [r12 + rdx + 0x140]
vpsubw zmm0, zmm0, zmmword [rcx + rdx - 0x40]
vpaddw zmm0, zmm0, zmmword [rax + rdx - 0x40]
vmovdqa64 zmmword [r9 + rdx + 0x140], zmm0
vmovdqa64 zmm0, zmmword [r12 + rdx + 0x180]
vpsubw zmm0, zmm0, zmmword [rcx + rdx]
vpaddw zmm0, zmm0, zmmword [rax + rdx]
vmovdqa64 zmmword [r9 + rdx + 0x180], zmm0
sub rdx, 0xffffffffffffff80
cmp rdx, 0x800
jne 0x1400bc2f0
jmp 0x1400bd448
mov r12, rdx
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x38], 0
test r8, r8
je 0x1400bc0ed
mov qword [rsp + 0x48], r8
vmovdqa xmm0, xmmword [rdi + 0x1e0]
vpand xmm0, xmm0, xmmword [rdi + 0x200]
vmovq r8, xmm0
tzcnt rbx, r8
vpextrq rax, xmm0, 1
tzcnt r9, rax
mov ecx, dword [rdi + 0x238]
mov eax, dword [rdi + 0x248]
mov qword [rsp + 0xf0], 0
mov qword [rsp + 0x180], 0
xor edx, edx
nop word [rax + rax]
mov r10, rdx
mov r13, qword [rsp + rdx*8 + 0x30]
dec rdx
test r13, r13
je 0x1400bc3b0
or r9d, 0x40
test r8, r8
cmove ebx, r9d
test r10d, r10d
js 0x1400bc444
mov r8d, r10d
mov r9, qword [rsp + r8*8 + 0x30]
mov byte [r9 + 0x1181], 1
mov rbp, r12
test r8, r8
je 0x1400bc3ef
mov edx, edx
mov rbp, qword [rsp + rdx*8 + 0x30]
cmp r13, rbp
je 0x1400bc444
lea edi, [rcx + rcx*2]
add edi, eax
mov rax, r8
shl rax, 7
lea rax, [rax + r8*8]
lea r14, [rsp + rax]
add r14, 0x70
lea r15, [rsp + rax]
add r15, 0x100
nop word [rax + rax]
lea r8, [r13 + 0x11c0]
mov qword [rsp + 0x20], r15
mov ecx, ebx
mov edx, edi
mov r9, r14
vzeroupper
call fcn.1400c1180
mov r13, qword [r13 + 0x40]
cmp r13, rbp
jne 0x1400bc420
mov rax, qword [rsp + 0xf0]
lea rcx, [rax - 1]
cmp rcx, 1
ja 0x1400bc799
cmp qword [rsp + 0x180], 1
jne 0x1400bc799
mov ecx, dword [rsp + 0x70]
shl ecx, 0xa
mov edx, dword [rsp + 0x100]
shl edx, 0xa
cmp rax, 1
mov r9, qword [rsp + 0x48]
jne 0x1400bd489
lea rax, [rsi + rdx*2]
add rax, 0x840
lea rcx, [rsi + rcx*2]
add rcx, 0x840
xor edx, edx
vmovdqa64 zmm0, zmmword [r12 + rdx + 0x940]
vpsubw zmm0, zmm0, zmmword [rcx + rdx - 0x40]
vpaddw zmm0, zmm0, zmmword [rax + rdx - 0x40]
vmovdqa64 zmmword [r9 + rdx + 0x940], zmm0
vmovdqa64 zmm0, zmmword [r12 + rdx + 0x980]
vpsubw zmm0, zmm0, zmmword [rcx + rdx]
vpaddw zmm0, zmm0, zmmword [rax + rdx]
vmovdqa64 zmmword [r9 + rdx + 0x980], zmm0
sub rdx, 0xffffffffffffff80
cmp rdx, 0x800
jne 0x1400bc4a0
jmp 0x1400bd4f8
vmovdqa64 zmm0, zmmword [r12 + 0x500]
vmovdqa64 zmm1, zmmword [r12 + 0x4c0]
vmovdqa64 zmm2, zmmword [r12 + 0x480]
vmovdqa64 zmm3, zmmword [r12 + 0x440]
vmovdqa64 zmm4, zmmword [r12 + 0x400]
vmovdqa64 zmm5, zmmword [r12 + 0x3c0]
vmovdqa64 zmm16, zmmword [r12 + 0x380]
vmovdqa64 zmm17, zmmword [r12 + 0x340]
vmovdqa64 zmm18, zmmword [r12 + 0x300]
vmovdqa64 zmm19, zmmword [r12 + 0x2c0]
vmovdqa64 zmm20, zmmword [r12 + 0x280]
vmovdqa64 zmm21, zmmword [r12 + 0x240]
vmovdqa64 zmm22, zmmword [r12 + 0x140]
vmovdqa64 zmm23, zmmword [r12 + 0x180]
vmovdqa64 zmm24, zmmword [r12 + 0x1c0]
vmovdqa64 zmm25, zmmword [r12 + 0x200]
mov rax, qword [rsp + 0xf0]
mov rcx, qword [rsp + 0x180]
lea rdx, [rax*4]
lea r8, [rcx*4]
xor r9d, r9d
mov r15, qword [rsp + 0x48]
mov r10, r15
jmp 0x1400bc621
vmovdqa64 zmmword [r10 + 0x140], zmm22
vmovdqa64 zmmword [r10 + 0x180], zmm23
vmovdqa64 zmmword [r10 + 0x1c0], zmm24
vmovdqa64 zmmword [r10 + 0x200], zmm25
vmovdqa64 zmmword [r10 + 0x240], zmm21
vmovdqa64 zmmword [r10 + 0x280], zmm20
vmovdqa64 zmmword [r10 + 0x2c0], zmm19
vmovdqa64 zmmword [r10 + 0x300], zmm18
vmovdqa64 zmmword [r10 + 0x340], zmm17
vmovdqa64 zmmword [r10 + 0x380], zmm16
vmovdqa64 zmmword [r10 + 0x3c0], zmm5
vmovdqa64 zmmword [r10 + 0x400], zmm4
vmovdqa64 zmmword [r10 + 0x440], zmm3
vmovdqa64 zmmword [r10 + 0x480], zmm2
vmovdqa64 zmmword [r10 + 0x4c0], zmm1
vmovdqa64 zmmword [r10 + 0x500], zmm0
inc r9d
mov r10, qword [rsp + r9*8 + 0x30]
test r10, r10
je 0x1400bca49
mov r11d, r9d
mov rdi, r11
shl rdi, 7
lea r11, [rdi + r11*8]
test rax, rax
je 0x1400bc6e4
lea rbx, [rsp + r11]
add rbx, 0x70
xor r14d, r14d
nop word cs:[rax + rax]
mov edi, dword [rbx + r14]
shl edi, 0xa
vpsubw zmm22, zmm22, zmmword [rsi + rdi*2 + 0x800]
vpsubw zmm23, zmm23, zmmword [rsi + rdi*2 + 0x840]
vpsubw zmm24, zmm24, zmmword [rsi + rdi*2 + 0x880]
vpsubw zmm25, zmm25, zmmword [rsi + rdi*2 + 0x8c0]
vpsubw zmm21, zmm21, zmmword [rsi + rdi*2 + 0x900]
vpsubw zmm20, zmm20, zmmword [rsi + rdi*2 + 0x940]
vpsubw zmm19, zmm19, zmmword [rsi + rdi*2 + 0x980]
vpsubw zmm18, zmm18, zmmword [rsi + rdi*2 + 0x9c0]
vpsubw zmm17, zmm17, zmmword [rsi + rdi*2 + 0xa00]
vpsubw zmm16, zmm16, zmmword [rsi + rdi*2 + 0xa40]
vpsubw zmm5, zmm5, zmmword [rsi + rdi*2 + 0xa80]
vpsubw zmm4, zmm4, zmmword [rsi + rdi*2 + 0xac0]
vpsubw zmm3, zmm3, zmmword [rsi + rdi*2 + 0xb00]
vpsubw zmm2, zmm2, zmmword [rsi + rdi*2 + 0xb40]
vpsubw zmm1, zmm1, zmmword [rsi + rdi*2 + 0xb80]
vpsubw zmm0, zmm0, zmmword [rsi + rdi*2 + 0xbc0]
add r14, 4
cmp rdx, r14
jne 0x1400bc650
test rcx, rcx
je 0x1400bc5a0
add r11, rsp
add r11, 0x100
xor ebx, ebx
nop dword [rax]
mov edi, dword [r11 + rbx]
shl edi, 0xa
vpaddw zmm22, zmm22, zmmword [rsi + rdi*2 + 0x800]
vpaddw zmm23, zmm23, zmmword [rsi + rdi*2 + 0x840]
vpaddw zmm24, zmm24, zmmword [rsi + rdi*2 + 0x880]
vpaddw zmm25, zmm25, zmmword [rsi + rdi*2 + 0x8c0]
vpaddw zmm21, zmm21, zmmword [rsi + rdi*2 + 0x900]
vpaddw zmm20, zmm20, zmmword [rsi + rdi*2 + 0x940]
vpaddw zmm19, zmm19, zmmword [rsi + rdi*2 + 0x980]
vpaddw zmm18, zmm18, zmmword [rsi + rdi*2 + 0x9c0]
vpaddw zmm17, zmm17, zmmword [rsi + rdi*2 + 0xa00]
vpaddw zmm16, zmm16, zmmword [rsi + rdi*2 + 0xa40]
vpaddw zmm5, zmm5, zmmword [rsi + rdi*2 + 0xa80]
vpaddw zmm4, zmm4, zmmword [rsi + rdi*2 + 0xac0]
vpaddw zmm3, zmm3, zmmword [rsi + rdi*2 + 0xb00]
vpaddw zmm2, zmm2, zmmword [rsi + rdi*2 + 0xb40]
vpaddw zmm1, zmm1, zmmword [rsi + rdi*2 + 0xb80]
vpaddw zmm0, zmm0, zmmword [rsi + rdi*2 + 0xbc0]
add rbx, 4
cmp r8, rbx
jne 0x1400bc700
jmp 0x1400bc5a0
vmovdqa64 zmm0, zmmword [r12 + 0xd00]
vmovdqa64 zmm1, zmmword [r12 + 0xcc0]
vmovdqa64 zmm2, zmmword [r12 + 0xc80]
vmovdqa64 zmm3, zmmword [r12 + 0xc40]
vmovdqa64 zmm4, zmmword [r12 + 0xc00]
vmovdqa64 zmm5, zmmword [r12 + 0xbc0]
vmovdqa64 zmm16, zmmword [r12 + 0xb80]
vmovdqa64 zmm17, zmmword [r12 + 0xb40]
vmovdqa64 zmm18, zmmword [r12 + 0xb00]
vmovdqa64 zmm19, zmmword [r12 + 0xac0]
vmovdqa64 zmm20, zmmword [r12 + 0xa80]
vmovdqa64 zmm21, zmmword [r12 + 0xa40]
vmovdqa64 zmm22, zmmword [r12 + 0x940]
vmovdqa64 zmm23, zmmword [r12 + 0x980]
vmovdqa64 zmm24, zmmword [r12 + 0x9c0]
vmovdqa64 zmm25, zmmword [r12 + 0xa00]
mov rax, qword [rsp + 0xf0]
mov rcx, qword [rsp + 0x180]
lea rdx, [rax*4]
lea r8, [rcx*4]
xor r9d, r9d
mov r15, qword [rsp + 0x48]
mov r10, r15
jmp 0x1400bc8d1
vmovdqa64 zmmword [r10 + 0x940], zmm22
vmovdqa64 zmmword [r10 + 0x980], zmm23
vmovdqa64 zmmword [r10 + 0x9c0], zmm24
vmovdqa64 zmmword [r10 + 0xa00], zmm25
vmovdqa64 zmmword [r10 + 0xa40], zmm21
vmovdqa64 zmmword [r10 + 0xa80], zmm20
vmovdqa64 zmmword [r10 + 0xac0], zmm19
vmovdqa64 zmmword [r10 + 0xb00], zmm18
vmovdqa64 zmmword [r10 + 0xb40], zmm17
vmovdqa64 zmmword [r10 + 0xb80], zmm16
vmovdqa64 zmmword [r10 + 0xbc0], zmm5
vmovdqa64 zmmword [r10 + 0xc00], zmm4
vmovdqa64 zmmword [r10 + 0xc40], zmm3
vmovdqa64 zmmword [r10 + 0xc80], zmm2
vmovdqa64 zmmword [r10 + 0xcc0], zmm1
vmovdqa64 zmmword [r10 + 0xd00], zmm0
inc r9d
mov r10, qword [rsp + r9*8 + 0x30]
test r10, r10
je 0x1400bccdf
mov r11d, r9d
mov rdi, r11
shl rdi, 7
lea r11, [rdi + r11*8]
test rax, rax
je 0x1400bc995
lea rdi, [rsp + r11]
add rdi, 0x70
xor ebx, ebx
nop word cs:[rax + rax]
mov r14d, dword [rdi + rbx]
shl r14d, 0xa
vpsubw zmm22, zmm22, zmmword [rsi + r14*2 + 0x800]
vpsubw zmm23, zmm23, zmmword [rsi + r14*2 + 0x840]
vpsubw zmm24, zmm24, zmmword [rsi + r14*2 + 0x880]
vpsubw zmm25, zmm25, zmmword [rsi + r14*2 + 0x8c0]
vpsubw zmm21, zmm21, zmmword [rsi + r14*2 + 0x900]
vpsubw zmm20, zmm20, zmmword [rsi + r14*2 + 0x940]
vpsubw zmm19, zmm19, zmmword [rsi + r14*2 + 0x980]
vpsubw zmm18, zmm18, zmmword [rsi + r14*2 + 0x9c0]
vpsubw zmm17, zmm17, zmmword [rsi + r14*2 + 0xa00]
vpsubw zmm16, zmm16, zmmword [rsi + r14*2 + 0xa40]
vpsubw zmm5, zmm5, zmmword [rsi + r14*2 + 0xa80]
vpsubw zmm4, zmm4, zmmword [rsi + r14*2 + 0xac0]
vpsubw zmm3, zmm3, zmmword [rsi + r14*2 + 0xb00]
vpsubw zmm2, zmm2, zmmword [rsi + r14*2 + 0xb40]
vpsubw zmm1, zmm1, zmmword [rsi + r14*2 + 0xb80]
vpsubw zmm0, zmm0, zmmword [rsi + r14*2 + 0xbc0]
add rbx, 4
cmp rdx, rbx
jne 0x1400bc900
test rcx, rcx
je 0x1400bc850
add r11, rsp
add r11, 0x100
xor edi, edi
nop word [rax + rax]
mov ebx, dword [r11 + rdi]
shl ebx, 0xa
vpaddw zmm22, zmm22, zmmword [rsi + rbx*2 + 0x800]
vpaddw zmm23, zmm23, zmmword [rsi + rbx*2 + 0x840]
vpaddw zmm24, zmm24, zmmword [rsi + rbx*2 + 0x880]
vpaddw zmm25, zmm25, zmmword [rsi + rbx*2 + 0x8c0]
vpaddw zmm21, zmm21, zmmword [rsi + rbx*2 + 0x900]
vpaddw zmm20, zmm20, zmmword [rsi + rbx*2 + 0x940]
vpaddw zmm19, zmm19, zmmword [rsi + rbx*2 + 0x980]
vpaddw zmm18, zmm18, zmmword [rsi + rbx*2 + 0x9c0]
vpaddw zmm17, zmm17, zmmword [rsi + rbx*2 + 0xa00]
vpaddw zmm16, zmm16, zmmword [rsi + rbx*2 + 0xa40]
vpaddw zmm5, zmm5, zmmword [rsi + rbx*2 + 0xa80]
vpaddw zmm4, zmm4, zmmword [rsi + rbx*2 + 0xac0]
vpaddw zmm3, zmm3, zmmword [rsi + rbx*2 + 0xb00]
vpaddw zmm2, zmm2, zmmword [rsi + rbx*2 + 0xb40]
vpaddw zmm1, zmm1, zmmword [rsi + rbx*2 + 0xb80]
vpaddw zmm0, zmm0, zmmword [rsi + rbx*2 + 0xbc0]
add rdi, 4
cmp r8, rdi
jne 0x1400bc9b0
jmp 0x1400bc850
vmovdqa64 zmm0, zmmword [r12 + 0x900]
vmovdqa64 zmm1, zmmword [r12 + 0x8c0]
vmovdqa64 zmm2, zmmword [r12 + 0x880]
vmovdqa64 zmm3, zmmword [r12 + 0x840]
vmovdqa64 zmm4, zmmword [r12 + 0x800]
vmovdqa64 zmm5, zmmword [r12 + 0x7c0]
vmovdqa64 zmm16, zmmword [r12 + 0x780]
vmovdqa64 zmm17, zmmword [r12 + 0x740]
vmovdqa64 zmm18, zmmword [r12 + 0x700]
vmovdqa64 zmm19, zmmword [r12 + 0x6c0]
vmovdqa64 zmm20, zmmword [r12 + 0x680]
vmovdqa64 zmm21, zmmword [r12 + 0x640]
vmovdqa64 zmm22, zmmword [r12 + 0x540]
vmovdqa64 zmm23, zmmword [r12 + 0x580]
vmovdqa64 zmm24, zmmword [r12 + 0x5c0]
vmovdqa64 zmm25, zmmword [r12 + 0x600]
xor r9d, r9d
mov r10, r15
jmp 0x1400bcb61
vmovdqa64 zmmword [r10 + 0x540], zmm22
vmovdqa64 zmmword [r10 + 0x580], zmm23
vmovdqa64 zmmword [r10 + 0x5c0], zmm24
vmovdqa64 zmmword [r10 + 0x600], zmm25
vmovdqa64 zmmword [r10 + 0x640], zmm21
vmovdqa64 zmmword [r10 + 0x680], zmm20
vmovdqa64 zmmword [r10 + 0x6c0], zmm19
vmovdqa64 zmmword [r10 + 0x700], zmm18
vmovdqa64 zmmword [r10 + 0x740], zmm17
vmovdqa64 zmmword [r10 + 0x780], zmm16
vmovdqa64 zmmword [r10 + 0x7c0], zmm5
vmovdqa64 zmmword [r10 + 0x800], zmm4
vmovdqa64 zmmword [r10 + 0x840], zmm3
vmovdqa64 zmmword [r10 + 0x880], zmm2
vmovdqa64 zmmword [r10 + 0x8c0], zmm1
vmovdqa64 zmmword [r10 + 0x900], zmm0
inc r9d
mov r10, qword [rsp + r9*8 + 0x30]
test r10, r10
je 0x1400bcf7f
mov r11d, r9d
mov rdi, r11
shl rdi, 7
lea r11, [rdi + r11*8]
test rax, rax
je 0x1400bcc2a
lea rbx, [rsp + r11]
add rbx, 0x70
xor r14d, r14d
nop word cs:[rax + rax]
mov edi, dword [rbx + r14]
shl edi, 0xa
or edi, 0x200
vpsubw zmm22, zmm22, zmmword [rsi + rdi*2 + 0x800]
vpsubw zmm23, zmm23, zmmword [rsi + rdi*2 + 0x840]
vpsubw zmm24, zmm24, zmmword [rsi + rdi*2 + 0x880]
vpsubw zmm25, zmm25, zmmword [rsi + rdi*2 + 0x8c0]
vpsubw zmm21, zmm21, zmmword [rsi + rdi*2 + 0x900]
vpsubw zmm20, zmm20, zmmword [rsi + rdi*2 + 0x940]
vpsubw zmm19, zmm19, zmmword [rsi + rdi*2 + 0x980]
vpsubw zmm18, zmm18, zmmword [rsi + rdi*2 + 0x9c0]
vpsubw zmm17, zmm17, zmmword [rsi + rdi*2 + 0xa00]
vpsubw zmm16, zmm16, zmmword [rsi + rdi*2 + 0xa40]
vpsubw zmm5, zmm5, zmmword [rsi + rdi*2 + 0xa80]
vpsubw zmm4, zmm4, zmmword [rsi + rdi*2 + 0xac0]
vpsubw zmm3, zmm3, zmmword [rsi + rdi*2 + 0xb00]
vpsubw zmm2, zmm2, zmmword [rsi + rdi*2 + 0xb40]
vpsubw zmm1, zmm1, zmmword [rsi + rdi*2 + 0xb80]
vpsubw zmm0, zmm0, zmmword [rsi + rdi*2 + 0xbc0]
add r14, 4
cmp rdx, r14
jne 0x1400bcb90
test rcx, rcx
je 0x1400bcae0
add r11, rsp
add r11, 0x100
xor ebx, ebx
nop
mov edi, dword [r11 + rbx]
shl edi, 0xa
or edi, 0x200
vpaddw zmm22, zmm22, zmmword [rsi + rdi*2 + 0x800]
vpaddw zmm23, zmm23, zmmword [rsi + rdi*2 + 0x840]
vpaddw zmm24, zmm24, zmmword [rsi + rdi*2 + 0x880]
vpaddw zmm25, zmm25, zmmword [rsi + rdi*2 + 0x8c0]
vpaddw zmm21, zmm21, zmmword [rsi + rdi*2 + 0x900]
vpaddw zmm20, zmm20, zmmword [rsi + rdi*2 + 0x940]
vpaddw zmm19, zmm19, zmmword [rsi + rdi*2 + 0x980]
vpaddw zmm18, zmm18, zmmword [rsi + rdi*2 + 0x9c0]
vpaddw zmm17, zmm17, zmmword [rsi + rdi*2 + 0xa00]
vpaddw zmm16, zmm16, zmmword [rsi + rdi*2 + 0xa40]
vpaddw zmm5, zmm5, zmmword [rsi + rdi*2 + 0xa80]
vpaddw zmm4, zmm4, zmmword [rsi + rdi*2 + 0xac0]
vpaddw zmm3, zmm3, zmmword [rsi + rdi*2 + 0xb00]
vpaddw zmm2, zmm2, zmmword [rsi + rdi*2 + 0xb40]
vpaddw zmm1, zmm1, zmmword [rsi + rdi*2 + 0xb80]
vpaddw zmm0, zmm0, zmmword [rsi + rdi*2 + 0xbc0]
add rbx, 4
cmp r8, rbx
jne 0x1400bcc40
jmp 0x1400bcae0
vmovdqa64 zmm0, zmmword [r12 + 0x1100]
vmovdqa64 zmm1, zmmword [r12 + 0x10c0]
vmovdqa64 zmm2, zmmword [r12 + 0x1080]
vmovdqa64 zmm3, zmmword [r12 + 0x1040]
vmovdqa64 zmm4, zmmword [r12 + 0x1000]
vmovdqa64 zmm5, zmmword [r12 + 0xfc0]
vmovdqa64 zmm16, zmmword [r12 + 0xf80]
vmovdqa64 zmm17, zmmword [r12 + 0xf40]
vmovdqa64 zmm18, zmmword [r12 + 0xf00]
vmovdqa64 zmm19, zmmword [r12 + 0xec0]
vmovdqa64 zmm20, zmmword [r12 + 0xe80]
vmovdqa64 zmm21, zmmword [r12 + 0xe40]
vmovdqa64 zmm22, zmmword [r12 + 0xd40]
vmovdqa64 zmm23, zmmword [r12 + 0xd80]
vmovdqa64 zmm24, zmmword [r12 + 0xdc0]
vmovdqa64 zmm25, zmmword [r12 + 0xe00]
xor r9d, r9d
mov r10, r15
jmp 0x1400bcdf1
vmovdqa64 zmmword [r10 + 0xd40], zmm22
vmovdqa64 zmmword [r10 + 0xd80], zmm23
vmovdqa64 zmmword [r10 + 0xdc0], zmm24
vmovdqa64 zmmword [r10 + 0xe00], zmm25
vmovdqa64 zmmword [r10 + 0xe40], zmm21
vmovdqa64 zmmword [r10 + 0xe80], zmm20
vmovdqa64 zmmword [r10 + 0xec0], zmm19
vmovdqa64 zmmword [r10 + 0xf00], zmm18
vmovdqa64 zmmword [r10 + 0xf40], zmm17
vmovdqa64 zmmword [r10 + 0xf80], zmm16
vmovdqa64 zmmword [r10 + 0xfc0], zmm5
vmovdqa64 zmmword [r10 + 0x1000], zmm4
vmovdqa64 zmmword [r10 + 0x1040], zmm3
vmovdqa64 zmmword [r10 + 0x1080], zmm2
vmovdqa64 zmmword [r10 + 0x10c0], zmm1
vmovdqa64 zmmword [r10 + 0x1100], zmm0
inc r9d
mov r10, qword [rsp + r9*8 + 0x30]
test r10, r10
je 0x1400bd19e
mov r11d, r9d
mov rdi, r11
shl rdi, 7
lea r11, [rdi + r11*8]
test rax, rax
je 0x1400bcebc
lea rdi, [rsp + r11]
add rdi, 0x70
xor ebx, ebx
nop word cs:[rax + rax]
mov r14d, dword [rdi + rbx]
shl r14d, 0xa
or r14d, 0x200
vpsubw zmm22, zmm22, zmmword [rsi + r14*2 + 0x800]
vpsubw zmm23, zmm23, zmmword [rsi + r14*2 + 0x840]
vpsubw zmm24, zmm24, zmmword [rsi + r14*2 + 0x880]
vpsubw zmm25, zmm25, zmmword [rsi + r14*2 + 0x8c0]
vpsubw zmm21, zmm21, zmmword [rsi + r14*2 + 0x900]
vpsubw zmm20, zmm20, zmmword [rsi + r14*2 + 0x940]
vpsubw zmm19, zmm19, zmmword [rsi + r14*2 + 0x980]
vpsubw zmm18, zmm18, zmmword [rsi + r14*2 + 0x9c0]
vpsubw zmm17, zmm17, zmmword [rsi + r14*2 + 0xa00]
vpsubw zmm16, zmm16, zmmword [rsi + r14*2 + 0xa40]
vpsubw zmm5, zmm5, zmmword [rsi + r14*2 + 0xa80]
vpsubw zmm4, zmm4, zmmword [rsi + r14*2 + 0xac0]
vpsubw zmm3, zmm3, zmmword [rsi + r14*2 + 0xb00]
vpsubw zmm2, zmm2, zmmword [rsi + r14*2 + 0xb40]
vpsubw zmm1, zmm1, zmmword [rsi + r14*2 + 0xb80]
vpsubw zmm0, zmm0, zmmword [rsi + r14*2 + 0xbc0]
add rbx, 4
cmp rdx, rbx
jne 0x1400bce20
test rcx, rcx
je 0x1400bcd70
add r11, rsp
add r11, 0x100
xor edi, edi
nop word cs:[rax + rax]
mov ebx, dword [r11 + rdi]
shl ebx, 0xa
or ebx, 0x200
vpaddw zmm22, zmm22, zmmword [rsi + rbx*2 + 0x800]
vpaddw zmm23, zmm23, zmmword [rsi + rbx*2 + 0x840]
vpaddw zmm24, zmm24, zmmword [rsi + rbx*2 + 0x880]
vpaddw zmm25, zmm25, zmmword [rsi + rbx*2 + 0x8c0]
vpaddw zmm21, zmm21, zmmword [rsi + rbx*2 + 0x900]
vpaddw zmm20, zmm20, zmmword [rsi + rbx*2 + 0x940]
vpaddw zmm19, zmm19, zmmword [rsi + rbx*2 + 0x980]
vpaddw zmm18, zmm18, zmmword [rsi + rbx*2 + 0x9c0]
vpaddw zmm17, zmm17, zmmword [rsi + rbx*2 + 0xa00]
vpaddw zmm16, zmm16, zmmword [rsi + rbx*2 + 0xa40]
vpaddw zmm5, zmm5, zmmword [rsi + rbx*2 + 0xa80]
vpaddw zmm4, zmm4, zmmword [rsi + rbx*2 + 0xac0]
vpaddw zmm3, zmm3, zmmword [rsi + rbx*2 + 0xb00]
vpaddw zmm2, zmm2, zmmword [rsi + rbx*2 + 0xb40]
vpaddw zmm1, zmm1, zmmword [rsi + rbx*2 + 0xb80]
vpaddw zmm0, zmm0, zmmword [rsi + rbx*2 + 0xbc0]
add rdi, 4
cmp r8, rdi
jne 0x1400bcee0
jmp 0x1400bcd70
vmovdqa ymm0, ymmword [r12 + 0x1140]
lea rdx, [rax - 1]
mov r8b, 0x3e
bzhi rdx, rdx, r8
mov qword [rsp + 0x60], rdx
lea r9, [rcx - 1]
bzhi r8, r9, r8
mov r9d, eax
and r9d, 3
mov r10d, ecx
and r10d, 3
lea rdx, [rsp + r9*4]
add rdx, 0x70
mov qword [rsp + 0x58], rdx
lea rdx, [rsp + r10*4]
add rdx, 0x100
mov qword [rsp + 0x50], rdx
xor r14d, r14d
jmp 0x1400bcffa
vmovdqa ymmword [r15 + 0x1140], ymm0
inc r14d
mov r15, qword [rsp + r14*8 + 0x30]
test r15, r15
je 0x1400bd56b
mov r11d, r14d
mov rdi, r11
shl rdi, 7
lea r12, [rdi + r11*8]
mov r11, r14
shl r11, 7
lea r13, [r11 + r14*8]
test rax, rax
je 0x1400bd0c9
lea r11, [rsp + r13]
add r11, 0x70
test r9, r9
je 0x1400bd070
mov rdx, r15
mov rdi, qword [rsp + 0x58]
lea rbp, [rdi + r12]
lea rdi, [rsp + r12]
add rdi, 0x70
xor r15d, r15d
mov ebx, dword [rdi + r15*4]
shl ebx, 3
vpsubd ymm0, ymm0, ymmword [rsi + rbx*4 + 0x4bf0800]
inc r15
cmp r9, r15
jne 0x1400bd040
mov r15, rdx
cmp qword [rsp + 0x60], 3
jae 0x1400bd07b
jmp 0x1400bd0c9
mov rbp, r11
cmp qword [rsp + 0x60], 3
jb 0x1400bd0c9
lea r11, [r11 + rax*4]
nop
mov edi, dword [rbp]
mov ebx, dword [rbp + 4]
shl edi, 3
vmovdqa ymm1, ymmword [rsi + rdi*4 + 0x4bf0800]
shl ebx, 3
vpaddd ymm1, ymm1, ymmword [rsi + rbx*4 + 0x4bf0800]
mov edi, dword [rbp + 8]
shl edi, 3
vpaddd ymm1, ymm1, ymmword [rsi + rdi*4 + 0x4bf0800]
mov edi, dword [rbp + 0xc]
shl edi, 3
vpaddd ymm1, ymm1, ymmword [rsi + rdi*4 + 0x4bf0800]
vpsubd ymm0, ymm0, ymm1
add rbp, 0x10
cmp rbp, r11
jne 0x1400bd080
test rcx, rcx
je 0x1400bcfe0
lea r11, [rsp + r13]
add r11, 0x100
test r10, r10
je 0x1400bd130
mov rdx, r15
mov rdi, qword [rsp + 0x50]
lea r13, [rdi + r12]
lea rdi, [rsp + r12]
add rdi, 0x100
xor r15d, r15d
nop dword [rax]
mov ebx, dword [rdi + r15*4]
shl ebx, 3
vpaddd ymm0, ymm0, ymmword [rsi + rbx*4 + 0x4bf0800]
inc r15
cmp r10, r15
jne 0x1400bd100
mov r15, rdx
cmp r8, 3
jb 0x1400bcfe0
jmp 0x1400bd13d
mov r13, r11
cmp r8, 3
jb 0x1400bcfe0
lea r11, [r11 + rcx*4]
nop word cs:[rax + rax]
mov edi, dword [r13]
mov ebx, dword [r13 + 4]
shl edi, 3
vpaddd ymm0, ymm0, ymmword [rsi + rdi*4 + 0x4bf0800]
shl ebx, 3
vpaddd ymm0, ymm0, ymmword [rsi + rbx*4 + 0x4bf0800]
mov edi, dword [r13 + 8]
shl edi, 3
vpaddd ymm0, ymm0, ymmword [rsi + rdi*4 + 0x4bf0800]
mov edi, dword [r13 + 0xc]
shl edi, 3
vpaddd ymm0, ymm0, ymmword [rsi + rdi*4 + 0x4bf0800]
add r13, 0x10
cmp r13, r11
jne 0x1400bd150
jmp 0x1400bcfe0
vmovdqa ymm0, ymmword [r12 + 0x1160]
lea rdx, [rax - 1]
mov r8b, 0x3e
bzhi rdx, rdx, r8
mov qword [rsp + 0x60], rdx
lea r9, [rcx - 1]
bzhi r8, r9, r8
mov r9d, eax
and r9d, 3
mov r10d, ecx
and r10d, 3
lea rdx, [rsp + r9*4]
add rdx, 0x70
mov qword [rsp + 0x58], rdx
lea rdx, [rsp + r10*4]
add rdx, 0x100
mov qword [rsp + 0x50], rdx
xor ebx, ebx
jmp 0x1400bd219
vmovdqa ymmword [r15 + 0x1160], ymm0
inc ebx
mov r15, qword [rsp + rbx*8 + 0x30]
test r15, r15
je 0x1400bc0ed
mov r11d, ebx
mov r14, r11
shl r14, 7
lea r14, [r14 + r11*8]
mov r11, rbx
shl r11, 7
lea r12, [r11 + rbx*8]
test rax, rax
je 0x1400bd2f3
lea rbp, [rsp + r12]
add rbp, 0x70
test r9, r9
je 0x1400bd290
mov rdx, r15
mov r11, qword [rsp + 0x58]
lea r13, [r11 + r14]
lea r15, [rsp + r14]
add r15, 0x70
xor r11d, r11d
nop
mov edi, dword [r15 + r11*4]
shl edi, 3
vpsubd ymm0, ymm0, ymmword [rsi + rdi*4 + 0x4bf0800]
inc r11
cmp r9, r11
jne 0x1400bd260
mov r15, rdx
cmp qword [rsp + 0x60], 3
jae 0x1400bd29b
jmp 0x1400bd2f3
mov r13, rbp
cmp qword [rsp + 0x60], 3
jb 0x1400bd2f3
lea rbp, [rbp + rax*4]
mov r11d, dword [r13]
mov edi, dword [r13 + 4]
shl r11d, 3
vmovdqa ymm1, ymmword [rsi + r11*4 + 0x4bf0800]
shl edi, 3
vpaddd ymm1, ymm1, ymmword [rsi + rdi*4 + 0x4bf0800]
mov r11d, dword [r13 + 8]
shl r11d, 3
vpaddd ymm1, ymm1, ymmword [rsi + r11*4 + 0x4bf0800]
mov r11d, dword [r13 + 0xc]
shl r11d, 3
vpaddd ymm1, ymm1, ymmword [rsi + r11*4 + 0x4bf0800]
vpsubd ymm0, ymm0, ymm1
add r13, 0x10
cmp r13, rbp
jne 0x1400bd2a0
test rcx, rcx
je 0x1400bd200
lea r13, [rsp + r12]
add r13, 0x100
test r10, r10
je 0x1400bd360
mov rdx, qword [rsp + 0x50]
lea r12, [rdx + r14]
add r14, rsp
add r14, 0x100
xor r11d, r11d
nop word cs:[rax + rax]
mov edi, dword [r14 + r11*4]
shl edi, 3
vpaddd ymm0, ymm0, ymmword [rsi + rdi*4 + 0x4bf0800]
inc r11
cmp r10, r11
jne 0x1400bd330
cmp r8, 3
jb 0x1400bd200
jmp 0x1400bd36d
mov r12, r13
cmp r8, 3
jb 0x1400bd200
lea r14, [rcx*4]
add r14, r13
nop dword [rax + rax]
mov r11d, dword [r12]
mov edi, dword [r12 + 4]
shl r11d, 3
vpaddd ymm0, ymm0, ymmword [rsi + r11*4 + 0x4bf0800]
shl edi, 3
vpaddd ymm0, ymm0, ymmword [rsi + rdi*4 + 0x4bf0800]
mov r11d, dword [r12 + 8]
shl r11d, 3
vpaddd ymm0, ymm0, ymmword [rsi + r11*4 + 0x4bf0800]
mov r11d, dword [r12 + 0xc]
shl r11d, 3
vpaddd ymm0, ymm0, ymmword [rsi + r11*4 + 0x4bf0800]
add r12, 0x10
cmp r12, r14
jne 0x1400bd380
jmp 0x1400bd200
lea rax, [rsi + rcx*2]
add rax, 0x800
lea rcx, [rsi + rdx*2]
add rcx, 0x800
mov edx, dword [rsp + 0x74]
shl edx, 0xa
lea rdx, [rsi + rdx*2]
add rdx, 0x800
xor r8d, r8d
nop word cs:[rax + rax]
vmovdqa64 zmm0, zmmword [rcx + r8]
vmovdqa64 zmm1, zmmword [rax + r8]
vpaddw zmm0, zmm0, zmmword [r12 + r8 + 0x140]
vpaddw zmm1, zmm1, zmmword [rdx + r8]
vpsubw zmm0, zmm0, zmm1
vmovdqa64 zmmword [r9 + r8 + 0x140], zmm0
add r8, 0x40
cmp r8, 0x800
jne 0x1400bd410
mov eax, dword [rsp + 0x70]
shl eax, 3
mov ecx, dword [rsp + 0x100]
shl ecx, 3
cmp qword [rsp + 0xf0], 1
jne 0x1400bd532
vmovdqa ymm0, ymmword [r12 + 0x1140]
vpsubd ymm0, ymm0, ymmword [rsi + rax*4 + 0x4bf0800]
vpaddd ymm0, ymm0, ymmword [rsi + rcx*4 + 0x4bf0800]
jmp 0x1400bd562
lea rax, [rsi + rcx*2]
add rax, 0x800
lea rcx, [rsi + rdx*2]
add rcx, 0x800
mov edx, dword [rsp + 0x74]
shl edx, 0xa
lea rdx, [rsi + rdx*2]
add rdx, 0x800
xor r8d, r8d
nop word cs:[rax + rax]
vmovdqa64 zmm0, zmmword [rcx + r8]
vmovdqa64 zmm1, zmmword [rax + r8]
vpaddw zmm0, zmm0, zmmword [r12 + r8 + 0x940]
vpaddw zmm1, zmm1, zmmword [rdx + r8]
vpsubw zmm0, zmm0, zmm1
vmovdqa64 zmmword [r9 + r8 + 0x940], zmm0
add r8, 0x40
cmp r8, 0x800
jne 0x1400bd4c0
mov eax, dword [rsp + 0x70]
shl eax, 3
mov ecx, dword [rsp + 0x100]
shl ecx, 3
cmp qword [rsp + 0xf0], 1
jne 0x1400bd575
vmovdqa ymm0, ymmword [r12 + 0x1160]
vpsubd ymm0, ymm0, ymmword [rsi + rax*4 + 0x4bf0800]
vpaddd ymm0, ymm0, ymmword [rsi + rcx*4 + 0x4bf0800]
jmp 0x1400bd5a5
mov edx, dword [rsp + 0x74]
shl edx, 3
vmovdqa ymm0, ymmword [rsi + rcx*4 + 0x4bf0800]
vpaddd ymm0, ymm0, ymmword [r12 + 0x1140]
vmovdqa ymm1, ymmword [rsi + rax*4 + 0x4bf0800]
vpaddd ymm1, ymm1, ymmword [rsi + rdx*4 + 0x4bf0800]
vpsubd ymm0, ymm0, ymm1
vmovdqa ymmword [r9 + 0x1140], ymm0
mov rdi, qword [rsp + 0x68]
jmp 0x1400bc0dc
mov edx, dword [rsp + 0x74]
shl edx, 3
vmovdqa ymm0, ymmword [rsi + rcx*4 + 0x4bf0800]
vpaddd ymm0, ymm0, ymmword [r12 + 0x1160]
vmovdqa ymm1, ymmword [rsi + rax*4 + 0x4bf0800]
vpaddd ymm1, ymm1, ymmword [rsi + rdx*4 + 0x4bf0800]
vpsubd ymm0, ymm0, ymm1
vmovdqa ymmword [r9 + 0x1160], ymm0
jmp 0x1400bc0ed