Function at 0x140009f20
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 0x14000b22d
test cl, cl
jne 0x14000a50c
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 0x14000a558
mov r12, r8
mov r8d, dword [r15 + 0x11c0]
not r8d
add ecx, r8d
js 0x14000a558
mov r8, qword [r12 + 0x40]
test r8, r8
je 0x140009fab
cmp byte [r12 + 0x1181], 0
mov r9, r15
je 0x140009f6b
cmp byte [r12 + 0x1181], 0
je 0x14000b235
test r15, r15
je 0x14000a50c
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 0x14000a3a6
cmp rax, r14
je 0x14000a395
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 0x14000a362
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 0x14000a168
mov r10d, dword [rax + 0x11c4]
lea rcx, [0x1400da490]
movzx r11d, byte [rbx + rcx]
mov ebx, r11d
shr ebx, 3
imul rbx, rbx, 0x168
lea rcx, [0x1400da1b8]
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, [0x1400da4f0]
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 0x14000a212
mov ecx, dword [rax + 0x11c4]
lea rdx, [0x1400da490]
movzx edx, byte [rbx + rdx]
mov r10d, edx
shr r10d, 3
imul r10, r10, 0x168
lea r11, [0x1400da1b8]
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, [0x1400da4f0]
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 0x14000a362
movsxd r9, dword [rax + 0x11d0]
cmp r9, 0x5a
je 0x14000a2b5
mov ecx, dword [rax + 0x11c8]
lea rdx, [0x1400da490]
movzx edx, byte [rbx + rdx]
mov r10d, edx
shr r10d, 3
imul r10, r10, 0x168
lea r11, [0x1400da1b8]
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, [0x1400da4f0]
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 0x14000a355
mov ecx, dword [rax + 0x11c8]
lea rdx, [0x1400da490]
movzx edx, byte [rbx + rdx]
mov r10d, edx
shr r10d, 3
imul r10, r10, 0x168
lea r11, [0x1400da1b8]
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, [0x1400da4f0]
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 0x14000aef5
mov rbx, qword [rax + 0x40]
cmp rbx, r14
je 0x14000a392
lea r8, [rbx + 0x11c0]
mov qword [rsp + 0x20], rcx
mov ecx, edi
mov edx, dword [rsp + 0x2c]
mov r9, r11
call fcn.14000b3f0
mov rbx, qword [rbx + 0x40]
cmp rbx, r14
jne 0x14000b075
mov rax, r14
lea rcx, [rbp - 1]
test ebp, ebp
mov rbp, rcx
jg 0x14000a062
jmp 0x14000a3b0
mov r14, qword [rsp + rbp*8 + 0x48]
jmp 0x14000a07a
test r13, r13
jne 0x14000a563
mov rax, qword [rsp + 0x110]
lea rcx, [rax - 1]
cmp rcx, 1
ja 0x14000a563
cmp qword [rsp + 0x220], 1
jne 0x14000a563
mov ecx, dword [rsp + 0x90]
shl ecx, 0xa
mov edx, dword [rsp + 0x1a0]
shl edx, 0xa
cmp rax, 1
jne 0x14000a45d
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 0x14000a410
jmp 0x14000a4c8
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 0x14000a490
mov eax, dword [rsp + 0x90]
shl eax, 3
mov ecx, dword [rsp + 0x1a0]
shl ecx, 3
cmp qword [rsp + 0x110], 1
jne 0x14000a523
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 0x14000a503
mov r12, r15
mov r15, r9
jmp 0x140009fab
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 0x14000a7e0
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 0x14000a7e0
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 0x14000a7e0
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 0x14000b286
nop word cs:[rax + rax]
mov r9, qword [rsp + r8 + 0x220]
test r9, r9
je 0x14000a91e
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 0x14000a91e
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 0x14000b096
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 0x14000a5e8
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 0x14000ac30
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 0x14000ac30
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 0x14000ac30
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 0x14000b334
nop word cs:[rax + rax]
mov r9, qword [rsp + r8 + 0x220]
test r9, r9
je 0x14000ad7c
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 0x14000ad7c
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 0x14000b144
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 0x14000aa23
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 0x14000ae90
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 0x14000ae90
mov r10d, dword [r9 + 4]
shl r10d, 3
vpsubd ymm0, ymm0, ymmword [rsi + r10*4 + 0x4bf0800]
cmp r8, 2
je 0x14000ae90
mov r9d, dword [r9 + 8]
shl r9d, 3
vpsubd ymm0, ymm0, ymmword [rsi + r9*4 + 0x4bf0800]
cmp r8, 3
jne 0x14000b250
nop word cs:[rax + rax]
mov r8, qword [rsp + rdx + 0x220]
test r8, r8
je 0x14000aed7
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 0x14000aed7
mov edx, dword [rdx + 4]
shl edx, 3
vpaddd ymm0, ymm0, ymmword [rsi + rdx*4 + 0x4bf0800]
cmp r8, 2
jne 0x14000b1f9
vmovdqa ymmword [r15 + 0x1160], ymm0
inc eax
mov r15, qword [rsp + rax*8 + 0x50]
test r15, r15
jne 0x14000ae08
jmp 0x14000a50c
mov r9d, 0x473
mov qword [rsp + 0x88], r8
movsxd r8, dword [rax + r9*4 + 8]
cmp r8, 0x5a
je 0x14000af94
mov ecx, dword [rax + r9*4]
lea rdx, [0x1400da490]
movzx edx, byte [rbx + rdx]
mov r11d, edx
shr r11d, 3
imul r11, r11, 0x168
lea r10, [0x1400da1b8]
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, [0x1400da4f0]
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 0x14000b04d
mov r10d, dword [rax + r9*4]
mov qword [rsp + 0x78], r10
mov qword [rsp + 0x80], rcx
lea rcx, [0x1400da490]
movzx r11d, byte [rbx + rcx]
mov qword [rsp + 0x70], r11
shr r11d, 3
imul r11, r11, 0x168
lea rcx, [0x1400da1b8]
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, [0x1400da4f0]
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 0x14000a362
jmp 0x14000af03
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 0x14000a380
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 0x14000a91e
jmp 0x14000b0aa
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 0x14000ad7c
jmp 0x14000b158
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 0x14000aed7
jmp 0x14000b20c
test cl, cl
jne 0x14000a50c
mov rcx, rsi
add rsp, 0x2b8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp 0x1400124b0
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 0x14000ae90
jmp 0x14000b265
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 0x14000a7e0
jmp 0x14000b29b
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 0x14000ac30
jmp 0x14000b349