Function at 0x14000ee90
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x30
mov rax, rcx
mov r11, qword [rsp + 0xa8]
mov r15d, dword [rsp + 0xa0]
lea esi, [r8 + 1]
mov edi, 1
mov ecx, r15d
shl edi, cl
lea r14, [r11 + 0x6a]
lea ebx, [rdi - 1]
cmp dword [rsp + 0xb8], 0
je 0x14000ef8a
test esi, esi
je 0x14000f03a
mov qword [rsp], r9
lea ecx, [r15 - 1]
mov r15d, 0x10000
shl r15d, cl
sar r15d, 0x10
mov r9d, esi
xor r13d, r13d
test r8d, r8d
je 0x14000f057
mov ecx, r9d
and ecx, 0xfffffffe
mov ebp, 1
xor r12d, r12d
mov r8d, ebx
jmp 0x14000ef48
mov r10d, r8d
dec r8d
lea esi, [r12 + 1]
mov dword [rax + r10*8 + 0xc], esi
mov r10w, 1
mov word [r11 + r12*2 + 2], r10w
add r12, 2
cmp rcx, r12
je 0x14000f062
movsx r10d, word [rdx + r12*2]
cmp r10d, 0xffffffff
je 0x14000ef60
cmp r15d, r10d
cmovle ebp, r13d
jmp 0x14000ef70
mov r10d, r8d
dec r8d
mov dword [rax + r10*8 + 0xc], r12d
mov r10w, 1
mov word [r11 + r12*2], r10w
movsx r10d, word [rdx + r12*2 + 2]
cmp r10d, 0xffffffff
je 0x14000ef20
cmp r15d, r10d
cmovle ebp, r13d
jmp 0x14000ef35
test esi, esi
je 0x14000f091
mov qword [rsp], r9
lea ecx, [r15 - 1]
mov r15d, 0x10000
shl r15d, cl
sar r15d, 0x10
mov ecx, esi
xor r13d, r13d
test r8d, r8d
mov qword [rsp + 0x18], r14
je 0x14000f0ae
mov esi, ecx
and esi, 0xfffffffe
mov ebp, 1
xor r12d, r12d
mov r8d, ebx
jmp 0x14000eff8
mov r9d, r8d
dec r8d
lea r10d, [r12 + 1]
mov dword [rax + r9*8 + 0xc], r10d
mov r10w, 1
mov word [r11 + r12*2 + 2], r10w
add r12, 2
cmp rsi, r12
je 0x14000f0b9
movsx r10d, word [rdx + r12*2]
cmp r10d, 0xffffffff
je 0x14000f010
cmp r15d, r10d
cmovle ebp, r13d
jmp 0x14000f020
mov r9d, r8d
dec r8d
mov dword [rax + r9*8 + 0xc], r12d
mov r10w, 1
mov word [r11 + r12*2], r10w
movsx r10d, word [rdx + r12*2 + 2]
cmp r10d, 0xffffffff
je 0x14000efd0
cmp r15d, r10d
cmovle ebp, r13d
jmp 0x14000efe5
mov dword [rax], 1
mov dword [rax + 4], r15d
mov ecx, edi
shr ecx, 1
mov edx, edi
shr edx, 3
add edx, ecx
add edx, 3
jmp 0x14000f2ea
mov ebp, 1
xor r12d, r12d
mov r8d, ebx
test r9b, 1
mov r10, r14
je 0x14000f0f4
movsx ecx, word [rdx + r12*2]
cmp ecx, 0xffffffff
je 0x14000f0e0
mov rsi, r9
mov r9, r10
xor r10d, r10d
cmp r15d, ecx
cmovle ebp, r10d
mov r10, r9
mov r9, rsi
jmp 0x14000f0ef
mov dword [rax], 1
mov dword [rax + 4], r15d
mov ecx, edi
shr ecx, 1
mov edx, edi
shr edx, 3
add edx, ecx
add edx, 3
jmp 0x14000f5aa
mov ebp, 1
xor r12d, r12d
mov r8d, ebx
test cl, 1
je 0x14000f3bd
movsx r10d, word [rdx + r12*2]
cmp r10d, 0xffffffff
je 0x14000f3a8
xor r9d, r9d
cmp r15d, r10d
cmovle ebp, r9d
jmp 0x14000f3b8
mov ecx, r8d
dec r8d
mov dword [rax + rcx*8 + 0xc], r12d
mov cx, 1
mov word [r11 + r12*2], cx
mov dword [rax], ebp
mov ecx, dword [rsp + 0xa0]
mov dword [rax + 4], ecx
mov esi, edi
shr esi, 3
cmp r8d, ebx
jne 0x14000f212
mov qword [rsp + 8], rsi
movabs rsi, 0x101010101010101
lea rcx, [r11 + 0x82]
mov qword [rsp + 0x10], rcx
xor r13d, r13d
xor ecx, ecx
xor ebp, ebp
mov qword [rsp + 0x28], rdx
jmp 0x14000f156
movsx r8, r15w
add rcx, r8
inc r13
add rbp, rsi
cmp r13, r9
je 0x14000f2d0
movzx r15d, word [rdx + r13*2]
mov qword [r10 + rcx], rbp
cmp r15w, 9
jl 0x14000f140
cmp r15, 0x11
mov r14d, 0x10
cmovae r14, r15
add r14, 0xfffffffffffffff7
mov r12d, 8
cmp r14, 0x18
jb 0x14000f1f7
mov rdx, rdi
mov rdi, r9
mov r9, r10
shr r14, 3
inc r14
mov r10, r14
and r10, 0xfffffffffffffffc
lea r12, [r10*8 + 8]
movq xmm0, rbp
pshufd xmm0, xmm0, 0x44
mov r8, qword [rsp + 0x10]
add r8, rcx
xor esi, esi
nop word [rax + rax]
movdqu xmmword [r8 + rsi*8 - 0x10], xmm0
movdqu xmmword [r8 + rsi*8], xmm0
add rsi, 4
cmp r10, rsi
jne 0x14000f1c0
cmp r14, r10
mov r10, r9
mov r9, rdi
mov rdi, rdx
mov rdx, qword [rsp + 0x28]
movabs rsi, 0x101010101010101
je 0x14000f140
lea r8, [r10 + rcx]
nop dword [rax + rax]
mov qword [r8 + r12], rbp
add r12, 8
cmp r12, r15
jb 0x14000f200
jmp 0x14000f140
mov ecx, edi
shr ecx, 1
lea ebp, [rsi + rcx]
add ebp, 3
xor r14d, r14d
xor r15d, r15d
jmp 0x14000f23c
inc r14
cmp r14, r9
je 0x14000f334
movsx ecx, word [rdx + r14*2]
test ecx, ecx
jle 0x14000f230
cmp cx, 1
je 0x14000f2a4
mov r12d, ecx
and r12d, 0xfffffffe
xor r13d, r13d
nop word cs:[rax + rax]
mov r10d, r15d
mov dword [rax + r10*8 + 0xc], r14d
nop dword [rax + rax]
add r15d, ebp
and r15d, ebx
cmp r15d, r8d
ja 0x14000f270
mov r10d, r15d
mov dword [rax + r10*8 + 0xc], r14d
nop word cs:[rax + rax]
add r15d, ebp
and r15d, ebx
cmp r15d, r8d
ja 0x14000f290
add r13d, 2
cmp r13d, r12d
jne 0x14000f260
test cl, 1
je 0x14000f230
mov ecx, r15d
mov dword [rax + rcx*8 + 0xc], r14d
nop word cs:[rax + rax]
add r15d, ebp
and r15d, ebx
cmp r15d, r8d
ja 0x14000f2c0
jmp 0x14000f230
mov ecx, edi
shr ecx, 1
mov rdx, qword [rsp + 8]
add edx, ecx
add edx, 3
mov r9, qword [rsp]
mov r15d, dword [rsp + 0xa0]
mov ecx, ebx
mov r8d, edx
mov edx, edi
lea rsi, [r8 + r8]
xor ebx, ebx
xor r10d, r10d
nop word [rax + rax]
mov r14d, r10d
and r14d, ecx
movzx ebp, byte [r11 + rbx + 0x6a]
mov dword [rax + r14*8 + 0xc], ebp
lea r14d, [r8 + r10]
and r14d, ecx
movzx ebp, byte [r11 + rbx + 0x6b]
mov dword [rax + r14*8 + 0xc], ebp
add r10d, esi
and r10d, ecx
add rbx, 2
cmp rbx, rdx
jb 0x14000f300
jmp 0x14000f342
mov edx, edi
mov r9, qword [rsp]
mov r15d, dword [rsp + 0xa0]
xor r8d, r8d
mov r14, qword [rsp + 0x98]
nop dword [rax]
mov ebx, dword [rax + r8*8 + 0xc]
movzx r10d, word [r11 + rbx*2]
lea esi, [r10 + 1]
bsr ecx, r10d
xor ecx, 0x1f
add ecx, 0xffffffe1
test r10d, r10d
mov word [r11 + rbx*2], si
cmove ecx, r10d
add ecx, r15d
mov byte [rax + r8*8 + 0xb], cl
shl r10d, cl
sub r10d, edi
mov word [rax + r8*8 + 8], r10w
movzx ecx, byte [r14 + rbx*4]
mov byte [rax + r8*8 + 0xa], cl
mov ecx, dword [r9 + rbx*4]
mov dword [rax + r8*8 + 0xc], ecx
inc r8
cmp rdx, r8
jne 0x14000f350
jmp 0x14000f663
mov r9d, r8d
dec r8d
mov dword [rax + r9*8 + 0xc], r12d
mov r10w, 1
mov word [r11 + r12*2], r10w
mov dword [rax], ebp
mov r9d, dword [rsp + 0xa0]
mov dword [rax + 4], r9d
mov r10d, edi
shr r10d, 3
cmp r8d, ebx
jne 0x14000f4d2
mov qword [rsp + 0x20], r10
movabs r9, 0x101010101010101
lea r8, [r11 + 0x82]
mov qword [rsp + 8], r8
xor r13d, r13d
xor esi, esi
xor ebp, ebp
mov qword [rsp + 0x10], rcx
jmp 0x14000f426
movsx r8, r15w
add rsi, r8
inc r13
add rbp, r9
cmp r13, rcx
je 0x14000f590
movzx r15d, word [rdx + r13*2]
mov r8, qword [rsp + 0x18]
mov qword [r8 + rsi], rbp
cmp r15w, 9
jl 0x14000f410
cmp r15, 0x11
mov r10d, 0x10
cmovae r10, r15
add r10, 0xfffffffffffffff7
mov r12d, 8
cmp r10, 0x18
jb 0x14000f4b7
mov rcx, r9
shr r10, 3
inc r10
mov r14, r10
and r14, 0xfffffffffffffffc
lea r12, [r14*8 + 8]
movq xmm0, rbp
pshufd xmm0, xmm0, 0x44
mov r8, qword [rsp + 8]
add r8, rsi
xor r9d, r9d
nop word [rax + rax]
movdqu xmmword [r8 + r9*8 - 0x10], xmm0
movdqu xmmword [r8 + r9*8], xmm0
add r9, 4
cmp r14, r9
jne 0x14000f490
cmp r10, r14
mov r9, rcx
mov rcx, qword [rsp + 0x10]
je 0x14000f410
mov r8, qword [rsp + 0x18]
add r8, rsi
nop
mov qword [r8 + r12], rbp
add r12, 8
cmp r12, r15
jb 0x14000f4c0
jmp 0x14000f410
mov r9d, edi
shr r9d, 1
lea ebp, [r10 + r9]
add ebp, 3
xor r14d, r14d
xor r15d, r15d
jmp 0x14000f4fc
inc r14
cmp r14, rcx
je 0x14000f5f4
movsx esi, word [rdx + r14*2]
test esi, esi
jle 0x14000f4f0
cmp si, 1
je 0x14000f564
mov r12d, esi
and r12d, 0xfffffffe
xor r13d, r13d
nop word cs:[rax + rax]
mov r9d, r15d
mov dword [rax + r9*8 + 0xc], r14d
nop dword [rax + rax]
add r15d, ebp
and r15d, ebx
cmp r15d, r8d
ja 0x14000f530
mov r9d, r15d
mov dword [rax + r9*8 + 0xc], r14d
nop word cs:[rax + rax]
add r15d, ebp
and r15d, ebx
cmp r15d, r8d
ja 0x14000f550
add r13d, 2
cmp r13d, r12d
jne 0x14000f520
test sil, 1
je 0x14000f4f0
mov r9d, r15d
mov dword [rax + r9*8 + 0xc], r14d
nop word cs:[rax + rax]
add r15d, ebp
and r15d, ebx
cmp r15d, r8d
ja 0x14000f580
jmp 0x14000f4f0
mov ecx, edi
shr ecx, 1
mov rdx, qword [rsp + 0x20]
add edx, ecx
add edx, 3
mov r9, qword [rsp]
mov r15d, dword [rsp + 0xa0]
mov ecx, ebx
mov r8d, edx
mov edx, edi
lea rsi, [r8 + r8]
xor ebx, ebx
xor r10d, r10d
nop word [rax + rax]
mov r14d, r10d
and r14d, ecx
movzx ebp, byte [r11 + rbx + 0x6a]
mov dword [rax + r14*8 + 0xc], ebp
lea r14d, [r8 + r10]
and r14d, ecx
movzx ebp, byte [r11 + rbx + 0x6b]
mov dword [rax + r14*8 + 0xc], ebp
add r10d, esi
and r10d, ecx
add rbx, 2
cmp rbx, rdx
jb 0x14000f5c0
jmp 0x14000f602
mov edx, edi
mov r9, qword [rsp]
mov r15d, dword [rsp + 0xa0]
mov r14, qword [rsp + 0x98]
xor r8d, r8d
nop dword [rax]
mov ebx, dword [rax + r8*8 + 0xc]
movzx r10d, word [r11 + rbx*2]
lea esi, [r10 + 1]
bsr ecx, r10d
xor ecx, 0x1f
add ecx, 0xffffffe1
test r10d, r10d
mov word [r11 + rbx*2], si
cmove ecx, r10d
add ecx, r15d
mov byte [rax + r8*8 + 0xb], cl
shl r10d, cl
sub r10d, edi
mov word [rax + r8*8 + 8], r10w
movzx ecx, byte [r14 + rbx*4]
mov byte [rax + r8*8 + 0xa], cl
mov ecx, dword [r9 + rbx*4]
mov dword [rax + r8*8 + 0xc], ecx
inc r8
cmp rdx, r8
jne 0x14000f610
add rsp, 0x30
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret