Function at 0x14007970e
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x338
mov r14d, 1
test rdx, rdx
je 0x1400797ee
mov r12, rdx
mov rsi, rcx
movzx r15d, byte [rcx]
cmp r15d, 0x2d
je 0x140079746
cmp r15d, 0x2b
jne 0x140079752
dec r12
je 0x140079832
inc rsi
cmp r15b, 0x2d
sete r9b
lea rdi, [rsp + 0x28]
mov rcx, rdi
mov rdx, rsi
mov r8, r12
call fcn.140036ee0
mov bl, byte [rdi + 0x10]
cmp bl, 2
jne 0x1400797f2
mov r14d, 1
mov edi, 0x100
cmp r12, 3
jb 0x140079837
xor eax, eax
lea rcx, [0x14030d123]
xor edx, edx
mov bl, byte [rdx + rcx]
xor bl, byte [rsi + rdx]
lea rbp, [rdx + 1]
or al, bl
mov rdx, rbp
cmp rbp, 3
jne 0x140079795
test al, 0xdf
je 0x1400799da
xor eax, eax
lea rcx, [0x14030d126]
xor edx, edx
mov bl, byte [rdx + rcx]
xor bl, byte [rsi + rdx]
lea rbp, [rdx + 1]
or al, bl
mov rdx, rbp
cmp rbp, 3
jne 0x1400797bd
test al, 0xdf
jne 0x140079837
mov rcx, rsi
mov rdx, r12
call fcn.1400372b0
movss xmm0, dword [0x1402adb98]
jmp 0x1400799e7
xor edi, edi
jmp 0x140079837
mov r15, qword [rsp + 0x28]
mov rbp, qword [rsp + 0x30]
mov r13b, byte [rsp + 0x39]
lea rax, [r15 + 0xa]
cmp rax, 0x1b
ja 0x140079868
cmp rbp, 0x1000000
ja 0x140079868
test r13b, r13b
jne 0x140079868
cmp r15, 0xa
jg 0x14007983c
test rbp, rbp
js 0x1400799ff
cvtsi2ss xmm0, rbp
jmp 0x140079a14
mov edi, 0x100
jmp 0x140079a99
lea rcx, [0x14030d130]
mov rax, rbp
mul qword [rcx + r15*8 - 0x50]
jo 0x140079868
cmp rax, 0x1000000
ja 0x140079868
test rax, rax
js 0x140079a47
cvtsi2ss xmm0, rax
jmp 0x140079a5c
mov rcx, r15
mov rdx, rbp
call fcn.140078fc4
mov rdi, rax
mov r14d, edx
test r13b, r13b
je 0x1400798a6
test r14d, r14d
js 0x1400798a6
inc rbp
mov rcx, r15
mov rdx, rbp
call fcn.140078fc4
cmp rdi, rax
setne al
cmp r14d, edx
setne cl
or cl, al
jne 0x1400798af
jmp 0x140079a7e
test r14d, r14d
jns 0x140079a7e
lea rbp, [rsp + 0x28]
mov rcx, rbp
mov rdx, rsi
mov r8, r12
call fcn.140036a60
xor edi, edi
cmp qword [rbp + 0x300], 0
je 0x140079a42
mov eax, dword [rsp + 0x330]
mov r14d, 0
cmp eax, 0xfffffebc
jl 0x140079a7e
mov r14d, 0xff
xor edi, edi
cmp eax, 0x135
jg 0x140079a7e
mov r15d, ebx
test eax, eax
jle 0x140079945
xor edi, edi
lea rbp, [0x14030d110]
lea rsi, [rsp + 0x28]
mov ebx, 0x3c
cmp eax, 0x12
ja 0x140079922
mov eax, eax
movzx ebx, byte [rax + rbp]
mov rcx, rsi
mov rdx, rbx
call fcn.140036840
mov eax, dword [rsp + 0x330]
cmp eax, 0xfffff801
jl 0x140079a66
add edi, ebx
test eax, eax
jg 0x140079912
lea rsi, [rsp + 0x28]
lea rbp, [0x14030d110]
test eax, eax
je 0x140079969
neg eax
mov ebx, 0x3c
cmp eax, 0x12
ja 0x14007997c
mov eax, eax
movzx ebx, byte [rax + rbp]
jmp 0x14007997c
mov al, byte [rsp + 0x28]
cmp al, 4
ja 0x14007999f
cmp al, 2
mov ebx, 0
adc rbx, 1
mov rcx, rsi
mov rdx, rbx
call fcn.140036570
mov eax, dword [rsp + 0x330]
cmp eax, 0x7ff
jg 0x140079a79
sub edi, ebx
test eax, eax
jle 0x140079951
dec edi
cmp edi, 0xffffff81
jg 0x140079a6d
mov ebp, 0x3c
lea rbx, [rsp + 0x28]
mov esi, 0xffffff82
sub esi, edi
cmp esi, 0x3c
cmovae esi, ebp
mov rcx, rbx
mov rdx, rsi
call fcn.140036840
add esi, edi
mov edi, esi
cmp esi, 0xffffff82
jb 0x1400799b4
jmp 0x140079a6f
mov eax, 3
movss xmm0, dword [0x1402adca4]
cmp rax, r12
jne 0x140079a99
cmp r15b, 0x2d
je 0x140079a8d
jmp 0x140079a94
mov rax, rbp
shr rax, 1
and ebp, 1
or rbp, rax
cvtsi2ss xmm0, rbp
addss xmm0, xmm0
test r15, r15
js 0x140079a2c
and r15d, 0xf
lea rax, [0x1402b35a8]
mulss xmm0, dword [rax + r15*4]
jmp 0x140079a89
neg r15d
and r15d, 0xf
lea rax, [0x1402b35a8]
divss xmm0, dword [rax + r15*4]
jmp 0x140079a89
xor r14d, r14d
jmp 0x140079a7e
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
mulss xmm0, dword [0x1402adca0]
jmp 0x140079a89
xor edi, edi
xor r14d, r14d
jmp 0x140079a7b
mov esi, edi
lea eax, [rsi + 0x7f]
cmp eax, 0xfe
jle 0x140079ac4
xor edi, edi
mov ebx, r15d
shl r14d, 0x17
or edi, r14d
movd xmm0, edi
test bl, bl
je 0x140079a94
xorps xmm0, xmmword [0x1402adb40]
xor edi, edi
xor r14d, r14d
movd eax, xmm0
shl rax, 0x20
and edi, 0x100
or rdi, rax
or rdi, r14
mov rax, rdi
add rsp, 0x338
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rdi, [rsp + 0x28]
mov edx, 0x18
mov rcx, rdi
call fcn.140036570
mov rcx, rdi
call fcn.1400358a0
cmp rax, 0xffffff
mov ebx, r15d
jbe 0x140079b1a
lea rdi, [rsp + 0x28]
mov edx, 1
mov rcx, rdi
call fcn.140036840
mov rcx, rdi
call fcn.1400358a0
mov rdi, rax
lea eax, [rsi + 0x80]
cmp eax, 0xfe
jle 0x140079b1f
xor edi, edi
jmp 0x140079a7e
mov rdi, rax
jmp 0x140079b21
inc esi
cmp rdi, 0x800000
sbb esi, 0
add esi, 0x7f
and edi, 0x7fffff
mov r14d, esi
jmp 0x140079a7e