180054f88:	45 8b 4c 24 18       	mov    0x18(%r12),%r9d
180054f8d:	c6 44 24 20 01       	movb   $0x1,0x20(%rsp)
180054f92:	e8 a5 21 ff ff       	call   0x18004713c
180054f97:	8b f0                	mov    %eax,%esi
180054f99:	85 c0                	test   %eax,%eax
180054f9b:	0f 88 bc 00 00 00    	js     0x18005505d
180054fa1:	49 8b 44 24 10       	mov    0x10(%r12),%rax
180054fa6:	48 8b d7             	mov    %rdi,%rdx
180054fa9:	48 89 47 78          	mov    %rax,0x78(%rdi)
180054fad:	41 8b 44 24 18       	mov    0x18(%r12),%eax
180054fb2:	89 87 80 00 00 00    	mov    %eax,0x80(%rdi)
180054fb8:	89 af 84 00 00 00    	mov    %ebp,0x84(%rdi)
180054fbe:	c6 87 98 00 00 00 03 	movb   $0x3,0x98(%rdi)
180054fc5:	c6 87 9a 00 00 00 08 	movb   $0x8,0x9a(%rdi)
180054fcc:	4c 89 af d8 00 00 00 	mov    %r13,0xd8(%rdi)
180054fd3:	49 8b 44 24 30       	mov    0x30(%r12),%rax
180054fd8:	48 89 87 e0 00 00 00 	mov    %rax,0xe0(%rdi)
180054fdf:	49 8b 4c 24 10       	mov    0x10(%r12),%rcx
180054fe4:	49 2b 4c 24 28       	sub    0x28(%r12),%rcx
180054fe9:	48 89 8f e8 00 00 00 	mov    %rcx,0xe8(%rdi)
180054ff0:	41 8b 44 24 38       	mov    0x38(%r12),%eax
180054ff5:	83 a7 f8 00 00 00 00 	andl   $0x0,0xf8(%rdi)
180054ffc:	48 8b 4c 24 78       	mov    0x78(%rsp),%rcx
180055001:	89 87 f0 00 00 00    	mov    %eax,0xf0(%rdi)
180055007:	41 8b 44 24 3c       	mov    0x3c(%r12),%eax
18005500c:	89 87 8c 00 00 00    	mov    %eax,0x8c(%rdi)
180055012:	e8 95 20 ff ff       	call   0x1800470ac
180055017:	4d 8b 24 24          	mov    (%r12),%r12
18005501b:	4d 3b e7             	cmp    %r15,%r12
18005501e:	0f 85 2e ff ff ff    	jne    0x180054f52
180055024:	48 8b 7c 24 70       	mov    0x70(%rsp),%rdi
180055029:	49 8b 45 40          	mov    0x40(%r13),%rax
18005502d:	ff c5                	inc    %ebp
18005502f:	3b 68 08             	cmp    0x8(%rax),%ebp
180055032:	73 22                	jae    0x180055056
180055034:	4c 8b a4 24 80 00 00 	mov    0x80(%rsp),%r12
18005503b:	00
18005503c:	e9 48 fe ff ff       	jmp    0x180054e89
180055041:	be 9a 00 00 c0       	mov    $0xc000009a,%esi
180055046:	eb 2d                	jmp    0x180055075
180055048:	b9 03 00 00 00       	mov    $0x3,%ecx
18005504d:	cd 29                	int    $0x29
18005504f:	be 9a 00 00 c0       	mov    $0xc000009a,%esi
180055054:	eb 37                	jmp    0x18005508d
180055056:	45 33 f6             	xor    %r14d,%r14d
180055059:	33 db                	xor    %ebx,%ebx
18005505b:	33 ff                	xor    %edi,%edi
18005505d:	48 85 ff             	test   %rdi,%rdi
180055060:	74 13                	je     0x180055075
180055062:	48 8b 07             	mov    (%rdi),%rax
180055065:	ba 01 00 00 00       	mov    $0x1,%edx
18005506a:	48 8b cf             	mov    %rdi,%rcx
18005506d:	48 8b 00             	mov    (%rax),%rax
180055070:	ff d0                	call   *%rax
180055072:	0f 1f 00             	nopl   (%rax)
180055075:	48 85 db             	test   %rbx,%rbx
180055078:	74 13                	je     0x18005508d
18005507a:	48 8b 03             	mov    (%rbx),%rax
18005507d:	ba 01 00 00 00       	mov    $0x1,%edx
180055082:	48 8b cb             	mov    %rbx,%rcx
180055085:	48 8b 00             	mov    (%rax),%rax
180055088:	ff d0                	call   *%rax
18005508a:	0f 1f 00             	nopl   (%rax)
18005508d:	4d 85 f6             	test   %r14,%r14
180055090:	74 0b                	je     0x18005509d
180055092:	49 8b d6             	mov    %r14,%rdx
180055095:	49 8b cd             	mov    %r13,%rcx
180055098:	e8 7f db ff ff       	call   0x180052c1c
18005509d:	48 8b 9c 24 88 00 00 	mov    0x88(%rsp),%rbx
1800550a4:	00
1800550a5:	8b c6                	mov    %esi,%eax
1800550a7:	48 83 c4 30          	add    $0x30,%rsp
1800550ab:	41 5f                	pop    %r15
1800550ad:	41 5e                	pop    %r14
1800550af:	41 5d                	pop    %r13
1800550b1:	41 5c                	pop    %r12
1800550b3:	5f                   	pop    %rdi
1800550b4:	5e                   	pop    %rsi
1800550b5:	5d                   	pop    %rbp
1800550b6:	c3                   	ret
1800550b7:	cc                   	int3
1800550b8:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
1800550bd:	48 89 54 24 10       	mov    %rdx,0x10(%rsp)
1800550c2:	55                   	push   %rbp
1800550c3:	56                   	push   %rsi
1800550c4:	57                   	push   %rdi
1800550c5:	41 54                	push   %r12
1800550c7:	41 55                	push   %r13
1800550c9:	41 56                	push   %r14
1800550cb:	41 57                	push   %r15
1800550cd:	48 83 ec 20          	sub    $0x20,%rsp
1800550d1:	48 8b 41 40          	mov    0x40(%rcx),%rax
1800550d5:	45 33 e4             	xor    %r12d,%r12d
1800550d8:	45 33 f6             	xor    %r14d,%r14d
1800550db:	49 8b e8             	mov    %r8,%rbp
1800550de:	4c 8b f9             	mov    %rcx,%r15
1800550e1:	44 39 60 08          	cmp    %r12d,0x8(%rax)
1800550e5:	0f 86 5b 01 00 00    	jbe    0x180055246
1800550eb:	41 8b f6             	mov    %r14d,%esi
1800550ee:	48 c1 e6 04          	shl    $0x4,%rsi
1800550f2:	48 03 75 08          	add    0x8(%rbp),%rsi
1800550f6:	c6 44 24 60 01       	movb   $0x1,0x60(%rsp)
1800550fb:	48 8b 3e             	mov    (%rsi),%rdi
1800550fe:	e9 29 01 00 00       	jmp    0x18005522c
180055103:	83 7f 20 02          	cmpl   $0x2,0x20(%rdi)
180055107:	0f 84 1c 01 00 00    	je     0x180055229
18005510d:	48 8b 82 e8 00 00 00 	mov    0xe8(%rdx),%rax
180055114:	48 39 47 30          	cmp    %rax,0x30(%rdi)
180055118:	0f 83 0b 01 00 00    	jae    0x180055229
18005511e:	41 8a 47 28          	mov    0x28(%r15),%al
180055122:	24 10                	and    $0x10,%al
180055124:	f6 d8                	neg    %al
180055126:	45 1b ed             	sbb    %r13d,%r13d
180055129:	41 f7 dd             	neg    %r13d
18005512c:	41 ff c5             	inc    %r13d
18005512f:	83 64 24 70 00       	andl   $0x0,0x70(%rsp)
180055134:	b9 00 01 00 00       	mov    $0x100,%ecx
180055139:	e8 d6 17 ff ff       	call   0x180046914
18005513e:	48 85 c0             	test   %rax,%rax
180055141:	74 0d                	je     0x180055150
180055143:	48 8b c8             	mov    %rax,%rcx
180055146:	e8 35 a2 fe ff       	call   0x18003f380
18005514b:	48 8b d8             	mov    %rax,%rbx
18005514e:	eb 02                	jmp    0x180055152
180055150:	33 db                	xor    %ebx,%ebx
180055152:	48 85 db             	test   %rbx,%rbx
180055155:	0f 84 30 01 00 00    	je     0x18005528b
18005515b:	44 8b 4f 18          	mov    0x18(%rdi),%r9d
18005515f:	48 8d 4b 60          	lea    0x60(%rbx),%rcx
180055163:	45 33 c0             	xor    %r8d,%r8d
180055166:	41 8d 50 03          	lea    0x3(%r8),%edx
18005516a:	e8 2d 1a ff ff       	call   0x180046b9c
18005516f:	44 8b e0             	mov    %eax,%r12d
180055172:	85 c0                	test   %eax,%eax
180055174:	0f 88 d0 00 00 00    	js     0x18005524a
18005517a:	44 8b 4c 24 70       	mov    0x70(%rsp),%r9d
18005517f:	45 85 c9             	test   %r9d,%r9d
180055182:	75 11                	jne    0x180055195
180055184:	44 38 4c 24 60       	cmp    %r9b,0x60(%rsp)
180055189:	74 0a                	je     0x180055195
18005518b:	0f ba 6b 3c 1b       	btsl   $0x1b,0x3c(%rbx)
180055190:	44 88 4c 24 60       	mov    %r9b,0x60(%rsp)
180055195:	48 8b 47 10          	mov    0x10(%rdi),%rax
180055199:	48 89 43 78          	mov    %rax,0x78(%rbx)
18005519d:	8b 47 18             	mov    0x18(%rdi),%eax
1800551a0:	89 83 80 00 00 00    	mov    %eax,0x80(%rbx)
1800551a6:	44 89 b3 84 00 00 00 	mov    %r14d,0x84(%rbx)
1800551ad:	c6 83 98 00 00 00 03 	movb   $0x3,0x98(%rbx)
1800551b4:	45 85 c9             	test   %r9d,%r9d
1800551b7:	74 0b                	je     0x1800551c4
1800551b9:	83 8b 88 00 00 00 ff 	orl    $0xffffffff,0x88(%rbx)
1800551c0:	b0 01                	mov    $0x1,%al
1800551c2:	eb 02                	jmp    0x1800551c6
1800551c4:	b0 08                	mov    $0x8,%al
1800551c6:	88 83 9a 00 00 00    	mov    %al,0x9a(%rbx)
1800551cc:	48 8b d3             	mov    %rbx,%rdx
1800551cf:	4c 89 bb d8 00 00 00 	mov    %r15,0xd8(%rbx)
1800551d6:	48 8b 47 30          	mov    0x30(%rdi),%rax
1800551da:	48 89 83 e0 00 00 00 	mov    %rax,0xe0(%rbx)
1800551e1:	48 8b 4f 10          	mov    0x10(%rdi),%rcx
1800551e5:	48 2b 4f 28          	sub    0x28(%rdi),%rcx
1800551e9:	48 89 8b e8 00 00 00 	mov    %rcx,0xe8(%rbx)
1800551f0:	8b 47 38             	mov    0x38(%rdi),%eax
1800551f3:	83 a3 f8 00 00 00 00 	andl   $0x0,0xf8(%rbx)
1800551fa:	48 8b 4c 24 68       	mov    0x68(%rsp),%rcx
1800551ff:	89 83 f0 00 00 00    	mov    %eax,0xf0(%rbx)
180055205:	8b 47 3c             	mov    0x3c(%rdi),%eax
180055208:	89 83 8c 00 00 00    	mov    %eax,0x8c(%rbx)
18005520e:	e8 99 1e ff ff       	call   0x1800470ac
180055213:	41 ff c1             	inc    %r9d
180055216:	44 89 4c 24 70       	mov    %r9d,0x70(%rsp)
18005521b:	45 3b cd             	cmp    %r13d,%r9d
18005521e:	0f 82 10 ff ff ff    	jb     0x180055134
180055224:	48 8b 54 24 68       	mov    0x68(%rsp),%rdx
180055229:	48 8b 3f             	mov    (%rdi),%rdi
18005522c:	48 3b fe             	cmp    %rsi,%rdi
18005522f:	0f 85 ce fe ff ff    	jne    0x180055103
180055235:	49 8b 47 40          	mov    0x40(%r15),%rax
180055239:	41 ff c6             	inc    %r14d
18005523c:	44 3b 70 08          	cmp    0x8(%rax),%r14d
180055240:	0f 82 a5 fe ff ff    	jb     0x1800550eb
180055246:	33 ed                	xor    %ebp,%ebp
180055248:	33 db                	xor    %ebx,%ebx
18005524a:	48 85 db             	test   %rbx,%rbx
18005524d:	74 13                	je     0x180055262
18005524f:	48 8b 03             	mov    (%rbx),%rax
180055252:	ba 01 00 00 00       	mov    $0x1,%edx
180055257:	48 8b cb             	mov    %rbx,%rcx
18005525a:	48 8b 00             	mov    (%rax),%rax
18005525d:	ff d0                	call   *%rax
18005525f:	0f 1f 00             	nopl   (%rax)
180055262:	48 85 ed             	test   %rbp,%rbp
180055265:	74 0b                	je     0x180055272
180055267:	48 8b d5             	mov    %rbp,%rdx
18005526a:	49 8b cf             	mov    %r15,%rcx
18005526d:	e8 aa d9 ff ff       	call   0x180052c1c
180055272:	48 8b 5c 24 78       	mov    0x78(%rsp),%rbx
180055277:	41 8b c4             	mov    %r12d,%eax
18005527a:	48 83 c4 20          	add    $0x20,%rsp
18005527e:	41 5f                	pop    %r15
180055280:	41 5e                	pop    %r14
180055282:	41 5d                	pop    %r13
180055284:	41 5c                	pop    %r12
180055286:	5f                   	pop    %rdi
180055287:	5e                   	pop    %rsi
180055288:	5d                   	pop    %rbp
180055289:	c3                   	ret
18005528a:	cc                   	int3
18005528b:	41 bc 9a 00 00 c0    	mov    $0xc000009a,%r12d
180055291:	eb cf                	jmp    0x180055262
180055293:	cc                   	int3
180055294:	48 83 ec 28          	sub    $0x28,%rsp
180055298:	41 b0 11             	mov    $0x11,%r8b
18005529b:	e8 70 22 ff ff       	call   0x180047510
1800552a0:	48 83 c4 28          	add    $0x28,%rsp
1800552a4:	c3                   	ret
1800552a5:	cc                   	int3
1800552a6:	cc                   	int3
1800552a7:	cc                   	int3
1800552a8:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
1800552ad:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
1800552b2:	55                   	push   %rbp
1800552b3:	56                   	push   %rsi
1800552b4:	57                   	push   %rdi
1800552b5:	41 54                	push   %r12
1800552b7:	41 55                	push   %r13
1800552b9:	41 56                	push   %r14
1800552bb:	41 57                	push   %r15
1800552bd:	48 83 ec 20          	sub    $0x20,%rsp
1800552c1:	83 4c 24 68 ff       	orl    $0xffffffff,0x68(%rsp)
1800552c6:	33 db                	xor    %ebx,%ebx
1800552c8:	48 89 5c 24 70       	mov    %rbx,0x70(%rsp)
1800552cd:	4c 8b f2             	mov    %rdx,%r14
1800552d0:	4c 8b d1             	mov    %rcx,%r10
1800552d3:	4d 85 c0             	test   %r8,%r8
1800552d6:	74 0a                	je     0x1800552e2
1800552d8:	be 02 00 00 c0       	mov    $0xc0000002,%esi
1800552dd:	e9 bf 02 00 00       	jmp    0x1800555a1
1800552e2:	4c 8b a2 e0 00 00 00 	mov    0xe0(%rdx),%r12
1800552e9:	33 f6                	xor    %esi,%esi
1800552eb:	41 83 4c 24 28 01    	orl    $0x1,0x28(%r12)
1800552f1:	48 8b 41 08          	mov    0x8(%rcx),%rax
1800552f5:	48 8b aa 00 01 00 00 	mov    0x100(%rdx),%rbp
1800552fc:	33 d2                	xor    %edx,%edx
1800552fe:	48 8b 88 50 01 00 00 	mov    0x150(%rax),%rcx
180055305:	44 8b 45 20          	mov    0x20(%rbp),%r8d
180055309:	48 8b 41 28          	mov    0x28(%rcx),%rax
18005530d:	48 8b 40 18          	mov    0x18(%rax),%rax
180055311:	45 85 c0             	test   %r8d,%r8d
180055314:	74 28                	je     0x18005533e
180055316:	48 8d 4d 48          	lea    0x48(%rbp),%rcx
18005531a:	44 8a 49 e0          	mov    -0x20(%rcx),%r9b
18005531e:	41 80 f9 01          	cmp    $0x1,%r9b
180055322:	74 06                	je     0x18005532a
180055324:	41 80 f9 06          	cmp    $0x6,%r9b
180055328:	75 09                	jne    0x180055333
18005532a:	48 39 01             	cmp    %rax,(%rcx)
18005532d:	0f 82 5e 02 00 00    	jb     0x180055591
180055333:	ff c2                	inc    %edx
180055335:	48 83 c1 28          	add    $0x28,%rcx
180055339:	41 3b d0             	cmp    %r8d,%edx
18005533c:	72 dc                	jb     0x18005531a
18005533e:	45 33 ed             	xor    %r13d,%r13d
180055341:	45 85 c0             	test   %r8d,%r8d
180055344:	0f 84 4b 01 00 00    	je     0x180055495
18005534a:	b9 00 01 00 00       	mov    $0x100,%ecx
18005534f:	e8 c0 15 ff ff       	call   0x180046914
180055354:	48 85 c0             	test   %rax,%rax
180055357:	74 0d                	je     0x180055366
180055359:	48 8b c8             	mov    %rax,%rcx
18005535c:	e8 1f a0 fe ff       	call   0x18003f380
180055361:	48 8b f8             	mov    %rax,%rdi
180055364:	eb 02                	jmp    0x180055368
180055366:	33 ff                	xor    %edi,%edi
180055368:	48 85 ff             	test   %rdi,%rdi
18005536b:	0f 84 40 01 00 00    	je     0x1800554b1
180055371:	45 33 c0             	xor    %r8d,%r8d
180055374:	4e 8d 3c ad 00 00 00 	lea    0x0(,%r13,4),%r15
18005537b:	00
18005537c:	4d 03 fd             	add    %r13,%r15
18005537f:	48 8d 4f 60          	lea    0x60(%rdi),%rcx
180055383:	41 8d 50 03          	lea    0x3(%r8),%edx
180055387:	46 8b 4c fd 30       	mov    0x30(%rbp,%r15,8),%r9d
18005538c:	e8 0b 18 ff ff       	call   0x180046b9c
180055391:	8b f0                	mov    %eax,%esi
180055393:	85 c0                	test   %eax,%eax
180055395:	0f 88 d4 01 00 00    	js     0x18005556f
18005539b:	4a 8b 44 fd 38       	mov    0x38(%rbp,%r15,8),%rax
1800553a0:	48 89 47 78          	mov    %rax,0x78(%rdi)
1800553a4:	42 8b 44 fd 30       	mov    0x30(%rbp,%r15,8),%eax
1800553a9:	89 87 80 00 00 00    	mov    %eax,0x80(%rdi)
1800553af:	42 8b 44 fd 34       	mov    0x34(%rbp,%r15,8),%eax
1800553b4:	89 87 84 00 00 00    	mov    %eax,0x84(%rdi)
1800553ba:	48 8b 44 24 60       	mov    0x60(%rsp),%rax
1800553bf:	48 89 87 d8 00 00 00 	mov    %rax,0xd8(%rdi)
1800553c6:	c6 87 98 00 00 00 03 	movb   $0x3,0x98(%rdi)
1800553cd:	c6 87 9a 00 00 00 08 	movb   $0x8,0x9a(%rdi)
1800553d4:	42 8a 44 fd 28       	mov    0x28(%rbp,%r15,8),%al
1800553d9:	3c 01                	cmp    $0x1,%al
1800553db:	74 45                	je     0x180055422
1800553dd:	3c 06                	cmp    $0x6,%al
1800553df:	74 41                	je     0x180055422
1800553e1:	0f ba 6f 3c 1b       	btsl   $0x1b,0x3c(%rdi)
1800553e6:	49 8b 86 f8 00 00 00 	mov    0xf8(%r14),%rax
1800553ed:	48 89 87 e0 00 00 00 	mov    %rax,0xe0(%rdi)
1800553f4:	4a 8b 44 fd 40       	mov    0x40(%rbp,%r15,8),%rax
1800553f9:	48 89 87 e8 00 00 00 	mov    %rax,0xe8(%rdi)
180055400:	8b 45 04             	mov    0x4(%rbp),%eax
180055403:	89 87 f0 00 00 00    	mov    %eax,0xf0(%rdi)
180055409:	c7 87 f8 00 00 00 01 	movl   $0x1,0xf8(%rdi)
180055410:	00 00 00
180055413:	41 8b 86 f0 00 00 00 	mov    0xf0(%r14),%eax
18005541a:	89 87 8c 00 00 00    	mov    %eax,0x8c(%rdi)
180055420:	eb 5b                	jmp    0x18005547d
180055422:	8b 44 24 68          	mov    0x68(%rsp),%eax
180055426:	42 3b 44 fd 34       	cmp    0x34(%rbp,%r15,8),%eax
18005542b:	7d 0e                	jge    0x18005543b
18005542d:	0f ba 6f 3c 1b       	btsl   $0x1b,0x3c(%rdi)
180055432:	42 8b 44 fd 34       	mov    0x34(%rbp,%r15,8),%eax
180055437:	89 44 24 68          	mov    %eax,0x68(%rsp)
18005543b:	4a 8b 54 fd 48       	mov    0x48(%rbp,%r15,8),%rdx
180055440:	48 89 97 e0 00 00 00 	mov    %rdx,0xe0(%rdi)
180055447:	4a 8b 4c fd 38       	mov    0x38(%rbp,%r15,8),%rcx
18005544c:	4a 2b 4c fd 40       	sub    0x40(%rbp,%r15,8),%rcx
180055451:	48 89 8f e8 00 00 00 	mov    %rcx,0xe8(%rdi)
180055458:	42 8b 44 fd 2c       	mov    0x2c(%rbp,%r15,8),%eax
18005545d:	83 a7 f8 00 00 00 00 	andl   $0x0,0xf8(%rdi)
180055464:	83 8f 8c 00 00 00 ff 	orl    $0xffffffff,0x8c(%rdi)
18005546b:	48 3b d3             	cmp    %rbx,%rdx
18005546e:	89 87 f0 00 00 00    	mov    %eax,0xf0(%rdi)
180055474:	48 0f 47 da          	cmova  %rdx,%rbx
180055478:	48 89 5c 24 70       	mov    %rbx,0x70(%rsp)
18005547d:	48 8b d7             	mov    %rdi,%rdx
180055480:	49 8b ce             	mov    %r14,%rcx
180055483:	e8 24 1c ff ff       	call   0x1800470ac
180055488:	41 ff c5             	inc    %r13d
18005548b:	44 3b 6d 20          	cmp    0x20(%rbp),%r13d
18005548f:	0f 82 b5 fe ff ff    	jb     0x18005534a
180055495:	b9 00 01 00 00       	mov    $0x100,%ecx
18005549a:	e8 75 14 ff ff       	call   0x180046914
18005549f:	48 85 c0             	test   %rax,%rax
1800554a2:	74 17                	je     0x1800554bb
1800554a4:	48 8b c8             	mov    %rax,%rcx
1800554a7:	e8 d4 9e fe ff       	call   0x18003f380
1800554ac:	48 8b f8             	mov    %rax,%rdi
1800554af:	eb 0c                	jmp    0x1800554bd
1800554b1:	be 9a 00 00 c0       	mov    $0xc000009a,%esi
1800554b6:	e9 d1 00 00 00       	jmp    0x18005558c
1800554bb:	33 ff                	xor    %edi,%edi
1800554bd:	48 85 ff             	test   %rdi,%rdi