180030d15:	85 ff                	test   %edi,%edi
180030d17:	0f 85 d4 00 00 00    	jne    0x180030df1
180030d1d:	41 b0 01             	mov    $0x1,%r8b
180030d20:	45 8d 71 01          	lea    0x1(%r9),%r14d
180030d24:	49 8b c4             	mov    %r12,%rax
180030d27:	44 88 44 24 70       	mov    %r8b,0x70(%rsp)
180030d2c:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
180030d31:	45 8b fe             	mov    %r14d,%r15d
180030d34:	41 83 fe 01          	cmp    $0x1,%r14d
180030d38:	0f 84 92 00 00 00    	je     0x180030dd0
180030d3e:	48 85 c0             	test   %rax,%rax
180030d41:	0f 84 89 00 00 00    	je     0x180030dd0
180030d47:	85 ff                	test   %edi,%edi
180030d49:	75 41                	jne    0x180030d8c
180030d4b:	41 83 ff 04          	cmp    $0x4,%r15d
180030d4f:	0f 87 88 01 00 00    	ja     0x180030edd
180030d55:	33 d2                	xor    %edx,%edx
180030d57:	44 8d 47 10          	lea    0x10(%rdi),%r8d
180030d5b:	48 8b c8             	mov    %rax,%rcx
180030d5e:	e8 ed b0 0f 00       	call   0x18012be50
180030d63:	8b 94 24 88 00 00 00 	mov    0x88(%rsp),%edx
180030d6a:	44 8a 44 24 70       	mov    0x70(%rsp),%r8b
180030d6f:	66 c1 c8 08          	ror    $0x8,%ax
180030d73:	66 41 89 44 55 00    	mov    %ax,0x0(%r13,%rdx,2)
180030d79:	ff c2                	inc    %edx
180030d7b:	48 8b 44 24 20       	mov    0x20(%rsp),%rax
180030d80:	45 33 c9             	xor    %r9d,%r9d
180030d83:	89 94 24 88 00 00 00 	mov    %edx,0x88(%rsp)
180030d8a:	eb 4b                	jmp    0x180030dd7
180030d8c:	41 83 ff 03          	cmp    $0x3,%r15d
180030d90:	0f 87 47 01 00 00    	ja     0x180030edd
180030d96:	33 d2                	xor    %edx,%edx
180030d98:	48 8b c8             	mov    %rax,%rcx
180030d9b:	44 8d 42 0a          	lea    0xa(%rdx),%r8d
180030d9f:	e8 ac b0 0f 00       	call   0x18012be50
180030da4:	3d ff 00 00 00       	cmp    $0xff,%eax
180030da9:	0f 87 2e 01 00 00    	ja     0x180030edd
180030daf:	8b 8c 24 88 00 00 00 	mov    0x88(%rsp),%ecx
180030db6:	8d 0c 4d ff ff ff ff 	lea    -0x1(,%rcx,2),%ecx
180030dbd:	03 cf                	add    %edi,%ecx
180030dbf:	45 33 c9             	xor    %r9d,%r9d
180030dc2:	42 88 04 29          	mov    %al,(%rcx,%r13,1)
180030dc6:	44 8a 44 24 70       	mov    0x70(%rsp),%r8b
180030dcb:	48 8b 44 24 20       	mov    0x20(%rsp),%rax
180030dd0:	8b 94 24 88 00 00 00 	mov    0x88(%rsp),%edx
180030dd7:	49 83 c4 02          	add    $0x2,%r12
180030ddb:	41 ba 80 00 00 00    	mov    $0x80,%r10d
180030de1:	41 0f b7 1c 24       	movzwl (%r12),%ebx
180030de6:	66 85 db             	test   %bx,%bx
180030de9:	0f 85 92 fd ff ff    	jne    0x180030b81
180030def:	eb 05                	jmp    0x180030df6
180030df1:	48 8b 44 24 20       	mov    0x20(%rsp),%rax
180030df6:	48 8b 4c 24 78       	mov    0x78(%rsp),%rcx
180030dfb:	4c 89 21             	mov    %r12,(%rcx)
180030dfe:	85 ff                	test   %edi,%edi
180030e00:	74 0b                	je     0x180030e0d
180030e02:	83 ff 03             	cmp    $0x3,%edi
180030e05:	0f 85 d2 00 00 00    	jne    0x180030edd
180030e0b:	ff c6                	inc    %esi
180030e0d:	85 ed                	test   %ebp,%ebp
180030e0f:	75 09                	jne    0x180030e1a
180030e11:	83 fe 07             	cmp    $0x7,%esi
180030e14:	0f 85 c3 00 00 00    	jne    0x180030edd
180030e1a:	41 83 fe 01          	cmp    $0x1,%r14d
180030e1e:	75 5e                	jne    0x180030e7e
180030e20:	85 ff                	test   %edi,%edi
180030e22:	75 2b                	jne    0x180030e4f
180030e24:	41 83 ff 04          	cmp    $0x4,%r15d
180030e28:	0f 87 af 00 00 00    	ja     0x180030edd
180030e2e:	33 d2                	xor    %edx,%edx
180030e30:	45 8d 46 0f          	lea    0xf(%r14),%r8d
180030e34:	48 8b c8             	mov    %rax,%rcx
180030e37:	e8 14 b0 0f 00       	call   0x18012be50
180030e3c:	8b 8c 24 88 00 00 00 	mov    0x88(%rsp),%ecx
180030e43:	66 c1 c8 08          	ror    $0x8,%ax
180030e47:	66 41 89 44 4d 00    	mov    %ax,0x0(%r13,%rcx,2)
180030e4d:	eb 42                	jmp    0x180030e91
180030e4f:	41 83 ff 03          	cmp    $0x3,%r15d
180030e53:	0f 87 84 00 00 00    	ja     0x180030edd
180030e59:	33 d2                	xor    %edx,%edx
180030e5b:	48 8b c8             	mov    %rax,%rcx
180030e5e:	44 8d 42 0a          	lea    0xa(%rdx),%r8d
180030e62:	e8 e9 af 0f 00       	call   0x18012be50
180030e67:	3d ff 00 00 00       	cmp    $0xff,%eax
180030e6c:	77 6f                	ja     0x180030edd
180030e6e:	8b 8c 24 88 00 00 00 	mov    0x88(%rsp),%ecx
180030e75:	8d 0c 4f             	lea    (%rdi,%rcx,2),%ecx
180030e78:	42 88 04 29          	mov    %al,(%rcx,%r13,1)
180030e7c:	eb 13                	jmp    0x180030e91
180030e7e:	41 83 fe 02          	cmp    $0x2,%r14d
180030e82:	75 59                	jne    0x180030edd
180030e84:	8b 8c 24 88 00 00 00 	mov    0x88(%rsp),%ecx
180030e8b:	66 45 89 4c 4d 00    	mov    %r9w,0x0(%r13,%rcx,2)
180030e91:	85 ed                	test   %ebp,%ebp
180030e93:	74 44                	je     0x180030ed9
180030e95:	8b c5                	mov    %ebp,%eax
180030e97:	44 8b c6             	mov    %esi,%r8d
180030e9a:	44 2b c5             	sub    %ebp,%r8d
180030e9d:	bb 08 00 00 00       	mov    $0x8,%ebx
180030ea2:	2b ee                	sub    %esi,%ebp
180030ea4:	4d 03 c0             	add    %r8,%r8
180030ea7:	03 eb                	add    %ebx,%ebp
180030ea9:	48 8d 3c 45 00 00 00 	lea    0x0(,%rax,2),%rdi
180030eb0:	00
180030eb1:	49 03 fd             	add    %r13,%rdi
180030eb4:	48 8b d7             	mov    %rdi,%rdx
180030eb7:	48 8d 0c 6d 00 00 00 	lea    0x0(,%rbp,2),%rcx
180030ebe:	00
180030ebf:	49 03 cd             	add    %r13,%rcx
180030ec2:	e8 f9 4a 10 00       	call   0x1801359c0
180030ec7:	2b de                	sub    %esi,%ebx
180030ec9:	33 d2                	xor    %edx,%edx
180030ecb:	44 8b c3             	mov    %ebx,%r8d
180030ece:	48 8b cf             	mov    %rdi,%rcx
180030ed1:	4d 03 c0             	add    %r8,%r8
180030ed4:	e8 a7 4d 10 00       	call   0x180135c80
180030ed9:	33 c0                	xor    %eax,%eax
180030edb:	eb 05                	jmp    0x180030ee2
180030edd:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
180030ee2:	48 8b 9c 24 80 00 00 	mov    0x80(%rsp),%rbx
180030ee9:	00
180030eea:	48 83 c4 30          	add    $0x30,%rsp
180030eee:	41 5f                	pop    %r15
180030ef0:	41 5e                	pop    %r14
180030ef2:	41 5d                	pop    %r13
180030ef4:	41 5c                	pop    %r12
180030ef6:	5f                   	pop    %rdi
180030ef7:	5e                   	pop    %rsi
180030ef8:	5d                   	pop    %rbp
180030ef9:	c3                   	ret
180030efa:	cc                   	int3
180030efb:	cc                   	int3
180030efc:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180030f01:	55                   	push   %rbp
180030f02:	48 8d 6c 24 f0       	lea    -0x10(%rsp),%rbp
180030f07:	48 81 ec 10 01 00 00 	sub    $0x110,%rsp
180030f0e:	48 8b 41 08          	mov    0x8(%rcx),%rax
180030f12:	49 8b d8             	mov    %r8,%rbx
180030f15:	4c 8b da             	mov    %rdx,%r11
180030f18:	4c 8b 50 10          	mov    0x10(%rax),%r10
180030f1c:	4d 85 d2             	test   %r10,%r10
180030f1f:	75 07                	jne    0x180030f28
180030f21:	bb 0a 00 00 80       	mov    $0x8000000a,%ebx
180030f26:	eb 62                	jmp    0x180030f8a
180030f28:	44 8b 41 30          	mov    0x30(%rcx),%r8d
180030f2c:	4c 89 5c 24 28       	mov    %r11,0x28(%rsp)
180030f31:	c7 44 24 20 02 00 00 	movl   $0x2,0x20(%rsp)
180030f38:	00
180030f39:	48 8d 4c 24 30       	lea    0x30(%rsp),%rcx
180030f3e:	e8 25 60 01 00       	call   0x180046f68
180030f43:	83 4c 24 6c 04       	orl    $0x4,0x6c(%rsp)
180030f48:	48 8d 54 24 30       	lea    0x30(%rsp),%rdx
180030f4d:	41 8b c0             	mov    %r8d,%eax
180030f50:	c7 45 90 01 00 00 00 	movl   $0x1,-0x70(%rbp)
180030f57:	48 0f af c3          	imul   %rbx,%rax
180030f5b:	45 0f af c1          	imul   %r9d,%r8d
180030f5f:	49 8b ca             	mov    %r10,%rcx
180030f62:	4c 89 5d 98          	mov    %r11,-0x68(%rbp)
180030f66:	48 89 45 a8          	mov    %rax,-0x58(%rbp)
180030f6a:	44 89 45 b0          	mov    %r8d,-0x50(%rbp)
180030f6e:	e8 71 83 00 00       	call   0x1800392e4
180030f73:	8b 5d d0             	mov    -0x30(%rbp),%ebx
180030f76:	48 8d 4c 24 30       	lea    0x30(%rsp),%rcx
180030f7b:	e8 b8 60 01 00       	call   0x180047038
180030f80:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
180030f85:	e8 02 5f 01 00       	call   0x180046e8c
180030f8a:	8b c3                	mov    %ebx,%eax
180030f8c:	48 8b 9c 24 20 01 00 	mov    0x120(%rsp),%rbx
180030f93:	00
180030f94:	48 81 c4 10 01 00 00 	add    $0x110,%rsp
180030f9b:	5d                   	pop    %rbp
180030f9c:	c3                   	ret
180030f9d:	cc                   	int3
180030f9e:	cc                   	int3
180030f9f:	cc                   	int3
180030fa0:	40 53                	rex push %rbx
180030fa2:	48 83 ec 30          	sub    $0x30,%rsp
180030fa6:	48 8b 41 08          	mov    0x8(%rcx),%rax
180030faa:	4d 8b d1             	mov    %r9,%r10
180030fad:	4d 8b d8             	mov    %r8,%r11
180030fb0:	48 83 78 10 00       	cmpq   $0x0,0x10(%rax)
180030fb5:	75 07                	jne    0x180030fbe
180030fb7:	bb 0a 00 00 80       	mov    $0x8000000a,%ebx
180030fbc:	eb 36                	jmp    0x180030ff4
180030fbe:	44 8b 41 30          	mov    0x30(%rcx),%r8d
180030fc2:	48 89 54 24 28       	mov    %rdx,0x28(%rsp)
180030fc7:	c7 44 24 20 02 00 00 	movl   $0x2,0x20(%rsp)
180030fce:	00
180030fcf:	48 8b 48 10          	mov    0x10(%rax),%rcx
180030fd3:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
180030fd8:	45 8b c8             	mov    %r8d,%r9d
180030fdb:	4d 0f af c3          	imul   %r11,%r8
180030fdf:	45 0f af ca          	imul   %r10d,%r9d
180030fe3:	e8 38 83 00 00       	call   0x180039320
180030fe8:	8b d8                	mov    %eax,%ebx
180030fea:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
180030fef:	e8 98 5e 01 00       	call   0x180046e8c
180030ff4:	8b c3                	mov    %ebx,%eax
180030ff6:	48 83 c4 30          	add    $0x30,%rsp
180030ffa:	5b                   	pop    %rbx
180030ffb:	c3                   	ret
180030ffc:	cc                   	int3
180030ffd:	cc                   	int3
180030ffe:	cc                   	int3
180030fff:	cc                   	int3
180031000:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180031005:	4c 89 44 24 18       	mov    %r8,0x18(%rsp)
18003100a:	89 54 24 10          	mov    %edx,0x10(%rsp)
18003100e:	55                   	push   %rbp
18003100f:	56                   	push   %rsi
180031010:	57                   	push   %rdi
180031011:	41 54                	push   %r12
180031013:	41 55                	push   %r13
180031015:	41 56                	push   %r14
180031017:	41 57                	push   %r15
180031019:	48 8b ec             	mov    %rsp,%rbp
18003101c:	48 83 ec 30          	sub    $0x30,%rsp
180031020:	33 ff                	xor    %edi,%edi
180031022:	4d 8b f1             	mov    %r9,%r14
180031025:	41 89 79 04          	mov    %edi,0x4(%r9)
180031029:	8b df                	mov    %edi,%ebx
18003102b:	44 8b ef             	mov    %edi,%r13d
18003102e:	44 8b e7             	mov    %edi,%r12d
180031031:	85 d2                	test   %edx,%edx
180031033:	0f 84 df 00 00 00    	je     0x180031118
180031039:	4d 8d 79 08          	lea    0x8(%r9),%r15
18003103d:	48 8d 71 04          	lea    0x4(%rcx),%rsi
180031041:	0f b7 46 fc          	movzwl -0x4(%rsi),%eax
180031045:	48 8d 55 50          	lea    0x50(%rbp),%rdx
180031049:	66 89 45 f0          	mov    %ax,-0x10(%rbp)
18003104d:	48 8d 4d f0          	lea    -0x10(%rbp),%rcx
180031051:	0f b7 46 fe          	movzwl -0x2(%rsi),%eax
180031055:	66 89 45 f2          	mov    %ax,-0xe(%rbp)
180031059:	0f b7 06             	movzwl (%rsi),%eax
18003105c:	66 89 45 f4          	mov    %ax,-0xc(%rbp)
180031060:	0f b7 46 02          	movzwl 0x2(%rsi),%eax
180031064:	66 89 45 f6          	mov    %ax,-0xa(%rbp)
180031068:	48 89 75 58          	mov    %rsi,0x58(%rbp)
18003106c:	48 c7 45 f8 3b 00 3b 	movq   $0x3b003b,-0x8(%rbp)
180031073:	00
180031074:	e8 1b 2c 00 00       	call   0x180033c94
180031079:	84 c0                	test   %al,%al
18003107b:	0f 84 92 00 00 00    	je     0x180031113
180031081:	48 39 5d 50          	cmp    %rbx,0x50(%rbp)
180031085:	0f 8e 81 00 00 00    	jle    0x18003110c
18003108b:	48 8b 5d 50          	mov    0x50(%rbp),%rbx
18003108f:	49 63 c5             	movslq %r13d,%rax
180031092:	48 8b d3             	mov    %rbx,%rdx
180031095:	48 69 c8 80 96 98 00 	imul   $0x989680,%rax,%rcx
18003109c:	48 c1 ea 3f          	shr    $0x3f,%rdx
1800310a0:	48 8d 04 0b          	lea    (%rbx,%rcx,1),%rax
1800310a4:	48 c1 e9 3f          	shr    $0x3f,%rcx
1800310a8:	3b d1                	cmp    %ecx,%edx
1800310aa:	75 0b                	jne    0x1800310b7
1800310ac:	48 8b c8             	mov    %rax,%rcx
1800310af:	48 c1 e9 3f          	shr    $0x3f,%rcx
1800310b3:	3b d1                	cmp    %ecx,%edx
1800310b5:	75 4e                	jne    0x180031105
1800310b7:	f6 46 04 01          	testb  $0x1,0x4(%rsi)
1800310bb:	48 89 45 50          	mov    %rax,0x50(%rbp)
1800310bf:	74 11                	je     0x1800310d2
1800310c1:	48 b9 00 00 00 00 00 	movabs $0x8000000000000000,%rcx
1800310c8:	00 00 80
1800310cb:	48 0b c1             	or     %rcx,%rax
1800310ce:	48 89 45 50          	mov    %rax,0x50(%rbp)
1800310d2:	49 89 07             	mov    %rax,(%r15)
1800310d5:	41 ff c4             	inc    %r12d
1800310d8:	48 8b 45 58          	mov    0x58(%rbp),%rax
1800310dc:	49 83 c7 08          	add    $0x8,%r15
1800310e0:	41 ff 46 04          	incl   0x4(%r14)
1800310e4:	48 83 c6 0c          	add    $0xc,%rsi
1800310e8:	0f b7 40 04          	movzwl 0x4(%rax),%eax
1800310ec:	66 f7 d0             	not    %ax
1800310ef:	83 e0 01             	and    $0x1,%eax
1800310f2:	45 8d 6c 45 00       	lea    0x0(%r13,%rax,2),%r13d
1800310f7:	41 ff cd             	dec    %r13d
1800310fa:	44 3b 65 48          	cmp    0x48(%rbp),%r12d
1800310fe:	73 18                	jae    0x180031118
180031100:	e9 3c ff ff ff       	jmp    0x180031041
180031105:	bf 07 00 00 00       	mov    $0x7,%edi
18003110a:	eb 0c                	jmp    0x180031118
18003110c:	bf 05 00 00 00       	mov    $0x5,%edi
180031111:	eb 05                	jmp    0x180031118
180031113:	bf 04 00 00 00       	mov    $0x4,%edi
180031118:	48 8b 5c 24 70       	mov    0x70(%rsp),%rbx
18003111d:	8b c7                	mov    %edi,%eax
18003111f:	48 83 c4 30          	add    $0x30,%rsp
180031123:	41 5f                	pop    %r15
180031125:	41 5e                	pop    %r14
180031127:	41 5d                	pop    %r13
180031129:	41 5c                	pop    %r12
18003112b:	5f                   	pop    %rdi
18003112c:	5e                   	pop    %rsi
18003112d:	5d                   	pop    %rbp
18003112e:	c3                   	ret
18003112f:	cc                   	int3
180031130:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
180031135:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
18003113a:	56                   	push   %rsi
18003113b:	57                   	push   %rdi
18003113c:	41 54                	push   %r12
18003113e:	41 56                	push   %r14
180031140:	41 57                	push   %r15
180031142:	48 83 ec 30          	sub    $0x30,%rsp
180031146:	48 8b 3d 73 3c 17 00 	mov    0x173c73(%rip),%rdi        # 0x1801a4dc0
18003114d:	4d 8b f9             	mov    %r9,%r15
180031150:	41 83 21 00          	andl   $0x0,(%r9)
180031154:	41 8a f0             	mov    %r8b,%sil
180031157:	8b ea                	mov    %edx,%ebp
180031159:	4c 8b f1             	mov    %rcx,%r14
18003115c:	48 8d 9f 00 10 00 00 	lea    0x1000(%rdi),%rbx
180031163:	48 85 ff             	test   %rdi,%rdi
180031166:	74 13                	je     0x18003117b
180031168:	45 33 c9             	xor    %r9d,%r9d
18003116b:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
180031170:	45 33 c0             	xor    %r8d,%r8d
180031173:	48 8b cf             	mov    %rdi,%rcx
180031176:	e8 11 c4 06 00       	call   0x18009d58c
18003117b:	48 85 db             	test   %rbx,%rbx
18003117e:	74 13                	je     0x180031193
180031180:	45 33 c9             	xor    %r9d,%r9d
180031183:	48 8d 54 24 78       	lea    0x78(%rsp),%rdx
180031188:	45 33 c0             	xor    %r8d,%r8d
18003118b:	48 8b cb             	mov    %rbx,%rcx
18003118e:	e8 f9 c3 06 00       	call   0x18009d58c
180031193:	48 c7 44 24 60 db 00 	movq   $0xdb,0x60(%rsp)
18003119a:	00 00
18003119c:	48 83 67 08 00       	andq   $0x0,0x8(%rdi)
1800311a1:	8b 4f 08             	mov    0x8(%rdi),%ecx
1800311a4:	8b c1                	mov    %ecx,%eax
1800311a6:	48 83 0f ff          	orq    $0xffffffffffffffff,(%rdi)
1800311aa:	83 e0 fc             	and    $0xfffffffc,%eax
1800311ad:	83 c9 03             	or     $0x3,%ecx
1800311b0:	40 84 f6             	test   %sil,%sil
1800311b3:	0f 44 c8             	cmove  %eax,%ecx
1800311b6:	49 c1 ee 0c          	shr    $0xc,%r14
1800311ba:	89 4f 08             	mov    %ecx,0x8(%rdi)
1800311bd:	85 ed                	test   %ebp,%ebp
1800311bf:	0f 84 82 00 00 00    	je     0x180031247
1800311c5:	8b 5c 24 64          	mov    0x64(%rsp),%ebx
1800311c9:	41 bc ff 0f 00 00    	mov    $0xfff,%r12d
1800311cf:	81 fd fe 01 00 00    	cmp    $0x1fe,%ebp
1800311d5:	76 0e                	jbe    0x1800311e5
1800311d7:	81 e3 fe f1 ff ff    	and    $0xfffff1fe,%ebx
1800311dd:	81 cb fe 01 00 00    	or     $0x1fe,%ebx
1800311e3:	eb 09                	jmp    0x1800311ee
1800311e5:	8b c3                	mov    %ebx,%eax
1800311e7:	33 c5                	xor    %ebp,%eax
1800311e9:	41 23 c4             	and    %r12d,%eax
1800311ec:	33 d8                	xor    %eax,%ebx