180053e66:	44 8b d0             	mov    %eax,%r10d
180053e69:	85 c0                	test   %eax,%eax
180053e6b:	0f 88 f9 00 00 00    	js     0x180053f6a
180053e71:	8b 54 24 74          	mov    0x74(%rsp),%edx
180053e75:	4c 8b 44 24 78       	mov    0x78(%rsp),%r8
180053e7a:	eb 06                	jmp    0x180053e82
180053e7c:	8b d6                	mov    %esi,%edx
180053e7e:	89 54 24 74          	mov    %edx,0x74(%rsp)
180053e82:	48 83 7f 40 00       	cmpq   $0x0,0x40(%rdi)
180053e87:	74 6f                	je     0x180053ef8
180053e89:	83 fa 01             	cmp    $0x1,%edx
180053e8c:	74 6a                	je     0x180053ef8
180053e8e:	8a 4f 2a             	mov    0x2a(%rdi),%cl
180053e91:	b8 01 00 00 00       	mov    $0x1,%eax
180053e96:	48 d3 e0             	shl    %cl,%rax
180053e99:	3b d8                	cmp    %eax,%ebx
180053e9b:	0f 42 c3             	cmovb  %ebx,%eax
180053e9e:	8b d8                	mov    %eax,%ebx
180053ea0:	49 83 f8 ff          	cmp    $0xffffffffffffffff,%r8
180053ea4:	75 36                	jne    0x180053edc
180053ea6:	48 8b 47 08          	mov    0x8(%rdi),%rax
180053eaa:	48 8b 88 50 01 00 00 	mov    0x150(%rax),%rcx
180053eb1:	80 b9 f8 00 00 00 00 	cmpb   $0x0,0xf8(%rcx)
180053eb8:	75 22                	jne    0x180053edc
180053eba:	83 b9 10 01 00 00 64 	cmpl   $0x64,0x110(%rcx)
180053ec1:	73 19                	jae    0x180053edc
180053ec3:	48 8d 54 24 78       	lea    0x78(%rsp),%rdx
180053ec8:	e8 6b b7 fe ff       	call   0x18003f638
180053ecd:	48 81 7c 24 78 00 00 	cmpq   $0x20000000,0x78(%rsp)
180053ed4:	00 20
180053ed6:	73 69                	jae    0x180053f41
180053ed8:	8b 54 24 74          	mov    0x74(%rsp),%edx
180053edc:	89 54 24 28          	mov    %edx,0x28(%rsp)
180053ee0:	44 8b cb             	mov    %ebx,%r9d
180053ee3:	49 8b d6             	mov    %r14,%rdx
180053ee6:	48 89 6c 24 20       	mov    %rbp,0x20(%rsp)
180053eeb:	4d 8b c7             	mov    %r15,%r8
180053eee:	48 8b cf             	mov    %rdi,%rcx
180053ef1:	e8 46 02 00 00       	call   0x18005413c
180053ef6:	eb 29                	jmp    0x180053f21
180053ef8:	83 fa 02             	cmp    $0x2,%edx
180053efb:	75 0e                	jne    0x180053f0b
180053efd:	8a 4f 2a             	mov    0x2a(%rdi),%cl
180053f00:	8d 42 ff             	lea    -0x1(%rdx),%eax
180053f03:	48 d3 e0             	shl    %cl,%rax
180053f06:	3b d8                	cmp    %eax,%ebx
180053f08:	0f 43 d8             	cmovae %eax,%ebx
180053f0b:	44 8b cb             	mov    %ebx,%r9d
180053f0e:	48 89 6c 24 20       	mov    %rbp,0x20(%rsp)
180053f13:	4d 8b c7             	mov    %r15,%r8
180053f16:	49 8b d6             	mov    %r14,%rdx
180053f19:	48 8b cf             	mov    %rdi,%rcx
180053f1c:	e8 67 00 00 00       	call   0x180053f88
180053f21:	44 8b d0             	mov    %eax,%r10d
180053f24:	85 c0                	test   %eax,%eax
180053f26:	78 42                	js     0x180053f6a
180053f28:	4d 85 ff             	test   %r15,%r15
180053f2b:	75 1c                	jne    0x180053f49
180053f2d:	8b c3                	mov    %ebx,%eax
180053f2f:	48 03 e8             	add    %rax,%rbp
180053f32:	49 3b ed             	cmp    %r13,%rbp
180053f35:	73 12                	jae    0x180053f49
180053f37:	4c 8b 44 24 78       	mov    0x78(%rsp),%r8
180053f3c:	e9 a1 fe ff ff       	jmp    0x180053de2
180053f41:	41 ba 1d 00 1a c0    	mov    $0xc01a001d,%r10d
180053f47:	eb 21                	jmp    0x180053f6a
180053f49:	48 8b 47 20          	mov    0x20(%rdi),%rax
180053f4d:	48 85 c0             	test   %rax,%rax
180053f50:	74 18                	je     0x180053f6a
180053f52:	83 78 70 00          	cmpl   $0x0,0x70(%rax)
180053f56:	76 09                	jbe    0x180053f61
180053f58:	48 8b 80 88 00 00 00 	mov    0x88(%rax),%rax
180053f5f:	eb 02                	jmp    0x180053f63
180053f61:	33 c0                	xor    %eax,%eax
180053f63:	48 85 c0             	test   %rax,%rax
180053f66:	74 02                	je     0x180053f6a
180053f68:	ff 00                	incl   (%rax)
180053f6a:	48 8b 9c 24 80 00 00 	mov    0x80(%rsp),%rbx
180053f71:	00
180053f72:	41 8b c2             	mov    %r10d,%eax
180053f75:	48 83 c4 30          	add    $0x30,%rsp
180053f79:	41 5f                	pop    %r15
180053f7b:	41 5e                	pop    %r14
180053f7d:	41 5d                	pop    %r13
180053f7f:	41 5c                	pop    %r12
180053f81:	5f                   	pop    %rdi
180053f82:	5e                   	pop    %rsi
180053f83:	5d                   	pop    %rbp
180053f84:	c3                   	ret
180053f85:	cc                   	int3
180053f86:	cc                   	int3
180053f87:	cc                   	int3
180053f88:	48 8b c4             	mov    %rsp,%rax
180053f8b:	48 89 58 10          	mov    %rbx,0x10(%rax)
180053f8f:	48 89 68 18          	mov    %rbp,0x18(%rax)
180053f93:	48 89 70 20          	mov    %rsi,0x20(%rax)
180053f97:	57                   	push   %rdi
180053f98:	41 54                	push   %r12
180053f9a:	41 55                	push   %r13
180053f9c:	41 56                	push   %r14
180053f9e:	41 57                	push   %r15
180053fa0:	48 83 ec 30          	sub    $0x30,%rsp
180053fa4:	83 60 08 00          	andl   $0x0,0x8(%rax)
180053fa8:	4d 8b f8             	mov    %r8,%r15
180053fab:	48 8b 01             	mov    (%rcx),%rax
180053fae:	4c 8d 44 24 60       	lea    0x60(%rsp),%r8
180053fb3:	48 8b ac 24 80 00 00 	mov    0x80(%rsp),%rbp
180053fba:	00
180053fbb:	48 8b f2             	mov    %rdx,%rsi
180053fbe:	48 8b d5             	mov    %rbp,%rdx
180053fc1:	45 8b f1             	mov    %r9d,%r14d
180053fc4:	4c 8b e1             	mov    %rcx,%r12
180053fc7:	33 ff                	xor    %edi,%edi
180053fc9:	48 8b 80 80 00 00 00 	mov    0x80(%rax),%rax
180053fd0:	ff d0                	call   *%rax
180053fd2:	0f 1f 00             	nopl   (%rax)
180053fd5:	2b 6e 78             	sub    0x78(%rsi),%ebp
180053fd8:	4c 8b e8             	mov    %rax,%r13
180053fdb:	4d 85 ff             	test   %r15,%r15
180053fde:	75 66                	jne    0x180054046
180053fe0:	b9 00 01 00 00       	mov    $0x100,%ecx
180053fe5:	e8 2a 29 ff ff       	call   0x180046914
180053fea:	48 85 c0             	test   %rax,%rax
180053fed:	74 0d                	je     0x180053ffc
180053fef:	48 8b c8             	mov    %rax,%rcx
180053ff2:	e8 89 b3 fe ff       	call   0x18003f380
180053ff7:	48 8b d8             	mov    %rax,%rbx
180053ffa:	eb 02                	jmp    0x180053ffe
180053ffc:	33 db                	xor    %ebx,%ebx
180053ffe:	48 85 db             	test   %rbx,%rbx
180054001:	75 0a                	jne    0x18005400d
180054003:	bf 9a 00 00 c0       	mov    $0xc000009a,%edi
180054008:	e9 0e 01 00 00       	jmp    0x18005411b
18005400d:	45 8b ce             	mov    %r14d,%r9d
180054010:	40 88 7c 24 20       	mov    %dil,0x20(%rsp)
180054015:	44 8b c5             	mov    %ebp,%r8d
180054018:	48 8b d6             	mov    %rsi,%rdx
18005401b:	48 8b cb             	mov    %rbx,%rcx
18005401e:	e8 19 31 ff ff       	call   0x18004713c
180054023:	8b f8                	mov    %eax,%edi
180054025:	85 c0                	test   %eax,%eax
180054027:	0f 88 d6 00 00 00    	js     0x180054103
18005402d:	41 f6 44 24 28 04    	testb  $0x4,0x28(%r12)
180054033:	74 5b                	je     0x180054090
180054035:	48 83 7b 68 00       	cmpq   $0x0,0x68(%rbx)
18005403a:	75 54                	jne    0x180054090
18005403c:	bf 9a 00 00 c0       	mov    $0xc000009a,%edi
180054041:	e9 bd 00 00 00       	jmp    0x180054103
180054046:	49 8b 1f             	mov    (%r15),%rbx
180054049:	44 3b b6 80 00 00 00 	cmp    0x80(%rsi),%r14d
180054050:	75 09                	jne    0x18005405b
180054052:	8b 46 3c             	mov    0x3c(%rsi),%eax
180054055:	83 e0 02             	and    $0x2,%eax
180054058:	09 43 3c             	or     %eax,0x3c(%rbx)
18005405b:	8b c5                	mov    %ebp,%eax
18005405d:	49 8d 57 08          	lea    0x8(%r15),%rdx
180054061:	48 03 46 68          	add    0x68(%rsi),%rax
180054065:	48 8d 4b 60          	lea    0x60(%rbx),%rcx
180054069:	45 33 c9             	xor    %r9d,%r9d
18005406c:	49 89 47 10          	mov    %rax,0x10(%r15)
180054070:	45 33 c0             	xor    %r8d,%r8d
180054073:	44 89 74 24 20       	mov    %r14d,0x20(%rsp)
180054078:	e8 af 2e ff ff       	call   0x180046f2c
18005407d:	8b 86 94 00 00 00    	mov    0x94(%rsi),%eax
180054083:	83 f8 ff             	cmp    $0xffffffff,%eax
180054086:	74 08                	je     0x180054090
180054088:	03 c5                	add    %ebp,%eax
18005408a:	89 83 94 00 00 00    	mov    %eax,0x94(%rbx)
180054090:	4c 89 6b 78          	mov    %r13,0x78(%rbx)
180054094:	41 8b c6             	mov    %r14d,%eax
180054097:	41 8a 4c 24 2a       	mov    0x2a(%r12),%cl
18005409c:	ba 01 00 00 00       	mov    $0x1,%edx
1800540a1:	48 d3 e2             	shl    %cl,%rdx
1800540a4:	44 3b f2             	cmp    %edx,%r14d
1800540a7:	0f 47 c2             	cmova  %edx,%eax
1800540aa:	48 8b d3             	mov    %rbx,%rdx
1800540ad:	89 83 80 00 00 00    	mov    %eax,0x80(%rbx)
1800540b3:	8b 44 24 60          	mov    0x60(%rsp),%eax
1800540b7:	89 83 84 00 00 00    	mov    %eax,0x84(%rbx)
1800540bd:	c6 83 98 00 00 00 04 	movb   $0x4,0x98(%rbx)
1800540c4:	8b 46 3c             	mov    0x3c(%rsi),%eax
1800540c7:	25 00 00 00 10       	and    $0x10000000,%eax
1800540cc:	4c 89 a3 d8 00 00 00 	mov    %r12,0xd8(%rbx)
1800540d3:	f7 d8                	neg    %eax
1800540d5:	44 89 b3 f4 00 00 00 	mov    %r14d,0xf4(%rbx)
1800540dc:	c7 83 fc 00 00 00 01 	movl   $0x1,0xfc(%rbx)
1800540e3:	00 00 00
1800540e6:	1a c9                	sbb    %cl,%cl
1800540e8:	80 e1 fd             	and    $0xfd,%cl
1800540eb:	80 c1 04             	add    $0x4,%cl
1800540ee:	88 8b 9a 00 00 00    	mov    %cl,0x9a(%rbx)
1800540f4:	48 8b ce             	mov    %rsi,%rcx
1800540f7:	e8 b0 2f ff ff       	call   0x1800470ac
1800540fc:	33 db                	xor    %ebx,%ebx
1800540fe:	4d 85 ff             	test   %r15,%r15
180054101:	75 18                	jne    0x18005411b
180054103:	48 85 db             	test   %rbx,%rbx
180054106:	74 13                	je     0x18005411b
180054108:	48 8b 03             	mov    (%rbx),%rax
18005410b:	ba 01 00 00 00       	mov    $0x1,%edx
180054110:	48 8b cb             	mov    %rbx,%rcx
180054113:	48 8b 00             	mov    (%rax),%rax
180054116:	ff d0                	call   *%rax
180054118:	0f 1f 00             	nopl   (%rax)
18005411b:	48 8b 5c 24 68       	mov    0x68(%rsp),%rbx
180054120:	8b c7                	mov    %edi,%eax
180054122:	48 8b 6c 24 70       	mov    0x70(%rsp),%rbp
180054127:	48 8b 74 24 78       	mov    0x78(%rsp),%rsi
18005412c:	48 83 c4 30          	add    $0x30,%rsp
180054130:	41 5f                	pop    %r15
180054132:	41 5e                	pop    %r14
180054134:	41 5d                	pop    %r13
180054136:	41 5c                	pop    %r12
180054138:	5f                   	pop    %rdi
180054139:	c3                   	ret
18005413a:	cc                   	int3
18005413b:	cc                   	int3
18005413c:	48 8b c4             	mov    %rsp,%rax
18005413f:	48 89 58 08          	mov    %rbx,0x8(%rax)
180054143:	48 89 68 10          	mov    %rbp,0x10(%rax)
180054147:	48 89 70 20          	mov    %rsi,0x20(%rax)
18005414b:	57                   	push   %rdi
18005414c:	41 54                	push   %r12
18005414e:	41 55                	push   %r13
180054150:	41 56                	push   %r14
180054152:	41 57                	push   %r15
180054154:	48 83 ec 40          	sub    $0x40,%rsp
180054158:	45 33 e4             	xor    %r12d,%r12d
18005415b:	41 8b e9             	mov    %r9d,%ebp
18005415e:	44 89 60 18          	mov    %r12d,0x18(%rax)
180054162:	4d 8b f8             	mov    %r8,%r15
180054165:	4c 8b ea             	mov    %rdx,%r13
180054168:	48 8b f1             	mov    %rcx,%rsi
18005416b:	4d 85 c0             	test   %r8,%r8
18005416e:	74 0a                	je     0x18005417a
180054170:	bf 9a 00 00 c0       	mov    $0xc000009a,%edi
180054175:	e9 be 01 00 00       	jmp    0x180054338
18005417a:	48 8b 01             	mov    (%rcx),%rax
18005417d:	4c 8d 84 24 80 00 00 	lea    0x80(%rsp),%r8
180054184:	00
180054185:	48 8b 9c 24 90 00 00 	mov    0x90(%rsp),%rbx
18005418c:	00
18005418d:	48 8b d3             	mov    %rbx,%rdx
180054190:	48 8b 80 80 00 00 00 	mov    0x80(%rax),%rax
180054197:	ff d0                	call   *%rax
180054199:	0f 1f 00             	nopl   (%rax)
18005419c:	48 8b 4e 08          	mov    0x8(%rsi),%rcx
1800541a0:	41 2b 5d 78          	sub    0x78(%r13),%ebx
1800541a4:	48 89 44 24 30       	mov    %rax,0x30(%rsp)
1800541a9:	8b c5                	mov    %ebp,%eax
1800541ab:	48 89 9c 24 90 00 00 	mov    %rbx,0x90(%rsp)
1800541b2:	00
1800541b3:	48 8b 91 50 01 00 00 	mov    0x150(%rcx),%rdx
1800541ba:	48 8b 4a 28          	mov    0x28(%rdx),%rcx
1800541be:	33 d2                	xor    %edx,%edx
1800541c0:	44 8b 81 48 0e 00 00 	mov    0xe48(%rcx),%r8d
1800541c7:	41 f7 f0             	div    %r8d
1800541ca:	33 d2                	xor    %edx,%edx
1800541cc:	45 8d 70 01          	lea    0x1(%r8),%r14d
1800541d0:	8d 0c 45 b0 00 00 00 	lea    0xb0(,%rax,2),%ecx
1800541d7:	8b c1                	mov    %ecx,%eax
1800541d9:	41 f7 f0             	div    %r8d
1800541dc:	41 f7 d8             	neg    %r8d
1800541df:	8d 0c 41             	lea    (%rcx,%rax,2),%ecx
1800541e2:	44 03 f1             	add    %ecx,%r14d
1800541e5:	b9 00 01 00 00       	mov    $0x100,%ecx
1800541ea:	45 23 f0             	and    %r8d,%r14d
1800541ed:	e8 22 27 ff ff       	call   0x180046914
1800541f2:	48 85 c0             	test   %rax,%rax
1800541f5:	74 0d                	je     0x180054204
1800541f7:	48 8b c8             	mov    %rax,%rcx
1800541fa:	e8 81 b1 fe ff       	call   0x18003f380
1800541ff:	48 8b d8             	mov    %rax,%rbx
180054202:	eb 03                	jmp    0x180054207
180054204:	49 8b dc             	mov    %r12,%rbx
180054207:	48 85 db             	test   %rbx,%rbx
18005420a:	75 0a                	jne    0x180054216
18005420c:	bf 9a 00 00 c0       	mov    $0xc000009a,%edi
180054211:	e9 42 01 00 00       	jmp    0x180054358
180054216:	45 33 c0             	xor    %r8d,%r8d
180054219:	44 8d 4d 20          	lea    0x20(%rbp),%r9d
18005421d:	45 03 ce             	add    %r14d,%r9d
180054220:	48 8d 4b 60          	lea    0x60(%rbx),%rcx
180054224:	41 8d 50 03          	lea    0x3(%r8),%edx
180054228:	e8 6f 29 ff ff       	call   0x180046b9c
18005422d:	8b f8                	mov    %eax,%edi
18005422f:	85 c0                	test   %eax,%eax
180054231:	0f 88 09 01 00 00    	js     0x180054340
180054237:	44 8b 84 24 90 00 00 	mov    0x90(%rsp),%r8d
18005423e:	00
18005423f:	49 8d 55 60          	lea    0x60(%r13),%rdx
180054243:	45 8b ce             	mov    %r14d,%r9d
180054246:	89 6c 24 20          	mov    %ebp,0x20(%rsp)
18005424a:	48 8d 4b 60          	lea    0x60(%rbx),%rcx
18005424e:	e8 d9 2c ff ff       	call   0x180046f2c
180054253:	8b f8                	mov    %eax,%edi
180054255:	85 c0                	test   %eax,%eax
180054257:	0f 88 e3 00 00 00    	js     0x180054340
18005425d:	48 8b 53 68          	mov    0x68(%rbx),%rdx
180054261:	41 8b c6             	mov    %r14d,%eax
180054264:	48 03 d0             	add    %rax,%rdx
180054267:	48 8b 46 08          	mov    0x8(%rsi),%rax
18005426b:	48 03 d5             	add    %rbp,%rdx
18005426e:	48 8b 88 18 01 00 00 	mov    0x118(%rax),%rcx
180054275:	83 79 18 08          	cmpl   $0x8,0x18(%rcx)
180054279:	7f 27                	jg     0x1800542a2
18005427b:	c6 02 01             	movb   $0x1,(%rdx)
18005427e:	48 8b 46 20          	mov    0x20(%rsi),%rax
180054282:	48 85 c0             	test   %rax,%rax
180054285:	74 06                	je     0x18005428d
180054287:	48 83 c0 58          	add    $0x58,%rax
18005428b:	eb 08                	jmp    0x180054295
18005428d:	48 8b 46 08          	mov    0x8(%rsi),%rax
180054291:	48 83 c0 50          	add    $0x50,%rax
180054295:	8b 40 08             	mov    0x8(%rax),%eax
180054298:	0f af 84 24 80 00 00 	imul   0x80(%rsp),%eax
18005429f:	00
1800542a0:	eb 0a                	jmp    0x1800542ac
1800542a2:	c6 02 06             	movb   $0x6,(%rdx)
1800542a5:	8b 84 24 80 00 00 00 	mov    0x80(%rsp),%eax
1800542ac:	48 8b 4c 24 30       	mov    0x30(%rsp),%rcx
1800542b1:	48 89 4a 10          	mov    %rcx,0x10(%rdx)
1800542b5:	89 42 0c             	mov    %eax,0xc(%rdx)
1800542b8:	44 88 62 01          	mov    %r12b,0x1(%rdx)
1800542bc:	66 44 89 62 02       	mov    %r12w,0x2(%rdx)
1800542c1:	44 89 72 04          	mov    %r14d,0x4(%rdx)
1800542c5:	89 6a 08             	mov    %ebp,0x8(%rdx)
1800542c8:	48 8b 46 10          	mov    0x10(%rsi),%rax
1800542cc:	48 89 42 18          	mov    %rax,0x18(%rdx)
1800542d0:	48 8b d3             	mov    %rbx,%rdx
1800542d3:	48 89 4b 78          	mov    %rcx,0x78(%rbx)
1800542d7:	89 ab 80 00 00 00    	mov    %ebp,0x80(%rbx)
1800542dd:	8b 84 24 80 00 00 00 	mov    0x80(%rsp),%eax
1800542e4:	89 83 84 00 00 00    	mov    %eax,0x84(%rbx)
1800542ea:	c6 83 98 00 00 00 04 	movb   $0x4,0x98(%rbx)
1800542f1:	c6 83 9a 00 00 00 08 	movb   $0x8,0x9a(%rbx)
1800542f8:	48 8b 46 08          	mov    0x8(%rsi),%rax
1800542fc:	48 8b 88 50 01 00 00 	mov    0x150(%rax),%rcx
180054303:	8b 84 24 98 00 00 00 	mov    0x98(%rsp),%eax
18005430a:	48 89 8b d8 00 00 00 	mov    %rcx,0xd8(%rbx)
180054311:	49 8b cd             	mov    %r13,%rcx
180054314:	4c 89 a3 e8 00 00 00 	mov    %r12,0xe8(%rbx)
18005431b:	44 89 b3 f0 00 00 00 	mov    %r14d,0xf0(%rbx)
180054322:	48 c7 83 f4 00 00 00 	movq   $0x20,0xf4(%rbx)
180054329:	20 00 00 00
18005432d:	89 83 fc 00 00 00    	mov    %eax,0xfc(%rbx)
180054333:	e8 74 2d ff ff       	call   0x1800470ac
180054338:	49 8b dc             	mov    %r12,%rbx
18005433b:	4d 85 ff             	test   %r15,%r15
18005433e:	75 18                	jne    0x180054358