Function at 0x140047550
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
mov qword [r11 + 0x18], rbx
push rbp
push rdi
push r14
lea rbp, [r11 - 0x5f]
sub rsp, 0xa0
mov rbx, qword [0x14024ad10]
mov r14, rdx
movsxd r9, dword [rbx + 0x4090]
cmp dword [rbx + 0x4080], r9d
jle 0x140047910
mov rax, qword [rbx + 0x4088]
lea r8, [r9 + r9*2]
add r8, r8
cmp dword [rax + r8*8], ecx
jne 0x140047910
movss xmm3, dword [rdx + 8]
xor edi, edi
mov eax, dword [rbx + 0x3fb0]
mov qword [r11 + 8], rsi
mov qword [r11 + 0x10], r15
movaps xmmword [r11 - 0x28], xmm6
movaps xmmword [r11 - 0x38], xmm7
subss xmm3, dword [rdx]
test al, 0x10
je 0x1400475d9
movss xmm0, dword [rbx + 0x3fec]
maxss xmm0, xmm3
movss dword [rbx + 0x3fec], xmm0
jmp 0x140047651
movss xmm0, dword [rbx + 0x3848]
or eax, 0x10
movss xmm1, dword [rbx + 0x3804]
movaps xmm2, xmm0
addss xmm2, dword [rbx + 0x3c18]
addss xmm1, xmm1
mov dword [rbp - 0xd], edi
mov dword [rbx + 0x3fb0], eax
mov qword [rbx + 0x4000], rdi
mov qword [rbx + 0x4008], rdi
mulss xmm2, dword [0x1400b52f4]
subss xmm2, xmm0
movss xmm0, dword [0x1400b53b8]
addss xmm2, xmm1
movups xmm1, xmmword [rbp - 0x11]
movss xmm1, xmm3
shufps xmm1, xmm1, 0xd2
movss xmm1, xmm0
shufps xmm1, xmm1, 0x27
movss xmm1, xmm2
shufps xmm1, xmm1, 0x39
movups xmmword [rbp - 0x11], xmm1
movups xmmword [rbx + 0x3fec], xmm1
xor eax, eax
mov dword [rbp - 0x11], 0x8254647
mov byte [rbp - 5], al
mov edx, edi
mov dword [rbp - 0xd], 0x34050b05
mov dword [rbp - 9], 0xb5c5d49
nop dword [rax]
movsxd rcx, edx
lea eax, [rdx + 0x64]
inc edx
xor byte [rbp + rcx - 0x11], al
cmp edx, 0xc
jb 0x140047670
lea r8, [rbp - 0x11]
mov byte [rbp - 5], dil
mov edx, 0x10
lea rcx, [rbp - 1]
call fcn.140019f50
movzx r9d, byte [rbp - 1]
lea r8, [rbp]
lea r15, [0x140000000]
mov r10d, 0xffffffff
mov ecx, r10d
test r9b, r9b
je 0x1400476e9
cmp r9b, 0x23
jne 0x1400476c8
cmp byte [r8], r9b
jne 0x1400476c8
cmp byte [r8 + 1], r9b
cmove ecx, r10d
movzx edx, cl
movzx eax, r9b
movzx r9d, byte [r8]
xor rdx, rax
shr ecx, 8
inc r8
xor ecx, dword [r15 + rdx*4 + 0xb31c0]
test r9b, r9b
jne 0x1400476b5
not ecx
call fcn.1400213a0
mov rsi, rax
test rax, rax
je 0x1400477c1
cmp byte [rax + 0x97], dil
je 0x1400477c1
lea r8, [rbp + 0x7f]
mov qword [rbp + 0x7f], rdi
lea rdx, [rbp - 0x11]
mov rcx, rax
call fcn.140021bb0
mov rdx, rcx
lea r8, [rbp + 0x7f]
lea rcx, [rbp - 0x19]
call fcn.140021cc0
lea r8, [rbp - 0x19]
mov rdx, rsi
lea rcx, [rbp - 0x11]
call fcn.140021990
lea r9, [rsi + 0xb4]
lea rcx, [rbp + 0xf]
mov dword [r9], 3
call fcn.1400291b0
movss xmm0, dword [r14]
lea rax, [rbp + 0xf]
movss xmm1, dword [r14 + 0xc]
lea r8, [rbp - 0x11]
mov dword [rsp + 0x30], 1
lea rdx, [rbp + 0x7f]
mov qword [rsp + 0x28], r14
lea rcx, [rbp - 0x19]
movss dword [rbp + 0x7f], xmm0
movss dword [rbp + 0x83], xmm1
mov qword [rsp + 0x20], rax
call fcn.140028e10
mov rsi, qword [0x14024ad10]
movsd xmm0, qword [rbp - 0x19]
or dword [rsi + 0x3fb0], 1
movsd qword [rsi + 0x3fc0], xmm0
mov qword [rsi + 0x3fc8], rdi
mov dword [rsi + 0x3fb4], 1
jmp 0x1400477c8
mov rsi, qword [0x14024ad10]
movss xmm1, dword [rsi + 0x3800]
lea rcx, [rsi + 0x4030]
movss xmm0, dword [rsi + 0x3804]
lea rdx, [rbp - 0x11]
movss xmm6, dword [rbx + 0x3834]
movss xmm7, dword [rbx + 0x3804]
movss dword [rbp - 0xd], xmm1
movss dword [rbp - 9], xmm0
mov dword [rbp - 0x11], 2
call fcn.14002ebd0
xor edx, edx
movss dword [rsi + 0x3800], xmm6
mov r8d, 0x4000147
movss dword [rsi + 0x3804], xmm7
lea rcx, [rbp - 1]
call fcn.140023bd0
mov rbx, qword [0x14024ad10]
movzx r10d, al
movaps xmm7, xmmword [rsp + 0x80]
movaps xmm6, xmmword [rsp + 0x90]
mov rsi, qword [rsp + 0xc0]
movsxd rcx, dword [rbx + 0x4030]
mov r8, qword [rbx + 0x4038]
lea rdx, [rcx + rcx*2]
movsxd rcx, dword [r8 + rdx*4 - 0xc]
lea r9, [rcx + rcx*2]
cmp dword [r15 + r9*4 + 0xb3020], 8
mov ecx, dword [r15 + r9*4 + 0xb3028]
jne 0x1400478b3
mov eax, dword [r15 + r9*4 + 0xb3024]
cmp eax, 1
jne 0x140047896
mov eax, dword [r8 + rdx*4 - 8]
mov dword [rcx + rbx + 0x37f8], eax
jmp 0x1400478b3
cmp eax, 2
jne 0x1400478b3
mov eax, dword [r8 + rdx*4 - 8]
mov dword [rcx + rbx + 0x37f8], eax
mov eax, dword [r8 + rdx*4 - 4]
mov dword [rcx + rbx + 0x37fc], eax
dec dword [rbx + 0x4030]
mov r15, qword [rsp + 0xc8]
test r10b, r10b
jne 0x14004790c
mov rax, qword [rbx + 0x3ea8]
cmp qword [rbx + 0x40b8], rax
jne 0x1400478ee
cmp byte [rbx + 0x4115], dil
je 0x1400478ee
cmp dword [rbx + 0x40f4], edi
jne 0x1400478ee
or dword [rbx + 0x4118], 2
test dword [rax + 0xc], 0x1000000
je 0x1400478fe
mov byte [rbx + 0x3e36], 1
call fcn.140025f30
mov byte [rbx + 0x3e36], dil
jmp 0x140047918
mov al, 1
jmp 0x14004791a
xor edi, edi
mov dword [rbx + 0x3fb0], edi
xor al, al
mov rbx, qword [rsp + 0xd0]
add rsp, 0xa0
pop r14
pop rdi
pop rbp
ret