180030fa0:	40 53                	rex push %rbx
180030fa2:	48 83 ec 30          	sub    $0x30,%rsp
180030fa6:	48 8b 41 08          	mov    0x8(%rcx),%rax
180030faa:	4d 8b d1             	mov    %r9,%r10
180030fad:	4d 8b d8             	mov    %r8,%r11
180030fb0:	48 83 78 10 00       	cmpq   $0x0,0x10(%rax)
180030fb5:	75 07                	jne    0x180030fbe
180030fb7:	bb 0a 00 00 80       	mov    $0x8000000a,%ebx
180030fbc:	eb 36                	jmp    0x180030ff4
180030fbe:	44 8b 41 30          	mov    0x30(%rcx),%r8d
180030fc2:	48 89 54 24 28       	mov    %rdx,0x28(%rsp)
180030fc7:	c7 44 24 20 02 00 00 	movl   $0x2,0x20(%rsp)
180030fce:	00
180030fcf:	48 8b 48 10          	mov    0x10(%rax),%rcx
180030fd3:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
180030fd8:	45 8b c8             	mov    %r8d,%r9d
180030fdb:	4d 0f af c3          	imul   %r11,%r8
180030fdf:	45 0f af ca          	imul   %r10d,%r9d
180030fe3:	e8 38 83 00 00       	call   0x180039320
180030fe8:	8b d8                	mov    %eax,%ebx
180030fea:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
180030fef:	e8 98 5e 01 00       	call   0x180046e8c
180030ff4:	8b c3                	mov    %ebx,%eax
180030ff6:	48 83 c4 30          	add    $0x30,%rsp
180030ffa:	5b                   	pop    %rbx
180030ffb:	c3                   	ret
180030ffc:	cc                   	int3
180030ffd:	cc                   	int3
180030ffe:	cc                   	int3
180030fff:	cc                   	int3
180031000:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180031005:	4c 89 44 24 18       	mov    %r8,0x18(%rsp)
18003100a:	89 54 24 10          	mov    %edx,0x10(%rsp)
18003100e:	55                   	push   %rbp
18003100f:	56                   	push   %rsi
180031010:	57                   	push   %rdi
180031011:	41 54                	push   %r12
180031013:	41 55                	push   %r13
180031015:	41 56                	push   %r14
180031017:	41 57                	push   %r15
180031019:	48 8b ec             	mov    %rsp,%rbp
18003101c:	48 83 ec 30          	sub    $0x30,%rsp
180031020:	33 ff                	xor    %edi,%edi
180031022:	4d 8b f1             	mov    %r9,%r14
180031025:	41 89 79 04          	mov    %edi,0x4(%r9)
180031029:	8b df                	mov    %edi,%ebx
18003102b:	44 8b ef             	mov    %edi,%r13d
18003102e:	44 8b e7             	mov    %edi,%r12d
180031031:	85 d2                	test   %edx,%edx
180031033:	0f 84 df 00 00 00    	je     0x180031118
180031039:	4d 8d 79 08          	lea    0x8(%r9),%r15
18003103d:	48 8d 71 04          	lea    0x4(%rcx),%rsi
180031041:	0f b7 46 fc          	movzwl -0x4(%rsi),%eax
180031045:	48 8d 55 50          	lea    0x50(%rbp),%rdx
180031049:	66 89 45 f0          	mov    %ax,-0x10(%rbp)
18003104d:	48 8d 4d f0          	lea    -0x10(%rbp),%rcx
180031051:	0f b7 46 fe          	movzwl -0x2(%rsi),%eax
180031055:	66 89 45 f2          	mov    %ax,-0xe(%rbp)
180031059:	0f b7 06             	movzwl (%rsi),%eax
18003105c:	66 89 45 f4          	mov    %ax,-0xc(%rbp)
180031060:	0f b7 46 02          	movzwl 0x2(%rsi),%eax
180031064:	66 89 45 f6          	mov    %ax,-0xa(%rbp)
180031068:	48 89 75 58          	mov    %rsi,0x58(%rbp)
18003106c:	48 c7 45 f8 3b 00 3b 	movq   $0x3b003b,-0x8(%rbp)
180031073:	00
180031074:	e8 1b 2c 00 00       	call   0x180033c94
180031079:	84 c0                	test   %al,%al
18003107b:	0f 84 92 00 00 00    	je     0x180031113
180031081:	48 39 5d 50          	cmp    %rbx,0x50(%rbp)
180031085:	0f 8e 81 00 00 00    	jle    0x18003110c
18003108b:	48 8b 5d 50          	mov    0x50(%rbp),%rbx
18003108f:	49 63 c5             	movslq %r13d,%rax
180031092:	48 8b d3             	mov    %rbx,%rdx
180031095:	48 69 c8 80 96 98 00 	imul   $0x989680,%rax,%rcx
18003109c:	48 c1 ea 3f          	shr    $0x3f,%rdx
1800310a0:	48 8d 04 0b          	lea    (%rbx,%rcx,1),%rax
1800310a4:	48 c1 e9 3f          	shr    $0x3f,%rcx
1800310a8:	3b d1                	cmp    %ecx,%edx
1800310aa:	75 0b                	jne    0x1800310b7
1800310ac:	48 8b c8             	mov    %rax,%rcx
1800310af:	48 c1 e9 3f          	shr    $0x3f,%rcx
1800310b3:	3b d1                	cmp    %ecx,%edx
1800310b5:	75 4e                	jne    0x180031105
1800310b7:	f6 46 04 01          	testb  $0x1,0x4(%rsi)
1800310bb:	48 89 45 50          	mov    %rax,0x50(%rbp)
1800310bf:	74 11                	je     0x1800310d2
1800310c1:	48 b9 00 00 00 00 00 	movabs $0x8000000000000000,%rcx
1800310c8:	00 00 80
1800310cb:	48 0b c1             	or     %rcx,%rax
1800310ce:	48 89 45 50          	mov    %rax,0x50(%rbp)
1800310d2:	49 89 07             	mov    %rax,(%r15)
1800310d5:	41 ff c4             	inc    %r12d
1800310d8:	48 8b 45 58          	mov    0x58(%rbp),%rax
1800310dc:	49 83 c7 08          	add    $0x8,%r15
1800310e0:	41 ff 46 04          	incl   0x4(%r14)
1800310e4:	48 83 c6 0c          	add    $0xc,%rsi
1800310e8:	0f b7 40 04          	movzwl 0x4(%rax),%eax
1800310ec:	66 f7 d0             	not    %ax
1800310ef:	83 e0 01             	and    $0x1,%eax
1800310f2:	45 8d 6c 45 00       	lea    0x0(%r13,%rax,2),%r13d
1800310f7:	41 ff cd             	dec    %r13d
1800310fa:	44 3b 65 48          	cmp    0x48(%rbp),%r12d
1800310fe:	73 18                	jae    0x180031118
180031100:	e9 3c ff ff ff       	jmp    0x180031041
180031105:	bf 07 00 00 00       	mov    $0x7,%edi
18003110a:	eb 0c                	jmp    0x180031118
18003110c:	bf 05 00 00 00       	mov    $0x5,%edi
180031111:	eb 05                	jmp    0x180031118
180031113:	bf 04 00 00 00       	mov    $0x4,%edi
180031118:	48 8b 5c 24 70       	mov    0x70(%rsp),%rbx
18003111d:	8b c7                	mov    %edi,%eax
18003111f:	48 83 c4 30          	add    $0x30,%rsp
180031123:	41 5f                	pop    %r15
180031125:	41 5e                	pop    %r14
180031127:	41 5d                	pop    %r13
180031129:	41 5c                	pop    %r12
18003112b:	5f                   	pop    %rdi
18003112c:	5e                   	pop    %rsi
18003112d:	5d                   	pop    %rbp
18003112e:	c3                   	ret
18003112f:	cc                   	int3
180031130:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
180031135:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
18003113a:	56                   	push   %rsi
18003113b:	57                   	push   %rdi
18003113c:	41 54                	push   %r12
18003113e:	41 56                	push   %r14
180031140:	41 57                	push   %r15
180031142:	48 83 ec 30          	sub    $0x30,%rsp
180031146:	48 8b 3d 73 3c 17 00 	mov    0x173c73(%rip),%rdi        # 0x1801a4dc0
18003114d:	4d 8b f9             	mov    %r9,%r15
180031150:	41 83 21 00          	andl   $0x0,(%r9)
180031154:	41 8a f0             	mov    %r8b,%sil
180031157:	8b ea                	mov    %edx,%ebp
180031159:	4c 8b f1             	mov    %rcx,%r14
18003115c:	48 8d 9f 00 10 00 00 	lea    0x1000(%rdi),%rbx
180031163:	48 85 ff             	test   %rdi,%rdi
180031166:	74 13                	je     0x18003117b
180031168:	45 33 c9             	xor    %r9d,%r9d
18003116b:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
180031170:	45 33 c0             	xor    %r8d,%r8d
180031173:	48 8b cf             	mov    %rdi,%rcx
180031176:	e8 11 c4 06 00       	call   0x18009d58c
18003117b:	48 85 db             	test   %rbx,%rbx
18003117e:	74 13                	je     0x180031193
180031180:	45 33 c9             	xor    %r9d,%r9d
180031183:	48 8d 54 24 78       	lea    0x78(%rsp),%rdx
180031188:	45 33 c0             	xor    %r8d,%r8d
18003118b:	48 8b cb             	mov    %rbx,%rcx
18003118e:	e8 f9 c3 06 00       	call   0x18009d58c
180031193:	48 c7 44 24 60 db 00 	movq   $0xdb,0x60(%rsp)
18003119a:	00 00
18003119c:	48 83 67 08 00       	andq   $0x0,0x8(%rdi)
1800311a1:	8b 4f 08             	mov    0x8(%rdi),%ecx
1800311a4:	8b c1                	mov    %ecx,%eax
1800311a6:	48 83 0f ff          	orq    $0xffffffffffffffff,(%rdi)
1800311aa:	83 e0 fc             	and    $0xfffffffc,%eax
1800311ad:	83 c9 03             	or     $0x3,%ecx
1800311b0:	40 84 f6             	test   %sil,%sil
1800311b3:	0f 44 c8             	cmove  %eax,%ecx
1800311b6:	49 c1 ee 0c          	shr    $0xc,%r14
1800311ba:	89 4f 08             	mov    %ecx,0x8(%rdi)
1800311bd:	85 ed                	test   %ebp,%ebp
1800311bf:	0f 84 82 00 00 00    	je     0x180031247
1800311c5:	8b 5c 24 64          	mov    0x64(%rsp),%ebx
1800311c9:	41 bc ff 0f 00 00    	mov    $0xfff,%r12d
1800311cf:	81 fd fe 01 00 00    	cmp    $0x1fe,%ebp
1800311d5:	76 0e                	jbe    0x1800311e5
1800311d7:	81 e3 fe f1 ff ff    	and    $0xfffff1fe,%ebx
1800311dd:	81 cb fe 01 00 00    	or     $0x1fe,%ebx
1800311e3:	eb 09                	jmp    0x1800311ee
1800311e5:	8b c3                	mov    %ebx,%eax
1800311e7:	33 c5                	xor    %ebp,%eax
1800311e9:	41 23 c4             	and    %r12d,%eax
1800311ec:	33 d8                	xor    %eax,%ebx
1800311ee:	8b f3                	mov    %ebx,%esi
1800311f0:	89 5c 24 64          	mov    %ebx,0x64(%rsp)
1800311f4:	41 23 f4             	and    %r12d,%esi
1800311f7:	76 19                	jbe    0x180031212
1800311f9:	49 8b c6             	mov    %r14,%rax
1800311fc:	8b d6                	mov    %esi,%edx
1800311fe:	48 8d 4f 10          	lea    0x10(%rdi),%rcx
180031202:	48 89 01             	mov    %rax,(%rcx)
180031205:	48 ff c0             	inc    %rax
180031208:	48 8d 49 08          	lea    0x8(%rcx),%rcx
18003120c:	48 83 ea 01          	sub    $0x1,%rdx
180031210:	75 f0                	jne    0x180031202
180031212:	48 8b 05 ef 42 16 00 	mov    0x1642ef(%rip),%rax        # 0x180195508
180031219:	4c 8b 44 24 78       	mov    0x78(%rsp),%r8
18003121e:	48 8b 54 24 20       	mov    0x20(%rsp),%rdx
180031223:	48 8b 4c 24 60       	mov    0x60(%rsp),%rcx
180031228:	ff d0                	call   *%rax
18003122a:	0f 1f 00             	nopl   (%rax)
18003122d:	48 c1 e8 20          	shr    $0x20,%rax
180031231:	41 23 c4             	and    %r12d,%eax
180031234:	41 01 07             	add    %eax,(%r15)
180031237:	3b c6                	cmp    %esi,%eax
180031239:	75 26                	jne    0x180031261
18003123b:	8b c3                	mov    %ebx,%eax
18003123d:	49 23 c4             	and    %r12,%rax
180031240:	4c 03 f0             	add    %rax,%r14
180031243:	2b ee                	sub    %esi,%ebp
180031245:	75 88                	jne    0x1800311cf
180031247:	33 c0                	xor    %eax,%eax
180031249:	48 8b 5c 24 68       	mov    0x68(%rsp),%rbx
18003124e:	48 8b 6c 24 70       	mov    0x70(%rsp),%rbp
180031253:	48 83 c4 30          	add    $0x30,%rsp
180031257:	41 5f                	pop    %r15
180031259:	41 5e                	pop    %r14
18003125b:	41 5c                	pop    %r12
18003125d:	5f                   	pop    %rdi
18003125e:	5e                   	pop    %rsi
18003125f:	c3                   	ret
180031260:	cc                   	int3
180031261:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
180031266:	eb e1                	jmp    0x180031249
180031268:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
18003126d:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
180031272:	57                   	push   %rdi
180031273:	48 83 ec 20          	sub    $0x20,%rsp
180031277:	41 8b f0             	mov    %r8d,%esi
18003127a:	41 8a f9             	mov    %r9b,%dil
18003127d:	48 8b c2             	mov    %rdx,%rax
180031280:	48 8b d9             	mov    %rcx,%rbx
180031283:	48 85 d2             	test   %rdx,%rdx
180031286:	74 11                	je     0x180031299
180031288:	8b d6                	mov    %esi,%edx
18003128a:	45 33 c0             	xor    %r8d,%r8d
18003128d:	48 c1 e2 0c          	shl    $0xc,%rdx
180031291:	48 8b c8             	mov    %rax,%rcx
180031294:	e8 d3 95 06 00       	call   0x18009a86c
180031299:	48 85 db             	test   %rbx,%rbx
18003129c:	74 41                	je     0x1800312df
18003129e:	8b 05 14 3b 17 00    	mov    0x173b14(%rip),%eax        # 0x1801a4db8
1800312a4:	83 f8 02             	cmp    $0x2,%eax
1800312a7:	73 09                	jae    0x1800312b2
1800312a9:	40 84 ff             	test   %dil,%dil
1800312ac:	74 29                	je     0x1800312d7
1800312ae:	85 c0                	test   %eax,%eax
1800312b0:	74 25                	je     0x1800312d7
1800312b2:	e8 e5 05 09 00       	call   0x1800c189c
1800312b7:	48 2b d8             	sub    %rax,%rbx
1800312ba:	4c 8d 4c 24 30       	lea    0x30(%rsp),%r9
1800312bf:	48 8b cb             	mov    %rbx,%rcx
1800312c2:	45 33 c0             	xor    %r8d,%r8d
1800312c5:	8b d6                	mov    %esi,%edx
1800312c7:	e8 64 fe ff ff       	call   0x180031130
1800312cc:	85 c0                	test   %eax,%eax
1800312ce:	79 07                	jns    0x1800312d7
1800312d0:	b9 3a 00 00 00       	mov    $0x3a,%ecx
1800312d5:	cd 29                	int    $0x29
1800312d7:	48 8b cb             	mov    %rbx,%rcx
1800312da:	e8 7d 68 06 00       	call   0x180097b5c
1800312df:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
1800312e4:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
1800312e9:	48 83 c4 20          	add    $0x20,%rsp
1800312ed:	5f                   	pop    %rdi
1800312ee:	c3                   	ret
1800312ef:	cc                   	int3
1800312f0:	48 8b c4             	mov    %rsp,%rax
1800312f3:	48 89 58 08          	mov    %rbx,0x8(%rax)
1800312f7:	48 89 68 10          	mov    %rbp,0x10(%rax)
1800312fb:	56                   	push   %rsi
1800312fc:	57                   	push   %rdi
1800312fd:	41 54                	push   %r12
1800312ff:	41 56                	push   %r14
180031301:	41 57                	push   %r15
180031303:	48 83 ec 50          	sub    $0x50,%rsp
180031307:	33 ff                	xor    %edi,%edi
180031309:	45 8b f0             	mov    %r8d,%r14d
18003130c:	89 78 b8             	mov    %edi,-0x48(%rax)
18003130f:	41 8a e9             	mov    %r9b,%bpl
180031312:	48 89 78 b0          	mov    %rdi,-0x50(%rax)
180031316:	4c 8b fa             	mov    %rdx,%r15
180031319:	4c 8b e1             	mov    %rcx,%r12
18003131c:	48 89 78 d0          	mov    %rdi,-0x30(%rax)
180031320:	48 89 78 c8          	mov    %rdi,-0x38(%rax)
180031324:	48 8d 4c 24 40       	lea    0x40(%rsp),%rcx
180031329:	8b 84 24 a0 00 00 00 	mov    0xa0(%rsp),%eax
180031330:	45 33 c9             	xor    %r9d,%r9d
180031333:	41 8b f0             	mov    %r8d,%esi
180031336:	41 8b d6             	mov    %r14d,%edx
180031339:	41 b8 04 00 00 d0    	mov    $0xd0000004,%r8d
18003133f:	89 44 24 20          	mov    %eax,0x20(%rsp)
180031343:	e8 a4 65 06 00       	call   0x1800978ec
180031348:	85 c0                	test   %eax,%eax
18003134a:	78 7d                	js     0x1800313c9
18003134c:	8b 05 66 3a 17 00    	mov    0x173a66(%rip),%eax        # 0x1801a4db8
180031352:	83 f8 02             	cmp    $0x2,%eax
180031355:	73 10                	jae    0x180031367
180031357:	40 84 ed             	test   %bpl,%bpl
18003135a:	74 04                	je     0x180031360
18003135c:	85 c0                	test   %eax,%eax
18003135e:	75 07                	jne    0x180031367
180031360:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
180031365:	eb 2e                	jmp    0x180031395
180031367:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
18003136c:	4c 8d 8c 24 90 00 00 	lea    0x90(%rsp),%r9
180031373:	00
180031374:	48 8b cb             	mov    %rbx,%rcx
180031377:	41 b0 01             	mov    $0x1,%r8b
18003137a:	41 8b d6             	mov    %r14d,%edx
18003137d:	e8 ae fd ff ff       	call   0x180031130
180031382:	85 c0                	test   %eax,%eax
180031384:	79 07                	jns    0x18003138d
180031386:	b9 3a 00 00 00       	mov    $0x3a,%ecx
18003138b:	cd 29                	int    $0x29
18003138d:	e8 0a 05 09 00       	call   0x1800c189c
180031392:	48 03 d8             	add    %rax,%rbx
180031395:	48 c1 e6 0c          	shl    $0xc,%rsi
180031399:	48 8d 4c 24 48       	lea    0x48(%rsp),%rcx
18003139e:	4c 8b c6             	mov    %rsi,%r8
1800313a1:	89 7c 24 20          	mov    %edi,0x20(%rsp)
1800313a5:	45 33 c9             	xor    %r9d,%r9d
1800313a8:	48 8b d3             	mov    %rbx,%rdx
1800313ab:	e8 70 91 06 00       	call   0x18009a520
1800313b0:	85 c0                	test   %eax,%eax
1800313b2:	78 0e                	js     0x1800313c2
1800313b4:	48 8b 44 24 48       	mov    0x48(%rsp),%rax
1800313b9:	49 89 07             	mov    %rax,(%r15)
1800313bc:	49 89 1c 24          	mov    %rbx,(%r12)
1800313c0:	eb 1d                	jmp    0x1800313df
1800313c2:	48 8b 7c 24 48       	mov    0x48(%rsp),%rdi
1800313c7:	eb 05                	jmp    0x1800313ce
1800313c9:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
1800313ce:	44 8a cd             	mov    %bpl,%r9b
1800313d1:	45 8b c6             	mov    %r14d,%r8d
1800313d4:	48 8b d7             	mov    %rdi,%rdx
1800313d7:	48 8b cb             	mov    %rbx,%rcx
1800313da:	e8 89 fe ff ff       	call   0x180031268
1800313df:	4c 8d 5c 24 50       	lea    0x50(%rsp),%r11
1800313e4:	33 c0                	xor    %eax,%eax
1800313e6:	49 8b 5b 30          	mov    0x30(%r11),%rbx
1800313ea:	49 8b 6b 38          	mov    0x38(%r11),%rbp
1800313ee:	49 8b e3             	mov    %r11,%rsp
1800313f1:	41 5f                	pop    %r15
1800313f3:	41 5e                	pop    %r14
1800313f5:	41 5c                	pop    %r12
1800313f7:	5f                   	pop    %rdi
1800313f8:	5e                   	pop    %rsi
1800313f9:	c3                   	ret
1800313fa:	cc                   	int3
1800313fb:	cc                   	int3
1800313fc:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180031401:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
180031406:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
18003140b:	57                   	push   %rdi
18003140c:	41 56                	push   %r14
18003140e:	41 57                	push   %r15
180031410:	48 83 ec 40          	sub    $0x40,%rsp