Function at 0x1800a1c7c
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 [0x1800ebb60]
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 0x1800a1d21
movsxd r14, esi
shl r14, 5
mov r15, r14
mov rax, qword [rbx + 0x5bd0]
cmp dword [r14 + rax + 4], 7
jne 0x1800a1d14
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.1800def68
dec dword [rbx + 0x5bc8]
sub r15, 0x20
sub r14, 0x20
sub esi, r12d
jns 0x1800a1cca
xor edx, edx
mov rcx, rbx
call fcn.1800995bc
mov rax, qword [0x1800ebb60]
cmp byte [rax + 0x7e], dil
je 0x1800a1d42
test byte [rax + 0xc], 2
jne 0x1800a1d42
mov byte [rax + 0x7e], dil
call fcn.1800a845c
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 0x1800a1da0
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.1800a9bac
movss xmm6, dword [0x180006118]
xorps xmm7, xmm7
movss xmm8, dword [0x180005ff0]
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 0x1800a1e49
movd xmm0, ecx
movaps xmm1, xmm8
cvtdq2ps xmm0, xmm0
divss xmm2, xmm0
divss xmm1, xmm2
jmp 0x1800a1e4c
movaps xmm1, xmm6
movss dword [rbx + 0xe0], xmm1
call fcn.1800a84d8
mov rax, qword [rbx + 0x58]
mov byte [rax + 0x18], r12b
mov rax, qword [0x1800ebb60]
mov rcx, qword [rax + 0x68]
test rcx, rcx
jne 0x1800a1e7c
mov rax, qword [rax + 0x58]
mov rcx, qword [rax + 0x60]
mov rcx, qword [rcx]
call fcn.1800a5870
mov eax, dword [rbx + 0x4880]
movaps xmm5, xmm6
movss xmm0, dword [0x180008480]
movaps xmm4, xmm6
movaps xmm3, xmm0
test eax, eax
jle 0x1800a1eeb
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 0x1800a1ec7
movss xmm5, dword [rax + 4]
comiss xmm4, dword [rax + 8]
jbe 0x1800a1ed2
movss xmm4, dword [rax + 8]
comiss xmm1, xmm0
jbe 0x1800a1eda
movaps xmm0, xmm1
comiss xmm2, xmm3
jbe 0x1800a1ee2
movaps xmm3, xmm2
add rcx, 8
sub rdx, r12
jne 0x1800a1ea5
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.1800b2254
mov r8d, edi
mov dword [rbx + 0x3c44], edi
cmp byte [rbx + 0x389c], dil
je 0x1800a1f47
mov dword [rbx + 0x3c44], r12d
mov r8d, r12d
mov edx, r8d
cmp byte [rbx + 0x389d], dil
je 0x1800a1f6c
mov rax, qword [rbx + 0x3c08]
mov rcx, qword [rax + 0x40]
test byte [rcx], 4
jne 0x1800a1f6c
or edx, 2
mov dword [rbx + 0x3c44], edx
cmp byte [rbx + 0x389e], dil
je 0x1800a1f7e
or edx, 4
mov dword [rbx + 0x3c44], edx
test byte [rbx + 0xc], 8
je 0x1800a1f8d
or edx, 8
mov dword [rbx + 0x3c44], edx
mov r8d, edi
cmp dword [rbx + 0x4880], edi
jle 0x1800a1fc5
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 0x1800a1f9b
cmp byte [rbx + 0x4a3c], dil
je 0x1800a1fe1
mov ecx, dword [rbx + 0x4a5c]
cmp ecx, dword [rbx + 0x3f10]
jne 0x1800a1fe1
call fcn.18009e018
lea rax, [rbx + 0x3efc]
mov ecx, dword [rax]
cmp dword [rbx + 0x3f00], edi
jne 0x1800a1ffa
mov dword [rbx + 0x3f08], edi
jmp 0x1800a200b
mov edx, ecx
mov r8, rax
test ecx, ecx
je 0x1800a2016
cmp dword [rbx + 0x3f10], ecx
jne 0x1800a2016
mov dword [rbx + 0x3f0c], edi
mov edx, ecx
mov r8, rax
movss xmm1, dword [rbx + 0x18]
test edx, edx
je 0x1800a204d
movaps xmm0, xmm1
addss xmm0, dword [rbx + 0x3f08]
movss dword [rbx + 0x3f08], xmm0
cmp dword [rbx + 0x3f10], edx
je 0x1800a204d
movaps xmm0, xmm1
addss xmm0, dword [rbx + 0x3f0c]
movss dword [rbx + 0x3f0c], xmm0
mov eax, dword [rbx + 0x3f10]
movaps xmm2, xmm1
mov dword [rbx + 0x3f00], edx
mov dword [r8], edi
mov word [rbx + 0x3f04], di
test eax, eax
je 0x1800a2088
cmp dword [rbx + 0x3f14], eax
je 0x1800a2088
cmp dword [rbx + 0x3f40], eax
jne 0x1800a2088
xor edx, edx
xor ecx, ecx
call fcn.1800a5640
movss xmm2, dword [rbx + 0x18]
mov edx, dword [rbx + 0x3f10]
test edx, edx
je 0x1800a20a5
movaps xmm0, xmm2
addss xmm0, dword [rbx + 0x3f18]
movss dword [rbx + 0x3f18], xmm0
mov rax, qword [rbx + 0x3f30]
addss xmm2, dword [rbx + 0x3f54]
mov qword [rbx + 0x3f48], rax
mov al, byte [rbx + 0x3f20]
mov byte [rbx + 0x3f45], al
mov eax, dword [rbx + 0x5ac8]
movss dword [rbx + 0x3f54], xmm2
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 0x1800a2104
cmp edx, eax
je 0x1800a2104
mov dword [rbx + 0x5ac8], edi
test edx, edx
jne 0x1800a211d
mov dword [rbx + 0x4720], edi
mov byte [rbx + 0x4724], dil
mov dword [rbx + 0x4728], edi
jmp 0x1800a2138
mov eax, dword [rbx + 0x4728]
test eax, eax
je 0x1800a2138
test al, 2
je 0x1800a2138
xor r8d, r8d
mov ecx, 0x20e
call fcn.1800a5cd0
mov eax, dword [rbx + 0x4bb0]
movss xmm0, dword [rbx + 0x4bb8]
mov dword [rbx + 0x4bb4], eax
test eax, eax
je 0x1800a216b
addss xmm0, dword [rbx + 0x18]
mov dword [rbx + 0x4bbc], edi
mov dword [rbx + 0x4bb0], edi
movss dword [rbx + 0x4bb8], xmm0
jmp 0x1800a21a4
comiss xmm0, xmm7
jbe 0x1800a21a4
movss xmm2, dword [rbx + 0x18]
movss xmm0, dword [0x180005fc4]
movaps xmm1, xmm2
addss xmm1, dword [rbx + 0x4bbc]
addss xmm2, xmm2
movss dword [rbx + 0x4bbc], xmm1
maxss xmm0, xmm2
comiss xmm1, xmm0
jb 0x1800a21a4
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 0x1800a21ee
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.1800a9e3c
mov dword [rsi], edi
mov cl, byte [rbx + 0x7a]
call fcn.1800a6e40
call fcn.1800a7404
call fcn.18009fd30
call fcn.1800a78f8
call fcn.1800a6bc8
call fcn.1800a7d84
call fcn.18009c758
test rax, rax
jne 0x1800a2250
cmp qword [rbx + 0x4a00], rdi
je 0x1800a2231
movss xmm0, dword [rbx + 0x4a1c]
comiss xmm0, xmm7
ja 0x1800a2250
movss xmm0, dword [rbx + 0x18]
mulss xmm0, dword [0x180006078]
movss xmm1, dword [rbx + 0x4a34]
subss xmm1, xmm0
maxss xmm1, xmm7
jmp 0x1800a226a
movss xmm1, dword [rbx + 0x18]
mulss xmm1, dword [0x180008b50]
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.1800a7e60
cmp byte [rbx + 0x3e3f], dil
jne 0x1800a22ce
movss xmm0, dword [rbx + 0x80]
comiss xmm7, xmm0
ja 0x1800a22ce
movsd xmm6, qword [rbx + 0x3e28]
cvtpd2ps xmm6, xmm6
subss xmm6, xmm0
mov esi, edi
cmp dword [rbx + 0x3e50], edi
je 0x1800a233f
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 0x1800a2330
cmp byte [rcx + 0x3cc], dil
jne 0x1800a2330
comiss xmm6, dword [rcx + 0x25c]
jbe 0x1800a2330
call fcn.18009bae8
add esi, r12d
add r14, 8
cmp esi, dword [rbx + 0x3e50]
jne 0x1800a22db
mov esi, edi
cmp dword [rbx + 0x4b40], edi
jle 0x1800a2388
mov r14, rdi
mov rax, qword [rbx + 0x4b48]
movss xmm0, dword [r14 + rax]
comiss xmm0, xmm7
jb 0x1800a2379
comiss xmm6, xmm0
jbe 0x1800a2379
movsxd rax, esi
imul rcx, rax, 0x228
add rcx, qword [rbx + 0x4b20]
call fcn.1800ba40c
add esi, r12d
add r14, 4
cmp esi, dword [rbx + 0x4b40]
jl 0x1800a234c
mov esi, edi
cmp dword [rbx + 0x4b08], edi
jle 0x1800a23cb
mov r14, rdi
mov rdx, qword [rbx + 0x4b10]
movss xmm0, dword [r14 + rdx + 4]
comiss xmm0, xmm7
jb 0x1800a23bc
comiss xmm6, xmm0
jbe 0x1800a23bc
movsxd rax, esi
imul rcx, rax, 0x70
add rcx, rdx
call fcn.1800ba4dc
add esi, r12d
add r14, 0x70
cmp esi, dword [rbx + 0x4b08]
jl 0x1800a2395
cmp byte [rbx + 0x3e3f], dil
je 0x1800a23d9
call fcn.18009ba4c
mov rax, qword [rbx + 0x4890]
mov byte [rbx + 0x3e3f], dil
test rax, rax
je 0x1800a23fe
cmp byte [rax + 0xaf], dil
jne 0x1800a23fe
xor edx, edx
xor ecx, ecx
call fcn.18009b858
lea rsi, [rbx + 0x3e80]
cmp dword [rsi + 4], edi
jge 0x1800a2424
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.1800a9fcc
mov dword [rsi], edi
lea rsi, [rbx + 0x4868]
cmp dword [rsi + 4], edi
jge 0x1800a244c
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.1800a9cac
mov dword [rsi], edi
lea rsi, [rbx + 0x4838]
cmp dword [rsi + 4], edi
jge 0x1800a2474
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.1800a9bac
mov dword [rsi], edi
cmp dword [rsi + 4], edi
jne 0x1800a2488
mov edx, 8
mov rcx, rsi
call fcn.1800a9bac
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 0x1800a24bb
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.1800a9db4
mov dword [rsi], edi
mov al, byte [rbx + 0x5c88]
test al, al
je 0x1800a24d8
sub al, r12b
mov byte [rbx + 0x5c88], al
jne 0x1800a24d8
mov dword [rbx + 0x4734], edi
mov byte [rbx + 0x3e3d], r12b
lea r8, [rbp - 0x40]
mov dword [rbp - 0x40], 0x43575177
mov dword [rbp - 0x3c], 0x7e1a1b50
mov dword [rbp - 0x38], 0x4b5c5a5e
mov word [rbp - 0x34], 0x3453
mov byte [rbp - 0x32], 0x41
mov eax, 0x51eb851f
mul edi
shr edx, 4
movsx eax, dl
imul ecx, eax, 0x32
mov al, dil
add edi, r12d
sub al, cl
add al, 0x33
xor byte [r8], al
add r8, r12
cmp edi, 0xf
jl 0x1800a2502
xor r8d, r8d
lea rcx, [rbp - 0x40]
xor edx, edx
call fcn.180095ff4
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.1800995bc