Function at 0x14033fe00
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
movaps xmmword [rsp + 0x50], xmm8
movaps xmmword [rsp + 0x40], xmm7
movdqa xmmword [rsp + 0x30], xmm6
mov r13, rcx
mov eax, dword [rcx + 0x44]
mov r10d, dword [rcx + 0x9c]
lea ecx, [rax - 0x106]
mov dword [rsp + 0x24], ecx
xor r14d, r14d
movdqa xmm8, xmmword [0x1403e3a80]
movdqa xmm7, xmmword [0x1403e3a90]
pcmpeqd xmm6, xmm6
mov qword [rsp + 0x28], rax
nop word cs:[rax + rax]
nop
add eax, dword [rsp + 0x24]
mov r12d, dword [r13 + 0x58]
mov r8d, dword [r13 + 0x94]
add r10d, r8d
sub r12d, r10d
cmp r8d, eax
jb 0x14034008d
mov rcx, qword [r13 + 0x50]
mov rsi, qword [rsp + 0x28]
lea rdx, [rcx + rsi]
mov r8d, esi
sub r8d, r12d
call sub.msvcrt.dll_memcpy
sub dword [r13 + 0x98], esi
mov r8d, dword [r13 + 0x94]
sub r8d, esi
mov dword [r13 + 0x94], r8d
sub dword [r13 + 0x84], esi
cmp dword [r13 + 0x1708], r8d
jbe 0x14033fec5
mov dword [r13 + 0x1708], r8d
mov edx, dword [r13 + 0x74]
mov rcx, rdx
add rcx, rdx
add rcx, qword [r13 + 0x68]
mov eax, dword [r13 + 0x44]
lea r10d, [rdx - 1]
movd xmm0, eax
cmp r10d, 7
jae 0x14033fef0
mov rbx, rcx
jmp 0x14033ff85
add r10, 1
mov r9, r10
movabs rbp, 0x1fffffff8
and r9, rbp
mov rbx, rcx
sub rbx, r9
sub rbx, r9
sub edx, r9d
pshufd xmm1, xmm0, 0
add rcx, 0xfffffffffffffff0
mov rbp, r10
and rbp, 0xfffffffffffffff8
neg rbp
xor edi, edi
nop word cs:[rax + rax]
nop
movdqu xmm2, xmmword [rcx + rdi*2]
movdqa xmm3, xmm1
pxor xmm3, xmm8
movdqa xmm4, xmm7
pcmpgtd xmm4, xmm3
movdqa xmm3, xmm1
pand xmm3, xmm4
pxor xmm4, xmm6
por xmm4, xmm3
pslld xmm4, 0x10
psrad xmm4, 0x10
packssdw xmm4, xmm4
pshuflw xmm3, xmm4, 0x1b
pshufhw xmm3, xmm3, 0x1b
psubusw xmm2, xmm3
movdqu xmmword [rcx + rdi*2], xmm2
add rdi, 0xfffffffffffffff8
cmp rbp, rdi
jne 0x14033ff30
cmp r10, r9
je 0x14033ffa8
neg edx
xor ecx, ecx
nop dword [rax]
movzx ebp, word [rbx + rcx*2 - 2]
sub ebp, eax
cmovb ebp, r14d
mov word [rbx + rcx*2 - 2], bp
add rcx, 0xffffffffffffffff
cmp edx, ecx
jne 0x14033ff90
lea rbx, [rax + rax]
add rbx, qword [r13 + 0x60]
lea r10d, [rax - 1]
cmp r10d, 7
jae 0x14033ffd0
mov rdx, rbx
mov ecx, eax
jmp 0x140340065
add r10, 1
mov r9, r10
movabs rcx, 0x1fffffff8
and r9, rcx
mov rdx, rbx
sub rdx, r9
sub rdx, r9
mov ecx, eax
sub ecx, r9d
pshufd xmm0, xmm0, 0
add rbx, 0xfffffffffffffff0
mov rbp, r10
and rbp, 0xfffffffffffffff8
neg rbp
xor edi, edi
nop word [rax + rax]
movdqu xmm1, xmmword [rbx + rdi*2]
movdqa xmm2, xmm0
pxor xmm2, xmm8
movdqa xmm3, xmm7
pcmpgtd xmm3, xmm2
movdqa xmm2, xmm0
pand xmm2, xmm3
pxor xmm3, xmm6
por xmm3, xmm2
pslld xmm3, 0x10
psrad xmm3, 0x10
packssdw xmm3, xmm3
pshuflw xmm2, xmm3, 0x1b
pshufhw xmm2, xmm2, 0x1b
psubusw xmm1, xmm2
movdqu xmmword [rbx + rdi*2], xmm1
add rdi, 0xfffffffffffffff8
cmp rbp, rdi
jne 0x140340010
cmp r10, r9
je 0x140340088
neg ecx
xor ebp, ebp
nop dword [rax]
movzx ebx, word [rdx + rbp*2 - 2]
sub ebx, eax
cmovb ebx, r14d
mov word [rdx + rbp*2 - 2], bx
add rbp, 0xffffffffffffffff
cmp ecx, ebp
jne 0x140340070
add r12d, dword [rsp + 0x28]
mov r15, qword [r13]
mov eax, dword [r15 + 8]
test eax, eax
je 0x1403401e4
mov r10d, dword [r13 + 0x9c]
cmp eax, r12d
cmovbe r12d, eax
test r12d, r12d
je 0x140340124
mov ebx, r8d
add rbx, qword [r13 + 0x50]
add rbx, r10
sub eax, r12d
mov dword [r15 + 8], eax
mov rdx, qword [r15]
mov r14d, r12d
mov rcx, rbx
mov r8, r14
call sub.msvcrt.dll_memcpy
mov rax, qword [r15 + 0x28]
mov eax, dword [rax + 0x2c]
cmp eax, 2
je 0x140340100
cmp eax, 1
jne 0x140340113
mov ecx, dword [r15 + 0x4c]
mov rdx, rbx
mov r8d, r12d
call fcn.14033e790
jmp 0x14034010f
mov ecx, dword [r15 + 0x4c]
mov rdx, rbx
mov r8d, r12d
call fcn.14033f390
mov dword [r15 + 0x4c], eax
add qword [r15], r14
add dword [r15 + 0xc], r12d
mov r10d, dword [r13 + 0x9c]
xor r14d, r14d
add r10d, r12d
mov dword [r13 + 0x9c], r10d
mov eax, dword [r13 + 0x1708]
lea ecx, [rax + r10]
cmp ecx, 3
jb 0x1403401c8
mov ebx, dword [r13 + 0x94]
sub ebx, eax
mov r8, qword [r13 + 0x50]
movzx ebp, byte [r8 + rbx]
mov dword [r13 + 0x70], ebp
mov ecx, dword [r13 + 0x80]
shl ebp, cl
lea edi, [rbx + 1]
movzx r9d, byte [r8 + rdi]
xor r9d, ebp
mov r11d, dword [r13 + 0x7c]
mov ebp, r11d
and ebp, r9d
mov dword [r13 + 0x70], ebp
nop word [rax + rax]
sub eax, 1
jb 0x1403401c8
shl ebp, cl
lea esi, [rbx + 2]
movzx esi, byte [r8 + rsi]
xor esi, ebp
mov ebp, r11d
and ebp, esi
mov dword [r13 + 0x70], ebp
mov r9, qword [r13 + 0x60]
mov rdx, qword [r13 + 0x68]
movzx edi, word [rdx + rbp*2]
mov esi, dword [r13 + 0x4c]
and esi, ebx
mov word [r9 + rsi*2], di
mov word [rdx + rbp*2], bx
add ebx, 1
mov dword [r13 + 0x1708], eax
lea edx, [r10 + rax]
cmp edx, 2
ja 0x140340180
cmp r10d, 0x105
ja 0x1403401e4
mov rax, qword [r13]
cmp dword [rax + 8], 0
je 0x1403401e4
mov eax, dword [r13 + 0x44]
jmp 0x14033fe60
mov ecx, dword [r13 + 0x1714]
mov edi, dword [r13 + 0x58]
cmp edi, ecx
jbe 0x14034025a
mov ebp, dword [r13 + 0x9c]
add ebp, dword [r13 + 0x94]
cmp ecx, ebp
jae 0x140340229
sub edi, ebp
cmp edi, 0x102
mov ebx, 0x102
cmovb ebx, edi
mov ecx, ebp
add rcx, qword [r13 + 0x50]
xor edx, edx
mov r8, rbx
call sub.msvcrt.dll_memset
add ebx, ebp
jmp 0x140340253
add ebp, 0x102
cmp ebp, ecx
jbe 0x14034025a
sub ebp, ecx
sub edi, ecx
cmp ebp, edi
cmovbe edi, ebp
add rcx, qword [r13 + 0x50]
xor edx, edx
mov r8, rdi
call sub.msvcrt.dll_memset
add edi, dword [r13 + 0x1714]
mov ebx, edi
mov dword [r13 + 0x1714], ebx
movaps xmm6, xmmword [rsp + 0x30]
movaps xmm7, xmmword [rsp + 0x40]
movaps xmm8, xmmword [rsp + 0x50]
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret