Function at 0x140049960
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x48
movdqa xmmword [rsp + 0x30], xmm6
mov rsi, rcx
movdqu xmm0, xmmword [rcx + 0x20]
pcmpeqd xmm1, xmm1
psubq xmm0, xmm1
movdqu xmmword [rcx + 0x20], xmm0
cmp byte [rcx + 0x18], 0
je 0x14004999f
mov byte [rsi + 0x18], 0
mov eax, dword [rsi + 0x14]
cmp eax, 0xffffffff
jne 0x1400499c1
jmp 0x140049bdd
mov rcx, qword [rsi]
cmp rcx, qword [rsi + 8]
je 0x140049dfd
movzx eax, byte [rcx]
inc rcx
mov qword [rsi], rcx
mov dword [rsi + 0x14], eax
cmp eax, 0xffffffff
je 0x140049bdd
mov byte [rsp + 0x2c], al
mov rdx, qword [rsi + 0x40]
cmp rdx, qword [rsi + 0x48]
je 0x1400499d7
mov byte [rdx], al
inc qword [rsi + 0x40]
jmp 0x1400499e5
lea rcx, [rsi + 0x38]
lea r8, [rsp + 0x2c]
call fcn.14004cac0
mov eax, dword [rsi + 0x14]
cmp eax, 0xa
je 0x140049bd1
cmp eax, 0x2f
je 0x140049c92
cmp eax, 0x2a
jne 0x140049bdd
lea r15, [rsi + 0x28]
lea rdi, [rsi + 0x38]
lea r12, [rsi + 0x30]
mov eax, 0x2a
pcmpeqd xmm6, xmm6
lea rbx, [rsp + 0x2e]
lea r14, [rsp + 0x2f]
jmp 0x140049a40
inc qword [r12]
mov qword [r15], 0
mov eax, 0xa
movdqu xmm0, xmmword [rsi + 0x20]
psubq xmm0, xmm6
movdqu xmmword [rsi + 0x20], xmm0
cmp byte [rsi + 0x18], 0
je 0x140049a70
mov byte [rsi + 0x18], 0
cmp eax, 0xffffffff
jne 0x140049a92
jmp 0x140049d33
mov rcx, qword [rsi]
cmp rcx, qword [rsi + 8]
je 0x140049bb9
movzx eax, byte [rcx]
inc rcx
mov qword [rsi], rcx
mov dword [rsi + 0x14], eax
cmp eax, 0xffffffff
je 0x140049d33
mov byte [rsp + 0x2e], al
mov rdx, qword [rsi + 0x40]
cmp rdx, qword [rsi + 0x48]
je 0x140049ab0
mov byte [rdx], al
inc qword [rsi + 0x40]
jmp 0x140049abb
mov rcx, rdi
mov r8, rbx
call fcn.14004cac0
mov eax, dword [rsi + 0x14]
cmp eax, 0xa
je 0x140049a30
cmp eax, 0x2a
je 0x140049ae0
lea ecx, [rax + 1]
cmp ecx, 2
jae 0x140049a40
jmp 0x140049d33
mov rdx, qword [rsi + 0x20]
mov rax, qword [rsi + 0x28]
inc rdx
mov qword [rsi + 0x20], rdx
inc rax
mov qword [rsi + 0x28], rax
cmp byte [rsi + 0x18], 0
je 0x140049b04
mov byte [rsi + 0x18], 0
mov al, 0x2a
jmp 0x140049b1d
mov rcx, qword [rsi]
cmp rcx, qword [rsi + 8]
je 0x140049bc3
movzx eax, byte [rcx]
inc rcx
mov qword [rsi], rcx
mov dword [rsi + 0x14], eax
mov byte [rsp + 0x2f], al
mov rdx, qword [rsi + 0x40]
cmp rdx, qword [rsi + 0x48]
je 0x140049b33
mov byte [rdx], al
inc qword [rsi + 0x40]
jmp 0x140049b3e
mov rcx, rdi
mov r8, r14
call fcn.14004cac0
mov ecx, dword [rsi + 0x14]
cmp ecx, 0xa
je 0x140049b6c
cmp ecx, 0x2f
je 0x140049d2c
mov rdx, qword [rsi + 0x20]
mov rax, qword [rsi + 0x28]
mov byte [rsi + 0x18], 1
dec rdx
mov qword [rsi + 0x20], rdx
test rax, rax
je 0x140049b8e
mov rdx, r15
jmp 0x140049b9a
mov rax, qword [rsi + 0x30]
inc rax
mov qword [rsi + 0x30], rax
mov qword [rsi + 0x28], 0
mov byte [rsi + 0x18], 1
dec qword [rsi + 0x20]
mov ecx, 0xa
jmp 0x140049b92
mov rax, qword [r12]
mov rdx, r12
test rax, rax
je 0x140049ba0
dec rax
mov qword [rdx], rax
mov eax, 0xffffffff
cmp ecx, 0xffffffff
je 0x140049a40
dec qword [rsi + 0x40]
mov eax, ecx
jmp 0x140049a40
mov eax, 0xffffffff
jmp 0x140049a86
mov dword [rsi + 0x14], 0xffffffff
mov ecx, 0xffffffff
jmp 0x140049b57
inc qword [rsi + 0x30]
mov qword [rsi + 0x28], 0
cmp byte [0x140184ee8], 0
jne 0x140049c86
mov ecx, 1
xor r8d, r8d
movabs r9, 0x8618618618618619
lea r10, [0x1400fc250]
lea r11, [0x140184eb8]
nop word [rax + rax]
mov rax, rcx
mul r9
mov rdi, rcx
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 4
mov rax, r8
mul r9
imul rax, rdi, 0xffffffffffffffeb
mov rdi, r8
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 4
imul rdx, rdi, 0xffffffffffffffeb
lea rdi, [r10 + r8]
movzx edx, byte [rdx + rdi + 0x2fd1]
xor dl, byte [r8 + r10 + 0x2fe6]
mov byte [r8 + r11], dl
movzx eax, byte [rax + rdi + 0x2fd2]
xor al, byte [r8 + r10 + 0x2fe7]
mov byte [r8 + r11 + 1], al
add r8, 2
add rcx, 2
cmp r8, 0x30
jne 0x140049c10
mov byte [0x140184ee8], 1
lea rax, [0x140184eb8]
jmp 0x140049dd8
lea rdi, [rsi + 0x38]
mov eax, 0x2f
pcmpeqd xmm6, xmm6
lea rbx, [rsp + 0x2d]
nop word cs:[rax + rax]
movdqu xmm0, xmmword [rsi + 0x20]
psubq xmm0, xmm6
movdqu xmmword [rsi + 0x20], xmm0
cmp byte [rsi + 0x18], 0
je 0x140049cd0
mov byte [rsi + 0x18], 0
jmp 0x140049ce9
mov rcx, qword [rsi]
cmp rcx, qword [rsi + 8]
je 0x140049df1
movzx eax, byte [rcx]
inc rcx
mov qword [rsi], rcx
mov dword [rsi + 0x14], eax
mov byte [rsp + 0x2d], al
mov rdx, qword [rsi + 0x40]
cmp rdx, qword [rsi + 0x48]
je 0x140049d00
mov byte [rdx], al
inc qword [rsi + 0x40]
jmp 0x140049d0b
mov rcx, rdi
mov r8, rbx
call fcn.14004cac0
mov eax, dword [rsi + 0x14]
lea ecx, [rax + 1]
cmp ecx, 2
jb 0x140049d2c
cmp eax, 0xd
je 0x140049d2c
cmp eax, 0xa
jne 0x140049cb0
inc qword [rsi + 0x30]
mov qword [rsi + 0x28], 0
mov al, 1
jmp 0x140049dde
cmp byte [0x140184eb7], 0
jne 0x140049dd1
mov ecx, 1
xor r8d, r8d
movabs r9, 0xf0f0f0f0f0f0f0f1
lea r10, [0x1400fc250]
lea r11, [0x140184e91]
mov rax, rcx
mul r9
mov rax, rdx
shr rax, 4
and rdx, 0xfffffffffffffff0
add rdx, rax
lea rdi, [r10 + r8]
mov rbx, rdi
sub rbx, rdx
mov rax, r8
mul r9
mov rax, rdx
shr rax, 4
and rdx, 0xfffffffffffffff0
add rdx, rax
sub rdi, rdx
movzx eax, byte [rdi + 0x2f84]
xor al, byte [r8 + r10 + 0x2f95]
mov byte [r8 + r11], al
movzx eax, byte [rbx + 0x2f85]
xor al, byte [r8 + r10 + 0x2f96]
mov byte [r8 + r11 + 1], al
add r8, 2
add rcx, 2
cmp r8, 0x26
jne 0x140049d60
mov byte [0x140184eb7], 1
lea rax, [0x140184e91]
mov qword [rsi + 0x70], rax
xor eax, eax
movaps xmm6, xmmword [rsp + 0x30]
add rsp, 0x48
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
mov dword [rsi + 0x14], 0xffffffff
jmp 0x140049d2c
mov eax, 0xffffffff
jmp 0x1400499b5