Function at 0x1800855e0
Capabilities:
Contain obfuscated stackstrings
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r12
push rbp
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
mov rbx, qword [0x1800cdb78]
xor edi, edi
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x38], xmm7
movaps xmmword [rax - 0x48], xmm8
mov esi, dword [rbx + 0x5bc8]
lea r12d, [rdi + 1]
sub esi, r12d
js 0x180085685
movsxd r14, esi
shl r14, 5
mov r15, r14
mov rax, qword [rbx + 0x5bd0]
cmp dword [r14 + rax + 4], 7
jne 0x180085678
movsxd r8, dword [rbx + 0x5bc8]
mov rcx, rax
mov rdx, r15
sub rdx, rax
add rdx, rax
sar rdx, 5
sub r8, rdx
mov rax, rdx
shl rax, 5
add rcx, rax
shl r8, 5
sub r8, 0x20
lea rdx, [rcx + 0x20]
call fcn.1800c16a0
dec dword [rbx + 0x5bc8]
sub r15, 0x20
sub r14, 0x20
sub esi, r12d
jns 0x18008562e
xor edx, edx
mov rcx, rbx
call fcn.18007cedc
mov rax, qword [0x1800cdb78]
cmp byte [rax + 0x7e], dil
je 0x1800856a6
test byte [rax + 0xc], 2
jne 0x1800856a6
mov byte [rax + 0x7e], dil
call fcn.18008bd38
movss xmm0, dword [rbx + 0x18]
lea rsi, [rbx + 0x5b50]
add dword [rbx + 0x3e30], r12d
cvtps2pd xmm0, xmm0
mov byte [rbx + 0x3e3c], r12b
mov word [rbx + 0x5b3a], di
mov dword [rbx + 0x3ea0], edi
addsd xmm0, qword [rbx + 0x3e28]
movsd qword [rbx + 0x3e28], xmm0
cmp dword [rsi + 4], edi
jge 0x180085704
mov eax, dword [rsi + 4]
mov rcx, rsi
cdq
sub eax, edx
mov edx, edi
sar eax, 1
add eax, dword [rsi + 4]
test eax, eax
cmovg edx, eax
call fcn.18008d4f4
movss xmm6, dword [0x180006028]
xorps xmm7, xmm7
movss xmm8, dword [0x180005f00]
mov dword [rsi], edi
movsxd rax, dword [rbx + 0x5db8]
movss xmm1, dword [rbx + 0x18]
movaps xmm0, xmm1
subss xmm0, dword [rbx + rax*4 + 0x5cc8]
addss xmm0, dword [rbx + 0x5dc0]
movss dword [rbx + 0x5dc0], xmm0
movss dword [rbx + rax*4 + 0x5cc8], xmm1
mov eax, 0x88888889
mov ecx, dword [rbx + 0x5db8]
movss xmm2, dword [rbx + 0x5dc0]
add ecx, r12d
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x3c
sub ecx, eax
mov eax, dword [rbx + 0x5dbc]
add eax, r12d
mov dword [rbx + 0x5db8], ecx
mov ecx, 0x3c
cmp eax, ecx
cmovl ecx, eax
comiss xmm2, xmm7
mov dword [rbx + 0x5dbc], ecx
jbe 0x1800857ad
movd xmm0, ecx
movaps xmm1, xmm8
cvtdq2ps xmm0, xmm0
divss xmm2, xmm0
divss xmm1, xmm2
jmp 0x1800857b0
movaps xmm1, xmm6
movss dword [rbx + 0xe0], xmm1
call fcn.18008bdb4
mov rax, qword [rbx + 0x58]
mov byte [rax + 0x18], r12b
mov rax, qword [0x1800cdb78]
mov rcx, qword [rax + 0x68]
test rcx, rcx
jne 0x1800857e0
mov rax, qword [rax + 0x58]
mov rcx, qword [rax + 0x60]
mov rcx, qword [rcx]
call fcn.18008915c
mov eax, dword [rbx + 0x4880]
movaps xmm5, xmm6
movss xmm0, dword [0x180008390]
movaps xmm4, xmm6
movaps xmm3, xmm0
test eax, eax
jle 0x18008584f
mov rcx, qword [rbx + 0x4888]
mov edx, eax
mov rax, qword [rcx]
comiss xmm5, dword [rax + 4]
movss xmm1, dword [rax + 4]
movss xmm2, dword [rax + 8]
addss xmm1, dword [rax + 0xc]
addss xmm2, dword [rax + 0x10]
jbe 0x18008582b
movss xmm5, dword [rax + 4]
comiss xmm4, dword [rax + 8]
jbe 0x180085836
movss xmm4, dword [rax + 8]
comiss xmm1, xmm0
jbe 0x18008583e
movaps xmm0, xmm1
comiss xmm2, xmm3
jbe 0x180085846
movaps xmm3, xmm2
add rcx, 8
sub rdx, r12
jne 0x180085809
movss dword [rbx + 0x3c34], xmm5
lea rcx, [rbx + 0x3c18]
movss dword [rbx + 0x3c38], xmm4
movss dword [rbx + 0x3c3c], xmm0
movss dword [rbx + 0x3c40], xmm3
mov eax, dword [rbx + 0x38a0]
movss xmm1, dword [rbx + 0x38a4]
mov dword [rbx + 0x3c2c], eax
call fcn.180095b8c
mov r8d, edi
mov dword [rbx + 0x3c44], edi
cmp byte [rbx + 0x389c], dil
je 0x1800858ab
mov dword [rbx + 0x3c44], r12d
mov r8d, r12d
mov edx, r8d
cmp byte [rbx + 0x389d], dil
je 0x1800858d0
mov rax, qword [rbx + 0x3c08]
mov rcx, qword [rax + 0x40]
test byte [rcx], 4
jne 0x1800858d0
or edx, 2
mov dword [rbx + 0x3c44], edx
cmp byte [rbx + 0x389e], dil
je 0x1800858e2
or edx, 4
mov dword [rbx + 0x3c44], edx
test byte [rbx + 0xc], 8
je 0x1800858f1
or edx, 8
mov dword [rbx + 0x3c44], edx
mov r8d, edi
cmp dword [rbx + 0x4880], edi
jle 0x180085929
mov rdx, rdi
mov rax, qword [rbx + 0x4888]
xorps xmm0, xmm0
add r8d, r12d
mov rcx, qword [rdx + rax]
lea rdx, [rdx + 8]
movups xmmword [rcx + 0x48], xmm0
movups xmmword [rcx + 0x58], xmm0
movups xmmword [rcx + 0x68], xmm0
cmp r8d, dword [rbx + 0x4880]
jl 0x1800858ff
cmp byte [rbx + 0x4a3c], dil
je 0x180085945
mov ecx, dword [rbx + 0x4a5c]
cmp ecx, dword [rbx + 0x3f10]
jne 0x180085945
call fcn.180081954
lea rax, [rbx + 0x3efc]
cmp dword [rbx + 0x3f00], edi
jne 0x18008595c
mov dword [rbx + 0x3f08], edi
jmp 0x18008596d
mov edx, dword [rax]
mov rcx, rax
test edx, edx
je 0x180085976
cmp dword [rbx + 0x3f10], edx
jne 0x180085976
mov dword [rbx + 0x3f0c], edi
mov rcx, rax
mov eax, dword [rcx]
test eax, eax
je 0x1800859ac
movss xmm1, dword [rbx + 0x18]
movaps xmm0, xmm1
addss xmm0, dword [rbx + 0x3f08]
movss dword [rbx + 0x3f08], xmm0
cmp dword [rbx + 0x3f10], eax
je 0x1800859ac
addss xmm1, dword [rbx + 0x3f0c]
movss dword [rbx + 0x3f0c], xmm1
mov dword [rbx + 0x3f00], eax
mov eax, dword [rbx + 0x3f10]
mov dword [rcx], edi
mov word [rbx + 0x3f04], di
test eax, eax
je 0x1800859de
cmp dword [rbx + 0x3f14], eax
je 0x1800859de
cmp dword [rbx + 0x3f40], eax
jne 0x1800859de
xor edx, edx
xor ecx, ecx
call fcn.180088f0c
mov edx, dword [rbx + 0x3f10]
test edx, edx
je 0x1800859fd
movss xmm0, dword [rbx + 0x3f18]
addss xmm0, dword [rbx + 0x18]
movss dword [rbx + 0x3f18], xmm0
mov rax, qword [rbx + 0x3f30]
movss xmm0, dword [rbx + 0x3f54]
addss xmm0, dword [rbx + 0x18]
mov qword [rbx + 0x3f48], rax
mov al, byte [rbx + 0x3f20]
mov byte [rbx + 0x3f45], al
mov eax, dword [rbx + 0x5ac8]
movss dword [rbx + 0x3f54], xmm0
mov dword [rbx + 0x3f40], edx
mov dword [rbx + 0x3f14], edi
mov byte [rbx + 0x3f21], dil
mov byte [rbx + 0x3f44], dil
mov byte [rbx + 0x3f1c], dil
test eax, eax
je 0x180085a61
cmp edx, eax
je 0x180085a61
mov dword [rbx + 0x5ac8], edi
test edx, edx
jne 0x180085a7a
mov dword [rbx + 0x4720], edi
mov byte [rbx + 0x4724], dil
mov dword [rbx + 0x4728], edi
jmp 0x180085a95
mov eax, dword [rbx + 0x4728]
test eax, eax
je 0x180085a95
test al, 2
je 0x180085a95
xor r8d, r8d
mov ecx, 0x20e
call fcn.1800895bc
mov eax, dword [rbx + 0x4bb0]
movss xmm0, dword [rbx + 0x4bb8]
mov dword [rbx + 0x4bb4], eax
test eax, eax
je 0x180085ac8
addss xmm0, dword [rbx + 0x18]
mov dword [rbx + 0x4bbc], edi
mov dword [rbx + 0x4bb0], edi
movss dword [rbx + 0x4bb8], xmm0
jmp 0x180085b01
comiss xmm0, xmm7
jbe 0x180085b01
movss xmm2, dword [rbx + 0x18]
movss xmm0, dword [0x180005ed4]
movaps xmm1, xmm2
addss xmm1, dword [rbx + 0x4bbc]
addss xmm2, xmm2
movss dword [rbx + 0x4bbc], xmm1
maxss xmm0, xmm2
comiss xmm1, xmm0
jb 0x180085b01
mov qword [rbx + 0x4bb8], rdi
mov eax, dword [rbx + 0x4aac]
lea rsi, [rbx + 0x37d0]
mov dword [rbx + 0x4ab0], eax
mov qword [rbx + 0x4aa8], 0x7f7fffff
mov word [rbx + 0x4a3d], di
mov dword [rbx + 0x4ab8], edi
cmp dword [rsi + 4], edi
jge 0x180085b4b
mov eax, dword [rsi + 4]
mov rcx, rsi
cdq
sub eax, edx
mov edx, edi
sar eax, 1
add eax, dword [rsi + 4]
test eax, eax
cmovg edx, eax
call fcn.18008d784
mov dword [rsi], edi
mov cl, byte [rbx + 0x7a]
call fcn.18008a728
call fcn.18008acd0
call fcn.180083688
call fcn.18008b1b4
call fcn.18008a4b0
call fcn.18008b660
call fcn.180080098
test rax, rax
jne 0x180085bad
cmp qword [rbx + 0x4a00], rdi
je 0x180085b8e
movss xmm0, dword [rbx + 0x4a1c]
comiss xmm0, xmm7
ja 0x180085bad
movss xmm0, dword [rbx + 0x18]
mulss xmm0, dword [0x180005f88]
movss xmm1, dword [rbx + 0x4a34]
subss xmm1, xmm0
maxss xmm1, xmm7
jmp 0x180085bc7
movss xmm1, dword [rbx + 0x18]
mulss xmm1, dword [0x180008a60]
addss xmm1, dword [rbx + 0x4a34]
minss xmm1, xmm8
movss dword [rbx + 0x4a34], xmm1
movups xmm0, xmmword [rbx + 0x5b60]
or dword [rbx + 0x5dcc], 0xffffffff
or dword [rbx + 0x5dc8], 0xffffffff
or dword [rbx + 0x5dc4], 0xffffffff
movdqu xmmword [rbx + 0x5b70], xmm0
mov dword [rbx + 0x4a38], edi
mov byte [rbx + 0x5b60], dil
call fcn.18008b73c
cmp byte [rbx + 0x3e3f], dil
jne 0x180085c2b
movss xmm0, dword [rbx + 0x80]
comiss xmm7, xmm0
ja 0x180085c2b
movsd xmm6, qword [rbx + 0x3e28]
cvtpd2ps xmm6, xmm6
subss xmm6, xmm0
mov esi, edi
cmp dword [rbx + 0x3e50], edi
je 0x180085c9c
mov r14, rdi
mov rax, qword [rbx + 0x3e58]
mov rcx, qword [r14 + rax]
mov dl, byte [rcx + 0xae]
movzx eax, word [rcx + 0xba]
mov byte [rcx + 0xaf], dl
mov byte [rcx + 0xae], dil
mov byte [rcx + 0xb0], dil
mov word [rcx + 0xbc], ax
mov word [rcx + 0xba], di
test dl, dl
jne 0x180085c8d
cmp byte [rcx + 0x3cc], dil
jne 0x180085c8d
comiss xmm6, dword [rcx + 0x25c]
jbe 0x180085c8d
call fcn.18007f40c
add esi, r12d
add r14, 8
cmp esi, dword [rbx + 0x3e50]
jne 0x180085c38
mov esi, edi
cmp dword [rbx + 0x4b40], edi
jle 0x180085ce5
mov r14, rdi
mov rax, qword [rbx + 0x4b48]
movss xmm0, dword [r14 + rax]
comiss xmm0, xmm7
jb 0x180085cd6
comiss xmm6, xmm0
jbe 0x180085cd6
movsxd rax, esi
imul rcx, rax, 0x228
add rcx, qword [rbx + 0x4b20]
call fcn.18009de60
add esi, r12d
add r14, 4
cmp esi, dword [rbx + 0x4b40]
jl 0x180085ca9
mov esi, edi
cmp dword [rbx + 0x4b08], edi
jle 0x180085d28
mov r14, rdi
mov rdx, qword [rbx + 0x4b10]
movss xmm0, dword [r14 + rdx + 4]
comiss xmm0, xmm7
jb 0x180085d19
comiss xmm6, xmm0
jbe 0x180085d19
movsxd rax, esi
imul rcx, rax, 0x70
add rcx, rdx
call fcn.18009df30
add esi, r12d
add r14, 0x70
cmp esi, dword [rbx + 0x4b08]
jl 0x180085cf2
cmp byte [rbx + 0x3e3f], dil
je 0x180085d36
call fcn.18007f370
mov rax, qword [rbx + 0x4890]
mov byte [rbx + 0x3e3f], dil
test rax, rax
je 0x180085d5b
cmp byte [rax + 0xaf], dil
jne 0x180085d5b
xor edx, edx
xor ecx, ecx
call fcn.18007f17c
lea rsi, [rbx + 0x3e80]
cmp dword [rsi + 4], edi
jge 0x180085d81
mov eax, dword [rsi + 4]
mov rcx, rsi
cdq
sub eax, edx
mov edx, edi
sar eax, 1
add eax, dword [rsi + 4]
test eax, eax
cmovg edx, eax
call fcn.18008d914
mov dword [rsi], edi
lea rsi, [rbx + 0x4868]
cmp dword [rsi + 4], edi
jge 0x180085da9
mov eax, dword [rsi + 4]
mov rcx, rsi
cdq
sub eax, edx
mov edx, edi
sar eax, 1
add eax, dword [rsi + 4]
test eax, eax
cmovg edx, eax
call fcn.18008d5f4
mov dword [rsi], edi
lea rsi, [rbx + 0x4838]
cmp dword [rsi + 4], edi
jge 0x180085dd1
mov eax, dword [rsi + 4]
mov rcx, rsi
cdq
sub eax, edx
mov edx, edi
sar eax, 1
add eax, dword [rsi + 4]
test eax, eax
cmovg edx, eax
call fcn.18008d4f4
mov dword [rsi], edi
cmp dword [rsi + 4], edi
jne 0x180085de5
mov edx, 8
mov rcx, rsi
call fcn.18008d4f4
movsxd rcx, dword [rsi]
mov rax, qword [rsi + 8]
mov dword [rax + rcx*4], edi
add dword [rsi], r12d
lea rsi, [rbx + 0x4848]
cmp dword [rsi + 4], edi
jge 0x180085e18
mov eax, dword [rsi + 4]
mov rcx, rsi
cdq
sub eax, edx
mov edx, edi
sar eax, 1
add eax, dword [rsi + 4]
test eax, eax
cmovg edx, eax
call fcn.18008d6fc
mov dword [rsi], edi
mov al, byte [rbx + 0x5c88]
test al, al
je 0x180085e35
sub al, r12b
mov byte [rbx + 0x5c88], al
jne 0x180085e35
mov dword [rbx + 0x4734], edi
mov byte [rbx + 0x3e3d], r12b
lea r8, [rbp - 0x40]
mov dword [rbp - 0x40], 0x40565676
mov dword [rbp - 0x3c], 0x7d1b1451
mov dword [rbp - 0x38], 0x485d5d5f
mov word [rbp - 0x34], 0x4b52
mov byte [rbp - 0x32], 0x40
mov eax, 0x1f7047dd
mul edi
mov eax, edi
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul ecx, eax, 0x39
mov al, dil
add edi, r12d
sub al, cl
add al, 0x32
xor byte [r8], al
add r8, r12
cmp edi, 0xf
jl 0x180085e5f
xor r8d, r8d
lea rcx, [rbp - 0x40]
xor edx, edx
call fcn.180079958
mov edx, r12d
mov rcx, rbx
movaps xmm6, xmmword [rsp + 0x50]
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm7, xmmword [rsp + 0x40]
mov rsp, r11
pop r15
pop r14
pop rbp
jmp fcn.18007cedc