Function at 0x180030580
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rbp
lea rbp, [rax - 0x5f]
sub rsp, 0xf0
movss xmm0, dword [0x1800aef14]
comiss xmm0, dword [0x1800cfa78]
ja 0x180030c78
cmp byte [0x1800cfa7e], 0
mov qword [rax + 0x18], rsi
lea rsi, str.BaseMelee
mov qword [rax + 0x20], rdi
lea rdi, str.Jackhammer
mov qword [rax - 0x20], r14
mov r14d, 0x84222325
movaps xmmword [rax - 0x48], xmm7
xorps xmm7, xmm7
mov qword [rax + 0x10], rbx
mov qword [rax - 0x10], r12
mov qword [rax - 0x18], r13
mov qword [rax - 0x28], r15
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
je 0x1800308f3
cmp qword [0x1800acf10], 0
je 0x1800308f3
movss xmm0, dword [0x1800acf00]
ucomiss xmm0, xmm7
jp 0x18003063a
jne 0x18003063a
movss xmm0, dword [0x1800acf04]
ucomiss xmm0, xmm7
jp 0x18003063a
jne 0x18003063a
movss xmm0, dword [0x1800acf08]
ucomiss xmm0, xmm7
jp 0x18003063a
je 0x1800308f3
mov rcx, qword [0x1800ccf30]
call fcn.18000d690
mov r13, rax
test rax, rax
je 0x1800308f3
mov rdx, rdi
mov r15d, r14d
mov cl, 0x4a
nop word [rax + rax]
movsx ecx, cl
lea rdx, [rdx + 1]
xor ecx, r15d
imul r15d, ecx, 0x1b3
movzx ecx, byte [rdx]
test cl, cl
jne 0x180030660
mov rcx, rsi
mov ebx, r14d
mov al, 0x42
movsx eax, al
lea rcx, [rcx + 1]
xor eax, ebx
imul ebx, eax, 0x1b3
movzx eax, byte [rcx]
test al, al
jne 0x180030680
mov rax, qword [r13]
mov r12, qword [rax + 0x10]
mov rcx, r12
call fcn.18002f4a0
cmp eax, ebx
je 0x1800306bb
mov rcx, r12
call fcn.18002f4a0
cmp eax, r15d
jne 0x1800308f3
cmp byte [0x1800cfa7e], 0
je 0x1800308f3
mov edx, dword [0x1800ad078]
lea rcx, [rbp + 0x67]
call fcn.180014790
test al, al
je 0x1800308f3
movss xmm0, dword [0x1800acf00]
movss xmm1, dword [0x1800acf04]
mov rcx, qword [0x1800ccf30]
movss dword [rbp - 0x59], xmm0
movss xmm0, dword [0x1800acf08]
movss dword [rbp - 0x51], xmm0
movss dword [rbp - 0x55], xmm1
call fcn.180012630
lea rdx, [rbp - 0x29]
mov rcx, rax
call fcn.180016df0
movss xmm8, dword [0x1800acf00]
movss xmm6, dword [0x1800acf04]
movaps xmm1, xmm8
movss xmm9, dword [0x1800acf08]
movaps xmm2, xmm6
subss xmm2, dword [rax + 4]
subss xmm1, dword [rax]
movaps xmm0, xmm9
subss xmm0, dword [rax + 8]
mulss xmm2, xmm2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm2, xmm1
addss xmm2, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm2
ja 0x180030778
xorps xmm10, xmm10
sqrtss xmm10, xmm2
jmp 0x180030784
movaps xmm0, xmm2
call fcn.1800a99e0
movaps xmm10, xmm0
subss xmm6, dword [rbp - 0x55]
subss xmm8, dword [rbp - 0x59]
subss xmm9, dword [rbp - 0x51]
xorps xmm0, xmm0
mulss xmm6, xmm6
mulss xmm8, xmm8
mulss xmm9, xmm9
addss xmm6, xmm8
addss xmm6, xmm9
ucomiss xmm0, xmm6
ja 0x1800307bb
sqrtss xmm6, xmm6
jmp 0x1800307c6
movaps xmm0, xmm6
call fcn.1800a99e0
movaps xmm6, xmm0
addss xmm6, dword [0x1800aeca4]
call fcn.180016550
call fcn.180016700
call fcn.180016390
mov rcx, qword [0x1800ccf30]
call fcn.18001f7d0
lea rdx, [rbp - 0x49]
mov rcx, rax
call fcn.18000e590
movss xmm0, dword [rbp - 0x49]
ucomiss xmm0, xmm7
jp 0x18003081d
jne 0x18003081d
movss xmm0, dword [rbp - 0x45]
ucomiss xmm0, xmm7
jp 0x18003081d
jne 0x18003081d
movss xmm0, dword [rbp - 0x41]
ucomiss xmm0, xmm7
jp 0x18003081d
je 0x180030c15
movaps xmm3, xmm7
mov qword [rsp + 0x20], 0
mov r8d, 0x48a10000
lea rdx, [rbp - 0x59]
lea rcx, [rbp - 0x49]
call fcn.180018040
test al, al
je 0x1800308f3
mov rcx, qword [0x1800acec0]
call fcn.18002fef0
movss xmm1, dword [0x1800cfa78]
addss xmm1, dword [0x1800aef0c]
mulss xmm1, dword [0x1800aecb0]
mulss xmm0, xmm1
cvtss2sd xmm0, xmm0
addsd xmm0, qword [0x1800aef20]
cvtsd2ss xmm0, xmm0
comiss xmm0, xmm6
jbe 0x1800308f3
movss xmm0, dword [0x1800aef34]
comiss xmm0, xmm10
jb 0x1800308f3
mov rcx, qword [0x1800acf10]
movsd xmm6, qword [0x1800acf00]
mov ebx, dword [0x1800acf08]
call fcn.180012630
mov ecx, dword [rbp - 0x41]
lea r9, [rbp - 0x29]
movsd xmm0, qword [rbp - 0x49]
mov r8, qword [0x1800acf10]
mov rdx, qword [0x1800ccf30]
mov dword [rbp - 0x21], ecx
lea rcx, [rbp - 0x39]
mov byte [rsp + 0x38], 0
mov byte [rsp + 0x30], 1
mov qword [rsp + 0x28], rcx
mov rcx, r13
movsd qword [rbp - 0x39], xmm6
mov dword [rbp - 0x31], ebx
movsd qword [rbp - 0x29], xmm0
mov qword [rsp + 0x20], rax
call fcn.18001f890
cmp byte [0x1800cfa7d], 0
je 0x180030c15
cmp qword [0x1800acec0], 0
je 0x180030c15
movss xmm0, dword [0x1800aceb0]
ucomiss xmm0, xmm7
jp 0x18003093f
jne 0x18003093f
movss xmm0, dword [0x1800aceb4]
ucomiss xmm0, xmm7
jp 0x18003093f
jne 0x18003093f
movss xmm0, dword [0x1800aceb8]
ucomiss xmm0, xmm7
jp 0x18003093f
je 0x180030c15
mov rcx, qword [0x1800ccf30]
call fcn.18000d690
mov r15, rax
test rax, rax
je 0x180030c15
mov ebx, r14d
mov cl, 0x4a
nop dword [rax]
movsx ecx, cl
lea rdi, [rdi + 1]
xor ecx, ebx
imul ebx, ecx, 0x1b3
movzx ecx, byte [rdi]
test cl, cl
jne 0x180030960
mov al, 0x42
nop dword [rax + rax]
movsx eax, al
lea rsi, [rsi + 1]
xor eax, r14d
imul r14d, eax, 0x1b3
movzx eax, byte [rsi]
test al, al
jne 0x180030980
mov rax, qword [r15]
mov rdi, qword [rax + 0x10]
mov rcx, rdi
call fcn.18002f4a0
cmp eax, r14d
je 0x1800309bc
mov rcx, rdi
call fcn.18002f4a0
cmp eax, ebx
jne 0x180030c15
cmp byte [0x1800cfa7d], 0
je 0x180030c15
mov edx, dword [0x1800ad078]
lea rcx, [rbp + 0x67]
call fcn.180014790
test al, al
je 0x180030c15
movss xmm0, dword [0x1800aceb0]
movss xmm1, dword [0x1800aceb4]
mov rcx, qword [0x1800ccf30]
movss dword [rbp - 0x49], xmm0
movss xmm0, dword [0x1800aceb8]
movss dword [rbp - 0x41], xmm0
movss dword [rbp - 0x45], xmm1
call fcn.180012630
lea rdx, [rbp - 0x29]
mov rcx, rax
call fcn.180016df0
movss xmm8, dword [0x1800aceb0]
movss xmm6, dword [0x1800aceb4]
movaps xmm1, xmm8
movss xmm9, dword [0x1800aceb8]
movaps xmm2, xmm6
subss xmm2, dword [rax + 4]
subss xmm1, dword [rax]
movaps xmm0, xmm9
subss xmm0, dword [rax + 8]
mulss xmm2, xmm2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm2, xmm1
addss xmm2, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm2
ja 0x180030a79
xorps xmm10, xmm10
sqrtss xmm10, xmm2
jmp 0x180030a85
movaps xmm0, xmm2
call fcn.1800a99e0
movaps xmm10, xmm0
subss xmm6, dword [rbp - 0x45]
subss xmm8, dword [rbp - 0x49]
subss xmm9, dword [rbp - 0x41]
xorps xmm0, xmm0
mulss xmm6, xmm6
mulss xmm8, xmm8
mulss xmm9, xmm9
addss xmm6, xmm8
addss xmm6, xmm9
ucomiss xmm0, xmm6
ja 0x180030abc
sqrtss xmm6, xmm6
jmp 0x180030ac7
movaps xmm0, xmm6
call fcn.1800a99e0
movaps xmm6, xmm0
addss xmm6, dword [0x1800aeca4]
call fcn.180016550
call fcn.180016700
call fcn.180016390
mov rcx, qword [0x1800ccf30]
call fcn.18001f7d0
lea rdx, [rbp - 0x59]
mov rcx, rax
call fcn.18000e590
movss xmm0, dword [rbp - 0x59]
ucomiss xmm0, xmm7
jp 0x180030b1e
jne 0x180030b1e
movss xmm0, dword [rbp - 0x55]
ucomiss xmm0, xmm7
jp 0x180030b1e
jne 0x180030b1e
movss xmm0, dword [rbp - 0x51]
ucomiss xmm0, xmm7
jp 0x180030b1e
je 0x180030c15
movaps xmm3, xmm7
mov qword [rsp + 0x20], 0
mov r8d, 0x48a10000
lea rdx, [rbp - 0x49]
lea rcx, [rbp - 0x59]
call fcn.180018040
test al, al
je 0x180030c15
mov rcx, qword [0x1800acec0]
call fcn.18002fef0
movss xmm1, dword [0x1800cfa78]
addss xmm1, dword [0x1800aef0c]
mulss xmm1, dword [0x1800aecb0]
mulss xmm0, xmm1
cvtss2sd xmm0, xmm0
addsd xmm0, qword [0x1800aef20]
cvtsd2ss xmm0, xmm0
comiss xmm0, xmm6
jbe 0x180030c15
mov rcx, qword [0x1800acec0]
call fcn.18000da00
mov edx, 0x200
mov rcx, rax
call fcn.180015160
test al, al
je 0x180030c15
movss xmm0, dword [0x1800aef30]
comiss xmm0, xmm10
jb 0x180030c15
mov rcx, qword [0x1800acec0]
movsd xmm6, qword [0x1800aceb0]
mov ebx, dword [0x1800aceb8]
call fcn.180012630
mov ecx, dword [rbp - 0x51]
lea r9, [rbp - 0x39]
movsd xmm0, qword [rbp - 0x59]
mov r8, qword [0x1800acec0]
mov rdx, qword [0x1800ccf30]
mov dword [rbp - 0x31], ecx
lea rcx, [rbp - 0x29]
mov byte [rsp + 0x38], 0
mov byte [rsp + 0x30], 1
mov qword [rsp + 0x28], rcx
mov rcx, r15
movsd qword [rbp - 0x29], xmm6
mov dword [rbp - 0x21], ebx
movsd qword [rbp - 0x39], xmm0
mov qword [rsp + 0x20], rax
call fcn.18001f890
movaps xmm9, xmmword [rsp + 0x90]
movaps xmm8, xmmword [rsp + 0xa0]
mov rbx, qword [rsp + 0x108]
movaps xmm6, xmmword [rsp + 0xc0]
mov r15, qword [rsp + 0xd0]
mov r12, qword [rsp + 0xe8]
mov r13, qword [rsp + 0xe0]
movaps xmm10, xmmword [rsp + 0x80]
mov rdi, qword [rsp + 0x118]
mov rsi, qword [rsp + 0x110]
mov r14, qword [rsp + 0xd8]
movaps xmm7, xmmword [rsp + 0xb0]
add rsp, 0xf0
pop rbp
ret