Function at 0x18002c4f0
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 [0x180343a38]
mov rax, qword [r14 + 0x4010]
mov byte [rax + 0xcc], 1
mov r15, qword [r14 + 0x4010]
cmp byte [r15 + 0xcf], 0
je 0x18002c553
xor al, al
jmp 0x18002d86f
cmp qword [r15 + 0x1c0], 0
jne 0x18002c56e
cmp qword [r14 + 0x4e08], 0
lea rax, [r15 + 0x268]
je 0x18002c575
lea rax, [r15 + 0x238]
movss xmm2, dword [rax]
subss xmm2, dword [r15 + 0x118]
movss xmm7, dword [0x1802b822c]
maxss xmm2, xmm7
xorps xmm8, xmm8
xorps xmm3, xmm3
mov rdx, qword [rbp + 0x80]
mov rdx, qword [rdx]
lea rcx, [rsp + 0x28]
call fcn.1800165c0
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 0x18002c5ed
int3
lea rcx, [r14 + 0x4e38]
mov edx, r13d
call fcn.180005ce0
mov rdx, rax
movsxd rcx, dword [rax]
cmp ecx, 0xffffffff
je 0x18002c617
imul rbx, rcx, 0x250
add rbx, qword [r14 + 0x4e30]
jmp 0x18002c62f
mov eax, dword [r14 + 0x4e48]
mov dword [rdx], eax
lea rcx, [r14 + 0x4e28]
call fcn.180034b50
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 0x18002c8b8
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 0x18002c739
test ecx, ecx
je 0x18002c6d1
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18002c6d4
mov eax, r9d
mov r12d, edi
cmp eax, edi
cmovg r12d, eax
cmp r12d, ecx
jle 0x18002c734
movsxd rax, r12d
imul rcx, rax, 0x88
call fcn.180009b30
mov r13, rax
mov rdx, qword [r14 + 0x4e20]
test rdx, rdx
je 0x18002c722
movsxd rcx, dword [r14 + 0x4e18]
imul r8, rcx, 0x88
mov rcx, rax
call fcn.180244e70
mov rcx, qword [r14 + 0x4e20]
call fcn.180009bd0
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 0x18002c7a4
movsxd rdx, edi
cmp rax, rdx
jge 0x18002c7a4
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 0x18002c760
mov dword [r14 + 0x4e18], edi
lea rcx, [rsp + 0x58]
call fcn.180022800
nop
mov r9, qword [rsp + 0x68]
test r9, r9
je 0x18002c834
mov r8, qword [0x180343a38]
test r8, r8
je 0x18002c82b
mov r10d, dword [r8 + 0x3f68]
movsx rdx, word [r8 + 0x60e8]
lea rcx, [r8 + 0x60ec]
lea rcx, [rcx + rdx*8]
cmp dword [rcx], r10d
je 0x18002c820
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.180215358
nop
mov r9, qword [rsp + 0x48]
test r9, r9
je 0x18002c8b2
mov r8, qword [0x180343a38]
test r8, r8
je 0x18002c8a9
mov r10d, dword [r8 + 0x3f68]
movsx rdx, word [r8 + 0x60e8]
lea rcx, [r8 + 0x60ec]
lea rcx, [rcx + rdx*8]
cmp dword [rcx], r10d
je 0x18002c89e
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.180215358
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 0x18002c940
mov r12d, esi
jmp 0x18002c948
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 0x18002cb65
mov edi, dword [rbx + 0x1c0]
cmp edi, r12d
jge 0x18002ca72
mov qword [rbp - 0x20], rsi
mov qword [rbp - 0x18], 0
mov qword [rbp - 0x10], 0xffffffffffffffff
mov ecx, dword [rbx + 0x1c4]
cmp edi, ecx
jne 0x18002ca47
inc edi
test ecx, ecx
je 0x18002c9e8
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18002c9eb
mov eax, r9d
cmp eax, edi
cmovg edi, eax
cmp edi, ecx
jle 0x18002ca47
movsxd rax, edi
lea rcx, [rax + rax*2]
shl rcx, 3
call fcn.180009b30
mov r13, rax
mov rdx, qword [rbx + 0x1c8]
test rdx, rdx
je 0x18002ca36
movsxd rcx, dword [rbx + 0x1c0]
lea r8, [rcx + rcx*2]
shl r8, 3
mov rcx, rax
call fcn.180244e70
mov rcx, qword [rbx + 0x1c8]
call fcn.180009bd0
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, [0x18029ffa1]
mov r8b, 0x23
lea r10, [0x18029b580]
nop dword [rax]
cmp r8b, 0x23
jne 0x18002caa3
cmp byte [rdx], r8b
jne 0x18002caa3
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 0x18002ca90
mov ecx, edi
not ecx
mov r8, qword [0x180343a38]
cmp dword [r8 + 0x405c], ecx
jne 0x18002caf4
lea r8, str.Instances
mov edx, 0xb
call fcn.18001d4e0
mov r8, qword [0x180343a38]
lea r10, [0x18029b580]
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 0x18002cb68
movsxd r8, r12d
mov edx, 4
mov ecx, edi
call fcn.18001d4e0
jmp 0x18002cb68
mov edi, r13d
movsx rax, word [rbx + 0x78]
test eax, eax
jne 0x18002cb79
mov dword [rbx + 0x1a8], edi
jmp 0x18002cb88
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.180013310
test r12d, r12d
jle 0x18002cbbe
mov ecx, edi
call fcn.180013310
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 0x18002ccab
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.180003b90
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 0x18002cdb0
mov byte [rbx + 0x245], 0
mov dword [rbx + 0xe8], esi
mov dword [r9 + 8], esi
mov r8, qword [0x180343a38]
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 0x18002ce42
mov dword [r13 + 0x1c8], r12d
test byte [rsp + 0x20], 2
je 0x18002ce50
mov byte [rbx + 0x241], 1
lea rdi, [r14 + 0x4e50]
cmp r12d, dword [rdi]
jl 0x18002cec3
mov dword [rsp + 0x20], 0xbf800000
lea r15d, [r12 + 1]
mov ecx, dword [rdi + 4]
cmp r15d, ecx
jle 0x18002ce9a
test ecx, ecx
je 0x18002ce80
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18002ce85
mov eax, 8
mov edx, r15d
cmp eax, r15d
cmovg edx, eax
mov rcx, rdi
call fcn.18001e5f0
mov r9, qword [rbp - 0x28]
movsxd rax, dword [rdi]
cmp r15d, eax
jle 0x18002cec0
mov rdx, rax
movsxd r8, r15d
cmp rax, r8
jge 0x18002cec0
mov eax, dword [rsp + 0x20]
mov rcx, qword [rdi + 8]
mov dword [rcx + rdx*4], eax
inc rdx
cmp rdx, r8
jl 0x18002ceb1
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 0x18002cf32
cmp r15d, 5
je 0x18002cf32
mov rdi, rax
mov r12, qword [rbx + 8]
mov qword [rbx + 8], rsi
cmp qword [rbx + 8], 0
jne 0x18002cfbb
mov ecx, 0x270
call fcn.180009b30
mov qword [rbx + 8], rax
xor edx, edx
mov r8d, 0x270
mov rcx, rax
call fcn.180245510
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 0x18002cfde
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 0x18002d57b
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 0x18002d092
test r15d, r15d
jle 0x18002d092
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 0x18002d139
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 0x18002d1af
cmp r15d, 1
jle 0x18002d1af
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 0x18002d262
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 0x18002d2d6
cmp r15d, 2
jle 0x18002d2d6
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 0x18002d383
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 0x18002d3da
cmp r15d, 3
jle 0x18002d3da
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 0x18002d466
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 0x18002d4de
cmp r15d, 4
jle 0x18002d4de
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 0x18002d56a
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 0x18002d5f4
mov r8, qword [0x180343a38]
test r8, r8
je 0x18002d5ec
mov r9d, dword [r8 + 0x3f68]
movsx r10, word [r8 + 0x60e8]
lea rdx, [r8 + 0x60ec]
lea rdx, [rdx + r10*8]
cmp dword [rdx], r9d
je 0x18002d5e1
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.180215358
cmp byte [rbx + 0x23d], 0
je 0x18002d605
mov rcx, rbx
call fcn.180033660
movss xmm2, dword [r14 + 0x3d40]
movss xmm0, dword [rbx + 0xe4]
ucomiss xmm0, xmm8
jp 0x18002d622
je 0x18002d69a
ucomiss xmm0, xmm2
jp 0x18002d629
je 0x18002d69a
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 0x18002d6bd
xor edx, edx
call fcn.18001e2a0
cmp word [rbx + 0x78], 0
jne 0x18002d738
movsx eax, word [rbx + 0x212]
cmp ax, 0xffff
je 0x18002d6eb
movss xmm1, dword [rbx + 0xdc]
ucomiss xmm1, dword [0x1802b849c]
jp 0x18002d6e4
je 0x18002d6eb
mov ecx, eax
call fcn.180030860
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 0x18002d73d
imul rdx, rcx, 0x70
mov rax, qword [rbx + 0x18]
movss xmm1, dword [rdx + rax + 0x14]
call fcn.180030860
mov word [rbx + 0x210], di
jmp 0x18002d73d
mov edi, 0xffffffff
cmp word [rbx + 0x78], 0
jne 0x18002d831
cmp word [rbx + 0x216], 0xffff
jne 0x18002d763
cmp word [rbx + 0x218], 0xffff
je 0x18002d763
mov word [rbx + 0x218], di
mov word [rbx + 0x216], di
movsx rax, word [rbx + 0x218]
cmp ax, 0xffff
je 0x18002d831
movsx r11d, word [rbx + 0x21a]
test r11w, r11w
je 0x18002d831
mov r10, qword [rbx + 0x18]
imul r8, rax, 0x70
add r8, r10
cmp r11d, 0xffffffff
jne 0x18002d7a6
movzx eax, word [r8 + 0x56]
jmp 0x18002d7ab
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 0x18002d7f2
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 0x18002d7d0
mov r8d, esi
cmp dword [rbx + 0x6c], esi
jle 0x18002d823
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 0x18002d800
mov word [rbx + 0x21a], si
mov byte [rbx + 0x23e], 1
cmp byte [rbx + 0x241], 0
je 0x18002d86d
cmp dword [rbx + 0x6c], 0
jle 0x18002d85f
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 0x18002d840
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