18004ad23:	33 d2                	xor    %edx,%edx
18004ad25:	e8 ce 10 00 00       	call   0x18004bdf8
18004ad2a:	48 83 c4 48          	add    $0x48,%rsp
18004ad2e:	c3                   	ret
18004ad2f:	cc                   	int3
18004ad30:	48 83 ec 48          	sub    $0x48,%rsp
18004ad34:	33 c0                	xor    %eax,%eax
18004ad36:	45 85 c9             	test   %r9d,%r9d
18004ad39:	74 1f                	je     0x18004ad5a
18004ad3b:	48 89 44 24 30       	mov    %rax,0x30(%rsp)
18004ad40:	8b 44 24 70          	mov    0x70(%rsp),%eax
18004ad44:	89 44 24 28          	mov    %eax,0x28(%rsp)
18004ad48:	44 89 4c 24 20       	mov    %r9d,0x20(%rsp)
18004ad4d:	4d 8b c8             	mov    %r8,%r9
18004ad50:	4c 8b c2             	mov    %rdx,%r8
18004ad53:	b2 01                	mov    $0x1,%dl
18004ad55:	e8 9e 10 00 00       	call   0x18004bdf8
18004ad5a:	48 83 c4 48          	add    $0x48,%rsp
18004ad5e:	c3                   	ret
18004ad5f:	cc                   	int3
18004ad60:	48 8b 41 28          	mov    0x28(%rcx),%rax
18004ad64:	48 89 02             	mov    %rax,(%rdx)
18004ad67:	8b 81 80 00 00 00    	mov    0x80(%rcx),%eax
18004ad6d:	41 89 00             	mov    %eax,(%r8)
18004ad70:	48 8b 41 18          	mov    0x18(%rcx),%rax
18004ad74:	49 89 01             	mov    %rax,(%r9)
18004ad77:	48 8b 41 20          	mov    0x20(%rcx),%rax
18004ad7b:	49 89 41 08          	mov    %rax,0x8(%r9)
18004ad7f:	8b 51 64             	mov    0x64(%rcx),%edx
18004ad82:	83 ea 02             	sub    $0x2,%edx
18004ad85:	74 19                	je     0x18004ada0
18004ad87:	83 fa 01             	cmp    $0x1,%edx
18004ad8a:	74 0a                	je     0x18004ad96
18004ad8c:	41 c7 41 10 04 00 00 	movl   $0x4,0x10(%r9)
18004ad93:	00
18004ad94:	c3                   	ret
18004ad95:	cc                   	int3
18004ad96:	41 c7 41 10 03 00 00 	movl   $0x3,0x10(%r9)
18004ad9d:	00
18004ad9e:	c3                   	ret
18004ad9f:	cc                   	int3
18004ada0:	41 c7 41 10 02 00 00 	movl   $0x2,0x10(%r9)
18004ada7:	00
18004ada8:	c3                   	ret
18004ada9:	cc                   	int3
18004adaa:	cc                   	int3
18004adab:	cc                   	int3
18004adac:	48 8b c4             	mov    %rsp,%rax
18004adaf:	48 89 58 08          	mov    %rbx,0x8(%rax)
18004adb3:	48 89 68 10          	mov    %rbp,0x10(%rax)
18004adb7:	48 89 70 18          	mov    %rsi,0x18(%rax)
18004adbb:	48 89 78 20          	mov    %rdi,0x20(%rax)
18004adbf:	41 54                	push   %r12
18004adc1:	41 56                	push   %r14
18004adc3:	41 57                	push   %r15
18004adc5:	48 83 ec 20          	sub    $0x20,%rsp
18004adc9:	33 ff                	xor    %edi,%edi
18004adcb:	49 8b f1             	mov    %r9,%rsi
18004adce:	83 7a 3c 02          	cmpl   $0x2,0x3c(%rdx)
18004add2:	4d 8b f0             	mov    %r8,%r14
18004add5:	48 8b ea             	mov    %rdx,%rbp
18004add8:	4c 8b f9             	mov    %rcx,%r15
18004addb:	74 0f                	je     0x18004adec
18004addd:	4d 85 c9             	test   %r9,%r9
18004ade0:	75 0a                	jne    0x18004adec
18004ade2:	bf 0d 00 00 c0       	mov    $0xc000000d,%edi
18004ade7:	e9 63 01 00 00       	jmp    0x18004af4f
18004adec:	83 7a 3c 04          	cmpl   $0x4,0x3c(%rdx)
18004adf0:	4c 8b 64 24 60       	mov    0x60(%rsp),%r12
18004adf5:	75 05                	jne    0x18004adfc
18004adf7:	4d 85 e4             	test   %r12,%r12
18004adfa:	74 e6                	je     0x18004ade2
18004adfc:	48 8b 5c 24 70       	mov    0x70(%rsp),%rbx
18004ae01:	33 d2                	xor    %edx,%edx
18004ae03:	48 8b cb             	mov    %rbx,%rcx
18004ae06:	41 b8 88 00 00 00    	mov    $0x88,%r8d
18004ae0c:	e8 6f ae 0e 00       	call   0x180135c80
18004ae11:	41 83 c9 ff          	or     $0xffffffff,%r9d
18004ae15:	44 89 4b 50          	mov    %r9d,0x50(%rbx)
18004ae19:	8b 45 3c             	mov    0x3c(%rbp),%eax
18004ae1c:	89 43 64             	mov    %eax,0x64(%rbx)
18004ae1f:	48 8b 45 30          	mov    0x30(%rbp),%rax
18004ae23:	48 89 43 20          	mov    %rax,0x20(%rbx)
18004ae27:	48 8b 45 28          	mov    0x28(%rbp),%rax
18004ae2b:	48 89 43 18          	mov    %rax,0x18(%rbx)
18004ae2f:	0f 10 45 44          	movups 0x44(%rbp),%xmm0
18004ae33:	f3 0f 7f 43 08       	movdqu %xmm0,0x8(%rbx)
18004ae38:	41 8b 47 0c          	mov    0xc(%r15),%eax
18004ae3c:	89 43 50             	mov    %eax,0x50(%rbx)
18004ae3f:	8a 44 24 68          	mov    0x68(%rsp),%al
18004ae43:	88 83 84 00 00 00    	mov    %al,0x84(%rbx)
18004ae49:	8b 45 3c             	mov    0x3c(%rbp),%eax
18004ae4c:	83 f8 02             	cmp    $0x2,%eax
18004ae4f:	0f 84 c4 00 00 00    	je     0x18004af19
18004ae55:	83 c0 fd             	add    $0xfffffffd,%eax
18004ae58:	83 f8 01             	cmp    $0x1,%eax
18004ae5b:	0f 87 b1 00 00 00    	ja     0x18004af12
18004ae61:	41 8b 4e 20          	mov    0x20(%r14),%ecx
18004ae65:	41 8b 46 1c          	mov    0x1c(%r14),%eax
18004ae69:	44 8b c1             	mov    %ecx,%r8d
18004ae6c:	48 0f af c1          	imul   %rcx,%rax
18004ae70:	89 4b 54             	mov    %ecx,0x54(%rbx)
18004ae73:	c1 e9 09             	shr    $0x9,%ecx
18004ae76:	48 89 43 28          	mov    %rax,0x28(%rbx)
18004ae7a:	41 8b 46 1c          	mov    0x1c(%r14),%eax
18004ae7e:	89 43 58             	mov    %eax,0x58(%rbx)
18004ae81:	8d 41 07             	lea    0x7(%rcx),%eax
18004ae84:	89 4b 5c             	mov    %ecx,0x5c(%rbx)
18004ae87:	83 e0 f8             	and    $0xfffffff8,%eax
18004ae8a:	c7 83 80 00 00 00 00 	movl   $0x200,0x80(%rbx)
18004ae91:	02 00 00
18004ae94:	3b c1                	cmp    %ecx,%eax
18004ae96:	73 0a                	jae    0x18004aea2
18004ae98:	bf 95 00 00 c0       	mov    $0xc0000095,%edi
18004ae9d:	e9 ad 00 00 00       	jmp    0x18004af4f
18004aea2:	c1 e8 03             	shr    $0x3,%eax
18004aea5:	8d 88 ff 01 00 00    	lea    0x1ff(%rax),%ecx
18004aeab:	81 e1 00 fe ff ff    	and    $0xfffffe00,%ecx
18004aeb1:	89 4b 60             	mov    %ecx,0x60(%rbx)
18004aeb4:	3b c8                	cmp    %eax,%ecx
18004aeb6:	72 e0                	jb     0x18004ae98
18004aeb8:	49 8b 46 10          	mov    0x10(%r14),%rax
18004aebc:	48 89 43 38          	mov    %rax,0x38(%rbx)
18004aec0:	48 8b 45 10          	mov    0x10(%rbp),%rax
18004aec4:	48 89 43 30          	mov    %rax,0x30(%rbx)
18004aec8:	48 89 73 48          	mov    %rsi,0x48(%rbx)
18004aecc:	8b c7                	mov    %edi,%eax
18004aece:	41 39 7e 1c          	cmp    %edi,0x1c(%r14)
18004aed2:	76 18                	jbe    0x18004aeec
18004aed4:	41 8b 56 1c          	mov    0x1c(%r14),%edx
18004aed8:	44 39 0e             	cmp    %r9d,(%rsi)
18004aedb:	74 05                	je     0x18004aee2
18004aedd:	39 06                	cmp    %eax,(%rsi)
18004aedf:	0f 47 06             	cmova  (%rsi),%eax
18004aee2:	48 83 c6 04          	add    $0x4,%rsi
18004aee6:	48 83 ea 01          	sub    $0x1,%rdx
18004aeea:	75 ec                	jne    0x18004aed8
18004aeec:	48 c1 e0 09          	shl    $0x9,%rax
18004aef0:	48 ff c9             	dec    %rcx
18004aef3:	49 03 c0             	add    %r8,%rax
18004aef6:	48 03 c8             	add    %rax,%rcx
18004aef9:	48 89 4b 40          	mov    %rcx,0x40(%rbx)
18004aefd:	83 7d 3c 04          	cmpl   $0x4,0x3c(%rbp)
18004af01:	75 4c                	jne    0x18004af4f
18004af03:	4c 89 23             	mov    %r12,(%rbx)
18004af06:	41 0f 10 46 28       	movups 0x28(%r14),%xmm0
18004af0b:	f3 0f 7f 43 68       	movdqu %xmm0,0x68(%rbx)
18004af10:	eb 3d                	jmp    0x18004af4f
18004af12:	bf bb 00 00 c0       	mov    $0xc00000bb,%edi
18004af17:	eb 36                	jmp    0x18004af4f
18004af19:	49 8b 57 10          	mov    0x10(%r15),%rdx
18004af1d:	48 81 ea 00 02 00 00 	sub    $0x200,%rdx
18004af24:	c7 43 60 00 02 00 00 	movl   $0x200,0x60(%rbx)
18004af2b:	48 89 53 28          	mov    %rdx,0x28(%rbx)
18004af2f:	c7 43 54 00 00 20 00 	movl   $0x200000,0x54(%rbx)
18004af36:	c7 83 80 00 00 00 00 	movl   $0x200,0x80(%rbx)
18004af3d:	02 00 00
18004af40:	48 8d 4a ff          	lea    -0x1(%rdx),%rcx
18004af44:	48 c1 ea 15          	shr    $0x15,%rdx
18004af48:	89 53 58             	mov    %edx,0x58(%rbx)
18004af4b:	48 89 4b 40          	mov    %rcx,0x40(%rbx)
18004af4f:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
18004af54:	8b c7                	mov    %edi,%eax
18004af56:	48 8b 7c 24 58       	mov    0x58(%rsp),%rdi
18004af5b:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
18004af60:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
18004af65:	48 83 c4 20          	add    $0x20,%rsp
18004af69:	41 5f                	pop    %r15
18004af6b:	41 5e                	pop    %r14
18004af6d:	41 5c                	pop    %r12
18004af6f:	c3                   	ret
18004af70:	cc                   	int3
18004af71:	cc                   	int3
18004af72:	cc                   	int3
18004af73:	cc                   	int3
18004af74:	48 85 c9             	test   %rcx,%rcx
18004af77:	74 6e                	je     0x18004afe7
18004af79:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18004af7e:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
18004af83:	57                   	push   %rdi
18004af84:	48 83 ec 20          	sub    $0x20,%rsp
18004af88:	48 8b d9             	mov    %rcx,%rbx
18004af8b:	48 8b f1             	mov    %rcx,%rsi
18004af8e:	48 8b 4b 48          	mov    0x48(%rbx),%rcx
18004af92:	48 8b 3b             	mov    (%rbx),%rdi
18004af95:	48 85 c9             	test   %rcx,%rcx
18004af98:	74 05                	je     0x18004af9f
18004af9a:	e8 5d f0 04 00       	call   0x180099ffc
18004af9f:	48 8b 4b 78          	mov    0x78(%rbx),%rcx
18004afa3:	48 85 c9             	test   %rcx,%rcx
18004afa6:	74 05                	je     0x18004afad
18004afa8:	e8 4f f0 04 00       	call   0x180099ffc
18004afad:	8b 4b 50             	mov    0x50(%rbx),%ecx
18004afb0:	83 f9 ff             	cmp    $0xffffffff,%ecx
18004afb3:	74 0e                	je     0x18004afc3
18004afb5:	80 bb 84 00 00 00 00 	cmpb   $0x0,0x84(%rbx)
18004afbc:	75 05                	jne    0x18004afc3
18004afbe:	e8 3d d5 01 00       	call   0x180068500
18004afc3:	48 3b de             	cmp    %rsi,%rbx
18004afc6:	74 08                	je     0x18004afd0
18004afc8:	48 8b cb             	mov    %rbx,%rcx
18004afcb:	e8 2c f0 04 00       	call   0x180099ffc
18004afd0:	48 8b df             	mov    %rdi,%rbx
18004afd3:	48 85 ff             	test   %rdi,%rdi
18004afd6:	75 b6                	jne    0x18004af8e
18004afd8:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
18004afdd:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
18004afe2:	48 83 c4 20          	add    $0x20,%rsp
18004afe6:	5f                   	pop    %rdi
18004afe7:	c3                   	ret
18004afe8:	cc                   	int3
18004afe9:	cc                   	int3
18004afea:	cc                   	int3
18004afeb:	cc                   	int3
18004afec:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18004aff1:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
18004aff6:	48 89 54 24 10       	mov    %rdx,0x10(%rsp)
18004affb:	55                   	push   %rbp
18004affc:	57                   	push   %rdi
18004affd:	41 54                	push   %r12
18004afff:	41 56                	push   %r14
18004b001:	41 57                	push   %r15
18004b003:	48 8b ec             	mov    %rsp,%rbp
18004b006:	48 83 ec 70          	sub    $0x70,%rsp
18004b00a:	33 d2                	xor    %edx,%edx
18004b00c:	0f 57 c0             	xorps  %xmm0,%xmm0
18004b00f:	32 c0                	xor    %al,%al
18004b011:	4d 8b f1             	mov    %r9,%r14
18004b014:	4c 8b f9             	mov    %rcx,%r15
18004b017:	49 81 c0 48 02 00 00 	add    $0x248,%r8
18004b01e:	0f 11 45 c0          	movups %xmm0,-0x40(%rbp)
18004b022:	44 8d 62 01          	lea    0x1(%rdx),%r12d
18004b026:	41 81 78 f8 75 72 32 	cmpl   $0x57327275,-0x8(%r8)
18004b02d:	57
18004b02e:	49 8b d8             	mov    %r8,%rbx
18004b031:	75 28                	jne    0x18004b05b
18004b033:	41 8b 48 fc          	mov    -0x4(%r8),%ecx
18004b037:	32 c0                	xor    %al,%al
18004b039:	85 c9                	test   %ecx,%ecx
18004b03b:	74 1a                	je     0x18004b057
18004b03d:	41 83 38 00          	cmpl   $0x0,(%r8)
18004b041:	76 14                	jbe    0x18004b057
18004b043:	49 83 78 08 00       	cmpq   $0x0,0x8(%r8)
18004b048:	76 0d                	jbe    0x18004b057
18004b04a:	c1 e1 09             	shl    $0x9,%ecx
18004b04d:	41 39 08             	cmp    %ecx,(%r8)
18004b050:	0f b6 c0             	movzbl %al,%eax
18004b053:	41 0f 42 c4          	cmovb  %r12d,%eax
18004b057:	84 c0                	test   %al,%al
18004b059:	75 1a                	jne    0x18004b075
18004b05b:	41 03 d4             	add    %r12d,%edx
18004b05e:	49 83 c0 18          	add    $0x18,%r8
18004b062:	83 fa 08             	cmp    $0x8,%edx
18004b065:	72 bf                	jb     0x18004b026
18004b067:	84 c0                	test   %al,%al
18004b069:	75 0a                	jne    0x18004b075
18004b06b:	bb 0d 00 3a c0       	mov    $0xc03a000d,%ebx
18004b070:	e9 ef 00 00 00       	jmp    0x18004b164
18004b075:	81 3b ff ff 00 00    	cmpl   $0xffff,(%rbx)
18004b07b:	76 0a                	jbe    0x18004b087
18004b07d:	bb 02 01 00 c0       	mov    $0xc0000102,%ebx
18004b082:	e9 dd 00 00 00       	jmp    0x18004b164
18004b087:	0f b7 3b             	movzwl (%rbx),%edi
18004b08a:	8b cf                	mov    %edi,%ecx
18004b08c:	e8 bf ed 04 00       	call   0x180099e50
18004b091:	48 8b f0             	mov    %rax,%rsi
18004b094:	48 85 c0             	test   %rax,%rax
18004b097:	75 0a                	jne    0x18004b0a3
18004b099:	bb 17 00 00 c0       	mov    $0xc0000017,%ebx
18004b09e:	e9 c1 00 00 00       	jmp    0x18004b164
18004b0a3:	48 8b 53 08          	mov    0x8(%rbx),%rdx
18004b0a7:	44 8b cf             	mov    %edi,%r9d
18004b0aa:	83 65 b4 00          	andl   $0x0,-0x4c(%rbp)
18004b0ae:	4c 8b c6             	mov    %rsi,%r8
18004b0b1:	49 8b cf             	mov    %r15,%rcx
18004b0b4:	66 89 7d b2          	mov    %di,-0x4e(%rbp)
18004b0b8:	48 89 75 b8          	mov    %rsi,-0x48(%rbp)
18004b0bc:	e8 ff 0f 00 00       	call   0x18004c0c0
18004b0c1:	8b d8                	mov    %eax,%ebx
18004b0c3:	85 c0                	test   %eax,%eax
18004b0c5:	0f 88 8d 00 00 00    	js     0x18004b158
18004b0cb:	49 8b 17             	mov    (%r15),%rdx
18004b0ce:	48 8d 4d d0          	lea    -0x30(%rbp),%rcx
18004b0d2:	66 89 7d b0          	mov    %di,-0x50(%rbp)
18004b0d6:	e8 e9 25 03 00       	call   0x18007d6c4
18004b0db:	4c 8d 45 c0          	lea    -0x40(%rbp),%r8
18004b0df:	48 8d 55 b0          	lea    -0x50(%rbp),%rdx
18004b0e3:	48 8d 4d d0          	lea    -0x30(%rbp),%rcx
18004b0e7:	e8 48 1d ff ff       	call   0x18003ce34
18004b0ec:	8b d8                	mov    %eax,%ebx
18004b0ee:	85 c0                	test   %eax,%eax
18004b0f0:	78 66                	js     0x18004b158
18004b0f2:	45 8b 7f 08          	mov    0x8(%r15),%r15d
18004b0f6:	4c 8d 4d 38          	lea    0x38(%rbp),%r9
18004b0fa:	45 8b c4             	mov    %r12d,%r8d
18004b0fd:	41 8b cf             	mov    %r15d,%ecx
18004b100:	4c 8b 65 c8          	mov    -0x38(%rbp),%r12
18004b104:	49 8b d4             	mov    %r12,%rdx
18004b107:	e8 10 d3 01 00       	call   0x18006841c
18004b10c:	85 c0                	test   %eax,%eax
18004b10e:	78 39                	js     0x18004b149
18004b110:	8b 7d 38             	mov    0x38(%rbp),%edi
18004b113:	48 8d 55 e0          	lea    -0x20(%rbp),%rdx
18004b117:	8b cf                	mov    %edi,%ecx
18004b119:	e8 fa db 01 00       	call   0x180068d18
18004b11e:	8b d8                	mov    %eax,%ebx
18004b120:	85 c0                	test   %eax,%eax
18004b122:	78 17                	js     0x18004b13b
18004b124:	48 8b 45 e0          	mov    -0x20(%rbp),%rax
18004b128:	33 db                	xor    %ebx,%ebx
18004b12a:	49 89 46 10          	mov    %rax,0x10(%r14)
18004b12e:	4d 89 26             	mov    %r12,(%r14)
18004b131:	45 89 7e 08          	mov    %r15d,0x8(%r14)
18004b135:	41 89 7e 0c          	mov    %edi,0xc(%r14)
18004b139:	eb 1d                	jmp    0x18004b158
18004b13b:	83 ff ff             	cmp    $0xffffffff,%edi
18004b13e:	74 18                	je     0x18004b158
18004b140:	8b cf                	mov    %edi,%ecx
18004b142:	e8 b9 d3 01 00       	call   0x180068500
18004b147:	eb 0f                	jmp    0x18004b158
18004b149:	bb 0d 00 3a c0       	mov    $0xc03a000d,%ebx
18004b14e:	3d 0f 00 00 c0       	cmp    $0xc000000f,%eax
18004b153:	0f 44 c3             	cmove  %ebx,%eax
18004b156:	8b d8                	mov    %eax,%ebx
18004b158:	48 8b ce             	mov    %rsi,%rcx
18004b15b:	e8 9c ee 04 00       	call   0x180099ffc
18004b160:	85 db                	test   %ebx,%ebx
18004b162:	79 09                	jns    0x18004b16d
18004b164:	48 8d 4d c0          	lea    -0x40(%rbp),%rcx
18004b168:	e8 b7 2c 03 00       	call   0x18007de24
18004b16d:	4c 8d 5c 24 70       	lea    0x70(%rsp),%r11
18004b172:	8b c3                	mov    %ebx,%eax
18004b174:	49 8b 5b 30          	mov    0x30(%r11),%rbx
18004b178:	49 8b 73 40          	mov    0x40(%r11),%rsi
18004b17c:	49 8b e3             	mov    %r11,%rsp
18004b17f:	41 5f                	pop    %r15
18004b181:	41 5e                	pop    %r14
18004b183:	41 5c                	pop    %r12
18004b185:	5f                   	pop    %rdi
18004b186:	5d                   	pop    %rbp
18004b187:	c3                   	ret
18004b188:	cc                   	int3
18004b189:	cc                   	int3
18004b18a:	cc                   	int3
18004b18b:	cc                   	int3
18004b18c:	40 55                	rex push %rbp
18004b18e:	53                   	push   %rbx
18004b18f:	56                   	push   %rsi
18004b190:	57                   	push   %rdi
18004b191:	41 54                	push   %r12