Function at 0x175a8
Capabilities:
Encode data using xor

Disassembly:
push r14
push r13
push r12
push rdi
push rsi
push rbp
sub rsp, 0x58
mov r13, r8
mov esi, edx
mov rbp, rcx
test r13, r13
je 0x17826
mov r12, r13
and r12, 0xf
neg r12
and r12, 0xf
lea rdi, [r13 + r12]
mov eax, dword [rdi]
cmp eax, 0x434d4143
je 0x175f5
mov eax, 0xffffffef
add rsp, 0x58
pop rbp
pop rsi
pop rdi
pop r12
pop r13
pop r14
ret
test rbp, rbp
je 0x17826
test esi, esi
jl 0x17839
je 0x177da
mov eax, dword [rdi + 4]
test eax, eax
je 0x17658
mov r14d, eax
neg r14d
add r14d, 0x10
cmp r14d, esi
cmovge r14d, esi
movsxd rax, eax
lea rdx, [rdi + rax + 0x30]
mov rcx, rbp
mov r8d, r14d
call fcn.00016c84
mov edx, dword [rdi + 4]
add edx, r14d
mov dword [rdi + 4], edx
movsxd rax, r14d
add rbp, rax
sub esi, r14d
je 0x177da
cmp edx, 0x10
je 0x177ea
mov r8d, esi
and r8d, 0xfffffff0
lea edx, [r8 - 0x10]
mov eax, esi
and eax, 0xf
cmove r8d, edx
test r8d, r8d
je 0x177c3
lea rax, [r13 + r12 + 0x50]
mov edx, dword [rax + 0xc]
lea rcx, [r13 + r12 + 0x40]
add rax, 0x10
test rbp, 3
jne 0x17720
mov dword [rsp + 0x20], esi
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x30], r12
mov r12, rax
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x40], r15
xor r10d, r10d
lea r9d, [r8 + 0xf]
sar r9d, 3
shr r9d, 0x1c
lea r9d, [r9 + r8 + 0xf]
sar r9d, 4
xor r14d, r14d
mov r13d, edx
mov r15, rcx
mov ebx, r8d
mov esi, r9d
mov edi, r10d
movsxd rax, r14d
mov r11d, dword [rax + rbp]
xor dword [r15], r11d
mov r11d, dword [rax + rbp + 4]
xor dword [r15 + 4], r11d
mov r11d, dword [rax + rbp + 8]
mov rcx, r15
mov rdx, r15
xor dword [r15 + 8], r11d
mov r11d, dword [rax + rbp + 0xc]
mov r8d, r13d
mov r9, r12
xor dword [r15 + 0xc], r11d
call fcn.00017a54
add r14d, 0x10
add edi, 1
cmp edi, esi
jl 0x176dd
jmp 0x1779a
mov dword [rsp + 0x20], esi
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x30], r12
mov r12, rax
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x40], r15
xor r10d, r10d
lea r9d, [r8 + 0xf]
sar r9d, 3
shr r9d, 0x1c
lea r9d, [r9 + r8 + 0xf]
sar r9d, 4
xor r14d, r14d
mov r13d, edx
mov r15, rcx
mov ebx, r8d
mov esi, r9d
mov edi, r10d
movdqu xmm1, xmmword [r14 + rbp]
movdqu xmm0, xmmword [r15]
mov rcx, r15
mov rdx, r15
pxor xmm1, xmm0
movdqu xmmword [r15], xmm1
mov r8d, r13d
mov r9, r12
call fcn.00017a54
add r14, 0x10
add edi, 1
cmp edi, esi
jl 0x1776a
mov esi, dword [rsp + 0x20]
mov rdi, qword [rsp + 0x28]
mov r12, qword [rsp + 0x30]
mov r13, qword [rsp + 0x38]
mov r8d, ebx
mov rbx, qword [rsp + 0x48]
mov r15, qword [rsp + 0x40]
movsxd rax, r8d
add rbp, rax
sub esi, r8d
test esi, esi
je 0x177da
lea rdx, [r13 + r12 + 0x30]
mov rcx, rbp
mov r8d, esi
call fcn.00016c84
add dword [rdi + 4], esi
xor eax, eax
add rsp, 0x58
pop rbp
pop rsi
pop rdi
pop r12
pop r13
pop r14
ret
lea r8, [r13 + r12 + 0x50]
lea rcx, [r13 + r12 + 0x40]
xor eax, eax
movzx r9d, byte [rax + rdi + 0x30]
xor byte [rax + rcx], r9b
add rax, 1
cmp rax, 0x10
jl 0x177f6
lea r9, [r8 + 0x10]
mov r8d, dword [r8 + 0xc]
mov rdx, rcx
call fcn.00017a54
mov dword [rdi + 4], 0
jmp 0x17658
mov eax, 0xfffffff8
add rsp, 0x58
pop rbp
pop rsi
pop rdi
pop r12
pop r13
pop r14
ret
mov eax, 0xffffff89
add rsp, 0x58
pop rbp
pop rsi
pop rdi
pop r12
pop r13
pop r14
ret