Function at 0x180056410
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 [0x1800801d0]
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 [0x1800801d0]
mov rax, qword [rdx + 0x1a80]
mov byte [rax + 0x80], 1
mov r14, qword [rdx + 0x1a80]
cmp byte [r14 + 0x83], 0
jne 0x180056846
mov rdx, rcx
xor r8d, r8d
mov rcx, r14
call fcn.180033a10
mov ebx, esi
mov r15d, eax
xorps xmm6, xmm6
and ebx, 0x20
je 0x1800564b3
xorps xmm7, xmm7
jmp 0x1800564bb
call fcn.180033950
movaps xmm7, xmm0
movss xmm1, dword [0x180071428]
lea rcx, [rbp - 0x59]
mov r9b, 1
movss dword [rsp + 0x20], xmm1
xor r8d, r8d
mov rdx, r13
call fcn.180030770
call fcn.1800303b0
mov r13d, esi
movaps xmm8, xmm0
and r13d, 0x40
je 0x1800564f1
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 0x180056551
addss xmm1, dword [rdi + 0x15b8]
jmp 0x180056554
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.180035b90
lea r8, [rsp + 0x48]
mov edx, r15d
lea rcx, [rbp - 0x51]
call fcn.1800358d0
test al, al
je 0x180056846
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.180056ad0
mov ecx, r15d
mov byte [rsp + 0x41], al
call fcn.1800358a0
movss xmm10, dword [0x1800713bc]
xor ecx, ecx
cmp byte [rsp + 0x40], cl
movaps xmm1, xmm10
mov byte [rbp + 0x7f], al
setne cl
add ecx, 7
call fcn.1800337f0
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.18003bb00
mov ecx, 0xf
test r13d, r13d
jne 0x180056675
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.1800439d0
test ebx, ebx
jne 0x18005674d
cmp byte [rbp + 0x7f], bl
jne 0x18005668b
lea ecx, [rbx + 0x15]
cmp byte [rsp + 0x40], bl
je 0x180056690
mov ecx, 0x16
movaps xmm1, xmm10
call fcn.1800337f0
movaps xmm1, xmm10
xor ecx, ecx
mov ebx, eax
call fcn.1800337f0
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.1800439d0
movss xmm0, dword [rsp + 0x50]
movaps xmm1, xmm9
addss xmm1, xmm7
subss xmm1, dword [rdi + 0x15a0]
comiss xmm0, xmm1
jb 0x18005674d
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.180047b80
movss xmm2, dword [rdi + 0x15a8]
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
call fcn.18003b9a0
mov rax, qword [rbp + 0x6f]
movaps xmm10, xmmword [rsp + 0xb0]
test rax, rax
je 0x1800567ea
test r13d, r13d
jne 0x1800567ea
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.18003bec0
movss xmm0, dword [rbp - 0x59]
comiss xmm0, xmm6
movaps xmm9, xmmword [rsp + 0xc0]
jbe 0x180056830
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.18003bda0
cmp byte [rsp + 0x41], 0
jne 0x180056872
cmp dword [rdi + 0x1c08], r15d
je 0x180056872
cmp byte [rbp + 0x7f], 0
jne 0x180056891
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 0x180056891
cmp dword [r14 + 0x13c], 0
jne 0x180056889
mov dword [r14 + 0x388], r15d
mov ecx, r15d
call fcn.18003a410
test r12b, r12b
je 0x1800568b4
movss xmm0, dword [rdi + 0x1b5c]
or dword [rdi + 0x1b20], 0x10
maxss xmm0, xmm8
movss dword [rdi + 0x1b5c], xmm0
jmp 0x180056927
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 0x1800568d4
mov ecx, 8
jmp 0x1800568ed
test sil, 2
je 0x1800568e1
mov ecx, 4
jmp 0x1800568ed
test sil, 8
mov eax, 0x14
cmovne ecx, eax
call fcn.180057290
movss xmm4, dword [0x180071d08]
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.18003e530
mov eax, dword [0x180076988]
xor r8d, r8d
movsd xmm0, qword [0x180076980]
movabs r9, 0x47ae147ae147ae15
mov dword [rbp - 0x71], eax
movzx eax, byte [0x18007698c]
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, 0x32
movzx eax, r8b
sub al, cl
add al, 0x32
xor byte [rbp + r8 - 0x79], al
inc r8
cmp r8, 0xd
jb 0x180056960
mov r9d, dword [rdi + 0x1be8]
lea r8, [rbp - 0x79]
mov edx, 0x10
lea rcx, [rbp - 0x41]
call fcn.180034360
lea rcx, [rbp - 0x41]
call fcn.1800330b0
mov rbx, rax
test rax, rax
je 0x180056a57
cmp byte [rax + 0x7f], 0
je 0x180056a57
mov rdx, rax
lea rcx, [rbp - 0x79]
call fcn.180030c40
test sil, 1
je 0x1800569e6
mov dword [rbx + 0x98], 0
mov rdx, rbx
lea rcx, [rbp - 0x69]
call fcn.1800341c0
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.180032d40
lea r8, [rbp + 0x7f]
mov qword [rbp + 0x7f], 0
xor edx, edx
lea rcx, [rsp + 0x58]
call fcn.18003e4c0
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.18003b210
xor edx, edx
lea rcx, [rbp - 0x41]
mov r8d, 0x4000147
call fcn.18002d340
mov ecx, 1
movzx ebx, al
call fcn.18003a980
test bl, bl
jne 0x180056aae
call fcn.180032980
jmp 0x180056846
mov al, 1
jmp 0x180056848