180041f9e:	48 8b d8             	mov    %rax,%rbx
180041fa1:	49 3b c7             	cmp    %r15,%rax
180041fa4:	75 33                	jne    0x180041fd9
180041fa6:	48 8b 5d 50          	mov    0x50(%rbp),%rbx
180041faa:	45 33 c0             	xor    %r8d,%r8d
180041fad:	48 8b d6             	mov    %rsi,%rdx
180041fb0:	49 8b cc             	mov    %r12,%rcx
180041fb3:	e8 68 19 00 00       	call   0x180043920
180041fb8:	8b f8                	mov    %eax,%edi
180041fba:	85 c0                	test   %eax,%eax
180041fbc:	78 5e                	js     0x18004201c
180041fbe:	48 85 db             	test   %rbx,%rbx
180041fc1:	74 59                	je     0x18004201c
180041fc3:	49 8b 8e c0 00 00 00 	mov    0xc0(%r14),%rcx
180041fca:	4c 8b c3             	mov    %rbx,%r8
180041fcd:	48 8b d6             	mov    %rsi,%rdx
180041fd0:	e8 4b 19 00 00       	call   0x180043920
180041fd5:	8b f8                	mov    %eax,%edi
180041fd7:	eb 43                	jmp    0x18004201c
180041fd9:	48 85 c0             	test   %rax,%rax
180041fdc:	74 3e                	je     0x18004201c
180041fde:	48 8b cb             	mov    %rbx,%rcx
180041fe1:	e8 8a c9 0f 00       	call   0x18013e970
180041fe6:	48 8b 48 50          	mov    0x50(%rax),%rcx
180041fea:	49 3b cf             	cmp    %r15,%rcx
180041fed:	74 08                	je     0x180041ff7
180041fef:	48 8b d9             	mov    %rcx,%rbx
180041ff2:	48 85 c9             	test   %rcx,%rcx
180041ff5:	75 e7                	jne    0x180041fde
180041ff7:	48 85 db             	test   %rbx,%rbx
180041ffa:	74 20                	je     0x18004201c
180041ffc:	33 d2                	xor    %edx,%edx
180041ffe:	48 8b cb             	mov    %rbx,%rcx
180042001:	e8 92 c9 0f 00       	call   0x18013e998
180042006:	8b f8                	mov    %eax,%edi
180042008:	85 c0                	test   %eax,%eax
18004200a:	78 10                	js     0x18004201c
18004200c:	48 8b cb             	mov    %rbx,%rcx
18004200f:	e8 5c c9 0f 00       	call   0x18013e970
180042014:	48 8b 4d 50          	mov    0x50(%rbp),%rcx
180042018:	48 89 48 50          	mov    %rcx,0x50(%rax)
18004201c:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
180042021:	8b c7                	mov    %edi,%eax
180042023:	48 8b 7c 24 58       	mov    0x58(%rsp),%rdi
180042028:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
18004202d:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
180042032:	48 83 c4 20          	add    $0x20,%rsp
180042036:	41 5f                	pop    %r15
180042038:	41 5e                	pop    %r14
18004203a:	41 5c                	pop    %r12
18004203c:	c3                   	ret
18004203d:	cc                   	int3
18004203e:	cc                   	int3
18004203f:	cc                   	int3
180042040:	48 83 ec 28          	sub    $0x28,%rsp
180042044:	4c 8b 89 c8 00 00 00 	mov    0xc8(%rcx),%r9
18004204b:	45 33 c0             	xor    %r8d,%r8d
18004204e:	4d 85 c9             	test   %r9,%r9
180042051:	74 27                	je     0x18004207a
180042053:	49 8b c9             	mov    %r9,%rcx
180042056:	e8 15 c9 0f 00       	call   0x18013e970
18004205b:	48 8b 48 20          	mov    0x20(%rax),%rcx
18004205f:	48 3b 0a             	cmp    (%rdx),%rcx
180042062:	75 0a                	jne    0x18004206e
180042064:	48 8b 48 28          	mov    0x28(%rax),%rcx
180042068:	48 3b 4a 08          	cmp    0x8(%rdx),%rcx
18004206c:	74 09                	je     0x180042077
18004206e:	4c 8b 88 d0 00 00 00 	mov    0xd0(%rax),%r9
180042075:	eb d7                	jmp    0x18004204e
180042077:	41 b0 01             	mov    $0x1,%r8b
18004207a:	41 f6 d8             	neg    %r8b
18004207d:	48 1b c0             	sbb    %rax,%rax
180042080:	49 23 c1             	and    %r9,%rax
180042083:	48 83 c4 28          	add    $0x28,%rsp
180042087:	c3                   	ret
180042088:	cc                   	int3
180042089:	cc                   	int3
18004208a:	cc                   	int3
18004208b:	cc                   	int3
18004208c:	48 83 ec 28          	sub    $0x28,%rsp
180042090:	4c 8b 89 c8 00 00 00 	mov    0xc8(%rcx),%r9
180042097:	4c 8b c1             	mov    %rcx,%r8
18004209a:	4d 85 c9             	test   %r9,%r9
18004209d:	74 0f                	je     0x1800420ae
18004209f:	48 8b ca             	mov    %rdx,%rcx
1800420a2:	e8 c9 c8 0f 00       	call   0x18013e970
1800420a7:	4c 89 88 d0 00 00 00 	mov    %r9,0xd0(%rax)
1800420ae:	49 89 90 c8 00 00 00 	mov    %rdx,0xc8(%r8)
1800420b5:	48 83 c4 28          	add    $0x28,%rsp
1800420b9:	c3                   	ret
1800420ba:	cc                   	int3
1800420bb:	cc                   	int3
1800420bc:	48 83 ec 28          	sub    $0x28,%rsp
1800420c0:	4c 8b c9             	mov    %rcx,%r9
1800420c3:	45 33 c0             	xor    %r8d,%r8d
1800420c6:	48 8b 89 c8 00 00 00 	mov    0xc8(%rcx),%rcx
1800420cd:	eb 14                	jmp    0x1800420e3
1800420cf:	e8 9c c8 0f 00       	call   0x18013e970
1800420d4:	48 3b ca             	cmp    %rdx,%rcx
1800420d7:	74 11                	je     0x1800420ea
1800420d9:	48 8b 88 d0 00 00 00 	mov    0xd0(%rax),%rcx
1800420e0:	4c 8b c0             	mov    %rax,%r8
1800420e3:	48 85 c9             	test   %rcx,%rcx
1800420e6:	75 e7                	jne    0x1800420cf
1800420e8:	eb 1c                	jmp    0x180042106
1800420ea:	48 8b 80 d0 00 00 00 	mov    0xd0(%rax),%rax
1800420f1:	4d 85 c0             	test   %r8,%r8
1800420f4:	74 09                	je     0x1800420ff
1800420f6:	49 89 80 d0 00 00 00 	mov    %rax,0xd0(%r8)
1800420fd:	eb 07                	jmp    0x180042106
1800420ff:	49 89 81 c8 00 00 00 	mov    %rax,0xc8(%r9)
180042106:	48 83 c4 28          	add    $0x28,%rsp
18004210a:	c3                   	ret
18004210b:	cc                   	int3
18004210c:	48 83 ec 28          	sub    $0x28,%rsp
180042110:	48 8b 89 d8 00 00 00 	mov    0xd8(%rcx),%rcx
180042117:	33 d2                	xor    %edx,%edx
180042119:	eb 0e                	jmp    0x180042129
18004211b:	ff c2                	inc    %edx
18004211d:	e8 4e c8 0f 00       	call   0x18013e970
180042122:	48 8b 88 b8 00 00 00 	mov    0xb8(%rax),%rcx
180042129:	48 85 c9             	test   %rcx,%rcx
18004212c:	75 ed                	jne    0x18004211b
18004212e:	8b c2                	mov    %edx,%eax
180042130:	48 83 c4 28          	add    $0x28,%rsp
180042134:	c3                   	ret
180042135:	cc                   	int3
180042136:	cc                   	int3
180042137:	cc                   	int3
180042138:	48 8b c4             	mov    %rsp,%rax
18004213b:	48 89 58 08          	mov    %rbx,0x8(%rax)
18004213f:	48 89 68 10          	mov    %rbp,0x10(%rax)
180042143:	48 89 70 18          	mov    %rsi,0x18(%rax)
180042147:	48 89 78 20          	mov    %rdi,0x20(%rax)
18004214b:	41 56                	push   %r14
18004214d:	48 83 ec 20          	sub    $0x20,%rsp
180042151:	48 8b f1             	mov    %rcx,%rsi
180042154:	48 8b fa             	mov    %rdx,%rdi
180042157:	48 8b ca             	mov    %rdx,%rcx
18004215a:	33 ed                	xor    %ebp,%ebp
18004215c:	33 db                	xor    %ebx,%ebx
18004215e:	45 33 c0             	xor    %r8d,%r8d
180042161:	e8 0a c8 0f 00       	call   0x18013e970
180042166:	4c 8b d8             	mov    %rax,%r11
180042169:	8b 48 58             	mov    0x58(%rax),%ecx
18004216c:	e8 9b e2 00 00       	call   0x18005040c
180042171:	4c 8b 8e d8 00 00 00 	mov    0xd8(%rsi),%r9
180042178:	44 8b f0             	mov    %eax,%r14d
18004217b:	eb 32                	jmp    0x1800421af
18004217d:	49 8b c9             	mov    %r9,%rcx
180042180:	e8 eb c7 0f 00       	call   0x18013e970
180042185:	4c 8b d0             	mov    %rax,%r10
180042188:	8b 48 58             	mov    0x58(%rax),%ecx
18004218b:	e8 7c e2 00 00       	call   0x18005040c
180042190:	44 3b f0             	cmp    %eax,%r14d
180042193:	77 1f                	ja     0x1800421b4
180042195:	75 0e                	jne    0x1800421a5
180042197:	41 83 7b 68 02       	cmpl   $0x2,0x68(%r11)
18004219c:	75 07                	jne    0x1800421a5
18004219e:	41 83 7a 68 03       	cmpl   $0x3,0x68(%r10)
1800421a3:	74 0f                	je     0x1800421b4
1800421a5:	49 8b d9             	mov    %r9,%rbx
1800421a8:	4d 8b 8a b8 00 00 00 	mov    0xb8(%r10),%r9
1800421af:	4d 85 c9             	test   %r9,%r9
1800421b2:	75 c9                	jne    0x18004217d
1800421b4:	4d 89 8b b8 00 00 00 	mov    %r9,0xb8(%r11)
1800421bb:	48 85 db             	test   %rbx,%rbx
1800421be:	74 35                	je     0x1800421f5
1800421c0:	48 8b cf             	mov    %rdi,%rcx
1800421c3:	e8 bc c7 0f 00       	call   0x18013e984
1800421c8:	84 c0                	test   %al,%al
1800421ca:	74 11                	je     0x1800421dd
1800421cc:	33 d2                	xor    %edx,%edx
1800421ce:	48 8b cb             	mov    %rbx,%rcx
1800421d1:	e8 c2 c7 0f 00       	call   0x18013e998
1800421d6:	44 8b c0             	mov    %eax,%r8d
1800421d9:	85 c0                	test   %eax,%eax
1800421db:	78 7f                	js     0x18004225c
1800421dd:	48 8b cb             	mov    %rbx,%rcx
1800421e0:	e8 8b c7 0f 00       	call   0x18013e970
1800421e5:	48 89 b8 b8 00 00 00 	mov    %rdi,0xb8(%rax)
1800421ec:	48 8b 9e d8 00 00 00 	mov    0xd8(%rsi),%rbx
1800421f3:	eb 0a                	jmp    0x1800421ff
1800421f5:	48 89 be d8 00 00 00 	mov    %rdi,0xd8(%rsi)
1800421fc:	48 8b df             	mov    %rdi,%rbx
1800421ff:	48 85 db             	test   %rbx,%rbx
180042202:	74 42                	je     0x180042246
180042204:	48 8b cf             	mov    %rdi,%rcx
180042207:	e8 78 c7 0f 00       	call   0x18013e984
18004220c:	84 c0                	test   %al,%al
18004220e:	74 11                	je     0x180042221
180042210:	33 d2                	xor    %edx,%edx
180042212:	48 8b cb             	mov    %rbx,%rcx
180042215:	e8 7e c7 0f 00       	call   0x18013e998
18004221a:	44 8b c0             	mov    %eax,%r8d
18004221d:	85 c0                	test   %eax,%eax
18004221f:	78 3b                	js     0x18004225c
180042221:	48 8b cb             	mov    %rbx,%rcx
180042224:	e8 47 c7 0f 00       	call   0x18013e970
180042229:	ff c5                	inc    %ebp
18004222b:	48 8b 98 b8 00 00 00 	mov    0xb8(%rax),%rbx
180042232:	c7 80 d8 00 00 00 01 	movl   $0x1,0xd8(%rax)
180042239:	00 00 00
18004223c:	48 85 db             	test   %rbx,%rbx
18004223f:	75 c3                	jne    0x180042204
180042241:	83 fd 01             	cmp    $0x1,%ebp
180042244:	74 16                	je     0x18004225c
180042246:	48 8b 8e d8 00 00 00 	mov    0xd8(%rsi),%rcx
18004224d:	e8 1e c7 0f 00       	call   0x18013e970
180042252:	c7 80 d8 00 00 00 02 	movl   $0x2,0xd8(%rax)
180042259:	00 00 00
18004225c:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180042261:	41 8b c0             	mov    %r8d,%eax
180042264:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
180042269:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
18004226e:	48 8b 7c 24 48       	mov    0x48(%rsp),%rdi
180042273:	48 83 c4 20          	add    $0x20,%rsp
180042277:	41 5e                	pop    %r14
180042279:	c3                   	ret
18004227a:	cc                   	int3
18004227b:	cc                   	int3
18004227c:	40 53                	rex push %rbx
18004227e:	48 83 ec 20          	sub    $0x20,%rsp
180042282:	48 8d 05 8f 0c 10 00 	lea    0x100c8f(%rip),%rax        # 0x180142f18
180042289:	48 8b d9             	mov    %rcx,%rbx
18004228c:	48 89 01             	mov    %rax,(%rcx)
18004228f:	48 8b 89 a0 00 00 00 	mov    0xa0(%rcx),%rcx
180042296:	48 85 c9             	test   %rcx,%rcx
180042299:	74 05                	je     0x1800422a0
18004229b:	e8 bc 46 00 00       	call   0x18004695c
1800422a0:	48 8b 8b 98 00 00 00 	mov    0x98(%rbx),%rcx
1800422a7:	48 85 c9             	test   %rcx,%rcx
1800422aa:	74 05                	je     0x1800422b1
1800422ac:	e8 ab 46 00 00       	call   0x18004695c
1800422b1:	48 8b 4b 38          	mov    0x38(%rbx),%rcx
1800422b5:	48 85 c9             	test   %rcx,%rcx
1800422b8:	74 05                	je     0x1800422bf
1800422ba:	e8 9d 46 00 00       	call   0x18004695c
1800422bf:	48 8b 4b 30          	mov    0x30(%rbx),%rcx
1800422c3:	48 85 c9             	test   %rcx,%rcx
1800422c6:	74 05                	je     0x1800422cd
1800422c8:	e8 8f 46 00 00       	call   0x18004695c
1800422cd:	48 8d 05 f4 0c 10 00 	lea    0x100cf4(%rip),%rax        # 0x180142fc8
1800422d4:	48 89 03             	mov    %rax,(%rbx)
1800422d7:	48 83 c4 20          	add    $0x20,%rsp
1800422db:	5b                   	pop    %rbx
1800422dc:	c3                   	ret
1800422dd:	cc                   	int3
1800422de:	cc                   	int3
1800422df:	cc                   	int3
1800422e0:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1800422e5:	57                   	push   %rdi
1800422e6:	48 83 ec 20          	sub    $0x20,%rsp
1800422ea:	8b da                	mov    %edx,%ebx
1800422ec:	48 8b f9             	mov    %rcx,%rdi
1800422ef:	e8 88 ff ff ff       	call   0x18004227c
1800422f4:	f6 c3 01             	test   $0x1,%bl
1800422f7:	74 08                	je     0x180042301
1800422f9:	48 8b cf             	mov    %rdi,%rcx
1800422fc:	e8 5b 46 00 00       	call   0x18004695c
180042301:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180042306:	48 8b c7             	mov    %rdi,%rax
180042309:	48 83 c4 20          	add    $0x20,%rsp
18004230d:	5f                   	pop    %rdi
18004230e:	c3                   	ret
18004230f:	cc                   	int3
180042310:	c7 41 44 01 00 00 00 	movl   $0x1,0x44(%rcx)
180042317:	33 c0                	xor    %eax,%eax
180042319:	c3                   	ret
18004231a:	cc                   	int3
18004231b:	cc                   	int3
18004231c:	48 8b c4             	mov    %rsp,%rax
18004231f:	48 89 58 08          	mov    %rbx,0x8(%rax)
180042323:	48 89 68 10          	mov    %rbp,0x10(%rax)
180042327:	48 89 70 18          	mov    %rsi,0x18(%rax)
18004232b:	48 89 78 20          	mov    %rdi,0x20(%rax)
18004232f:	41 56                	push   %r14
180042331:	48 83 ec 20          	sub    $0x20,%rsp
180042335:	48 8b f9             	mov    %rcx,%rdi
180042338:	33 f6                	xor    %esi,%esi
18004233a:	b9 f0 00 00 00       	mov    $0xf0,%ecx
18004233f:	e8 d0 45 00 00       	call   0x180046914
180042344:	48 8b d8             	mov    %rax,%rbx
180042347:	48 85 c0             	test   %rax,%rax
18004234a:	74 18                	je     0x180042364
18004234c:	48 21 70 08          	and    %rsi,0x8(%rax)
180042350:	48 21 70 10          	and    %rsi,0x10(%rax)
180042354:	66 89 70 18          	mov    %si,0x18(%rax)
180042358:	48 8d 05 b9 0b 10 00 	lea    0x100bb9(%rip),%rax        # 0x180142f18
18004235f:	48 89 03             	mov    %rax,(%rbx)
180042362:	eb 02                	jmp    0x180042366
180042364:	33 db                	xor    %ebx,%ebx
180042366:	48 85 db             	test   %rbx,%rbx
180042369:	0f 84 5f 01 00 00    	je     0x1800424ce
18004236f:	0f 10 07             	movups (%rdi),%xmm0
180042372:	ba 80 00 00 00       	mov    $0x80,%edx
180042377:	4c 8d 43 30          	lea    0x30(%rbx),%r8
18004237b:	0f 11 03             	movups %xmm0,(%rbx)
18004237e:	0f 10 4f 10          	movups 0x10(%rdi),%xmm1
180042382:	48 8d 0c 1a          	lea    (%rdx,%rbx,1),%rcx
180042386:	48 8d 04 3a          	lea    (%rdx,%rdi,1),%rax
18004238a:	0f 11 4b 10          	movups %xmm1,0x10(%rbx)
18004238e:	0f 10 47 20          	movups 0x20(%rdi),%xmm0
180042392:	0f 11 43 20          	movups %xmm0,0x20(%rbx)
180042396:	0f 10 4f 30          	movups 0x30(%rdi),%xmm1
18004239a:	0f 11 4b 30          	movups %xmm1,0x30(%rbx)
18004239e:	0f 10 47 40          	movups 0x40(%rdi),%xmm0
1800423a2:	0f 11 43 40          	movups %xmm0,0x40(%rbx)
1800423a6:	0f 10 4f 50          	movups 0x50(%rdi),%xmm1
1800423aa:	0f 11 4b 50          	movups %xmm1,0x50(%rbx)
1800423ae:	0f 10 47 60          	movups 0x60(%rdi),%xmm0
1800423b2:	0f 11 43 60          	movups %xmm0,0x60(%rbx)
1800423b6:	0f 10 47 70          	movups 0x70(%rdi),%xmm0
1800423ba:	0f 11 41 f0          	movups %xmm0,-0x10(%rcx)
1800423be:	0f 10 08             	movups (%rax),%xmm1
1800423c1:	0f 11 09             	movups %xmm1,(%rcx)
1800423c4:	0f 10 40 10          	movups 0x10(%rax),%xmm0
1800423c8:	0f 11 41 10          	movups %xmm0,0x10(%rcx)
1800423cc:	0f 10 48 20          	movups 0x20(%rax),%xmm1
1800423d0:	0f 11 49 20          	movups %xmm1,0x20(%rcx)
1800423d4:	0f 10 40 30          	movups 0x30(%rax),%xmm0
1800423d8:	0f 11 41 30          	movups %xmm0,0x30(%rcx)
1800423dc:	0f 10 48 40          	movups 0x40(%rax),%xmm1
1800423e0:	0f 11 49 40          	movups %xmm1,0x40(%rcx)
1800423e4:	0f 10 40 50          	movups 0x50(%rax),%xmm0
1800423e8:	0f 11 41 50          	movups %xmm0,0x50(%rcx)
1800423ec:	0f 10 48 60          	movups 0x60(%rax),%xmm1
1800423f0:	0f 11 49 60          	movups %xmm1,0x60(%rcx)
1800423f4:	49 21 30             	and    %rsi,(%r8)
1800423f7:	48 21 73 38          	and    %rsi,0x38(%rbx)
1800423fb:	48 21 b3 98 00 00 00 	and    %rsi,0x98(%rbx)
180042402:	48 21 b3 a0 00 00 00 	and    %rsi,0xa0(%rbx)
180042409:	48 8b 4f 30          	mov    0x30(%rdi),%rcx
18004240d:	48 85 c9             	test   %rcx,%rcx
180042410:	74 12                	je     0x180042424
180042412:	ba 00 01 00 00       	mov    $0x100,%edx
180042417:	e8 bc d8 ff ff       	call   0x18003fcd8
18004241c:	85 c0                	test   %eax,%eax
18004241e:	0f 88 92 00 00 00    	js     0x1800424b6
180042424:	48 8b 4f 38          	mov    0x38(%rdi),%rcx
180042428:	48 85 c9             	test   %rcx,%rcx
18004242b:	74 12                	je     0x18004243f
18004242d:	4c 8d 43 38          	lea    0x38(%rbx),%r8
180042431:	ba 00 04 00 00       	mov    $0x400,%edx
180042436:	e8 9d d8 ff ff       	call   0x18003fcd8
18004243b:	85 c0                	test   %eax,%eax
18004243d:	78 77                	js     0x1800424b6
18004243f:	48 39 b7 98 00 00 00 	cmp    %rsi,0x98(%rdi)
180042446:	74 30                	je     0x180042478
180042448:	8b 83 90 00 00 00    	mov    0x90(%rbx),%eax