Function at 0x18001ace0
Capabilities:
Encode data using xor

Disassembly:
push rbx
sub rsp, 0x20
mov r8, qword [rcx]
mov rbx, rcx
mov r9d, dword [rcx + 0x54]
mov rcx, qword [r8]
test rcx, rcx
je 0x18001b081
mov eax, dword [r8 + 0x10]
lea rdx, [r9 + 1]
cmp rdx, rax
jae 0x18001b081
mov eax, dword [r9 + rcx]
mov dword [rbx + 0x58], eax
cmp eax, 0x4550
je 0x18001ad81
test eax, eax
je 0x18001ad29
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
jmp 0x18001ad31
movss xmm0, dword [0x180074be8]
cmp qword [0x180080260], 0x10
lea r8, [0x180080248]
mov r9, qword [0x180080258]
cmovae r8, qword [0x180080248]
xor ecx, ecx
mov edx, ecx
test r9, r9
je 0x18001b0dc
nop dword [rax]
movzx eax, byte [rdx + r8]
inc rdx
add eax, ecx
imul ecx, eax, 0x401
mov eax, ecx
shr eax, 6
xor ecx, eax
cmp rdx, r9
jne 0x18001ad60
jmp 0x18001b0dc
mov rdx, qword [r8]
lea eax, [r9 + 4]
test rdx, rdx
je 0x18001b121
lea rcx, [rax + 1]
mov r10d, eax
mov eax, dword [r8 + 0x10]
cmp rcx, rax
jae 0x18001b121
movzx eax, word [r10 + rdx]
mov word [rbx + 0x5c], ax
lea eax, [r9 + 6]
mov r10, qword [r8]
test r10, r10
je 0x18001b121
lea rcx, [rax + 1]
mov edx, eax
mov eax, dword [r8 + 0x10]
cmp rcx, rax
jae 0x18001b121
movzx eax, word [rdx + r10]
mov word [rbx + 0x5e], ax
lea eax, [r9 + 8]
mov r10, qword [r8]
test r10, r10
je 0x18001b121
lea rcx, [rax + 1]
mov edx, eax
mov eax, dword [r8 + 0x10]
cmp rcx, rax
jae 0x18001b121
mov eax, dword [rdx + r10]
mov dword [rbx + 0x60], eax
lea eax, [r9 + 0xc]
mov r10, qword [r8]
test r10, r10
je 0x18001b121
lea rcx, [rax + 1]
mov edx, eax
mov eax, dword [r8 + 0x10]
cmp rcx, rax
jae 0x18001b121
mov eax, dword [rdx + r10]
mov dword [rbx + 0x64], eax
lea eax, [r9 + 0x10]
mov r10, qword [r8]
test r10, r10
je 0x18001b121
lea rcx, [rax + 1]
mov edx, eax
mov eax, dword [r8 + 0x10]
cmp rcx, rax
jae 0x18001b121
mov eax, dword [rdx + r10]
mov dword [rbx + 0x68], eax
lea eax, [r9 + 0x14]
mov r10, qword [r8]
test r10, r10
je 0x18001b121
lea rcx, [rax + 1]
mov edx, eax
mov eax, dword [r8 + 0x10]
cmp rcx, rax
jae 0x18001b121
movzx eax, word [rdx + r10]
mov word [rbx + 0x6c], ax
lea eax, [r9 + 0x16]
mov r9, qword [r8]
test r9, r9
je 0x18001b121
lea rcx, [rax + 1]
mov edx, eax
mov eax, dword [r8 + 0x10]
cmp rcx, rax
jae 0x18001b121
movzx eax, word [rdx + r9]
xorps xmm0, xmm0
mov word [rbx + 0x6e], ax
mov rcx, qword [rbx + 0x278]
mov eax, dword [rbx + 0x58]
cvtsi2ss xmm0, rax
addss xmm0, dword [rcx + 0x44]
movss dword [rcx + 0x44], xmm0
movzx eax, word [rbx + 0x5c]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, dword [rcx + 0x48]
movss dword [rcx + 0x48], xmm0
movzx eax, word [rbx + 0x5e]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, dword [rcx + 0x4c]
movss dword [rcx + 0x4c], xmm0
xorps xmm0, xmm0
mov eax, dword [rbx + 0x60]
cvtsi2ss xmm0, rax
addss xmm0, dword [rcx + 0x50]
movss dword [rcx + 0x50], xmm0
xorps xmm0, xmm0
mov eax, dword [rbx + 0x64]
cvtsi2ss xmm0, rax
addss xmm0, dword [rcx + 0x54]
movss dword [rcx + 0x54], xmm0
xorps xmm0, xmm0
mov eax, dword [rbx + 0x68]
cvtsi2ss xmm0, rax
addss xmm0, dword [rcx + 0x58]
movss dword [rcx + 0x58], xmm0
movzx eax, word [rbx + 0x6c]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, dword [rcx + 0x5c]
movss dword [rcx + 0x5c], xmm0
mov rcx, rbx
call fcn.180021ed0
test al, al
je 0x18001b121
mov rcx, qword [rbx]
mov eax, dword [rbx + 0x54]
add eax, 0x18
mov rdx, qword [rcx]
test rdx, rdx
je 0x18001afe7
mov ecx, dword [rcx + 0x10]
mov r8d, eax
inc rax
cmp rax, rcx
jae 0x18001afe7
movzx eax, word [r8 + rdx]
mov ecx, 0x10b
mov word [rbx + 0x270], ax
cmp ax, cx
jne 0x18001afb1
mov rcx, rbx
call fcn.18001b130
test al, al
je 0x18001b121
mov rcx, rbx
call fcn.180022840
test al, al
jne 0x18001afdf
add rsp, 0x20
pop rbx
ret
mov ecx, 0x20b
cmp ax, cx
jne 0x18001b121
mov rcx, rbx
call fcn.18001b7c0
test al, al
je 0x18001b121
mov rcx, rbx
call fcn.180022ba0
test al, al
je 0x18001b121
mov al, 1
add rsp, 0x20
pop rbx
ret
cmp qword [0x180080a80], 0x10
lea r8, [0x180080a68]
mov r9, qword [0x180080a78]
cmovae r8, qword [0x180080a68]
xor ecx, ecx
mov edx, ecx
test r9, r9
je 0x18001b02c
nop
movzx eax, byte [rdx + r8]
inc rdx
add eax, ecx
imul ecx, eax, 0x401
mov eax, ecx
shr eax, 6
xor ecx, eax
cmp rdx, r9
jne 0x18001b010
lea eax, [rcx + rcx*8]
mov ecx, eax
shr ecx, 0xb
xor ecx, eax
mov eax, 0x446f8657
imul r8d, ecx, 0x8001
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 7
imul eax, eax, 0xca
sub r8d, eax
mov rax, qword [rbx + 0x278]
add r8d, 0x36
movss xmm0, dword [rax + r8*4]
addss xmm0, dword [0x180074be8]
movss dword [rax + r8*4], xmm0
xor al, al
add rsp, 0x20
pop rbx
ret
test r9d, r9d
je 0x18001b090
xorps xmm0, xmm0
cvtsi2ss xmm0, r9
jmp 0x18001b098
movss xmm0, dword [0x180074be8]
cmp qword [0x180080c60], 0x10
lea r8, [0x180080c48]
mov r9, qword [0x180080c58]
cmovae r8, qword [0x180080c48]
xor ecx, ecx
mov edx, ecx
test r9, r9
je 0x18001b0dc
nop
movzx eax, byte [rdx + r8]
inc rdx
add eax, ecx
imul ecx, eax, 0x401
mov eax, ecx
shr eax, 6
xor ecx, eax
cmp rdx, r9
jne 0x18001b0c0
lea eax, [rcx + rcx*8]
mov ecx, eax
shr ecx, 0xb
xor ecx, eax
mov eax, 0x446f8657
imul r8d, ecx, 0x8001
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 7
imul eax, eax, 0xca
sub r8d, eax
mov rax, qword [rbx + 0x278]
add r8d, 0x36
addss xmm0, dword [rax + r8*4]
movss dword [rax + r8*4], xmm0
xor al, al
add rsp, 0x20
pop rbx
ret