180034d23:	48 25 00 80 ff ff    	and    $0xffffffffffff8000,%rax
180034d29:	44 89 45 40          	mov    %r8d,0x40(%rbp)
180034d2d:	48 89 45 c0          	mov    %rax,-0x40(%rbp)
180034d31:	4c 8d 45 c8          	lea    -0x38(%rbp),%r8
180034d35:	48 89 45 e8          	mov    %rax,-0x18(%rbp)
180034d39:	48 8d 55 d8          	lea    -0x28(%rbp),%rdx
180034d3d:	48 8d 45 e8          	lea    -0x18(%rbp),%rax
180034d41:	48 89 45 e0          	mov    %rax,-0x20(%rbp)
180034d45:	e8 ca 01 06 00       	call   0x180094f14
180034d4a:	44 8b 45 40          	mov    0x40(%rbp),%r8d
180034d4e:	44 8b f0             	mov    %eax,%r14d
180034d51:	85 c0                	test   %eax,%eax
180034d53:	78 1a                	js     0x180034d6f
180034d55:	48 8b 45 c8          	mov    -0x38(%rbp),%rax
180034d59:	48 8b 48 08          	mov    0x8(%rax),%rcx
180034d5d:	48 8b 11             	mov    (%rcx),%rdx
180034d60:	49 8b cd             	mov    %r13,%rcx
180034d63:	48 2b 55 e8          	sub    -0x18(%rbp),%rdx
180034d67:	48 03 d7             	add    %rdi,%rdx
180034d6a:	e8 51 0c 10 00       	call   0x1801359c0
180034d6f:	45 85 f6             	test   %r14d,%r14d
180034d72:	79 49                	jns    0x180034dbd
180034d74:	48 8b 55 c0          	mov    -0x40(%rbp),%rdx
180034d78:	4c 8d 45 d0          	lea    -0x30(%rbp),%r8
180034d7c:	49 8b cf             	mov    %r15,%rcx
180034d7f:	e8 40 17 00 00       	call   0x1800364c4
180034d84:	44 8b f0             	mov    %eax,%r14d
180034d87:	85 c0                	test   %eax,%eax
180034d89:	78 19                	js     0x180034da4
180034d8b:	48 8b 55 d0          	mov    -0x30(%rbp),%rdx
180034d8f:	49 8b cd             	mov    %r13,%rcx
180034d92:	48 2b 55 c0          	sub    -0x40(%rbp),%rdx
180034d96:	44 8b 45 40          	mov    0x40(%rbp),%r8d
180034d9a:	48 03 d7             	add    %rdi,%rdx
180034d9d:	e8 1e 0c 10 00       	call   0x1801359c0
180034da2:	eb 19                	jmp    0x180034dbd
180034da4:	44 8b 45 40          	mov    0x40(%rbp),%r8d
180034da8:	45 33 c9             	xor    %r9d,%r9d
180034dab:	49 8b d5             	mov    %r13,%rdx
180034dae:	49 8b cf             	mov    %r15,%rcx
180034db1:	e8 1e 01 00 00       	call   0x180034ed4
180034db6:	44 8b f0             	mov    %eax,%r14d
180034db9:	85 c0                	test   %eax,%eax
180034dbb:	78 33                	js     0x180034df0
180034dbd:	44 8b 55 40          	mov    0x40(%rbp),%r10d
180034dc1:	48 8d 4e ff          	lea    -0x1(%rsi),%rcx
180034dc5:	49 03 fa             	add    %r10,%rdi
180034dc8:	33 d2                	xor    %edx,%edx
180034dca:	48 f7 d1             	not    %rcx
180034dcd:	4d 03 ea             	add    %r10,%r13
180034dd0:	48 23 cf             	and    %rdi,%rcx
180034dd3:	44 8b c7             	mov    %edi,%r8d
180034dd6:	48 8b c1             	mov    %rcx,%rax
180034dd9:	48 f7 f6             	div    %rsi
180034ddc:	48 89 43 40          	mov    %rax,0x40(%rbx)
180034de0:	8b c7                	mov    %edi,%eax
180034de2:	2b c1                	sub    %ecx,%eax
180034de4:	89 43 48             	mov    %eax,0x48(%rbx)
180034de7:	45 2b e2             	sub    %r10d,%r12d
180034dea:	0f 85 f7 fe ff ff    	jne    0x180034ce7
180034df0:	8b 75 50             	mov    0x50(%rbp),%esi
180034df3:	4c 8b 7d 58          	mov    0x58(%rbp),%r15
180034df7:	4d 85 ff             	test   %r15,%r15
180034dfa:	74 06                	je     0x180034e02
180034dfc:	41 2b f4             	sub    %r12d,%esi
180034dff:	41 89 37             	mov    %esi,(%r15)
180034e02:	41 8b c6             	mov    %r14d,%eax
180034e05:	eb 05                	jmp    0x180034e0c
180034e07:	e8 c8 00 00 00       	call   0x180034ed4
180034e0c:	48 8b 9c 24 b8 00 00 	mov    0xb8(%rsp),%rbx
180034e13:	00
180034e14:	48 83 c4 70          	add    $0x70,%rsp
180034e18:	41 5f                	pop    %r15
180034e1a:	41 5e                	pop    %r14
180034e1c:	41 5d                	pop    %r13
180034e1e:	41 5c                	pop    %r12
180034e20:	5f                   	pop    %rdi
180034e21:	5e                   	pop    %rsi
180034e22:	5d                   	pop    %rbp
180034e23:	c3                   	ret
180034e24:	cc                   	int3
180034e25:	cc                   	int3
180034e26:	cc                   	int3
180034e27:	cc                   	int3
180034e28:	4c 8b dc             	mov    %rsp,%r11
180034e2b:	49 89 5b 08          	mov    %rbx,0x8(%r11)
180034e2f:	49 89 6b 10          	mov    %rbp,0x10(%r11)
180034e33:	56                   	push   %rsi
180034e34:	57                   	push   %rdi
180034e35:	41 56                	push   %r14
180034e37:	48 83 ec 30          	sub    $0x30,%rsp
180034e3b:	4c 8b b1 80 00 00 00 	mov    0x80(%rcx),%r14
180034e42:	49 8d 43 18          	lea    0x18(%r11),%rax
180034e46:	48 8b f9             	mov    %rcx,%rdi
180034e49:	45 89 43 18          	mov    %r8d,0x18(%r11)
180034e4d:	4d 8d 43 18          	lea    0x18(%r11),%r8
180034e51:	49 89 43 d8          	mov    %rax,-0x28(%r11)
180034e55:	49 8b d9             	mov    %r9,%rbx
180034e58:	48 8b ea             	mov    %rdx,%rbp
180034e5b:	49 8d 4e 20          	lea    0x20(%r14),%rcx
180034e5f:	e8 1c 0e 00 00       	call   0x180035c80
180034e64:	85 c0                	test   %eax,%eax
180034e66:	79 0b                	jns    0x180034e73
180034e68:	48 85 db             	test   %rbx,%rbx
180034e6b:	74 52                	je     0x180034ebf
180034e6d:	41 83 21 00          	andl   $0x0,(%r9)
180034e71:	eb 4c                	jmp    0x180034ebf
180034e73:	41 8b 46 24          	mov    0x24(%r14),%eax
180034e77:	48 8b cf             	mov    %rdi,%rcx
180034e7a:	44 8b 44 24 60       	mov    0x60(%rsp),%r8d
180034e7f:	24 0c                	and    $0xc,%al
180034e81:	3c 04                	cmp    $0x4,%al
180034e83:	75 32                	jne    0x180034eb7
180034e85:	41 8b 56 30          	mov    0x30(%r14),%edx
180034e89:	49 0f af 56 40       	imul   0x40(%r14),%rdx
180034e8e:	41 8b 46 48          	mov    0x48(%r14),%eax
180034e92:	48 03 d0             	add    %rax,%rdx
180034e95:	e8 76 17 00 00       	call   0x180036610
180034e9a:	44 8b 44 24 60       	mov    0x60(%rsp),%r8d
180034e9f:	41 b9 01 00 00 00    	mov    $0x1,%r9d
180034ea5:	48 8b d5             	mov    %rbp,%rdx
180034ea8:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
180034ead:	48 8b cf             	mov    %rdi,%rcx
180034eb0:	e8 3f 06 00 00       	call   0x1800354f4
180034eb5:	eb 08                	jmp    0x180034ebf
180034eb7:	48 8b d5             	mov    %rbp,%rdx
180034eba:	e8 39 05 00 00       	call   0x1800353f8
180034ebf:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
180034ec4:	48 8b 6c 24 58       	mov    0x58(%rsp),%rbp
180034ec9:	48 83 c4 30          	add    $0x30,%rsp
180034ecd:	41 5e                	pop    %r14
180034ecf:	5f                   	pop    %rdi
180034ed0:	5e                   	pop    %rsi
180034ed1:	c3                   	ret
180034ed2:	cc                   	int3
180034ed3:	cc                   	int3
180034ed4:	4c 8b dc             	mov    %rsp,%r11
180034ed7:	49 89 5b 10          	mov    %rbx,0x10(%r11)
180034edb:	49 89 73 20          	mov    %rsi,0x20(%r11)
180034edf:	45 89 43 18          	mov    %r8d,0x18(%r11)
180034ee3:	57                   	push   %rdi
180034ee4:	48 83 ec 30          	sub    $0x30,%rsp
180034ee8:	48 8b 99 80 00 00 00 	mov    0x80(%rcx),%rbx
180034eef:	49 8d 43 08          	lea    0x8(%r11),%rax
180034ef3:	48 8b f9             	mov    %rcx,%rdi
180034ef6:	45 89 43 08          	mov    %r8d,0x8(%r11)
180034efa:	4d 8d 43 18          	lea    0x18(%r11),%r8
180034efe:	49 89 43 e8          	mov    %rax,-0x18(%r11)
180034f02:	48 8b f2             	mov    %rdx,%rsi
180034f05:	48 8d 4b 20          	lea    0x20(%rbx),%rcx
180034f09:	e8 72 0d 00 00       	call   0x180035c80
180034f0e:	85 c0                	test   %eax,%eax
180034f10:	79 0b                	jns    0x180034f1d
180034f12:	4d 85 c9             	test   %r9,%r9
180034f15:	74 2e                	je     0x180034f45
180034f17:	41 83 21 00          	andl   $0x0,(%r9)
180034f1b:	eb 28                	jmp    0x180034f45
180034f1d:	8b 43 24             	mov    0x24(%rbx),%eax
180034f20:	48 8b d6             	mov    %rsi,%rdx
180034f23:	44 8b 44 24 40       	mov    0x40(%rsp),%r8d
180034f28:	24 0c                	and    $0xc,%al
180034f2a:	48 8b cf             	mov    %rdi,%rcx
180034f2d:	3c 04                	cmp    $0x4,%al
180034f2f:	75 0f                	jne    0x180034f40
180034f31:	4c 89 4c 24 20       	mov    %r9,0x20(%rsp)
180034f36:	45 33 c9             	xor    %r9d,%r9d
180034f39:	e8 b6 05 00 00       	call   0x1800354f4
180034f3e:	eb 05                	jmp    0x180034f45
180034f40:	e8 cb 02 00 00       	call   0x180035210
180034f45:	48 8b 5c 24 48       	mov    0x48(%rsp),%rbx
180034f4a:	48 8b 74 24 58       	mov    0x58(%rsp),%rsi
180034f4f:	48 83 c4 30          	add    $0x30,%rsp
180034f53:	5f                   	pop    %rdi
180034f54:	c3                   	ret
180034f55:	cc                   	int3
180034f56:	cc                   	int3
180034f57:	cc                   	int3
180034f58:	48 8b c4             	mov    %rsp,%rax
180034f5b:	48 89 58 08          	mov    %rbx,0x8(%rax)
180034f5f:	48 89 68 10          	mov    %rbp,0x10(%rax)
180034f63:	48 89 70 18          	mov    %rsi,0x18(%rax)
180034f67:	48 89 78 20          	mov    %rdi,0x20(%rax)
180034f6b:	41 56                	push   %r14
180034f6d:	48 83 ec 20          	sub    $0x20,%rsp
180034f71:	4c 8b 15 58 fd 16 00 	mov    0x16fd58(%rip),%r10        # 0x1801a4cd0
180034f78:	41 8b f9             	mov    %r9d,%edi
180034f7b:	48 8b 99 80 00 00 00 	mov    0x80(%rcx),%rbx
180034f82:	4c 8b f2             	mov    %rdx,%r14
180034f85:	41 8b f0             	mov    %r8d,%esi
180034f88:	48 8b e9             	mov    %rcx,%rbp
180034f8b:	4d 85 d2             	test   %r10,%r10
180034f8e:	74 16                	je     0x180034fa6
180034f90:	48 39 1d 31 fd 16 00 	cmp    %rbx,0x16fd31(%rip)        # 0x1801a4cc8
180034f97:	75 0d                	jne    0x180034fa6
180034f99:	48 8b 43 40          	mov    0x40(%rbx),%rax
180034f9d:	48 39 05 ec fc 16 00 	cmp    %rax,0x16fcec(%rip)        # 0x1801a4c90
180034fa4:	74 7b                	je     0x180035021
180034fa6:	44 8b 4b 34          	mov    0x34(%rbx),%r9d
180034faa:	48 8d 15 e7 fc 16 00 	lea    0x16fce7(%rip),%rdx        # 0x1801a4c98
180034fb1:	44 8b 43 30          	mov    0x30(%rbx),%r8d
180034fb5:	48 8d 0d 14 fd 16 00 	lea    0x16fd14(%rip),%rcx        # 0x1801a4cd0
180034fbc:	e8 3b 08 00 00       	call   0x1800357fc
180034fc1:	85 c0                	test   %eax,%eax
180034fc3:	79 29                	jns    0x180034fee
180034fc5:	b8 17 00 00 c0       	mov    $0xc0000017,%eax
180034fca:	48 83 25 f6 fc 16 00 	andq   $0x0,0x16fcf6(%rip)        # 0x1801a4cc8
180034fd1:	00
180034fd2:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180034fd7:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
180034fdc:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
180034fe1:	48 8b 7c 24 48       	mov    0x48(%rsp),%rdi
180034fe6:	48 83 c4 20          	add    $0x20,%rsp
180034fea:	41 5e                	pop    %r14
180034fec:	c3                   	ret
180034fed:	cc                   	int3
180034fee:	48 8b 15 db fc 16 00 	mov    0x16fcdb(%rip),%rdx        # 0x1801a4cd0
180034ff5:	45 33 c9             	xor    %r9d,%r9d
180034ff8:	48 8b cd             	mov    %rbp,%rcx
180034ffb:	45 8d 41 01          	lea    0x1(%r9),%r8d
180034fff:	e8 98 03 00 00       	call   0x18003539c
180035004:	85 c0                	test   %eax,%eax
180035006:	78 c2                	js     0x180034fca
180035008:	48 8b 43 40          	mov    0x40(%rbx),%rax
18003500c:	4c 8b 15 bd fc 16 00 	mov    0x16fcbd(%rip),%r10        # 0x1801a4cd0
180035013:	48 89 05 76 fc 16 00 	mov    %rax,0x16fc76(%rip)        # 0x1801a4c90
18003501a:	48 89 1d a7 fc 16 00 	mov    %rbx,0x16fca7(%rip)        # 0x1801a4cc8
180035021:	8b 43 48             	mov    0x48(%rbx),%eax
180035024:	49 03 c2             	add    %r10,%rax
180035027:	85 ff                	test   %edi,%edi
180035029:	74 32                	je     0x18003505d
18003502b:	83 ff 01             	cmp    $0x1,%edi
18003502e:	75 3b                	jne    0x18003506b
180035030:	4c 8b c6             	mov    %rsi,%r8
180035033:	49 8b d6             	mov    %r14,%rdx
180035036:	48 8b c8             	mov    %rax,%rcx
180035039:	e8 82 09 10 00       	call   0x1801359c0
18003503e:	48 8b 15 8b fc 16 00 	mov    0x16fc8b(%rip),%rdx        # 0x1801a4cd0
180035045:	44 8b cf             	mov    %edi,%r9d
180035048:	44 8b c7             	mov    %edi,%r8d
18003504b:	48 8b cd             	mov    %rbp,%rcx
18003504e:	e8 49 03 00 00       	call   0x18003539c
180035053:	85 c0                	test   %eax,%eax
180035055:	0f 88 6f ff ff ff    	js     0x180034fca
18003505b:	eb 0e                	jmp    0x18003506b
18003505d:	4c 8b c6             	mov    %rsi,%r8
180035060:	48 8b d0             	mov    %rax,%rdx
180035063:	49 8b ce             	mov    %r14,%rcx
180035066:	e8 55 09 10 00       	call   0x1801359c0
18003506b:	8b 4b 48             	mov    0x48(%rbx),%ecx
18003506e:	03 ce                	add    %esi,%ecx
180035070:	3b 4b 30             	cmp    0x30(%rbx),%ecx
180035073:	75 06                	jne    0x18003507b
180035075:	48 ff 43 40          	incq   0x40(%rbx)
180035079:	33 c9                	xor    %ecx,%ecx
18003507b:	89 4b 48             	mov    %ecx,0x48(%rbx)
18003507e:	33 c0                	xor    %eax,%eax
180035080:	e9 4d ff ff ff       	jmp    0x180034fd2
180035085:	cc                   	int3
180035086:	cc                   	int3
180035087:	cc                   	int3
180035088:	48 8b c4             	mov    %rsp,%rax
18003508b:	48 89 58 10          	mov    %rbx,0x10(%rax)
18003508f:	48 89 68 18          	mov    %rbp,0x18(%rax)
180035093:	48 89 70 20          	mov    %rsi,0x20(%rax)
180035097:	48 89 48 08          	mov    %rcx,0x8(%rax)
18003509b:	57                   	push   %rdi
18003509c:	41 54                	push   %r12
18003509e:	41 55                	push   %r13
1800350a0:	41 56                	push   %r14
1800350a2:	41 57                	push   %r15
1800350a4:	48 83 ec 20          	sub    $0x20,%rsp
1800350a8:	48 8b b9 80 00 00 00 	mov    0x80(%rcx),%rdi
1800350af:	45 33 e4             	xor    %r12d,%r12d
1800350b2:	45 8b c8             	mov    %r8d,%r9d
1800350b5:	4c 8b ea             	mov    %rdx,%r13
1800350b8:	41 8b e8             	mov    %r8d,%ebp
1800350bb:	4c 8b d1             	mov    %rcx,%r10
1800350be:	48 8b 47 38          	mov    0x38(%rdi),%rax
1800350c2:	4c 03 4f 40          	add    0x40(%rdi),%r9
1800350c6:	48 ff c0             	inc    %rax
1800350c9:	49 3b c1             	cmp    %r9,%rax
1800350cc:	73 0a                	jae    0x1800350d8
1800350ce:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
1800350d3:	e9 1a 01 00 00       	jmp    0x1800351f2
1800350d8:	33 d2                	xor    %edx,%edx
1800350da:	b8 00 f0 00 00       	mov    $0xf000,%eax
1800350df:	f7 77 30             	divl   0x30(%rdi)
1800350e2:	44 8b f0             	mov    %eax,%r14d
1800350e5:	45 85 c0             	test   %r8d,%r8d
1800350e8:	0f 84 01 01 00 00    	je     0x1800351ef
1800350ee:	41 8b de             	mov    %r14d,%ebx
1800350f1:	48 3b 3d c8 fb 16 00 	cmp    0x16fbc8(%rip),%rdi        # 0x1801a4cc0
1800350f8:	48 8b 15 89 fb 16 00 	mov    0x16fb89(%rip),%rdx        # 0x1801a4c88
1800350ff:	48 8b 77 40          	mov    0x40(%rdi),%rsi
180035103:	48 8d 0c 13          	lea    (%rbx,%rdx,1),%rcx
180035107:	75 5a                	jne    0x180035163
180035109:	48 3b d6             	cmp    %rsi,%rdx
18003510c:	77 55                	ja     0x180035163
18003510e:	48 3b f1             	cmp    %rcx,%rsi
180035111:	73 50                	jae    0x180035163
180035113:	41 3b ee             	cmp    %r14d,%ebp
180035116:	45 8b fe             	mov    %r14d,%r15d
180035119:	44 0f 42 fd          	cmovb  %ebp,%r15d
18003511d:	41 8b c7             	mov    %r15d,%eax
180035120:	48 03 c6             	add    %rsi,%rax
180035123:	48 3b c1             	cmp    %rcx,%rax
180035126:	76 06                	jbe    0x18003512e
180035128:	44 8b f9             	mov    %ecx,%r15d
18003512b:	44 2b fe             	sub    %esi,%r15d
18003512e:	8b 47 30             	mov    0x30(%rdi),%eax
180035131:	2b f2                	sub    %edx,%esi
180035133:	0f af 77 30          	imul   0x30(%rdi),%esi
180035137:	49 8b cd             	mov    %r13,%rcx
18003513a:	41 0f af c7          	imul   %r15d,%eax
18003513e:	8b d6                	mov    %esi,%edx
180035140:	48 03 15 59 fb 16 00 	add    0x16fb59(%rip),%rdx        # 0x1801a4ca0
180035147:	44 8b c0             	mov    %eax,%r8d
18003514a:	8b d8                	mov    %eax,%ebx
18003514c:	e8 6f 08 10 00       	call   0x1801359c0
180035151:	4c 03 eb             	add    %rbx,%r13
180035154:	41 8b c7             	mov    %r15d,%eax
180035157:	41 2b ef             	sub    %r15d,%ebp
18003515a:	49 8b de             	mov    %r14,%rbx
18003515d:	48 01 47 40          	add    %rax,0x40(%rdi)
180035161:	eb 76                	jmp    0x1800351d9
180035163:	41 3b ee             	cmp    %r14d,%ebp
180035166:	73 48                	jae    0x1800351b0
180035168:	48 8b 47 38          	mov    0x38(%rdi),%rax
18003516c:	48 8d 0c 33          	lea    (%rbx,%rsi,1),%rcx
180035170:	48 ff c0             	inc    %rax
180035173:	48 3b c8             	cmp    %rax,%rcx
180035176:	76 0c                	jbe    0x180035184
180035178:	44 8b 47 38          	mov    0x38(%rdi),%r8d
18003517c:	44 2b c6             	sub    %esi,%r8d
18003517f:	41 ff c0             	inc    %r8d
180035182:	eb 03                	jmp    0x180035187
180035184:	45 8b c6             	mov    %r14d,%r8d
180035187:	48 8b 15 12 fb 16 00 	mov    0x16fb12(%rip),%rdx        # 0x1801a4ca0
18003518e:	45 33 c9             	xor    %r9d,%r9d
180035191:	49 8b ca             	mov    %r10,%rcx
180035194:	e8 03 02 00 00       	call   0x18003539c
180035199:	44 8b e0             	mov    %eax,%r12d
18003519c:	85 c0                	test   %eax,%eax
18003519e:	78 47                	js     0x1800351e7
1800351a0:	48 89 35 e1 fa 16 00 	mov    %rsi,0x16fae1(%rip)        # 0x1801a4c88
1800351a7:	48 89 3d 12 fb 16 00 	mov    %rdi,0x16fb12(%rip)        # 0x1801a4cc0
1800351ae:	eb 29                	jmp    0x1800351d9
1800351b0:	45 33 c9             	xor    %r9d,%r9d
1800351b3:	45 8b c6             	mov    %r14d,%r8d
1800351b6:	49 8b d5             	mov    %r13,%rdx