Function at 0x20134680
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov rbx, r8
mov rsi, rdx
nop
mov ebp, r9d
mov rdi, rsi
mov rsi, rcx
mov eax, r9d
and eax, 0xf
cmp eax, 3
jbe 0x201346c0
cmp eax, 5
ja 0x20134706
mov r9d, 0x309775e3
mov rcx, rdi
cmp eax, 4
je 0x20134690
jmp 0x20134785
cmp eax, 1
ja 0x201346f1
mov r9d, 0xfc25a3d7
mov rcx, rdi
test eax, eax
jne 0x20134690
nop
mov rcx, qword [rbx + 8]
test rcx, rcx
sete dl
movzx eax, byte [0x20516e32]
cmp al, 0x60
jne 0x2013491b
jmp 0x20134986
cmp eax, 3
jne 0x20134723
cmp rsi, rdi
jae 0x201347b0
xor eax, eax
jmp 0x20134999
cmp eax, 6
jne 0x2013479d
mov rcx, rsi
call fcn.200799c0
test edi, edi
mov rbx, rsi
jne 0x20134771
jmp 0x201349cd
mov rcx, rdi
call fcn.200799c0
test ebx, ebx
je 0x201347e9
mov rcx, rdi
call fcn.20077cc0
test bpl, bpl
jns 0x201347a8
nop
cmp qword [rsp + 0x20], 0
je 0x20134767
xor eax, eax
nop dword [rax + rax]
test bpl, 0x10
movzx ecx, byte [rsi + rax]
mov byte [rbx + rax], cl
je 0x20134733
inc rax
cmp rax, qword [rsp + 0x20]
jb 0x20134750
test bpl, 0x40
jne 0x201349cd
mov rcx, rsi
call fcn.20077cc0
lea rcx, [rsp + 0x20]
xor edx, edx
jmp 0x2013492f
lea r9, [0x205723c0]
mov edx, 0xc7efbc63
call fcn.20133ce0
xor ebx, ebx
jmp 0x201349cd
nop
mov qword [rsp + 0x20], rdi
test bpl, bpl
js 0x20134740
mov rbx, rdi
jmp 0x201349cd
test rbx, rbx
je 0x201349ca
cmp rbx, 4
jae 0x201347f6
lea rcx, [rbx - 1]
mov rdx, rbx
and rdx, 3
je 0x20134827
nop dword [rax]
lea rax, [rbx - 1]
movzx r8d, byte [rdi + rbx - 1]
mov byte [rsi + rbx - 1], r8b
dec rdx
mov rbx, rax
jne 0x201347d0
jmp 0x2013482a
test bpl, 0x20
cmove rsi, rdi
jmp 0x201349ca
lea rax, [rsi + rbx]
dec rax
cmp rsi, rax
ja 0x201347bf
lea rax, [rdi + rbx]
dec rax
cmp rdi, rax
ja 0x201347bf
mov rax, rdi
sub rax, rsi
cmp rax, 0x10
jb 0x201347bf
cmp rbx, 0x10
jae 0x20134873
xor eax, eax
jmp 0x201348c2
mov rax, rbx
cmp rcx, 3
jb 0x201349ca
mov rcx, rax
nop word [rax + rax]
nop
movzx edx, byte [rdi + rax - 1]
mov byte [rsi + rax - 1], dl
movzx edx, byte [rdi + rax - 2]
mov byte [rsi + rax - 2], dl
movzx edx, byte [rdi + rax - 3]
mov byte [rsi + rax - 3], dl
add rcx, 0xfffffffffffffffc
movzx edx, byte [rdi + rax - 4]
mov byte [rsi + rax - 4], dl
mov rax, rcx
jne 0x20134840
jmp 0x201349ca
mov rax, rbx
and rax, 0xfffffffffffffff0
lea rcx, [rsi + rbx]
add rcx, 0xfffffffffffffff0
lea rdx, [rdi + rbx]
add rdx, 0xfffffffffffffff0
mov r8, rax
neg r8
xor r9d, r9d
nop word cs:[rax + rax]
nop
movups xmm0, xmmword [rdx + r9]
movups xmmword [rcx + r9], xmm0
add r9, 0xfffffffffffffff0
cmp r8, r9
jne 0x201348a0
cmp rax, rbx
je 0x201349ca
test bl, 0xc
je 0x20134913
mov rcx, rbx
and rcx, 0xfffffffffffffffc
mov edx, ebx
and edx, 3
lea r8, [rsi + rbx]
add r8, 0xfffffffffffffffc
neg rax
lea r9, [rdi + rbx]
add r9, 0xfffffffffffffffc
mov r10, rcx
neg r10
nop word [rax + rax]
nop
mov r11d, dword [r9 + rax]
mov dword [r8 + rax], r11d
add rax, 0xfffffffffffffffc
cmp r10, rax
jne 0x201348f0
cmp rcx, rbx
mov rbx, rdx
jne 0x201347bf
jmp 0x201349ca
and ebx, 0xf
jmp 0x201347bf
mov r8b, 0x77
mov al, 0xbe
lock cmpxchg byte [0x20516e32], r8b
je 0x2013493d
cmp al, 0x60
je 0x20134986
mov rbx, rsi
test bpl, 0x10
jne 0x2013491b
jmp 0x201349cd
jmp 0x201349ac
lea r10d, [rax - 1]
and r10d, 0xf
movzx r11d, byte [rax + r8 - 4]
movzx ebx, byte [rax + r8 - 3]
xor r11b, byte [r10 + r9]
xor r11b, 0xde
mov byte [rax + r8 - 4], r11b
mov r10d, eax
and r10d, 0xe
xor bl, byte [r10 + r9]
xor bl, 0xde
mov byte [rax + r8 - 3], bl
add rax, 2
cmp rax, 0x16
jne 0x20134940
mov al, 0x60
xchg byte [0x20516e32], al
lea rbx, [0x20516e20]
test dl, 1
cmove rbx, rcx
jmp 0x201349cd
inc rax
cmp rax, rbx
jae 0x201349ca
nop
movzx edx, byte [rdi + rax]
lea rcx, [rsi + rax]
mov byte [rsi + rax], dl
mov dl, 1
test bpl, 0x20
jne 0x20134996
mov eax, 4
lea r8, [0x20516e20]
lea r9, [0x20416860]
jmp 0x20134940
mov rbx, rsi
mov rax, rbx
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
ret