Function at 0x44aa80
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 qword [rdx], 0
xor eax, eax
test r8d, r8d
je 0x44af0d
mov r10, rdx
cmp r9b, 1
jne 0x44aac9
mov edx, 1
mov r14d, 1
mov rsi, rcx
movsxd rbp, r8d
add rcx, rbp
cmp rsi, rcx
jb 0x44ab3c
jmp 0x44af0d
movzx esi, r9b
and r8d, 0xfffffffe
mov edx, 3
mov ebp, 3
sub ebp, esi
mov r14d, 1
cmp ebp, r8d
jge 0x44ab07
sub edx, esi
movsxd rbp, edx
movsxd rdx, r8d
cmp byte [rcx + rbp], 0
jne 0x44ab01
add rbp, 2
cmp rbp, rdx
jl 0x44aaf0
jmp 0x44ab07
mov r14d, 0xffffff9c
mov edx, ebp
not edx
and edx, 0xb978247f
and ebp, 0x4687db80
or ebp, edx
xor ebp, 0xb978247e
and esi, 1
add rsi, rcx
mov edx, 2
mov r8d, ebp
movsxd rbp, r8d
add rcx, rbp
cmp rsi, rcx
jae 0x44af0d
lea r15, [0x005fb0a0]
nop word cs:[rax + rax]
nop dword [rax]
movzx ebp, byte [rsi]
movzx ebx, byte [rbp + r15]
not bl
or bl, 0xfe
cmp bl, 0xff
je 0x44ab70
add rsi, rdx
cmp rsi, rcx
jb 0x44ab50
jmp 0x44af0d
cmp bpl, 0x2b
je 0x44ab9c
cmp bpl, 0x2d
jne 0x44ab9f
add rsi, rdx
movsd xmm0, qword [0x005fa2b0]
mov r13b, 1
cmp rsi, rcx
jb 0x44abab
mov ebx, 1
xor r8d, r8d
jmp 0x44aea3
add rsi, rdx
xorpd xmm0, xmm0
xor r13d, r13d
cmp rsi, rcx
jae 0x44ab8f
xor r8d, r8d
movabs r11, 0xccccccccccccccb
xor edi, edi
xor r9d, r9d
jmp 0x44abcd
add r8d, 1
cmp rsi, rcx
jae 0x44acb3
movzx ebp, byte [rsi]
mov rbx, rbp
add rbx, 0xffffffffffffffd0
cmp rbx, 9
ja 0x44ac2a
movsx rbx, bpl
lea rbp, [r9 + r9*4]
lea r9, [rbx + rbp*2]
add r9, 0xffffffffffffffd0
add rsi, rdx
lea rbp, [r11 - 1]
cmp r9, rbp
setg bl
cmp rsi, rcx
setae al
cmp bl, al
je 0x44abc0
cmp r9, rbp
jle 0x44abc0
nop dword [rax]
movzx eax, byte [rsi]
add rax, 0xffffffffffffffd0
cmp rax, 9
ja 0x44abc0
add rsi, rdx
add edi, 1
cmp rsi, rcx
jb 0x44ac10
jmp 0x44abc0
cmp bpl, 0x2e
jne 0x44ac67
add r14d, 1
add rsi, rdx
cmp rsi, rcx
jae 0x44ac67
movzx ebp, byte [rsi]
lea rax, [rbp - 0x30]
cmp rax, 9
ja 0x44ac67
cmp r9, r11
jge 0x44ac34
movsx rax, bpl
lea rbp, [r9 + r9*4]
lea r9, [rax + rbp*2]
add r9, 0xffffffffffffffd0
add edi, 0xffffffff
add r8d, 1
jmp 0x44ac34
cmp rsi, rcx
jae 0x44acb3
mov al, byte [rsi]
or al, 0x20
cmp al, 0x65
jne 0x44ad9f
add rsi, rdx
add r14d, 1
cmp rsi, rcx
jae 0x44adb1
mov bpl, byte [rsi]
mov r12d, 1
cmp bpl, 0x2b
je 0x44af40
cmp bpl, 0x2d
jne 0x44af43
add rsi, rdx
mov r12d, 0xffffffff
jmp 0x44af43
xor ebp, ebp
mov r12d, 1
mov ebx, 1
imul r12d, ebp
add r12d, edi
mov edi, r12d
neg edi
test r12d, r12d
mov edx, r12d
cmovs edx, edi
test r9, r9
je 0x44aea3
test edx, edx
jle 0x44ad6d
test r12d, r12d
js 0x44ad0e
mov edi, r12d
nop
cmp r9, r11
jg 0x44adc6
add r9, r9
lea r9, [r9 + r9*4]
lea eax, [rdi - 1]
cmp edi, 1
mov edi, eax
jg 0x44acf0
xor edx, edx
jmp 0x44ad6d
mov r15d, ebx
mov r11d, r13d
movabs r13, 0x6666666666666667
movabs rbp, 0xcccccccccccccccd
movabs rbx, 0x1999999999999998
mov rax, r9
imul r13
mov rax, r9
imul rax, rbp
add rax, rbx
ror rax, 1
cmp rax, rbx
ja 0x44adc0
mov rax, rdx
shr rax, 0x3f
sar rdx, 2
mov r9, rdx
add r9, rax
lea eax, [rdi - 1]
cmp edi, 1
mov edi, eax
jg 0x44ad32
xor edx, edx
mov r13d, r11d
mov ebx, r15d
movabs rbp, 0xf53e898b45fbd18b
mov rax, rbp
sub rax, r9
sub rax, rbp
test r13b, r13b
cmove rax, r9
test edx, edx
je 0x44ad92
mov edi, edx
jmp 0x44ae3a
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
jmp 0x44aea3
xor ebp, ebp
mov r12d, 1
mov ebx, 1
jmp 0x44afb6
xor ebp, ebp
mov r12d, 1
xor ebx, ebx
jmp 0x44acc0
mov r13d, r11d
mov ebx, r15d
movabs rax, 0xd51d738e7c97d7f2
lea rdx, [r9 + rax]
sub rax, rdx
test r13b, r13b
cmove rax, r9
cmp edi, 0x134
jl 0x44ae3a
cmp edi, 0x155
jg 0x44af1e
add edi, 0xfffffecc
mov edx, edi
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
fld1
fld dword [0x005fa2bc]
fld st(0)
fcmove st(0), st(2)
fstp st(2)
sar edi, 1
je 0x44afe3
fldz
fxch st(2)
fstp st(2)
fmul st(0), st(0)
mov edx, edi
xor edx, 0xfffffffe
test edx, edi
fld st(1)
fmul st(1)
fcmove st(0), st(2)
fstp st(2)
sar edi, 1
fld st(1)
jne 0x44ae1c
jmp 0x44afe9
mov edx, edi
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
fld1
fld dword [0x005fa2bc]
fld st(0)
fcmove st(0), st(2)
fstp st(2)
sar edi, 1
je 0x44ae7b
fldz
fxch st(2)
nop
fstp st(2)
fmul st(0), st(0)
mov edx, edi
xor edx, 0xfffffffe
test edx, edi
fld st(1)
fmul st(1)
fcmove st(0), st(2)
fstp st(2)
sar edi, 1
fld st(1)
jne 0x44ae60
jmp 0x44ae81
fstp st(0)
fldz
fldz
fstp st(1)
fstp st(0)
mov qword [rsp + 0x10], rax
fild qword [rsp + 0x10]
test r12d, r12d
js 0x44ae97
fmulp st(1)
jmp 0x44ae99
fdivrp st(1)
fstp qword [rsp + 8]
movsd xmm0, qword [rsp + 8]
movsd qword [r10], xmm0
cmp rsi, rcx
sete al
test r8d, r8d
setg cl
test ebx, ebx
setne dl
test r14d, r14d
jle 0x44aed9
xor al, cl
not al
and al, cl
xor al, dl
xor al, 1
je 0x44aed9
test ebx, ebx
je 0x44aed9
mov al, 1
test al, al
je 0x44aed9
mov eax, r14d
jmp 0x44af0d
cmp r14d, 2
jl 0x44af0b
test ebx, ebx
sete al
test r8d, r8d
setg cl
cmp r14d, 3
setne dl
mov ebx, eax
xor bl, dl
or al, dl
xor al, 1
or al, bl
xor al, 1
cmp cl, al
je 0x44af0b
mov eax, 0xffffffff
test r8d, r8d
jg 0x44af0d
xor eax, eax
add rsp, 0x30
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
test r12d, r12d
js 0x44b014
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
mulss xmm0, dword [0x005fa2b8]
cvtss2sd xmm0, xmm0
jmp 0x44aea3
add rsi, rdx
xor ebp, ebp
cmp rsi, rcx
jae 0x44af60
mov dword [rsp], r13d
movzx r13d, byte [rsi]
lea rax, [r13 - 0x30]
cmp rax, 9
jbe 0x44af64
xor ebx, ebx
jmp 0x44afb2
xor ebx, ebx
jmp 0x44afb6
mov dword [rsp + 4], r14d
add rsi, rdx
xor ebp, ebp
mov r14, rsi
mov rsi, r14
cmp ebp, 0x2710
lea eax, [rbp + rbp*4]
movsx ebx, r13b
lea ebp, [rbx + rax*2 - 0x30]
mov eax, 0x2710
cmovge ebp, eax
mov ebx, 1
cmp r14, rcx
jae 0x44afad
movzx r13d, byte [rsi]
mov rax, r13
add rax, 0xffffffffffffffd0
lea r14, [rsi + rdx]
cmp rax, 9
jbe 0x44af71
mov r14d, dword [rsp + 4]
mov r13d, dword [rsp]
cmp rsi, rcx
jae 0x44acc0
mov dword [rsp], ebx
movzx eax, byte [rsi]
movzx eax, byte [rax + r15]
mov ebx, eax
xor bl, 0xfe
test bl, al
je 0x44afdb
add rsi, rdx
cmp rsi, rcx
jb 0x44afc2
mov ebx, dword [rsp]
jmp 0x44acc0
fstp st(0)
fldz
fldz
fstp st(1)
fstp st(0)
mov qword [rsp + 0x28], rax
fild qword [rsp + 0x28]
test r12d, r12d
js 0x44b026
fmulp st(1)
fstp qword [rsp + 0x20]
movsd xmm0, qword [rsp + 0x20]
mulsd xmm0, qword [0x005fa2c0]
jmp 0x44aea3
cvtsi2sd xmm1, rax
xorpd xmm0, xmm0
mulsd xmm0, xmm1
jmp 0x44aea3
fdivrp st(1)
fstp qword [rsp + 0x18]
movsd xmm0, qword [rsp + 0x18]
divsd xmm0, qword [0x005fa2c0]
jmp 0x44aea3