Function at 0x140009d80
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x2b8
mov rsi, rcx
mov rax, qword [rdx + 0x258]
mov r8, qword [rax + 0x40]
movzx ecx, byte [rax + 0x1181]
test r8, r8
je 0x14000b088
test cl, cl
jne 0x14000a36c
mov ecx, dword [rdx + 0x230]
add ecx, dword [rdx + 0x210]
xor r9d, r9d
mov r12, rax
mov r15, r12
cmp byte [r12 + 0x11dd], 0
jne 0x14000ad45
mov r12, r8
mov r8d, dword [r15 + 0x11c0]
not r8d
add ecx, r8d
js 0x14000ad45
mov r8, qword [r12 + 0x40]
test r8, r8
je 0x140009e0b
cmp byte [r12 + 0x1181], 0
mov r9, r15
je 0x140009dcb
cmp byte [r12 + 0x1181], 0
je 0x14000b090
test r15, r15
je 0x14000a36c
xor r13d, r13d
cmp r15, rax
cmovne r13, rax
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x58], r13
mov qword [rsp + 0x60], 0
vmovdqa xmm0, xmmword [rdx + 0x1e0]
vpand xmm0, xmm0, xmmword [rdx + 0x200]
vmovq rcx, xmm0
tzcnt r8, rcx
vpextrq rax, xmm0, 1
tzcnt rdi, rax
mov eax, dword [rdx + 0x238]
lea eax, [rax + rax*2]
add eax, dword [rdx + 0x248]
mov dword [rsp + 0x2c], eax
mov qword [rsp + 0x110], 0
mov qword [rsp + 0x198], 0
mov qword [rsp + 0x220], 0
xor ebp, ebp
test r13, r13
setne bpl
mov rax, r15
cmovne rax, r13
or edi, 0x40
test rcx, rcx
cmovne edi, r8d
mov qword [rsp + 0x2a8], 0
mov rcx, qword [rsp + rbp*8 + 0x50]
mov byte [rcx + 0x1181], 1
mov r14, r12
test rbp, rbp
jne 0x14000a206
cmp rax, r14
je 0x14000a1f5
mov rcx, rbp
shl rcx, 7
lea r8, [rcx + rbp*8]
lea r11, [rsp + r8]
add r11, 0x90
lea rcx, [rsp + r8]
add rcx, 0x1a0
cmp dword [rax + 0x11c0], 0
mov qword [rsp + 0x38], r11
mov qword [rsp + 0x30], rcx
jle 0x14000a1c2
mov ebx, edi
lea rcx, [rsp + r8]
add rcx, 0x110
mov qword [rsp + 0x48], rcx
movsxd r9, dword [rax + 0x11cc]
cmp r9, 0x5a
mov qword [rsp + 0x40], rbx
je 0x140009fc8
mov r10d, dword [rax + 0x11c4]
lea rcx, [0x1400da640]
movzx r11d, byte [rbx + rcx]
mov ebx, r11d
shr ebx, 3
imul rbx, rbx, 0x168
lea rcx, [0x1400da368]
add rbx, rcx
mov ecx, r10d
and ecx, 3
xor edx, edx
cmp ecx, 2
sete dl
imul rcx, rdx, 0x5a
add rcx, rbx
mov rbx, qword [rsp + 0x40]
movzx ecx, byte [r9 + rcx + 0xb4]
lea rdx, [0x1400da6a0]
add ecx, dword [rdx + r10*4 + 0x40]
mov r10, qword [rsp + 0x48]
and r11d, 7
lea edx, [r11 + r11*8]
mov r11, qword [rsp + 0x38]
add edx, dword [rsp + 0x2c]
imul edx, edx, 0x2d0
add edx, ecx
mov rcx, qword [r10]
lea r9, [rcx + 1]
mov qword [r10], r9
mov dword [r11 + rcx*4], edx
add r8, rsp
add r8, 0x220
movsxd r9, dword [rax + 0x11d4]
cmp r9, 0x5a
mov rcx, qword [rsp + 0x30]
je 0x14000a072
mov ecx, dword [rax + 0x11c4]
lea rdx, [0x1400da640]
movzx edx, byte [rbx + rdx]
mov r10d, edx
shr r10d, 3
imul r10, r10, 0x168
lea r11, [0x1400da368]
add r10, r11
mov r11d, ecx
and r11d, 3
xor ebx, ebx
cmp r11d, 2
sete bl
imul r11, rbx, 0x5a
mov rbx, qword [rsp + 0x40]
add r11, r10
movzx r9d, byte [r9 + r11 + 0xb4]
mov r11, qword [rsp + 0x38]
lea r10, [0x1400da6a0]
add r9d, dword [r10 + rcx*4 + 0x40]
and edx, 7
lea ecx, [rdx + rdx*8]
add ecx, dword [rsp + 0x2c]
imul ecx, ecx, 0x2d0
add ecx, r9d
mov rdx, qword [r8]
lea r9, [rdx + 1]
mov qword [r8], r9
mov r9, qword [rsp + 0x30]
mov dword [r9 + rdx*4], ecx
mov rcx, qword [rsp + 0x30]
cmp dword [rax + 0x11c0], 2
jl 0x14000a1c2
movsxd r9, dword [rax + 0x11d0]
cmp r9, 0x5a
je 0x14000a115
mov ecx, dword [rax + 0x11c8]
lea rdx, [0x1400da640]
movzx edx, byte [rbx + rdx]
mov r10d, edx
shr r10d, 3
imul r10, r10, 0x168
lea r11, [0x1400da368]
add r10, r11
mov r11d, ecx
and r11d, 3
xor ebx, ebx
cmp r11d, 2
sete bl
imul r11, rbx, 0x5a
mov rbx, qword [rsp + 0x40]
add r11, r10
movzx r9d, byte [r9 + r11 + 0xb4]
mov r11, qword [rsp + 0x38]
lea r10, [0x1400da6a0]
add r9d, dword [r10 + rcx*4 + 0x40]
mov r10, qword [rsp + 0x48]
and edx, 7
lea ecx, [rdx + rdx*8]
add ecx, dword [rsp + 0x2c]
imul ecx, ecx, 0x2d0
add ecx, r9d
mov rdx, qword [r10]
lea r9, [rdx + 1]
mov qword [r10], r9
mov dword [r11 + rdx*4], ecx
movsxd r9, dword [rax + 0x11d8]
cmp r9, 0x5a
mov rcx, qword [rsp + 0x30]
je 0x14000a1b5
mov ecx, dword [rax + 0x11c8]
lea rdx, [0x1400da640]
movzx edx, byte [rbx + rdx]
mov r10d, edx
shr r10d, 3
imul r10, r10, 0x168
lea r11, [0x1400da368]
add r10, r11
mov r11d, ecx
and r11d, 3
xor ebx, ebx
cmp r11d, 2
sete bl
imul r11, rbx, 0x5a
mov rbx, qword [rsp + 0x40]
add r11, r10
movzx r9d, byte [r9 + r11 + 0xb4]
mov r11, qword [rsp + 0x38]
lea r10, [0x1400da6a0]
add r9d, dword [r10 + rcx*4 + 0x40]
and edx, 7
lea ecx, [rdx + rdx*8]
add ecx, dword [rsp + 0x2c]
imul ecx, ecx, 0x2d0
add ecx, r9d
mov rdx, qword [r8]
lea r9, [rdx + 1]
mov qword [r8], r9
mov r9, qword [rsp + 0x30]
mov dword [r9 + rdx*4], ecx
mov rcx, qword [rsp + 0x30]
cmp dword [rax + 0x11c0], 3
jge 0x14000ad50
mov rbx, qword [rax + 0x40]
cmp rbx, r14
je 0x14000a1f2
lea r8, [rbx + 0x11c0]
mov qword [rsp + 0x20], rcx
mov ecx, edi
mov edx, dword [rsp + 0x2c]
mov r9, r11
call fcn.14000b250
mov rbx, qword [rbx + 0x40]
cmp rbx, r14
jne 0x14000aed0
mov rax, r14
lea rcx, [rbp - 1]
test ebp, ebp
mov rbp, rcx
jg 0x140009ec2
jmp 0x14000a210
mov r14, qword [rsp + rbp*8 + 0x48]
jmp 0x140009eda
test r13, r13
jne 0x14000a3b8
mov rax, qword [rsp + 0x110]
lea rcx, [rax - 1]
cmp rcx, 1
ja 0x14000a3b8
cmp qword [rsp + 0x220], 1
jne 0x14000a3b8
mov ecx, dword [rsp + 0x90]
shl ecx, 0xa
mov edx, dword [rsp + 0x1a0]
shl edx, 0xa
cmp rax, 1
jne 0x14000a2bd
lea rax, [rsi + rdx*2]
add rax, 0x840
lea rcx, [rsi + rcx*2]
add rcx, 0x840
xor edx, edx
nop
vmovdqa64 zmm0, zmmword [r12 + rdx + 0x940]
vpsubw zmm0, zmm0, zmmword [rcx + rdx - 0x40]
vpaddw zmm0, zmm0, zmmword [rax + rdx - 0x40]
vmovdqa64 zmmword [r15 + rdx + 0x940], zmm0
vmovdqa64 zmm0, zmmword [r12 + rdx + 0x980]
vpsubw zmm0, zmm0, zmmword [rcx + rdx]
vpaddw zmm0, zmm0, zmmword [rax + rdx]
vmovdqa64 zmmword [r15 + rdx + 0x980], zmm0
sub rdx, 0xffffffffffffff80
cmp rdx, 0x800
jne 0x14000a270
jmp 0x14000a328
lea rax, [rsi + rcx*2]
add rax, 0x800
lea rcx, [rsi + rdx*2]
add rcx, 0x800
mov edx, dword [rsp + 0x94]
shl edx, 0xa
lea rdx, [rsi + rdx*2]
add rdx, 0x800
xor r8d, r8d
nop word [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 [r15 + r8 + 0x940], zmm0
add r8, 0x40
cmp r8, 0x800
jne 0x14000a2f0
mov eax, dword [rsp + 0x90]
shl eax, 3
mov ecx, dword [rsp + 0x1a0]
shl ecx, 3
cmp qword [rsp + 0x110], 1
jne 0x14000a383
vmovdqa ymm0, ymmword [r12 + 0x1160]
vpsubd ymm0, ymm0, ymmword [rsi + rax*4 + 0x4bf0800]
vpaddd ymm0, ymm0, ymmword [rsi + rcx*4 + 0x4bf0800]
vmovdqa ymmword [r15 + 0x1160], ymm0
add rsp, 0x2b8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
vzeroupper
ret
mov edx, dword [rsp + 0x94]
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
jmp 0x14000a363
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]
xor eax, eax
mov rcx, r15
mov edx, eax
mov r8, rdx
shl r8, 7
lea rdx, [r8 + rdx*8]
mov r8, rax
shl r8, 7
lea r8, [r8 + rax*8]
mov r9, qword [rsp + r8 + 0x110]
test r9, r9
je 0x14000a630
lea r10, [rsp + r8]
add r10, 0x90
mov r11d, dword [r10]
shl r11d, 0xa
vpsubw zmm22, zmm22, zmmword [rsi + r11*2 + 0x800]
vpsubw zmm23, zmm23, zmmword [rsi + r11*2 + 0x840]
vpsubw zmm24, zmm24, zmmword [rsi + r11*2 + 0x880]
vpsubw zmm25, zmm25, zmmword [rsi + r11*2 + 0x8c0]
vpsubw zmm21, zmm21, zmmword [rsi + r11*2 + 0x900]
vpsubw zmm20, zmm20, zmmword [rsi + r11*2 + 0x940]
vpsubw zmm19, zmm19, zmmword [rsi + r11*2 + 0x980]
vpsubw zmm18, zmm18, zmmword [rsi + r11*2 + 0x9c0]
vpsubw zmm17, zmm17, zmmword [rsi + r11*2 + 0xa00]
vpsubw zmm16, zmm16, zmmword [rsi + r11*2 + 0xa40]
vpsubw zmm5, zmm5, zmmword [rsi + r11*2 + 0xa80]
vpsubw zmm4, zmm4, zmmword [rsi + r11*2 + 0xac0]
vpsubw zmm3, zmm3, zmmword [rsi + r11*2 + 0xb00]
vpsubw zmm2, zmm2, zmmword [rsi + r11*2 + 0xb40]
vpsubw zmm1, zmm1, zmmword [rsi + r11*2 + 0xb80]
vpsubw zmm0, zmm0, zmmword [rsi + r11*2 + 0xbc0]
cmp r9, 1
je 0x14000a630
mov r11d, dword [r10 + 4]
shl r11d, 0xa
vpsubw zmm22, zmm22, zmmword [rsi + r11*2 + 0x800]
vpsubw zmm23, zmm23, zmmword [rsi + r11*2 + 0x840]
vpsubw zmm24, zmm24, zmmword [rsi + r11*2 + 0x880]
vpsubw zmm25, zmm25, zmmword [rsi + r11*2 + 0x8c0]
vpsubw zmm21, zmm21, zmmword [rsi + r11*2 + 0x900]
vpsubw zmm20, zmm20, zmmword [rsi + r11*2 + 0x940]
vpsubw zmm19, zmm19, zmmword [rsi + r11*2 + 0x980]
vpsubw zmm18, zmm18, zmmword [rsi + r11*2 + 0x9c0]
vpsubw zmm17, zmm17, zmmword [rsi + r11*2 + 0xa00]
vpsubw zmm16, zmm16, zmmword [rsi + r11*2 + 0xa40]
vpsubw zmm5, zmm5, zmmword [rsi + r11*2 + 0xa80]
vpsubw zmm4, zmm4, zmmword [rsi + r11*2 + 0xac0]
vpsubw zmm3, zmm3, zmmword [rsi + r11*2 + 0xb00]
vpsubw zmm2, zmm2, zmmword [rsi + r11*2 + 0xb40]
vpsubw zmm1, zmm1, zmmword [rsi + r11*2 + 0xb80]
vpsubw zmm0, zmm0, zmmword [rsi + r11*2 + 0xbc0]
cmp r9, 2
je 0x14000a630
mov r10d, dword [r10 + 8]
shl r10d, 0xa
vpsubw zmm22, zmm22, zmmword [rsi + r10*2 + 0x800]
vpsubw zmm23, zmm23, zmmword [rsi + r10*2 + 0x840]
vpsubw zmm24, zmm24, zmmword [rsi + r10*2 + 0x880]
vpsubw zmm25, zmm25, zmmword [rsi + r10*2 + 0x8c0]
vpsubw zmm21, zmm21, zmmword [rsi + r10*2 + 0x900]
vpsubw zmm20, zmm20, zmmword [rsi + r10*2 + 0x940]
vpsubw zmm19, zmm19, zmmword [rsi + r10*2 + 0x980]
vpsubw zmm18, zmm18, zmmword [rsi + r10*2 + 0x9c0]
vpsubw zmm17, zmm17, zmmword [rsi + r10*2 + 0xa00]
vpsubw zmm16, zmm16, zmmword [rsi + r10*2 + 0xa40]
vpsubw zmm5, zmm5, zmmword [rsi + r10*2 + 0xa80]
vpsubw zmm4, zmm4, zmmword [rsi + r10*2 + 0xac0]
vpsubw zmm3, zmm3, zmmword [rsi + r10*2 + 0xb00]
vpsubw zmm2, zmm2, zmmword [rsi + r10*2 + 0xb40]
vpsubw zmm1, zmm1, zmmword [rsi + r10*2 + 0xb80]
vpsubw zmm0, zmm0, zmmword [rsi + r10*2 + 0xbc0]
cmp r9, 3
jne 0x14000b0e1
nop word cs:[rax + rax]
mov r9, qword [rsp + r8 + 0x220]
test r9, r9
je 0x14000a76e
add r8, rsp
add r8, 0x1a0
mov r10d, dword [r8]
shl r10d, 0xa
vpaddw zmm22, zmm22, zmmword [rsi + r10*2 + 0x800]
vpaddw zmm23, zmm23, zmmword [rsi + r10*2 + 0x840]
vpaddw zmm24, zmm24, zmmword [rsi + r10*2 + 0x880]
vpaddw zmm25, zmm25, zmmword [rsi + r10*2 + 0x8c0]
vpaddw zmm21, zmm21, zmmword [rsi + r10*2 + 0x900]
vpaddw zmm20, zmm20, zmmword [rsi + r10*2 + 0x940]
vpaddw zmm19, zmm19, zmmword [rsi + r10*2 + 0x980]
vpaddw zmm18, zmm18, zmmword [rsi + r10*2 + 0x9c0]
vpaddw zmm17, zmm17, zmmword [rsi + r10*2 + 0xa00]
vpaddw zmm16, zmm16, zmmword [rsi + r10*2 + 0xa40]
vpaddw zmm5, zmm5, zmmword [rsi + r10*2 + 0xa80]
vpaddw zmm4, zmm4, zmmword [rsi + r10*2 + 0xac0]
vpaddw zmm3, zmm3, zmmword [rsi + r10*2 + 0xb00]
vpaddw zmm2, zmm2, zmmword [rsi + r10*2 + 0xb40]
vpaddw zmm1, zmm1, zmmword [rsi + r10*2 + 0xb80]
vpaddw zmm0, zmm0, zmmword [rsi + r10*2 + 0xbc0]
cmp r9, 1
je 0x14000a76e
mov r8d, dword [r8 + 4]
shl r8d, 0xa
vpaddw zmm22, zmm22, zmmword [rsi + r8*2 + 0x800]
vpaddw zmm23, zmm23, zmmword [rsi + r8*2 + 0x840]
vpaddw zmm24, zmm24, zmmword [rsi + r8*2 + 0x880]
vpaddw zmm25, zmm25, zmmword [rsi + r8*2 + 0x8c0]
vpaddw zmm21, zmm21, zmmword [rsi + r8*2 + 0x900]
vpaddw zmm20, zmm20, zmmword [rsi + r8*2 + 0x940]
vpaddw zmm19, zmm19, zmmword [rsi + r8*2 + 0x980]
vpaddw zmm18, zmm18, zmmword [rsi + r8*2 + 0x9c0]
vpaddw zmm17, zmm17, zmmword [rsi + r8*2 + 0xa00]
vpaddw zmm16, zmm16, zmmword [rsi + r8*2 + 0xa40]
vpaddw zmm5, zmm5, zmmword [rsi + r8*2 + 0xa80]
vpaddw zmm4, zmm4, zmmword [rsi + r8*2 + 0xac0]
vpaddw zmm3, zmm3, zmmword [rsi + r8*2 + 0xb00]
vpaddw zmm2, zmm2, zmmword [rsi + r8*2 + 0xb40]
vpaddw zmm1, zmm1, zmmword [rsi + r8*2 + 0xb80]
vpaddw zmm0, zmm0, zmmword [rsi + r8*2 + 0xbc0]
cmp r9, 2
jne 0x14000aef1
vmovdqa64 zmmword [rcx + 0x940], zmm22
vmovdqa64 zmmword [rcx + 0x980], zmm23
vmovdqa64 zmmword [rcx + 0x9c0], zmm24
vmovdqa64 zmmword [rcx + 0xa00], zmm25
vmovdqa64 zmmword [rcx + 0xa40], zmm21
vmovdqa64 zmmword [rcx + 0xa80], zmm20
vmovdqa64 zmmword [rcx + 0xac0], zmm19
vmovdqa64 zmmword [rcx + 0xb00], zmm18
vmovdqa64 zmmword [rcx + 0xb40], zmm17
vmovdqa64 zmmword [rcx + 0xb80], zmm16
vmovdqa64 zmmword [rcx + 0xbc0], zmm5
vmovdqa64 zmmword [rcx + 0xc00], zmm4
vmovdqa64 zmmword [rcx + 0xc40], zmm3
vmovdqa64 zmmword [rcx + 0xc80], zmm2
vmovdqa64 zmmword [rcx + 0xcc0], zmm1
vmovdqa64 zmmword [rcx + 0xd00], zmm0
inc eax
mov rcx, qword [rsp + rax*8 + 0x50]
test rcx, rcx
jne 0x14000a43d
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 eax, eax
mov rcx, r15
mov edx, eax
mov r8, rdx
shl r8, 7
lea rdx, [r8 + rdx*8]
mov r8, rax
shl r8, 7
lea r8, [r8 + rax*8]
mov r9, qword [rsp + r8 + 0x110]
test r9, r9
je 0x14000aa80
lea r10, [rsp + r8]
add r10, 0x90
mov r11d, dword [r10]
shl r11d, 0xa
or r11d, 0x200
vpsubw zmm22, zmm22, zmmword [rsi + r11*2 + 0x800]
vpsubw zmm23, zmm23, zmmword [rsi + r11*2 + 0x840]
vpsubw zmm24, zmm24, zmmword [rsi + r11*2 + 0x880]
vpsubw zmm25, zmm25, zmmword [rsi + r11*2 + 0x8c0]
vpsubw zmm21, zmm21, zmmword [rsi + r11*2 + 0x900]
vpsubw zmm20, zmm20, zmmword [rsi + r11*2 + 0x940]
vpsubw zmm19, zmm19, zmmword [rsi + r11*2 + 0x980]
vpsubw zmm18, zmm18, zmmword [rsi + r11*2 + 0x9c0]
vpsubw zmm17, zmm17, zmmword [rsi + r11*2 + 0xa00]
vpsubw zmm16, zmm16, zmmword [rsi + r11*2 + 0xa40]
vpsubw zmm5, zmm5, zmmword [rsi + r11*2 + 0xa80]
vpsubw zmm4, zmm4, zmmword [rsi + r11*2 + 0xac0]
vpsubw zmm3, zmm3, zmmword [rsi + r11*2 + 0xb00]
vpsubw zmm2, zmm2, zmmword [rsi + r11*2 + 0xb40]
vpsubw zmm1, zmm1, zmmword [rsi + r11*2 + 0xb80]
vpsubw zmm0, zmm0, zmmword [rsi + r11*2 + 0xbc0]
cmp r9, 1
je 0x14000aa80
mov r11d, dword [r10 + 4]
shl r11d, 0xa
or r11d, 0x200
vpsubw zmm22, zmm22, zmmword [rsi + r11*2 + 0x800]
vpsubw zmm23, zmm23, zmmword [rsi + r11*2 + 0x840]
vpsubw zmm24, zmm24, zmmword [rsi + r11*2 + 0x880]
vpsubw zmm25, zmm25, zmmword [rsi + r11*2 + 0x8c0]
vpsubw zmm21, zmm21, zmmword [rsi + r11*2 + 0x900]
vpsubw zmm20, zmm20, zmmword [rsi + r11*2 + 0x940]
vpsubw zmm19, zmm19, zmmword [rsi + r11*2 + 0x980]
vpsubw zmm18, zmm18, zmmword [rsi + r11*2 + 0x9c0]
vpsubw zmm17, zmm17, zmmword [rsi + r11*2 + 0xa00]
vpsubw zmm16, zmm16, zmmword [rsi + r11*2 + 0xa40]
vpsubw zmm5, zmm5, zmmword [rsi + r11*2 + 0xa80]
vpsubw zmm4, zmm4, zmmword [rsi + r11*2 + 0xac0]
vpsubw zmm3, zmm3, zmmword [rsi + r11*2 + 0xb00]
vpsubw zmm2, zmm2, zmmword [rsi + r11*2 + 0xb40]
vpsubw zmm1, zmm1, zmmword [rsi + r11*2 + 0xb80]
vpsubw zmm0, zmm0, zmmword [rsi + r11*2 + 0xbc0]
cmp r9, 2
je 0x14000aa80
mov r10d, dword [r10 + 8]
shl r10d, 0xa
or r10d, 0x200
vpsubw zmm22, zmm22, zmmword [rsi + r10*2 + 0x800]
vpsubw zmm23, zmm23, zmmword [rsi + r10*2 + 0x840]
vpsubw zmm24, zmm24, zmmword [rsi + r10*2 + 0x880]
vpsubw zmm25, zmm25, zmmword [rsi + r10*2 + 0x8c0]
vpsubw zmm21, zmm21, zmmword [rsi + r10*2 + 0x900]
vpsubw zmm20, zmm20, zmmword [rsi + r10*2 + 0x940]
vpsubw zmm19, zmm19, zmmword [rsi + r10*2 + 0x980]
vpsubw zmm18, zmm18, zmmword [rsi + r10*2 + 0x9c0]
vpsubw zmm17, zmm17, zmmword [rsi + r10*2 + 0xa00]
vpsubw zmm16, zmm16, zmmword [rsi + r10*2 + 0xa40]
vpsubw zmm5, zmm5, zmmword [rsi + r10*2 + 0xa80]
vpsubw zmm4, zmm4, zmmword [rsi + r10*2 + 0xac0]
vpsubw zmm3, zmm3, zmmword [rsi + r10*2 + 0xb00]
vpsubw zmm2, zmm2, zmmword [rsi + r10*2 + 0xb40]
vpsubw zmm1, zmm1, zmmword [rsi + r10*2 + 0xb80]
vpsubw zmm0, zmm0, zmmword [rsi + r10*2 + 0xbc0]
cmp r9, 3
jne 0x14000b18f
nop word cs:[rax + rax]
mov r9, qword [rsp + r8 + 0x220]
test r9, r9
je 0x14000abcc
add r8, rsp
add r8, 0x1a0
mov r10d, dword [r8]
shl r10d, 0xa
or r10d, 0x200
vpaddw zmm22, zmm22, zmmword [rsi + r10*2 + 0x800]
vpaddw zmm23, zmm23, zmmword [rsi + r10*2 + 0x840]
vpaddw zmm24, zmm24, zmmword [rsi + r10*2 + 0x880]
vpaddw zmm25, zmm25, zmmword [rsi + r10*2 + 0x8c0]
vpaddw zmm21, zmm21, zmmword [rsi + r10*2 + 0x900]
vpaddw zmm20, zmm20, zmmword [rsi + r10*2 + 0x940]
vpaddw zmm19, zmm19, zmmword [rsi + r10*2 + 0x980]
vpaddw zmm18, zmm18, zmmword [rsi + r10*2 + 0x9c0]
vpaddw zmm17, zmm17, zmmword [rsi + r10*2 + 0xa00]
vpaddw zmm16, zmm16, zmmword [rsi + r10*2 + 0xa40]
vpaddw zmm5, zmm5, zmmword [rsi + r10*2 + 0xa80]
vpaddw zmm4, zmm4, zmmword [rsi + r10*2 + 0xac0]
vpaddw zmm3, zmm3, zmmword [rsi + r10*2 + 0xb00]
vpaddw zmm2, zmm2, zmmword [rsi + r10*2 + 0xb40]
vpaddw zmm1, zmm1, zmmword [rsi + r10*2 + 0xb80]
vpaddw zmm0, zmm0, zmmword [rsi + r10*2 + 0xbc0]
cmp r9, 1
je 0x14000abcc
mov r8d, dword [r8 + 4]
shl r8d, 0xa
or r8d, 0x200
vpaddw zmm22, zmm22, zmmword [rsi + r8*2 + 0x800]
vpaddw zmm23, zmm23, zmmword [rsi + r8*2 + 0x840]
vpaddw zmm24, zmm24, zmmword [rsi + r8*2 + 0x880]
vpaddw zmm25, zmm25, zmmword [rsi + r8*2 + 0x8c0]
vpaddw zmm21, zmm21, zmmword [rsi + r8*2 + 0x900]
vpaddw zmm20, zmm20, zmmword [rsi + r8*2 + 0x940]
vpaddw zmm19, zmm19, zmmword [rsi + r8*2 + 0x980]
vpaddw zmm18, zmm18, zmmword [rsi + r8*2 + 0x9c0]
vpaddw zmm17, zmm17, zmmword [rsi + r8*2 + 0xa00]
vpaddw zmm16, zmm16, zmmword [rsi + r8*2 + 0xa40]
vpaddw zmm5, zmm5, zmmword [rsi + r8*2 + 0xa80]
vpaddw zmm4, zmm4, zmmword [rsi + r8*2 + 0xac0]
vpaddw zmm3, zmm3, zmmword [rsi + r8*2 + 0xb00]
vpaddw zmm2, zmm2, zmmword [rsi + r8*2 + 0xb40]
vpaddw zmm1, zmm1, zmmword [rsi + r8*2 + 0xb80]
vpaddw zmm0, zmm0, zmmword [rsi + r8*2 + 0xbc0]
cmp r9, 2
jne 0x14000af9f
vmovdqa64 zmmword [rcx + 0xd40], zmm22
vmovdqa64 zmmword [rcx + 0xd80], zmm23
vmovdqa64 zmmword [rcx + 0xdc0], zmm24
vmovdqa64 zmmword [rcx + 0xe00], zmm25
vmovdqa64 zmmword [rcx + 0xe40], zmm21
vmovdqa64 zmmword [rcx + 0xe80], zmm20
vmovdqa64 zmmword [rcx + 0xec0], zmm19
vmovdqa64 zmmword [rcx + 0xf00], zmm18
vmovdqa64 zmmword [rcx + 0xf40], zmm17
vmovdqa64 zmmword [rcx + 0xf80], zmm16
vmovdqa64 zmmword [rcx + 0xfc0], zmm5
vmovdqa64 zmmword [rcx + 0x1000], zmm4
vmovdqa64 zmmword [rcx + 0x1040], zmm3
vmovdqa64 zmmword [rcx + 0x1080], zmm2
vmovdqa64 zmmword [rcx + 0x10c0], zmm1
vmovdqa64 zmmword [rcx + 0x1100], zmm0
inc eax
mov rcx, qword [rsp + rax*8 + 0x50]
test rcx, rcx
jne 0x14000a873
vmovdqa ymm0, ymmword [r12 + 0x1160]
xor eax, eax
mov ecx, eax
mov rdx, rcx
shl rdx, 7
lea rcx, [rdx + rcx*8]
mov rdx, rax
shl rdx, 7
lea rdx, [rdx + rax*8]
mov r8, qword [rsp + rdx + 0x110]
test r8, r8
je 0x14000ace0
lea r9, [rsp + rdx]
add r9, 0x90
mov r10d, dword [r9]
shl r10d, 3
vpsubd ymm0, ymm0, ymmword [rsi + r10*4 + 0x4bf0800]
cmp r8, 1
je 0x14000ace0
mov r10d, dword [r9 + 4]
shl r10d, 3
vpsubd ymm0, ymm0, ymmword [rsi + r10*4 + 0x4bf0800]
cmp r8, 2
je 0x14000ace0
mov r9d, dword [r9 + 8]
shl r9d, 3
vpsubd ymm0, ymm0, ymmword [rsi + r9*4 + 0x4bf0800]
cmp r8, 3
jne 0x14000b0ab
nop word cs:[rax + rax]
mov r8, qword [rsp + rdx + 0x220]
test r8, r8
je 0x14000ad27
add rdx, rsp
add rdx, 0x1a0
mov r9d, dword [rdx]
shl r9d, 3
vpaddd ymm0, ymm0, ymmword [rsi + r9*4 + 0x4bf0800]
cmp r8, 1
je 0x14000ad27
mov edx, dword [rdx + 4]
shl edx, 3
vpaddd ymm0, ymm0, ymmword [rsi + rdx*4 + 0x4bf0800]
cmp r8, 2
jne 0x14000b054
vmovdqa ymmword [r15 + 0x1160], ymm0
inc eax
mov r15, qword [rsp + rax*8 + 0x50]
test r15, r15
jne 0x14000ac58
jmp 0x14000a36c
mov r12, r15
mov r15, r9
jmp 0x140009e0b
mov r9d, 0x473
mov qword [rsp + 0x88], r8
movsxd r8, dword [rax + r9*4 + 8]
cmp r8, 0x5a
je 0x14000adef
mov ecx, dword [rax + r9*4]
lea rdx, [0x1400da640]
movzx edx, byte [rbx + rdx]
mov r11d, edx
shr r11d, 3
imul r11, r11, 0x168
lea r10, [0x1400da368]
add r11, r10
mov ebx, ecx
and ebx, 3
xor r10d, r10d
cmp ebx, 2
mov rbx, qword [rsp + 0x40]
sete r10b
imul r10, r10, 0x5a
add r10, r11
movzx r10d, byte [r8 + r10 + 0xb4]
lea r11, [0x1400da6a0]
add r10d, dword [r11 + rcx*4 + 0x40]
mov r11, qword [rsp + 0x38]
and edx, 7
lea ecx, [rdx + rdx*8]
add ecx, dword [rsp + 0x2c]
imul ecx, ecx, 0x2d0
add ecx, r10d
mov r8, qword [rsp + 0x48]
mov rdx, qword [r8]
lea r10, [rdx + 1]
mov qword [r8], r10
mov dword [r11 + rdx*4], ecx
movsxd rcx, dword [rax + r9*4 + 0x10]
cmp rcx, 0x5a
mov r8, qword [rsp + 0x88]
je 0x14000aea8
mov r10d, dword [rax + r9*4]
mov qword [rsp + 0x78], r10
mov qword [rsp + 0x80], rcx
lea rcx, [0x1400da640]
movzx r11d, byte [rbx + rcx]
mov qword [rsp + 0x70], r11
shr r11d, 3
imul r11, r11, 0x168
lea rcx, [0x1400da368]
add r11, rcx
mov ebx, r10d
and ebx, 3
xor ecx, ecx
cmp ebx, 2
mov rbx, qword [rsp + 0x40]
sete cl
imul rcx, rcx, 0x5a
add rcx, r11
mov r11, qword [rsp + 0x38]
mov r10, qword [rsp + 0x80]
movzx ecx, byte [r10 + rcx + 0xb4]
lea r10, [0x1400da6a0]
mov rdx, qword [rsp + 0x78]
add ecx, dword [r10 + rdx*4 + 0x40]
mov rdx, qword [rsp + 0x70]
and edx, 7
lea edx, [rdx + rdx*8]
add edx, dword [rsp + 0x2c]
imul edx, edx, 0x2d0
add edx, ecx
mov rcx, qword [r8]
lea r10, [rcx + 1]
mov qword [r8], r10
mov r10, qword [rsp + 0x30]
mov dword [r10 + rcx*4], edx
movsxd rcx, dword [rax + 0x11c0]
lea rdx, [r9 + 1]
add r9, 0xfffffffffffffb90
cmp r9, rcx
mov r9, rdx
mov rcx, qword [rsp + 0x30]
jge 0x14000a1c2
jmp 0x14000ad5e
lea r8, [rbx + 0x11c0]
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x20], rax
mov ecx, edi
mov edx, dword [rsp + 0x2c]
mov r9, qword [rsp + 0x38]
jmp 0x14000a1e0
add rdx, rsp
add rdx, 0x1a0
shl r9, 2
mov r8d, 8
mov r10d, dword [rdx + r8]
shl r10d, 0xa
vpaddw zmm22, zmm22, zmmword [rsi + r10*2 + 0x800]
vpaddw zmm23, zmm23, zmmword [rsi + r10*2 + 0x840]
vpaddw zmm24, zmm24, zmmword [rsi + r10*2 + 0x880]
vpaddw zmm25, zmm25, zmmword [rsi + r10*2 + 0x8c0]
vpaddw zmm21, zmm21, zmmword [rsi + r10*2 + 0x900]
vpaddw zmm20, zmm20, zmmword [rsi + r10*2 + 0x940]
vpaddw zmm19, zmm19, zmmword [rsi + r10*2 + 0x980]
vpaddw zmm18, zmm18, zmmword [rsi + r10*2 + 0x9c0]
vpaddw zmm17, zmm17, zmmword [rsi + r10*2 + 0xa00]
vpaddw zmm16, zmm16, zmmword [rsi + r10*2 + 0xa40]
vpaddw zmm5, zmm5, zmmword [rsi + r10*2 + 0xa80]
vpaddw zmm4, zmm4, zmmword [rsi + r10*2 + 0xac0]
vpaddw zmm3, zmm3, zmmword [rsi + r10*2 + 0xb00]
vpaddw zmm2, zmm2, zmmword [rsi + r10*2 + 0xb40]
vpaddw zmm1, zmm1, zmmword [rsi + r10*2 + 0xb80]
vpaddw zmm0, zmm0, zmmword [rsi + r10*2 + 0xbc0]
add r8, 4
cmp r9, r8
je 0x14000a76e
jmp 0x14000af05
add rdx, rsp
add rdx, 0x1a0
shl r9, 2
mov r8d, 8
mov r10d, dword [rdx + r8]
shl r10d, 0xa
or r10d, 0x200
vpaddw zmm22, zmm22, zmmword [rsi + r10*2 + 0x800]
vpaddw zmm23, zmm23, zmmword [rsi + r10*2 + 0x840]
vpaddw zmm24, zmm24, zmmword [rsi + r10*2 + 0x880]
vpaddw zmm25, zmm25, zmmword [rsi + r10*2 + 0x8c0]
vpaddw zmm21, zmm21, zmmword [rsi + r10*2 + 0x900]
vpaddw zmm20, zmm20, zmmword [rsi + r10*2 + 0x940]
vpaddw zmm19, zmm19, zmmword [rsi + r10*2 + 0x980]
vpaddw zmm18, zmm18, zmmword [rsi + r10*2 + 0x9c0]
vpaddw zmm17, zmm17, zmmword [rsi + r10*2 + 0xa00]
vpaddw zmm16, zmm16, zmmword [rsi + r10*2 + 0xa40]
vpaddw zmm5, zmm5, zmmword [rsi + r10*2 + 0xa80]
vpaddw zmm4, zmm4, zmmword [rsi + r10*2 + 0xac0]
vpaddw zmm3, zmm3, zmmword [rsi + r10*2 + 0xb00]
vpaddw zmm2, zmm2, zmmword [rsi + r10*2 + 0xb40]
vpaddw zmm1, zmm1, zmmword [rsi + r10*2 + 0xb80]
vpaddw zmm0, zmm0, zmmword [rsi + r10*2 + 0xbc0]
add r8, 4
cmp r9, r8
je 0x14000abcc
jmp 0x14000afb3
add rcx, rsp
add rcx, 0x1a0
shl r8, 2
mov edx, 8
mov r9d, dword [rcx + rdx]
shl r9d, 3
vpaddd ymm0, ymm0, ymmword [rsi + r9*4 + 0x4bf0800]
add rdx, 4
cmp r8, rdx
je 0x14000ad27
jmp 0x14000b067
test cl, cl
jne 0x14000a36c
mov rcx, rsi
add rsp, 0x2b8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp 0x140012330
lea r9, [rsp + rcx]
add r9, 0x90
shl r8, 2
mov r10d, 0xc
mov r11d, dword [r9 + r10]
shl r11d, 3
vpsubd ymm0, ymm0, ymmword [rsi + r11*4 + 0x4bf0800]
add r10, 4
cmp r8, r10
je 0x14000ace0
jmp 0x14000b0c0
lea r10, [rsp + rdx]
add r10, 0x90
shl r9, 2
mov r11d, 0xc
mov edi, dword [r10 + r11]
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 r11, 4
cmp r9, r11
je 0x14000a630
jmp 0x14000b0f6
lea r10, [rsp + rdx]
add r10, 0x90
shl r9, 2
mov r11d, 0xc
mov edi, dword [r10 + r11]
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 r11, 4
cmp r9, r11
je 0x14000aa80
jmp 0x14000b1a4