Function at 0x18005d520
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 0x18005d54d
cmp cl, 9
jne 0x18005d552
inc rbx
jmp 0x18005d540
movzx r14d, cl
lea eax, [r14 - 0x2a]
test al, 0xfa
jne 0x18005d576
cmp cl, 0x2e
je 0x18005d576
movzx ecx, byte [rbx + 1]
inc rbx
cmp cl, 0x20
je 0x18005d563
cmp cl, 9
jne 0x18005d579
jmp 0x18005d563
xor r14b, r14b
mov qword [rsp + 0xa8], rdi
mov qword [rsp + 0xb0], r12
movaps xmmword [rsp + 0x60], xmm6
test cl, cl
je 0x18005dbbd
lea rax, [r15 + r15*2]
mov rdx, rsi
lea rdi, [0x180000000]
mov qword [rbp - 0x20], rax
mov r8, qword [rdi + rax*8 + 0x7d470]
lea rcx, [rbp - 0x18]
call fcn.180066d20
mov r12, qword [rbp + 0x50]
movabs r9, 0x47ae147ae147ae15
test r12, r12
jne 0x18005d79d
cmp r15d, 9
ja case.default.0x18005d5e5
mov ecx, dword [rdi + r15*4 + 0x5dbec]
add rcx, rdi
jmp rcx
movzx eax, word [0x1800769a0]
lea r12, [rbp + 0x30]
mov word [rbp + 0x30], ax
movzx eax, byte [0x1800769a2]
xor byte [rbp + 0x31], 0x33
xor al, 0x34
mov byte [rbp + 0x30], 0x25
mov byte [rbp + 0x32], al
jmp 0x18005d79d
movzx eax, word [0x1800769a4]
lea r12, [rbp - 0x44]
mov word [rbp - 0x44], ax
movzx eax, byte [0x1800769a6]
xor byte [rbp - 0x43], 0x33
xor al, 0x34
mov byte [rbp - 0x44], 0x25
mov byte [rbp - 0x42], al
jmp 0x18005d79d
mov eax, dword [0x1800769a8]
xor edi, edi
mov dword [rbp - 0x30], eax
mov r8d, edi
movzx eax, word [0x1800769ac]
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 0x18005d650
lea r12, [rbp - 0x30]
mov dword [rbp - 0x48], edi
mov r8, rsi
mov rdx, r12
mov rcx, rbx
call qword [0x18007d6e8]
mov r8, qword [rbp - 0x20]
lea rax, [0x180000000]
mov rdx, rsi
lea rcx, [rbp - 0x18]
mov r8, qword [rax + r8*8 + 0x7d470]
call fcn.180066ce0
test eax, eax
setne al
jmp 0x18005dbbf
mov eax, dword [0x1800769b0]
xor edi, edi
mov dword [rbp - 0x40], eax
mov r8d, edi
movzx eax, word [0x1800769b4]
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 0x18005d6e0
lea r12, [rbp - 0x40]
jmp 0x18005d686
xor edi, edi
mov dword [rbp - 0x48], edi
jmp 0x18005d91e
mov eax, dword [0x1800769b8]
xor edi, edi
cmp byte [0x1800769bb], dil
mov dword [rbp - 0x28], eax
je 0x18005d772
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 0x18005d740
mov dword [rbp - 0x48], edi
jmp 0x18005da01
movzx eax, word [0x1800769bc]
lea r12, [rbp - 0x4c]
mov word [rbp - 0x4c], ax
movzx eax, byte [0x1800769be]
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 0x18005d914
mov eax, dword [rsi]
xorps xmm6, xmm6
mov dword [rbp - 0x50], eax
mov dword [rbp - 0x38], edi
test r14b, r14b
je 0x18005d8ee
mov rax, qword [0x18007d6e8]
lea r8, [rbp - 0x50]
mov rdx, r12
mov rcx, r13
call rax
cmp eax, 1
jl 0x18005dbbd
cmp r14b, 0x2b
jne 0x18005d82b
movzx eax, word [0x1800769cc]
lea r8, [rbp - 0x48]
mov r9, qword [0x18007d6e8]
lea rdx, [rbp + 0x30]
mov word [rbp + 0x30], ax
mov rcx, rbx
movzx eax, byte [0x1800769ce]
xor byte [rbp + 0x31], 0x33
xor al, 0x34
mov byte [rbp + 0x32], al
mov byte [rbp + 0x30], 0x25
call r9
test eax, eax
je 0x18005d698
mov ecx, dword [rbp - 0x48]
add ecx, dword [rbp - 0x50]
mov dword [rsi], ecx
jmp 0x18005d698
cmp r14b, 0x2a
jne 0x18005d885
movzx eax, word [0x1800769d0]
lea r8, [rbp - 0x38]
mov r9, qword [0x18007d6e8]
lea rdx, [rbp + 0x30]
mov word [rbp + 0x30], ax
mov rcx, rbx
movzx eax, byte [0x1800769d2]
xor byte [rbp + 0x31], 0x33
xor al, 0x34
mov byte [rbp + 0x32], al
mov byte [rbp + 0x30], 0x25
call r9
test eax, eax
je 0x18005d698
movd xmm0, dword [rbp - 0x50]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [rbp - 0x38]
cvttss2si eax, xmm0
mov dword [rsi], eax
jmp 0x18005d698
cmp r14b, 0x2f
jne 0x18005d8ee
movzx eax, word [0x1800769d4]
lea r8, [rbp - 0x38]
mov r9, qword [0x18007d6e8]
lea rdx, [rbp + 0x30]
mov word [rbp + 0x30], ax
mov rcx, rbx
movzx eax, byte [0x1800769d6]
xor byte [rbp + 0x31], 0x33
xor al, 0x34
mov byte [rbp + 0x32], al
mov byte [rbp + 0x30], 0x25
call r9
test eax, eax
je 0x18005d698
movss xmm1, dword [rbp - 0x38]
ucomiss xmm1, xmm6
jp 0x18005d8d7
je 0x18005d698
movd xmm0, dword [rbp - 0x50]
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
cvttss2si eax, xmm0
mov dword [rsi], eax
jmp 0x18005d698
mov rax, qword [0x18007d6e8]
lea r8, [rbp - 0x48]
mov rdx, r12
mov rcx, rbx
call rax
cmp eax, 1
jne 0x18005d698
mov eax, dword [rbp - 0x48]
mov dword [rsi], eax
jmp 0x18005d698
cmp r15d, 8
jne 0x18005d9f7
movzx eax, word [0x1800769d8]
xorps xmm6, xmm6
movss xmm0, dword [rsi]
mov word [rbp + 0x30], ax
movzx eax, byte [0x1800769da]
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 0x18005d972
mov rax, qword [0x18007d6e8]
lea r8, [rbp - 0x50]
lea rdx, [rbp + 0x30]
mov rcx, r13
call rax
cmp eax, 1
jl 0x18005dbbd
mov rax, qword [0x18007d6e8]
lea r8, [rbp - 0x4c]
lea rdx, [rbp + 0x30]
mov rcx, rbx
call rax
cmp eax, 1
jl 0x18005dbbd
cmp r14b, 0x2b
jne 0x18005d9a8
movss xmm0, dword [rbp - 0x4c]
addss xmm0, dword [rbp - 0x50]
movss dword [rsi], xmm0
jmp 0x18005d698
cmp r14b, 0x2a
jne 0x18005d9c1
movss xmm0, dword [rbp - 0x4c]
mulss xmm0, dword [rbp - 0x50]
movss dword [rsi], xmm0
jmp 0x18005d698
cmp r14b, 0x2f
jne 0x18005d9e9
movss xmm1, dword [rbp - 0x4c]
ucomiss xmm1, xmm6
jp 0x18005d9d7
je 0x18005d698
movss xmm0, dword [rbp - 0x50]
divss xmm0, xmm1
movss dword [rsi], xmm0
jmp 0x18005d698
movss xmm0, dword [rbp - 0x4c]
movss dword [rsi], xmm0
jmp 0x18005d698
cmp r15d, 9
jne 0x18005db0a
cmp byte [0x1800769df], 0
mov eax, dword [0x1800769dc]
mov dword [rbp + 0x30], eax
je 0x18005da51
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 0x18005da20
movsd xmm0, qword [rsi]
xorps xmm6, xmm6
movsd qword [rbp - 0x30], xmm0
movsd qword [rbp - 0x40], xmm6
test r14b, r14b
je 0x18005da84
mov rax, qword [0x18007d6e8]
lea r8, [rbp - 0x30]
lea rdx, [rbp + 0x30]
mov rcx, r13
call rax
cmp eax, 1
jl 0x18005dbbd
mov rax, qword [0x18007d6e8]
lea r8, [rbp - 0x40]
lea rdx, [rbp + 0x30]
mov rcx, rbx
call rax
cmp eax, 1
jl 0x18005dbbd
cmp r14b, 0x2b
jne 0x18005daba
movsd xmm0, qword [rbp - 0x40]
addsd xmm0, qword [rbp - 0x30]
movsd qword [rsi], xmm0
jmp 0x18005d698
cmp r14b, 0x2a
jne 0x18005dad3
movsd xmm0, qword [rbp - 0x40]
mulsd xmm0, qword [rbp - 0x30]
movsd qword [rsi], xmm0
jmp 0x18005d698
cmp r14b, 0x2f
jne 0x18005dafc
movsd xmm1, qword [rbp - 0x40]
ucomisd xmm1, xmm6
jp 0x18005daea
je 0x18005d698
movsd xmm0, qword [rbp - 0x30]
divsd xmm0, xmm1
movsd qword [rsi], xmm0
jmp 0x18005d698
movsd xmm0, qword [rbp - 0x40]
movsd qword [rsi], xmm0
jmp 0x18005d698
lea eax, [r15 - 5]
cmp eax, 2
jbe 0x18005d689
lea r8, [rbp - 0x50]
mov rdx, r12
mov rcx, rbx
call qword [0x18007d6e8]
test r15d, r15d
jne 0x18005db51
mov eax, dword [rbp - 0x50]
cmp eax, 0xffffff80
jge 0x18005db40
mov eax, 0xffffff80
mov byte [rsi], al
jmp 0x18005d698
mov ecx, 0x7f
cmp eax, ecx
cmovg eax, ecx
mov byte [rsi], al
jmp 0x18005d698
cmp r15d, 1
jne 0x18005db72
mov eax, dword [rbp - 0x50]
test eax, eax
js 0x18005db6a
mov ecx, 0xff
cmp eax, ecx
cmovg eax, ecx
mov edi, eax
mov byte [rsi], dil
jmp 0x18005d698
cmp r15d, 2
jne 0x18005db98
mov ecx, dword [rbp - 0x50]
mov eax, 0xffff8000
cmp ecx, eax
jl 0x18005db90
mov edx, 0x7fff
mov eax, ecx
cmp ecx, edx
cmovg eax, edx
mov word [rsi], ax
jmp 0x18005d698
cmp r15d, 3
jne 0x18005d698
mov eax, dword [rbp - 0x50]
test eax, eax
js 0x18005dbb5
mov ecx, 0xffff
cmp eax, ecx
cmovg eax, ecx
mov edi, eax
mov word [rsi], di
jmp 0x18005d698
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