Function at 0x57e5d0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbx
sub rsp, 0x190
xor r9d, r9d
mov r15, rcx
mov rbx, r8
mov r13, rdx
lea rcx, [rsp + 0xbf]
xor r8d, r8d
mov edx, 0x20
lea r14, [r15 + 0x100]
and rcx, 0xffffffffffffffc0
mov r12, rcx
cmp rbx, 0x40
ja 0x57e8b8
lea r12, [rsp + 0x40]
mov rcx, r15
call fcn.0043a990
movabs rax, 0x3636363636363636
movabs rdx, 0x3636363636363636
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rdx
test rbx, rbx
je 0x57e960
cmp rbx, 0x1f
jbe 0x57e958
mov rax, rbx
vmovdqu xmm4, xmmword [rsp + 0x40]
vinsertf128 ymm0, ymm4, xmmword [rsp + 0x50], 1
shr rax, 5
vmovdqu xmm5, xmmword [r13]
vinsertf128 ymm1, ymm5, xmmword [r13 + 0x10], 1
vxorps ymm0, ymm0, ymm1
vmovups xmmword [rsp + 0x40], xmm0
vextractf128 xmmword [rsp + 0x50], ymm0, 1
cmp rax, 2
jne 0x57e80d
vmovdqu xmm4, xmmword [rsp + 0x60]
vinsertf128 ymm0, ymm4, xmmword [rsp + 0x70], 1
vmovdqu xmm5, xmmword [r13 + 0x20]
vinsertf128 ymm1, ymm5, xmmword [r13 + 0x30], 1
vxorps ymm0, ymm0, ymm1
vmovups xmmword [rsp + 0x60], xmm0
vextractf128 xmmword [rsp + 0x70], ymm0, 1
mov r8d, 0x40
mov rdx, r12
mov rcx, r15
vzeroupper
call fcn.0043aba0
xor r9d, r9d
xor r8d, r8d
mov edx, 0x20
mov rcx, r14
call fcn.0043a990
test rbx, rbx
movabs rax, 0x5c5c5c5c5c5c5c5c
movabs rdx, 0x5c5c5c5c5c5c5c5c
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x70], rax
mov eax, 1
cmovne rax, rbx
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x78], rdx
mov rdx, rax
vmovdqu xmm2, xmmword [rsp + 0x40]
vinsertf128 ymm0, ymm2, xmmword [rsp + 0x50], 1
shr rdx, 5
vmovdqu xmm3, xmmword [r13]
vinsertf128 ymm1, ymm3, xmmword [r13 + 0x10], 1
vxorps ymm0, ymm0, ymm1
vmovups xmmword [rsp + 0x40], xmm0
vextractf128 xmmword [rsp + 0x50], ymm0, 1
cmp rdx, 2
jne 0x57e7e0
vmovdqu xmm2, xmmword [rsp + 0x60]
vinsertf128 ymm0, ymm2, xmmword [rsp + 0x70], 1
vmovdqu xmm3, xmmword [r13 + 0x20]
vinsertf128 ymm1, ymm3, xmmword [r13 + 0x30], 1
vxorps ymm0, ymm0, ymm1
vmovups xmmword [rsp + 0x60], xmm0
vextractf128 xmmword [rsp + 0x70], ymm0, 1
vzeroupper
mov r8d, 0x40
mov rdx, r12
mov rcx, r14
call fcn.0043aba0
nop
add rsp, 0x190
pop rbx
pop r12
pop r13
pop r14
pop r15
ret
cmp rax, 0x20
je 0x57e9c5
mov eax, 0x20
vzeroupper
nop word [rax + rax]
movzx edx, byte [r13 + rax]
xor byte [r12 + rax], dl
add rax, 1
cmp rax, rbx
jb 0x57e7f8
jmp 0x57e7b4
cmp rbx, 0x20
je 0x57e6db
mov eax, 0x20
vzeroupper
nop
movzx edx, byte [r12 + rax]
xor dl, byte [r13 + rax]
mov byte [r12 + rax], dl
add rax, 1
cmp rbx, rax
ja 0x57e820
mov r8d, 0x40
mov rdx, r12
mov rcx, r15
call fcn.0043aba0
xor r9d, r9d
xor r8d, r8d
mov edx, 0x20
mov rcx, r14
call fcn.0043a990
test rbx, rbx
movabs rax, 0x5c5c5c5c5c5c5c5c
movabs rdx, 0x5c5c5c5c5c5c5c5c
mov qword [r12], rax
mov qword [r12 + 0x10], rax
mov qword [r12 + 0x20], rax
mov qword [r12 + 0x30], rax
mov eax, 1
cmovne rax, rbx
mov qword [r12 + 8], rdx
mov qword [r12 + 0x18], rdx
mov qword [r12 + 0x28], rdx
mov qword [r12 + 0x38], rdx
cmp rbx, 0x1f
ja 0x57e74a
xor eax, eax
jmp 0x57e7f8
call fcn.0043a990
mov r8, rbx
mov rdx, r13
mov rcx, r12
call fcn.0043aba0
lea r13, [rsp + 0x20]
mov rcx, r12
mov ebx, 0x20
lea r12, [rsp + 0x40]
mov rdx, r13
call fcn.0043ac30
mov edx, 0x20
xor r9d, r9d
xor r8d, r8d
mov rcx, r15
call fcn.0043a990
vmovdqu xmm4, xmmword [str.6666666666666666]
movabs rax, 0x3636363636363636
movabs rdx, 0x3636363636363636
vmovdqu xmm5, xmmword [rsp + 0x20]
mov qword [rsp + 0x60], rax
vinsertf128 ymm1, ymm5, xmmword [rsp + 0x30], 1
vperm2f128 ymm0, ymm4, ymm4, 0
mov qword [rsp + 0x68], rdx
vxorps ymm0, ymm0, ymm1
vextractf128 xmmword [rsp + 0x50], ymm0, 1
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rdx
vmovups xmmword [rsp + 0x40], xmm0
jmp 0x57e6db
xor eax, eax
jmp 0x57e820
mov r8d, 0x40
mov rdx, r12
mov rcx, r15
call fcn.0043aba0
mov edx, 0x20
xor r9d, r9d
xor r8d, r8d
mov rcx, r14
call fcn.0043a990
movabs rax, 0x5c5c5c5c5c5c5c5c
movabs rdx, 0x5c5c5c5c5c5c5c5c
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rdx
jmp 0x57e7b4
vzeroupper
jmp 0x57e7b4