Function at 0x140211490
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x18], r8d
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
cmp dword [rcx + 0x8b60], 0
mov r14, r9
mov rsi, rdx
mov r15, rcx
jne 0x1402116f5
mov r11, qword [rcx + 0x8b58]
test r11, r11
je 0x1402116f5
mov r10, qword [r15 + 0x8630]
mov rcx, rdx
mov r9, qword [r15 + 0x86d0]
mov edi, 1
shl edi, cl
mov r8, r9
movzx r12d, byte [r11 + 0x80d0]
mov ecx, 0x10
mov rax, qword [r10 + 0x38]
mov rbp, qword [r10 + 0x28]
shl r8, 4
lea rbx, [rdi - 1]
add r8, 0xfffffffffffffff0
mov byte [rsp + 0xb0], r12b
sub rax, r8
inc rax
cmp rax, rcx
cmovb rcx, rax
xor eax, eax
mov qword [rsp + 0x40], rcx
inc rbp
mov rcx, qword [r10 + 0x30]
and ecx, 0xf
cmp r8, qword [r10 + 0x30]
mov r8, qword [r11 + 0x8830]
cmovbe eax, ecx
mov qword [rsp + 0x60], r8
mov rcx, qword [r10 + 0x20]
add rbx, rax
xor edx, edx
mov rax, rbx
div rdi
dec rcx
xor r13d, r13d
sub rbx, rdx
add rcx, rdi
xor edx, edx
mov qword [rsp + 0x38], rbx
mov rax, rcx
div rdi
movzx eax, byte [r11 + 0x80d1]
mov r11, qword [r10 + 0x40]
sub rcx, rdx
cmp dword [r15 + 0x18], 4
mov byte [rsp + 0x30], al
lea rax, [r9 - 1]
sete r13b
mov qword [rsp + 0x28], rcx
mov rcx, qword [r10 + 0x48]
xor edx, edx
shl rax, 4
add r13, 3
add r13, qword [r15 + 0x28]
div rdi
mov qword [rsp + 0x50], r11
lea r10, [rcx + rax*8]
mov eax, dword [r15 + 0x18]
mov qword [rsp + 0x68], r10
cmp eax, 7
je 0x1402115cb
cmp eax, 4
jne 0x140211c9b
mov eax, dword [r15 + 0x1c]
cmp eax, 1
jne 0x14021170f
mov r9d, dword [rsp + 0xc0]
mov rcx, r14
mov eax, 0x80
shl eax, cl
cdq
idiv r9d
mov dword [rsp + 0xb0], eax
cmp rbx, qword [rsp + 0x40]
jae 0x1402116f5
mov rdx, rbx
lea r12, [0x1403f9fa0]
shl rdx, 4
mov rax, rdi
shl rax, 4
mov r10, r8
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x58], rdx
nop word [rax + rax]
mov r8, rax
mov rcx, rsi
mov rax, rbx
shr rax, cl
mov rcx, qword [rsp + 0x68]
mov rax, qword [rcx + rax*8]
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x28]
cmp rax, rbp
jae 0x1402116d8
mov rbx, qword [rsp + 0x58]
nop dword [rax]
mov rax, r8
and eax, 0xf
add rax, rbx
movzx ecx, byte [rax + r12]
mov rax, r8
and rax, 0xfffffffffffffff0
shl rax, 4
add rcx, rax
mov edx, dword [r10 + rcx*4]
mov rcx, r14
add edx, dword [rsp + 0xb0]
imul edx, r9d
sar edx, cl
test edx, edx
jns 0x140211698
xor edx, edx
jmp 0x1402116a2
mov eax, 0xff
cmp edx, eax
cmovg edx, eax
mov rax, r8
mov rcx, rsi
shr rax, cl
add r8, rdi
mov rcx, qword [r11 + rax*8]
add rcx, qword [rsp + 0x20]
mov rax, qword [r15 + 0x80f0]
add rcx, r13
mov byte [rcx + rax], dl
cmp r8, rbp
jb 0x140211660
mov rbx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x28]
add rdx, qword [rsp + 0x48]
add rbx, rdi
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x58], rdx
cmp rbx, qword [rsp + 0x40]
jb 0x140211630
xor eax, eax
mov rbx, qword [rsp + 0xb8]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
cmp eax, 2
jne 0x14021183c
mov r9d, dword [rsp + 0xc0]
mov rcx, r14
mov eax, 0x8000
shl eax, cl
cdq
idiv r9d
mov dword [rsp + 0xb0], eax
cmp rbx, qword [rsp + 0x40]
jae 0x1402116f5
mov rdx, qword [rsp + 0x28]
mov rax, rbx
shl rax, 4
mov r10, r8
mov qword [rsp + 0x20], rax
mov rax, rdi
shl rax, 4
mov dword [rsp + 0x58], r12d
lea r12, [0x1403f9fa0]
mov qword [rsp + 0x50], rax
nop dword [rax + rax]
mov rcx, rsi
mov rax, rbx
shr rax, cl
mov r8, rdx
mov rcx, qword [rsp + 0x68]
mov rax, qword [rcx + rax*8]
mov qword [rsp + 0x48], rax
cmp rdx, rbp
jae 0x14021181a
mov rbx, qword [rsp + 0x20]
nop dword [rax + rax]
mov rax, r8
and eax, 0xf
add rax, rbx
movzx ecx, byte [rax + r12]
mov rax, r8
and rax, 0xfffffffffffffff0
shl rax, 4
add rcx, rax
mov edx, dword [r10 + rcx*4]
mov rcx, r14
add edx, dword [rsp + 0xb0]
imul edx, r9d
sar edx, cl
mov ecx, dword [rsp + 0x58]
shl edx, cl
test edx, edx
jns 0x1402117de
xor edx, edx
jmp 0x1402117e8
mov eax, 0xffff
cmp edx, eax
cmovg edx, eax
mov rax, r8
mov rcx, rsi
shr rax, cl
add r8, rdi
mov rcx, qword [r11 + rax*8]
add rcx, qword [rsp + 0x48]
mov rax, qword [r15 + 0x80f0]
add rcx, r13
mov word [rax + rcx*2], dx
cmp r8, rbp
jb 0x1402117a0
mov rbx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x50]
add rbx, rdi
add qword [rsp + 0x20], rax
mov qword [rsp + 0x38], rbx
cmp rbx, qword [rsp + 0x40]
jb 0x140211770
jmp 0x1402116f5
cmp eax, 3
jne 0x14021195f
cmp rbx, qword [rsp + 0x40]
jae 0x1402116f5
mov r9d, dword [rsp + 0xc0]
mov rdx, rbx
shl rdx, 4
mov rax, rdi
shl rax, 4
mov r10, r8
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x28]
mov dword [rsp + 0xb0], r12d
lea r12, [0x1403f9fa0]
mov qword [rsp + 0x20], rdx
nop word [rax + rax]
mov r8, rax
mov rcx, rsi
mov rax, rbx
shr rax, cl
mov rcx, qword [rsp + 0x68]
mov rax, qword [rcx + rax*8]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x28]
cmp rax, rbp
jae 0x14021193d
mov ebx, 0x7fff
nop dword [rax]
mov rax, r8
and eax, 0xf
add rax, rdx
mov edx, r9d
movzx ecx, byte [rax + r12]
mov rax, r8
and rax, 0xfffffffffffffff0
shl rax, 4
add rcx, rax
imul edx, dword [r10 + rcx*4]
mov rcx, r14
sar edx, cl
mov ecx, dword [rsp + 0xb0]
shl edx, cl
cmp edx, 0xffff8000
jge 0x140211901
mov edx, 0xffff8000
jmp 0x140211906
cmp edx, ebx
cmovg edx, ebx
mov rax, r8
mov rcx, rsi
shr rax, cl
add r8, rdi
mov rcx, qword [r11 + rax*8]
add rcx, qword [rsp + 0x50]
mov rax, qword [r15 + 0x80f0]
add rcx, r13
mov word [rax + rcx*2], dx
mov rdx, qword [rsp + 0x20]
cmp r8, rbp
jb 0x1402118c0
mov rbx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x28]
add rdx, qword [rsp + 0x48]
add rbx, rdi
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x20], rdx
cmp rbx, qword [rsp + 0x40]
jb 0x140211890
jmp 0x1402116f5
cmp eax, 4
jne 0x140211a76
cmp rbx, qword [rsp + 0x40]
jae 0x1402116f5
mov r9d, dword [rsp + 0xc0]
lea r12, [0x1403f9fa0]
mov rdx, rbx
mov rax, rdi
shl rdx, 4
mov r10, r8
shl rax, 4
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0xb0], rdx
nop word [rax + rax]
mov r8, rax
mov rcx, rsi
mov rax, rbx
shr rax, cl
mov rcx, qword [rsp + 0x68]
mov rax, qword [rcx + rax*8]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x28]
cmp rax, rbp
jae 0x140211a51
mov ebx, 0x7fff
nop dword [rax]
mov rax, r8
and eax, 0xf
add rax, rdx
mov edx, r9d
movzx ecx, byte [rax + r12]
mov rax, r8
and rax, 0xfffffffffffffff0
shl rax, 4
add rcx, rax
imul edx, dword [r10 + rcx*4]
mov rcx, r14
sar edx, cl
mov rcx, rsi
mov eax, edx
and dx, bx
sar eax, 0x1f
xor dx, ax
sub dx, ax
mov rax, r8
shr rax, cl
add r8, rdi
mov rcx, qword [r11 + rax*8]
add rcx, qword [rsp + 0x50]
mov rax, qword [r15 + 0x80f0]
add rcx, r13
mov word [rax + rcx*2], dx
mov rdx, qword [rsp + 0xb0]
cmp r8, rbp
jb 0x1402119e0
mov rbx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x28]
add rdx, qword [rsp + 0x48]
add rbx, rdi
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0xb0], rdx
cmp rbx, qword [rsp + 0x40]
jb 0x1402119b0
jmp 0x1402116f5
cmp eax, 6
jne 0x140211b7b
cmp rbx, qword [rsp + 0x40]
jae 0x1402116f5
mov r9d, dword [rsp + 0xc0]
lea r12, [0x1403f9fa0]
mov rdx, rbx
mov rax, rdi
shl rdx, 4
mov r10, r8
shl rax, 4
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x20], rdx
nop dword [rax]
mov r8, rax
mov rcx, rsi
mov rax, rbx
shr rax, cl
mov rcx, qword [rsp + 0x68]
mov rax, qword [rcx + rax*8]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x28]
cmp rax, rbp
jae 0x140211b59
mov rbx, qword [rsp + 0x20]
nop dword [rax]
mov rax, r8
mov edx, r9d
and eax, 0xf
add rax, rbx
movzx ecx, byte [rax + r12]
mov rax, r8
and rax, 0xfffffffffffffff0
shl rax, 4
add rcx, rax
mov rax, r8
add r8, rdi
imul edx, dword [r10 + rcx*4]
mov rcx, r14
sar edx, cl
movzx ecx, byte [rsp + 0xb0]
shl edx, cl
mov rcx, rsi
shr rax, cl
mov rcx, qword [r11 + rax*8]
add rcx, qword [rsp + 0x50]
mov rax, qword [r15 + 0x80f0]
add rcx, r13
mov dword [rax + rcx*4], edx
cmp r8, rbp
jb 0x140211af0
mov rbx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x20]
mov rax, qword [rsp + 0x28]
add rdx, qword [rsp + 0x48]
add rbx, rdi
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x20], rdx
cmp rbx, qword [rsp + 0x40]
jb 0x140211ac0
jmp 0x1402116f5
cmp eax, 7
jne 0x140211c9b
cmp rbx, qword [rsp + 0x40]
jae 0x1402116f5
mov r9, qword [rsp + 0x28]
lea r12, [0x1403f9fa0]
mov rdx, rbx
mov rax, rdi
shl rdx, 4
shl rax, 4
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x20], rdx
nop dword [rax]
nop word [rax + rax]
mov rax, rbx
mov rcx, rsi
shr rax, cl
mov r14, r9
mov rax, qword [r10 + rax*8]
mov qword [rsp + 0x48], rax
cmp r9, rbp
jae 0x140211c79
mov rbx, qword [rsp + 0x50]
nop dword [rax]
nop word [rax + rax]
mov rcx, qword [rsp + 0xc8]
mov rax, r14
and eax, 0xf
add rax, rdx
movzx edx, byte [rax + r12]
mov rax, r14
and rax, 0xfffffffffffffff0
shl rax, 4
add rdx, rax
mov eax, dword [rsp + 0xc0]
imul eax, dword [r8 + rdx*4]
movzx r8d, byte [rsp + 0xb0]
movzx edx, byte [rsp + 0x30]
sar eax, cl
mov ecx, eax
call fcn.140217440
mov r8, qword [rsp + 0x60]
mov rax, r14
mov rdx, qword [rsp + 0x20]
mov rcx, rsi
shr rax, cl
add r14, rdi
mov rcx, qword [rbx + rax*8]
add rcx, qword [rsp + 0x48]
mov rax, qword [r15 + 0x80f0]
add rcx, r13
movss dword [rax + rcx*4], xmm0
cmp r14, rbp
jb 0x140211bf0
mov rbx, qword [rsp + 0x38]
mov r9, qword [rsp + 0x28]
mov r10, qword [rsp + 0x68]
add rdx, qword [rsp + 0x58]
add rbx, rdi
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x20], rdx
cmp rbx, qword [rsp + 0x40]
jb 0x140211bc0
jmp 0x1402116f5
mov eax, 0xffffffff
jmp 0x1402116f7