Function at 0x140216950
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x128
mov rax, qword [0x1404b0028]
xor rax, rsp
mov qword [rsp + 0x110], rax
mov r10, qword [rcx + 0x8630]
mov rsi, rcx
mov dword [rsp + 0x28], edx
mov ebp, 0x10
mov qword [rsp + 0x68], rcx
mov r15, r9
mov qword [rsp + 0x30], r9
mov r11, r8
mov r9, qword [r10 + 0x10]
mov rax, qword [r10 + 0x38]
mov rdi, qword [r10 + 0x28]
mov r14, qword [r10 + 0x40]
inc rdi
mov rbx, qword [rsi + 0xa0]
movzx r12d, byte [rsi + 0x80d0]
movzx r13d, byte [rsi + 0x80d1]
mov qword [rsp + 0x70], r8
mov r8d, edx
mov rdx, qword [rcx + 0x86d0]
mov rcx, rdx
mov qword [rsp + 0x20], 0
shl rcx, 4
sub rax, rcx
mov qword [rsp + 0x58], r9
mov rcx, qword [r10 + 0x48]
add rax, 0x11
cmp rax, rbp
mov qword [rsp + 0x48], rdi
mov r10, r9
mov qword [rsp + 0x78], r14
cmovb rbp, rax
lea rax, [rdx - 1]
shl rax, 4
xor edx, edx
div r9
mov r9, qword [rsp + 0x20]
mov qword [rsp + 0x60], rbp
lea rax, [rcx + rax*8]
mov qword [rsp + 0x50], rax
cmp r10, 1
jbe 0x140216a42
mov ecx, 1
rol ecx, 1
inc r9
mov eax, ecx
cmp rax, r10
jb 0x140216a31
mov qword [rsp + 0x20], r9
xor edx, edx
test rbx, rbx
je 0x140216a72
lea r8, [rsi + 0x8830]
mov rax, qword [r8]
lea r8, [r8 + 8]
mov rcx, rdx
inc rdx
and ecx, 0xf
mov qword [rsp + rcx*8 + 0x90], rax
cmp rdx, rbx
jb 0x140216a50
mov r8d, dword [rsp + 0x28]
mov rdx, rsi
cmp dword [rdx + 0x863c], 0
je 0x140216a9c
mov rax, qword [rdx + 0x8a30]
mov qword [rsp + 0x98], rax
mov rax, qword [rdx + 0x8a38]
mov qword [rsp + 0xa0], rax
mov eax, dword [rdx + 0x1c]
dec eax
cmp eax, 6
ja case.default.0x140216abd
cdqe
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0x217420]
add rax, rcx
jmp rax
mov r13d, dword [rsp + 0x28]
mov rcx, r11
mov eax, 0x80
shl eax, cl
cdq
idiv r13d
mov esi, eax
cmp r15, rbp
jae case.default.0x140216abd
mov rax, qword [rsp + 0x30]
mov rbp, r15
mov r15, qword [rsp + 0x190]
mov r12, r10
shl rbp, 4
mov rdx, rdi
shl r12, 4
mov qword [rsp + 0x80], r12
nop dword [rax]
nop word [rax + rax]
mov rcx, r9
mov rdi, r15
shr rax, cl
mov rcx, qword [rsp + 0x50]
mov r14, qword [rcx + rax*8]
mov qword [rsp + 0x38], r14
cmp r15, rdx
jae 0x140216c08
mov r15, qword [rsp + 0x70]
mov r12, qword [rsp + 0x48]
nop word [rax + rax]
mov rcx, r9
mov rax, rdi
shr rax, cl
xor r8d, r8d
mov rcx, qword [rsp + 0x78]
mov r9, qword [rcx + rax*8]
mov rax, qword [rsp + 0x68]
add r9, qword [rax + 0x80f0]
add r9, r14
test rbx, rbx
je 0x140216be2
mov r10, rdi
lea r14, [0x140000000]
and r10d, 0xf
mov r11, rdi
add r10, rbp
and r11, 0xfffffffffffffff0
shl r11, 4
mov r12d, 0xff
nop dword [rax + rax]
movzx ecx, byte [r10 + r14 + 0x3f9fa0]
mov rax, r8
add rcx, r11
and eax, 0xf
mov rax, qword [rsp + rax*8 + 0x90]
mov edx, dword [rax + rcx*4]
mov rcx, r15
add edx, esi
imul edx, r13d
sar edx, cl
test edx, edx
jns 0x140216bc0
xor edx, edx
jmp 0x140216bc7
cmp edx, r12d
cmovg edx, r12d
mov byte [r9 + r8], dl
inc r8
cmp r8, rbx
jb 0x140216b90
mov r14, qword [rsp + 0x38]
mov r10, qword [rsp + 0x58]
mov r12, qword [rsp + 0x48]
mov r9, qword [rsp + 0x20]
add rdi, r10
cmp rdi, r12
jb 0x140216b40
mov r15, qword [rsp + 0x190]
mov r12, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x30]
add rbp, r12
add rax, r10
mov qword [rsp + 0x30], rax
cmp rax, qword [rsp + 0x60]
jb 0x140216b10
jmp case.default.0x140216abd
mov rcx, r11
mov eax, 0x8000
shl eax, cl
cdq
idiv r8d
mov ebp, eax
cmp r15, qword [rsp + 0x60]
jae case.default.0x140216abd
mov rcx, qword [rsp + 0x20]
mov r14, r15
mov rdx, qword [rsp + 0x50]
mov r13, r10
shl r14, 4
mov esi, r12d
mov r12, qword [rsp + 0x190]
shl r13, 4
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x80], r14
nop dword [rax]
nop word [rax + rax]
shr r15, cl
mov r9, r12
mov r15, qword [rdx + r15*8]
mov qword [rsp + 0x38], r15
cmp r12, rdi
jae 0x140216d72
mov r12d, dword [rsp + 0x28]
mov r13, qword [rsp + 0x70]
mov rax, r9
xor r8d, r8d
shr rax, cl
mov rcx, qword [rsp + 0x78]
mov rcx, qword [rcx + rax*8]
mov rax, qword [rsp + 0x68]
add rcx, r15
mov rax, qword [rax + 0x80f0]
lea rdi, [rax + rcx*2]
test rbx, rbx
je 0x140216d4a
mov r10, r9
mov r11, r9
and r10d, 0xf
and r11, 0xfffffffffffffff0
add r10, r14
mov r15d, 0xffff
shl r11, 4
lea r14, [0x140000000]
nop
movzx ecx, byte [r10 + r14 + 0x3f9fa0]
mov rax, r8
add rcx, r11
and eax, 0xf
mov rax, qword [rsp + rax*8 + 0x90]
mov edx, dword [rax + rcx*4]
mov rcx, r13
add edx, ebp
imul edx, r12d
sar edx, cl
mov ecx, esi
shl edx, cl
test edx, edx
jns 0x140216d24
xor edx, edx
jmp 0x140216d2b
cmp edx, r15d
cmovg edx, r15d
mov word [rdi + r8*2], dx
inc r8
cmp r8, rbx
jb 0x140216cf0
mov r14, qword [rsp + 0x80]
mov r15, qword [rsp + 0x38]
mov r10, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x48]
add r9, r10
mov rcx, qword [rsp + 0x20]
cmp r9, rdi
jb 0x140216ca2
mov r12, qword [rsp + 0x190]
mov r13, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x50]
mov r15, qword [rsp + 0x30]
add r14, r13
add r15, r10
mov qword [rsp + 0x80], r14
mov qword [rsp + 0x30], r15
cmp r15, qword [rsp + 0x60]
jb 0x140216c80
jmp case.default.0x140216abd
cmp r15, rbp
jae case.default.0x140216abd
mov rcx, qword [rsp + 0x20]
mov r14, r15
mov r8, qword [rsp + 0x50]
mov r13, r10
shl r14, 4
mov esi, r12d
mov r12, qword [rsp + 0x190]
mov ebp, 0x7fff
shl r13, 4
mov qword [rsp + 0x38], r13
shr r15, cl
mov r9, r12
mov r15, qword [r8 + r15*8]
mov qword [rsp + 0x40], r15
cmp r12, rdi
jae 0x140216ec1
mov r12d, dword [rsp + 0x28]
mov r13, qword [rsp + 0x70]
mov rax, r9
xor r8d, r8d
shr rax, cl
mov rcx, qword [rsp + 0x78]
mov rcx, qword [rcx + rax*8]
mov rax, qword [rdx + 0x80f0]
add rcx, r15
lea rdi, [rax + rcx*2]
test rbx, rbx
je 0x140216e99
mov r10, r9
lea r15, [0x140000000]
and r10d, 0xf
mov r11, r9
add r10, r14
and r11, 0xfffffffffffffff0
shl r11, 4
nop word [rax + rax]
movzx edx, byte [r10 + r15 + 0x3f9fa0]
mov rax, r8
and eax, 0xf
add rdx, r11
mov rcx, qword [rsp + rax*8 + 0x90]
mov eax, r12d
imul eax, dword [rcx + rdx*4]
mov rcx, r13
sar eax, cl
mov ecx, esi
shl eax, cl
cmp eax, 0xffff8000
jge 0x140216e78
mov eax, 0xffff8000
jmp 0x140216e7d
cmp eax, ebp
cmovg eax, ebp
mov word [rdi + r8*2], ax
inc r8
cmp r8, rbx
jb 0x140216e40
mov r15, qword [rsp + 0x40]
mov r10, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x48]
add r9, r10
mov rcx, qword [rsp + 0x20]
cmp r9, rdi
jb 0x140216df2
mov r12, qword [rsp + 0x190]
mov r13, qword [rsp + 0x38]
mov r8, qword [rsp + 0x50]
mov r15, qword [rsp + 0x30]
add r14, r13
add r15, r10
mov qword [rsp + 0x30], r15
cmp r15, qword [rsp + 0x60]
jb 0x140216dd0
jmp case.default.0x140216abd
cmp r15, rbp
jae case.default.0x140216abd
mov r12, qword [rsp + 0x190]
mov r14, r15
shl r14, 4
mov r13, r10
shl r13, 4
mov ebp, 0x7fff
mov qword [rsp + 0x38], r13
nop word [rax + rax]
mov rcx, r9
mov r10, r12
shr r15, cl
mov rcx, qword [rsp + 0x50]
mov r15, qword [rcx + r15*8]
mov qword [rsp + 0x40], r15
cmp r12, rdi
jae 0x14021700b
mov r12d, dword [rsp + 0x28]
mov r13, qword [rsp + 0x70]
nop word [rax + rax]
mov rcx, r9
mov rax, r10
shr rax, cl
xor r9d, r9d
mov rcx, qword [rsp + 0x78]
mov rcx, qword [rcx + rax*8]
mov rax, qword [rdx + 0x80f0]
add rcx, r15
lea rsi, [rax + rcx*2]
test rbx, rbx
je 0x140216fe6
mov r11, r10
lea r15, [0x140000000]
and r11d, 0xf
mov rdi, r10
add r11, r14
and rdi, 0xfffffffffffffff0
shl rdi, 4
nop dword [rax]
nop dword [rax + rax]
movzx edx, byte [r11 + r15 + 0x3f9fa0]
mov rax, r9
and eax, 0xf
add rdx, rdi
mov r8d, r12d
mov rcx, qword [rsp + rax*8 + 0x90]
imul r8d, dword [rcx + rdx*4]
mov rcx, r13
sar r8d, cl
mov eax, r8d
and r8w, bp
sar eax, 0x1f
xor r8w, ax
sub r8w, ax
mov word [rsi + r9*2], r8w
inc r9
cmp r9, rbx
jb 0x140216f90
mov r15, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x58]
mov r9, qword [rsp + 0x20]
add r10, rax
cmp r10, rdi
jb 0x140216f40
mov r12, qword [rsp + 0x190]
mov r13, qword [rsp + 0x38]
jmp 0x140217010
mov rax, qword [rsp + 0x58]
mov r15, qword [rsp + 0x30]
add r14, r13
add r15, rax
mov qword [rsp + 0x30], r15
cmp r15, qword [rsp + 0x60]
jb 0x140216f10
jmp case.default.0x140216abd
mov ecx, r12d
mov eax, 0x80000000
sar eax, cl
mov esi, r12d
mov rcx, r11
shl eax, cl
cdq
idiv r8d
mov ebp, eax
cmp r15, qword [rsp + 0x60]
jae case.default.0x140216abd
mov r12, qword [rsp + 0x190]
mov r14, r15
shl r14, 4
mov r13, r10
shl r13, 4
mov qword [rsp + 0x38], r13
nop
mov rcx, r9
mov r11, r12
shr r15, cl
mov rcx, qword [rsp + 0x50]
mov r15, qword [rcx + r15*8]
mov qword [rsp + 0x40], r15
cmp r12, rdi
jae 0x140217155
mov r12d, dword [rsp + 0x28]
mov r13, qword [rsp + 0x70]
nop word [rax + rax]
mov rcx, r9
mov rax, r11
shr rax, cl
xor r8d, r8d
mov rcx, qword [rsp + 0x78]
mov rcx, qword [rcx + rax*8]
mov rax, qword [rsp + 0x68]
add rcx, r15
mov rax, qword [rax + 0x80f0]
lea rdi, [rax + rcx*4]
test rbx, rbx
je 0x140217137
mov r9, r11
lea r15, [0x140000000]
and r9d, 0xf
mov r10, r11
add r9, r14
and r10, 0xfffffffffffffff0
shl r10, 4
nop dword [rax]
movzx ecx, byte [r9 + r15 + 0x3f9fa0]
mov rax, r8
add rcx, r10
and eax, 0xf
mov rax, qword [rsp + rax*8 + 0x90]
mov edx, dword [rax + rcx*4]
mov rcx, r13
add edx, ebp
imul edx, r12d
sar edx, cl
mov ecx, esi
shl edx, cl
mov dword [rdi + r8*4], edx
inc r8
cmp r8, rbx
jb 0x1402170f0
mov r15, qword [rsp + 0x40]
mov r10, qword [rsp + 0x58]
mov r9, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x48]
add r11, r10
cmp r11, rdi
jb 0x1402170a0
mov r12, qword [rsp + 0x190]
mov r13, qword [rsp + 0x38]
mov r15, qword [rsp + 0x30]
add r14, r13
add r15, r10
mov qword [rsp + 0x30], r15
cmp r15, qword [rsp + 0x60]
jb 0x140217070
jmp case.default.0x140216abd
cmp r15, rbp
jae case.default.0x140216abd
mov r13, qword [rsp + 0x30]
mov rbp, r15
mov r15, qword [rsp + 0x190]
mov esi, r12d
shl rbp, 4
mov r12, r10
shl r12, 4
mov qword [rsp + 0x40], r12
mov rcx, r9
mov rax, r13
shr rax, cl
mov r11, r15
mov rcx, qword [rsp + 0x50]
mov r14, qword [rcx + rax*8]
cmp r15, rdi
jae 0x14021727d
mov r15d, dword [rsp + 0x28]
mov r12, qword [rsp + 0x70]
mov r13, qword [rsp + 0x78]
nop
mov rcx, r9
mov rax, r11
shr rax, cl
xor r8d, r8d
mov rcx, qword [r13 + rax*8]
mov rax, qword [rdx + 0x80f0]
add rcx, r14
lea rdi, [rax + rcx*4]
test rbx, rbx
je 0x14021725a
mov r9, r11
lea r13, [0x140000000]
and r9d, 0xf
mov r10, r11
add r9, rbp
and r10, 0xfffffffffffffff0
shl r10, 4
movzx edx, byte [r9 + r13 + 0x3f9fa0]
mov rax, r8
and eax, 0xf
add rdx, r10
mov rcx, qword [rsp + rax*8 + 0x90]
mov eax, r15d
imul eax, dword [rcx + rdx*4]
mov rcx, r12
sar eax, cl
mov ecx, esi
shl eax, cl
mov dword [rdi + r8*4], eax
inc r8
cmp r8, rbx
jb 0x140217210
mov r10, qword [rsp + 0x58]
mov r9, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x68]
mov r13, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x48]
add r11, r10
cmp r11, rdi
jb 0x1402171d0
mov r15, qword [rsp + 0x190]
mov r12, qword [rsp + 0x40]
mov r13, qword [rsp + 0x30]
add r13, r10
add rbp, r12
mov qword [rsp + 0x30], r13
cmp r13, qword [rsp + 0x60]
jb 0x1402171a1
jmp case.default.0x140216abd
cmp r15, rbp
jae case.default.0x140216abd
mov r9, qword [rsp + 0x190]
mov rdx, r15
mov rcx, qword [rsp + 0x20]
mov rax, r10
shl rdx, 4
shl rax, 4
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x38], rdx
nop dword [rax]
mov r8, qword [rsp + 0x50]
mov rax, r15
shr rax, cl
mov rsi, r9
mov qword [rsp + 0x80], r9
mov r8, qword [r8 + rax*8]
mov qword [rsp + 0x40], r8
cmp r9, rdi
jae 0x1402173db
nop dword [rax + rax]
mov rax, rsi
xor edi, edi
shr rax, cl
mov rcx, qword [r14 + rax*8]
mov rax, qword [rsp + 0x68]
add rcx, r8
mov rax, qword [rax + 0x80f0]
lea r15, [rax + rcx*4]
test rbx, rbx
je 0x1402173ab
mov rbp, rsi
mov r14, rsi
mov esi, dword [rsp + 0x28]
and ebp, 0xf
add rbp, rdx
and r14, 0xfffffffffffffff0
shl r14, 4
mov rcx, r11
lea rax, [0x140000000]
movzx r8d, byte [rax + rbp + 0x3f9fa0]
mov rax, rdi
and eax, 0xf
add r8, r14
mov rdx, qword [rsp + rax*8 + 0x90]
mov eax, esi
imul eax, dword [rdx + r8*4]
movzx r8d, r12b
movzx edx, r13b
sar eax, cl
mov ecx, eax
call fcn.140217440
mov r11, qword [rsp + 0x70]
movss dword [r15 + rdi*4], xmm0
inc rdi
cmp rdi, rbx
jb 0x140217340
mov rsi, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x38]
mov r8, qword [rsp + 0x40]
mov r10, qword [rsp + 0x58]
mov r14, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x48]
add rsi, r10
mov rcx, qword [rsp + 0x20]
mov qword [rsp + 0x80], rsi
cmp rsi, rdi
jb 0x140217300
mov r9, qword [rsp + 0x190]
mov r15, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x60]
add rdx, qword [rsp + 0x88]
add r15, r10
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x38], rdx
cmp r15, rbp
jb 0x1402172d0
mov rcx, qword [rsp + 0x110]
xor rcx, rsp
call fcn.140048b40
add rsp, 0x128
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret