18004baf9:	45 2b c5             	sub    %r13d,%r8d
18004bafc:	44 8b 8f 80 00 00 00 	mov    0x80(%rdi),%r9d
18004bb03:	33 d2                	xor    %edx,%edx
18004bb05:	4c 8b 55 e0          	mov    -0x20(%rbp),%r10
18004bb09:	41 8b c9             	mov    %r9d,%ecx
18004bb0c:	41 0f af c8          	imul   %r8d,%ecx
18004bb10:	41 8b c2             	mov    %r10d,%eax
18004bb13:	41 f7 f1             	div    %r9d
18004bb16:	2b ca                	sub    %edx,%ecx
18004bb18:	41 8b d6             	mov    %r14d,%edx
18004bb1b:	41 3b ce             	cmp    %r14d,%ecx
18004bb1e:	0f 46 d1             	cmovbe %ecx,%edx
18004bb21:	45 84 db             	test   %r11b,%r11b
18004bb24:	74 69                	je     0x18004bb8f
18004bb26:	48 8b 47 48          	mov    0x48(%rdi),%rax
18004bb2a:	48 8b 4d e8          	mov    -0x18(%rbp),%rcx
18004bb2e:	44 8b 04 88          	mov    (%rax,%rcx,4),%r8d
18004bb32:	8b 47 60             	mov    0x60(%rdi),%eax
18004bb35:	8b 4f 54             	mov    0x54(%rdi),%ecx
18004bb38:	4d 0f af c1          	imul   %r9,%r8
18004bb3c:	4c 03 c0             	add    %rax,%r8
18004bb3f:	41 8b c2             	mov    %r10d,%eax
18004bb42:	49 03 c8             	add    %r8,%rcx
18004bb45:	4c 03 c0             	add    %rax,%r8
18004bb48:	8b c2                	mov    %edx,%eax
18004bb4a:	49 03 c0             	add    %r8,%rax
18004bb4d:	4c 3b c0             	cmp    %rax,%r8
18004bb50:	0f 83 dc 00 00 00    	jae    0x18004bc32
18004bb56:	4c 3b c1             	cmp    %rcx,%r8
18004bb59:	0f 83 d3 00 00 00    	jae    0x18004bc32
18004bb5f:	48 3b c1             	cmp    %rcx,%rax
18004bb62:	45 8b cc             	mov    %r12d,%r9d
18004bb65:	0f 46 c8             	cmovbe %eax,%ecx
18004bb68:	4c 03 4d 58          	add    0x58(%rbp),%r9
18004bb6c:	48 8d 45 48          	lea    0x48(%rbp),%rax
18004bb70:	41 2b c8             	sub    %r8d,%ecx
18004bb73:	48 89 44 24 30       	mov    %rax,0x30(%rsp)
18004bb78:	33 d2                	xor    %edx,%edx
18004bb7a:	8b 45 68             	mov    0x68(%rbp),%eax
18004bb7d:	89 44 24 28          	mov    %eax,0x28(%rsp)
18004bb81:	89 4c 24 20          	mov    %ecx,0x20(%rsp)
18004bb85:	48 8b cf             	mov    %rdi,%rcx
18004bb88:	e8 8f 05 00 00       	call   0x18004c11c
18004bb8d:	eb 31                	jmp    0x18004bbc0
18004bb8f:	48 8b 07             	mov    (%rdi),%rax
18004bb92:	83 78 64 04          	cmpl   $0x4,0x64(%rax)
18004bb96:	74 2f                	je     0x18004bbc7
18004bb98:	48 8d 4d 48          	lea    0x48(%rbp),%rcx
18004bb9c:	45 8b cc             	mov    %r12d,%r9d
18004bb9f:	4c 03 4d 58          	add    0x58(%rbp),%r9
18004bba3:	4c 8b c3             	mov    %rbx,%r8
18004bba6:	48 89 4c 24 30       	mov    %rcx,0x30(%rsp)
18004bbab:	8b 4d 68             	mov    0x68(%rbp),%ecx
18004bbae:	89 4c 24 28          	mov    %ecx,0x28(%rsp)
18004bbb2:	48 8b c8             	mov    %rax,%rcx
18004bbb5:	89 54 24 20          	mov    %edx,0x20(%rsp)
18004bbb9:	33 d2                	xor    %edx,%edx
18004bbbb:	e8 38 02 00 00       	call   0x18004bdf8
18004bbc0:	8b d8                	mov    %eax,%ebx
18004bbc2:	8b 45 48             	mov    0x48(%rbp),%eax
18004bbc5:	eb 28                	jmp    0x18004bbef
18004bbc7:	41 3b d6             	cmp    %r14d,%edx
18004bbca:	73 16                	jae    0x18004bbe2
18004bbcc:	41 83 67 04 00       	andl   $0x0,0x4(%r15)
18004bbd1:	44 2b f2             	sub    %edx,%r14d
18004bbd4:	45 89 37             	mov    %r14d,(%r15)
18004bbd7:	49 89 7f 08          	mov    %rdi,0x8(%r15)
18004bbdb:	49 83 c7 10          	add    $0x10,%r15
18004bbdf:	48 8b 07             	mov    (%rdi),%rax
18004bbe2:	48 8b f8             	mov    %rax,%rdi
18004bbe5:	44 8b f2             	mov    %edx,%r14d
18004bbe8:	33 c0                	xor    %eax,%eax
18004bbea:	89 45 48             	mov    %eax,0x48(%rbp)
18004bbed:	33 db                	xor    %ebx,%ebx
18004bbef:	85 db                	test   %ebx,%ebx
18004bbf1:	78 4f                	js     0x18004bc42
18004bbf3:	4c 8b 6d 50          	mov    0x50(%rbp),%r13
18004bbf7:	44 03 e0             	add    %eax,%r12d
18004bbfa:	48 8b 4d d0          	mov    -0x30(%rbp),%rcx
18004bbfe:	44 2b f0             	sub    %eax,%r14d
18004bc01:	48 85 f6             	test   %rsi,%rsi
18004bc04:	0f 84 4f fd ff ff    	je     0x18004b959
18004bc0a:	48 8b ce             	mov    %rsi,%rcx
18004bc0d:	e8 ea e3 04 00       	call   0x180099ffc
18004bc12:	48 8b 4d d0          	mov    -0x30(%rbp),%rcx
18004bc16:	0f 57 c0             	xorps  %xmm0,%xmm0
18004bc19:	0f 11 45 f0          	movups %xmm0,-0x10(%rbp)
18004bc1d:	e9 33 fd ff ff       	jmp    0x18004b955
18004bc22:	48 8b 45 70          	mov    0x70(%rbp),%rax
18004bc26:	48 85 c0             	test   %rax,%rax
18004bc29:	74 03                	je     0x18004bc2e
18004bc2b:	44 89 20             	mov    %r12d,(%rax)
18004bc2e:	33 db                	xor    %ebx,%ebx
18004bc30:	eb 10                	jmp    0x18004bc42
18004bc32:	bb 0d 00 00 c0       	mov    $0xc000000d,%ebx
18004bc37:	eb 09                	jmp    0x18004bc42
18004bc39:	bb 0d 00 00 c0       	mov    $0xc000000d,%ebx
18004bc3e:	48 8b 75 f8          	mov    -0x8(%rbp),%rsi
18004bc42:	48 85 f6             	test   %rsi,%rsi
18004bc45:	74 08                	je     0x18004bc4f
18004bc47:	48 8b ce             	mov    %rsi,%rcx
18004bc4a:	e8 ad e3 04 00       	call   0x180099ffc
18004bc4f:	8b c3                	mov    %ebx,%eax
18004bc51:	48 8b 9c 24 b0 00 00 	mov    0xb0(%rsp),%rbx
18004bc58:	00
18004bc59:	48 83 c4 70          	add    $0x70,%rsp
18004bc5d:	41 5f                	pop    %r15
18004bc5f:	41 5e                	pop    %r14
18004bc61:	41 5d                	pop    %r13
18004bc63:	41 5c                	pop    %r12
18004bc65:	5f                   	pop    %rdi
18004bc66:	5e                   	pop    %rsi
18004bc67:	5d                   	pop    %rbp
18004bc68:	c3                   	ret
18004bc69:	cc                   	int3
18004bc6a:	cc                   	int3
18004bc6b:	cc                   	int3
18004bc6c:	48 8b c4             	mov    %rsp,%rax
18004bc6f:	48 89 58 10          	mov    %rbx,0x10(%rax)
18004bc73:	48 89 68 18          	mov    %rbp,0x18(%rax)
18004bc77:	48 89 70 20          	mov    %rsi,0x20(%rax)
18004bc7b:	57                   	push   %rdi
18004bc7c:	41 54                	push   %r12
18004bc7e:	41 55                	push   %r13
18004bc80:	41 56                	push   %r14
18004bc82:	41 57                	push   %r15
18004bc84:	48 83 ec 40          	sub    $0x40,%rsp
18004bc88:	83 60 08 00          	andl   $0x0,0x8(%rax)
18004bc8c:	44 8a fa             	mov    %dl,%r15b
18004bc8f:	44 8b 51 54          	mov    0x54(%rcx),%r10d
18004bc93:	48 8b f1             	mov    %rcx,%rsi
18004bc96:	8b bc 24 90 00 00 00 	mov    0x90(%rsp),%edi
18004bc9d:	4d 8b f1             	mov    %r9,%r14
18004bca0:	49 8b e8             	mov    %r8,%rbp
18004bca3:	8b df                	mov    %edi,%ebx
18004bca5:	48 8d 47 ff          	lea    -0x1(%rdi),%rax
18004bca9:	49 03 c0             	add    %r8,%rax
18004bcac:	48 99                	cqto
18004bcae:	49 f7 fa             	idiv   %r10
18004bcb1:	48 8b c8             	mov    %rax,%rcx
18004bcb4:	49 8b c0             	mov    %r8,%rax
18004bcb7:	48 99                	cqto
18004bcb9:	49 f7 fa             	idiv   %r10
18004bcbc:	3b c1                	cmp    %ecx,%eax
18004bcbe:	0f 87 fa 00 00 00    	ja     0x18004bdbe
18004bcc4:	3b 4e 58             	cmp    0x58(%rsi),%ecx
18004bcc7:	0f 83 f1 00 00 00    	jae    0x18004bdbe
18004bccd:	4c 8b 66 48          	mov    0x48(%rsi),%r12
18004bcd1:	33 c9                	xor    %ecx,%ecx
18004bcd3:	85 ff                	test   %edi,%edi
18004bcd5:	0f 84 e8 00 00 00    	je     0x18004bdc3
18004bcdb:	44 8b ac 24 98 00 00 	mov    0x98(%rsp),%r13d
18004bce2:	00
18004bce3:	44 8b 46 54          	mov    0x54(%rsi),%r8d
18004bce7:	48 8b c5             	mov    %rbp,%rax
18004bcea:	48 99                	cqto
18004bcec:	49 f7 f8             	idiv   %r8
18004bcef:	8b c8                	mov    %eax,%ecx
18004bcf1:	4c 8b ca             	mov    %rdx,%r9
18004bcf4:	41 8b 04 8c          	mov    (%r12,%rcx,4),%eax
18004bcf8:	83 f8 ff             	cmp    $0xffffffff,%eax
18004bcfb:	75 2d                	jne    0x18004bd2a
18004bcfd:	45 84 ff             	test   %r15b,%r15b
18004bd00:	0f 85 b1 00 00 00    	jne    0x18004bdb7
18004bd06:	89 5c 24 70          	mov    %ebx,0x70(%rsp)
18004bd0a:	8b c3                	mov    %ebx,%eax
18004bd0c:	41 3b d8             	cmp    %r8d,%ebx
18004bd0f:	76 08                	jbe    0x18004bd19
18004bd11:	44 89 44 24 70       	mov    %r8d,0x70(%rsp)
18004bd16:	41 8b c0             	mov    %r8d,%eax
18004bd19:	44 8b c0             	mov    %eax,%r8d
18004bd1c:	33 d2                	xor    %edx,%edx
18004bd1e:	49 8b ce             	mov    %r14,%rcx
18004bd21:	e8 5a 9f 0e 00       	call   0x180135c80
18004bd26:	33 c9                	xor    %ecx,%ecx
18004bd28:	eb 78                	jmp    0x18004bda2
18004bd2a:	8b 8e 80 00 00 00    	mov    0x80(%rsi),%ecx
18004bd30:	48 0f af c8          	imul   %rax,%rcx
18004bd34:	8b 46 60             	mov    0x60(%rsi),%eax
18004bd37:	48 03 c8             	add    %rax,%rcx
18004bd3a:	41 8b c1             	mov    %r9d,%eax
18004bd3d:	49 8d 14 08          	lea    (%r8,%rcx,1),%rdx
18004bd41:	48 03 c8             	add    %rax,%rcx
18004bd44:	44 8b c3             	mov    %ebx,%r8d
18004bd47:	4c 03 c1             	add    %rcx,%r8
18004bd4a:	49 3b c8             	cmp    %r8,%rcx
18004bd4d:	73 6f                	jae    0x18004bdbe
18004bd4f:	48 3b ca             	cmp    %rdx,%rcx
18004bd52:	73 6a                	jae    0x18004bdbe
18004bd54:	4c 3b c2             	cmp    %rdx,%r8
18004bd57:	48 8d 44 24 70       	lea    0x70(%rsp),%rax
18004bd5c:	48 89 44 24 30       	mov    %rax,0x30(%rsp)
18004bd61:	4d 8b ce             	mov    %r14,%r9
18004bd64:	41 0f 46 d0          	cmovbe %r8d,%edx
18004bd68:	44 89 6c 24 28       	mov    %r13d,0x28(%rsp)
18004bd6d:	2b d1                	sub    %ecx,%edx
18004bd6f:	4c 8b c1             	mov    %rcx,%r8
18004bd72:	89 54 24 20          	mov    %edx,0x20(%rsp)
18004bd76:	48 8b ce             	mov    %rsi,%rcx
18004bd79:	41 8a d7             	mov    %r15b,%dl
18004bd7c:	e8 9b 03 00 00       	call   0x18004c11c
18004bd81:	8b c8                	mov    %eax,%ecx
18004bd83:	85 c0                	test   %eax,%eax
18004bd85:	78 3c                	js     0x18004bdc3
18004bd87:	45 84 ff             	test   %r15b,%r15b
18004bd8a:	74 12                	je     0x18004bd9e
18004bd8c:	44 8b 44 24 70       	mov    0x70(%rsp),%r8d
18004bd91:	48 8b d5             	mov    %rbp,%rdx
18004bd94:	48 8b ce             	mov    %rsi,%rcx
18004bd97:	e8 6c 04 00 00       	call   0x18004c208
18004bd9c:	8b c8                	mov    %eax,%ecx
18004bd9e:	85 c9                	test   %ecx,%ecx
18004bda0:	78 21                	js     0x18004bdc3
18004bda2:	8b 44 24 70          	mov    0x70(%rsp),%eax
18004bda6:	48 03 e8             	add    %rax,%rbp
18004bda9:	4c 03 f0             	add    %rax,%r14
18004bdac:	2b 5c 24 70          	sub    0x70(%rsp),%ebx
18004bdb0:	74 11                	je     0x18004bdc3
18004bdb2:	e9 2c ff ff ff       	jmp    0x18004bce3
18004bdb7:	b9 01 00 00 c0       	mov    $0xc0000001,%ecx
18004bdbc:	eb 05                	jmp    0x18004bdc3
18004bdbe:	b9 0d 00 00 c0       	mov    $0xc000000d,%ecx
18004bdc3:	48 8b 84 24 a0 00 00 	mov    0xa0(%rsp),%rax
18004bdca:	00
18004bdcb:	48 85 c0             	test   %rax,%rax
18004bdce:	74 04                	je     0x18004bdd4
18004bdd0:	2b fb                	sub    %ebx,%edi
18004bdd2:	89 38                	mov    %edi,(%rax)
18004bdd4:	4c 8d 5c 24 40       	lea    0x40(%rsp),%r11
18004bdd9:	8b c1                	mov    %ecx,%eax
18004bddb:	49 8b 5b 38          	mov    0x38(%r11),%rbx
18004bddf:	49 8b 6b 40          	mov    0x40(%r11),%rbp
18004bde3:	49 8b 73 48          	mov    0x48(%r11),%rsi
18004bde7:	49 8b e3             	mov    %r11,%rsp
18004bdea:	41 5f                	pop    %r15
18004bdec:	41 5e                	pop    %r14
18004bdee:	41 5d                	pop    %r13
18004bdf0:	41 5c                	pop    %r12
18004bdf2:	5f                   	pop    %rdi
18004bdf3:	c3                   	ret
18004bdf4:	cc                   	int3
18004bdf5:	cc                   	int3
18004bdf6:	cc                   	int3
18004bdf7:	cc                   	int3
18004bdf8:	4c 8b d1             	mov    %rcx,%r10
18004bdfb:	48 85 c9             	test   %rcx,%rcx
18004bdfe:	74 62                	je     0x18004be62
18004be00:	44 8b 5c 24 28       	mov    0x28(%rsp),%r11d
18004be05:	4b 8d 0c 18          	lea    (%r8,%r11,1),%rcx
18004be09:	49 3b c8             	cmp    %r8,%rcx
18004be0c:	72 54                	jb     0x18004be62
18004be0e:	49 3b 4a 28          	cmp    0x28(%r10),%rcx
18004be12:	77 4e                	ja     0x18004be62
18004be14:	41 8b 4a 64          	mov    0x64(%r10),%ecx
18004be18:	83 e9 02             	sub    $0x2,%ecx
18004be1b:	74 38                	je     0x18004be55
18004be1d:	83 e9 01             	sub    $0x1,%ecx
18004be20:	74 26                	je     0x18004be48
18004be22:	83 f9 01             	cmp    $0x1,%ecx
18004be25:	74 14                	je     0x18004be3b
18004be27:	48 8b 4c 24 38       	mov    0x38(%rsp),%rcx
18004be2c:	b8 bb 00 00 c0       	mov    $0xc00000bb,%eax
18004be31:	48 85 c9             	test   %rcx,%rcx
18004be34:	74 31                	je     0x18004be67
18004be36:	83 21 00             	andl   $0x0,(%rcx)
18004be39:	eb 2c                	jmp    0x18004be67
18004be3b:	49 8b ca             	mov    %r10,%rcx
18004be3e:	44 89 5c 24 28       	mov    %r11d,0x28(%rsp)
18004be43:	e9 2c fa ff ff       	jmp    0x18004b874
18004be48:	49 8b ca             	mov    %r10,%rcx
18004be4b:	44 89 5c 24 28       	mov    %r11d,0x28(%rsp)
18004be50:	e9 17 fe ff ff       	jmp    0x18004bc6c
18004be55:	49 8b ca             	mov    %r10,%rcx
18004be58:	44 89 5c 24 28       	mov    %r11d,0x28(%rsp)
18004be5d:	e9 ba 02 00 00       	jmp    0x18004c11c
18004be62:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
18004be67:	c3                   	ret
18004be68:	cc                   	int3
18004be69:	cc                   	int3
18004be6a:	cc                   	int3
18004be6b:	cc                   	int3
18004be6c:	85 c9                	test   %ecx,%ecx
18004be6e:	0f 8e de 00 00 00    	jle    0x18004bf52
18004be74:	83 f9 02             	cmp    $0x2,%ecx
18004be77:	0f 8e 94 00 00 00    	jle    0x18004bf11
18004be7d:	83 f9 03             	cmp    $0x3,%ecx
18004be80:	74 2b                	je     0x18004bead
18004be82:	83 f9 04             	cmp    $0x4,%ecx
18004be85:	0f 85 c7 00 00 00    	jne    0x18004bf52
18004be8b:	41 c1 e8 02          	shr    $0x2,%r8d
18004be8f:	45 85 c0             	test   %r8d,%r8d
18004be92:	0f 84 ba 00 00 00    	je     0x18004bf52
18004be98:	41 8b c8             	mov    %r8d,%ecx
18004be9b:	8b 02                	mov    (%rdx),%eax
18004be9d:	0f c8                	bswap  %eax
18004be9f:	89 02                	mov    %eax,(%rdx)
18004bea1:	48 8d 52 04          	lea    0x4(%rdx),%rdx
18004bea5:	48 83 e9 01          	sub    $0x1,%rcx
18004bea9:	75 f0                	jne    0x18004be9b
18004beab:	c3                   	ret
18004beac:	cc                   	int3
18004bead:	8b 42 20             	mov    0x20(%rdx),%eax
18004beb0:	b9 08 00 00 00       	mov    $0x8,%ecx
18004beb5:	0f c8                	bswap  %eax
18004beb7:	89 42 20             	mov    %eax,0x20(%rdx)
18004beba:	8b 42 24             	mov    0x24(%rdx),%eax
18004bebd:	0f c8                	bswap  %eax
18004bebf:	89 42 24             	mov    %eax,0x24(%rdx)
18004bec2:	48 8b 42 10          	mov    0x10(%rdx),%rax
18004bec6:	48 0f c8             	bswap  %rax
18004bec9:	48 89 42 10          	mov    %rax,0x10(%rdx)
18004becd:	8b 42 18             	mov    0x18(%rdx),%eax
18004bed0:	0f c8                	bswap  %eax
18004bed2:	89 42 18             	mov    %eax,0x18(%rdx)
18004bed5:	8b 42 1c             	mov    0x1c(%rdx),%eax
18004bed8:	0f c8                	bswap  %eax
18004beda:	89 42 1c             	mov    %eax,0x1c(%rdx)
18004bedd:	48 81 c2 48 02 00 00 	add    $0x248,%rdx
18004bee4:	8b 42 f8             	mov    -0x8(%rdx),%eax
18004bee7:	0f c8                	bswap  %eax
18004bee9:	89 42 f8             	mov    %eax,-0x8(%rdx)
18004beec:	8b 42 fc             	mov    -0x4(%rdx),%eax
18004beef:	0f c8                	bswap  %eax
18004bef1:	89 42 fc             	mov    %eax,-0x4(%rdx)
18004bef4:	8b 02                	mov    (%rdx),%eax
18004bef6:	0f c8                	bswap  %eax
18004bef8:	89 02                	mov    %eax,(%rdx)
18004befa:	48 8b 42 08          	mov    0x8(%rdx),%rax
18004befe:	48 8d 52 18          	lea    0x18(%rdx),%rdx
18004bf02:	48 0f c8             	bswap  %rax
18004bf05:	48 89 42 f0          	mov    %rax,-0x10(%rdx)
18004bf09:	48 83 e9 01          	sub    $0x1,%rcx
18004bf0d:	75 d5                	jne    0x18004bee4
18004bf0f:	c3                   	ret
18004bf10:	cc                   	int3
18004bf11:	8b 42 3c             	mov    0x3c(%rdx),%eax
18004bf14:	0f c8                	bswap  %eax
18004bf16:	89 42 3c             	mov    %eax,0x3c(%rdx)
18004bf19:	8b 42 40             	mov    0x40(%rdx),%eax
18004bf1c:	0f c8                	bswap  %eax
18004bf1e:	89 42 40             	mov    %eax,0x40(%rdx)
18004bf21:	48 8b 42 10          	mov    0x10(%rdx),%rax
18004bf25:	48 0f c8             	bswap  %rax
18004bf28:	48 89 42 10          	mov    %rax,0x10(%rdx)
18004bf2c:	8b 42 0c             	mov    0xc(%rdx),%eax
18004bf2f:	0f c8                	bswap  %eax
18004bf31:	89 42 0c             	mov    %eax,0xc(%rdx)
18004bf34:	8b 42 18             	mov    0x18(%rdx),%eax
18004bf37:	0f c8                	bswap  %eax
18004bf39:	89 42 18             	mov    %eax,0x18(%rdx)