Function at 0x18005e820
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov rsi, r9
movsxd r15, r8d
mov r13, rdx
mov rbx, rcx
movzx ecx, byte [rbx]
cmp cl, 0x20
je 0x18005e84d
cmp cl, 9
jne 0x18005e852
inc rbx
jmp 0x18005e840
movzx r14d, cl
lea eax, [r14 - 0x2a]
test al, 0xfa
jne 0x18005e876
cmp cl, 0x2e
je 0x18005e876
movzx ecx, byte [rbx + 1]
inc rbx
cmp cl, 0x20
je 0x18005e863
cmp cl, 9
jne 0x18005e879
jmp 0x18005e863
xor r14b, r14b
mov qword [rsp + 0xa8], rdi
mov qword [rsp + 0xb0], r12
movaps xmmword [rsp + 0x60], xmm6
test cl, cl
je 0x18005eebd
lea rax, [r15 + r15*2]
mov rdx, rsi
lea rdi, [0x180000000]
mov qword [rbp - 0x20], rax
mov r8, qword [rdi + rax*8 + 0x7f470]
lea rcx, [rbp - 0x18]
call fcn.180068020
mov r12, qword [rbp + 0x50]
movabs r9, 0x47ae147ae147ae15
test r12, r12
jne 0x18005ea9d
cmp r15d, 9
ja case.default.0x18005e8e5
mov ecx, dword [rdi + r15*4 + 0x5eeec]
add rcx, rdi
jmp rcx
movzx eax, word [0x1800789d0]
lea r12, [rbp + 0x30]
mov word [rbp + 0x30], ax
movzx eax, byte [0x1800789d2]
xor byte [rbp + 0x31], 0x33
xor al, 0x34
mov byte [rbp + 0x30], 0x25
mov byte [rbp + 0x32], al
jmp 0x18005ea9d
movzx eax, word [0x1800789d4]
lea r12, [rbp - 0x44]
mov word [rbp - 0x44], ax
movzx eax, byte [0x1800789d6]
xor byte [rbp - 0x43], 0x33
xor al, 0x34
mov byte [rbp - 0x44], 0x25
mov byte [rbp - 0x42], al
jmp 0x18005ea9d
mov eax, dword [0x1800789d8]
xor edi, edi
mov dword [rbp - 0x30], eax
mov r8d, edi
movzx eax, word [0x1800789dc]
mov word [rbp - 0x2c], ax
mov rax, r9
mul r8
mov rax, r8
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
movsx eax, al
imul ecx, eax, 0x32
movzx eax, r8b
sub al, cl
add al, 0x32
xor byte [rbp + r8 - 0x30], al
inc r8
cmp r8, 6
jb 0x18005e950
lea r12, [rbp - 0x30]
mov dword [rbp - 0x48], edi
mov r8, rsi
mov rdx, r12
mov rcx, rbx
call qword [0x18007f6e8]
mov r8, qword [rbp - 0x20]
lea rax, [0x180000000]
mov rdx, rsi
lea rcx, [rbp - 0x18]
mov r8, qword [rax + r8*8 + 0x7f470]
call fcn.180067fe0
test eax, eax
setne al
jmp 0x18005eebf
mov eax, dword [0x1800789e0]
xor edi, edi
mov dword [rbp - 0x40], eax
mov r8d, edi
movzx eax, word [0x1800789e4]
mov word [rbp - 0x3c], ax
nop word [rax + rax]
mov rax, r9
mul r8
mov rax, r8
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
movsx eax, al
imul ecx, eax, 0x32
movzx eax, r8b
sub al, cl
add al, 0x32
xor byte [rbp + r8 - 0x40], al
inc r8
cmp r8, 6
jb 0x18005e9e0
lea r12, [rbp - 0x40]
jmp 0x18005e986
xor edi, edi
mov dword [rbp - 0x48], edi
jmp 0x18005ec1e
mov eax, dword [0x1800789e8]
xor edi, edi
cmp byte [0x1800789eb], dil
mov dword [rbp - 0x28], eax
je 0x18005ea72
mov r8d, edi
nop dword [rax]
mov rax, r9
mul r8
mov rax, r8
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
movsx eax, al
imul ecx, eax, 0x32
movzx eax, r8b
sub al, cl
add al, 0x32
xor byte [rbp + r8 - 0x28], al
inc r8
cmp r8, 4
jb 0x18005ea40
mov dword [rbp - 0x48], edi
jmp 0x18005ed01
movzx eax, word [0x1800789ec]
lea r12, [rbp - 0x4c]
mov word [rbp - 0x4c], ax
movzx eax, byte [0x1800789ee]
xor byte [rbp - 0x4b], 0x33
xor al, 0x34
mov byte [rbp - 0x4c], 0x25
mov byte [rbp - 0x4a], al
xor edi, edi
mov dword [rbp - 0x48], edi
cmp r15d, 4
jne 0x18005ec14
mov eax, dword [rsi]
xorps xmm6, xmm6
mov dword [rbp - 0x50], eax
mov dword [rbp - 0x38], edi
test r14b, r14b
je 0x18005ebee
mov rax, qword [0x18007f6e8]
lea r8, [rbp - 0x50]
mov rdx, r12
mov rcx, r13
call rax
cmp eax, 1
jl 0x18005eebd
cmp r14b, 0x2b
jne 0x18005eb2b
movzx eax, word [0x1800789fc]
lea r8, [rbp - 0x48]
mov r9, qword [0x18007f6e8]
lea rdx, [rbp + 0x30]
mov word [rbp + 0x30], ax
mov rcx, rbx
movzx eax, byte [0x1800789fe]
xor byte [rbp + 0x31], 0x33
xor al, 0x34
mov byte [rbp + 0x32], al
mov byte [rbp + 0x30], 0x25
call r9
test eax, eax
je 0x18005e998
mov ecx, dword [rbp - 0x48]
add ecx, dword [rbp - 0x50]
mov dword [rsi], ecx
jmp 0x18005e998
cmp r14b, 0x2a
jne 0x18005eb85
movzx eax, word [0x180078a00]
lea r8, [rbp - 0x38]
mov r9, qword [0x18007f6e8]
lea rdx, [rbp + 0x30]
mov word [rbp + 0x30], ax
mov rcx, rbx
movzx eax, byte [0x180078a02]
xor byte [rbp + 0x31], 0x33
xor al, 0x34
mov byte [rbp + 0x32], al
mov byte [rbp + 0x30], 0x25
call r9
test eax, eax
je 0x18005e998
movd xmm0, dword [rbp - 0x50]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [rbp - 0x38]
cvttss2si eax, xmm0
mov dword [rsi], eax
jmp 0x18005e998
cmp r14b, 0x2f
jne 0x18005ebee
movzx eax, word [0x180078a04]
lea r8, [rbp - 0x38]
mov r9, qword [0x18007f6e8]
lea rdx, [rbp + 0x30]
mov word [rbp + 0x30], ax
mov rcx, rbx
movzx eax, byte [0x180078a06]
xor byte [rbp + 0x31], 0x33
xor al, 0x34
mov byte [rbp + 0x32], al
mov byte [rbp + 0x30], 0x25
call r9
test eax, eax
je 0x18005e998
movss xmm1, dword [rbp - 0x38]
ucomiss xmm1, xmm6
jp 0x18005ebd7
je 0x18005e998
movd xmm0, dword [rbp - 0x50]
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
cvttss2si eax, xmm0
mov dword [rsi], eax
jmp 0x18005e998
mov rax, qword [0x18007f6e8]
lea r8, [rbp - 0x48]
mov rdx, r12
mov rcx, rbx
call rax
cmp eax, 1
jne 0x18005e998
mov eax, dword [rbp - 0x48]
mov dword [rsi], eax
jmp 0x18005e998
cmp r15d, 8
jne 0x18005ecf7
movzx eax, word [0x180078a08]
xorps xmm6, xmm6
movss xmm0, dword [rsi]
mov word [rbp + 0x30], ax
movzx eax, byte [0x180078a0a]
xor byte [rbp + 0x31], 0x33
xor al, 0x34
movss dword [rbp - 0x50], xmm0
mov byte [rbp + 0x30], 0x25
mov byte [rbp + 0x32], al
mov dword [rbp - 0x4c], 0
test r14b, r14b
je 0x18005ec72
mov rax, qword [0x18007f6e8]
lea r8, [rbp - 0x50]
lea rdx, [rbp + 0x30]
mov rcx, r13
call rax
cmp eax, 1
jl 0x18005eebd
mov rax, qword [0x18007f6e8]
lea r8, [rbp - 0x4c]
lea rdx, [rbp + 0x30]
mov rcx, rbx
call rax
cmp eax, 1
jl 0x18005eebd
cmp r14b, 0x2b
jne 0x18005eca8
movss xmm0, dword [rbp - 0x4c]
addss xmm0, dword [rbp - 0x50]
movss dword [rsi], xmm0
jmp 0x18005e998
cmp r14b, 0x2a
jne 0x18005ecc1
movss xmm0, dword [rbp - 0x4c]
mulss xmm0, dword [rbp - 0x50]
movss dword [rsi], xmm0
jmp 0x18005e998
cmp r14b, 0x2f
jne 0x18005ece9
movss xmm1, dword [rbp - 0x4c]
ucomiss xmm1, xmm6
jp 0x18005ecd7
je 0x18005e998
movss xmm0, dword [rbp - 0x50]
divss xmm0, xmm1
movss dword [rsi], xmm0
jmp 0x18005e998
movss xmm0, dword [rbp - 0x4c]
movss dword [rsi], xmm0
jmp 0x18005e998
cmp r15d, 9
jne 0x18005ee0a
cmp byte [0x180078a0f], 0
mov eax, dword [0x180078a0c]
mov dword [rbp + 0x30], eax
je 0x18005ed51
nop dword [rax]
nop word [rax + rax]
mov rax, r9
mul rdi
mov rax, rdi
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
movsx eax, al
imul ecx, eax, 0x32
movzx eax, dil
sub al, cl
add al, 0x32
xor byte [rbp + rdi + 0x30], al
inc rdi
cmp rdi, 4
jb 0x18005ed20
movsd xmm0, qword [rsi]
xorps xmm6, xmm6
movsd qword [rbp - 0x30], xmm0
movsd qword [rbp - 0x40], xmm6
test r14b, r14b
je 0x18005ed84
mov rax, qword [0x18007f6e8]
lea r8, [rbp - 0x30]
lea rdx, [rbp + 0x30]
mov rcx, r13
call rax
cmp eax, 1
jl 0x18005eebd
mov rax, qword [0x18007f6e8]
lea r8, [rbp - 0x40]
lea rdx, [rbp + 0x30]
mov rcx, rbx
call rax
cmp eax, 1
jl 0x18005eebd
cmp r14b, 0x2b
jne 0x18005edba
movsd xmm0, qword [rbp - 0x40]
addsd xmm0, qword [rbp - 0x30]
movsd qword [rsi], xmm0
jmp 0x18005e998
cmp r14b, 0x2a
jne 0x18005edd3
movsd xmm0, qword [rbp - 0x40]
mulsd xmm0, qword [rbp - 0x30]
movsd qword [rsi], xmm0
jmp 0x18005e998
cmp r14b, 0x2f
jne 0x18005edfc
movsd xmm1, qword [rbp - 0x40]
ucomisd xmm1, xmm6
jp 0x18005edea
je 0x18005e998
movsd xmm0, qword [rbp - 0x30]
divsd xmm0, xmm1
movsd qword [rsi], xmm0
jmp 0x18005e998
movsd xmm0, qword [rbp - 0x40]
movsd qword [rsi], xmm0
jmp 0x18005e998
lea eax, [r15 - 5]
cmp eax, 2
jbe 0x18005e989
lea r8, [rbp - 0x50]
mov rdx, r12
mov rcx, rbx
call qword [0x18007f6e8]
test r15d, r15d
jne 0x18005ee51
mov eax, dword [rbp - 0x50]
cmp eax, 0xffffff80
jge 0x18005ee40
mov eax, 0xffffff80
mov byte [rsi], al
jmp 0x18005e998
mov ecx, 0x7f
cmp eax, ecx
cmovg eax, ecx
mov byte [rsi], al
jmp 0x18005e998
cmp r15d, 1
jne 0x18005ee72
mov eax, dword [rbp - 0x50]
test eax, eax
js 0x18005ee6a
mov ecx, 0xff
cmp eax, ecx
cmovg eax, ecx
mov edi, eax
mov byte [rsi], dil
jmp 0x18005e998
cmp r15d, 2
jne 0x18005ee98
mov ecx, dword [rbp - 0x50]
mov eax, 0xffff8000
cmp ecx, eax
jl 0x18005ee90
mov edx, 0x7fff
mov eax, ecx
cmp ecx, edx
cmovg eax, edx
mov word [rsi], ax
jmp 0x18005e998
cmp r15d, 3
jne 0x18005e998
mov eax, dword [rbp - 0x50]
test eax, eax
js 0x18005eeb5
mov ecx, 0xffff
cmp eax, ecx
cmovg eax, ecx
mov edi, eax
mov word [rsi], di
jmp 0x18005e998
xor al, al
movaps xmm6, xmmword [rsp + 0x60]
mov r12, qword [rsp + 0xb0]
mov rdi, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0xb8]
add rsp, 0x70
pop r15
pop r14
pop r13
pop rsi
pop rbp
ret