18005a051:	c7 43 2c 02 00 00 00 	movl   $0x2,0x2c(%rbx)
18005a058:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
18005a05d:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
18005a062:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
18005a067:	48 83 c4 20          	add    $0x20,%rsp
18005a06b:	5f                   	pop    %rdi
18005a06c:	c3                   	ret
18005a06d:	cc                   	int3
18005a06e:	cc                   	int3
18005a06f:	cc                   	int3
18005a070:	c6 05 61 b3 13 00 00 	movb   $0x0,0x13b361(%rip)        # 0x1801953d8
18005a077:	33 c0                	xor    %eax,%eax
18005a079:	c3                   	ret
18005a07a:	cc                   	int3
18005a07b:	cc                   	int3
18005a07c:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18005a081:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
18005a086:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
18005a08b:	57                   	push   %rdi
18005a08c:	41 56                	push   %r14
18005a08e:	41 57                	push   %r15
18005a090:	48 83 ec 20          	sub    $0x20,%rsp
18005a094:	49 8b e8             	mov    %r8,%rbp
18005a097:	48 8b da             	mov    %rdx,%rbx
18005a09a:	48 8b f9             	mov    %rcx,%rdi
18005a09d:	41 bf 40 0e 00 00    	mov    $0xe40,%r15d
18005a0a3:	45 8b c7             	mov    %r15d,%r8d
18005a0a6:	48 8b cd             	mov    %rbp,%rcx
18005a0a9:	33 d2                	xor    %edx,%edx
18005a0ab:	e8 d0 bb 0d 00       	call   0x180135c80
18005a0b0:	4c 8d b7 90 1e 00 00 	lea    0x1e90(%rdi),%r14
18005a0b7:	45 8b c7             	mov    %r15d,%r8d
18005a0ba:	49 8b ce             	mov    %r14,%rcx
18005a0bd:	33 d2                	xor    %edx,%edx
18005a0bf:	e8 bc bb 0d 00       	call   0x180135c80
18005a0c4:	4c 8b 87 50 0e 00 00 	mov    0xe50(%rdi),%r8
18005a0cb:	4c 8b cd             	mov    %rbp,%r9
18005a0ce:	48 8b d3             	mov    %rbx,%rdx
18005a0d1:	48 8b cf             	mov    %rdi,%rcx
18005a0d4:	e8 b7 4f ff ff       	call   0x18004f090
18005a0d9:	4c 8b 87 58 0e 00 00 	mov    0xe58(%rdi),%r8
18005a0e0:	4d 8b ce             	mov    %r14,%r9
18005a0e3:	48 8b d3             	mov    %rbx,%rdx
18005a0e6:	48 8b cf             	mov    %rdi,%rcx
18005a0e9:	8b f0                	mov    %eax,%esi
18005a0eb:	e8 a0 4f ff ff       	call   0x18004f090
18005a0f0:	8b d8                	mov    %eax,%ebx
18005a0f2:	85 c0                	test   %eax,%eax
18005a0f4:	78 1b                	js     0x18005a111
18005a0f6:	85 f6                	test   %esi,%esi
18005a0f8:	78 09                	js     0x18005a103
18005a0fa:	49 8b 0e             	mov    (%r14),%rcx
18005a0fd:	48 39 4d 00          	cmp    %rcx,0x0(%rbp)
18005a101:	73 0e                	jae    0x18005a111
18005a103:	48 8b cd             	mov    %rbp,%rcx
18005a106:	49 8b d6             	mov    %r14,%rdx
18005a109:	4d 8b c7             	mov    %r15,%r8
18005a10c:	e8 af b8 0d 00       	call   0x1801359c0
18005a111:	85 f6                	test   %esi,%esi
18005a113:	79 04                	jns    0x18005a119
18005a115:	85 db                	test   %ebx,%ebx
18005a117:	78 02                	js     0x18005a11b
18005a119:	33 f6                	xor    %esi,%esi
18005a11b:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
18005a120:	8b c6                	mov    %esi,%eax
18005a122:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
18005a127:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
18005a12c:	48 83 c4 20          	add    $0x20,%rsp
18005a130:	41 5f                	pop    %r15
18005a132:	41 5e                	pop    %r14
18005a134:	5f                   	pop    %rdi
18005a135:	c3                   	ret
18005a136:	cc                   	int3
18005a137:	cc                   	int3
18005a138:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18005a13d:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
18005a142:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
18005a147:	57                   	push   %rdi
18005a148:	41 56                	push   %r14
18005a14a:	41 57                	push   %r15
18005a14c:	48 83 ec 30          	sub    $0x30,%rsp
18005a150:	4c 8d b1 90 1e 00 00 	lea    0x1e90(%rcx),%r14
18005a157:	4c 8b fa             	mov    %rdx,%r15
18005a15a:	49 ff 06             	incq   (%r14)
18005a15d:	48 8b f9             	mov    %rcx,%rdi
18005a160:	49 8b 06             	mov    (%r14),%rax
18005a163:	a8 01                	test   $0x1,%al
18005a165:	74 09                	je     0x18005a170
18005a167:	48 8b 99 50 0e 00 00 	mov    0xe50(%rcx),%rbx
18005a16e:	eb 07                	jmp    0x18005a177
18005a170:	48 8b 99 58 0e 00 00 	mov    0xe58(%rcx),%rbx
18005a177:	48 8d b1 90 0e 00 00 	lea    0xe90(%rcx),%rsi
18005a17e:	33 d2                	xor    %edx,%edx
18005a180:	48 8b ce             	mov    %rsi,%rcx
18005a183:	41 b8 00 10 00 00    	mov    $0x1000,%r8d
18005a189:	e8 f2 ba 0d 00       	call   0x180135c80
18005a18e:	44 8b 8f 4c 0e 00 00 	mov    0xe4c(%rdi),%r9d
18005a195:	4c 8b c3             	mov    %rbx,%r8
18005a198:	48 8b d7             	mov    %rdi,%rdx
18005a19b:	44 89 4c 24 20       	mov    %r9d,0x20(%rsp)
18005a1a0:	48 8b ce             	mov    %rsi,%rcx
18005a1a3:	e8 4c 52 ff ff       	call   0x18004f3f4
18005a1a8:	48 89 5e 28          	mov    %rbx,0x28(%rsi)
18005a1ac:	48 8d 4e 30          	lea    0x30(%rsi),%rcx
18005a1b0:	8b 46 40             	mov    0x40(%rsi),%eax
18005a1b3:	41 b8 40 0e 00 00    	mov    $0xe40,%r8d
18005a1b9:	48 03 c8             	add    %rax,%rcx
18005a1bc:	49 8b d6             	mov    %r14,%rdx
18005a1bf:	48 83 64 30 08 00    	andq   $0x0,0x8(%rax,%rsi,1)
18005a1c5:	48 83 64 30 10 00    	andq   $0x0,0x10(%rax,%rsi,1)
18005a1cb:	83 64 30 2c 00       	andl   $0x0,0x2c(%rax,%rsi,1)
18005a1d0:	83 64 30 1c 00       	andl   $0x0,0x1c(%rax,%rsi,1)
18005a1d5:	83 64 30 24 00       	andl   $0x0,0x24(%rax,%rsi,1)
18005a1da:	48 89 1c 30          	mov    %rbx,(%rax,%rsi,1)
18005a1de:	44 89 44 30 18       	mov    %r8d,0x18(%rax,%rsi,1)
18005a1e3:	c7 44 30 20 30 00 00 	movl   $0x30,0x20(%rax,%rsi,1)
18005a1ea:	00
18005a1eb:	c7 44 30 28 01 00 00 	movl   $0x1,0x28(%rax,%rsi,1)
18005a1f2:	00
18005a1f3:	e8 c8 b7 0d 00       	call   0x1801359c0
18005a1f8:	48 8b d6             	mov    %rsi,%rdx
18005a1fb:	48 8b cf             	mov    %rdi,%rcx
18005a1fe:	e8 9d 52 ff ff       	call   0x18004f4a0
18005a203:	44 8b f0             	mov    %eax,%r14d
18005a206:	85 c0                	test   %eax,%eax
18005a208:	78 5b                	js     0x18005a265
18005a20a:	8b 97 48 0e 00 00    	mov    0xe48(%rdi),%edx
18005a210:	4c 8b c6             	mov    %rsi,%r8
18005a213:	48 8b 4f 08          	mov    0x8(%rdi),%rcx
18005a217:	8b 6e 34             	mov    0x34(%rsi),%ebp
18005a21a:	0f af ea             	imul   %edx,%ebp
18005a21d:	8b c3                	mov    %ebx,%eax
18005a21f:	48 03 c8             	add    %rax,%rcx
18005a222:	48 0f af ca          	imul   %rdx,%rcx
18005a226:	44 8b cd             	mov    %ebp,%r9d
18005a229:	b2 04                	mov    $0x4,%dl
18005a22b:	48 89 4c 24 20       	mov    %rcx,0x20(%rsp)
18005a230:	49 8b cf             	mov    %r15,%rcx
18005a233:	e8 a0 c7 fe ff       	call   0x1800469d8
18005a238:	44 8b f0             	mov    %eax,%r14d
18005a23b:	85 c0                	test   %eax,%eax
18005a23d:	78 26                	js     0x18005a265
18005a23f:	48 8b 97 60 2e 00 00 	mov    0x2e60(%rdi),%rdx
18005a246:	48 85 d2             	test   %rdx,%rdx
18005a249:	74 17                	je     0x18005a262
18005a24b:	8b 8f 48 0e 00 00    	mov    0xe48(%rdi),%ecx
18005a251:	0f af cb             	imul   %ebx,%ecx
18005a254:	44 8b c5             	mov    %ebp,%r8d
18005a257:	48 03 ca             	add    %rdx,%rcx
18005a25a:	48 8b d6             	mov    %rsi,%rdx
18005a25d:	e8 5e b7 0d 00       	call   0x1801359c0
18005a262:	48 ff 07             	incq   (%rdi)
18005a265:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
18005a26a:	41 8b c6             	mov    %r14d,%eax
18005a26d:	48 8b 6c 24 58       	mov    0x58(%rsp),%rbp
18005a272:	48 8b 74 24 60       	mov    0x60(%rsp),%rsi
18005a277:	48 83 c4 30          	add    $0x30,%rsp
18005a27b:	41 5f                	pop    %r15
18005a27d:	41 5e                	pop    %r14
18005a27f:	5f                   	pop    %rdi
18005a280:	c3                   	ret
18005a281:	cc                   	int3
18005a282:	cc                   	int3
18005a283:	cc                   	int3
18005a284:	4c 89 4c 24 20       	mov    %r9,0x20(%rsp)
18005a289:	48 89 54 24 10       	mov    %rdx,0x10(%rsp)
18005a28e:	55                   	push   %rbp
18005a28f:	53                   	push   %rbx
18005a290:	56                   	push   %rsi
18005a291:	57                   	push   %rdi
18005a292:	41 54                	push   %r12
18005a294:	41 55                	push   %r13
18005a296:	41 56                	push   %r14
18005a298:	41 57                	push   %r15
18005a29a:	48 8b ec             	mov    %rsp,%rbp
18005a29d:	48 83 ec 58          	sub    $0x58,%rsp
18005a2a1:	49 8b d8             	mov    %r8,%rbx
18005a2a4:	4d 8b d1             	mov    %r9,%r10
18005a2a7:	45 33 c0             	xor    %r8d,%r8d
18005a2aa:	4c 8b da             	mov    %rdx,%r11
18005a2ad:	83 b9 40 0e 00 00 04 	cmpl   $0x4,0xe40(%rcx)
18005a2b4:	48 8b f1             	mov    %rcx,%rsi
18005a2b7:	4c 89 45 e0          	mov    %r8,-0x20(%rbp)
18005a2bb:	41 8b f8             	mov    %r8d,%edi
18005a2be:	4c 89 45 d8          	mov    %r8,-0x28(%rbp)
18005a2c2:	45 8b f0             	mov    %r8d,%r14d
18005a2c5:	44 89 45 48          	mov    %r8d,0x48(%rbp)
18005a2c9:	75 0a                	jne    0x18005a2d5
18005a2cb:	c7 81 40 0e 00 00 05 	movl   $0x5,0xe40(%rcx)
18005a2d2:	00 00 00
18005a2d5:	4c 8b 65 70          	mov    0x70(%rbp),%r12
18005a2d9:	48 8b c3             	mov    %rbx,%rax
18005a2dc:	48 c1 e8 20          	shr    $0x20,%rax
18005a2e0:	48 89 45 e8          	mov    %rax,-0x18(%rbp)
18005a2e4:	41 3b 44 24 04       	cmp    0x4(%r12),%eax
18005a2e9:	75 15                	jne    0x18005a300
18005a2eb:	41 8b 0c 24          	mov    (%r12),%ecx
18005a2ef:	3b d9                	cmp    %ecx,%ebx
18005a2f1:	72 0d                	jb     0x18005a300
18005a2f3:	41 8b 54 24 08       	mov    0x8(%r12),%edx
18005a2f8:	8b c3                	mov    %ebx,%eax
18005a2fa:	2b c1                	sub    %ecx,%eax
18005a2fc:	3b c2                	cmp    %edx,%eax
18005a2fe:	72 0c                	jb     0x18005a30c
18005a300:	41 8b 0c 24          	mov    (%r12),%ecx
18005a304:	41 8b d0             	mov    %r8d,%edx
18005a307:	45 89 44 24 08       	mov    %r8d,0x8(%r12)
18005a30c:	85 d2                	test   %edx,%edx
18005a30e:	74 6d                	je     0x18005a37d
18005a310:	44 8b 8e 48 0e 00 00 	mov    0xe48(%rsi),%r9d
18005a317:	8b fa                	mov    %edx,%edi
18005a319:	8b 45 68             	mov    0x68(%rbp),%eax
18005a31c:	33 d2                	xor    %edx,%edx
18005a31e:	41 f7 f1             	div    %r9d
18005a321:	45 8b e9             	mov    %r9d,%r13d
18005a324:	44 8b c3             	mov    %ebx,%r8d
18005a327:	44 2b c1             	sub    %ecx,%r8d
18005a32a:	8b c8                	mov    %eax,%ecx
18005a32c:	45 0f af e8          	imul   %r8d,%r13d
18005a330:	41 2b f8             	sub    %r8d,%edi
18005a333:	43 8d 04 00          	lea    (%r8,%r8,1),%eax
18005a337:	4d 03 ea             	add    %r10,%r13
18005a33a:	3b c1                	cmp    %ecx,%eax
18005a33c:	72 32                	jb     0x18005a370
18005a33e:	44 0f af cf          	imul   %edi,%r9d
18005a342:	49 8b d5             	mov    %r13,%rdx
18005a345:	49 8b ca             	mov    %r10,%rcx
18005a348:	45 8b c1             	mov    %r9d,%r8d
18005a34b:	e8 70 b6 0d 00       	call   0x1801359c0
18005a350:	4c 8b 55 60          	mov    0x60(%rbp),%r10
18005a354:	48 8b c3             	mov    %rbx,%rax
18005a357:	4c 8b 5d 50          	mov    0x50(%rbp),%r11
18005a35b:	4d 8b ea             	mov    %r10,%r13
18005a35e:	49 89 1c 24          	mov    %rbx,(%r12)
18005a362:	41 89 7c 24 08       	mov    %edi,0x8(%r12)
18005a367:	44 8b 8e 48 0e 00 00 	mov    0xe48(%rsi),%r9d
18005a36e:	eb 04                	jmp    0x18005a374
18005a370:	49 8b 04 24          	mov    (%r12),%rax
18005a374:	41 0f af f9          	imul   %r9d,%edi
18005a378:	45 33 c0             	xor    %r8d,%r8d
18005a37b:	eb 0a                	jmp    0x18005a387
18005a37d:	49 89 1c 24          	mov    %rbx,(%r12)
18005a381:	4d 8b ea             	mov    %r10,%r13
18005a384:	48 8b c3             	mov    %rbx,%rax
18005a387:	48 3b c3             	cmp    %rbx,%rax
18005a38a:	0f 85 88 00 00 00    	jne    0x18005a418
18005a390:	45 88 44 24 0c       	mov    %r8b,0xc(%r12)
18005a395:	33 d2                	xor    %edx,%edx
18005a397:	8b 8e 48 0e 00 00    	mov    0xe48(%rsi),%ecx
18005a39d:	4c 8b 46 08          	mov    0x8(%rsi),%r8
18005a3a1:	44 8b be 58 0e 00 00 	mov    0xe58(%rsi),%r15d
18005a3a8:	8b c3                	mov    %ebx,%eax
18005a3aa:	44 2b fb             	sub    %ebx,%r15d
18005a3ad:	4c 03 c0             	add    %rax,%r8
18005a3b0:	8b 45 68             	mov    0x68(%rbp),%eax
18005a3b3:	f7 f1                	div    %ecx
18005a3b5:	4c 0f af c1          	imul   %rcx,%r8
18005a3b9:	44 3b f8             	cmp    %eax,%r15d
18005a3bc:	77 14                	ja     0x18005a3d2
18005a3be:	44 0f af f9          	imul   %ecx,%r15d
18005a3c2:	3b 9e 4c 0e 00 00    	cmp    0xe4c(%rsi),%ebx
18005a3c8:	74 0c                	je     0x18005a3d6
18005a3ca:	41 c6 44 24 0c 01    	movb   $0x1,0xc(%r12)
18005a3d0:	eb 04                	jmp    0x18005a3d6
18005a3d2:	44 8b 7d 68          	mov    0x68(%rbp),%r15d
18005a3d6:	44 3b ff             	cmp    %edi,%r15d
18005a3d9:	76 3d                	jbe    0x18005a418
18005a3db:	8b c7                	mov    %edi,%eax
18005a3dd:	45 8b cf             	mov    %r15d,%r9d
18005a3e0:	44 2b cf             	sub    %edi,%r9d
18005a3e3:	b2 03                	mov    $0x3,%dl
18005a3e5:	4a 8d 0c 00          	lea    (%rax,%r8,1),%rcx
18005a3e9:	48 89 4c 24 20       	mov    %rcx,0x20(%rsp)
18005a3ee:	4e 8d 04 10          	lea    (%rax,%r10,1),%r8
18005a3f2:	49 8b cb             	mov    %r11,%rcx
18005a3f5:	e8 de c5 fe ff       	call   0x1800469d8
18005a3fa:	33 c9                	xor    %ecx,%ecx
18005a3fc:	44 8b f0             	mov    %eax,%r14d
18005a3ff:	85 c0                	test   %eax,%eax
18005a401:	78 17                	js     0x18005a41a
18005a403:	33 d2                	xor    %edx,%edx
18005a405:	41 8b c7             	mov    %r15d,%eax
18005a408:	f7 b6 48 0e 00 00    	divl   0xe48(%rsi)
18005a40e:	41 8b ff             	mov    %r15d,%edi
18005a411:	41 89 44 24 08       	mov    %eax,0x8(%r12)
18005a416:	eb 02                	jmp    0x18005a41a
18005a418:	33 c9                	xor    %ecx,%ecx
18005a41a:	45 85 f6             	test   %r14d,%r14d
18005a41d:	0f 48 f9             	cmovs  %ecx,%edi
18005a420:	89 7d 58             	mov    %edi,0x58(%rbp)
18005a423:	0f 88 f8 02 00 00    	js     0x18005a721
18005a429:	44 8b be 48 0e 00 00 	mov    0xe48(%rsi),%r15d
18005a430:	4d 8b c5             	mov    %r13,%r8
18005a433:	88 4c 24 20          	mov    %cl,0x20(%rsp)
18005a437:	45 8b cf             	mov    %r15d,%r9d
18005a43a:	48 8b ce             	mov    %rsi,%rcx
18005a43d:	48 8b d3             	mov    %rbx,%rdx
18005a440:	e8 33 4d ff ff       	call   0x18004f178
18005a445:	44 8b f0             	mov    %eax,%r14d
18005a448:	3d 1e 00 e7 c0       	cmp    $0xc0e7001e,%eax
18005a44d:	75 27                	jne    0x18005a476
18005a44f:	45 8b 7d 34          	mov    0x34(%r13),%r15d
18005a453:	44 0f af be 48 0e 00 	imul   0xe48(%rsi),%r15d
18005a45a:	00
18005a45b:	44 3b ff             	cmp    %edi,%r15d
18005a45e:	77 16                	ja     0x18005a476
18005a460:	45 8b cf             	mov    %r15d,%r9d
18005a463:	c6 44 24 20 00       	movb   $0x0,0x20(%rsp)
18005a468:	48 8b d3             	mov    %rbx,%rdx
18005a46b:	48 8b ce             	mov    %rsi,%rcx
18005a46e:	e8 05 4d ff ff       	call   0x18004f178
18005a473:	44 8b f0             	mov    %eax,%r14d
18005a476:	33 d2                	xor    %edx,%edx
18005a478:	38 95 88 00 00 00    	cmp    %dl,0x88(%rbp)
18005a47e:	75 0d                	jne    0x18005a48d
18005a480:	48 39 96 60 2e 00 00 	cmp    %rdx,0x2e60(%rsi)
18005a487:	0f 84 b1 00 00 00    	je     0x18005a53e
18005a48d:	45 85 f6             	test   %r14d,%r14d
18005a490:	0f 88 b8 01 00 00    	js     0x18005a64e
18005a496:	41 8b 4d 30          	mov    0x30(%r13),%ecx
18005a49a:	41 2b 4d 34          	sub    0x34(%r13),%ecx
18005a49e:	0f af 8e 48 0e 00 00 	imul   0xe48(%rsi),%ecx
18005a4a5:	89 4d 48             	mov    %ecx,0x48(%rbp)
18005a4a8:	85 c9                	test   %ecx,%ecx
18005a4aa:	0f 84 8e 00 00 00    	je     0x18005a53e
18005a4b0:	42 8d 04 39          	lea    (%rcx,%r15,1),%eax
18005a4b4:	3b c7                	cmp    %edi,%eax
18005a4b6:	76 64                	jbe    0x18005a51c
18005a4b8:	e8 57 c4 fe ff       	call   0x180046914
18005a4bd:	48 89 45 e0          	mov    %rax,-0x20(%rbp)
18005a4c1:	48 8b d0             	mov    %rax,%rdx
18005a4c4:	48 85 c0             	test   %rax,%rax
18005a4c7:	75 0b                	jne    0x18005a4d4
18005a4c9:	41 be 9a 00 00 c0    	mov    $0xc000009a,%r14d
18005a4cf:	e9 4d 02 00 00       	jmp    0x18005a721
18005a4d4:	48 8b 4e 08          	mov    0x8(%rsi),%rcx
18005a4d8:	4c 8b c2             	mov    %rdx,%r8
18005a4db:	44 8b 4d 48          	mov    0x48(%rbp),%r9d
18005a4df:	8b c3                	mov    %ebx,%eax
18005a4e1:	48 03 c8             	add    %rax,%rcx
18005a4e4:	48 89 55 d8          	mov    %rdx,-0x28(%rbp)
18005a4e8:	8b 86 48 0e 00 00    	mov    0xe48(%rsi),%eax
18005a4ee:	b2 03                	mov    $0x3,%dl
18005a4f0:	48 0f af c8          	imul   %rax,%rcx
18005a4f4:	41 8b c7             	mov    %r15d,%eax
18005a4f7:	48 03 c1             	add    %rcx,%rax
18005a4fa:	48 8b 4d 50          	mov    0x50(%rbp),%rcx
18005a4fe:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
18005a503:	e8 d0 c4 fe ff       	call   0x1800469d8
18005a508:	44 8b f0             	mov    %eax,%r14d