180041d74:	48 85 c9             	test   %rcx,%rcx
180041d77:	75 cf                	jne    0x180041d48
180041d79:	48 8b c1             	mov    %rcx,%rax
180041d7c:	48 83 c4 20          	add    $0x20,%rsp
180041d80:	5b                   	pop    %rbx
180041d81:	c3                   	ret
180041d82:	cc                   	int3
180041d83:	cc                   	int3
180041d84:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180041d89:	57                   	push   %rdi
180041d8a:	48 83 ec 20          	sub    $0x20,%rsp
180041d8e:	41 8b f9             	mov    %r9d,%edi
180041d91:	41 8b d8             	mov    %r8d,%ebx
180041d94:	e8 83 ff ff ff       	call   0x180041d1c
180041d99:	33 d2                	xor    %edx,%edx
180041d9b:	48 8b c8             	mov    %rax,%rcx
180041d9e:	48 85 c0             	test   %rax,%rax
180041da1:	74 29                	je     0x180041dcc
180041da3:	e8 c8 cb 0f 00       	call   0x18013e970
180041da8:	39 78 44             	cmp    %edi,0x44(%rax)
180041dab:	74 1f                	je     0x180041dcc
180041dad:	e8 be cb 0f 00       	call   0x18013e970
180041db2:	48 8b 48 50          	mov    0x50(%rax),%rcx
180041db6:	48 85 c9             	test   %rcx,%rcx
180041db9:	74 11                	je     0x180041dcc
180041dbb:	e8 b0 cb 0f 00       	call   0x18013e970
180041dc0:	39 58 40             	cmp    %ebx,0x40(%rax)
180041dc3:	48 0f 45 ca          	cmovne %rdx,%rcx
180041dc7:	48 85 c9             	test   %rcx,%rcx
180041dca:	75 d7                	jne    0x180041da3
180041dcc:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180041dd1:	48 8b c1             	mov    %rcx,%rax
180041dd4:	48 83 c4 20          	add    $0x20,%rsp
180041dd8:	5f                   	pop    %rdi
180041dd9:	c3                   	ret
180041dda:	cc                   	int3
180041ddb:	cc                   	int3
180041ddc:	48 8b c4             	mov    %rsp,%rax
180041ddf:	48 89 58 08          	mov    %rbx,0x8(%rax)
180041de3:	48 89 68 10          	mov    %rbp,0x10(%rax)
180041de7:	48 89 70 18          	mov    %rsi,0x18(%rax)
180041deb:	48 89 78 20          	mov    %rdi,0x20(%rax)
180041def:	41 55                	push   %r13
180041df1:	41 56                	push   %r14
180041df3:	41 57                	push   %r15
180041df5:	48 83 ec 20          	sub    $0x20,%rsp
180041df9:	4c 8b e9             	mov    %rcx,%r13
180041dfc:	48 8b ea             	mov    %rdx,%rbp
180041dff:	48 8b ca             	mov    %rdx,%rcx
180041e02:	e8 69 cb 0f 00       	call   0x18013e970
180041e07:	4d 8b bd c0 00 00 00 	mov    0xc0(%r13),%r15
180041e0e:	48 8b f0             	mov    %rax,%rsi
180041e11:	33 d2                	xor    %edx,%edx
180041e13:	49 8b cf             	mov    %r15,%rcx
180041e16:	33 db                	xor    %ebx,%ebx
180041e18:	48 8b 40 28          	mov    0x28(%rax),%rax
180041e1c:	49 f7 b5 e8 00 00 00 	divq   0xe8(%r13)
180041e23:	48 8b d0             	mov    %rax,%rdx
180041e26:	4c 8b f0             	mov    %rax,%r14
180041e29:	e8 ae 1a 00 00       	call   0x1800438dc
180041e2e:	48 8b f8             	mov    %rax,%rdi
180041e31:	48 85 c0             	test   %rax,%rax
180041e34:	75 12                	jne    0x180041e48
180041e36:	4c 8b c5             	mov    %rbp,%r8
180041e39:	49 8b d6             	mov    %r14,%rdx
180041e3c:	49 8b cf             	mov    %r15,%rcx
180041e3f:	e8 dc 1a 00 00       	call   0x180043920
180041e44:	8b d8                	mov    %eax,%ebx
180041e46:	eb 4a                	jmp    0x180041e92
180041e48:	48 8b cf             	mov    %rdi,%rcx
180041e4b:	e8 20 cb 0f 00       	call   0x18013e970
180041e50:	8b 56 40             	mov    0x40(%rsi),%edx
180041e53:	3b 50 40             	cmp    0x40(%rax),%edx
180041e56:	72 0a                	jb     0x180041e62
180041e58:	75 72                	jne    0x180041ecc
180041e5a:	8b 48 44             	mov    0x44(%rax),%ecx
180041e5d:	39 4e 44             	cmp    %ecx,0x44(%rsi)
180041e60:	73 6a                	jae    0x180041ecc
180041e62:	45 33 c0             	xor    %r8d,%r8d
180041e65:	49 8b d6             	mov    %r14,%rdx
180041e68:	49 8b cf             	mov    %r15,%rcx
180041e6b:	e8 b0 1a 00 00       	call   0x180043920
180041e70:	8b d8                	mov    %eax,%ebx
180041e72:	85 c0                	test   %eax,%eax
180041e74:	78 1c                	js     0x180041e92
180041e76:	49 8b 8d c0 00 00 00 	mov    0xc0(%r13),%rcx
180041e7d:	4c 8b c5             	mov    %rbp,%r8
180041e80:	49 8b d6             	mov    %r14,%rdx
180041e83:	e8 98 1a 00 00       	call   0x180043920
180041e88:	8b d8                	mov    %eax,%ebx
180041e8a:	85 c0                	test   %eax,%eax
180041e8c:	78 04                	js     0x180041e92
180041e8e:	48 89 7e 50          	mov    %rdi,0x50(%rsi)
180041e92:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
180041e97:	8b c3                	mov    %ebx,%eax
180041e99:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
180041e9e:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
180041ea3:	48 8b 7c 24 58       	mov    0x58(%rsp),%rdi
180041ea8:	48 83 c4 20          	add    $0x20,%rsp
180041eac:	41 5f                	pop    %r15
180041eae:	41 5e                	pop    %r14
180041eb0:	41 5d                	pop    %r13
180041eb2:	c3                   	ret
180041eb3:	cc                   	int3
180041eb4:	e8 b7 ca 0f 00       	call   0x18013e970
180041eb9:	39 50 40             	cmp    %edx,0x40(%rax)
180041ebc:	77 17                	ja     0x180041ed5
180041ebe:	75 08                	jne    0x180041ec8
180041ec0:	8b 4e 44             	mov    0x44(%rsi),%ecx
180041ec3:	39 48 44             	cmp    %ecx,0x44(%rax)
180041ec6:	77 0d                	ja     0x180041ed5
180041ec8:	48 8b 78 10          	mov    0x10(%rax),%rdi
180041ecc:	48 8b 48 50          	mov    0x50(%rax),%rcx
180041ed0:	48 85 c9             	test   %rcx,%rcx
180041ed3:	75 df                	jne    0x180041eb4
180041ed5:	48 8b cd             	mov    %rbp,%rcx
180041ed8:	e8 a7 ca 0f 00       	call   0x18013e984
180041edd:	84 c0                	test   %al,%al
180041edf:	74 10                	je     0x180041ef1
180041ee1:	33 d2                	xor    %edx,%edx
180041ee3:	48 8b cf             	mov    %rdi,%rcx
180041ee6:	e8 ad ca 0f 00       	call   0x18013e998
180041eeb:	8b d8                	mov    %eax,%ebx
180041eed:	85 c0                	test   %eax,%eax
180041eef:	78 a1                	js     0x180041e92
180041ef1:	48 8b cf             	mov    %rdi,%rcx
180041ef4:	e8 77 ca 0f 00       	call   0x18013e970
180041ef9:	48 8b 48 50          	mov    0x50(%rax),%rcx
180041efd:	48 89 4e 50          	mov    %rcx,0x50(%rsi)
180041f01:	48 89 68 50          	mov    %rbp,0x50(%rax)
180041f05:	eb 8b                	jmp    0x180041e92
180041f07:	cc                   	int3
180041f08:	48 83 ec 28          	sub    $0x28,%rsp
180041f0c:	4c 8b c9             	mov    %rcx,%r9
180041f0f:	48 85 d2             	test   %rdx,%rdx
180041f12:	74 22                	je     0x180041f36
180041f14:	48 8b ca             	mov    %rdx,%rcx
180041f17:	e8 54 ca 0f 00       	call   0x18013e970
180041f1c:	48 8b 40 50          	mov    0x50(%rax),%rax
180041f20:	48 85 c0             	test   %rax,%rax
180041f23:	75 20                	jne    0x180041f45
180041f25:	49 8b 89 c0 00 00 00 	mov    0xc0(%r9),%rcx
180041f2c:	49 8b d0             	mov    %r8,%rdx
180041f2f:	e8 d8 1c 00 00       	call   0x180043c0c
180041f34:	eb 0f                	jmp    0x180041f45
180041f36:	48 8b 89 c0 00 00 00 	mov    0xc0(%rcx),%rcx
180041f3d:	49 8b d0             	mov    %r8,%rdx
180041f40:	e8 bf 1b 00 00       	call   0x180043b04
180041f45:	48 83 c4 28          	add    $0x28,%rsp
180041f49:	c3                   	ret
180041f4a:	cc                   	int3
180041f4b:	cc                   	int3
180041f4c:	48 8b c4             	mov    %rsp,%rax
180041f4f:	48 89 58 08          	mov    %rbx,0x8(%rax)
180041f53:	48 89 68 10          	mov    %rbp,0x10(%rax)
180041f57:	48 89 70 18          	mov    %rsi,0x18(%rax)
180041f5b:	48 89 78 20          	mov    %rdi,0x20(%rax)
180041f5f:	41 54                	push   %r12
180041f61:	41 56                	push   %r14
180041f63:	41 57                	push   %r15
180041f65:	48 83 ec 20          	sub    $0x20,%rsp
180041f69:	4c 8b f1             	mov    %rcx,%r14
180041f6c:	4c 8b fa             	mov    %rdx,%r15
180041f6f:	48 8b ca             	mov    %rdx,%rcx
180041f72:	e8 f9 c9 0f 00       	call   0x18013e970
180041f77:	4d 8b a6 c0 00 00 00 	mov    0xc0(%r14),%r12
180041f7e:	48 8b e8             	mov    %rax,%rbp
180041f81:	33 d2                	xor    %edx,%edx
180041f83:	49 8b cc             	mov    %r12,%rcx
180041f86:	33 ff                	xor    %edi,%edi
180041f88:	48 8b 40 28          	mov    0x28(%rax),%rax
180041f8c:	49 f7 b6 e8 00 00 00 	divq   0xe8(%r14)
180041f93:	48 8b d0             	mov    %rax,%rdx
180041f96:	48 8b f0             	mov    %rax,%rsi
180041f99:	e8 3e 19 00 00       	call   0x1800438dc
180041f9e:	48 8b d8             	mov    %rax,%rbx
180041fa1:	49 3b c7             	cmp    %r15,%rax
180041fa4:	75 33                	jne    0x180041fd9
180041fa6:	48 8b 5d 50          	mov    0x50(%rbp),%rbx
180041faa:	45 33 c0             	xor    %r8d,%r8d
180041fad:	48 8b d6             	mov    %rsi,%rdx
180041fb0:	49 8b cc             	mov    %r12,%rcx
180041fb3:	e8 68 19 00 00       	call   0x180043920
180041fb8:	8b f8                	mov    %eax,%edi
180041fba:	85 c0                	test   %eax,%eax
180041fbc:	78 5e                	js     0x18004201c
180041fbe:	48 85 db             	test   %rbx,%rbx
180041fc1:	74 59                	je     0x18004201c
180041fc3:	49 8b 8e c0 00 00 00 	mov    0xc0(%r14),%rcx
180041fca:	4c 8b c3             	mov    %rbx,%r8
180041fcd:	48 8b d6             	mov    %rsi,%rdx
180041fd0:	e8 4b 19 00 00       	call   0x180043920
180041fd5:	8b f8                	mov    %eax,%edi
180041fd7:	eb 43                	jmp    0x18004201c
180041fd9:	48 85 c0             	test   %rax,%rax
180041fdc:	74 3e                	je     0x18004201c
180041fde:	48 8b cb             	mov    %rbx,%rcx
180041fe1:	e8 8a c9 0f 00       	call   0x18013e970
180041fe6:	48 8b 48 50          	mov    0x50(%rax),%rcx
180041fea:	49 3b cf             	cmp    %r15,%rcx
180041fed:	74 08                	je     0x180041ff7
180041fef:	48 8b d9             	mov    %rcx,%rbx
180041ff2:	48 85 c9             	test   %rcx,%rcx
180041ff5:	75 e7                	jne    0x180041fde
180041ff7:	48 85 db             	test   %rbx,%rbx
180041ffa:	74 20                	je     0x18004201c
180041ffc:	33 d2                	xor    %edx,%edx
180041ffe:	48 8b cb             	mov    %rbx,%rcx
180042001:	e8 92 c9 0f 00       	call   0x18013e998
180042006:	8b f8                	mov    %eax,%edi
180042008:	85 c0                	test   %eax,%eax
18004200a:	78 10                	js     0x18004201c
18004200c:	48 8b cb             	mov    %rbx,%rcx
18004200f:	e8 5c c9 0f 00       	call   0x18013e970
180042014:	48 8b 4d 50          	mov    0x50(%rbp),%rcx
180042018:	48 89 48 50          	mov    %rcx,0x50(%rax)
18004201c:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
180042021:	8b c7                	mov    %edi,%eax
180042023:	48 8b 7c 24 58       	mov    0x58(%rsp),%rdi
180042028:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
18004202d:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
180042032:	48 83 c4 20          	add    $0x20,%rsp
180042036:	41 5f                	pop    %r15
180042038:	41 5e                	pop    %r14
18004203a:	41 5c                	pop    %r12
18004203c:	c3                   	ret
18004203d:	cc                   	int3
18004203e:	cc                   	int3
18004203f:	cc                   	int3
180042040:	48 83 ec 28          	sub    $0x28,%rsp
180042044:	4c 8b 89 c8 00 00 00 	mov    0xc8(%rcx),%r9
18004204b:	45 33 c0             	xor    %r8d,%r8d
18004204e:	4d 85 c9             	test   %r9,%r9
180042051:	74 27                	je     0x18004207a
180042053:	49 8b c9             	mov    %r9,%rcx
180042056:	e8 15 c9 0f 00       	call   0x18013e970
18004205b:	48 8b 48 20          	mov    0x20(%rax),%rcx
18004205f:	48 3b 0a             	cmp    (%rdx),%rcx
180042062:	75 0a                	jne    0x18004206e
180042064:	48 8b 48 28          	mov    0x28(%rax),%rcx
180042068:	48 3b 4a 08          	cmp    0x8(%rdx),%rcx
18004206c:	74 09                	je     0x180042077
18004206e:	4c 8b 88 d0 00 00 00 	mov    0xd0(%rax),%r9
180042075:	eb d7                	jmp    0x18004204e
180042077:	41 b0 01             	mov    $0x1,%r8b
18004207a:	41 f6 d8             	neg    %r8b
18004207d:	48 1b c0             	sbb    %rax,%rax
180042080:	49 23 c1             	and    %r9,%rax
180042083:	48 83 c4 28          	add    $0x28,%rsp
180042087:	c3                   	ret
180042088:	cc                   	int3
180042089:	cc                   	int3
18004208a:	cc                   	int3
18004208b:	cc                   	int3
18004208c:	48 83 ec 28          	sub    $0x28,%rsp
180042090:	4c 8b 89 c8 00 00 00 	mov    0xc8(%rcx),%r9
180042097:	4c 8b c1             	mov    %rcx,%r8
18004209a:	4d 85 c9             	test   %r9,%r9
18004209d:	74 0f                	je     0x1800420ae
18004209f:	48 8b ca             	mov    %rdx,%rcx
1800420a2:	e8 c9 c8 0f 00       	call   0x18013e970
1800420a7:	4c 89 88 d0 00 00 00 	mov    %r9,0xd0(%rax)
1800420ae:	49 89 90 c8 00 00 00 	mov    %rdx,0xc8(%r8)
1800420b5:	48 83 c4 28          	add    $0x28,%rsp
1800420b9:	c3                   	ret
1800420ba:	cc                   	int3
1800420bb:	cc                   	int3
1800420bc:	48 83 ec 28          	sub    $0x28,%rsp
1800420c0:	4c 8b c9             	mov    %rcx,%r9
1800420c3:	45 33 c0             	xor    %r8d,%r8d
1800420c6:	48 8b 89 c8 00 00 00 	mov    0xc8(%rcx),%rcx
1800420cd:	eb 14                	jmp    0x1800420e3
1800420cf:	e8 9c c8 0f 00       	call   0x18013e970
1800420d4:	48 3b ca             	cmp    %rdx,%rcx
1800420d7:	74 11                	je     0x1800420ea
1800420d9:	48 8b 88 d0 00 00 00 	mov    0xd0(%rax),%rcx
1800420e0:	4c 8b c0             	mov    %rax,%r8
1800420e3:	48 85 c9             	test   %rcx,%rcx
1800420e6:	75 e7                	jne    0x1800420cf
1800420e8:	eb 1c                	jmp    0x180042106
1800420ea:	48 8b 80 d0 00 00 00 	mov    0xd0(%rax),%rax
1800420f1:	4d 85 c0             	test   %r8,%r8
1800420f4:	74 09                	je     0x1800420ff
1800420f6:	49 89 80 d0 00 00 00 	mov    %rax,0xd0(%r8)
1800420fd:	eb 07                	jmp    0x180042106
1800420ff:	49 89 81 c8 00 00 00 	mov    %rax,0xc8(%r9)
180042106:	48 83 c4 28          	add    $0x28,%rsp
18004210a:	c3                   	ret
18004210b:	cc                   	int3
18004210c:	48 83 ec 28          	sub    $0x28,%rsp
180042110:	48 8b 89 d8 00 00 00 	mov    0xd8(%rcx),%rcx
180042117:	33 d2                	xor    %edx,%edx
180042119:	eb 0e                	jmp    0x180042129
18004211b:	ff c2                	inc    %edx
18004211d:	e8 4e c8 0f 00       	call   0x18013e970
180042122:	48 8b 88 b8 00 00 00 	mov    0xb8(%rax),%rcx
180042129:	48 85 c9             	test   %rcx,%rcx
18004212c:	75 ed                	jne    0x18004211b
18004212e:	8b c2                	mov    %edx,%eax
180042130:	48 83 c4 28          	add    $0x28,%rsp
180042134:	c3                   	ret
180042135:	cc                   	int3
180042136:	cc                   	int3
180042137:	cc                   	int3
180042138:	48 8b c4             	mov    %rsp,%rax
18004213b:	48 89 58 08          	mov    %rbx,0x8(%rax)
18004213f:	48 89 68 10          	mov    %rbp,0x10(%rax)
180042143:	48 89 70 18          	mov    %rsi,0x18(%rax)
180042147:	48 89 78 20          	mov    %rdi,0x20(%rax)
18004214b:	41 56                	push   %r14
18004214d:	48 83 ec 20          	sub    $0x20,%rsp
180042151:	48 8b f1             	mov    %rcx,%rsi
180042154:	48 8b fa             	mov    %rdx,%rdi
180042157:	48 8b ca             	mov    %rdx,%rcx
18004215a:	33 ed                	xor    %ebp,%ebp
18004215c:	33 db                	xor    %ebx,%ebx
18004215e:	45 33 c0             	xor    %r8d,%r8d
180042161:	e8 0a c8 0f 00       	call   0x18013e970
180042166:	4c 8b d8             	mov    %rax,%r11
180042169:	8b 48 58             	mov    0x58(%rax),%ecx
18004216c:	e8 9b e2 00 00       	call   0x18005040c
180042171:	4c 8b 8e d8 00 00 00 	mov    0xd8(%rsi),%r9
180042178:	44 8b f0             	mov    %eax,%r14d
18004217b:	eb 32                	jmp    0x1800421af
18004217d:	49 8b c9             	mov    %r9,%rcx
180042180:	e8 eb c7 0f 00       	call   0x18013e970
180042185:	4c 8b d0             	mov    %rax,%r10
180042188:	8b 48 58             	mov    0x58(%rax),%ecx
18004218b:	e8 7c e2 00 00       	call   0x18005040c
180042190:	44 3b f0             	cmp    %eax,%r14d
180042193:	77 1f                	ja     0x1800421b4
180042195:	75 0e                	jne    0x1800421a5
180042197:	41 83 7b 68 02       	cmpl   $0x2,0x68(%r11)
18004219c:	75 07                	jne    0x1800421a5
18004219e:	41 83 7a 68 03       	cmpl   $0x3,0x68(%r10)
1800421a3:	74 0f                	je     0x1800421b4
1800421a5:	49 8b d9             	mov    %r9,%rbx
1800421a8:	4d 8b 8a b8 00 00 00 	mov    0xb8(%r10),%r9
1800421af:	4d 85 c9             	test   %r9,%r9
1800421b2:	75 c9                	jne    0x18004217d
1800421b4:	4d 89 8b b8 00 00 00 	mov    %r9,0xb8(%r11)
1800421bb:	48 85 db             	test   %rbx,%rbx
1800421be:	74 35                	je     0x1800421f5
1800421c0:	48 8b cf             	mov    %rdi,%rcx
1800421c3:	e8 bc c7 0f 00       	call   0x18013e984
1800421c8:	84 c0                	test   %al,%al
1800421ca:	74 11                	je     0x1800421dd
1800421cc:	33 d2                	xor    %edx,%edx
1800421ce:	48 8b cb             	mov    %rbx,%rcx
1800421d1:	e8 c2 c7 0f 00       	call   0x18013e998