Function at 0x51c520
Capabilities:
Encode data using base64
Encode data using xor

Disassembly:
sub rsp, 0x40
mov qword [rsp + 0x38], rbp
lea rbp, [rsp + 0x38]
mov rsi, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x58]
shr rdx, 7
shl rdx, 7
je 0x51d2ed
add rdx, rdi
mov qword [rsp + 0x30], rdx
mov rax, qword [rsi]
mov rbx, qword [rsi + 8]
mov rcx, qword [rsi + 0x10]
mov r8, qword [rsi + 0x18]
mov rdx, qword [rsi + 0x20]
mov r9, qword [rsi + 0x28]
mov r10, qword [rsi + 0x30]
mov r11, qword [rsi + 0x38]
vmovdqu ymm9, ymmword [0x006e5d80]
mov rbp, qword [0x0083ea70]
vmovdqu ymm4, ymmword [rdi]
vpshufb ymm4, ymm4, ymm9
vmovdqu ymm5, ymmword [rdi + 0x20]
vpshufb ymm5, ymm5, ymm9
vmovdqu ymm6, ymmword [rdi + 0x40]
vpshufb ymm6, ymm6, ymm9
vmovdqu ymm7, ymmword [rdi + 0x60]
vpshufb ymm7, ymm7, ymm9
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], 4
vpaddq ymm0, ymm4, ymmword [rbp]
vmovdqu ymmword [rsp], ymm0
vperm2f128 ymm0, ymm7, ymm6, 3
vpalignr ymm0, ymm0, ymm6, 8
vpaddq ymm0, ymm0, ymm4
vperm2f128 ymm1, ymm5, ymm4, 3
vpalignr ymm1, ymm1, ymm4, 8
vpsrlq ymm2, ymm1, 1
vpsllq ymm3, ymm1, 0x3f
vpor ymm3, ymm3, ymm2
vpsrlq ymm8, ymm1, 7
mov rdi, rax
rorx r13, rdx, 0x29
rorx r14, rdx, 0x12
add r11, qword [rsp]
or rdi, rcx
mov r15, r9
rorx r12, rax, 0x22
xor r13, r14
xor r15, r10
rorx r14, rdx, 0xe
and r15, rdx
xor r13, r14
rorx r14, rax, 0x27
add r8, r11
and rdi, rbx
xor r14, r12
rorx r12, rax, 0x1c
xor r15, r10
xor r14, r12
mov r12, rax
and r12, rcx
add r15, r13
or rdi, r12
add r11, r14
add r8, r15
add r11, r15
add r11, rdi
vpsrlq ymm2, ymm1, 8
vpsllq ymm1, ymm1, 0x38
vpor ymm1, ymm1, ymm2
vpxor ymm3, ymm3, ymm8
vpxor ymm1, ymm3, ymm1
vpaddq ymm0, ymm0, ymm1
vperm2f128 ymm4, ymm0, ymm0, 0
vpand ymm0, ymm0, ymmword [0x006e5d60]
vperm2f128 ymm2, ymm7, ymm7, 0x11
vpsrlq ymm8, ymm2, 6
mov rdi, r11
rorx r13, r8, 0x29
rorx r14, r8, 0x12
add r10, qword [rsp + 8]
or rdi, rbx
mov r15, rdx
rorx r12, r11, 0x22
xor r13, r14
xor r15, r9
rorx r14, r8, 0xe
xor r13, r14
rorx r14, r11, 0x27
and r15, r8
add rcx, r10
and rdi, rax
xor r14, r12
rorx r12, r11, 0x1c
xor r15, r9
xor r14, r12
mov r12, r11
and r12, rbx
add r15, r13
or rdi, r12
add r10, r14
add rcx, r15
add r10, r15
add r10, rdi
vpsrlq ymm3, ymm2, 0x13
vpsllq ymm1, ymm2, 0x2d
vpor ymm3, ymm3, ymm1
vpxor ymm8, ymm8, ymm3
vpsrlq ymm3, ymm2, 0x3d
vpsllq ymm1, ymm2, 3
vpor ymm3, ymm3, ymm1
vpxor ymm8, ymm8, ymm3
vpaddq ymm4, ymm4, ymm8
vpsrlq ymm8, ymm4, 6
mov rdi, r10
rorx r13, rcx, 0x29
add r9, qword [rsp + 0x10]
rorx r14, rcx, 0x12
or rdi, rax
mov r15, r8
xor r15, rdx
rorx r12, r10, 0x22
xor r13, r14
and r15, rcx
rorx r14, rcx, 0xe
add rbx, r9
and rdi, r11
xor r13, r14
rorx r14, r10, 0x27
xor r15, rdx
xor r14, r12
rorx r12, r10, 0x1c
xor r14, r12
mov r12, r10
and r12, rax
add r15, r13
or rdi, r12
add r9, r14
add rbx, r15
add r9, r15
add r9, rdi
vpsrlq ymm3, ymm4, 0x13
vpsllq ymm1, ymm4, 0x2d
vpor ymm3, ymm3, ymm1
vpxor ymm8, ymm8, ymm3
vpsrlq ymm3, ymm4, 0x3d
vpsllq ymm1, ymm4, 3
vpor ymm3, ymm3, ymm1
vpxor ymm8, ymm8, ymm3
vpaddq ymm2, ymm0, ymm8
vpblendd ymm4, ymm4, ymm2, 0xf0
mov rdi, r9
rorx r13, rbx, 0x29
rorx r14, rbx, 0x12
add rdx, qword [rsp + 0x18]
or rdi, r11
mov r15, rcx
rorx r12, r9, 0x22
xor r13, r14
xor r15, r8
rorx r14, rbx, 0xe
and r15, rbx
add rax, rdx
and rdi, r10
xor r13, r14
xor r15, r8
rorx r14, r9, 0x27
add r15, r13
xor r14, r12
add rax, r15
rorx r12, r9, 0x1c
xor r14, r12
mov r12, r9
and r12, r11
or rdi, r12
add rdx, r14
add rdx, r15
add rdx, rdi
vpaddq ymm0, ymm5, ymmword [rbp + 0x20]
vmovdqu ymmword [rsp], ymm0
vperm2f128 ymm0, ymm4, ymm7, 3
vpalignr ymm0, ymm0, ymm7, 8
vpaddq ymm0, ymm0, ymm5
vperm2f128 ymm1, ymm6, ymm5, 3
vpalignr ymm1, ymm1, ymm5, 8
vpsrlq ymm2, ymm1, 1
vpsllq ymm3, ymm1, 0x3f
vpor ymm3, ymm3, ymm2
vpsrlq ymm8, ymm1, 7
mov rdi, rdx
rorx r13, rax, 0x29
rorx r14, rax, 0x12
add r8, qword [rsp]
or rdi, r10
mov r15, rbx
rorx r12, rdx, 0x22
xor r13, r14
xor r15, rcx
rorx r14, rax, 0xe
and r15, rax
xor r13, r14
rorx r14, rdx, 0x27
add r11, r8
and rdi, r9
xor r14, r12
rorx r12, rdx, 0x1c
xor r15, rcx
xor r14, r12
mov r12, rdx
and r12, r10
add r15, r13
or rdi, r12
add r8, r14
add r11, r15
add r8, r15
add r8, rdi
vpsrlq ymm2, ymm1, 8
vpsllq ymm1, ymm1, 0x38
vpor ymm1, ymm1, ymm2
vpxor ymm3, ymm3, ymm8
vpxor ymm1, ymm3, ymm1
vpaddq ymm0, ymm0, ymm1
vperm2f128 ymm5, ymm0, ymm0, 0
vpand ymm0, ymm0, ymmword [0x006e5d60]
vperm2f128 ymm2, ymm4, ymm4, 0x11
vpsrlq ymm8, ymm2, 6
mov rdi, r8
rorx r13, r11, 0x29
rorx r14, r11, 0x12
add rcx, qword [rsp + 8]
or rdi, r9
mov r15, rax
rorx r12, r8, 0x22
xor r13, r14
xor r15, rbx
rorx r14, r11, 0xe
xor r13, r14
rorx r14, r8, 0x27
and r15, r11
add r10, rcx
and rdi, rdx
xor r14, r12
rorx r12, r8, 0x1c
xor r15, rbx
xor r14, r12
mov r12, r8
and r12, r9
add r15, r13
or rdi, r12
add rcx, r14
add r10, r15
add rcx, r15
add rcx, rdi
vpsrlq ymm3, ymm2, 0x13
vpsllq ymm1, ymm2, 0x2d
vpor ymm3, ymm3, ymm1
vpxor ymm8, ymm8, ymm3
vpsrlq ymm3, ymm2, 0x3d
vpsllq ymm1, ymm2, 3
vpor ymm3, ymm3, ymm1
vpxor ymm8, ymm8, ymm3
vpaddq ymm5, ymm5, ymm8
vpsrlq ymm8, ymm5, 6
mov rdi, rcx
rorx r13, r10, 0x29
add rbx, qword [rsp + 0x10]
rorx r14, r10, 0x12
or rdi, rdx
mov r15, r11
xor r15, rax
rorx r12, rcx, 0x22
xor r13, r14
and r15, r10
rorx r14, r10, 0xe
add r9, rbx
and rdi, r8
xor r13, r14
rorx r14, rcx, 0x27
xor r15, rax
xor r14, r12
rorx r12, rcx, 0x1c
xor r14, r12
mov r12, rcx
and r12, rdx
add r15, r13
or rdi, r12
add rbx, r14
add r9, r15
add rbx, r15
add rbx, rdi
vpsrlq ymm3, ymm5, 0x13
vpsllq ymm1, ymm5, 0x2d
vpor ymm3, ymm3, ymm1
vpxor ymm8, ymm8, ymm3
vpsrlq ymm3, ymm5, 0x3d
vpsllq ymm1, ymm5, 3
vpor ymm3, ymm3, ymm1
vpxor ymm8, ymm8, ymm3
vpaddq ymm2, ymm0, ymm8
vpblendd ymm5, ymm5, ymm2, 0xf0
mov rdi, rbx
rorx r13, r9, 0x29
rorx r14, r9, 0x12
add rax, qword [rsp + 0x18]
or rdi, r8
mov r15, r10
rorx r12, rbx, 0x22
xor r13, r14
xor r15, r11
rorx r14, r9, 0xe
and r15, r9
add rdx, rax
and rdi, rcx
xor r13, r14
xor r15, r11
rorx r14, rbx, 0x27
add r15, r13
xor r14, r12
add rdx, r15
rorx r12, rbx, 0x1c
xor r14, r12
mov r12, rbx
and r12, r8
or rdi, r12
add rax, r14
add rax, r15
add rax, rdi
vpaddq ymm0, ymm6, ymmword [rbp + 0x40]
vmovdqu ymmword [rsp], ymm0
vperm2f128 ymm0, ymm5, ymm4, 3
vpalignr ymm0, ymm0, ymm4, 8
vpaddq ymm0, ymm0, ymm6
vperm2f128 ymm1, ymm7, ymm6, 3
vpalignr ymm1, ymm1, ymm6, 8
vpsrlq ymm2, ymm1, 1
vpsllq ymm3, ymm1, 0x3f
vpor ymm3, ymm3, ymm2
vpsrlq ymm8, ymm1, 7
mov rdi, rax
rorx r13, rdx, 0x29
rorx r14, rdx, 0x12
add r11, qword [rsp]
or rdi, rcx
mov r15, r9
rorx r12, rax, 0x22
xor r13, r14
xor r15, r10
rorx r14, rdx, 0xe
and r15, rdx
xor r13, r14
rorx r14, rax, 0x27
add r8, r11
and rdi, rbx
xor r14, r12
rorx r12, rax, 0x1c
xor r15, r10
xor r14, r12
mov r12, rax
and r12, rcx
add r15, r13
or rdi, r12
add r11, r14
add r8, r15
add r11, r15
add r11, rdi
vpsrlq ymm2, ymm1, 8
vpsllq ymm1, ymm1, 0x38
vpor ymm1, ymm1, ymm2
vpxor ymm3, ymm3, ymm8
vpxor ymm1, ymm3, ymm1
vpaddq ymm0, ymm0, ymm1
vperm2f128 ymm6, ymm0, ymm0, 0
vpand ymm0, ymm0, ymmword [0x006e5d60]
vperm2f128 ymm2, ymm5, ymm5, 0x11
vpsrlq ymm8, ymm2, 6
mov rdi, r11
rorx r13, r8, 0x29
rorx r14, r8, 0x12
add r10, qword [rsp + 8]
or rdi, rbx
mov r15, rdx
rorx r12, r11, 0x22
xor r13, r14
xor r15, r9
rorx r14, r8, 0xe
xor r13, r14
rorx r14, r11, 0x27
and r15, r8
add rcx, r10
and rdi, rax
xor r14, r12
rorx r12, r11, 0x1c
xor r15, r9
xor r14, r12
mov r12, r11
and r12, rbx
add r15, r13
or rdi, r12
add r10, r14
add rcx, r15
add r10, r15
add r10, rdi
vpsrlq ymm3, ymm2, 0x13
vpsllq ymm1, ymm2, 0x2d
vpor ymm3, ymm3, ymm1
vpxor ymm8, ymm8, ymm3
vpsrlq ymm3, ymm2, 0x3d
vpsllq ymm1, ymm2, 3
vpor ymm3, ymm3, ymm1
vpxor ymm8, ymm8, ymm3
vpaddq ymm6, ymm6, ymm8
vpsrlq ymm8, ymm6, 6
mov rdi, r10
rorx r13, rcx, 0x29
add r9, qword [rsp + 0x10]
rorx r14, rcx, 0x12
or rdi, rax
mov r15, r8
xor r15, rdx
rorx r12, r10, 0x22
xor r13, r14
and r15, rcx
rorx r14, rcx, 0xe
add rbx, r9
and rdi, r11
xor r13, r14
rorx r14, r10, 0x27
xor r15, rdx
xor r14, r12
rorx r12, r10, 0x1c
xor r14, r12
mov r12, r10
and r12, rax
add r15, r13
or rdi, r12
add r9, r14
add rbx, r15
add r9, r15
add r9, rdi
vpsrlq ymm3, ymm6, 0x13
vpsllq ymm1, ymm6, 0x2d
vpor ymm3, ymm3, ymm1
vpxor ymm8, ymm8, ymm3
vpsrlq ymm3, ymm6, 0x3d
vpsllq ymm1, ymm6, 3
vpor ymm3, ymm3, ymm1
vpxor ymm8, ymm8, ymm3
vpaddq ymm2, ymm0, ymm8
vpblendd ymm6, ymm6, ymm2, 0xf0
mov rdi, r9
rorx r13, rbx, 0x29
rorx r14, rbx, 0x12
add rdx, qword [rsp + 0x18]
or rdi, r11
mov r15, rcx
rorx r12, r9, 0x22
xor r13, r14
xor r15, r8
rorx r14, rbx, 0xe
and r15, rbx
add rax, rdx
and rdi, r10
xor r13, r14
xor r15, r8
rorx r14, r9, 0x27
add r15, r13
xor r14, r12
add rax, r15
rorx r12, r9, 0x1c
xor r14, r12
mov r12, r9
and r12, r11
or rdi, r12
add rdx, r14
add rdx, r15
add rdx, rdi
vpaddq ymm0, ymm7, ymmword [rbp + 0x60]
vmovdqu ymmword [rsp], ymm0
add rbp, 0x80
vperm2f128 ymm0, ymm6, ymm5, 3
vpalignr ymm0, ymm0, ymm5, 8
vpaddq ymm0, ymm0, ymm7
vperm2f128 ymm1, ymm4, ymm7, 3
vpalignr ymm1, ymm1, ymm7, 8
vpsrlq ymm2, ymm1, 1
vpsllq ymm3, ymm1, 0x3f
vpor ymm3, ymm3, ymm2
vpsrlq ymm8, ymm1, 7
mov rdi, rdx
rorx r13, rax, 0x29
rorx r14, rax, 0x12
add r8, qword [rsp]
or rdi, r10
mov r15, rbx
rorx r12, rdx, 0x22
xor r13, r14
xor r15, rcx
rorx r14, rax, 0xe
and r15, rax
xor r13, r14
rorx r14, rdx, 0x27
add r11, r8
and rdi, r9
xor r14, r12
rorx r12, rdx, 0x1c
xor r15, rcx
xor r14, r12
mov r12, rdx
and r12, r10
add r15, r13
or rdi, r12
add r8, r14
add r11, r15
add r8, r15
add r8, rdi
vpsrlq ymm2, ymm1, 8
vpsllq ymm1, ymm1, 0x38
vpor ymm1, ymm1, ymm2
vpxor ymm3, ymm3, ymm8
vpxor ymm1, ymm3, ymm1
vpaddq ymm0, ymm0, ymm1
vperm2f128 ymm7, ymm0, ymm0, 0
vpand ymm0, ymm0, ymmword [0x006e5d60]
vperm2f128 ymm2, ymm6, ymm6, 0x11
vpsrlq ymm8, ymm2, 6
mov rdi, r8
rorx r13, r11, 0x29
rorx r14, r11, 0x12
add rcx, qword [rsp + 8]
or rdi, r9
mov r15, rax
rorx r12, r8, 0x22
xor r13, r14
xor r15, rbx
rorx r14, r11, 0xe
xor r13, r14
rorx r14, r8, 0x27
and r15, r11
add r10, rcx
and rdi, rdx
xor r14, r12
rorx r12, r8, 0x1c
xor r15, rbx
xor r14, r12
mov r12, r8
and r12, r9
add r15, r13
or rdi, r12
add rcx, r14
add r10, r15
add rcx, r15
add rcx, rdi
vpsrlq ymm3, ymm2, 0x13
vpsllq ymm1, ymm2, 0x2d
vpor ymm3, ymm3, ymm1
vpxor ymm8, ymm8, ymm3
vpsrlq ymm3, ymm2, 0x3d
vpsllq ymm1, ymm2, 3
vpor ymm3, ymm3, ymm1
vpxor ymm8, ymm8, ymm3
vpaddq ymm7, ymm7, ymm8
vpsrlq ymm8, ymm7, 6
mov rdi, rcx
rorx r13, r10, 0x29
add rbx, qword [rsp + 0x10]
rorx r14, r10, 0x12
or rdi, rdx
mov r15, r11
xor r15, rax
rorx r12, rcx, 0x22
xor r13, r14
and r15, r10
rorx r14, r10, 0xe
add r9, rbx
and rdi, r8
xor r13, r14
rorx r14, rcx, 0x27
xor r15, rax
xor r14, r12
rorx r12, rcx, 0x1c
xor r14, r12
mov r12, rcx
and r12, rdx
add r15, r13
or rdi, r12
add rbx, r14
add r9, r15
add rbx, r15
add rbx, rdi
vpsrlq ymm3, ymm7, 0x13
vpsllq ymm1, ymm7, 0x2d
vpor ymm3, ymm3, ymm1
vpxor ymm8, ymm8, ymm3
vpsrlq ymm3, ymm7, 0x3d
vpsllq ymm1, ymm7, 3
vpor ymm3, ymm3, ymm1
vpxor ymm8, ymm8, ymm3
vpaddq ymm2, ymm0, ymm8
vpblendd ymm7, ymm7, ymm2, 0xf0
mov rdi, rbx
rorx r13, r9, 0x29
rorx r14, r9, 0x12
add rax, qword [rsp + 0x18]
or rdi, r8
mov r15, r10
rorx r12, rbx, 0x22
xor r13, r14
xor r15, r11
rorx r14, r9, 0xe
and r15, r9
add rdx, rax
and rdi, rcx
xor r13, r14
xor r15, r11
rorx r14, rbx, 0x27
add r15, r13
xor r14, r12
add rdx, r15
rorx r12, rbx, 0x1c
xor r14, r12
mov r12, rbx
and r12, r8
or rdi, r12
add rax, r14
add rax, r15
add rax, rdi
sub qword [rsp + 0x20], 1
jne 0x51c5b6
mov qword [rsp + 0x20], 2
vpaddq ymm0, ymm4, ymmword [rbp]
vmovdqu ymmword [rsp], ymm0
mov r15, r9
rorx r13, rdx, 0x29
rorx r14, rdx, 0x12
xor r15, r10
xor r13, r14
rorx r14, rdx, 0xe
and r15, rdx
xor r13, r14
rorx r12, rax, 0x22
xor r15, r10
rorx r14, rax, 0x27
mov rdi, rax
xor r14, r12
rorx r12, rax, 0x1c
add r11, qword [rsp]
or rdi, rcx
xor r14, r12
mov r12, rax
and rdi, rbx
and r12, rcx
add r15, r13
add r8, r11
or rdi, r12
add r11, r14
add r8, r15
add r11, r15
mov r15, rdx
rorx r13, r8, 0x29
rorx r14, r8, 0x12
xor r15, r9
xor r13, r14
rorx r14, r8, 0xe
and r15, r8
add r11, rdi
xor r13, r14
rorx r12, r11, 0x22
xor r15, r9
rorx r14, r11, 0x27
mov rdi, r11
xor r14, r12
rorx r12, r11, 0x1c
add r10, qword [rsp + 8]
or rdi, rbx
xor r14, r12
mov r12, r11
and rdi, rax
and r12, rbx
add r15, r13
add rcx, r10
or rdi, r12
add r10, r14
add rcx, r15
add r10, r15
mov r15, r8
rorx r13, rcx, 0x29
rorx r14, rcx, 0x12
xor r15, rdx
xor r13, r14
rorx r14, rcx, 0xe
and r15, rcx
add r10, rdi
xor r13, r14
rorx r12, r10, 0x22
xor r15, rdx
rorx r14, r10, 0x27
mov rdi, r10
xor r14, r12
rorx r12, r10, 0x1c
add r9, qword [rsp + 0x10]
or rdi, rax
xor r14, r12
mov r12, r10
and rdi, r11
and r12, rax
add r15, r13
add rbx, r9
or rdi, r12
add r9, r14
add rbx, r15
add r9, r15
mov r15, rcx
rorx r13, rbx, 0x29
rorx r14, rbx, 0x12
xor r15, r8
xor r13, r14
rorx r14, rbx, 0xe
and r15, rbx
add r9, rdi
xor r13, r14
rorx r12, r9, 0x22
xor r15, r8
rorx r14, r9, 0x27
mov rdi, r9
xor r14, r12
rorx r12, r9, 0x1c
add rdx, qword [rsp + 0x18]
or rdi, r11
xor r14, r12
mov r12, r9
and rdi, r10
and r12, r11
add r15, r13
add rax, rdx
or rdi, r12
add rdx, r14
add rax, r15
add rdx, r15
add rdx, rdi
vpaddq ymm0, ymm5, ymmword [rbp + 0x20]
vmovdqu ymmword [rsp], ymm0
add rbp, 0x40
mov r15, rbx
rorx r13, rax, 0x29
rorx r14, rax, 0x12
xor r15, rcx
xor r13, r14
rorx r14, rax, 0xe
and r15, rax
xor r13, r14
rorx r12, rdx, 0x22
xor r15, rcx
rorx r14, rdx, 0x27
mov rdi, rdx
xor r14, r12
rorx r12, rdx, 0x1c
add r8, qword [rsp]
or rdi, r10
xor r14, r12
mov r12, rdx
and rdi, r9
and r12, r10
add r15, r13
add r11, r8
or rdi, r12
add r8, r14
add r11, r15
add r8, r15
mov r15, rax
rorx r13, r11, 0x29
rorx r14, r11, 0x12
xor r15, rbx
xor r13, r14
rorx r14, r11, 0xe
and r15, r11
add r8, rdi
xor r13, r14
rorx r12, r8, 0x22
xor r15, rbx
rorx r14, r8, 0x27
mov rdi, r8
xor r14, r12
rorx r12, r8, 0x1c
add rcx, qword [rsp + 8]
or rdi, r9
xor r14, r12
mov r12, r8
and rdi, rdx
and r12, r9
add r15, r13
add r10, rcx
or rdi, r12
add rcx, r14
add r10, r15
add rcx, r15
mov r15, r11
rorx r13, r10, 0x29
rorx r14, r10, 0x12
xor r15, rax
xor r13, r14
rorx r14, r10, 0xe
and r15, r10
add rcx, rdi
xor r13, r14
rorx r12, rcx, 0x22
xor r15, rax
rorx r14, rcx, 0x27
mov rdi, rcx
xor r14, r12
rorx r12, rcx, 0x1c
add rbx, qword [rsp + 0x10]
or rdi, rdx
xor r14, r12
mov r12, rcx
and rdi, r8
and r12, rdx
add r15, r13
add r9, rbx
or rdi, r12
add rbx, r14
add r9, r15
add rbx, r15
mov r15, r10
rorx r13, r9, 0x29
rorx r14, r9, 0x12
xor r15, r11
xor r13, r14
rorx r14, r9, 0xe
and r15, r9
add rbx, rdi
xor r13, r14
rorx r12, rbx, 0x22
xor r15, r11
rorx r14, rbx, 0x27
mov rdi, rbx
xor r14, r12
rorx r12, rbx, 0x1c
add rax, qword [rsp + 0x18]
or rdi, r8
xor r14, r12
mov r12, rbx
and rdi, rcx
and r12, r8
add r15, r13
add rdx, rax
or rdi, r12
add rax, r14
add rdx, r15
add rax, r15
add rax, rdi
vmovdqu ymm4, ymm6
vmovdqu ymm5, ymm7
sub qword [rsp + 0x20], 1
jne 0x51cf46
add rax, qword [rsi]
mov qword [rsi], rax
add rbx, qword [rsi + 8]
mov qword [rsi + 8], rbx
add rcx, qword [rsi + 0x10]
mov qword [rsi + 0x10], rcx
add r8, qword [rsi + 0x18]
mov qword [rsi + 0x18], r8
add rdx, qword [rsi + 0x20]
mov qword [rsi + 0x20], rdx
add r9, qword [rsi + 0x28]
mov qword [rsi + 0x28], r9
add r10, qword [rsi + 0x30]
mov qword [rsi + 0x30], r10
add r11, qword [rsi + 0x38]
mov qword [rsi + 0x38], r11
mov rdi, qword [rsp + 0x28]
add rdi, 0x80
cmp rdi, qword [rsp + 0x30]
jne 0x51c57a
vzeroupper
mov rbp, qword [rsp + 0x38]
add rsp, 0x40
ret