Function at 0x1401586b0
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x1a8]
sub rsp, 0x270
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm10
mov r13, rcx
xor r14d, r14d
xorps xmm7, xmm7
xorps xmm1, xmm1
xor ecx, ecx
call fcn.140103b10
test al, al
je 0x140159023
call fcn.14008e7c0
lea rbx, [rax + 0x3108]
lea rdx, [rax + 0x2a98]
lea r15d, [r14 + 4]
test rdx, rdx
je 0x14015874e
xor eax, eax
mov dword [rbp + 0x1b8], eax
mov qword [rsp + 0x20], r14
mov r9d, r15d
lea r8, [rbp + 0x1b8]
mov rcx, qword [0x1404dded0]
mov rcx, qword [rcx]
cmp byte [0x1404dcc79], al
jne 0x1401588ce
call fcn.1401f46d0
test eax, eax
jns 0x1401588dc
xor eax, eax
mov dword [rbp + 0x1c0], eax
mov rcx, rbx
call fcn.140082c90
lea rdx, [rbp + 0x50]
mov rcx, rax
call fcn.140081dd0
mov r9, rax
cmp qword [rax + 0x18], 0xf
jbe 0x140158777
mov r9, qword [rax]
movabs rsi, 0xabc29ce444222325
movabs r10, 0xfffffe539f
nop dword [rax + rax]
movzx r8d, byte [r9]
lea r9, [r9 + 1]
lea edx, [r8 - 0x41]
lea eax, [r8 + 0x20]
movzx ecx, al
cmp dl, 0x19
cmova ecx, r8d
movsx rax, cl
xor rsi, rax
imul rsi, r10
test r8b, r8b
jne 0x140158790
lea rcx, [rbp + 0x50]
call fcn.1400166a0
movabs rax, 0x9ea6714c31e80b57
movss xmm10, dword [0x14030edf0]
cmp rsi, rax
je 0x1401587ee
movabs rax, 0xae3a18c64ff840ee
cmp rsi, rax
jne 0x140158c19
mov rax, qword [r13 + 0x110]
cmp byte [rax + 0x108], r14b
je 0x140158962
mov rcx, r13
call fcn.1401585f0
test al, al
je 0x140158962
call fcn.14008e7c0
add rax, 0x2a98
je 0x14015885c
xor ecx, ecx
mov dword [rbp + 0x1b8], ecx
mov qword [rsp + 0x20], r14
mov r9, r15
lea r8, [rbp + 0x1b8]
mov rdx, rax
cmp byte [0x1404dcc79], cl
mov rcx, qword [0x1404dded0]
mov rcx, qword [rcx]
jne 0x1401588e7
call fcn.1401f46d0
test eax, eax
jns 0x1401588f5
xor eax, eax
mov dword [rbp + 0x1c8], eax
call fcn.14008e7c0
mov rcx, rax
call fcn.14008a8a0
test al, al
je 0x140158c19
call fcn.14008e7c0
mov rcx, rax
call fcn.14008aa40
lea rdx, [rax + 0x2dc]
test rdx, rdx
je 0x140158919
lea rcx, [rsp + 0x30]
call fcn.1401f3f30
mov qword [rsp + 0x20], r14
mov r9d, 0xc
lea r8, [rsp + 0x30]
mov rcx, qword [0x1404dded0]
mov rcx, qword [rcx]
cmp byte [0x1404dcc79], r14b
jne 0x14015890f
call fcn.1401f46d0
test eax, eax
jns 0x140158923
jmp 0x140158919
push rsi
call 0x1409e008e
test eax, eax
je 0x14015874e
mov eax, dword [rbp + 0x1b8]
jmp 0x140158750
push rcx
call 0x1407284dc
test eax, eax
je 0x14015885c
mov eax, dword [rbp + 0x1b8]
mov dword [rbp + 0x1c8], eax
test r15b, al
jne 0x140158c19
jmp 0x140158864
call 0x1409cb643
int3
lea rcx, [rsp + 0x30]
call fcn.1401f3f30
movsd xmm0, qword [rsp + 0x30]
mov eax, dword [rsp + 0x38]
movsd qword [rsp + 0x30], xmm0
mov dword [rsp + 0x38], eax
lea rdx, [rsp + 0x30]
movss xmm0, dword [0x14030f550]
call fcn.1400c9020
test eax, eax
je 0x140158c19
mov r8b, 1
xor edx, edx
xor ecx, ecx
call fcn.140107660
jmp 0x140158c19
mov rcx, r13
call fcn.1401585f0
test al, al
jne 0x140158c19
test byte [rbp + 0x1c0], r15b
jne 0x140158994
call fcn.14008e7c0
lea rcx, [rax + 0x3118]
call fcn.140082490
test eax, eax
jg 0x140158c19
movss xmm6, dword [0x14045b97c]
addss xmm6, dword [0x14030f5d0]
call fcn.14008e7c0
mov r8, rax
lea rcx, [rsp + 0x5c]
call fcn.1401f3f30
movsd xmm0, qword [rax]
movsd qword [rsp + 0x30], xmm0
mov edx, dword [rax + 8]
mov dword [rsp + 0x38], edx
lea r9, [rsp + 0x30]
movaps xmm2, xmm6
mov rdx, r8
mov rcx, qword [0x1404de798]
call fcn.1400d1110
mov r12, rax
lea rcx, [rsp + 0x50]
call fcn.1401f3f30
movsd xmm0, qword [rax]
movsd qword [rsp + 0x30], xmm0
mov ecx, dword [rax + 8]
mov dword [rsp + 0x38], ecx
lea r9, [rsp + 0x30]
movss xmm1, dword [0x14030f800]
mov rcx, r12
call fcn.14008c500
test al, al
je 0x140158c19
movss xmm6, dword [0x14030eda8]
mov dword [rbp + 0x1c8], 0x3e333333
call fcn.14008e7c0
lea rdx, [rax + 0x1bd0]
test rdx, rdx
je 0x140158a85
mov qword [rsp + 0x20], r14
mov r9, r15
lea r8, [rbp + 0x1b8]
mov rcx, qword [0x1404dded0]
mov rcx, qword [rcx]
cmp byte [0x1404dcc79], r14b
jne 0x140158a71
call fcn.1401f46d0
test eax, eax
js 0x140158a85
movss xmm0, dword [rbp + 0x1b8]
jmp 0x140158a88
push rax
call 0x14055aea9
test eax, eax
je 0x140158a85
movss xmm0, dword [rbp + 0x1b8]
jmp 0x140158a88
movaps xmm0, xmm7
mov dword [rsp + 0x40], 0x3f000000
divss xmm0, dword [0x14030edc4]
mulss xmm0, dword [0x14030ed48]
movss dword [rsp + 0x44], xmm0
lea rax, [rsp + 0x40]
lea rcx, [rsp + 0x44]
comiss xmm0, dword [0x14030ee24]
cmovbe rax, rcx
movaps xmm0, xmm10
subss xmm0, dword [rax]
movss dword [rbp + 0x1b8], xmm0
lea rax, [rbp + 0x1c8]
lea rcx, [rbp + 0x1b8]
comiss xmm6, xmm0
cmovbe rax, rcx
movss xmm0, dword [rax]
movss dword [r13 + 0x2c], xmm0
lea rdx, [r13 + 0x28]
lea rcx, [rbp + 0x70]
call fcn.1400f8c40
mov rdi, rax
mov qword [rbp + 0x1b8], rax
mov rbx, qword [0x1404dec70]
mov qword [rax + 0x40], r12
mov rdx, rax
lea rcx, [rbp + 0xd8]
call fcn.1400f8c40
mov byte [rsp + 0x20], 1
mov r9b, 1
mov r8, rax
lea rdx, [rbp - 0x80]
mov rcx, rbx
call fcn.1400eead0
nop
lea rcx, [rdi + 0x28]
call fcn.1400165c0
nop
comiss xmm7, dword [rbp + 0x38]
jbe 0x140158b4d
cmp dword [rbp + 0x3c], 3
jl 0x140158bfe
lea rcx, [rbp + 0x20]
call fcn.1401f3f60
test al, al
je 0x140158bac
movsd xmm0, qword [rbp + 0x20]
movsd qword [rsp + 0x30], xmm0
mov eax, dword [rbp + 0x28]
mov dword [rsp + 0x38], eax
lea rdx, [rsp + 0x30]
lea rcx, [rbp + 0x1b8]
call fcn.1400cc130
mov rcx, rax
call fcn.1401f3710
test al, al
je 0x140158bac
movsd xmm0, qword [rbp + 0x20]
movsd qword [rsp + 0x30], xmm0
mov eax, dword [rbp + 0x28]
mov dword [rsp + 0x38], eax
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x50]
call fcn.1400c3ff0
jmp 0x140158bba
lea rdx, [rsp + 0x5c]
mov rcx, qword [rbp - 8]
call fcn.14008ab50
movsd xmm0, qword [rax]
movsd qword [rsp + 0x30], xmm0
mov eax, dword [rax + 8]
mov dword [rsp + 0x38], eax
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x68]
call fcn.1400c2b00
movsd xmm0, qword [rax]
movsd qword [rsp + 0x30], xmm0
mov eax, dword [rax + 8]
mov dword [rsp + 0x38], eax
mov r9b, 1
xor r8d, r8d
lea rdx, [rsp + 0x30]
xor ecx, ecx
call fcn.140107900
nop
lea rcx, [rbp - 0x20]
call fcn.1400165c0
lea rcx, [rbp - 0x68]
call fcn.140023e80
lea rcx, [rbp - 0x80]
call fcn.140023e80
movabs rax, 0x2eee3e7bd9ee519d
cmp rsi, rax
jne 0x140159023
mov rax, qword [r13 + 0x118]
cmp byte [rax + 0x108], 0
je 0x140158d16
mov rcx, r13
call fcn.1401585f0
test al, al
je 0x140158d16
test byte [rbp + 0x1c0], 4
jne 0x140159023
call fcn.14008e7c0
mov rcx, rax
call fcn.14008a8a0
test al, al
je 0x140159023
call fcn.14008e7c0
mov rcx, rax
call fcn.14008aa40
mov rdx, rax
add rdx, 0x2dc
je 0x140158ccd
lea rcx, [rsp + 0x30]
call fcn.1401f3f30
mov qword [rsp + 0x20], r14
mov r9d, 0xc
lea r8, [rsp + 0x30]
mov rcx, qword [0x1404dded0]
mov rcx, qword [rcx]
cmp byte [0x1404dcc79], 0
jne 0x140158cc3
call fcn.1401f46d0
test eax, eax
jns 0x140158cd7
jmp 0x140158ccd
push rax
call 0x140cb2ae0
test eax, eax
jne 0x140158cd7
lea rcx, [rsp + 0x30]
call fcn.1401f3f30
movsd xmm0, qword [rsp + 0x30]
mov eax, dword [rsp + 0x38]
movsd qword [rsp + 0x30], xmm0
mov dword [rsp + 0x38], eax
lea rdx, [rsp + 0x30]
movss xmm0, dword [0x14030f550]
call fcn.1400c9020
test eax, eax
je 0x140159023
mov r8b, 1
xor edx, edx
xor ecx, ecx
call fcn.140107660
jmp 0x140159023
mov rcx, r13
call fcn.1401585f0
test al, al
jne 0x140159023
test byte [rbp + 0x1c0], 4
jne 0x140158d48
call fcn.14008e7c0
lea rcx, [rax + 0x3118]
call fcn.140082490
test eax, eax
jg 0x140159023
movss xmm6, dword [0x14045b97c]
addss xmm6, dword [0x14030f674]
call fcn.14008e7c0
mov r8, rax
lea rcx, [rsp + 0x68]
call fcn.1401f3f30
movsd xmm0, qword [rax]
movsd qword [rsp + 0x30], xmm0
mov edx, dword [rax + 8]
mov dword [rsp + 0x38], edx
lea r9, [rsp + 0x30]
movaps xmm2, xmm6
mov rdx, r8
mov rcx, qword [0x1404de798]
call fcn.1400d1110
mov rsi, rax
lea rcx, [rsp + 0x50]
call fcn.1401f3f30
movsd xmm0, qword [rax]
movsd qword [rsp + 0x30], xmm0
mov ecx, dword [rax + 8]
mov dword [rsp + 0x38], ecx
lea r9, [rsp + 0x30]
movss xmm1, dword [0x14030f800]
mov rcx, rsi
call fcn.14008c500
test al, al
je 0x140159023
movss xmm6, dword [0x14030edd4]
mov dword [rbp + 0x1c8], 0x3e8f5c29
call fcn.14008e7c0
lea rdx, [rax + 0x1bd0]
test rdx, rdx
je 0x140158e39
mov qword [rsp + 0x20], r14
mov r9, r15
lea r8, [rbp + 0x1b8]
mov rcx, qword [0x1404dded0]
mov rcx, qword [rcx]
cmp byte [0x1404dcc79], 0
jne 0x140158e25
call fcn.1401f46d0
test eax, eax
js 0x140158e39
movss xmm0, dword [rbp + 0x1b8]
jmp 0x140158e3c
call 0x140cdcf07
int3
movaps xmm0, xmm7
mov dword [rsp + 0x48], 0x3e4ccccd
divss xmm0, dword [0x14030edc4]
mulss xmm0, dword [0x14030ed48]
movss dword [rsp + 0x4c], xmm0
lea rax, [rsp + 0x48]
lea rcx, [rsp + 0x4c]
comiss xmm0, dword [0x14030edb0]
cmovbe rax, rcx
subss xmm10, dword [rax]
movss dword [rbp + 0x1b8], xmm10
lea rax, [rbp + 0x1c8]
lea rcx, [rbp + 0x1b8]
comiss xmm6, xmm10
cmovbe rax, rcx
movss xmm0, dword [rax]
movss dword [r13 + 0x94], xmm0
lea rdx, [r13 + 0x90]
lea rcx, [rbp + 0xd8]
call fcn.1400f8c40
mov rdi, rax
mov qword [rbp + 0x1b8], rax
mov rbx, qword [0x1404dec70]
mov qword [rax + 0x40], rsi
mov rdx, rax
lea rcx, [rbp + 0x70]
call fcn.1400f8c40
mov byte [rsp + 0x20], 1
mov r9b, 1
mov r8, rax
lea rdx, [rbp - 0x80]
mov rcx, rbx
call fcn.1400eead0
nop
lea rcx, [rdi + 0x28]
call fcn.1400165c0
nop
movss xmm0, dword [rbp + 0x38]
comiss xmm7, xmm0
jbe 0x140158f06
mov r15d, dword [rbp + 0x3c]
jmp 0x140158f41
cvtps2pd xmm1, xmm0
movsd xmm0, qword [0x14030f028]
comisd xmm0, xmm1
jbe 0x140158f1f
mov r15d, 3
jmp 0x140158f41
movsd xmm0, qword [0x14030f060]
comisd xmm0, xmm1
ja 0x140158f41
movsd xmm0, qword [0x14030f098]
comisd xmm0, xmm1
setbe r14b
lea r15d, [r14 + 5]
mov rax, qword [0x1404dec70]
mov ecx, dword [rax + 0x38]
add ecx, 3
cmp r15d, ecx
jl 0x140159008
lea rcx, [rbp + 0x20]
call fcn.1401f3f60
test al, al
je 0x140158fb6
movsd xmm0, qword [rbp + 0x20]
movsd qword [rsp + 0x30], xmm0
mov eax, dword [rbp + 0x28]
mov dword [rsp + 0x38], eax
lea rdx, [rsp + 0x30]
lea rcx, [rbp + 0x1b8]
call fcn.1400cc130
mov rcx, rax
call fcn.1401f3710
test al, al
je 0x140158fb6
movsd xmm0, qword [rbp + 0x20]
movsd qword [rsp + 0x30], xmm0
mov eax, dword [rbp + 0x28]
mov dword [rsp + 0x38], eax
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x68]
call fcn.1400c3ff0
jmp 0x140158fc4
lea rdx, [rsp + 0x50]
mov rcx, qword [rbp - 8]
call fcn.14008ab50
movsd xmm0, qword [rax]
movsd qword [rsp + 0x30], xmm0
mov eax, dword [rax + 8]
mov dword [rsp + 0x38], eax
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x5c]
call fcn.1400c2b00
movsd xmm0, qword [rax]
movsd qword [rsp + 0x30], xmm0
mov eax, dword [rax + 8]
mov dword [rsp + 0x38], eax
mov r9b, 1
xor r8d, r8d
lea rdx, [rsp + 0x30]
xor ecx, ecx
call fcn.140107900
nop
lea rcx, [rbp - 0x20]
call fcn.1400165c0
lea rcx, [rbp - 0x68]
call fcn.140023e80
lea rcx, [rbp - 0x80]
call fcn.140023e80
lea r11, [rsp + 0x270]
mov rbx, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm10, xmmword [r11 - 0x30]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret