Function at 0x180030550
Capabilities:
Hash data with crc32

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x58]
sub rsp, 0x130
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
mov r13d, edx
mov dword [rbp - 0x48], edx
mov r14, qword [0x18026f978]
mov rax, qword [r14 + 0x4010]
mov byte [rax + 0xcc], 1
mov r15, qword [r14 + 0x4010]
cmp byte [r15 + 0xcf], 0
je 0x1800305b3
xor al, al
jmp 0x1800318cf
cmp qword [r15 + 0x1c0], 0
jne 0x1800305ce
cmp qword [r14 + 0x4e08], 0
lea rax, [r15 + 0x268]
je 0x1800305d5
lea rax, [r15 + 0x238]
movss xmm2, dword [rax]
subss xmm2, dword [r15 + 0x118]
movss xmm7, dword [0x1801f5588]
maxss xmm2, xmm7
xorps xmm8, xmm8
xorps xmm3, xmm3
mov rdx, qword [rbp + 0x80]
mov rdx, qword [rdx]
lea rcx, [rsp + 0x28]
call fcn.180015a90
movss xmm2, dword [r15 + 0x11c]
movss xmm3, dword [rsp + 0x2c]
addss xmm3, xmm2
movss xmm0, dword [r15 + 0x118]
movss xmm1, dword [rsp + 0x28]
addss xmm1, xmm0
movss dword [rbp - 0x40], xmm0
movss dword [rbp - 0x3c], xmm2
movss dword [rbp - 0x38], xmm1
movss dword [rbp - 0x34], xmm3
cmp dword [r14 + 0x4e10], r13d
jne 0x18003064d
int3
lea rcx, [r14 + 0x4e38]
mov edx, r13d
call fcn.180005ce0
mov rdx, rax
movsxd rcx, dword [rax]
cmp ecx, 0xffffffff
je 0x180030677
imul rbx, rcx, 0x250
add rbx, qword [r14 + 0x4e30]
jmp 0x18003068f
mov eax, dword [r14 + 0x4e48]
mov dword [rdx], eax
lea rcx, [r14 + 0x4e28]
call fcn.180038d40
mov rbx, rax
mov rcx, rbx
sub rcx, qword [r14 + 0x4e30]
movabs rax, 0x3759f22983759f23
imul rcx
mov r12, rdx
sar r12, 7
mov rcx, r12
shr rcx, 0x3f
add r12, rcx
mov qword [rsp + 0x28], r12
mov edi, dword [r14 + 0x4e14]
inc edi
mov dword [r14 + 0x4e14], edi
xor esi, esi
mov r9d, 8
cmp edi, dword [r14 + 0x4e18]
jle 0x180030918
xorps xmm6, xmm6
xor eax, eax
movups xmmword [rsp + 0x30], xmm6
movups xmmword [rsp + 0x40], xmm6
movups xmmword [rsp + 0x50], xmm6
movups xmmword [rsp + 0x60], xmm6
movups xmmword [rsp + 0x70], xmm6
movups xmmword [rbp - 0x80], xmm6
movups xmmword [rbp - 0x70], xmm6
movups xmmword [rbp - 0x60], xmm6
mov qword [rbp - 0x50], rax
mov dword [rsp + 0x34], 0xbf800000
mov ecx, dword [r14 + 0x4e1c]
cmp edi, ecx
jle 0x180030799
test ecx, ecx
je 0x180030731
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x180030734
mov eax, r9d
mov r12d, edi
cmp eax, edi
cmovg r12d, eax
cmp r12d, ecx
jle 0x180030794
movsxd rax, r12d
imul rcx, rax, 0x88
call fcn.180008fa0
mov r13, rax
mov rdx, qword [r14 + 0x4e20]
test rdx, rdx
je 0x180030782
movsxd rcx, dword [r14 + 0x4e18]
imul r8, rcx, 0x88
mov rcx, rax
call fcn.1801a3db0
mov rcx, qword [r14 + 0x4e20]
call fcn.180009040
mov qword [r14 + 0x4e20], r13
mov dword [r14 + 0x4e1c], r12d
mov r13d, dword [rbp - 0x48]
mov r12, qword [rsp + 0x28]
movsxd rax, dword [r14 + 0x4e18]
cmp edi, eax
jle 0x180030804
movsxd rdx, edi
cmp rax, rdx
jge 0x180030804
imul rcx, rax, 0x88
sub rdx, rax
movsd xmm1, qword [rbp - 0x50]
movups xmm2, xmmword [rsp + 0x30]
mov rax, qword [r14 + 0x4e20]
movups xmmword [rcx + rax], xmm2
movups xmmword [rcx + rax + 0x10], xmm6
movups xmmword [rcx + rax + 0x20], xmm6
movups xmmword [rcx + rax + 0x30], xmm6
movups xmmword [rcx + rax + 0x40], xmm6
movups xmmword [rcx + rax + 0x50], xmm6
movups xmmword [rcx + rax + 0x60], xmm6
movups xmmword [rcx + rax + 0x70], xmm6
movsd qword [rcx + rax + 0x80], xmm1
lea rcx, [rcx + 0x88]
sub rdx, 1
jne 0x1800307c0
mov dword [r14 + 0x4e18], edi
lea rcx, [rsp + 0x58]
call fcn.180027fa0
nop
mov r9, qword [rsp + 0x68]
test r9, r9
je 0x180030894
mov r8, qword [0x18026f978]
test r8, r8
je 0x18003088b
mov r10d, dword [r8 + 0x3f68]
movsx rdx, word [r8 + 0x60e8]
lea rcx, [r8 + 0x60ec]
lea rcx, [rcx + rdx*8]
cmp dword [rcx], r10d
je 0x180030880
lea ecx, [rdx + 1]
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
mov word [r8 + 0x60e8], cx
movsx rax, cx
lea rcx, [r8 + 0x60ec]
lea rcx, [rcx + rax*8]
mov dword [rcx], r10d
mov dword [rcx + 4], esi
inc word [rcx + 6]
inc dword [r8 + 0x60e4]
mov rcx, r9
call fcn.180175888
nop
mov r9, qword [rsp + 0x48]
test r9, r9
je 0x180030912
mov r8, qword [0x18026f978]
test r8, r8
je 0x180030909
mov r10d, dword [r8 + 0x3f68]
movsx rdx, word [r8 + 0x60e8]
lea rcx, [r8 + 0x60ec]
lea rcx, [rcx + rdx*8]
cmp dword [rcx], r10d
je 0x1800308fe
lea ecx, [rdx + 1]
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
mov word [r8 + 0x60e8], cx
movsx rax, cx
lea rcx, [r8 + 0x60ec]
lea rcx, [rcx + rax*8]
mov dword [rcx], r10d
mov dword [rcx + 4], esi
inc word [rcx + 6]
inc dword [r8 + 0x60e4]
mov rcx, r9
call fcn.180175888
nop
mov r9d, 8
movsxd rax, dword [r14 + 0x4e14]
imul rcx, rax, 0x88
mov r8, qword [r14 + 0x4e20]
add r8, 0xffffffffffffff78
add r8, rcx
mov qword [rbp - 0x28], r8
mov qword [rbx + 0x10], r8
mov dword [r8], r12d
mov rax, qword [rbx + 0x10]
add rax, 0x28
mov qword [rbx + 0x1a0], rax
mov dword [rax], esi
mov dword [rax + 4], 1
mov byte [rbx + 0x243], 1
test byte [r15 + 0x14], 0x40
mov edx, 0x87c0
mov eax, 0x27c0
cmovne edx, eax
mov rax, qword [r15 + 0x390]
mov ecx, dword [rax + 0x14]
mov eax, edx
or eax, 0x10
bt ecx, 8
cmovae eax, edx
or eax, 0x10
mov ecx, dword [rbx + 0x68]
mov dword [rbp - 0x30], ecx
cmp ecx, dword [r14 + 0x3f68]
je 0x1800309a0
mov r12d, esi
jmp 0x1800309a8
movsx r12d, word [rbx + 0x78]
inc r12d
mov ecx, dword [rbx + 4]
mov dword [rsp + 0x20], ecx
mov dword [rbx], r13d
mov dword [rbx + 4], eax
mov eax, dword [r14 + 0x3f68]
mov dword [rbx + 0x68], eax
mov qword [rbx + 0x188], r15
mov qword [rbx + 0x180], r15
mov dword [rbx + 0x6c], 5
mov byte [rbx + 0x236], 0
movss xmm0, dword [rbp + 0x88]
movss dword [rbx + 0xcc], xmm0
mov rax, qword [rbp + 0x80]
movsd xmm1, qword [rax]
movsd qword [r8 + 0x20], xmm1
mov word [rbx + 0x78], r12w
test r12d, r12d
jle 0x180030bc5
mov edi, dword [rbx + 0x1c0]
cmp edi, r12d
jge 0x180030ad2
mov qword [rbp - 0x20], rsi
mov qword [rbp - 0x18], 0
mov qword [rbp - 0x10], 0xffffffffffffffff
mov ecx, dword [rbx + 0x1c4]
cmp edi, ecx
jne 0x180030aa7
inc edi
test ecx, ecx
je 0x180030a48
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x180030a4b
mov eax, r9d
cmp eax, edi
cmovg edi, eax
cmp edi, ecx
jle 0x180030aa7
movsxd rax, edi
lea rcx, [rax + rax*2]
shl rcx, 3
call fcn.180008fa0
mov r13, rax
mov rdx, qword [rbx + 0x1c8]
test rdx, rdx
je 0x180030a96
movsxd rcx, dword [rbx + 0x1c0]
lea r8, [rcx + rcx*2]
shl r8, 3
mov rcx, rax
call fcn.1801a3db0
mov rcx, qword [rbx + 0x1c8]
call fcn.180009040
mov qword [rbx + 0x1c8], r13
mov dword [rbx + 0x1c4], edi
mov r13d, dword [rbp - 0x48]
movsxd rax, dword [rbx + 0x1c0]
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 0x1c8]
movups xmm0, xmmword [rbp - 0x20]
movups xmmword [rax + rcx*8], xmm0
movsd xmm1, qword [rbp - 0x10]
movsd qword [rax + rcx*8 + 0x10], xmm1
inc dword [rbx + 0x1c0]
mov r9d, r13d
not r9d
mov edi, r9d
lea rdx, [0x1801e0f41]
mov r8b, 0x23
lea r10, [0x1801dc4f0]
nop dword [rax]
cmp r8b, 0x23
jne 0x180030b03
cmp byte [rdx], r8b
jne 0x180030b03
cmp byte [rdx + 1], r8b
cmove edi, r9d
movzx ecx, dil
movzx eax, r8b
xor rcx, rax
shr edi, 8
xor edi, dword [r10 + rcx*4]
movzx r8d, byte [rdx]
inc rdx
test r8b, r8b
jne 0x180030af0
mov ecx, edi
not ecx
mov r8, qword [0x18026f978]
cmp dword [r8 + 0x405c], ecx
jne 0x180030b54
lea r8, str.Instances
mov edx, 0xb
call fcn.18001c9b0
mov r8, qword [0x18026f978]
lea r10, [0x1801dc4f0]
movzx ecx, dil
movzx eax, r12b
xor rcx, rax
shr edi, 8
xor edi, dword [r10 + rcx*4]
mov eax, r12d
shr eax, 8
movzx edx, al
movzx ecx, dil
xor rdx, rcx
shr edi, 8
xor edi, dword [r10 + rdx*4]
mov eax, r12d
shr eax, 0x10
movzx edx, al
movzx ecx, dil
xor rdx, rcx
shr edi, 8
xor edi, dword [r10 + rdx*4]
movzx ecx, dil
mov eax, r12d
shr rax, 0x18
xor rcx, rax
shr edi, 8
xor edi, dword [r10 + rcx*4]
not edi
cmp dword [r8 + 0x405c], edi
jne 0x180030bc8
movsxd r8, r12d
mov edx, 4
mov ecx, edi
call fcn.18001c9b0
jmp 0x180030bc8
mov edi, r13d
movsx rax, word [rbx + 0x78]
test eax, eax
jne 0x180030bd9
mov dword [rbx + 0x1a8], edi
jmp 0x180030be8
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 0x1c8]
mov dword [rax + rcx*8 - 0x18], edi
movups xmm0, xmmword [rbp - 0x40]
movups xmmword [rbx + 0x100], xmm0
movups xmmword [rbx + 0xf0], xmm0
movups xmmword [rbx + 0x110], xmm0
mov word [rbx + 0x246], 0
mov ecx, r13d
call fcn.1800127e0
test r12d, r12d
jle 0x180030c1e
mov ecx, edi
call fcn.1800127e0
mov r13, qword [rbx + 0x188]
mov eax, dword [r13 + 0x15c]
mov dword [rbx + 0xb4], eax
lea r8, [r13 + 0x250]
lea rdx, [rbx + 0x160]
movups xmm0, xmmword [r8]
movups xmmword [rdx], xmm0
movzx eax, byte [r13 + 0xcf]
mov byte [rbx + 0x249], al
movups xmm0, xmmword [r13 + 0x230]
mov r9, qword [rbp - 0x28]
movups xmmword [r9 + 0x40], xmm0
movups xmm0, xmmword [r13 + 0x240]
movups xmmword [r9 + 0x50], xmm0
movss xmm1, dword [r15 + 0x160]
movss dword [r9 + 0x78], xmm1
movsd xmm0, qword [r13 + 0x148]
movsd qword [r9 + 0x60], xmm0
movsd xmm0, qword [r13 + 0x140]
movsd qword [r9 + 0x68], xmm0
movsd xmm1, qword [r13 + 0x130]
movsd qword [r9 + 0x70], xmm1
mov eax, dword [r15 + 0x1d8]
mov dword [r9 + 0x7c], eax
mov eax, dword [r15 + 0x1e0]
mov dword [r9 + 0x80], eax
mov qword [r13 + 0x140], rsi
mov qword [r13 + 0x148], rsi
cmp r13, r15
je 0x180030d0b
movss xmm0, dword [rdx]
addss xmm0, xmm7
minss xmm0, dword [rbx + 0x168]
movss dword [rdx], xmm0
movss xmm1, dword [rbx + 0x164]
addss xmm1, xmm7
minss xmm1, dword [rbx + 0x16c]
movss dword [rbx + 0x164], xmm1
movss xmm1, dword [r14 + 0x3944]
movaps xmm0, xmm8
addss xmm0, xmm7
movss dword [rbx + 0xc4], xmm0
movss dword [rbx + 0xc8], xmm8
movss dword [rbx + 0xc0], xmm1
movss xmm0, dword [r14 + 0x3944]
addss xmm0, xmm7
subss xmm0, xmm1
movss dword [rbx + 0xbc], xmm0
mov qword [rbx + 0x70], 0xffffffffffffffff
mov dword [rbx + 0x98], esi
mov word [rbx + 0x96], si
lea rax, [rbx + 0x110]
cmove r8, rax
lea rcx, [rbx + 0x120]
movups xmm0, xmmword [r8]
movups xmmword [rcx], xmm0
movss xmm1, dword [rcx]
maxss xmm1, dword [rax]
movss xmm0, dword [rcx + 4]
maxss xmm0, dword [rax + 4]
movss dword [rcx], xmm1
movss dword [rcx + 4], xmm0
movss xmm1, dword [rcx + 8]
minss xmm1, dword [rax + 8]
movss xmm0, dword [rcx + 0xc]
minss xmm0, dword [rax + 0xc]
movss dword [rcx + 8], xmm1
movss dword [rcx + 0xc], xmm0
call fcn.180003b40
movss xmm3, dword [r13 + 0x25c]
movss dword [rbx + 0x12c], xmm3
movss xmm4, dword [rbx + 0x114]
movss dword [rbx + 0x80], xmm4
movss dword [rbx + 0x7c], xmm4
mov qword [rbx + 0x88], rsi
mov qword [rbx + 0x226], rsi
mov byte [rbx + 0x242], 1
mov dword [rbx + 0x206], esi
mov eax, dword [rbp - 0x30]
inc eax
cmp eax, dword [r14 + 0x3f68]
jge 0x180030e10
mov byte [rbx + 0x245], 0
mov dword [rbx + 0xe8], esi
mov dword [r9 + 8], esi
mov r8, qword [0x18026f978]
movups xmm0, xmmword [r8 + 0x3c84]
movups xmmword [rbp - 0x40], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm0, dword [r8 + 0x38e8]
movss dword [rbp - 0x34], xmm0
lea rcx, [rbp - 0x40]
call fcn.180005a70
mov dword [rbx + 0xa4], eax
movups xmm0, xmmword [r8 + 0x3c94]
movups xmmword [rbp - 0x40], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm0, dword [r8 + 0x38e8]
movss dword [rbp - 0x34], xmm0
lea rcx, [rbp - 0x40]
call fcn.180005a70
mov dword [rbx + 0xa8], eax
mov qword [r14 + 0x4e08], rbx
mov byte [r15 + 0x178], 0
mov r12, qword [rsp + 0x28]
mov dword [r15 + 0x1c8], r12d
cmp r13, r15
je 0x180030ea2
mov dword [r13 + 0x1c8], r12d
test byte [rsp + 0x20], 2
je 0x180030eb0
mov byte [rbx + 0x241], 1
lea rdi, [r14 + 0x4e50]
cmp r12d, dword [rdi]
jl 0x180030f23
mov dword [rsp + 0x20], 0xbf800000
lea r15d, [r12 + 1]
mov ecx, dword [rdi + 4]
cmp r15d, ecx
jle 0x180030efa
test ecx, ecx
je 0x180030ee0
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x180030ee5
mov eax, 8
mov edx, r15d
cmp eax, r15d
cmovg edx, eax
mov rcx, rdi
call fcn.18001d920
mov r9, qword [rbp - 0x28]
movsxd rax, dword [rdi]
cmp r15d, eax
jle 0x180030f20
mov rdx, rax
movsxd r8, r15d
cmp rax, r8
jge 0x180030f20
mov eax, dword [rsp + 0x20]
mov rcx, qword [rdi + 8]
mov dword [rcx + rdx*4], eax
inc rdx
cmp rdx, r8
jl 0x180030f11
mov dword [rdi], r15d
movsd xmm0, qword [r14 + 0x3f60]
cvtpd2ps xmm0, xmm0
movsxd rcx, r12d
mov rax, qword [r14 + 0x4e58]
movss dword [rax + rcx*4], xmm0
movsd xmm0, qword [r14 + 0x3f60]
cvtpd2ps xmm0, xmm0
movss dword [r9 + 4], xmm0
mov byte [rbx + 0x248], 0
mov rdi, rsi
mov r12, rsi
mov rax, qword [rbx + 0x18]
mov r15, qword [rbx + 0x20]
sub r15, rax
sar r15, 4
movabs rcx, 0x6db6db6db6db6db7
imul r15, rcx
test r15d, r15d
je 0x180030f92
cmp r15d, 5
je 0x180030f92
mov rdi, rax
mov r12, qword [rbx + 8]
mov qword [rbx + 8], rsi
cmp qword [rbx + 8], 0
jne 0x18003101b
mov ecx, 0x270
call fcn.180008fa0
mov qword [rbx + 8], rax
xor edx, edx
mov r8d, 0x270
mov rcx, rax
call fcn.1801a4450
mov rcx, qword [rbx + 8]
mov qword [rbx + 0x18], rcx
lea rax, [rcx + 0x230]
mov qword [rbx + 0x20], rax
mov qword [rbx + 0x28], rax
lea rax, [rcx + 0x23a]
mov qword [rbx + 0x30], rax
lea rax, [rcx + 0x23c]
mov qword [rbx + 0x38], rax
lea rax, [rcx + 0x264]
mov qword [rbx + 0x40], rax
mov qword [rbx + 0x48], rax
lea rax, [rcx + 0x268]
mov qword [rbx + 0x50], rax
lea rax, [rcx + 0x26c]
mov qword [rbx + 0x58], rax
mov byte [rbx + 0x23d], 1
mov byte [rbx + 0x238], 1
cmp byte [rbx + 0x240], 0
je 0x18003103e
mov word [rbx + 0x23d], 0x100
mov byte [rbx + 0x238], 1
mov byte [rbx + 0x240], 0
mov dword [rbx + 0x60], esi
cmp byte [rbx + 0x238], 0
je 0x1800315db
mov r9d, 0xffffffff
mov dword [rbx + 0x64], r9d
mov byte [rbx + 0x239], 1
mov word [rbx + 0x7a], r9w
mov word [rbx + 0x224], r9w
mov dword [rbx + 0x212], 0xffffffff
mov word [rbx + 0x218], r9w
mov word [rbx + 0x210], r9w
mov dword [rbx + 0x20a], 0xffffffff
mov rcx, qword [rbx + 0x18]
mov r10d, 0xff
test rdi, rdi
je 0x1800310f2
test r15d, r15d
jle 0x1800310f2
movups xmm0, xmmword [rdi]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rdi + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rdi + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rdi + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rdi + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rdi + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rdi + 0x60]
movups xmmword [rcx + 0x60], xmm0
mov rax, qword [rbx + 0x28]
mov word [rax], si
mov word [rcx + 0x52], si
mov rcx, qword [rbx + 0x18]
add rcx, 0x70
mov rdx, rcx
jmp 0x180031199
movss xmm2, dword [rcx + 0x14]
xorps xmm1, xmm1
movups xmmword [rsp + 0x40], xmm1
movups xmmword [rbp - 0x80], xmm1
movups xmmword [rbp - 0x70], xmm1
mov dword [rsp + 0x40], 0xbf800000
mov dword [rsp + 0x48], 0xbf800000
mov qword [rbp - 0x80], 0xffffffffffffffff
mov dword [rbp - 0x78], 0xffffffff
xorps xmm0, xmm0
psrldq xmm0, 0xd
movd eax, xmm0
and al, 0xfc
mov byte [rbp - 0x63], al
mov dword [rbp - 0x72], 0xff00ff
mov word [rbp - 0x74], r10w
movups xmmword [rcx], xmm1
movups xmm0, xmmword [rsp + 0x40]
movups xmmword [rcx + 0x10], xmm0
movups xmmword [rcx + 0x20], xmm1
movups xmmword [rcx + 0x30], xmm1
movups xmmword [rcx + 0x40], xmm1
movups xmm0, xmmword [rbp - 0x80]
movups xmmword [rcx + 0x50], xmm0
movups xmm1, xmmword [rbp - 0x70]
movups xmmword [rcx + 0x60], xmm1
movss dword [rcx + 0x14], xmm2
mov byte [rcx + 0x69], 1
mov word [rcx + 0x63], 0x101
mov byte [rcx + 0x62], 1
mov rax, qword [rbx + 0x28]
mov word [rax], si
mov word [rcx + 0x52], si
mov rcx, qword [rbx + 0x18]
add rcx, 0x70
mov rdx, rcx
test rdi, rdi
je 0x18003120f
cmp r15d, 1
jle 0x18003120f
movups xmm0, xmmword [rdi + 0x70]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rdi + 0x80]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rdi + 0x90]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rdi + 0xa0]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rdi + 0xb0]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rdi + 0xc0]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rdi + 0xd0]
movups xmmword [rcx + 0x60], xmm0
mov rax, qword [rbx + 0x28]
mov r8d, 1
mov word [rax + 2], r8w
mov word [rdx + 0x52], r8w
mov rcx, qword [rbx + 0x18]
add rcx, 0xe0
mov r8, rcx
jmp 0x1800312c2
movss xmm2, dword [rcx + 0x14]
xorps xmm1, xmm1
movups xmmword [rsp + 0x40], xmm1
movups xmmword [rbp - 0x80], xmm1
movups xmmword [rbp - 0x70], xmm1
mov dword [rsp + 0x40], 0xbf800000
mov dword [rsp + 0x48], 0xbf800000
mov qword [rbp - 0x80], 0xffffffffffffffff
mov dword [rbp - 0x78], 0xffffffff
xorps xmm0, xmm0
psrldq xmm0, 0xd
movd eax, xmm0
and al, 0xfc
mov byte [rbp - 0x63], al
mov dword [rbp - 0x72], 0xff00ff
mov word [rbp - 0x74], r10w
movups xmmword [rcx], xmm1
movups xmm0, xmmword [rsp + 0x40]
movups xmmword [rcx + 0x10], xmm0
movups xmmword [rcx + 0x20], xmm1
movups xmmword [rcx + 0x30], xmm1
movups xmmword [rcx + 0x40], xmm1
movups xmm0, xmmword [rbp - 0x80]
movups xmmword [rcx + 0x50], xmm0
movups xmm1, xmmword [rbp - 0x70]
movups xmmword [rcx + 0x60], xmm1
movss dword [rcx + 0x14], xmm2
mov byte [rcx + 0x69], 1
mov word [rcx + 0x63], 0x101
mov byte [rcx + 0x62], 1
mov rax, qword [rbx + 0x28]
mov r8d, 1
mov word [rax + 2], r8w
mov word [rcx + 0x52], r8w
mov rcx, qword [rbx + 0x18]
add rcx, 0xe0
mov r8, rcx
test rdi, rdi
je 0x180031336
cmp r15d, 2
jle 0x180031336
movups xmm0, xmmword [rdi + 0xe0]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rdi + 0xf0]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rdi + 0x100]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rdi + 0x110]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rdi + 0x120]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rdi + 0x130]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rdi + 0x140]
movups xmmword [rcx + 0x60], xmm0
mov rax, qword [rbx + 0x28]
mov edx, 2
mov word [rax + 4], dx
mov word [r8 + 0x52], dx
mov rcx, qword [rbx + 0x18]
add rcx, 0x150
jmp 0x1800313e3
movss xmm2, dword [rcx + 0x14]
xorps xmm1, xmm1
movups xmmword [rsp + 0x40], xmm1
movups xmmword [rbp - 0x80], xmm1
movups xmmword [rbp - 0x70], xmm1
mov dword [rsp + 0x40], 0xbf800000
mov dword [rsp + 0x48], 0xbf800000
mov qword [rbp - 0x80], 0xffffffffffffffff
mov dword [rbp - 0x78], 0xffffffff
xorps xmm0, xmm0
psrldq xmm0, 0xd
movd eax, xmm0
and al, 0xfc
mov byte [rbp - 0x63], al
mov dword [rbp - 0x72], 0xff00ff
mov word [rbp - 0x74], r10w
movups xmmword [rcx], xmm1
movups xmm0, xmmword [rsp + 0x40]
movups xmmword [rcx + 0x10], xmm0
movups xmmword [rcx + 0x20], xmm1
movups xmmword [rcx + 0x30], xmm1
movups xmmword [rcx + 0x40], xmm1
movups xmm0, xmmword [rbp - 0x80]
movups xmmword [rcx + 0x50], xmm0
movups xmm1, xmmword [rbp - 0x70]
movups xmmword [rcx + 0x60], xmm1
movss dword [rcx + 0x14], xmm2
mov byte [rcx + 0x69], 1
mov word [rcx + 0x63], 0x101
mov byte [rcx + 0x62], 1
mov rax, qword [rbx + 0x28]
mov edx, 2
mov word [rax + 4], dx
mov word [rcx + 0x52], dx
mov rcx, qword [rbx + 0x18]
add rcx, 0x150
test rdi, rdi
je 0x18003143a
cmp r15d, 3
jle 0x18003143a
movups xmm0, xmmword [rdi + 0x150]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rdi + 0x160]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rdi + 0x170]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rdi + 0x180]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rdi + 0x190]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rdi + 0x1a0]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rdi + 0x1b0]
movups xmmword [rcx + 0x60], xmm0
jmp 0x1800314c6
movss xmm2, dword [rcx + 0x14]
xorps xmm1, xmm1
movups xmmword [rsp + 0x40], xmm1
movups xmmword [rbp - 0x80], xmm1
movups xmmword [rbp - 0x70], xmm1
mov dword [rsp + 0x40], 0xbf800000
mov dword [rsp + 0x48], 0xbf800000
mov qword [rbp - 0x80], 0xffffffffffffffff
mov dword [rbp - 0x78], 0xffffffff
xorps xmm0, xmm0
psrldq xmm0, 0xd
movd eax, xmm0
and al, 0xfc
mov byte [rbp - 0x63], al
mov dword [rbp - 0x72], 0xff00ff
mov word [rbp - 0x74], r10w
movups xmmword [rcx], xmm1
movups xmm0, xmmword [rsp + 0x40]
movups xmmword [rcx + 0x10], xmm0
movups xmmword [rcx + 0x20], xmm1
movups xmmword [rcx + 0x30], xmm1
movups xmmword [rcx + 0x40], xmm1
movups xmm0, xmmword [rbp - 0x80]
movups xmmword [rcx + 0x50], xmm0
movups xmm1, xmmword [rbp - 0x70]
movups xmmword [rcx + 0x60], xmm1
movss dword [rcx + 0x14], xmm2
mov byte [rcx + 0x69], 1
mov word [rcx + 0x63], 0x101
mov byte [rcx + 0x62], 1
mov rax, qword [rbx + 0x28]
mov edx, 3
mov word [rax + 6], dx
mov word [rcx + 0x52], dx
mov rcx, qword [rbx + 0x18]
add rcx, 0x1c0
test rdi, rdi
je 0x18003153e
cmp r15d, 4
jle 0x18003153e
movups xmm0, xmmword [rdi + 0x1c0]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rdi + 0x1d0]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rdi + 0x1e0]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rdi + 0x1f0]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rdi + 0x200]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rdi + 0x210]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rdi + 0x220]
movups xmmword [rcx + 0x60], xmm0
jmp 0x1800315ca
movss xmm2, dword [rcx + 0x14]
xorps xmm1, xmm1
movups xmmword [rsp + 0x40], xmm1
movups xmmword [rbp - 0x80], xmm1
movups xmmword [rbp - 0x70], xmm1
mov dword [rsp + 0x40], 0xbf800000
mov dword [rsp + 0x48], 0xbf800000
mov qword [rbp - 0x80], 0xffffffffffffffff
mov dword [rbp - 0x78], 0xffffffff
xorps xmm0, xmm0
psrldq xmm0, 0xd
movd eax, xmm0
and al, 0xfc
mov byte [rbp - 0x63], al
mov dword [rbp - 0x72], 0xff00ff
mov word [rbp - 0x74], r10w
movups xmmword [rcx], xmm1
movups xmm0, xmmword [rsp + 0x40]
movups xmmword [rcx + 0x10], xmm0
movups xmmword [rcx + 0x20], xmm1
movups xmmword [rcx + 0x30], xmm1
movups xmmword [rcx + 0x40], xmm1
movups xmm0, xmmword [rbp - 0x80]
movups xmmword [rcx + 0x50], xmm0
movups xmm1, xmmword [rbp - 0x70]
movups xmmword [rcx + 0x60], xmm1
movss dword [rcx + 0x14], xmm2
mov byte [rcx + 0x69], 1
mov word [rcx + 0x63], 0x101
mov byte [rcx + 0x62], 1
mov rax, qword [rbx + 0x28]
mov edx, 4
mov word [rax + 8], dx
mov word [rcx + 0x52], dx
test r12, r12
je 0x180031654
mov r8, qword [0x18026f978]
test r8, r8
je 0x18003164c
mov r9d, dword [r8 + 0x3f68]
movsx r10, word [r8 + 0x60e8]
lea rdx, [r8 + 0x60ec]
lea rdx, [rdx + r10*8]
cmp dword [rdx], r9d
je 0x180031641
lea ecx, [r10 + 1]
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
mov word [r8 + 0x60e8], cx
movsx rax, cx
lea rdx, [r8 + 0x60ec]
lea rdx, [rdx + rax*8]
mov dword [rdx], r9d
mov dword [rdx + 4], esi
inc word [rdx + 6]
inc dword [r8 + 0x60e4]
mov rcx, r12
call fcn.180175888
cmp byte [rbx + 0x23d], 0
je 0x180031665
mov rcx, rbx
call fcn.180037850
movss xmm2, dword [r14 + 0x3d40]
movss xmm0, dword [rbx + 0xe4]
ucomiss xmm0, xmm8
jp 0x180031682
je 0x1800316fa
ucomiss xmm0, xmm2
jp 0x180031689
je 0x1800316fa
movaps xmm1, xmm2
divss xmm1, xmm0
mov rax, qword [rbx + 0x18]
movaps xmm0, xmm1
mulss xmm0, dword [rax + 0x10]
movss dword [rax + 0x10], xmm0
mov rax, qword [rbx + 0x18]
movaps xmm0, xmm1
mulss xmm0, dword [rax + 0x80]
movss dword [rax + 0x80], xmm0
mov rax, qword [rbx + 0x18]
movaps xmm0, xmm1
mulss xmm0, dword [rax + 0xf0]
movss dword [rax + 0xf0], xmm0
mov rax, qword [rbx + 0x18]
movaps xmm0, xmm1
mulss xmm0, dword [rax + 0x160]
movss dword [rax + 0x160], xmm0
mov rax, qword [rbx + 0x18]
mulss xmm1, dword [rax + 0x1d0]
movss dword [rax + 0x1d0], xmm1
movss dword [rbx + 0xe4], xmm2
mov byte [r13 + 0xcf], 1
lea rcx, [rbx + 0x190]
cmp dword [rcx], 0
jle 0x18003171d
xor edx, edx
call fcn.18001d5d0
cmp word [rbx + 0x78], 0
jne 0x180031798
movsx eax, word [rbx + 0x212]
cmp ax, 0xffff
je 0x18003174b
movss xmm1, dword [rbx + 0xdc]
ucomiss xmm1, dword [0x1801f57d8]
jp 0x180031744
je 0x18003174b
mov ecx, eax
call fcn.180034a00
movzx eax, word [rbx + 0x212]
mov word [rbx + 0x214], ax
mov dword [rbx + 0xdc], 0x7f7fffff
mov edi, 0xffffffff
mov word [rbx + 0x212], di
movsx rcx, word [rbx + 0x210]
cmp cx, di
je 0x18003179d
imul rdx, rcx, 0x70
mov rax, qword [rbx + 0x18]
movss xmm1, dword [rdx + rax + 0x14]
call fcn.180034a00
mov word [rbx + 0x210], di
jmp 0x18003179d
mov edi, 0xffffffff
cmp word [rbx + 0x78], 0
jne 0x180031891
cmp word [rbx + 0x216], 0xffff
jne 0x1800317c3
cmp word [rbx + 0x218], 0xffff
je 0x1800317c3
mov word [rbx + 0x218], di
mov word [rbx + 0x216], di
movsx rax, word [rbx + 0x218]
cmp ax, 0xffff
je 0x180031891
movsx r11d, word [rbx + 0x21a]
test r11w, r11w
je 0x180031891
mov r10, qword [rbx + 0x18]
imul r8, rax, 0x70
add r8, r10
cmp r11d, 0xffffffff
jne 0x180031806
movzx eax, word [r8 + 0x56]
jmp 0x18003180b
movzx eax, word [r8 + 0x58]
movsx edx, word [r8 + 0x52]
movsx rax, ax
imul rcx, rax, 0x70
movsx eax, word [rcx + r10 + 0x52]
mov word [r8 + 0x52], ax
lea r8d, [rdx + r11]
lea r10d, [r11 + rax]
cmp r8d, r10d
je 0x180031852
movsxd rcx, r8d
mov rax, qword [rbx + 0x28]
movsx rcx, word [rax + rcx*2]
imul rdx, rcx, 0x70
mov rax, qword [rbx + 0x18]
sub word [rdx + rax + 0x52], r11w
add r8d, r11d
cmp r8d, r10d
jne 0x180031830
mov r8d, esi
cmp dword [rbx + 0x6c], esi
jle 0x180031883
nop word [rax + rax]
movsxd rax, r8d
imul rcx, rax, 0x70
mov rax, qword [rbx + 0x18]
movsx rdx, word [rcx + rax + 0x52]
mov rax, qword [rbx + 0x28]
mov word [rax + rdx*2], r8w
inc r8d
cmp r8d, dword [rbx + 0x6c]
jl 0x180031860
mov word [rbx + 0x21a], si
mov byte [rbx + 0x23e], 1
cmp byte [rbx + 0x241], 0
je 0x1800318cd
cmp dword [rbx + 0x6c], 0
jle 0x1800318bf
movsxd rdx, esi
imul rcx, rdx, 0x70
mov rax, qword [rbx + 0x18]
mov word [rcx + rax + 0x52], si
mov rax, qword [rbx + 0x28]
mov word [rax + rdx*2], si
inc esi
cmp esi, dword [rbx + 0x6c]
jl 0x1800318a0
mov byte [rbx + 0x241], 0
mov byte [rbx + 0x23e], 1
mov al, 1
lea r11, [rsp + 0x130]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret