Function at 0x180087f50
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x78]
sub rsp, 0x150
movaps xmmword [rax - 0x38], xmm6
mov rax, qword [0x1800c3040]
xor rax, rsp
mov qword [rbp + 0x38], rax
mov rcx, qword [0x1800c4be0]
mov rdx, qword [rcx + 0x3ed0]
movss xmm1, dword [rdx + 0x254]
subss xmm1, dword [rdx + 0x104]
movss xmm0, dword [rdx + 0x250]
cmp qword [rdx + 0x1a8], 0
jne 0x180087fbf
cmp qword [rcx + 0x4b30], 0
je 0x180087fc7
movss xmm0, dword [rdx + 0x220]
subss xmm0, dword [rdx + 0x100]
mulss xmm0, dword [0x1800af958]
movss dword [rbp - 8], xmm0
movss dword [rbp - 4], xmm1
movdqa xmm0, xmmword [0x1800afcf0]
movdqu xmmword [rsp + 0x58], xmm0
mov byte [rsp + 0x68], 1
xor esi, esi
mov ecx, esi
nop dword [rax + rax]
lea eax, [rcx - 0x75]
xor byte [rsp + rcx + 0x58], al
inc rcx
cmp rcx, 0xf
jb 0x180088000
mov byte [rsp + 0x68], sil
xor r8d, r8d
lea rdx, [rbp - 8]
lea rcx, [rsp + 0x58]
call fcn.180041620
mov r12d, esi
mov rax, qword [0x1800c5520]
mov r8, qword [0x1800c5518]
sub rax, r8
sar rax, 3
mov r13, 0xffffffffffffffff
xorps xmm6, xmm6
test rax, rax
je 0x18008825b
mov rdi, rsi
mov qword [rbp - 8], rsi
nop dword [rax + rax]
cmp dword [0x1800c31bc], r12d
sete r14b
mov byte [rsp + 0x40], r14b
lea rdx, [rbp + 0x18]
mov rcx, qword [rdi + r8]
call fcn.180087c90
cmp qword [rax + 0x18], 0xf
jbe 0x180088087
mov rax, qword [rax]
mov r15d, dword [0x1800c5630]
test r15d, r15d
jne 0x180088097
mov bl, 1
jmp 0x180088103
lea r14, [0x1800a4066]
test rax, rax
cmovne r14, rax
mov edi, esi
mov rbx, qword [0x1800c5638]
nop
mov r8, qword [rbx]
mov r9, qword [rbx + 8]
cmp r8, r9
je 0x1800880e4
mov rcx, r14
cmp byte [r8], 0x2d
jne 0x1800880d6
inc r8
call fcn.180038b40
test rax, rax
je 0x1800880e4
xor bl, bl
jmp 0x1800880f9
call fcn.180038b40
test rax, rax
jne 0x18008821c
inc edi
add rbx, 0x10
cmp edi, r15d
jne 0x1800880b0
cmp dword [0x1800c5640], 0
sete bl
mov rdi, qword [rbp - 8]
movzx r14d, byte [rsp + 0x40]
lea rcx, [rbp + 0x18]
call fcn.18000fac0
test bl, bl
je 0x180088223
mov rax, qword [0x1800c5518]
lea rdx, [rbp - 0x28]
mov rcx, qword [rdi + rax]
call fcn.180087c90
nop
mov dword [rsp + 0x48], 0x1000278
mov rcx, rsi
nop dword [rax]
nop dword [rax + rax]
lea eax, [rcx + 0x58]
xor byte [rsp + rcx + 0x48], al
inc rcx
cmp rcx, 2
jb 0x180088140
mov byte [rsp + 0x4b], 0
lea rax, [rsp + 0x48]
mov r8, r13
nop dword [rax]
inc r8
cmp byte [rax + r8], 0
jne 0x180088160
lea rdx, [rsp + 0x48]
lea rcx, [rbp - 0x28]
call fcn.180014ee0
mov rbx, rax
mov r8, qword [0x1800c5518]
mov r8, qword [rdi + r8]
lea rdx, [rbp + 0x18]
call fcn.180089180
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0xf
jbe 0x18008819e
mov rax, qword [rax]
mov rdx, rax
mov rcx, rbx
call fcn.180014ee0
mov word [rsp + 0x50], 0x5d
mov byte [rsp + 0x52], 0
lea rcx, [rsp + 0x50]
mov r8, r13
nop dword [rax]
inc r8
cmp byte [rcx + r8], 0
jne 0x1800881c0
lea rdx, [rsp + 0x50]
mov rcx, rax
call fcn.180014ee0
nop
lea rcx, [rbp + 0x18]
call fcn.18000fac0
mov qword [rsp + 0x58], 0
lea rcx, [rbp - 0x28]
cmp qword [rbp - 0x10], 0xf
cmova rcx, qword [rbp - 0x28]
lea r9, [rsp + 0x58]
movzx edx, r14b
call fcn.18007a130
test al, al
je 0x180088211
mov dword [0x1800c31bc], r12d
lea rcx, [rbp - 0x28]
call fcn.18000fac0
jmp 0x18008822f
mov bl, 1
jmp 0x1800880f9
test r14b, r14b
je 0x18008822f
mov dword [0x1800c31bc], r13d
inc r12d
add rdi, 8
mov qword [rbp - 8], rdi
mov rcx, qword [0x1800c5520]
mov r8, qword [0x1800c5518]
sub rcx, r8
sar rcx, 3
movsxd rax, r12d
cmp rax, rcx
jb 0x180088060
call fcn.1800416d0
movss xmm1, dword [0x1800afb20]
movaps xmm0, xmm6
call fcn.180049d80
mov rax, qword [0x1800c4be0]
mov rdx, qword [rax + 0x3ed0]
movss xmm1, dword [rdx + 0x254]
subss xmm1, dword [rdx + 0x104]
movss xmm0, dword [rdx + 0x250]
cmp qword [rdx + 0x1a8], 0
jne 0x1800882aa
cmp qword [rax + 0x4b30], 0
je 0x1800882b2
movss xmm0, dword [rdx + 0x220]
subss xmm0, dword [rdx + 0x100]
movss dword [rsp + 0x58], xmm0
movss dword [rsp + 0x5c], xmm1
movdqa xmm0, xmmword [0x1800b03d0]
movdqu xmmword [rbp - 8], xmm0
mov word [rbp + 8], 0x100
mov rcx, rsi
nop dword [rax]
lea eax, [rcx + 0x26]
xor byte [rbp + rcx - 8], al
inc rcx
cmp rcx, 0x10
jb 0x1800882e0
mov byte [rbp + 9], 0
xor r8d, r8d
lea rdx, [rsp + 0x58]
lea rcx, [rbp - 8]
call fcn.180041620
mov rdx, qword [0x1800c4be0]
mov rcx, qword [rdx + 0x3ed0]
movss xmm1, dword [rcx + 0x250]
cmp qword [rcx + 0x1a8], 0
jne 0x18008832f
cmp qword [rdx + 0x4b30], 0
je 0x180088337
movss xmm1, dword [rcx + 0x220]
subss xmm1, dword [rcx + 0x100]
movdqa xmm0, xmmword [str._v____59]
movdqu xmmword [rbp - 0x28], xmm0
mov dword [rbp - 0x18], 0x8181c07
mov word [rbp - 0x14], 9
mov byte [rbp - 0x12], 1
mov rcx, rsi
lea eax, [rcx + 0x58]
xor byte [rbp + rcx - 0x28], al
inc rcx
cmp rcx, 0x15
jb 0x180088360
mov byte [rbp - 0x12], 0
ucomiss xmm1, xmm6
jp 0x18008837b
je 0x18008838a
or dword [rdx + 0x4758], 1
movss dword [rdx + 0x475c], xmm1
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], esi
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov r9d, 0x100
lea r8, [0x1800c5530]
xor edx, edx
lea rcx, [rbp - 0x28]
call fcn.1800713c0
test al, al
je 0x1800883d3
lea rcx, [0x1800c5530]
call fcn.1800398c0
mov rcx, qword [0x1800c4be0]
mov rdx, qword [rcx + 0x3ed0]
movss xmm0, dword [rdx + 0x250]
cmp qword [rdx + 0x1a8], 0
jne 0x1800883fd
cmp qword [rcx + 0x4b30], 0
je 0x180088405
movss xmm0, dword [rdx + 0x220]
subss xmm0, dword [rdx + 0x100]
movss dword [rsp + 0x58], xmm0
mov dword [rsp + 0x5c], 0x42000000
mov dword [rbp - 8], 0xfefef9d8
mov dword [rbp - 4], 0xf5feea
mov byte [rbp], 1
mov rcx, rsi
lea eax, [rcx - 0x75]
xor byte [rbp + rcx - 8], al
inc rcx
cmp rcx, 7
jb 0x180088430
mov byte [rbp], 0
lea rdx, [rsp + 0x58]
lea rcx, [rbp - 8]
call fcn.180069a60
test al, al
je 0x180088593
cmp dword [0x1800c31bc], 0xffffffff
je 0x180088593
mov ecx, 8
call fcn.18009ac60
mov rdi, rax
mov qword [rax], rsi
movsxd rdx, dword [0x1800c31bc]
mov rcx, qword [0x1800c5518]
mov rbx, qword [rcx + rdx*8]
movdqa xmm0, xmmword [0x1800b0ea0]
movdqu xmmword [rsp + 0x78], xmm0
movdqa xmm1, xmmword [0x1800b0b30]
movdqu xmmword [rbp - 0x78], xmm1
movdqa xmm0, xmmword [0x1800b09d0]
movdqu xmmword [rbp - 0x68], xmm0
mov dword [rbp - 0x58], 0xcc9385ac
mov dword [rbp - 0x54], 0x84918f
mov byte [rbp - 0x50], 1
mov rcx, rsi
nop word [rax + rax]
lea eax, [rcx - 0x51]
xor byte [rsp + rcx + 0x78], al
inc rcx
cmp rcx, 0x37
jb 0x1800884d0
mov byte [rbp - 0x50], 0
xorps xmm0, xmm0
movups xmmword [rbp - 0x28], xmm0
mov qword [rbp - 0x18], rsi
mov qword [rbp - 0x10], rsi
lea rax, [rsp + 0x78]
mov r8, r13
nop dword [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x180088500
lea rdx, [rsp + 0x78]
lea rcx, [rbp - 0x28]
call fcn.18000fe70
nop
lea rdx, [rbp - 0x28]
lea rcx, [rbp - 0x48]
call fcn.180082a60
mov r8, rax
lea rdx, [rbp + 0x18]
call fcn.180011390
nop
lea rcx, [rbp - 0x28]
call fcn.18000fac0
mov qword [rdi], rbx
lea rdx, [rbp + 0x18]
cmp qword [rbp + 0x30], 0xf
cmova rdx, qword [rbp + 0x18]
xor r9d, r9d
mov r8b, 1
mov rcx, rdi
call fcn.180080940
test al, al
je 0x18008858a
lea rdx, [rsp + 0x58]
mov rcx, rbx
call fcn.180087c90
nop
mov rdx, rax
lea rcx, [0x180a4f1b0]
call fcn.1800894c0
mov qword [rax], rbx
lea rcx, [rsp + 0x58]
call fcn.18000fac0
nop
lea rcx, [rbp + 0x18]
call fcn.18000fac0
mov rcx, qword [0x1800c4be0]
mov r8, qword [rcx + 0x3ed0]
cmp byte [rcx + 0x48ef], 0
je 0x1800885df
cmp byte [rcx + 0x48ee], 0
jne 0x1800885df
test byte [rcx + 0x4770], 4
jne 0x180088704
mov eax, dword [rcx + 0x48b8]
cmp eax, dword [rcx + 0x476c]
jne 0x180088704
test eax, eax
je 0x180088704
jmp 0x1800886ac
mov eax, dword [rcx + 0x4774]
test al, 1
je 0x180088704
cmp qword [rcx + 0x3ed8], r8
je 0x1800885fe
test al, al
jns 0x180088704
mov eax, dword [rcx + 0x3f30]
test eax, eax
je 0x180088623
cmp eax, dword [rcx + 0x476c]
je 0x180088623
cmp byte [rcx + 0x3f3d], 0
jne 0x180088623
cmp eax, dword [r8 + 0x7c]
jne 0x180088704
mov rdx, qword [rcx + 0x48b0]
test rdx, rdx
je 0x18008868d
mov rdx, qword [rdx + 0x378]
test rdx, rdx
je 0x18008868d
cmp byte [rdx + 0xb7], 0
je 0x18008868d
mov rax, qword [r8 + 0x378]
cmp rdx, rax
je 0x18008868d
mov r9d, dword [rdx + 0x14]
bt r9d, 0x1b
jb 0x180088662
bt r9d, 0x1a
jae 0x18008868d
cmp qword [rax + 0x378], rdx
je 0x18008868d
nop dword [rax + rax]
cmp rax, rdx
je 0x18008868d
mov rax, qword [rax + 0x370]
test rax, rax
jne 0x180088670
test dword [rcx + 0x4770], 0x100
je 0x180088704
test byte [rcx + 0x4770], 4
jne 0x180088704
mov eax, dword [r8 + 0x7c]
cmp dword [rcx + 0x476c], eax
jne 0x1800886ac
cmp byte [r8 + 0xb8], 0
jne 0x180088704
movdqa xmm0, xmmword [0x1800afe60]
movdqu xmmword [rbp - 0x28], xmm0
mov dword [rbp - 0x18], 0xe091b1d
mov dword [rbp - 0x14], 0x11b1f4c
mov dword [rbp - 0x10], 0x161f1804
mov word [rbp - 0xc], 0x5a
mov byte [rbp - 0xa], 1
mov rcx, rsi
nop dword [rax + rax]
lea eax, [rcx + 0x58]
xor byte [rbp + rcx - 0x28], al
inc rcx
cmp rcx, 0x1d
jb 0x1800886e0
mov byte [rbp - 0xa], 0
lea rcx, [rbp - 0x28]
call fcn.18004ad70
mov rcx, qword [0x1800c4be0]
mov rdx, qword [rcx + 0x3ed0]
movss xmm0, dword [rdx + 0x250]
cmp qword [rdx + 0x1a8], 0
jne 0x180088727
cmp qword [rcx + 0x4b30], 0
je 0x18008872f
movss xmm0, dword [rdx + 0x220]
subss xmm0, dword [rdx + 0x100]
movss dword [rsp + 0x58], xmm0
mov dword [rsp + 0x5c], 0x42000000
mov dword [rsp + 0x48], 0xfbfee9d9
mov dword [rsp + 0x4c], 0x100f5e2
mov rcx, rsi
nop dword [rax + rax]
lea eax, [rcx - 0x75]
xor byte [rsp + rcx + 0x48], al
inc rcx
cmp rcx, 6
jb 0x180088760
mov byte [rsp + 0x4f], 0
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0x48]
call fcn.180069a60
test al, al
je 0x1800888b8
cmp dword [0x1800c31bc], 0xffffffff
je 0x1800888b8
mov ecx, 8
call fcn.18009ac60
mov rbx, rax
mov qword [rax], rsi
movsxd rdx, dword [0x1800c31bc]
mov rcx, qword [0x1800c5518]
mov r15, qword [rcx + rdx*8]
xor eax, eax
mov word [rsp + 0x40], ax
xorps xmm0, xmm0
movups xmmword [rbp - 8], xmm0
mov qword [rbp + 8], rsi
mov qword [rbp + 0x10], rsi
lea rax, [rsp + 0x40]
inc r13
cmp byte [rax + r13], 0
jne 0x1800887d6
mov r8, r13
lea rdx, [rsp + 0x40]
lea rcx, [rbp - 8]
call fcn.18000fe70
nop
mov qword [rbx], r15
lea rdx, [rbp - 8]
cmp qword [rbp + 0x10], 0xf
cmova rdx, qword [rbp - 8]
xor r9d, r9d
mov r8b, 1
mov rcx, rbx
call fcn.180080940
test al, al
je 0x1800888af
lea rdx, [rbp - 0x48]
mov rcx, r15
call fcn.180087c90
mov r14, rax
mov r8, rax
lea rdx, [rbp - 0x28]
lea rcx, [0x180a4f1b0]
call fcn.1800898e0
mov rdi, qword [0x180a4f1b0]
mov rbx, qword [rbp - 0x18]
cmp byte [rbx + 0x19], 0
jne 0x18008885c
lea r8, [rbx + 0x20]
mov rdx, r14
call fcn.180010420
test al, al
je 0x18008885f
mov rbx, rdi
cmp rbx, rdi
setne bl
lea rcx, [rbp - 0x48]
call fcn.18000fac0
test bl, bl
je 0x1800888af
lea rdx, [rbp - 0x48]
mov rcx, r15
call fcn.180087c90
mov r8, rax
lea rdx, [rsp + 0x58]
lea rcx, [0x180a4f1b0]
call fcn.180089740
mov r8, qword [rax + 8]
mov rdx, qword [rax]
lea rcx, [0x180a4f1b0]
call fcn.1800895b0
lea rcx, [rbp - 0x48]
call fcn.18000fac0
nop
lea rcx, [rbp - 8]
call fcn.18000fac0
mov rcx, qword [0x1800c4be0]
mov r8, qword [rcx + 0x3ed0]
cmp byte [rcx + 0x48ef], 0
je 0x180088904
cmp byte [rcx + 0x48ee], 0
jne 0x180088904
test byte [rcx + 0x4770], 4
jne 0x180088a1d
mov eax, dword [rcx + 0x48b8]
cmp eax, dword [rcx + 0x476c]
jne 0x180088a1d
test eax, eax
je 0x180088a1d
jmp 0x1800889cc
mov eax, dword [rcx + 0x4774]
test al, 1
je 0x180088a1d
cmp qword [rcx + 0x3ed8], r8
je 0x180088923
test al, al
jns 0x180088a1d
mov eax, dword [rcx + 0x3f30]
test eax, eax
je 0x180088948
cmp eax, dword [rcx + 0x476c]
je 0x180088948
cmp byte [rcx + 0x3f3d], 0
jne 0x180088948
cmp eax, dword [r8 + 0x7c]
jne 0x180088a1d
mov rdx, qword [rcx + 0x48b0]
test rdx, rdx
je 0x1800889ad
mov rdx, qword [rdx + 0x378]
test rdx, rdx
je 0x1800889ad
cmp byte [rdx + 0xb7], 0
je 0x1800889ad
mov rax, qword [r8 + 0x378]
cmp rdx, rax
je 0x1800889ad
mov r9d, dword [rdx + 0x14]
bt r9d, 0x1b
jb 0x180088987
bt r9d, 0x1a
jae 0x1800889ad
cmp qword [rax + 0x378], rdx
je 0x1800889ad
cmp rax, rdx
je 0x1800889ad
mov rax, qword [rax + 0x370]
test rax, rax
jne 0x180088990
test dword [rcx + 0x4770], 0x100
je 0x180088a1d
test byte [rcx + 0x4770], 4
jne 0x180088a1d
mov eax, dword [r8 + 0x7c]
cmp dword [rcx + 0x476c], eax
jne 0x1800889cc
cmp byte [r8 + 0xb8], 0
jne 0x180088a1d
movdqa xmm0, xmmword [0x1800b0ff0]
movdqu xmmword [rbp - 0x28], xmm0
mov dword [rbp - 0x18], 0xbef8ffe9
mov dword [rbp - 0x14], 0xd6cfd5ed
mov dword [rbp - 0x10], 0x88c0c9ca
mov word [rbp - 0xc], 0x100
nop dword [rax]
nop dword [rax + rax]
lea eax, [rsi - 0x75]
xor byte [rbp + rsi - 0x28], al
inc rsi
cmp rsi, 0x1c
jb 0x180088a00
mov byte [rbp - 0xb], 0
lea rcx, [rbp - 0x28]
call fcn.18004ad70
call fcn.1800416d0
mov rcx, qword [rbp + 0x38]
xor rcx, rsp
call fcn.18009ab20
lea r11, [rsp + 0x150]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret