180044e23:	8b 4b 28             	mov    0x28(%rbx),%ecx
180044e26:	4c 8d 45 50          	lea    0x50(%rbp),%r8
180044e2a:	89 45 50             	mov    %eax,0x50(%rbp)
180044e2d:	8d 04 11             	lea    (%rcx,%rdx,1),%eax
180044e30:	41 0f ab 00          	bts    %eax,(%r8)
180044e34:	41 8b c4             	mov    %r12d,%eax
180044e37:	23 45 50             	and    0x50(%rbp),%eax
180044e3a:	74 18                	je     0x180044e54
180044e3c:	44 0b 7d 50          	or     0x50(%rbp),%r15d
180044e40:	4c 8d 45 60          	lea    0x60(%rbp),%r8
180044e44:	0f bc c0             	bsf    %eax,%eax
180044e47:	41 0f b3 00          	btr    %eax,(%r8)
180044e4b:	44 8b 65 60          	mov    0x60(%rbp),%r12d
180044e4f:	45 85 e4             	test   %r12d,%r12d
180044e52:	74 07                	je     0x180044e5b
180044e54:	ff c2                	inc    %edx
180044e56:	3b 53 2c             	cmp    0x2c(%rbx),%edx
180044e59:	72 b2                	jb     0x180044e0d
180044e5b:	8b 75 58             	mov    0x58(%rbp),%esi
180044e5e:	8b 4b 28             	mov    0x28(%rbx),%ecx
180044e61:	8b c6                	mov    %esi,%eax
180044e63:	f7 d0                	not    %eax
180044e65:	44 23 f8             	and    %eax,%r15d
180044e68:	b8 01 00 00 00       	mov    $0x1,%eax
180044e6d:	d3 e0                	shl    %cl,%eax
180044e6f:	ff c8                	dec    %eax
180044e71:	41 85 c4             	test   %eax,%r12d
180044e74:	74 1a                	je     0x180044e90
180044e76:	41 bd 0b 00 e7 c0    	mov    $0xc0e7000b,%r13d
180044e7c:	e9 a5 00 00 00       	jmp    0x180044f26
180044e81:	c6 45 48 01          	movb   $0x1,0x48(%rbp)
180044e85:	44 8b e6             	mov    %esi,%r12d
180044e88:	89 75 60             	mov    %esi,0x60(%rbp)
180044e8b:	e9 73 ff ff ff       	jmp    0x180044e03
180044e90:	4d 85 f6             	test   %r14,%r14
180044e93:	0f 84 8d 00 00 00    	je     0x180044f26
180044e99:	41 8b c7             	mov    %r15d,%eax
180044e9c:	d3 f8                	sar    %cl,%eax
180044e9e:	85 c0                	test   %eax,%eax
180044ea0:	75 09                	jne    0x180044eab
180044ea2:	48 8b 43 50          	mov    0x50(%rbx),%rax
180044ea6:	49 89 06             	mov    %rax,(%r14)
180044ea9:	eb 77                	jmp    0x180044f22
180044eab:	44 38 6d 48          	cmp    %r13b,0x48(%rbp)
180044eaf:	0f 45 fe             	cmovne %esi,%edi
180044eb2:	32 c9                	xor    %cl,%cl
180044eb4:	48 8d 73 58          	lea    0x58(%rbx),%rsi
180044eb8:	33 d2                	xor    %edx,%edx
180044eba:	48 8b 06             	mov    (%rsi),%rax
180044ebd:	48 3b c6             	cmp    %rsi,%rax
180044ec0:	74 15                	je     0x180044ed7
180044ec2:	48 8b d0             	mov    %rax,%rdx
180044ec5:	39 78 10             	cmp    %edi,0x10(%rax)
180044ec8:	75 06                	jne    0x180044ed0
180044eca:	44 39 78 14          	cmp    %r15d,0x14(%rax)
180044ece:	74 05                	je     0x180044ed5
180044ed0:	48 8b 00             	mov    (%rax),%rax
180044ed3:	eb e8                	jmp    0x180044ebd
180044ed5:	b1 01                	mov    $0x1,%cl
180044ed7:	f6 d9                	neg    %cl
180044ed9:	48 1b c0             	sbb    %rax,%rax
180044edc:	48 23 c2             	and    %rdx,%rax
180044edf:	49 89 06             	mov    %rax,(%r14)
180044ee2:	75 39                	jne    0x180044f1d
180044ee4:	48 8d 4b 38          	lea    0x38(%rbx),%rcx
180044ee8:	4d 8b ce             	mov    %r14,%r9
180044eeb:	45 8b c7             	mov    %r15d,%r8d
180044eee:	8b d7                	mov    %edi,%edx
180044ef0:	e8 7f f6 ff ff       	call   0x180044574
180044ef5:	44 8b e8             	mov    %eax,%r13d
180044ef8:	85 c0                	test   %eax,%eax
180044efa:	78 21                	js     0x180044f1d
180044efc:	48 8b 4e 08          	mov    0x8(%rsi),%rcx
180044f00:	49 8b 06             	mov    (%r14),%rax
180044f03:	48 39 31             	cmp    %rsi,(%rcx)
180044f06:	74 07                	je     0x180044f0f
180044f08:	b9 03 00 00 00       	mov    $0x3,%ecx
180044f0d:	cd 29                	int    $0x29
180044f0f:	48 89 30             	mov    %rsi,(%rax)
180044f12:	48 89 48 08          	mov    %rcx,0x8(%rax)
180044f16:	48 89 01             	mov    %rax,(%rcx)
180044f19:	48 89 46 08          	mov    %rax,0x8(%rsi)
180044f1d:	45 85 ed             	test   %r13d,%r13d
180044f20:	78 04                	js     0x180044f26
180044f22:	45 89 7e 08          	mov    %r15d,0x8(%r14)
180044f26:	41 8b c5             	mov    %r13d,%eax
180044f29:	48 83 c4 28          	add    $0x28,%rsp
180044f2d:	41 5f                	pop    %r15
180044f2f:	41 5e                	pop    %r14
180044f31:	41 5d                	pop    %r13
180044f33:	41 5c                	pop    %r12
180044f35:	5f                   	pop    %rdi
180044f36:	5e                   	pop    %rsi
180044f37:	5b                   	pop    %rbx
180044f38:	5d                   	pop    %rbp
180044f39:	c3                   	ret
180044f3a:	cc                   	int3
180044f3b:	cc                   	int3
180044f3c:	48 8b c4             	mov    %rsp,%rax
180044f3f:	48 89 58 10          	mov    %rbx,0x10(%rax)
180044f43:	44 88 48 20          	mov    %r9b,0x20(%rax)
180044f47:	44 89 40 18          	mov    %r8d,0x18(%rax)
180044f4b:	48 89 48 08          	mov    %rcx,0x8(%rax)
180044f4f:	55                   	push   %rbp
180044f50:	56                   	push   %rsi
180044f51:	57                   	push   %rdi
180044f52:	41 54                	push   %r12
180044f54:	41 55                	push   %r13
180044f56:	41 56                	push   %r14
180044f58:	41 57                	push   %r15
180044f5a:	48 83 ec 30          	sub    $0x30,%rsp
180044f5e:	8b 41 34             	mov    0x34(%rcx),%eax
180044f61:	4c 8b e2             	mov    %rdx,%r12
180044f64:	33 d2                	xor    %edx,%edx
180044f66:	33 ff                	xor    %edi,%edi
180044f68:	f7 71 08             	divl   0x8(%rcx)
180044f6b:	45 8b e8             	mov    %r8d,%r13d
180044f6e:	48 8b e9             	mov    %rcx,%rbp
180044f71:	44 8b f8             	mov    %eax,%r15d
180044f74:	45 85 c0             	test   %r8d,%r8d
180044f77:	0f 84 e9 00 00 00    	je     0x180045066
180044f7d:	49 8b 1c 24          	mov    (%r12),%rbx
180044f81:	33 f6                	xor    %esi,%esi
180044f83:	83 64 24 24 00       	andl   $0x0,0x24(%rsp)
180044f88:	83 64 24 20 00       	andl   $0x0,0x20(%rsp)
180044f8d:	39 73 18             	cmp    %esi,0x18(%rbx)
180044f90:	0f 86 c4 00 00 00    	jbe    0x18004505a
180044f96:	8b 6c 24 24          	mov    0x24(%rsp),%ebp
180044f9a:	44 8a ac 24 88 00 00 	mov    0x88(%rsp),%r13b
180044fa1:	00
180044fa2:	44 0f b6 44 b3 1c    	movzbl 0x1c(%rbx,%rsi,4),%r8d
180044fa8:	4f 8b 4c c4 10       	mov    0x10(%r12,%r8,8),%r9
180044fad:	4d 85 c9             	test   %r9,%r9
180044fb0:	0f 84 8c 00 00 00    	je     0x180045042
180044fb6:	44 0f b6 74 b3 1d    	movzbl 0x1d(%rbx,%rsi,4),%r14d
180044fbc:	0f b6 44 b3 1e       	movzbl 0x1e(%rbx,%rsi,4),%eax
180044fc1:	41 8b ce             	mov    %r14d,%ecx
180044fc4:	41 0f af cf          	imul   %r15d,%ecx
180044fc8:	44 8b df             	mov    %edi,%r11d
180044fcb:	4d 8b 54 c4 10       	mov    0x10(%r12,%rax,8),%r10
180044fd0:	49 03 cb             	add    %r11,%rcx
180044fd3:	4c 03 c9             	add    %rcx,%r9
180044fd6:	4d 85 d2             	test   %r10,%r10
180044fd9:	74 67                	je     0x180045042
180044fdb:	0f b6 4c b3 1f       	movzbl 0x1f(%rbx,%rsi,4),%ecx
180044fe0:	41 0f af cf          	imul   %r15d,%ecx
180044fe4:	49 03 cb             	add    %r11,%rcx
180044fe7:	4c 03 d1             	add    %rcx,%r10
180044fea:	41 3b e8             	cmp    %r8d,%ebp
180044fed:	74 08                	je     0x180044ff7
180044fef:	83 64 24 20 00       	andl   $0x0,0x20(%rsp)
180044ff4:	41 8b e8             	mov    %r8d,%ebp
180044ff7:	45 84 ed             	test   %r13b,%r13b
180044ffa:	75 1b                	jne    0x180045017
180044ffc:	48 8d 44 24 20       	lea    0x20(%rsp),%rax
180045001:	44 0f ab 30          	bts    %r14d,(%rax)
180045005:	72 10                	jb     0x180045017
180045007:	4d 8b c7             	mov    %r15,%r8
18004500a:	49 8b d2             	mov    %r10,%rdx
18004500d:	49 8b c9             	mov    %r9,%rcx
180045010:	e8 ab 09 0f 00       	call   0x1801359c0
180045015:	eb 2b                	jmp    0x180045042
180045017:	41 8b c7             	mov    %r15d,%eax
18004501a:	c1 e8 07             	shr    $0x7,%eax
18004501d:	85 c0                	test   %eax,%eax
18004501f:	74 21                	je     0x180045042
180045021:	8b d0                	mov    %eax,%edx
180045023:	b9 10 00 00 00       	mov    $0x10,%ecx
180045028:	49 8b 02             	mov    (%r10),%rax
18004502b:	49 83 c2 08          	add    $0x8,%r10
18004502f:	49 31 01             	xor    %rax,(%r9)
180045032:	49 83 c1 08          	add    $0x8,%r9
180045036:	48 83 e9 01          	sub    $0x1,%rcx
18004503a:	75 ec                	jne    0x180045028
18004503c:	48 83 ea 01          	sub    $0x1,%rdx
180045040:	75 e1                	jne    0x180045023
180045042:	ff c6                	inc    %esi
180045044:	3b 73 18             	cmp    0x18(%rbx),%esi
180045047:	0f 82 55 ff ff ff    	jb     0x180044fa2
18004504d:	48 8b 6c 24 70       	mov    0x70(%rsp),%rbp
180045052:	44 8b ac 24 80 00 00 	mov    0x80(%rsp),%r13d
180045059:	00
18004505a:	03 7d 34             	add    0x34(%rbp),%edi
18004505d:	41 3b fd             	cmp    %r13d,%edi
180045060:	0f 82 17 ff ff ff    	jb     0x180044f7d
180045066:	48 8b 5c 24 78       	mov    0x78(%rsp),%rbx
18004506b:	48 83 c4 30          	add    $0x30,%rsp
18004506f:	41 5f                	pop    %r15
180045071:	41 5e                	pop    %r14
180045073:	41 5d                	pop    %r13
180045075:	41 5c                	pop    %r12
180045077:	5f                   	pop    %rdi
180045078:	5e                   	pop    %rsi
180045079:	5d                   	pop    %rbp
18004507a:	c3                   	ret
18004507b:	cc                   	int3
18004507c:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180045081:	57                   	push   %rdi
180045082:	48 83 ec 20          	sub    $0x20,%rsp
180045086:	8b da                	mov    %edx,%ebx
180045088:	48 8b f9             	mov    %rcx,%rdi
18004508b:	e8 d0 41 0f 00       	call   0x180139260
180045090:	f6 c3 01             	test   $0x1,%bl
180045093:	74 08                	je     0x18004509d
180045095:	48 8b cf             	mov    %rdi,%rcx
180045098:	e8 bf 18 00 00       	call   0x18004695c
18004509d:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1800450a2:	48 8b c7             	mov    %rdi,%rax
1800450a5:	48 83 c4 20          	add    $0x20,%rsp
1800450a9:	5f                   	pop    %rdi
1800450aa:	c3                   	ret
1800450ab:	cc                   	int3
1800450ac:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1800450b1:	57                   	push   %rdi
1800450b2:	48 83 ec 20          	sub    $0x20,%rsp
1800450b6:	8b da                	mov    %edx,%ebx
1800450b8:	48 8b f9             	mov    %rcx,%rdi
1800450bb:	e8 54 4e 0f 00       	call   0x180139f14
1800450c0:	f6 c3 01             	test   $0x1,%bl
1800450c3:	74 08                	je     0x1800450cd
1800450c5:	48 8b cf             	mov    %rdi,%rcx
1800450c8:	e8 8f 18 00 00       	call   0x18004695c
1800450cd:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1800450d2:	48 8b c7             	mov    %rdi,%rax
1800450d5:	48 83 c4 20          	add    $0x20,%rsp
1800450d9:	5f                   	pop    %rdi
1800450da:	c3                   	ret
1800450db:	cc                   	int3
1800450dc:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1800450e1:	57                   	push   %rdi
1800450e2:	48 83 ec 20          	sub    $0x20,%rsp
1800450e6:	48 8b d9             	mov    %rcx,%rbx
1800450e9:	f6 c2 02             	test   $0x2,%dl
1800450ec:	74 39                	je     0x180045127
1800450ee:	48 8d 79 f8          	lea    -0x8(%rcx),%rdi
1800450f2:	48 8b 07             	mov    (%rdi),%rax
1800450f5:	48 6b c8 58          	imul   $0x58,%rax,%rcx
1800450f9:	48 03 cb             	add    %rbx,%rcx
1800450fc:	48 85 c0             	test   %rax,%rax
1800450ff:	74 14                	je     0x180045115
180045101:	4c 8d 05 c0 de 0f 00 	lea    0xfdec0(%rip),%r8        # 0x180142fc8
180045108:	48 8d 49 a8          	lea    -0x58(%rcx),%rcx
18004510c:	4c 89 01             	mov    %r8,(%rcx)
18004510f:	48 83 e8 01          	sub    $0x1,%rax
180045113:	75 f3                	jne    0x180045108
180045115:	f6 c2 01             	test   $0x1,%dl
180045118:	74 08                	je     0x180045122
18004511a:	48 8b cf             	mov    %rdi,%rcx
18004511d:	e8 3a 18 00 00       	call   0x18004695c
180045122:	48 8b c7             	mov    %rdi,%rax
180045125:	eb 17                	jmp    0x18004513e
180045127:	4c 8d 05 9a de 0f 00 	lea    0xfde9a(%rip),%r8        # 0x180142fc8
18004512e:	4c 89 01             	mov    %r8,(%rcx)
180045131:	f6 c2 01             	test   $0x1,%dl
180045134:	74 05                	je     0x18004513b
180045136:	e8 21 18 00 00       	call   0x18004695c
18004513b:	48 8b c3             	mov    %rbx,%rax
18004513e:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180045143:	48 83 c4 20          	add    $0x20,%rsp
180045147:	5f                   	pop    %rdi
180045148:	c3                   	ret
180045149:	cc                   	int3
18004514a:	cc                   	int3
18004514b:	cc                   	int3
18004514c:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180045151:	57                   	push   %rdi
180045152:	48 83 ec 20          	sub    $0x20,%rsp
180045156:	8b da                	mov    %edx,%ebx
180045158:	48 8b f9             	mov    %rcx,%rdi
18004515b:	e8 50 8e 0f 00       	call   0x18013dfb0
180045160:	f6 c3 01             	test   $0x1,%bl
180045163:	74 08                	je     0x18004516d
180045165:	48 8b cf             	mov    %rdi,%rcx
180045168:	e8 ef 17 00 00       	call   0x18004695c
18004516d:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180045172:	48 8b c7             	mov    %rdi,%rax
180045175:	48 83 c4 20          	add    $0x20,%rsp
180045179:	5f                   	pop    %rdi
18004517a:	c3                   	ret
18004517b:	cc                   	int3
18004517c:	48 8b 41 60          	mov    0x60(%rcx),%rax
180045180:	ba fd 03 00 00       	mov    $0x3fd,%edx
180045185:	4c 8b c1             	mov    %rcx,%r8
180045188:	4c 8b 48 20          	mov    0x20(%rax),%r9
18004518c:	4c 3b ca             	cmp    %rdx,%r9
18004518f:	74 27                	je     0x1800451b8
180045191:	b9 fe 01 00 00       	mov    $0x1fe,%ecx
180045196:	4c 3b c9             	cmp    %rcx,%r9
180045199:	72 06                	jb     0x1800451a1
18004519b:	41 8d 41 04          	lea    0x4(%r9),%eax
18004519f:	eb 12                	jmp    0x1800451b3
1800451a1:	41 2b c9             	sub    %r9d,%ecx
1800451a4:	b8 04 00 00 00       	mov    $0x4,%eax
1800451a9:	d1 e9                	shr    $1,%ecx
1800451ab:	3b c8                	cmp    %eax,%ecx
1800451ad:	0f 47 c1             	cmova  %ecx,%eax
1800451b0:	41 03 c1             	add    %r9d,%eax
1800451b3:	3b c2                	cmp    %edx,%eax
1800451b5:	0f 42 d0             	cmovb  %eax,%edx
1800451b8:	41 89 50 30          	mov    %edx,0x30(%r8)
1800451bc:	c3                   	ret
1800451bd:	cc                   	int3
1800451be:	cc                   	int3
1800451bf:	cc                   	int3
1800451c0:	48 83 ec 28          	sub    $0x28,%rsp
1800451c4:	4c 8b c1             	mov    %rcx,%r8
1800451c7:	48 83 c1 20          	add    $0x20,%rcx
1800451cb:	e8 28 1a 00 00       	call   0x180046bf8
1800451d0:	49 8b 48 28          	mov    0x28(%r8),%rcx
1800451d4:	8b d2                	mov    %edx,%edx
1800451d6:	ff 49 10             	decl   0x10(%rcx)
1800451d9:	8b 49 10             	mov    0x10(%rcx),%ecx
1800451dc:	48 8b 4c c8 18       	mov    0x18(%rax,%rcx,8),%rcx
1800451e1:	48 89 4c d0 18       	mov    %rcx,0x18(%rax,%rdx,8)
1800451e6:	48 83 c4 28          	add    $0x28,%rsp
1800451ea:	c3                   	ret
1800451eb:	cc                   	int3
1800451ec:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1800451f1:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
1800451f6:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
1800451fb:	57                   	push   %rdi
1800451fc:	41 56                	push   %r14
1800451fe:	41 57                	push   %r15
180045200:	48 83 ec 30          	sub    $0x30,%rsp
180045204:	48 8b d9             	mov    %rcx,%rbx
180045207:	48 83 c1 20          	add    $0x20,%rcx
18004520b:	e8 e8 19 00 00       	call   0x180046bf8
180045210:	48 8b 73 28          	mov    0x28(%rbx),%rsi
180045214:	33 ff                	xor    %edi,%edi
180045216:	4c 8b f0             	mov    %rax,%r14
180045219:	85 d2                	test   %edx,%edx
18004521b:	0f 85 ab 00 00 00    	jne    0x1800452cc
180045221:	f7 da                	neg    %edx
180045223:	89 54 24 58          	mov    %edx,0x58(%rsp)
180045227:	39 7e 10             	cmp    %edi,0x10(%rsi)
18004522a:	76 64                	jbe    0x180045290
18004522c:	48 8b 43 08          	mov    0x8(%rbx),%rax
180045230:	48 8d 54 24 58       	lea    0x58(%rsp),%rdx
180045235:	8b 4b 18             	mov    0x18(%rbx),%ecx
180045238:	45 33 c9             	xor    %r9d,%r9d
18004523b:	4d 8b 44 fe 18       	mov    0x18(%r14,%rdi,8),%r8
180045240:	49 d3 e0             	shl    %cl,%r8
180045243:	48 8b 88 60 01 00 00 	mov    0x160(%rax),%rcx
18004524a:	48 89 54 24 20       	mov    %rdx,0x20(%rsp)
18004524f:	41 8d 51 0b          	lea    0xb(%r9),%edx
180045253:	48 8b 01             	mov    (%rcx),%rax
180045256:	48 8b 40 60          	mov    0x60(%rax),%rax
18004525a:	ff d0                	call   *%rax
18004525c:	0f 1f 00             	nopl   (%rax)
18004525f:	85 c0                	test   %eax,%eax