Function at 0x1401fa640
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbp
push rbx
mov rax, rdx
mov edx, dword [0x1406941ec]
cmp edx, 0x56
jg 0x1401fa657
test rcx, rcx
jne 0x1401fa684
mov edx, 0xbe6f1718
nop dword [rax]
mov r8d, dword [0x1406941e8]
lea r9d, [r8 - 1]
imul r9d, r8d
and r9d, 1
mov r8d, dword [0x14061eef0]
add r8d, edx
cmp r9d, r8d
jne 0x1401fa660
jmp 0x1401fa652
mov r9, qword [rax + 0x10]
movzx r10d, byte [r9 + 0x19]
test r10b, r10b
je 0x1401fa704
mov r8, qword [rax + 8]
movzx edx, byte [0x14061eef4]
add dl, 0xed
cmp byte [r8 + 0x19], dl
jne 0x1401fa72a
lea rdx, [fcn.1401fa640]
add edx, edx
add edx, 0x30a0
mov rsi, rax
nop dword [rax]
mov r11, r8
mov r8d, dword [0x1406941ec]
cmp r8d, 0xc
mov r8d, dword [0x14061eef0]
lea edi, [r8 - 0x4190e8e7]
xor edi, edx
not edi
and edi, edx
add r8d, 0xbe6f1718
cmp edi, r8d
jne 0x1401fa6ce
cmp rsi, qword [r11 + 0x10]
jne 0x1401fa739
mov r8, qword [r11 + 8]
cmp byte [r8 + 0x19], 0
mov rsi, r11
je 0x1401fa6c0
jmp 0x1401fa71c
mov rdx, r9
nop word [rax + rax]
mov r8, rdx
mov rdx, qword [rdx]
cmp byte [rdx + 0x19], 0
je 0x1401fa710
cmp dword [0x14061eef0], 0x4190e8e8
jne 0x1401fa770
jmp 0x1401fa748
xor edx, edx
test dl, dl
jne 0x1401fa8c0
jmp 0x1401fa881
mov r8, r11
cmp dword [0x14061eef0], 0x4190e8e8
jne 0x1401fa770
mov r11, qword [rax]
movzx ebx, byte [r11 + 0x19]
test bl, bl
mov rdx, r9
cmove rdx, r11
mov sil, 1
test sil, sil
jne 0x1401fa77d
nop word cs:[rax + rax]
mov edx, dword [0x1406941ec]
cmp edx, 0x3f
jge 0x1401fa770
jmp 0x1401fa748
or bl, r10b
jne 0x1401fa8d6
mov rdx, qword [r8 + 0x10]
cmp r8, rax
sete r10b
movzx r9d, byte [0x140693ed0]
xor r9b, r10b
mov ebx, r9d
not bl
test bl, r10b
jne 0x1401fa8d6
test r9b, 1
jne 0x1401fa8d6
lea r9, [fcn.1401fa640]
add r9d, r9d
add r9d, 0x4060
mov r10d, r9d
not r10d
test r10d, r9d
jne 0x1401fa802
mov qword [r11 + 8], r8
mov r9, qword [rax]
mov qword [r8], r9
mov r10, qword [rax + 0x10]
mov r9d, dword [0x1406941e8]
lea esi, [r9 - 1]
imul esi, r9d
and esi, 1
mov r9d, 0xbe6f1718
add r9d, dword [0x14061eef0]
cmp esi, r9d
je 0x1401fa80e
mov qword [r11 + 8], r8
mov r9, qword [rax]
mov qword [r8], r9
jmp 0x1401fa7d0
mov r9, r8
cmp r8, r10
je 0x1401fa837
mov r9, qword [r8 + 8]
cmp byte [rdx + 0x19], 0
jne 0x1401fa824
mov qword [rdx + 8], r9
mov qword [r9], rdx
mov r10, qword [rax + 0x10]
mov qword [r8 + 0x10], r10
mov r10, qword [rax + 0x10]
mov qword [r10 + 8], r8
mov r10, qword [rcx]
cmp qword [r10 + 8], rax
je 0x1401fa851
mov r11, qword [rax + 8]
lea r10, [r11 + 0x10]
cmp qword [r11], rax
cmove r10, r11
jmp 0x1401fa855
add r10, 8
mov qword [r10], r8
mov r10, qword [rax + 8]
mov qword [r8 + 8], r10
movzx r10d, byte [r8 + 0x18]
movzx r11d, byte [rax + 0x18]
mov byte [r8 + 0x18], r11b
mov byte [rax + 0x18], r10b
cmp byte [rax + 0x18], 1
jne 0x1401fac95
jmp 0x1401fa9b9
mov rdx, qword [rax]
cmp byte [rdx + 0x19], 0
cmovne rdx, r9
mov r8d, dword [0x14061eef0]
mov r10d, r8d
xor r10d, 0x89368920
and r8d, 0x9368920
lea r8d, [r10 + r8*2]
cmp r8d, 0xcac77208
je 0x1401fa8d6
nop word cs:[rax + rax]
mov edx, dword [0x1406941e8]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x1401fa8c0
jmp 0x1401fa881
mov r9, qword [rax + 8]
movzx r8d, byte [0x14061eef4]
mov r10d, r8d
xor r10b, 0xed
and r8b, 0x6d
add r8b, r8b
add r8b, r10b
cmp byte [rdx + 0x19], r8b
jne 0x1401fa8fd
mov qword [rdx + 8], r9
mov r8, qword [rcx]
cmp qword [r8 + 8], rax
je 0x1401fa913
lea r8, [r9 + 0x10]
cmp qword [r9], rax
cmove r8, r9
jmp 0x1401fa917
add r8, 8
mov qword [r8], rdx
mov r8, qword [rcx]
cmp qword [r8], rax
jne 0x1401fa940
cmp byte [rdx + 0x19], 0
mov r10, r9
jne 0x1401fa93d
mov r11, rdx
nop
mov r10, r11
mov r11, qword [r11]
cmp byte [r11 + 0x19], 0
je 0x1401fa930
mov qword [r8], r10
mov r8, qword [rcx]
cmp qword [r8 + 0x10], rax
je 0x1401fa954
cmp byte [rax + 0x18], 1
je 0x1401fa9b9
jmp 0x1401fac95
movzx r11d, byte [0x14061eef4]
add r11b, 0xed
mov r10, r9
cmp byte [rdx + 0x19], r11b
jne 0x1401fa9ab
mov r11d, 0xbe6f1779
mov rsi, rdx
nop word cs:[rax + rax]
mov r10, rsi
mov esi, dword [0x1406941ec]
mov edi, dword [0x14061eef0]
add edi, r11d
cmp esi, edi
mov rsi, qword [r10 + 0x10]
movzx ebx, byte [rsi + 0x19]
mov edi, dword [0x1406941ec]
cmp edi, 0x29
jg 0x1401fa994
test bl, bl
je 0x1401fa980
mov qword [r8 + 0x10], r10
cmp byte [rax + 0x18], 1
jne 0x1401fac95
mov r8, qword [rcx]
cmp rdx, qword [r8 + 8]
je 0x1401faf37
xor r10d, r10d
jmp 0x1401fa9e6
mov byte [r9 + 0x18], 0
mov r9, qword [rdx + 8]
mov r8, qword [rcx]
cmp rdx, qword [r8 + 8]
je 0x1401faf37
mov r8, rdx
cmp byte [rdx + 0x18], 1
jne 0x1401faf34
mov rdx, r9
mov r9, qword [r9]
cmp r8, r9
je 0x1401faa20
cmp byte [r9 + 0x18], 0
je 0x1401faab0
cmp byte [r9 + 0x19], 0
jne 0x1401fa9d5
jmp 0x1401faba7
mov r9, qword [rdx + 0x10]
movzx r11d, byte [0x1406941f3]
add r11b, byte [r9 + 0x18]
movzx ebx, byte [0x1406941f2]
mov esi, ebx
xor sil, 0x88
and bl, 8
add bl, bl
add bl, sil
add bl, r11b
add bl, 0x78
movzx r11d, byte [0x14061eef4]
add r11b, 0xed
cmp bl, r11b
jne 0x1401faaed
mov byte [r9 + 0x18], 1
mov byte [rdx + 0x18], 0
mov r9, qword [rdx + 0x10]
mov r11, qword [r9]
mov qword [rdx + 0x10], r11
mov r11, qword [r9]
cmp byte [0x1406941f1], 0
jne 0x1401faa87
cmp byte [r11 + 0x19], 0
jne 0x1401faa8b
mov qword [r11 + 8], rdx
mov r11, qword [rdx + 8]
mov qword [r9 + 8], r11
mov r11, qword [rcx]
cmp qword [r11 + 8], rdx
je 0x1401faadb
mov rsi, qword [rdx + 8]
lea r11, [rsi + 0x10]
cmp qword [rsi], rdx
cmove r11, rsi
jmp 0x1401faadf
mov byte [r9 + 0x18], 1
mov byte [rdx + 0x18], 0
mov r9, qword [rdx]
mov r11, qword [r9 + 0x10]
mov qword [rdx], r11
mov r11, qword [r9 + 0x10]
cmp byte [r11 + 0x19], 0
jne 0x1401fab30
mov esi, dword [0x1406941ec]
cmp esi, 0x23
jg 0x1401fab29
jmp 0x1401fab20
add r11, 8
mov qword [r11], r9
mov qword [r9], rdx
mov qword [rdx + 8], r9
mov r9, qword [rdx + 0x10]
cmp byte [r9 + 0x19], 0
jne 0x1401fa9d5
mov r11, qword [r9]
cmp byte [r11 + 0x18], 1
jne 0x1401fac34
mov rsi, qword [r9 + 0x10]
cmp byte [rsi + 0x18], 1
je 0x1401fa9d0
jmp 0x1401fac34
mov qword [r11 + 8], rdx
test r10b, r10b
je 0x1401fab30
mov qword [r11 + 8], rdx
jmp 0x1401fab20
test r10b, r10b
jne 0x1401fab80
nop word cs:[rax + rax]
mov r11, qword [rdx + 8]
mov qword [r9 + 8], r11
mov r11, qword [rcx]
mov rsi, qword [r11 + 8]
mov edi, dword [0x1406941ec]
cmp edi, 0x4e
jg 0x1401fab80
cmp rsi, rdx
je 0x1401fab8a
mov rsi, qword [rdx + 8]
lea r11, [rsi + 0x10]
cmp qword [rsi + 0x10], rdx
cmovne r11, rsi
jmp 0x1401fab8e
mov r11, qword [rdx + 8]
mov qword [r9 + 8], r11
jmp 0x1401fab40
add r11, 8
mov qword [r11], r9
mov qword [r9 + 0x10], rdx
mov qword [rdx + 8], r9
mov r9, qword [rdx]
cmp byte [r9 + 0x19], 0
jne 0x1401fa9d5
mov r11, qword [r9 + 0x10]
movzx ebx, byte [0x14061eef4]
mov esi, ebx
xor sil, 0xd1
and bl, 0x51
add bl, bl
add bl, sil
add bl, 0x1d
cmp byte [r11 + 0x18], bl
jne 0x1401fabd6
mov rsi, qword [r9]
cmp byte [rsi + 0x18], 1
je 0x1401fa9d0
mov r10, qword [r9]
cmp byte [r10 + 0x18], 1
jne 0x1401fac77
mov byte [r11 + 0x18], 1
movzx r10d, byte [0x14061eef4]
add r10b, 0xed
mov byte [r9 + 0x18], r10b
mov r10, qword [r9 + 0x10]
mov r11, qword [r10]
mov qword [r9 + 0x10], r11
mov r11, qword [r10]
cmp byte [r11 + 0x19], 0
jne 0x1401fac12
mov qword [r11 + 8], r9
mov r11, qword [r9 + 8]
mov qword [r10 + 8], r11
mov r11, qword [rcx]
cmp qword [r11 + 8], r9
je 0x1401fac66
mov rsi, qword [r9 + 8]
lea r11, [rsi + 0x10]
cmp qword [rsi], r9
cmove r11, rsi
jmp 0x1401fac6a
mov r10, qword [r9 + 0x10]
cmp byte [r10 + 0x18], 1
jne 0x1401fac5e
mov r10d, dword [0x1406941e8]
mov esi, 1
sub esi, r10d
imul esi, r10d
test sil, 1
jne 0x1401fad00
jmp 0x1401facae
mov r11, r9
jmp 0x1401fae73
add r11, 8
mov qword [r11], r10
mov qword [r10], r9
mov qword [r9 + 8], r10
mov r9, qword [rdx]
mov r10d, dword [0x1406941e8]
lea r11d, [r10 + 1]
imul r11d, r10d
test r11b, 1
jne 0x1401fadc5
jmp 0x1401fad70
mov rdx, qword [0x140693d58]
add rdx, qword [rcx + 8]
je 0x1401faca9
dec rdx
mov qword [rcx + 8], rdx
pop rbx
pop rbp
pop rdi
pop rsi
ret
movzx r10d, byte [0x14061eef4]
mov ebx, r10d
xor bl, 0xee
and r10b, 0x6e
add r10b, r10b
add r10b, bl
mov byte [r11 + 0x18], r10b
mov byte [r9 + 0x18], 0
mov r10, qword [r9]
mov rsi, qword [r10 + 0x10]
mov qword [r9], rsi
mov rsi, qword [r10 + 0x10]
movzx ebx, byte [rsi + 0x19]
mov edi, dword [0x1406941e8]
lea ebp, [rdi - 1]
imul ebp, edi
test bpl, 1
je 0x1401fad23
nop word cs:[rax + rax]
mov byte [r11 + 0x18], 1
mov byte [r9 + 0x18], 0
mov r10, qword [r9]
mov r10, qword [r10 + 0x10]
mov qword [r9], r10
mov r10d, dword [0x1406941ec]
cmp r10d, 0x4b
jge 0x1401fad00
jmp 0x1401facae
test bl, bl
jne 0x1401fad2b
mov qword [rsi + 8], r9
mov r11, qword [r9 + 8]
mov qword [r10 + 8], r11
mov rsi, qword [rcx]
cmp qword [rsi + 8], r9
je 0x1401fad4e
mov r11, qword [r9 + 8]
lea rsi, [r11 + 0x10]
cmp qword [r11 + 0x10], r9
cmovne rsi, r11
jmp 0x1401fad52
add rsi, 8
mov r11d, dword [0x1406941e8]
lea edi, [r11 - 1]
imul edi, r11d
test dil, 1
jne 0x1401fae66
jmp 0x1401fae3f
movzx r10d, byte [rdx + 0x18]
mov byte [r9 + 0x18], r10b
mov byte [rdx + 0x18], 1
mov r10, qword [r9]
movzx r11d, byte [0x14061eef4]
add r11b, 0xee
mov byte [r10 + 0x18], r11b
mov r10, qword [rdx]
mov r11, qword [r10 + 0x10]
mov qword [rdx], r11
lea r11, [fcn.1401fa640]
add r11d, r11d
add r11d, 0x780
mov esi, r11d
not esi
and esi, r11d
mov r11d, 0xbe6f1718
add r11d, dword [0x14061eef0]
cmp esi, r11d
je 0x1401fadf9
mov r10b, 1
nop dword [rax + rax]
movzx r11d, byte [rdx + 0x18]
mov byte [r9 + 0x18], r11b
mov byte [rdx + 0x18], 1
mov r11, qword [r9]
mov byte [r11 + 0x18], 1
mov r11, qword [rdx]
mov r11, qword [r11 + 0x10]
mov qword [rdx], r11
test r10b, r10b
je 0x1401fadd0
jmp 0x1401fad70
mov r9, qword [r10 + 0x10]
cmp byte [r9 + 0x19], 0
jne 0x1401fae08
mov qword [r9 + 8], rdx
mov r9, qword [rdx + 8]
mov qword [r10 + 8], r9
mov r9, qword [rcx]
cmp qword [r9 + 8], rdx
je 0x1401fae2b
mov r11, qword [rdx + 8]
lea r9, [r11 + 0x10]
cmp qword [r11 + 0x10], rdx
cmovne r9, r11
jmp 0x1401fae2f
add r9, 8
mov qword [r9], r10
mov qword [r10 + 0x10], rdx
mov qword [rdx + 8], r10
jmp 0x1401faf34
mov qword [rsi], r10
mov qword [r10 + 0x10], r9
mov qword [r9 + 8], r10
mov r11, qword [rdx + 0x10]
mov edi, dword [0x1406941e8]
mov ebx, dword [0x14061eef0]
add ebx, edi
dec ebx
imul ebx, edi
test bl, 1
je 0x1401fae73
mov qword [rsi], r10
mov qword [r10 + 0x10], r9
mov qword [r9 + 8], r10
jmp 0x1401fae3f
mov r9d, dword [0x1406941ec]
mov r10d, 0xbe6f173f
add r10d, dword [0x14061eef0]
cmp r9d, r10d
jge 0x1401faecc
movzx r9d, byte [rdx + 0x18]
mov byte [r11 + 0x18], r9b
movzx r9d, byte [0x14061eef4]
add r9b, 0xee
mov byte [rdx + 0x18], r9b
mov r9, qword [r11 + 0x10]
mov byte [r9 + 0x18], 1
mov r9, qword [rdx + 0x10]
mov r10, qword [r9]
mov qword [rdx + 0x10], r10
mov r10, qword [r9]
movzx ebx, byte [r10 + 0x19]
mov esi, dword [0x1406941ec]
cmp esi, 0x4f
jle 0x1401faeef
movzx r9d, byte [rdx + 0x18]
mov byte [r11 + 0x18], r9b
mov byte [rdx + 0x18], 1
mov r9, qword [r11 + 0x10]
mov byte [r9 + 0x18], 1
mov r9, qword [rdx + 0x10]
mov r9, qword [r9]
mov qword [rdx + 0x10], r9
jmp 0x1401fae8c
test bl, bl
je 0x1401faf55
mov r10, qword [rdx + 8]
mov qword [r9 + 8], r10
mov r10, qword [rcx]
cmp qword [r10 + 8], rdx
lea r10, [r10 + 8]
sete r11b
movzx ebx, byte [0x1406941f0]
test bl, r11b
jne 0x1401faf2a
xor bl, r11b
jne 0x1401faf2a
mov r11, qword [rdx + 8]
lea r10, [r11 + 0x10]
cmp qword [r11], rdx
cmove r10, r11
mov qword [r10], r9
mov qword [r9], rdx
mov qword [rdx + 8], r9
mov rdx, r8
lea r8, [fcn.1401fa640]
add r8d, r8d
add r8d, 0x1180
mov r9d, r8d
not r9d
test r9d, r8d
jne 0x1401fafbf
jmp 0x1401faf96
xor r11d, r11d
mov esi, 0xbe6f1762
nop dword [rax]
test r11b, r11b
jne 0x1401faf7f
mov qword [r10 + 8], rdx
mov edi, dword [0x1406941ec]
mov ebx, dword [0x14061eef0]
add ebx, esi
cmp edi, ebx
jl 0x1401faef3
mov qword [r10 + 8], rdx
mov edi, dword [0x1406941e8]
lea ebx, [rdi - 1]
imul ebx, edi
test bl, 1
jne 0x1401faf60
jmp 0x1401faf65
movzx r8d, byte [0x14061eef4]
add r8b, 0xee
mov byte [rdx + 0x18], r8b
mov r8d, dword [0x1406941e8]
lea r9d, [r8 - 1]
imul r9d, r8d
test r9b, 1
je 0x1401fac95
mov r8d, 0xbe6f1718
nop word cs:[rax + rax]
mov byte [rdx + 0x18], 1
mov r9d, dword [0x1406941e8]
lea r10d, [r9 - 1]
imul r10d, r9d
and r10d, 1
mov r9d, dword [0x14061eef0]
add r9d, r8d
cmp r10d, r9d
jne 0x1401fafd0
jmp 0x1401faf96