Function at 0x180057710
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 [0x1800821d8]
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 [0x1800821d8]
mov rax, qword [rdx + 0x1a80]
mov byte [rax + 0x80], 1
mov r14, qword [rdx + 0x1a80]
cmp byte [r14 + 0x83], 0
jne 0x180057b46
mov rdx, rcx
xor r8d, r8d
mov rcx, r14
call fcn.180034d10
mov ebx, esi
mov r15d, eax
xorps xmm6, xmm6
and ebx, 0x20
je 0x1800577b3
xorps xmm7, xmm7
jmp 0x1800577bb
call fcn.180034c50
movaps xmm7, xmm0
movss xmm1, dword [0x180073458]
lea rcx, [rbp - 0x59]
mov r9b, 1
movss dword [rsp + 0x20], xmm1
xor r8d, r8d
mov rdx, r13
call fcn.180031a70
call fcn.1800316b0
mov r13d, esi
movaps xmm8, xmm0
and r13d, 0x40
je 0x1800577f1
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 0x180057851
addss xmm1, dword [rdi + 0x15b8]
jmp 0x180057854
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.180036e90
lea r8, [rsp + 0x48]
mov edx, r15d
lea rcx, [rbp - 0x51]
call fcn.180036bd0
test al, al
je 0x180057b46
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.180057dd0
mov ecx, r15d
mov byte [rsp + 0x41], al
call fcn.180036ba0
movss xmm10, dword [0x1800733ec]
xor ecx, ecx
cmp byte [rsp + 0x40], cl
movaps xmm1, xmm10
mov byte [rbp + 0x7f], al
setne cl
add ecx, 7
call fcn.180034af0
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.18003ce00
mov ecx, 0xf
test r13d, r13d
jne 0x180057975
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.180044cd0
test ebx, ebx
jne 0x180057a4d
cmp byte [rbp + 0x7f], bl
jne 0x18005798b
lea ecx, [rbx + 0x15]
cmp byte [rsp + 0x40], bl
je 0x180057990
mov ecx, 0x16
movaps xmm1, xmm10
call fcn.180034af0
movaps xmm1, xmm10
xor ecx, ecx
mov ebx, eax
call fcn.180034af0
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.180044cd0
movss xmm0, dword [rsp + 0x50]
movaps xmm1, xmm9
addss xmm1, xmm7
subss xmm1, dword [rdi + 0x15a0]
comiss xmm0, xmm1
jb 0x180057a4d
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.180048e80
movss xmm2, dword [rdi + 0x15a8]
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
call fcn.18003cca0
mov rax, qword [rbp + 0x6f]
movaps xmm10, xmmword [rsp + 0xb0]
test rax, rax
je 0x180057aea
test r13d, r13d
jne 0x180057aea
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.18003d1c0
movss xmm0, dword [rbp - 0x59]
comiss xmm0, xmm6
movaps xmm9, xmmword [rsp + 0xc0]
jbe 0x180057b30
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.18003d0a0
cmp byte [rsp + 0x41], 0
jne 0x180057b72
cmp dword [rdi + 0x1c08], r15d
je 0x180057b72
cmp byte [rbp + 0x7f], 0
jne 0x180057b91
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 0x180057b91
cmp dword [r14 + 0x13c], 0
jne 0x180057b89
mov dword [r14 + 0x388], r15d
mov ecx, r15d
call fcn.18003b710
test r12b, r12b
je 0x180057bb4
movss xmm0, dword [rdi + 0x1b5c]
or dword [rdi + 0x1b20], 0x10
maxss xmm0, xmm8
movss dword [rdi + 0x1b5c], xmm0
jmp 0x180057c27
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 0x180057bd4
mov ecx, 8
jmp 0x180057bed
test sil, 2
je 0x180057be1
mov ecx, 4
jmp 0x180057bed
test sil, 8
mov eax, 0x14
cmovne ecx, eax
call fcn.180058590
movss xmm4, dword [0x180073d38]
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.18003f830
mov eax, dword [0x1800789b8]
xor r8d, r8d
movsd xmm0, qword [0x1800789b0]
movabs r9, 0x47ae147ae147ae15
mov dword [rbp - 0x71], eax
movzx eax, byte [0x1800789bc]
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 0x180057c60
mov r9d, dword [rdi + 0x1be8]
lea r8, [rbp - 0x79]
mov edx, 0x10
lea rcx, [rbp - 0x41]
call fcn.180035660
lea rcx, [rbp - 0x41]
call fcn.1800343b0
mov rbx, rax
test rax, rax
je 0x180057d57
cmp byte [rax + 0x7f], 0
je 0x180057d57
mov rdx, rax
lea rcx, [rbp - 0x79]
call fcn.180031f40
test sil, 1
je 0x180057ce6
mov dword [rbx + 0x98], 0
mov rdx, rbx
lea rcx, [rbp - 0x69]
call fcn.1800354c0
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.180034040
lea r8, [rbp + 0x7f]
mov qword [rbp + 0x7f], 0
xor edx, edx
lea rcx, [rsp + 0x58]
call fcn.18003f7c0
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.18003c510
xor edx, edx
lea rcx, [rbp - 0x41]
mov r8d, 0x4000147
call fcn.18002e640
mov ecx, 1
movzx ebx, al
call fcn.18003bc80
test bl, bl
jne 0x180057dae
call fcn.180033c80
jmp 0x180057b46
mov al, 1
jmp 0x180057b48