Function at 0x18000f530
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rbx
push rsi
push rdi
sub rsp, 0x70
mov rbx, qword [0x1800adca0]
mov qword [rax + 0x10], rbp
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x38], xmm7
mov edi, dword [rbx + 0x5350]
sub edi, 1
movaps xmmword [rax - 0x48], xmm8
movaps xmmword [rax - 0x58], xmm9
js 0x18000f5c3
movsxd rsi, edi
shl rsi, 5
mov rbp, rsi
nop dword [rax]
mov rdx, qword [rbx + 0x5358]
cmp dword [rdx + rsi + 4], 7
jne 0x18000f5b6
movsxd r8, dword [rbx + 0x5350]
mov rcx, rdx
sub rdx, rdx
add rdx, rbp
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 sub.VCRUNTIME140.dll_memmove
dec dword [rbx + 0x5350]
sub rbp, 0x20
sub rsi, 0x20
sub edi, 1
jns 0x18000f570
xor edi, edi
mov esi, edi
cmp dword [rbx + 0x5350], edi
jle 0x18000f5fd
mov ebp, edi
mov rax, qword [rbx + 0x5358]
cmp dword [rax + rbp + 4], edi
jne 0x18000f5ef
movsxd rdx, esi
mov rcx, rbx
shl rdx, 5
add rdx, rax
call qword [rax + rbp + 0x10]
inc esi
add rbp, 0x20
cmp esi, dword [rbx + 0x5350]
jl 0x18000f5d1
mov rax, qword [0x1800adca0]
cmp byte [rax + 0x75], dil
je 0x18000f614
test byte [rax + 0xc], 2
jne 0x18000f614
mov byte [rax + 0x75], dil
call fcn.180016bd0
inc dword [rbx + 0x3db8]
movss xmm0, dword [rbx + 0x18]
cvtps2pd xmm0, xmm0
mov byte [rbx + 0x3dc4], 1
mov word [rbx + 0x52be], di
mov dword [rbx + 0x3e28], edi
addsd xmm0, qword [rbx + 0x3db0]
movsd qword [rbx + 0x3db0], xmm0
mov ecx, dword [rbx + 0x52dc]
test ecx, ecx
jns 0x18000f671
mov eax, ecx
cdq
sub eax, edx
mov edx, edi
sar eax, 1
add eax, ecx
lea rcx, [rbx + 0x52d8]
test eax, eax
cmovg edx, eax
call fcn.180018bf0
movss xmm7, dword [0x18004e8b0]
xorps xmm6, xmm6
mov dword [rbx + 0x52d8], edi
movsxd rax, dword [rbx + 0x55c8]
movss xmm1, dword [rbx + 0x18]
movaps xmm0, xmm1
subss xmm0, dword [rbx + rax*4 + 0x53e8]
addss xmm0, dword [rbx + 0x55d0]
movss dword [rbx + 0x55d0], xmm0
movss dword [rbx + rax*4 + 0x53e8], xmm1
mov eax, 0x88888889
mov ecx, dword [rbx + 0x55c8]
movss xmm2, dword [rbx + 0x55d0]
inc ecx
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x78
sub ecx, eax
mov eax, dword [rbx + 0x55cc]
inc eax
mov dword [rbx + 0x55c8], ecx
mov ecx, 0x78
cmp eax, ecx
cmovl ecx, eax
comiss xmm2, xmm6
mov dword [rbx + 0x55cc], ecx
jbe 0x18000f717
movss xmm1, dword [0x18004e85c]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
divss xmm2, xmm0
divss xmm1, xmm2
jmp 0x18000f71a
movaps xmm1, xmm7
movss dword [rbx + 0xd8], xmm1
mov r8d, edi
mov r9, qword [0x1800adca0]
mov rax, qword [r9 + 0x4040]
mov rcx, qword [rax]
mov qword [rcx], 5
mov dword [rcx + 8], edi
movsd xmm0, qword [r9 + 0x10]
movsd qword [rcx + 0xc], xmm0
cmp dword [r9 + 0x4038], edi
jle 0x18000f808
mov rdx, rdi
nop dword [rax + rax]
mov rax, qword [r9 + 0x4040]
movaps xmm3, xmm6
inc r8d
mov rcx, qword [rdx + rax]
add rdx, 8
movsd xmm4, qword [rcx + 0xa8]
movsd xmm2, qword [rcx + 0xb0]
movaps xmm1, xmm4
addss xmm1, dword [rcx + 4]
movsd qword [rcx + 0xa0], xmm2
movaps xmm0, xmm4
shufps xmm0, xmm0, 0x55
addss xmm0, dword [rcx + 8]
mov qword [rcx + 0xb0], rdi
movss dword [rcx + 0x14], xmm1
movss xmm1, dword [rcx + 0xc]
mov qword [rcx + 0xa8], rdi
subss xmm1, xmm4
movss dword [rcx + 0x18], xmm0
movaps xmm0, xmm4
shufps xmm0, xmm0, 0x55
movsd qword [rcx + 0x98], xmm4
addss xmm1, xmm2
movss xmm2, dword [rcx + 0x10]
subss xmm2, xmm0
movaps xmm0, xmm6
maxss xmm3, xmm1
addss xmm2, dword [rcx + 0xa4]
movss dword [rcx + 0x1c], xmm3
maxss xmm0, xmm2
movss dword [rcx + 0x20], xmm0
cmp r8d, dword [r9 + 0x4038]
jl 0x18000f760
mov rax, qword [rbx + 0x50]
mov byte [rax + 0x18], 1
mov rax, qword [0x1800adca0]
mov rcx, qword [rax + 0x60]
test rcx, rcx
jne 0x18000f82b
mov rax, qword [rax + 0x50]
mov rcx, qword [rax + 0x50]
mov rcx, qword [rcx]
call fcn.180013cf0
mov eax, dword [rbx + 0x4038]
movaps xmm0, xmm7
movss xmm5, dword [0x18004e8bc]
movaps xmm9, xmm7
movaps xmm8, xmm5
test eax, eax
jle 0x18000f8ab
mov rcx, qword [rbx + 0x4040]
mov edx, eax
nop word [rax + rax]
mov rax, qword [rcx]
movss xmm4, dword [rax + 4]
comiss xmm0, xmm4
movss xmm3, dword [rax + 8]
movaps xmm2, xmm4
addss xmm2, dword [rax + 0xc]
movaps xmm1, xmm3
addss xmm1, dword [rax + 0x10]
jbe 0x18000f885
movaps xmm0, xmm4
comiss xmm9, xmm3
jbe 0x18000f88f
movaps xmm9, xmm3
comiss xmm2, xmm5
jbe 0x18000f897
movaps xmm5, xmm2
comiss xmm1, xmm8
jbe 0x18000f8a1
movaps xmm8, xmm1
add rcx, 8
sub rdx, 1
jne 0x18000f860
mov eax, dword [rbx + 0x3838]
lea rcx, [rbx + 0x3bb0]
movss xmm1, dword [rbx + 0x383c]
shufps xmm0, xmm0, 0xe1
movss xmm0, xmm9
mov dword [rbx + 0x3bc4], eax
shufps xmm0, xmm0, 0xc6
movss xmm0, xmm5
shufps xmm0, xmm0, 0x27
movss xmm0, xmm8
shufps xmm0, xmm0, 0x39
movups xmmword [rsp + 0x20], xmm0
movups xmmword [rbx + 0x3bcc], xmm0
call fcn.1800203b0
mov r8d, edi
movaps xmm9, xmmword [rsp + 0x30]
movaps xmm8, xmmword [rsp + 0x40]
mov dword [rbx + 0x3bdc], edi
cmp byte [rbx + 0x3834], dil
je 0x18000f923
mov dword [rbx + 0x3bdc], 1
mov r8d, 1
mov edx, r8d
cmp byte [rbx + 0x3835], dil
je 0x18000f948
mov rax, qword [rbx + 0x3ba0]
mov rcx, qword [rax + 0x40]
test byte [rcx], 4
jne 0x18000f948
or edx, 2
mov dword [rbx + 0x3bdc], edx
cmp byte [rbx + 0x3836], dil
je 0x18000f95a
or edx, 4
mov dword [rbx + 0x3bdc], edx
test byte [rbx + 0xc], 8
je 0x18000f969
or edx, 8
mov dword [rbx + 0x3bdc], edx
mov edx, edi
cmp dword [rbx + 0x4038], edi
jle 0x18000f9a9
mov r8, rdi
nop word [rax + rax]
mov rax, qword [rbx + 0x4040]
lea r8, [r8 + 8]
xorps xmm0, xmm0
inc edx
mov rcx, qword [rax + r8 - 8]
movups xmmword [rcx + 0x48], xmm0
movups xmmword [rcx + 0x58], xmm0
movups xmmword [rcx + 0x68], xmm0
cmp edx, dword [rbx + 0x4038]
jl 0x18000f980
cmp byte [rbx + 0x41dc], dil
je 0x18000f9e4
mov eax, dword [rbx + 0x41fc]
cmp eax, dword [rbx + 0x3e84]
jne 0x18000f9e4
mov rcx, qword [0x1800adca0]
cmp dword [rcx + 0x3e84], eax
jne 0x18000f9d5
mov dword [rcx + 0x3e88], eax
cmp dword [rcx + 0x3ed0], eax
jne 0x18000f9e4
mov byte [rcx + 0x3ed4], 1
cmp dword [rbx + 0x3e74], edi
jne 0x18000f9f4
mov dword [rbx + 0x3e7c], edi
jmp 0x18000fa06
mov eax, dword [rbx + 0x3e70]
test eax, eax
je 0x18000fa0c
cmp dword [rbx + 0x3e84], eax
jne 0x18000fa0c
mov dword [rbx + 0x3e80], edi
mov eax, dword [rbx + 0x3e70]
test eax, eax
je 0x18000fa46
movss xmm1, dword [rbx + 0x18]
movaps xmm0, xmm1
addss xmm0, dword [rbx + 0x3e7c]
movss dword [rbx + 0x3e7c], xmm0
cmp dword [rbx + 0x3e84], eax
je 0x18000fa46
addss xmm1, dword [rbx + 0x3e80]
movss dword [rbx + 0x3e80], xmm1
mov dword [rbx + 0x3e74], eax
movzx eax, byte [rbx + 0x3e79]
mov byte [rbx + 0x3e7a], al
mov eax, dword [rbx + 0x3e84]
mov dword [rbx + 0x3e70], edi
mov word [rbx + 0x3e78], di
mov byte [rbx + 0x3e7b], dil
cmp dword [rbx + 0x3e88], eax
je 0x18000faee
cmp dword [rbx + 0x3ed0], eax
jne 0x18000faee
test eax, eax
je 0x18000faee
mov rdx, qword [0x1800adca0]
mov ecx, dword [rdx + 0x3e84]
test ecx, ecx
setne al
mov byte [rdx + 0x3e90], al
test ecx, ecx
je 0x18000faba
mov dword [rdx + 0x3e8c], edi
mov word [rdx + 0x3e93], di
mov dword [rdx + 0x3ecc], 0xffffffff
mov dword [rdx + 0x3e84], edi
xorps xmm0, xmm0
mov word [rdx + 0x3e91], di
xor eax, eax
mov qword [rdx + 0x3ec0], rdi
mov word [rdx + 0x3e95], di
mov qword [rdx + 0x3e98], rdi
movups xmmword [rdx + 0x3ea0], xmm0
mov dword [rdx + 0x3eb0], eax
mov ecx, dword [rbx + 0x3e84]
test ecx, ecx
je 0x18000fb0d
movss xmm0, dword [rbx + 0x18]
addss xmm0, dword [rbx + 0x3e8c]
movss dword [rbx + 0x3e8c], xmm0
mov rax, qword [rbx + 0x3ec0]
movss xmm0, dword [rbx + 0x18]
addss xmm0, dword [rbx + 0x3ee4]
mov qword [rbx + 0x3ed8], rax
movzx eax, byte [rbx + 0x3e94]
mov byte [rbx + 0x3ed5], al
mov eax, dword [rbx + 0x5250]
movss dword [rbx + 0x3ee4], xmm0
mov dword [rbx + 0x3ed0], ecx
mov dword [rbx + 0x3e88], edi
mov byte [rbx + 0x3e95], dil
mov byte [rbx + 0x3ed4], dil
mov byte [rbx + 0x3e90], dil
test eax, eax
je 0x18000fb72
cmp ecx, eax
je 0x18000fb72
mov dword [rbx + 0x5250], edi
test ecx, ecx
jne 0x18000fb8f
mov qword [rbx + 0x3e98], rdi
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbx + 0x3ea0], xmm0
mov dword [rbx + 0x3eb0], eax
mov eax, dword [rbx + 0x424c]
mov dword [rbx + 0x4250], eax
mov qword [rbx + 0x4248], 0x7f7fffff
mov word [rbx + 0x41dd], di
mov dword [rbx + 0x4258], edi
mov ecx, dword [rbx + 0x376c]
test ecx, ecx
jns 0x18000fbd9
mov eax, ecx
cdq
sub eax, edx
mov edx, edi
sar eax, 1
add eax, ecx
lea rcx, [rbx + 0x3768]
test eax, eax
cmovg edx, eax
call fcn.180018dd0
mov dword [rbx + 0x3768], edi
movzx ecx, byte [rbx + 0x72]
call fcn.180015610
call fcn.180015de0
call fcn.18000c790
call fcn.180016150
call fcn.1800151c0
mov rsi, qword [0x1800adca0]
mov r9, qword [rsi + 0x3e50]
test r9, r9
je 0x18000fd10
mov eax, dword [rsi + 0x3e84]
mov dword [rsi + 0x3e88], eax
cmp dword [rsi + 0x3ed0], eax
jne 0x18000fc2e
mov byte [rsi + 0x3ed4], 1
mov r9, qword [r9 + 0x350]
cmp byte [rsi + 0xd14], dil
je 0x18000fd07
mov rcx, qword [0x1800adca0]
lea rax, [rsi + 0xd0c]
mov rdx, rax
test rax, rax
jne 0x18000fc5f
lea rdx, [rcx + 0xd0c]
movss xmm0, dword [rdx]
movss xmm1, dword [0x18004e8b8]
comiss xmm0, xmm1
movss xmm2, dword [rdx + 4]
jb 0x18000fd07
comiss xmm2, xmm1
jb 0x18000fd07
movss xmm1, dword [rax]
subss xmm1, dword [rsi + 0x3eb4]
movss xmm2, dword [rax + 4]
subss xmm2, dword [rsi + 0x3eb8]
movss xmm0, dword [r9 + 0x10]
ucomiss xmm0, xmm1
movss dword [rsp + 0x90], xmm1
movss dword [rsp + 0x94], xmm2
jp 0x18000fcc7
jne 0x18000fcc7
movss xmm0, dword [r9 + 0x14]
ucomiss xmm0, xmm2
jp 0x18000fcc7
je 0x18000fcf9
test dword [r9 + 0xc], 0x100
jne 0x18000fce3
comiss xmm6, dword [rcx + 0x530c]
jb 0x18000fce3
mov eax, dword [rcx + 0x1c]
mov dword [rcx + 0x530c], eax
mov r8d, 1
lea rdx, [rsp + 0x90]
mov rcx, r9
call fcn.180014160
mov rcx, qword [rsi + 0x3e50]
call fcn.180008e10
jmp 0x18000fd4a
mov qword [rsi + 0x3e50], rdi
jmp 0x18000fd45
mov rcx, qword [rsi + 0x3ec0]
test rcx, rcx
je 0x18000fd4a
mov eax, dword [rsi + 0x3e84]
cmp dword [rcx + 0x54], eax
jne 0x18000fd4a
mov dword [rsi + 0x3e88], eax
cmp dword [rsi + 0x3ed0], eax
jne 0x18000fd3c
mov byte [rsi + 0x3ed4], 1
cmp byte [rsi + 0xd14], dil
jne 0x18000fd4a
call fcn.180006ea0
mov r8, qword [0x1800adca0]
mov eax, dword [r8 + 0x4010]
sub eax, 1
js 0x18000fd91
mov r8, qword [r8 + 0x4018]
movsxd rdx, eax
add r8, 8
lea rcx, [rdx + rdx*2]
shl rcx, 4
add r8, rcx
mov rax, qword [r8]
test rax, rax
je 0x18000fd87
test dword [rax + 0xc], 0x8000000
jne 0x18000fda7
sub r8, 0x30
sub rdx, 1
jns 0x18000fd76
cmp qword [rbx + 0x41b0], rdi
je 0x18000fdc6
movss xmm0, dword [rbx + 0x41cc]
comiss xmm0, xmm6
jbe 0x18000fdc6
movss xmm1, dword [rbx + 0x18]
mulss xmm1, dword [0x18004e880]
addss xmm1, dword [rbx + 0x41d4]
minss xmm1, dword [0x18004e85c]
jmp 0x18000fde3
movss xmm0, dword [rbx + 0x18]
mulss xmm0, dword [0x18004e888]
movss xmm1, dword [rbx + 0x41d4]
subss xmm1, xmm0
maxss xmm1, xmm6
movss dword [rbx + 0x41d4], xmm1
movups xmm0, xmmword [rbx + 0x52e8]
mov dword [rbx + 0x41d8], edi
mov qword [rbx + 0x55d8], 0xffffffffffffffff
movups xmmword [rbx + 0x52f8], xmm0
mov dword [rbx + 0x55d4], 0xffffffff
mov byte [rbx + 0x52e8], dil
call fcn.1800167b0
cmp byte [rbx + 0x3dc7], dil
jne 0x18000fe43
movss xmm0, dword [rbx + 0x78]
comiss xmm6, xmm0
ja 0x18000fe43
movsd xmm7, qword [rbx + 0x3db0]
cvtpd2ps xmm7, xmm7
subss xmm7, xmm0
mov ebp, edi
mov qword [rsp + 0xa0], r14
cmp dword [rbx + 0x3dd8], edi
je 0x18000ffd1
mov r14, rdi
nop dword [rax]
mov rax, qword [rbx + 0x3de0]
mov rsi, qword [r14 + rax]
movzx eax, byte [rsi + 0x8e]
mov byte [rsi + 0x8f], al
mov word [rsi + 0x9a], di
mov byte [rsi + 0x8e], dil
mov byte [rsi + 0x90], dil
test al, al
jne 0x18000ffbf
cmp byte [rsi + 0x3a8], dil
jne 0x18000ffbf
comiss xmm7, dword [rsi + 0x23c]
jbe 0x18000ffbf
mov rcx, qword [rsi + 0x270]
mov byte [rsi + 0x3a8], 1
mov eax, dword [rcx + 0x14]
mov dword [rsi + 0x3a0], eax
mov eax, dword [rcx + 0x24]
mov dword [rsi + 0x3a4], eax
mov rcx, qword [rsi + 0xd0]
test rcx, rcx
je 0x18000ff08
mov qword [rsi + 0xc8], rdi
mov rax, qword [0x1800adca0]
test rax, rax
je 0x18000fef4
dec dword [rax + 0xec]
mov rdx, qword [0x1800adcb0]
call qword [0x18005b008]
mov qword [rsi + 0xd0], rdi
mov rcx, qword [rsi + 0x270]
call fcn.180020ba0
mov rcx, qword [rsi + 0x170]
test rcx, rcx
je 0x18000ff4d
mov qword [rsi + 0x168], rdi
mov rax, qword [0x1800adca0]
test rax, rax
je 0x18000ff39
dec dword [rax + 0xec]
mov rdx, qword [0x1800adcb0]
call qword [0x18005b008]
mov qword [rsi + 0x170], rdi
mov rcx, qword [rsi + 0x1a8]
test rcx, rcx
je 0x18000ff86
mov qword [rsi + 0x1a0], rdi
mov rax, qword [0x1800adca0]
test rax, rax
je 0x18000ff72
dec dword [rax + 0xec]
mov rdx, qword [0x1800adcb0]
call qword [0x18005b008]
mov qword [rsi + 0x1a8], rdi
mov rcx, qword [rsi + 0x1b8]
test rcx, rcx
je 0x18000ffbf
mov qword [rsi + 0x1b0], rdi
mov rax, qword [0x1800adca0]
test rax, rax
je 0x18000ffab
dec dword [rax + 0xec]
mov rdx, qword [0x1800adcb0]
call qword [0x18005b008]
mov qword [rsi + 0x1b8], rdi
inc ebp
add r14, 8
cmp ebp, dword [rbx + 0x3dd8]
jne 0x18000fe60
mov esi, edi
cmp dword [rbx + 0x42e0], edi
jle 0x18001001a
mov rbp, rdi
nop
mov rax, qword [rbx + 0x42e8]
movss xmm0, dword [rax + rbp]
comiss xmm0, xmm6
jb 0x18001000c
comiss xmm7, xmm0
jbe 0x18001000c
movsxd rax, esi
imul rcx, rax, 0x208
add rcx, qword [rbx + 0x42c0]
call fcn.18002abf0
inc esi
add rbp, 4
cmp esi, dword [rbx + 0x42e0]
jl 0x18000ffe0
mov esi, edi
cmp dword [rbx + 0x42a8], edi
jle 0x180010064
mov rbp, rdi
nop word [rax + rax]
mov rdx, qword [rbx + 0x42b0]
movss xmm0, dword [rdx + rbp + 4]
comiss xmm0, xmm6
jb 0x180010056
comiss xmm7, xmm0
jbe 0x180010056
movsxd rax, esi
imul rcx, rax, 0x70
add rcx, rdx
call fcn.18002acc0
inc esi
add rbp, 0x70
cmp esi, dword [rbx + 0x42a8]
jl 0x180010030
cmp byte [rbx + 0x3dc7], dil
je 0x1800100eb
mov rsi, qword [0x1800adca0]
mov rcx, qword [rsi + 0x3ff8]
test rcx, rcx
je 0x1800100ad
mov qword [rsi + 0x3ff0], rdi
mov rax, qword [0x1800adca0]
test rax, rax
je 0x180010099
dec dword [rax + 0xec]
mov rdx, qword [0x1800adcb0]
call qword [0x18005b008]
mov qword [rsi + 0x3ff8], rdi
mov rcx, qword [rsi + 0x4008]
test rcx, rcx
je 0x1800100e6
mov qword [rsi + 0x4000], rdi
mov rax, qword [0x1800adca0]
test rax, rax
je 0x1800100d2
dec dword [rax + 0xec]
mov rdx, qword [0x1800adcb0]
call qword [0x18005b008]
mov qword [rsi + 0x4008], rdi
call fcn.18002aa00
mov rax, qword [rbx + 0x4048]
mov byte [rbx + 0x3dc7], dil
test rax, rax
je 0x18001023a
cmp byte [rax + 0x8f], dil
jne 0x18001023a
mov r9, qword [0x1800adca0]
mov eax, dword [r9 + 0x3de8]
sub eax, 1
js 0x18001015a
movsxd rdx, eax
mov rax, qword [r9 + 0x3df0]
lea r8, [rax + rdx*8]
mov rcx, qword [r8]
test rcx, rcx
je 0x180010150
cmp byte [rcx + 0x8f], dil
je 0x180010150
mov eax, dword [rcx + 0xc]
and eax, 0x40200
cmp eax, 0x40200
jne 0x1800101ae
sub r8, 8
sub rdx, 1
jns 0x180010130
mov rsi, r9
cmp qword [r9 + 0x4048], rdi
je 0x1800101df
mov qword [r9 + 0x4048], rdi
mov qword [r9 + 0x4050], rdi
mov byte [r9 + 0x4088], dil
mov dword [r9 + 0x4084], edi
mov word [r9 + 0x40a4], di
mov byte [r9 + 0x408d], dil
mov rax, qword [0x1800adca0]
cmp byte [rax + 0x40a5], dil
jne 0x1800101d0
cmp byte [rax + 0x408d], dil
jne 0x1800101d0
xor cl, cl
jmp 0x1800101d2
mov rax, qword [rcx + 0x370]
test rax, rax
je 0x1800101c3
cmp byte [rax + 0x8f], dil
jne 0x1800101c6
mov rax, rcx
mov rcx, rax
call fcn.180008e10
jmp 0x18001023a
mov cl, 1
mov byte [rax + 0x408c], cl
mov r9, qword [0x1800adca0]
lea r14, [r9 + 0x4010]
cmp dword [r14], 1
jl 0x18001020f
mov ecx, dword [r14 + 4]
test ecx, ecx
jns 0x18001020c
mov eax, ecx
cdq
sub eax, edx
mov edx, edi
sar eax, 1
add eax, ecx
mov rcx, r14
test eax, eax
cmovg edx, eax
call fcn.180018e70
mov dword [r14], edi
cmp dword [rsi + 0x3e84], edi
je 0x18001023a
mov rax, qword [rsi + 0x3ec0]
test rax, rax
je 0x18001023a
cmp qword [rax + 0x350], rdi
je 0x18001023a
cmp byte [rsi + 0x3e92], dil
jne 0x18001023a
call fcn.180006ea0
mov ecx, dword [rbx + 0x3e0c]
test ecx, ecx
jns 0x180010260
mov eax, ecx
cdq
sub eax, edx
mov edx, edi
sar eax, 1
add eax, ecx
lea rcx, [rbx + 0x3e08]
test eax, eax
cmovg edx, eax
call fcn.180018fb0
mov dword [rbx + 0x3e08], edi
mov ecx, dword [rbx + 0x4024]
test ecx, ecx
jns 0x18001028c
mov eax, ecx
cdq
sub eax, edx
mov edx, edi
sar eax, 1
add eax, ecx
lea rcx, [rbx + 0x4020]
test eax, eax
cmovg edx, eax
call fcn.180018e70
lea rsi, [rbx + 0x3ff0]
mov dword [rbx + 0x4020], edi
mov ecx, dword [rsi + 4]
test ecx, ecx
jns 0x1800102b8
mov eax, ecx
cdq
sub eax, edx
mov edx, edi
sar eax, 1
add eax, ecx
mov rcx, rsi
test eax, eax
cmovg edx, eax
call fcn.180018bf0
mov dword [rsi], edi
cmp dword [rsi + 4], edi
jne 0x1800102cc
mov edx, 8
mov rcx, rsi
call fcn.180018bf0
movsxd rcx, dword [rsi]
xor edx, edx
mov rax, qword [rsi + 8]
mov dword [rax + rcx*4], edi
lea rcx, [rbx + 0x4000]
inc dword [rsi]
call fcn.1800190a0
call fcn.180014d00
mov rsi, qword [0x1800adca0]
mov dword [rsi + 0x3e6c], edi
mov eax, dword [rsi + 0x53c8]
inc eax
cmp dword [rsi + 0x3db8], eax
jne 0x1800103db
mov ebp, dword [rsi + 0x3e74]
test ebp, ebp
jne 0x18001031c
mov ebp, dword [rsi + 0x3e84]
cmp dword [rsi + 0x53d0], ebp
je 0x180010360
mov dword [rsi + 0x53d0], ebp
mov dword [rsi + 0x53cc], 0xffffffff
mov ecx, dword [rsi + 0x53dc]
test ecx, ecx
jns 0x18001035a
mov eax, ecx
cdq
sub eax, edx
mov edx, edi
sar eax, 1
add eax, ecx
lea rcx, [rsi + 0x53d8]
test eax, eax
cmovg edx, eax
call fcn.180018f10
mov dword [rsi + 0x53d8], edi
test ebp, ebp
je 0x1800103db
movsxd rax, dword [rsi + 0x53cc]
test eax, eax
js 0x18001039e
mov ecx, eax
cmp eax, dword [rsi + 0x53d8]
jge 0x1800103b1
mov r8, qword [rsi + 0x53e0]
mov rdx, rax
shl rdx, 6
cmp byte [rdx + r8 + 5], dil
jne 0x180010396
cmp byte [rdx + r8 + 4], 2
jle 0x1800103b1
inc eax
mov dword [rsi + 0x53cc], eax
mov ecx, eax
cmp eax, 0xffffffff
jne 0x1800103ad
mov dword [rsi + 0x3e6c], ebp
jmp 0x1800103db
test eax, eax
js 0x1800103db
cmp ecx, dword [rsi + 0x53d8]
jge 0x1800103db
mov rax, qword [rsi + 0x53e0]
movsxd rdx, ecx
shl rdx, 6
mov ecx, dword [rdx + rax]
mov dword [rsi + 0x3e6c], ecx
mov rax, qword [rsi + 0x53e0]
inc byte [rax + rdx + 4]
movsd xmm0, qword [str.rRZL_]
mov r8d, edi
mov ecx, dword [0x18004e0e8]
mov r14, qword [rsp + 0xa0]
mov rbp, qword [rsp + 0x98]
mov byte [rbx + 0x3dc5], 1
mov rax, qword [0x1800adca0]
movsd qword [rsp + 0x20], xmm0
mov dword [rsp + 0x28], ecx
or dword [rax + 0x3f40], 2
mov dword [rax + 0x3f60], 0x43c80000
mov dword [rax + 0x3f64], 0x43c80000
mov dword [rax + 0x3f48], 4
cmp dword [0x1800adb58], 2
movzx eax, word [0x18004e0ec]
mov word [rsp + 0x2c], ax
movzx eax, byte [0x18004e0ee]
mov byte [rsp + 0x2e], al
jl 0x1800105a0
movdqa xmm5, xmmword [0x18004e960]
mov r8d, 0xc
movdqa xmm2, xmmword [0x18004e8e0]
movdqa xmm3, xmmword [0x18004e900]
movdqa xmm1, xmm2
movdqa xmm6, xmmword [str.7777]
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
movdqa xmm4, xmmword [0x18004e950]
movdqa xmm7, xmmword [0x18004e970]
punpckldq xmm1, xmm2
pmuldq xmm0, xmm5
pmuldq xmm1, xmm5
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
movd xmm0, dword [str.rRZL_]
andps xmm2, xmm4
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm7
xorps xmm2, xmm0
movd dword [rsp + 0x20], xmm2
movdqa xmm2, xmmword [0x18004e8f0]
movdqa xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm5
pmuldq xmm1, xmm5
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
movdqa xmm1, xmm3
pmulld xmm0, xmm6
psubd xmm2, xmm0
punpckldq xmm1, xmm3
movd xmm0, dword [rsp + 0x24]
andps xmm2, xmm4
packuswb xmm2, xmm2
packuswb xmm2, xmm2
pmuldq xmm1, xmm5
paddb xmm2, xmm7
xorps xmm2, xmm0
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm5
movd dword [rsp + 0x24], xmm2
shufps xmm1, xmm0, 0xdd
psrad xmm1, 1
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm3, xmm0
movd xmm0, ecx
andps xmm3, xmm4
packuswb xmm3, xmm3
packuswb xmm3, xmm3
paddb xmm3, xmm7
xorps xmm3, xmm0
movd dword [rsp + 0x28], xmm3
movaps xmm7, xmmword [rsp + 0x50]
lea r9, [rsp + 0x20]
movaps xmm6, xmmword [rsp + 0x60]
mov eax, r8d
add r9, rax
nop word [rax + rax]
mov eax, 0x94f2095
lea r9, [r9 + 1]
imul r8d
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x37
movzx eax, r8b
inc r8d
sub al, cl
add al, 0x36
xor byte [r9 - 1], al
cmp r8d, 0xf
jl 0x1800105c0
xor r8d, r8d
lea rcx, [rsp + 0x20]
xor edx, edx
call fcn.180003800
cmp dword [rbx + 0x5350], edi
jle 0x18001063d
mov rsi, rdi
nop word [rax + rax]
mov rax, qword [rbx + 0x5358]
cmp dword [rsi + rax + 4], 1
jne 0x18001062f
movsxd rdx, edi
mov rcx, rbx
shl rdx, 5
add rdx, rax
call qword [rsi + rax + 0x10]
inc edi
add rsi, 0x20
cmp edi, dword [rbx + 0x5350]
jl 0x180010610
add rsp, 0x70
pop rdi
pop rsi
pop rbx
ret