Function at 0x1400404c0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 8], rcx
push rbx
push r12
push r13
push r14
sub rsp, 0x58
mov rax, qword [rcx]
mov r13, r9
mov rbx, r8
mov r14, rdx
mov r12, rcx
call qword [rax + 0x20]
test al, al
jne 0x1400404f3
mov rcx, r12
call fcn.14000dd30
mov qword [rsp + 0x48], rdi
call fcn.140081770
test al, al
je 0x14004053c
cmp r13, 4
jb 0x14004053c
mov rdi, r13
shr rdi, 2
imul rax, rdi, 0xfffffffffffffffc
add r13, rax
mov qword [rsp + 0x98], r13
nop dword [rax]
mov r8, rbx
mov rdx, r14
mov rcx, r12
call fcn.140086f80
add r14, 0x40
add rbx, 0x40
sub rdi, 1
jne 0x140040520
test r13, r13
je 0x14004095a
mov qword [rsp + 0x90], rbp
mov qword [rsp + 0x50], rsi
lea rsi, [rbx + 8]
mov qword [rsp + 0x40], r15
lea r15, [r14 + 8]
sub r14, rbx
mov qword [rsp + 0x28], r15
sub r14, 8
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x88], r14
nop dword [rax + rax]
mov rcx, qword [r12 + 0x20]
lea r12, [0x1400c0a3e]
mov ebp, dword [r14 + rsi]
mov eax, dword [r15 - 4]
mov edi, dword [r15]
mov ebx, dword [r15 + 4]
mov r15d, dword [rcx + 4]
mov esi, dword [rcx + 0xc]
mov r13d, dword [rcx + 8]
mov r14d, dword [rcx]
bswap ebp
bswap eax
bswap edi
bswap ebx
mov qword [rsp + 0x20], 4
nop word [rax + rax]
mov r8d, edi
xor r8d, ebp
mov edx, r8d
mov ecx, r8d
ror ecx, 8
ror edx, 0x18
xor edx, ecx
mov ecx, r15d
xor r8d, edx
xor ecx, r8d
xor eax, ecx
mov ecx, esi
xor ecx, r8d
xor ebx, ecx
mov r10d, ebx
mov r9d, ebx
xor r10d, eax
shr r9d, 0x1e
ror eax, 0x1f
mov edx, r10d
ror edx, 0x18
mov ecx, r10d
ror ecx, 8
xor edx, ecx
mov ecx, r13d
xor r10d, edx
xor ecx, r10d
xor edi, ecx
lea ecx, [rbx*4]
movzx ebx, byte [r12 + 2]
or r9d, ecx
mov ecx, r9d
mov edx, r9d
mov r8d, edi
shl edi, 5
shr r8d, 0x1b
or r8d, edi
or ecx, r8d
not ecx
xor eax, ecx
mov ecx, r8d
and ecx, eax
xor ebx, ecx
xor ebx, r14d
xor ebx, r10d
xor ebx, ebp
xor edx, ebx
mov ecx, ebx
xor edx, r8d
ror ebx, 2
xor edx, eax
xor ebx, esi
or ecx, edx
mov r11d, edx
not ecx
xor eax, ecx
and r11d, eax
ror eax, 1
xor r11d, r9d
xor eax, r15d
mov r9d, edx
shr edx, 5
shl r9d, 0x1b
or r9d, edx
mov r8d, r9d
xor r8d, r11d
mov edx, r8d
mov ecx, r8d
ror edx, 0x18
ror ecx, 8
xor edx, ecx
xor r8d, edx
xor ebx, r8d
xor eax, r8d
mov r10d, ebx
xor r10d, eax
mov edx, r10d
mov ecx, r10d
ror edx, 0x18
ror ecx, 8
xor edx, ecx
xor r10d, edx
ror eax, 0x1f
mov ecx, r13d
xor ecx, r10d
xor r9d, ecx
lea ecx, [rbx*4]
mov r8d, r9d
shl r9d, 5
shr r8d, 0x1b
or r8d, r9d
mov r9d, ebx
movzx ebx, byte [r12 + 1]
shr r9d, 0x1e
or r9d, ecx
mov ecx, r9d
mov edx, r9d
or ecx, r8d
not ecx
xor eax, ecx
mov ecx, r8d
and ecx, eax
xor ebx, ecx
xor ebx, r14d
xor ebx, r10d
xor ebx, r11d
xor edx, ebx
mov ecx, ebx
xor edx, r8d
ror ebx, 2
xor edx, eax
xor ebx, esi
or ecx, edx
mov r11d, edx
not ecx
xor eax, ecx
and r11d, eax
ror eax, 1
xor r11d, r9d
xor eax, r15d
mov r9d, edx
shr edx, 5
shl r9d, 0x1b
or r9d, edx
mov r8d, r9d
xor r8d, r11d
mov edx, r8d
mov ecx, r8d
ror ecx, 8
ror edx, 0x18
xor edx, ecx
xor r8d, edx
xor ebx, r8d
xor eax, r8d
mov r10d, ebx
xor r10d, eax
ror eax, 0x1f
mov edx, r10d
mov ecx, r10d
ror ecx, 8
ror edx, 0x18
xor edx, ecx
mov ecx, r13d
xor r10d, edx
xor ecx, r10d
xor r9d, ecx
lea ecx, [rbx*4]
mov r8d, r9d
shl r9d, 5
shr r8d, 0x1b
or r8d, r9d
mov r9d, ebx
shr r9d, 0x1e
mov edi, r8d
or r9d, ecx
mov ecx, r9d
or ecx, r8d
not ecx
xor eax, ecx
movzx ecx, byte [r12]
and edi, eax
xor edi, ecx
mov edx, r9d
xor edi, r14d
xor edi, r10d
xor edi, r11d
movzx r11d, byte [r12 - 1]
xor edx, edi
mov ecx, edi
xor edx, r8d
ror edi, 2
xor edx, eax
xor edi, esi
or ecx, edx
mov ebx, edx
not ecx
xor eax, ecx
and ebx, eax
ror eax, 1
xor ebx, r9d
xor eax, r15d
mov r9d, edx
shr edx, 5
shl r9d, 0x1b
or r9d, edx
mov r8d, r9d
xor r8d, ebx
mov edx, r8d
mov ecx, r8d
ror edx, 0x18
ror ecx, 8
xor edx, ecx
xor r8d, edx
xor eax, r8d
xor edi, r8d
mov r10d, edi
xor r10d, eax
ror eax, 0x1f
mov edx, r10d
mov ecx, r10d
ror ecx, 8
ror edx, 0x18
xor edx, ecx
mov ecx, r13d
xor r10d, edx
xor ecx, r10d
xor r9d, ecx
lea ecx, [rdi*4]
mov r8d, r9d
shl r9d, 5
shr r8d, 0x1b
or r8d, r9d
mov r9d, edi
shr r9d, 0x1e
or r9d, ecx
mov edx, r9d
mov ecx, r9d
or edx, r8d
not edx
xor edx, eax
mov eax, r8d
and eax, edx
xor r11d, eax
xor r11d, r14d
xor r11d, r10d
xor r11d, ebx
xor ecx, r11d
mov eax, r11d
xor ecx, r8d
xor ecx, edx
or eax, ecx
mov ebp, ecx
not eax
mov edi, ecx
xor edx, eax
shl edi, 0x1b
and ebp, edx
mov eax, edx
shl eax, 0x1f
xor ebp, r9d
shr edx, 1
or eax, edx
shr ecx, 5
mov ebx, r11d
lea r12, [r12 - 4]
shl ebx, 0x1e
or edi, ecx
shr r11d, 2
or ebx, r11d
sub qword [rsp + 0x20], 1
jne 0x1400405c0
mov rsi, qword [rsp + 0x30]
mov r8d, edi
mov r12, qword [rsp + 0x80]
xor r8d, ebp
mov r15, qword [rsp + 0x28]
mov edx, r8d
mov r14, qword [rsp + 0x88]
mov ecx, r8d
ror ecx, 8
add r15, 0x10
mov r9, qword [r12 + 0x20]
ror edx, 0x18
xor edx, ecx
mov qword [rsp + 0x28], r15
xor r8d, edx
mov ecx, r8d
xor r8d, dword [r9 + 0xc]
xor ecx, dword [r9 + 4]
xor ebx, r8d
xor eax, ecx
mov edx, ebx
xor edx, eax
mov r8d, edx
mov ecx, edx
ror r8d, 0x18
ror ecx, 8
xor r8d, ecx
xor r8d, edx
mov ecx, r8d
xor r8d, dword [r9]
xor ecx, dword [r9 + 8]
xor r8d, ebp
btc r8d, 7
xor ecx, edi
bswap r8d
mov dword [rsi - 8], r8d
bswap eax
mov dword [rsi - 4], eax
bswap ecx
mov dword [rsi], ecx
bswap ebx
mov dword [rsi + 4], ebx
add rsi, 0x10
sub qword [rsp + 0x98], 1
mov qword [rsp + 0x30], rsi
jne 0x140040580
mov r15, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x90]
mov rdi, qword [rsp + 0x48]
add rsp, 0x58
pop r14
pop r13
pop r12
pop rbx
ret