18005a9c4:	44 8b 99 48 0e 00 00 	mov    0xe48(%rcx),%r11d
18005a9cb:	33 d2                	xor    %edx,%edx
18005a9cd:	44 8b 65 78          	mov    0x78(%rbp),%r12d
18005a9d1:	48 8b f9             	mov    %rcx,%rdi
18005a9d4:	48 8b 59 20          	mov    0x20(%rcx),%rbx
18005a9d8:	4d 8b f8             	mov    %r8,%r15
18005a9db:	48 8b 0d 6e 42 0f 00 	mov    0xf426e(%rip),%rcx        # 0x18014ec50
18005a9e2:	45 8b e9             	mov    %r9d,%r13d
18005a9e5:	45 8d 54 24 ff       	lea    -0x1(%r12),%r10d
18005a9ea:	43 8d 04 2b          	lea    (%r11,%r13,1),%eax
18005a9ee:	44 03 d0             	add    %eax,%r10d
18005a9f1:	41 8b c2             	mov    %r10d,%eax
18005a9f4:	41 f7 f3             	div    %r11d
18005a9f7:	44 2b d2             	sub    %edx,%r10d
18005a9fa:	33 d2                	xor    %edx,%edx
18005a9fc:	41 8b c2             	mov    %r10d,%eax
18005a9ff:	41 f7 f3             	div    %r11d
18005aa02:	44 8b f0             	mov    %eax,%r14d
18005aa05:	48 3b 8f 60 0e 00 00 	cmp    0xe60(%rdi),%rcx
18005aa0c:	75 7b                	jne    0x18005aa89
18005aa0e:	44 8b 8f 58 0e 00 00 	mov    0xe58(%rdi),%r9d
18005aa15:	44 8d 04 03          	lea    (%rbx,%rax,1),%r8d
18005aa19:	48 89 5d 40          	mov    %rbx,0x40(%rbp)
18005aa1d:	45 3b c1             	cmp    %r9d,%r8d
18005aa20:	73 07                	jae    0x18005aa29
18005aa22:	8b f3                	mov    %ebx,%esi
18005aa24:	48 03 c6             	add    %rsi,%rax
18005aa27:	eb 7f                	jmp    0x18005aaa8
18005aa29:	48 8b c3             	mov    %rbx,%rax
18005aa2c:	48 c1 e8 20          	shr    $0x20,%rax
18005aa30:	ff c0                	inc    %eax
18005aa32:	89 45 44             	mov    %eax,0x44(%rbp)
18005aa35:	8b 87 4c 0e 00 00    	mov    0xe4c(%rdi),%eax
18005aa3b:	89 45 40             	mov    %eax,0x40(%rbp)
18005aa3e:	48 8b 45 40          	mov    0x40(%rbp),%rax
18005aa42:	48 89 47 20          	mov    %rax,0x20(%rdi)
18005aa46:	8b 57 24             	mov    0x24(%rdi),%edx
18005aa49:	89 97 54 0e 00 00    	mov    %edx,0xe54(%rdi)
18005aa4f:	89 97 5c 0e 00 00    	mov    %edx,0xe5c(%rdi)
18005aa55:	45 3b c1             	cmp    %r9d,%r8d
18005aa58:	75 25                	jne    0x18005aa7f
18005aa5a:	8b f3                	mov    %ebx,%esi
18005aa5c:	ba ff ff ff ff       	mov    $0xffffffff,%edx
18005aa61:	48 89 5d 40          	mov    %rbx,0x40(%rbp)
18005aa65:	4a 8d 04 36          	lea    (%rsi,%r14,1),%rax
18005aa69:	48 3b c2             	cmp    %rdx,%rax
18005aa6c:	77 08                	ja     0x18005aa76
18005aa6e:	44 89 45 40          	mov    %r8d,0x40(%rbp)
18005aa72:	48 8b 4d 40          	mov    0x40(%rbp),%rcx
18005aa76:	48 89 8f 60 0e 00 00 	mov    %rcx,0xe60(%rdi)
18005aa7d:	eb 3f                	jmp    0x18005aabe
18005aa7f:	48 89 9f 60 0e 00 00 	mov    %rbx,0xe60(%rdi)
18005aa86:	48 8b d8             	mov    %rax,%rbx
18005aa89:	46 8d 04 33          	lea    (%rbx,%r14,1),%r8d
18005aa8d:	44 3b 47 18          	cmp    0x18(%rdi),%r8d
18005aa91:	76 0b                	jbe    0x18005aa9e
18005aa93:	41 be 1d 00 1a c0    	mov    $0xc01a001d,%r14d
18005aa99:	e9 7e 01 00 00       	jmp    0x18005ac1c
18005aa9e:	8b f3                	mov    %ebx,%esi
18005aaa0:	48 89 5d 40          	mov    %rbx,0x40(%rbp)
18005aaa4:	4a 8d 04 36          	lea    (%rsi,%r14,1),%rax
18005aaa8:	ba ff ff ff ff       	mov    $0xffffffff,%edx
18005aaad:	48 3b c2             	cmp    %rdx,%rax
18005aab0:	77 08                	ja     0x18005aaba
18005aab2:	44 89 45 40          	mov    %r8d,0x40(%rbp)
18005aab6:	48 8b 4d 40          	mov    0x40(%rbp),%rcx
18005aaba:	48 89 4f 20          	mov    %rcx,0x20(%rdi)
18005aabe:	4d 8b c5             	mov    %r13,%r8
18005aac1:	33 d2                	xor    %edx,%edx
18005aac3:	49 8b cf             	mov    %r15,%rcx
18005aac6:	e8 b5 b1 0d 00       	call   0x180135c80
18005aacb:	44 8b 87 48 0e 00 00 	mov    0xe48(%rdi),%r8d
18005aad2:	41 8d 4d ff          	lea    -0x1(%r13),%ecx
18005aad6:	41 03 c8             	add    %r8d,%ecx
18005aad9:	33 d2                	xor    %edx,%edx
18005aadb:	8b c1                	mov    %ecx,%eax
18005aadd:	45 8b ce             	mov    %r14d,%r9d
18005aae0:	41 f7 f0             	div    %r8d
18005aae3:	2b ca                	sub    %edx,%ecx
18005aae5:	33 d2                	xor    %edx,%edx
18005aae7:	8b c1                	mov    %ecx,%eax
18005aae9:	49 8b cf             	mov    %r15,%rcx
18005aaec:	41 f7 f0             	div    %r8d
18005aaef:	4c 8b c3             	mov    %rbx,%r8
18005aaf2:	48 8b d7             	mov    %rdi,%rdx
18005aaf5:	89 44 24 20          	mov    %eax,0x20(%rsp)
18005aaf9:	e8 f6 48 ff ff       	call   0x18004f3f4
18005aafe:	41 8b 4f 40          	mov    0x40(%r15),%ecx
18005ab02:	45 33 f6             	xor    %r14d,%r14d
18005ab05:	8b 55 68             	mov    0x68(%rbp),%edx
18005ab08:	49 03 cf             	add    %r15,%rcx
18005ab0b:	41 8b c7             	mov    %r15d,%eax
18005ab0e:	2b c1                	sub    %ecx,%eax
18005ab10:	41 03 c5             	add    %r13d,%eax
18005ab13:	4c 89 71 08          	mov    %r14,0x8(%rcx)
18005ab17:	4c 89 71 10          	mov    %r14,0x10(%rcx)
18005ab1b:	48 c7 41 28 02 00 00 	movq   $0x2,0x28(%rcx)
18005ab22:	00
18005ab23:	48 89 19             	mov    %rbx,(%rcx)
18005ab26:	89 51 18             	mov    %edx,0x18(%rcx)
18005ab29:	44 89 61 1c          	mov    %r12d,0x1c(%rcx)
18005ab2d:	c7 41 20 30 00 00 00 	movl   $0x30,0x20(%rcx)
18005ab34:	89 41 24             	mov    %eax,0x24(%rcx)
18005ab37:	85 d2                	test   %edx,%edx
18005ab39:	74 10                	je     0x18005ab4b
18005ab3b:	44 8b c2             	mov    %edx,%r8d
18005ab3e:	48 83 c1 30          	add    $0x30,%rcx
18005ab42:	48 8b 55 60          	mov    0x60(%rbp),%rdx
18005ab46:	e8 75 ae 0d 00       	call   0x1801359c0
18005ab4b:	45 85 e4             	test   %r12d,%r12d
18005ab4e:	74 1d                	je     0x18005ab6d
18005ab50:	4c 8b 45 70          	mov    0x70(%rbp),%r8
18005ab54:	45 8b cc             	mov    %r12d,%r9d
18005ab57:	49 8b d7             	mov    %r15,%rdx
18005ab5a:	48 8b cf             	mov    %rdi,%rcx
18005ab5d:	e8 f2 49 ff ff       	call   0x18004f554
18005ab62:	44 8b f0             	mov    %eax,%r14d
18005ab65:	85 c0                	test   %eax,%eax
18005ab67:	0f 88 af 00 00 00    	js     0x18005ac1c
18005ab6d:	49 8b d7             	mov    %r15,%rdx
18005ab70:	48 8b cf             	mov    %rdi,%rcx
18005ab73:	e8 28 49 ff ff       	call   0x18004f4a0
18005ab78:	44 8b f0             	mov    %eax,%r14d
18005ab7b:	85 c0                	test   %eax,%eax
18005ab7d:	0f 88 99 00 00 00    	js     0x18005ac1c
18005ab83:	4c 8b 77 08          	mov    0x8(%rdi),%r14
18005ab87:	b9 38 00 00 00       	mov    $0x38,%ecx
18005ab8c:	8b 87 48 0e 00 00    	mov    0xe48(%rdi),%eax
18005ab92:	4c 03 f6             	add    %rsi,%r14
18005ab95:	4c 0f af f0          	imul   %rax,%r14
18005ab99:	e8 76 bd fe ff       	call   0x180046914
18005ab9e:	48 8b f0             	mov    %rax,%rsi
18005aba1:	48 85 c0             	test   %rax,%rax
18005aba4:	75 08                	jne    0x18005abae
18005aba6:	41 be 9a 00 00 c0    	mov    $0xc000009a,%r14d
18005abac:	eb 6e                	jmp    0x18005ac1c
18005abae:	83 66 30 00          	andl   $0x0,0x30(%rsi)
18005abb2:	47 8d 0c 2c          	lea    (%r12,%r13,1),%r9d
18005abb6:	44 89 48 10          	mov    %r9d,0x10(%rax)
18005abba:	48 89 38             	mov    %rdi,(%rax)
18005abbd:	4c 89 78 08          	mov    %r15,0x8(%rax)
18005abc1:	4c 89 70 18          	mov    %r14,0x18(%rax)
18005abc5:	48 89 58 20          	mov    %rbx,0x20(%rax)
18005abc9:	48 8b 85 80 00 00 00 	mov    0x80(%rbp),%rax
18005abd0:	48 89 46 28          	mov    %rax,0x28(%rsi)
18005abd4:	48 85 c0             	test   %rax,%rax
18005abd7:	74 03                	je     0x18005abdc
18005abd9:	48 89 18             	mov    %rbx,(%rax)
18005abdc:	48 8b 4d 48          	mov    0x48(%rbp),%rcx
18005abe0:	48 8d 05 95 4d ff ff 	lea    -0xb26b(%rip),%rax        # 0x18004f97c
18005abe7:	48 89 74 24 30       	mov    %rsi,0x30(%rsp)
18005abec:	4d 8b c7             	mov    %r15,%r8
18005abef:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
18005abf4:	b2 04                	mov    $0x4,%dl
18005abf6:	4c 89 74 24 20       	mov    %r14,0x20(%rsp)
18005abfb:	e8 84 be fe ff       	call   0x180046a84
18005ac00:	44 8b f0             	mov    %eax,%r14d
18005ac03:	85 c0                	test   %eax,%eax
18005ac05:	78 08                	js     0x18005ac0f
18005ac07:	ff 87 8c 0e 00 00    	incl   0xe8c(%rdi)
18005ac0d:	33 f6                	xor    %esi,%esi
18005ac0f:	48 85 f6             	test   %rsi,%rsi
18005ac12:	74 08                	je     0x18005ac1c
18005ac14:	48 8b ce             	mov    %rsi,%rcx
18005ac17:	e8 40 bd fe ff       	call   0x18004695c
18005ac1c:	48 8b 9c 24 90 00 00 	mov    0x90(%rsp),%rbx
18005ac23:	00
18005ac24:	41 8b c6             	mov    %r14d,%eax
18005ac27:	48 83 c4 40          	add    $0x40,%rsp
18005ac2b:	41 5f                	pop    %r15
18005ac2d:	41 5e                	pop    %r14
18005ac2f:	41 5d                	pop    %r13
18005ac31:	41 5c                	pop    %r12
18005ac33:	5f                   	pop    %rdi
18005ac34:	5e                   	pop    %rsi
18005ac35:	5d                   	pop    %rbp
18005ac36:	c3                   	ret
18005ac37:	cc                   	int3
18005ac38:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18005ac3d:	57                   	push   %rdi
18005ac3e:	48 83 ec 20          	sub    $0x20,%rsp
18005ac42:	8b da                	mov    %edx,%ebx
18005ac44:	48 8b f9             	mov    %rcx,%rdi
18005ac47:	e8 1c 00 00 00       	call   0x18005ac68
18005ac4c:	f6 c3 01             	test   $0x1,%bl
18005ac4f:	74 08                	je     0x18005ac59
18005ac51:	48 8b cf             	mov    %rdi,%rcx
18005ac54:	e8 03 bd fe ff       	call   0x18004695c
18005ac59:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
18005ac5e:	48 8b c7             	mov    %rdi,%rax
18005ac61:	48 83 c4 20          	add    $0x20,%rsp
18005ac65:	5f                   	pop    %rdi
18005ac66:	c3                   	ret
18005ac67:	cc                   	int3
18005ac68:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
18005ac6d:	57                   	push   %rdi
18005ac6e:	48 83 ec 20          	sub    $0x20,%rsp
18005ac72:	48 83 64 24 30 00    	andq   $0x0,0x30(%rsp)
18005ac78:	48 8d 05 79 8b 0e 00 	lea    0xe8b79(%rip),%rax        # 0x1801437f8
18005ac7f:	48 8d 79 10          	lea    0x10(%rcx),%rdi
18005ac83:	48 89 01             	mov    %rax,(%rcx)
18005ac86:	48 8b d9             	mov    %rcx,%rbx
18005ac89:	48 8d 54 24 30       	lea    0x30(%rsp),%rdx
18005ac8e:	48 8b cf             	mov    %rdi,%rcx
18005ac91:	e8 6e 8e fe ff       	call   0x180043b04
18005ac96:	eb 18                	jmp    0x18005acb0
18005ac98:	48 8b d0             	mov    %rax,%rdx
18005ac9b:	48 8b cb             	mov    %rbx,%rcx
18005ac9e:	e8 1d 01 00 00       	call   0x18005adc0
18005aca3:	48 8d 54 24 30       	lea    0x30(%rsp),%rdx
18005aca8:	48 8b cf             	mov    %rdi,%rcx
18005acab:	e8 5c 8f fe ff       	call   0x180043c0c
18005acb0:	48 85 c0             	test   %rax,%rax
18005acb3:	75 e3                	jne    0x18005ac98
18005acb5:	48 8d 8b 88 00 00 00 	lea    0x88(%rbx),%rcx
18005acbc:	e8 e7 68 00 00       	call   0x1800615a8
18005acc1:	48 8d 4b 50          	lea    0x50(%rbx),%rcx
18005acc5:	e8 de 68 00 00       	call   0x1800615a8
18005acca:	48 8b cf             	mov    %rdi,%rcx
18005accd:	e8 4a 8b fe ff       	call   0x18004381c
18005acd2:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
18005acd7:	48 83 c4 20          	add    $0x20,%rsp
18005acdb:	5f                   	pop    %rdi
18005acdc:	c3                   	ret
18005acdd:	cc                   	int3
18005acde:	cc                   	int3
18005acdf:	cc                   	int3
18005ace0:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18005ace5:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
18005acea:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
18005acef:	57                   	push   %rdi
18005acf0:	41 56                	push   %r14
18005acf2:	41 57                	push   %r15
18005acf4:	48 83 ec 20          	sub    $0x20,%rsp
18005acf8:	48 8b f9             	mov    %rcx,%rdi
18005acfb:	4c 8b f2             	mov    %rdx,%r14
18005acfe:	48 83 c1 10          	add    $0x10,%rcx
18005ad02:	33 f6                	xor    %esi,%esi
18005ad04:	e8 d3 8b fe ff       	call   0x1800438dc
18005ad09:	48 85 c0             	test   %rax,%rax
18005ad0c:	0f 85 8f 00 00 00    	jne    0x18005ada1
18005ad12:	48 8d 4f 50          	lea    0x50(%rdi),%rcx
18005ad16:	e8 0d 69 00 00       	call   0x180061628
18005ad1b:	48 8b d8             	mov    %rax,%rbx
18005ad1e:	48 85 c0             	test   %rax,%rax
18005ad21:	74 7e                	je     0x18005ada1
18005ad23:	44 8b 47 50          	mov    0x50(%rdi),%r8d
18005ad27:	33 d2                	xor    %edx,%edx
18005ad29:	48 8b c8             	mov    %rax,%rcx
18005ad2c:	e8 4f af 0d 00       	call   0x180135c80
18005ad31:	48 8d af 88 00 00 00 	lea    0x88(%rdi),%rbp
18005ad38:	4c 89 33             	mov    %r14,(%rbx)
18005ad3b:	48 8b cd             	mov    %rbp,%rcx
18005ad3e:	e8 e5 68 00 00       	call   0x180061628
18005ad43:	48 89 43 08          	mov    %rax,0x8(%rbx)
18005ad47:	48 85 c0             	test   %rax,%rax
18005ad4a:	74 45                	je     0x18005ad91
18005ad4c:	44 8b 45 00          	mov    0x0(%rbp),%r8d
18005ad50:	33 d2                	xor    %edx,%edx
18005ad52:	48 8b c8             	mov    %rax,%rcx
18005ad55:	e8 26 af 0d 00       	call   0x180135c80
18005ad5a:	33 d2                	xor    %edx,%edx
18005ad5c:	39 57 08             	cmp    %edx,0x8(%rdi)
18005ad5f:	76 18                	jbe    0x18005ad79
18005ad61:	8b c2                	mov    %edx,%eax
18005ad63:	ff c2                	inc    %edx
18005ad65:	48 c1 e0 04          	shl    $0x4,%rax
18005ad69:	48 03 43 08          	add    0x8(%rbx),%rax
18005ad6d:	48 89 40 08          	mov    %rax,0x8(%rax)
18005ad71:	48 89 00             	mov    %rax,(%rax)
18005ad74:	3b 57 08             	cmp    0x8(%rdi),%edx
18005ad77:	72 e8                	jb     0x18005ad61
18005ad79:	4c 8b c3             	mov    %rbx,%r8
18005ad7c:	48 8d 4f 10          	lea    0x10(%rdi),%rcx
18005ad80:	49 8b d6             	mov    %r14,%rdx
18005ad83:	e8 98 8b fe ff       	call   0x180043920
18005ad88:	85 c0                	test   %eax,%eax
18005ad8a:	78 05                	js     0x18005ad91
18005ad8c:	48 8b f3             	mov    %rbx,%rsi
18005ad8f:	33 db                	xor    %ebx,%ebx
18005ad91:	48 85 db             	test   %rbx,%rbx
18005ad94:	74 0b                	je     0x18005ada1
18005ad96:	48 8b d3             	mov    %rbx,%rdx
18005ad99:	48 8b cf             	mov    %rdi,%rcx
18005ad9c:	e8 1f 00 00 00       	call   0x18005adc0
18005ada1:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
18005ada6:	48 8b c6             	mov    %rsi,%rax
18005ada9:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
18005adae:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
18005adb3:	48 83 c4 20          	add    $0x20,%rsp
18005adb7:	41 5f                	pop    %r15
18005adb9:	41 5e                	pop    %r14
18005adbb:	5f                   	pop    %rdi
18005adbc:	c3                   	ret
18005adbd:	cc                   	int3
18005adbe:	cc                   	int3
18005adbf:	cc                   	int3
18005adc0:	40 53                	rex push %rbx
18005adc2:	48 83 ec 20          	sub    $0x20,%rsp
18005adc6:	48 8b da             	mov    %rdx,%rbx
18005adc9:	48 83 c1 10          	add    $0x10,%rcx
18005adcd:	48 8b 12             	mov    (%rdx),%rdx
18005add0:	45 33 c0             	xor    %r8d,%r8d
18005add3:	e8 48 8b fe ff       	call   0x180043920
18005add8:	48 8b 4b 08          	mov    0x8(%rbx),%rcx
18005addc:	48 85 c9             	test   %rcx,%rcx
18005addf:	74 05                	je     0x18005ade6
18005ade1:	e8 d2 68 00 00       	call   0x1800616b8
18005ade6:	48 83 c4 20          	add    $0x20,%rsp
18005adea:	5b                   	pop    %rbx
18005adeb:	c3                   	ret
18005adec:	cc                   	int3
18005aded:	cc                   	int3
18005adee:	cc                   	int3
18005adef:	cc                   	int3
18005adf0:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18005adf5:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
18005adfa:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
18005adff:	57                   	push   %rdi
18005ae00:	41 54                	push   %r12
18005ae02:	41 55                	push   %r13
18005ae04:	41 56                	push   %r14
18005ae06:	41 57                	push   %r15
18005ae08:	48 83 ec 30          	sub    $0x30,%rsp
18005ae0c:	33 f6                	xor    %esi,%esi
18005ae0e:	41 8b d9             	mov    %r9d,%ebx
18005ae11:	49 8b f8             	mov    %r8,%rdi
18005ae14:	4c 8b e1             	mov    %rcx,%r12
18005ae17:	48 85 c9             	test   %rcx,%rcx
18005ae1a:	0f 84 fc 00 00 00    	je     0x18005af1c
18005ae20:	44 8b f2             	mov    %edx,%r14d
18005ae23:	49 c1 e6 04          	shl    $0x4,%r14
18005ae27:	4c 03 71 08          	add    0x8(%rcx),%r14
18005ae2b:	4d 8b 3e             	mov    (%r14),%r15
18005ae2e:	e9 e0 00 00 00       	jmp    0x18005af13
18005ae33:	4d 8b ef             	mov    %r15,%r13
18005ae36:	4d 8b 3f             	mov    (%r15),%r15
18005ae39:	49 8b 6d 10          	mov    0x10(%r13),%rbp
18005ae3d:	48 3b ef             	cmp    %rdi,%rbp
18005ae40:	76 54                	jbe    0x18005ae96
18005ae42:	48 2b ef             	sub    %rdi,%rbp
18005ae45:	8b c3                	mov    %ebx,%eax
18005ae47:	48 3b e8             	cmp    %rax,%rbp
18005ae4a:	0f 83 cc 00 00 00    	jae    0x18005af1c
18005ae50:	48 8b 8c 24 88 00 00 	mov    0x88(%rsp),%rcx
18005ae57:	00
18005ae58:	45 33 c0             	xor    %r8d,%r8d
18005ae5b:	48 8b 84 24 80 00 00 	mov    0x80(%rsp),%rax
18005ae62:	00
18005ae63:	44 8b cd             	mov    %ebp,%r9d