Function at 0x180030870
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x78]
sub rsp, 0x150
mov rdi, qword [0x1800821d8]
movzx ebx, r9b
mov r12d, dword [rbp + 0xa0]
mov r14d, edx
movaps xmmword [rax - 0x38], xmm6
mov r13, qword [rdi + 0x1a80]
mov eax, dword [r13 + 0xc]
movss xmm3, dword [r13 + 0x270]
and eax, 4
movss xmm5, dword [r13 + 0x274]
or eax, 0x1000103
or r12d, eax
cmp qword [r13 + 0x1a0], 0
je 0x1800308e7
movss xmm3, dword [r13 + 0x250]
cvttss2si eax, dword [r8]
subss xmm3, dword [r13 + 0xd0]
subss xmm5, dword [r13 + 0xd4]
xorps xmm4, xmm4
movd xmm1, eax
cvttss2si eax, dword [r8 + 4]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
ucomiss xmm1, xmm4
cvtdq2ps xmm0, xmm0
jp 0x180030923
jne 0x180030923
mov eax, 1
jmp 0x180030925
xor eax, eax
ucomiss xmm0, xmm4
jp 0x180030934
jne 0x180030934
mov r15d, 2
jmp 0x180030937
xor r15d, r15d
movss xmm2, dword [0x180073d20]
or r15d, eax
comiss xmm4, xmm1
jb 0x180030953
addss xmm1, xmm3
comiss xmm1, xmm2
jae 0x180030953
movaps xmm1, xmm2
comiss xmm4, xmm0
jb 0x180030964
addss xmm0, xmm5
comiss xmm0, xmm2
jae 0x180030964
movaps xmm0, xmm2
or dword [rdi + 0x1b20], 2
movss dword [rdi + 0x1b40], xmm1
movss dword [rdi + 0x1b44], xmm0
mov dword [rdi + 0x1b28], 1
mov r9, qword [r13]
test rcx, rcx
je 0x180030a07
movzx eax, word [0x180073b30]
lea r8, [rsp + 0x30]
movsd xmm0, qword [0x180073b28]
mov edx, 0x100
movsd qword [rsp + 0x30], xmm0
xor byte [rsp + 0x31], 0x32
xor byte [rsp + 0x32], 0x33
xor byte [rsp + 0x33], 0x34
xor byte [rsp + 0x34], 0x35
xor byte [rsp + 0x35], 0x36
xor byte [rsp + 0x36], 0x37
xor byte [rsp + 0x37], 0x38
mov word [rsp + 0x38], ax
movzx eax, byte [0x180073b32]
xor byte [rsp + 0x38], 0x39
xor al, 0x3b
xor byte [rsp + 0x39], 0x3a
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], rcx
lea rcx, [rsp + 0x40]
mov byte [rsp + 0x3a], al
mov byte [rsp + 0x30], 0x25
call fcn.180035660
jmp 0x180030a80
cmp byte [0x180073b3f], 0
mov rax, qword [0x180073b38]
mov qword [rbp + 0x80], rax
je 0x180030a65
xor r8d, r8d
movabs r10, 0x4e5e0a72f0539783
nop dword [rax + rax]
mov rax, r10
mul r8
mov rax, r8
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
movsx eax, al
imul ecx, eax, 0x31
movzx eax, r8b
sub al, cl
add al, 0x31
xor byte [rbp + r8 + 0x80], al
inc r8
cmp r8, 8
jb 0x180030a30
lea r8, [rbp + 0x80]
mov dword [rsp + 0x20], r14d
mov edx, 0x100
lea rcx, [rsp + 0x40]
call fcn.180035660
movss xmm6, dword [rdi + 0x1594]
test bl, bl
jne 0x180030a96
mov dword [rdi + 0x1594], 0
mov r8d, r12d
lea rcx, [rsp + 0x40]
xor edx, edx
call fcn.18002e640
mov rbx, qword [rdi + 0x1a80]
movzx esi, al
movss dword [rdi + 0x1594], xmm6
cmp word [rbx + 0x8a], 1
mov dword [rbx + 0x50], r14d
mov byte [rbx + 0x96], r15b
jne 0x180030ada
movsd xmm0, qword [rbx + 0x10]
movsd qword [r13 + 0xd0], xmm0
cmp dword [rdi + 0x1c08], r14d
jne 0x180030b28
bt r12d, 0x17
jb 0x180030b28
cmp dword [rbx + 0x144], 0
jne 0x180030afc
cmp byte [rbx + 0x151], 0
je 0x180030b28
mov rcx, rbx
call fcn.1800345e0
xor edx, edx
mov rcx, rbx
call fcn.180037550
lea ecx, [r14 + 1]
mov rdx, rbx
call fcn.18003efc0
movzx eax, sil
mov dword [rdi + 0x1b00], 2
lea r11, [rsp + 0x150]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret