Function at 0x18005bcd0
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0x100
mov rdi, qword [0x180147368]
mov esi, r8d
movaps xmmword [rax - 0x48], xmm6
mov r13, rcx
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
mov eax, dword [rdi + 0x1b20]
mov r12d, eax
and eax, 0xffffffef
shr r12d, 4
mov dword [rdi + 0x1b20], eax
and r12b, 1
mov rdx, qword [0x180147368]
mov rax, qword [rdx + 0x1a80]
mov byte [rax + 0x80], 1
mov r14, qword [rdx + 0x1a80]
cmp byte [r14 + 0x83], 0
jne 0x18005c106
mov rdx, rcx
xor r8d, r8d
mov rcx, r14
call fcn.180048210
mov ebx, esi
mov r15d, eax
xorps xmm6, xmm6
and ebx, 0x20
je 0x18005bd73
xorps xmm7, xmm7
jmp 0x18005bd7b
call fcn.180048150
movaps xmm7, xmm0
movss xmm1, dword [0x180004ce4]
lea rcx, [rbp - 0x59]
mov r9b, 1
movss dword [rsp + 0x20], xmm1
xor r8d, r8d
mov rdx, r13
call fcn.180044f90
call fcn.180044bd0
mov r13d, esi
movaps xmm8, xmm0
and r13d, 0x40
je 0x18005bdb1
movaps xmm8, xmm7
movss xmm0, dword [rdi + 0x15a4]
movss xmm3, dword [r14 + 0xd0]
addss xmm0, xmm0
movss xmm1, dword [rbp - 0x59]
movaps xmm2, xmm3
comiss xmm1, xmm6
addss xmm0, dword [rbp - 0x55]
addss xmm2, xmm8
addss xmm0, dword [r14 + 0xd4]
movss dword [rsp + 0x48], xmm3
movss xmm4, dword [r14 + 0xd4]
movss dword [rsp + 0x4c], xmm4
movss dword [rsp + 0x50], xmm2
movss dword [rsp + 0x54], xmm0
jbe 0x18005be11
addss xmm1, dword [rdi + 0x15b8]
jmp 0x18005be14
xorps xmm1, xmm1
addss xmm2, xmm1
movss dword [rbp - 0x51], xmm3
addss xmm0, xmm6
movss dword [rbp - 0x4d], xmm4
lea rcx, [rbp - 0x51]
movss dword [rbp - 0x49], xmm2
movss dword [rbp - 0x45], xmm0
movss xmm1, dword [rdi + 0x15a4]
call fcn.18004a510
lea r8, [rsp + 0x48]
mov edx, r15d
lea rcx, [rbp - 0x51]
call fcn.18004a250
test al, al
je 0x18005c106
movaps xmmword [rsp + 0xc0], xmm9
lea r9, [rbp + 0x7f]
lea r8, [rsp + 0x40]
movaps xmmword [rsp + 0xb0], xmm10
mov edx, r15d
mov dword [rsp + 0x20], 0
lea rcx, [rsp + 0x48]
call fcn.18005c800
mov ecx, r15d
mov byte [rsp + 0x41], al
call fcn.18004a220
movss xmm10, dword [0x180004c54]
xor ecx, ecx
cmp byte [rsp + 0x40], cl
movaps xmm1, xmm10
mov byte [rbp + 0x7f], al
setne cl
add ecx, 7
call fcn.180048020
movss xmm0, dword [rsp + 0x50]
lea rcx, [rsp + 0x48]
movss xmm9, dword [rsp + 0x48]
subss xmm0, xmm7
mov r8d, 1
mov dword [rbp - 0x69], eax
mov edx, r15d
maxss xmm9, xmm0
call fcn.1800503f0
mov ecx, 0xf
test r13d, r13d
jne 0x18005bf35
movss xmm0, dword [rsp + 0x54]
lea r8, [rsp + 0x58]
mov r9d, dword [rbp - 0x69]
lea rdx, [rsp + 0x48]
test ebx, ebx
movss dword [rbp - 0x7d], xmm0
movss xmm0, dword [rdi + 0x15a8]
mov eax, 5
cmovne eax, ecx
movss dword [rsp + 0x58], xmm9
mov rcx, qword [r14 + 0x2b0]
mov dword [rsp + 0x28], eax
movss dword [rsp + 0x20], xmm0
call fcn.18006fa40
test ebx, ebx
jne 0x18005c00d
cmp byte [rbp + 0x7f], bl
jne 0x18005bf4b
lea ecx, [rbx + 0x15]
cmp byte [rsp + 0x40], bl
je 0x18005bf50
mov ecx, 0x16
movaps xmm1, xmm10
call fcn.180048020
movaps xmm1, xmm10
xor ecx, ecx
mov ebx, eax
call fcn.180048020
movss xmm0, dword [rsp + 0x4c]
lea r8, [rsp + 0x50]
mov dword [rbp - 0x69], eax
lea rdx, [rsp + 0x58]
mov ecx, 0xa
movss dword [rbp - 0x7d], xmm0
movss xmm0, dword [rdi + 0x15a8]
mov eax, 0xf
comiss xmm7, xmm8
mov r9d, ebx
movss dword [rsp + 0x58], xmm9
cmovae ecx, eax
mov dword [rsp + 0x28], ecx
mov rcx, qword [r14 + 0x2b0]
movss dword [rsp + 0x20], xmm0
call fcn.18006fa40
movss xmm0, dword [rsp + 0x50]
movaps xmm1, xmm9
addss xmm1, xmm7
subss xmm1, dword [rdi + 0x15a0]
comiss xmm0, xmm1
jb 0x18005c00d
movss xmm1, dword [rdi + 0x15a4]
mov r9d, 3
mov r8d, dword [rbp - 0x69]
movaps xmm0, xmm1
addss xmm1, dword [rsp + 0x4c]
mov rcx, qword [r14 + 0x2b0]
addss xmm0, xmm9
movss dword [rsp + 0x20], xmm10
unpcklps xmm0, xmm1
movq rdx, xmm0
call fcn.180073b20
movss xmm2, dword [rdi + 0x15a8]
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
call fcn.180050290
mov rax, qword [rbp + 0x6f]
movaps xmm10, xmmword [rsp + 0xb0]
test rax, rax
je 0x18005c0aa
test r13d, r13d
jne 0x18005c0aa
movss xmm0, dword [rsp + 0x54]
lea rcx, [rsp + 0x58]
movss xmm1, dword [rsp + 0x48]
lea rdx, [rbp - 0x69]
addss xmm1, dword [rdi + 0x15a0]
movss dword [rbp - 0x65], xmm0
xor r9d, r9d
movss xmm0, dword [rsp + 0x4c]
mov r8, rax
addss xmm0, dword [rdi + 0x15a4]
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], rcx
lea rcx, [rbp - 0x79]
movss dword [rbp - 0x69], xmm9
movss dword [rbp - 0x79], xmm1
movss dword [rbp - 0x75], xmm0
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x20], 0
call fcn.1800507b0
movss xmm0, dword [rbp - 0x59]
comiss xmm0, xmm6
movaps xmm9, xmmword [rsp + 0xc0]
jbe 0x18005c0f0
movss xmm0, dword [rsp + 0x50]
mov r9b, 1
movss xmm1, dword [rsp + 0x4c]
xor r8d, r8d
addss xmm0, dword [rdi + 0x15b8]
addss xmm1, dword [rdi + 0x15a4]
mov rdx, qword [rbp + 0x67]
unpcklps xmm0, xmm1
movq rcx, xmm0
call fcn.180050690
cmp byte [rsp + 0x41], 0
jne 0x18005c132
cmp dword [rdi + 0x1c08], r15d
je 0x18005c132
cmp byte [rbp + 0x7f], 0
jne 0x18005c151
xor al, al
lea r11, [rsp + 0x100]
mov rbx, qword [r11 + 0x50]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
cmp byte [rbp + 0x7f], 0
jne 0x18005c151
cmp dword [r14 + 0x13c], 0
jne 0x18005c149
mov dword [r14 + 0x388], r15d
mov ecx, r15d
call fcn.18004edb0
test r12b, r12b
je 0x18005c174
movss xmm0, dword [rdi + 0x1b5c]
or dword [rdi + 0x1b20], 0x10
maxss xmm0, xmm8
movss dword [rdi + 0x1b5c], xmm0
jmp 0x18005c1e7
mov ecx, esi
mov eax, esi
or ecx, 4
and al, 0x1e
cmovne ecx, esi
mov esi, ecx
mov ecx, 0xffffffff
test sil, 4
je 0x18005c194
mov ecx, 8
jmp 0x18005c1ad
test sil, 2
je 0x18005c1a1
mov ecx, 4
jmp 0x18005c1ad
test sil, 8
mov eax, 0x14
cmovne ecx, eax
call fcn.18005cfc0
movss xmm4, dword [0x180004dc0]
lea rdx, [rbp + 0x7f]
xor r9d, r9d
movss dword [rbp + 0x7f], xmm4
xor r8d, r8d
movss dword [rbp + 0x83], xmm0
lea rcx, [rbp - 0x79]
movss dword [rbp - 0x79], xmm8
mov dword [rbp - 0x75], 0
call fcn.1800530e0
mov eax, dword [0x180005de0]
xor r8d, r8d
movsd xmm0, qword [0x180005dd8]
movabs r9, 0x29e4129e4129e413
mov dword [rbp - 0x71], eax
movzx eax, byte [0x180005de4]
mov byte [rbp - 0x6d], al
movsd qword [rbp - 0x79], xmm0
nop dword [rax]
nop dword [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, 0x37
movzx eax, r8b
sub al, cl
add al, 0x31
xor byte [rbp + r8 - 0x79], al
inc r8
cmp r8, 0xd
jb 0x18005c220
mov r9d, dword [rdi + 0x1be8]
lea r8, [rbp - 0x79]
mov edx, 0x10
lea rcx, [rbp - 0x41]
call fcn.180048cc0
lea rcx, [rbp - 0x41]
call fcn.1800478d0
mov rbx, rax
test rax, rax
je 0x18005c317
cmp byte [rax + 0x7f], 0
je 0x18005c317
mov rdx, rax
lea rcx, [rbp - 0x79]
call fcn.180045460
test sil, 1
je 0x18005c2a6
mov dword [rbx + 0x98], 0
mov rdx, rbx
lea rcx, [rbp - 0x69]
call fcn.180048b60
movss xmm0, dword [rsp + 0x48]
lea rax, [rsp + 0x48]
movss xmm1, dword [rsp + 0x54]
lea r9, [rbx + 0x98]
mov dword [rsp + 0x30], 1
lea r8, [rbp - 0x79]
mov qword [rsp + 0x28], rax
lea rdx, [rbp + 0x7f]
lea rax, [rbp - 0x69]
movss dword [rbp + 0x7f], xmm0
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x20], rax
movss dword [rbp + 0x83], xmm1
call fcn.180047560
lea r8, [rbp + 0x7f]
mov qword [rbp + 0x7f], 0
xor edx, edx
lea rcx, [rsp + 0x58]
call fcn.180053070
movss xmm0, dword [rdi + 0x15a0]
lea rdx, [rbp + 0x7f]
movss xmm1, dword [rdi + 0x1570]
mov ecx, 1
movss dword [rbp + 0x7f], xmm0
movss dword [rbp + 0x83], xmm1
call fcn.18004fb00
xor edx, edx
lea rcx, [rbp - 0x41]
mov r8d, 0x4000147
call fcn.180041c10
mov ecx, 1
movzx ebx, al
call fcn.18004f320
test bl, bl
jne 0x18005c36e
call fcn.1800471a0
jmp 0x18005c106
mov al, 1
jmp 0x18005c108