Function at 0x140016dd0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rdi
push r13
push r15
sub rsp, 0x118
mov rax, qword [0x140077008]
xor rax, rsp
mov qword [rsp + 0xf0], rax
cmp dword [rcx + 0x18], 0
mov r13, r9
mov qword [rsp + 0x50], r9
mov r10, rcx
mov r9, r8
mov qword [rsp + 0x30], r8
mov r8, rdx
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x48], rcx
mov ebx, 1
je 0x140016e22
mov rbx, qword [rcx + 0xa0]
movzx eax, byte [rcx + 0x80d1]
xor edx, edx
mov rdi, qword [rcx + 0x86d0]
movzx r15d, byte [rcx + 0x80d0]
shl rdi, 7
mov byte [rsp + 0x20], al
mov rax, qword [rcx + 0x8630]
add rdi, qword [rax + 0x48]
mov r11, qword [rax + 0x40]
mov qword [rsp + 0x40], r11
mov qword [rsp + 0x38], rdi
test rbx, rbx
je 0x140016e8f
lea r8, [rcx + 0x8830]
nop word [rax + rax]
mov rax, qword [r8]
lea r8, [r8 + 8]
mov rcx, rdx
inc rdx
and ecx, 0xf
mov qword [rsp + rcx*8 + 0x70], rax
cmp rdx, rbx
jb 0x140016e70
mov r8, qword [rsp + 0x28]
cmp dword [r10 + 0x863c], 0
je 0x140016eb4
mov rax, qword [r10 + 0x8a30]
mov qword [rsp + 0x78], rax
mov rax, qword [r10 + 0x8a38]
mov qword [rsp + 0x80], rax
mov eax, dword [r10 + 0x1c]
dec eax
cmp eax, 6
ja case.default.0x140016ef6
mov qword [rsp + 0x158], rbp
lea rdx, [0x140000000]
mov qword [rsp + 0x110], rsi
mov qword [rsp + 0x108], r12
cdqe
mov qword [rsp + 0x100], r14
mov ecx, dword [rdx + rax*4 + 0x17684]
add rcx, rdx
jmp rcx
mov r14, qword [rsp + 0x160]
cmp r8, r14
jae 0x140017645
mov edi, dword [rsp + 0x170]
lea rax, [0x14006cd80]
mov rcx, qword [rsp + 0x168]
mov rsi, r8
mov r12, qword [rsp + 0x38]
mov r15, r10
shl rsi, 4
add rsi, rax
mov rbp, qword [r12 + r8*8 - 0x80]
mov r10, r9
cmp r9, r13
jae 0x140016fcd
mov r14d, 0xff
nop dword [rax + rax]
mov r9, qword [r11 + r10*8]
xor r8d, r8d
add r9, qword [r15 + 0x80f0]
add r9, rbp
test rbx, rbx
je 0x140016fb3
mov rax, r10
and eax, 0xf
movzx r11d, byte [rax + rsi]
mov rax, r10
and rax, 0xfffffffffffffff0
shl rax, 4
add r11, rax
nop
mov rax, r8
and eax, 0xf
mov rax, qword [rsp + rax*8 + 0x70]
mov edx, dword [rax + r11*4]
add edx, edi
sar edx, cl
test edx, edx
jns 0x140016f9b
xor edx, edx
jmp 0x140016fa2
cmp edx, r14d
cmovg edx, r14d
mov byte [r9 + r8], dl
inc r8
cmp r8, rbx
jb 0x140016f80
mov r11, qword [rsp + 0x40]
inc r10
cmp r10, r13
jb 0x140016f50
mov r14, qword [rsp + 0x160]
mov r8, qword [rsp + 0x28]
mov r9, qword [rsp + 0x30]
inc r8
add rsi, 0x10
mov qword [rsp + 0x28], r8
cmp r8, r14
jb 0x140016f31
jmp 0x140017645
mov r12, qword [rsp + 0x160]
cmp r8, r12
jae 0x140017645
mov esi, dword [rsp + 0x170]
lea rax, [0x14006cd80]
mov rbp, qword [rsp + 0x168]
mov r14, r8
shl r14, 4
mov edi, r15d
add r14, rax
mov rax, qword [rsp + 0x38]
mov r15, qword [rax + r8*8 - 0x80]
cmp qword [rsp + 0x30], r13
jae 0x1400170de
mov r12, qword [rsp + 0x48]
nop word [rax + rax]
mov rcx, qword [r11 + r9*8]
xor r8d, r8d
mov rax, qword [r12 + 0x80f0]
add rcx, r15
lea r10, [rax + rcx*2]
test rbx, rbx
je 0x1400170c0
mov rax, r9
mov r13d, 0xffff
and eax, 0xf
movzx r11d, byte [rax + r14]
mov rax, r9
and rax, 0xfffffffffffffff0
shl rax, 4
add r11, rax
nop word [rax + rax]
mov rax, r8
mov rcx, rbp
and eax, 0xf
mov rax, qword [rsp + rax*8 + 0x70]
mov edx, dword [rax + r11*4]
add edx, esi
sar edx, cl
mov ecx, edi
shl edx, cl
test edx, edx
jns 0x1400170a2
xor edx, edx
jmp 0x1400170a9
cmp edx, r13d
cmovg edx, r13d
mov word [r10 + r8*2], dx
inc r8
cmp r8, rbx
jb 0x140017080
mov r13, qword [rsp + 0x50]
mov r11, qword [rsp + 0x40]
inc r9
cmp r9, r13
jb 0x140017040
mov r12, qword [rsp + 0x160]
mov r8, qword [rsp + 0x28]
mov rax, qword [rsp + 0x38]
mov r9, qword [rsp + 0x30]
inc r8
add r14, 0x10
mov qword [rsp + 0x28], r8
cmp r8, r12
jb 0x140017020
jmp 0x140017645
mov r13, qword [rsp + 0x160]
cmp r8, r13
jae 0x140017645
mov ebp, dword [rsp + 0x170]
lea rax, [0x14006cd80]
mov r14, qword [rsp + 0x168]
mov esi, r15d
mov rcx, qword [rsp + 0x50]
mov r15, r8
shl r15, 4
mov r11d, 0x7fff
add r15, rax
nop dword [rax]
mov r12, qword [rdi + r8*8 - 0x80]
cmp qword [rsp + 0x30], rcx
jae 0x140017204
mov r13, qword [rsp + 0x50]
nop word [rax + rax]
mov rax, qword [rsp + 0x40]
xor r8d, r8d
mov rcx, qword [rax + r9*8]
mov rax, qword [r10 + 0x80f0]
add rcx, r12
lea r10, [rax + rcx*2]
test rbx, rbx
je 0x1400171dc
mov rax, r9
and eax, 0xf
movzx edi, byte [rax + r15]
mov rax, r9
and rax, 0xfffffffffffffff0
shl rax, 4
add rdi, rax
nop dword [rax + rax]
mov rax, r8
mov rcx, r14
and eax, 0xf
mov rax, qword [rsp + rax*8 + 0x70]
mov edx, dword [rax + rdi*4]
add edx, ebp
sar edx, cl
mov ecx, esi
shl edx, cl
cmp edx, 0xffff8000
jge 0x1400171c8
mov edx, 0xffff8000
jmp 0x1400171cf
cmp edx, r11d
cmovg edx, r11d
mov word [r10 + r8*2], dx
inc r8
cmp r8, rbx
jb 0x1400171a0
mov r10, qword [rsp + 0x48]
inc r9
cmp r9, r13
jb 0x140017160
mov r13, qword [rsp + 0x160]
mov rcx, qword [rsp + 0x50]
mov r8, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x38]
mov r9, qword [rsp + 0x30]
inc r8
add r15, 0x10
mov qword [rsp + 0x28], r8
cmp r8, r13
jb 0x140017140
jmp 0x140017645
mov r12, qword [rsp + 0x160]
cmp r8, r12
jae 0x140017645
mov esi, dword [rsp + 0x170]
lea rax, [0x14006cd80]
mov rbp, qword [rsp + 0x168]
mov r14, r8
shl r14, 4
mov r11d, 0x7fff
add r14, rax
nop word [rax + rax]
mov r15, qword [rdi + r8*8 - 0x80]
cmp qword [rsp + 0x30], r13
jae 0x140017311
mov r12, qword [rsp + 0x40]
nop word [rax + rax]
mov rcx, qword [r12 + r9*8]
xor r8d, r8d
mov rax, qword [r10 + 0x80f0]
add rcx, r15
lea rdi, [rax + rcx*2]
test rbx, rbx
je 0x1400172f7
mov rax, r9
and eax, 0xf
movzx r10d, byte [rax + r14]
mov rax, r9
and rax, 0xfffffffffffffff0
shl rax, 4
add r10, rax
nop dword [rax]
nop word [rax + rax]
mov rax, r8
mov rcx, rbp
and eax, 0xf
mov rax, qword [rsp + rax*8 + 0x70]
mov edx, dword [rax + r10*4]
add edx, esi
sar edx, cl
mov eax, edx
and dx, r11w
sar eax, 0x1f
xor dx, ax
sub dx, ax
mov word [rdi + r8*2], dx
inc r8
cmp r8, rbx
jb 0x1400172c0
mov r10, qword [rsp + 0x48]
inc r9
cmp r9, r13
jb 0x140017280
mov r12, qword [rsp + 0x160]
mov r8, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x38]
mov r9, qword [rsp + 0x30]
inc r8
add r14, 0x10
mov qword [rsp + 0x28], r8
cmp r8, r12
jb 0x140017260
jmp 0x140017645
mov r12, qword [rsp + 0x160]
cmp r8, r12
jae 0x140017645
mov esi, dword [rsp + 0x170]
lea rax, [0x14006cd80]
mov rbp, qword [rsp + 0x168]
mov r14, r8
shl r14, 4
mov edi, r15d
add r14, rax
mov rax, qword [rsp + 0x38]
nop dword [rax]
mov r15, qword [rax + r8*8 - 0x80]
cmp qword [rsp + 0x30], r13
jae 0x140017402
mov rcx, qword [r11 + r9*8]
xor r8d, r8d
mov rax, qword [r10 + 0x80f0]
add rcx, r15
lea r11, [rax + rcx*4]
test rbx, rbx
je 0x1400173eb
mov rax, r9
and eax, 0xf
movzx r10d, byte [rax + r14]
mov rax, r9
and rax, 0xfffffffffffffff0
shl rax, 4
add r10, rax
nop dword [rax]
nop word [rax + rax]
mov rax, r8
mov rcx, rbp
and eax, 0xf
mov rax, qword [rsp + rax*8 + 0x70]
mov edx, dword [rax + r10*4]
add edx, esi
sar edx, cl
mov ecx, edi
shl edx, cl
mov dword [r11 + r8*4], edx
inc r8
cmp r8, rbx
jb 0x1400173c0
mov r10, qword [rsp + 0x48]
mov r11, qword [rsp + 0x40]
inc r9
cmp r9, r13
jb 0x140017380
mov r8, qword [rsp + 0x28]
mov rax, qword [rsp + 0x38]
mov r9, qword [rsp + 0x30]
inc r8
add r14, 0x10
mov qword [rsp + 0x28], r8
cmp r8, r12
jb 0x140017370
jmp 0x140017645
mov r12, qword [rsp + 0x160]
cmp r8, r12
jae 0x140017645
mov esi, dword [rsp + 0x170]
lea rax, [0x14006cd80]
mov rbp, qword [rsp + 0x168]
mov r14, r8
shl r14, 4
mov edi, r15d
add r14, rax
mov rax, qword [rsp + 0x38]
nop word [rax + rax]
mov r15, qword [rax + r8*8 - 0x80]
cmp qword [rsp + 0x30], r13
jae 0x1400174f2
mov rcx, qword [r11 + r9*8]
xor r8d, r8d
mov rax, qword [r10 + 0x80f0]
add rcx, r15
lea r11, [rax + rcx*4]
test rbx, rbx
je 0x1400174db
mov rax, r9
and eax, 0xf
movzx r10d, byte [rax + r14]
mov rax, r9
and rax, 0xfffffffffffffff0
shl rax, 4
add r10, rax
nop dword [rax]
nop word [rax + rax]
mov rax, r8
mov rcx, rbp
and eax, 0xf
mov rax, qword [rsp + rax*8 + 0x70]
mov edx, dword [rax + r10*4]
add edx, esi
sar edx, cl
mov ecx, edi
shl edx, cl
mov dword [r11 + r8*4], edx
inc r8
cmp r8, rbx
jb 0x1400174b0
mov r10, qword [rsp + 0x48]
mov r11, qword [rsp + 0x40]
inc r9
cmp r9, r13
jb 0x140017470
mov r8, qword [rsp + 0x28]
mov rax, qword [rsp + 0x38]
mov r9, qword [rsp + 0x30]
inc r8
add r14, 0x10
mov qword [rsp + 0x28], r8
cmp r8, r12
jb 0x140017460
jmp 0x140017645
cmp r8, qword [rsp + 0x160]
jae 0x140017645
mov r12d, dword [rsp + 0x170]
lea rax, [0x14006cd80]
mov r13, qword [rsp + 0x168]
mov rdx, r8
mov rcx, qword [rsp + 0x50]
shl rdx, 4
add rdx, rax
mov qword [rsp + 0x60], rdx
nop word [rax + rax]
mov rax, qword [rdi + r8*8 - 0x80]
mov rsi, r9
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x58], r9
cmp r9, rcx
jae 0x140017626
nop dword [rax + rax]
mov rcx, qword [r11 + rsi*8]
xor edi, edi
add rcx, rax
mov rax, qword [r10 + 0x80f0]
lea r14, [rax + rcx*4]
test rbx, rbx
je 0x1400175fa
mov rax, rsi
and eax, 0xf
movzx ebp, byte [rax + rdx]
mov rax, rsi
movzx esi, byte [rsp + 0x20]
and rax, 0xfffffffffffffff0
shl rax, 4
add rbp, rax
nop word [rax + rax]
mov rcx, r13
mov rax, rdi
and eax, 0xf
movzx r8d, r15b
movzx edx, sil
mov rax, qword [rsp + rax*8 + 0x70]
mov r9d, dword [rax + rbp*4]
add r9d, r12d
sar r9d, cl
mov ecx, r9d
call fcn.140016830
movss dword [r14 + rdi*4], xmm0
inc rdi
cmp rdi, rbx
jb 0x1400175b0
mov rsi, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
mov r10, qword [rsp + 0x48]
mov r11, qword [rsp + 0x40]
mov rax, qword [rsp + 0x68]
inc rsi
mov qword [rsp + 0x58], rsi
cmp rsi, qword [rsp + 0x50]
jb 0x140017570
mov rcx, qword [rsp + 0x50]
mov r8, qword [rsp + 0x28]
mov r9, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
inc r8
add rdx, 0x10
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x60], rdx
cmp r8, qword [rsp + 0x160]
jb 0x140017550
mov r12, qword [rsp + 0x108]
mov rsi, qword [rsp + 0x110]
mov rbp, qword [rsp + 0x158]
mov r14, qword [rsp + 0x100]
mov rcx, qword [rsp + 0xf0]
xor rcx, rsp
call fcn.140040dd0
add rsp, 0x118
pop r15
pop r13
pop rdi
pop rbx
ret