Function at 0x57c720
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x98
mov rbx, qword [rcx + 8]
mov rax, rbx
mov qword [rsp + 0xe0], rcx
mov qword [rsp + 0xe8], rdx
add rax, r8
mov qword [rsp + 0xf0], r8
cmp rax, 0x20
jbe 0x57c7a9
test rbx, rbx
je 0x57c79c
mov r8d, 0x20
mov rsi, r8
sub rsi, rbx
jne 0x57d1c0
mov rax, qword [rsp + 0xe0]
mov r8d, 0x20
lea rdx, [rax + 0x40]
mov rcx, rax
call fcn.0057a920
mov rax, qword [rsp + 0xe0]
mov qword [rax + 8], 0
xor ebx, ebx
cmp qword [rsp + 0xf0], 0x20
ja 0x57c810
cmp qword [rsp + 0xf0], 0
jne 0x57c7d0
xor eax, eax
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsp + 0xe0]
mov r8, qword [rsp + 0xf0]
mov rdx, qword [rsp + 0xe8]
lea rcx, [rax + rbx + 0x40]
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0xe0]
mov rdi, qword [rsp + 0xf0]
add qword [rax + 8], rdi
jmp 0x57c7b4
mov rax, qword [rsp + 0xf0]
dec rax
mov rdi, rax
mov qword [rsp + 0x60], rax
and rax, 0xffffffffffffffe0
add rax, qword [rsp + 0xe8]
shr rdi, 5
mov qword [rsp + 0x68], rdi
mov rdi, qword [rsp + 0xe0]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x70]
mov rdi, qword [rdi + 0x10]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x20], rdi
add rdi, 0x20
mov qword [rsp + 0x48], rdi
mov rdi, qword [rsp + 0xe0]
mov r14, qword [rdi + 0x18]
mov r13, qword [rdi + 0x20]
mov r8, qword [rdi + 0x28]
mov r12, qword [rdi + 0x30]
mov rbp, qword [rdi + 0x38]
mov rdi, qword [rsp + 0xe8]
nop word cs:[rax + rax]
mov r10, r8
mov rax, r13
mov rdx, qword [rdi + 8]
mov rcx, qword [rsp + 0x58]
xor rax, rbp
xor r10, r12
mov r11, rdi
sub r11, qword [rsp + 0xe8]
xor r10, rax
movabs rax, 0x1bd11bdaa9fc1a22
add r11, qword [rsp + 0x48]
lea rsi, [r14 + r12]
xor r10, rax
mov rax, qword [rdi]
mov rbx, r14
mov qword [rsp + 0x30], rsi
mov qword [rcx + 8], rdx
mov rdx, qword [rdi + 0x18]
add rdi, 0x20
mov qword [rcx], rax
mov r15, rax
mov rax, qword [rdi - 0x10]
xor rbx, r11
mov qword [rcx + 0x18], rdx
mov qword [rsp + 0x40], r15
mov qword [rcx + 0x10], rax
mov rcx, qword [rsp + 0x78]
mov r9, qword [rsp + 0x88]
mov qword [rsp + 0x38], rax
lea rax, [r15 + r13]
lea r15, [r10 + r11]
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0x20], r15
add rcx, r8
add r9, rbp
add rcx, r11
add rax, rcx
add rdx, r9
rorx rcx, rcx, 0x32
rorx r9, r9, 0x30
xor rcx, rax
add rdx, rsi
xor r9, rdx
add rdx, rcx
rorx rcx, rcx, 7
add rax, r9
xor rcx, rdx
rorx r9, r9, 0xc
xor r9, rax
add rax, rcx
rorx rcx, rcx, 0x29
xor rcx, rax
add rdx, r9
rorx r9, r9, 0x18
xor r9, rdx
add rdx, rcx
rorx rcx, rcx, 0x1b
add rax, r9
xor rcx, rdx
rorx r9, r9, 0x3b
add rcx, rsi
xor r9, rax
lea rsi, [rbx + rbp]
add rax, r8
add rdx, rsi
add rax, rcx
lea r9, [r10 + r9 + 1]
rorx rcx, rcx, 0x27
xor rcx, rax
add rdx, r9
rorx r9, r9, 0x1f
xor r9, rdx
add rdx, rcx
rorx rcx, rcx, 0x34
add rax, r9
rorx r9, r9, 0x12
xor rcx, rdx
xor r9, rax
add rax, rcx
rorx rcx, rcx, 6
add rdx, r9
rorx r9, r9, 0x2a
xor rcx, rax
xor r9, rdx
add rdx, rcx
rorx rcx, rcx, 0x20
add rax, r9
rorx r9, r9, 0x20
xor rcx, rdx
add rdx, r15
xor r9, rax
add rcx, rsi
add rax, r12
lea r9, [r9 + r13 + 2]
add rax, rcx
rorx rcx, rcx, 0x32
add rdx, r9
rorx r9, r9, 0x30
xor rcx, rax
xor r9, rdx
add rdx, rcx
rorx rcx, rcx, 7
add rax, r9
rorx r9, r9, 0xc
xor rcx, rdx
xor r9, rax
add rax, rcx
rorx rcx, rcx, 0x29
add rdx, r9
rorx r9, r9, 0x18
xor rcx, rax
xor r9, rdx
add rax, r9
rorx r9, r9, 0x3b
xor r9, rax
add rdx, rcx
rorx rcx, rcx, 0x1b
add rax, rbp
xor rcx, rdx
lea r9, [r9 + r8 + 3]
add rcx, r15
lea r15, [r14 + r13]
add rax, rcx
add rdx, r15
rorx rcx, rcx, 0x27
mov qword [rsp + 0x28], r15
xor rcx, rax
add rdx, r9
rorx r9, r9, 0x1f
xor r9, rdx
add rdx, rcx
rorx rcx, rcx, 0x34
add rax, r9
xor rcx, rdx
rorx r9, r9, 0x12
xor r9, rax
add rax, rcx
rorx rcx, rcx, 6
xor rcx, rax
add rdx, r9
rorx r9, r9, 0x2a
xor r9, rdx
add rdx, rcx
rorx rcx, rcx, 0x20
add rax, r9
xor rcx, rdx
rorx r9, r9, 0x20
add rcx, r15
xor r9, rax
lea r15, [rbx + r8]
add rax, r10
add rax, rcx
add rdx, r15
lea r9, [r9 + r12 + 4]
rorx rcx, rcx, 0x32
xor rcx, rax
add rdx, r9
rorx r9, r9, 0x30
xor r9, rdx
add rdx, rcx
rorx rcx, rcx, 7
add rax, r9
xor rcx, rdx
rorx r9, r9, 0xc
xor r9, rax
add rax, rcx
rorx rcx, rcx, 0x29
xor rcx, rax
add rdx, r9
rorx r9, r9, 0x18
xor r9, rdx
add rdx, rcx
rorx rcx, rcx, 0x1b
add rax, r9
xor rcx, rdx
rorx r9, r9, 0x3b
add rcx, r15
xor r9, rax
lea r15, [r12 + r11]
add rax, r13
add rax, rcx
add rdx, r15
lea r9, [r9 + rbp + 5]
rorx rcx, rcx, 0x27
xor rcx, rax
add rdx, r9
rorx r9, r9, 0x1f
xor r9, rdx
add rdx, rcx
rorx rcx, rcx, 0x34
add rax, r9
xor rcx, rdx
rorx r9, r9, 0x12
xor r9, rax
add rax, rcx
rorx rcx, rcx, 6
xor rcx, rax
add rdx, r9
rorx r9, r9, 0x2a
xor r9, rdx
add rdx, rcx
rorx rcx, rcx, 0x20
add rax, r9
xor rcx, rdx
rorx r9, r9, 0x20
add rcx, r15
xor r9, rax
lea r15, [r14 + rbp]
add rax, r8
add rax, rcx
add rdx, r15
lea r9, [r10 + r9 + 6]
rorx rcx, rcx, 0x32
xor rcx, rax
add rdx, r9
rorx r9, r9, 0x30
xor r9, rdx
add rdx, rcx
rorx rcx, rcx, 7
add rax, r9
xor rcx, rdx
rorx r9, r9, 0xc
xor r9, rax
add rax, rcx
rorx rcx, rcx, 0x29
xor rcx, rax
add rdx, r9
rorx r9, r9, 0x18
xor r9, rdx
add rdx, rcx
rorx rcx, rcx, 0x1b
add rax, r9
xor rcx, rdx
rorx r9, r9, 0x3b
add rcx, r15
xor r9, rax
lea r15, [r10 + rbx]
add rax, r12
add rdx, r15
lea r9, [r9 + r13 + 7]
add rax, rcx
rorx rcx, rcx, 0x27
add rdx, r9
rorx r9, r9, 0x1f
xor rcx, rax
xor r9, rdx
add rdx, rcx
rorx rcx, rcx, 0x34
add rax, r9
rorx r9, r9, 0x12
xor rcx, rdx
xor r9, rax
add rax, rcx
rorx rcx, rcx, 6
add rdx, r9
rorx r9, r9, 0x2a
xor rcx, rax
xor r9, rdx
add rdx, rcx
rorx rcx, rcx, 0x20
add rax, r9
rorx r9, r9, 0x20
xor r9, rax
xor rcx, rdx
add rax, rbp
add rcx, r15
lea r15, [r13 + r11]
lea r9, [r9 + r8 + 8]
add rax, rcx
add rdx, r15
rorx rcx, rcx, 0x32
xor rcx, rax
add rdx, r9
rorx r9, r9, 0x30
xor r9, rdx
add rdx, rcx
rorx rcx, rcx, 7
add rax, r9
xor rcx, rdx
rorx r9, r9, 0xc
xor r9, rax
add rax, rcx
rorx rcx, rcx, 0x29
xor rcx, rax
add rdx, r9
rorx r9, r9, 0x18
xor r9, rdx
add rdx, rcx
rorx rcx, rcx, 0x1b
add rax, r9
xor rcx, rdx
rorx r9, r9, 0x3b
add rcx, r15
xor r9, rax
lea r15, [r14 + r8]
add rax, r10
add rax, rcx
add rdx, r15
lea r9, [r9 + r12 + 9]
rorx rcx, rcx, 0x27
xor rcx, rax
add rdx, r9
rorx r9, r9, 0x1f
xor r9, rdx
add rdx, rcx
rorx rcx, rcx, 0x34
add rax, r9
xor rcx, rdx
rorx r9, r9, 0x12
xor r9, rax
add rax, rcx
rorx rcx, rcx, 6
xor rcx, rax
add rdx, r9
rorx r9, r9, 0x2a
xor r9, rdx
add rdx, rcx
rorx rcx, rcx, 0x20
add rax, r9
xor rcx, rdx
rorx r9, r9, 0x20
add rcx, r15
xor r9, rax
lea r15, [rbx + r12]
add rax, r13
add rax, rcx
add rdx, r15
lea r9, [r9 + rbp + 0xa]
rorx rcx, rcx, 0x32
xor rcx, rax
add rdx, r9
rorx r9, r9, 0x30
xor r9, rdx
add rdx, rcx
rorx rcx, rcx, 7
add rax, r9
xor rcx, rdx
rorx r9, r9, 0xc
xor r9, rax
add rax, rcx
rorx rcx, rcx, 0x29
xor rcx, rax
add rdx, r9
rorx r9, r9, 0x18
xor r9, rdx
add rdx, rcx
rorx rcx, rcx, 0x1b
add rax, r9
xor rcx, rdx
rorx r9, r9, 0x3b
add rcx, r15
xor r9, rax
lea r15, [rbp + r11]
add rax, r8
add rax, rcx
add rdx, r15
lea r9, [r10 + r9 + 0xb]
rorx rcx, rcx, 0x27
xor rcx, rax
add rdx, r9
rorx r9, r9, 0x1f
xor r9, rdx
add rdx, rcx
rorx rcx, rcx, 0x34
add rax, r9
xor rcx, rdx
rorx r9, r9, 0x12
xor r9, rax
add rax, rcx
rorx rcx, rcx, 6
xor rcx, rax
add rdx, r9
rorx r9, r9, 0x2a
xor r9, rdx
add rdx, rcx
rorx rcx, rcx, 0x20
add rax, r9
xor rcx, rdx
rorx r9, r9, 0x20
add rcx, r15
xor r9, rax
lea r15, [r10 + r14]
add rax, r12
add rax, rcx
lea r9, [r9 + r13 + 0xc]
add rdx, r15
rorx rcx, rcx, 0x32
xor rcx, rax
add rdx, r9
rorx r9, r9, 0x30
xor r9, rdx
add rdx, rcx
rorx rcx, rcx, 7
add rax, r9
xor rcx, rdx
rorx r9, r9, 0xc
xor r9, rax
add rax, rcx
rorx rcx, rcx, 0x29
xor rcx, rax
add rdx, r9
rorx r9, r9, 0x18
xor r9, rdx
add rdx, rcx
rorx rcx, rcx, 0x1b
add rax, r9
xor rcx, rdx
rorx r9, r9, 0x3b
xor r9, rax
add rax, rbp
add rbx, r13
add rcx, r15
add rax, rcx
add rdx, rbx
lea r9, [r9 + r8 + 0xd]
rorx rcx, rcx, 0x27
xor rcx, rax
add rdx, r9
rorx r9, r9, 0x1f
add r11, r8
xor r9, rdx
add rdx, rcx
rorx rcx, rcx, 0x34
add rax, r9
xor rcx, rdx
rorx r9, r9, 0x12
xor r9, rax
add rax, rcx
rorx rcx, rcx, 6
xor rcx, rax
add rdx, r9
rorx r9, r9, 0x2a
xor r9, rdx
add rdx, rcx
rorx rcx, rcx, 0x20
add rax, r9
xor rcx, rdx
rorx r9, r9, 0x20
add rdx, r11
add rbx, rcx
xor r9, rax
add rax, r10
add rax, rbx
lea r9, [r9 + r12 + 0xe]
rorx rbx, rbx, 0x32
xor rbx, rax
add rdx, r9
rorx r9, r9, 0x30
xor r9, rdx
add rdx, rbx
rorx rbx, rbx, 7
add rax, r9
xor rbx, rdx
rorx r9, r9, 0xc
xor r9, rax
add rax, rbx
rorx rbx, rbx, 0x29
xor rbx, rax
add rdx, r9
rorx r9, r9, 0x18
xor r9, rdx
add rdx, rbx
rorx rbx, rbx, 0x1b
xor rbx, rdx
add rax, r9
rorx r9, r9, 0x3b
add r11, rbx
mov rbx, qword [rsp + 0x30]
xor r9, rax
add rax, r13
lea rcx, [r9 + rbp + 0xf]
add rax, r11
rorx r11, r11, 0x27
xor r11, rax
add rdx, rbx
add rdx, rcx
rorx rcx, rcx, 0x1f
xor rcx, rdx
add rdx, r11
rorx r11, r11, 0x34
add rax, rcx
xor r11, rdx
rorx rcx, rcx, 0x12
xor rcx, rax
add rax, r11
rorx r11, r11, 6
xor r11, rax
add rdx, rcx
rorx rcx, rcx, 0x2a
xor rcx, rdx
add rdx, r11
rorx r11, r11, 0x20
add rax, rcx
xor r11, rdx
rorx rcx, rcx, 0x20
add rdx, rsi
xor rcx, rax
add r11, rbx
add rax, r8
add rax, r11
lea rcx, [r10 + rcx + 0x10]
rorx r11, r11, 0x32
xor r11, rax
add rdx, rcx
rorx rcx, rcx, 0x30
xor rcx, rdx
add rdx, r11
rorx r11, r11, 7
add rax, rcx
xor r11, rdx
rorx rcx, rcx, 0xc
xor rcx, rax
add rax, r11
rorx r11, r11, 0x29
xor r11, rax
add rdx, rcx
rorx rcx, rcx, 0x18
xor rcx, rdx
add rdx, r11
rorx r11, r11, 0x1b
xor r11, rdx
add rax, rcx
rorx rcx, rcx, 0x3b
add r11, rsi
mov rsi, qword [rsp + 0x20]
xor rcx, rax
add rax, r12
lea r9, [rcx + r13 + 0x11]
add rax, r11
rorx r11, r11, 0x27
xor r11, rax
add rdx, rsi
add rdx, r9
rorx r9, r9, 0x1f
xor r9, rdx
lea r12, [r11 + rdx]
rorx r11, r11, 0x34
add rax, r9
rorx r9, r9, 0x12
xor r11, r12
xor r9, rax
lea r13, [rax + r11]
rorx rcx, r11, 6
mov rax, qword [rsp + 0xe0]
add r12, r9
rorx r9, r9, 0x2a
xor rcx, r13
xor r9, r12
add r12, rcx
rorx rcx, rcx, 0x20
add r13, r9
rorx r9, r9, 0x20
xor rcx, r12
xor r9, r13
add r13, rbp
xor r13, qword [rsp + 0x40]
add r12, qword [rsp + 0x28]
lea r9, [r9 + r8 + 0x12]
xor r12, qword [rsp + 0x38]
xor r9, qword [rsp + 0x88]
lea r8, [rsi + rcx]
xor r8, qword [rsp + 0x78]
mov qword [rax + 0x20], r13
mov qword [rax + 0x30], r12
mov qword [rax + 0x38], r9
mov rbp, r9
mov qword [rax + 0x28], r8
movabs rax, 0xbfffffffffffffff
and r14, rax
cmp rdi, qword [rsp + 0x50]
jne 0x57c890
mov rax, qword [rsp + 0x68]
mov rdi, qword [rsp + 0xe0]
xor ebx, ebx
dec rax
mov qword [rdi + 0x18], r14
shl rax, 5
add rax, qword [rsp + 0x48]
mov qword [rdi + 0x10], rax
mov rax, qword [rsp + 0x60]
and rax, 0xffffffffffffffe0
sub qword [rsp + 0xf0], rax
add qword [rsp + 0xe8], rax
jmp 0x57c7a9
lea rcx, [rcx + rbx + 0x40]
mov r8, rsi
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0xf0]
add qword [rsp + 0xe8], rsi
lea rax, [rbx + rax - 0x20]
mov qword [rsp + 0xf0], rax
mov rax, qword [rsp + 0xe0]
add qword [rax + 8], rsi
jmp 0x57c772