45ef71:	3b d7                	cmp    %edi,%edx
45ef73:	74 22                	je     0x45ef97
45ef75:	8d 7a f0             	lea    -0x10(%edx),%edi
45ef78:	89 5e 08             	mov    %ebx,0x8(%esi)
45ef7b:	03 7e 0c             	add    0xc(%esi),%edi
45ef7e:	83 7e 38 01          	cmpl   $0x1,0x38(%esi)
45ef82:	89 7e 04             	mov    %edi,0x4(%esi)
45ef85:	0f 85 ee 00 00 00    	jne    0x45f079
45ef8b:	c7 46 38 02 00 00 00 	movl   $0x2,0x38(%esi)
45ef92:	e9 e2 00 00 00       	jmp    0x45f079
45ef97:	6a 10                	push   $0x10
45ef99:	ff 76 04             	push   0x4(%esi)
45ef9c:	53                   	push   %ebx
45ef9d:	e8 2e 3e 17 00       	call   0x5d2dd0
45efa2:	83 c4 0c             	add    $0xc,%esp
45efa5:	83 7e 40 00          	cmpl   $0x0,0x40(%esi)
45efa9:	0f 8e 9f 00 00 00    	jle    0x45f04e
45efaf:	8b 45 10             	mov    0x10(%ebp),%eax
45efb2:	85 c0                	test   %eax,%eax
45efb4:	78 15                	js     0x45efcb
45efb6:	50                   	push   %eax
45efb7:	ff 75 fc             	push   -0x4(%ebp)
45efba:	53                   	push   %ebx
45efbb:	e8 30 04 00 00       	call   0x45f3f0
45efc0:	83 c4 0c             	add    $0xc,%esp
45efc3:	84 c0                	test   %al,%al
45efc5:	0f 85 83 00 00 00    	jne    0x45f04e
45efcb:	8d 56 0c             	lea    0xc(%esi),%edx
45efce:	66 90                	xchg   %ax,%ax
45efd0:	8b 4e 14             	mov    0x14(%esi),%ecx
45efd3:	52                   	push   %edx
45efd4:	8d 55 f4             	lea    -0xc(%ebp),%edx
45efd7:	52                   	push   %edx
45efd8:	8b 01                	mov    (%ecx),%eax
45efda:	8b 40 04             	mov    0x4(%eax),%eax
45efdd:	ff d0                	call   *%eax
45efdf:	84 c0                	test   %al,%al
45efe1:	74 64                	je     0x45f047
45efe3:	8b 46 0c             	mov    0xc(%esi),%eax
45efe6:	29 46 40             	sub    %eax,0x40(%esi)
45efe9:	83 f8 10             	cmp    $0x10,%eax
45efec:	7f 35                	jg     0x45f023
45efee:	8d 56 0c             	lea    0xc(%esi),%edx
45eff1:	85 c0                	test   %eax,%eax
45eff3:	7e db                	jle    0x45efd0
45eff5:	50                   	push   %eax
45eff6:	ff 75 f4             	push   -0xc(%ebp)
45eff9:	8d 46 28             	lea    0x28(%esi),%eax
45effc:	50                   	push   %eax
45effd:	e8 ce 3d 17 00       	call   0x5d2dd0
45f002:	89 7e 08             	mov    %edi,0x8(%esi)
45f005:	83 c4 0c             	add    $0xc,%esp
45f008:	8d 7e 18             	lea    0x18(%esi),%edi
45f00b:	03 7e 0c             	add    0xc(%esi),%edi
45f00e:	83 7e 38 02          	cmpl   $0x2,0x38(%esi)
45f012:	89 7e 04             	mov    %edi,0x4(%esi)
45f015:	72 2b                	jb     0x45f042
45f017:	c7 46 38 01 00 00 00 	movl   $0x1,0x38(%esi)
45f01e:	8d 56 18             	lea    0x18(%esi),%edx
45f021:	eb 52                	jmp    0x45f075
45f023:	83 7e 38 02          	cmpl   $0x2,0x38(%esi)
45f027:	8d 7e 28             	lea    0x28(%esi),%edi
45f02a:	8b 45 f4             	mov    -0xc(%ebp),%eax
45f02d:	0f 10 00             	movups (%eax),%xmm0
45f030:	89 46 08             	mov    %eax,0x8(%esi)
45f033:	89 7e 04             	mov    %edi,0x4(%esi)
45f036:	0f 11 07             	movups %xmm0,(%edi)
45f039:	72 07                	jb     0x45f042
45f03b:	c7 46 38 01 00 00 00 	movl   $0x1,0x38(%esi)
45f042:	8d 56 18             	lea    0x18(%esi),%edx
45f045:	eb 2e                	jmp    0x45f075
45f047:	c7 46 40 00 00 00 00 	movl   $0x0,0x40(%esi)
45f04e:	83 7e 38 02          	cmpl   $0x2,0x38(%esi)
45f052:	75 0b                	jne    0x45f05f
45f054:	8b 46 04             	mov    0x4(%esi),%eax
45f057:	2b c6                	sub    %esi,%eax
45f059:	83 e8 18             	sub    $0x18,%eax
45f05c:	89 46 38             	mov    %eax,0x38(%esi)
45f05f:	8d 7e 28             	lea    0x28(%esi),%edi
45f062:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
45f069:	89 7e 04             	mov    %edi,0x4(%esi)
45f06c:	8b d3                	mov    %ebx,%edx
45f06e:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
45f075:	85 d2                	test   %edx,%edx
45f077:	74 39                	je     0x45f0b2
45f079:	8b ca                	mov    %edx,%ecx
45f07b:	03 55 fc             	add    -0x4(%ebp),%edx
45f07e:	2b cf                	sub    %edi,%ecx
45f080:	8b c2                	mov    %edx,%eax
45f082:	03 4e 10             	add    0x10(%esi),%ecx
45f085:	2b c7                	sub    %edi,%eax
45f087:	89 4e 10             	mov    %ecx,0x10(%esi)
45f08a:	89 45 fc             	mov    %eax,-0x4(%ebp)
45f08d:	0f 89 cd fe ff ff    	jns    0x45ef60
45f093:	33 c0                	xor    %eax,%eax
45f095:	85 c9                	test   %ecx,%ecx
45f097:	0f 48 c1             	cmovs  %ecx,%eax
45f09a:	8b 4d f8             	mov    -0x8(%ebp),%ecx
45f09d:	03 c7                	add    %edi,%eax
45f09f:	89 06                	mov    %eax,(%esi)
45f0a1:	8b c1                	mov    %ecx,%eax
45f0a3:	5f                   	pop    %edi
45f0a4:	5e                   	pop    %esi
45f0a5:	89 11                	mov    %edx,(%ecx)
45f0a7:	c6 41 04 00          	movb   $0x0,0x4(%ecx)
45f0ab:	5b                   	pop    %ebx
45f0ac:	8b e5                	mov    %ebp,%esp
45f0ae:	5d                   	pop    %ebp
45f0af:	c2 0c 00             	ret    $0xc
45f0b2:	8b 45 fc             	mov    -0x4(%ebp),%eax
45f0b5:	8b 4d f8             	mov    -0x8(%ebp),%ecx
45f0b8:	85 c0                	test   %eax,%eax
45f0ba:	74 15                	je     0x45f0d1
45f0bc:	5f                   	pop    %edi
45f0bd:	5e                   	pop    %esi
45f0be:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
45f0c4:	8b c1                	mov    %ecx,%eax
45f0c6:	c6 41 04 01          	movb   $0x1,0x4(%ecx)
45f0ca:	5b                   	pop    %ebx
45f0cb:	8b e5                	mov    %ebp,%esp
45f0cd:	5d                   	pop    %ebp
45f0ce:	c2 0c 00             	ret    $0xc
45f0d1:	8b 46 04             	mov    0x4(%esi),%eax
45f0d4:	89 06                	mov    %eax,(%esi)
45f0d6:	c7 46 3c 01 00 00 00 	movl   $0x1,0x3c(%esi)
45f0dd:	5f                   	pop    %edi
45f0de:	5e                   	pop    %esi
45f0df:	89 01                	mov    %eax,(%ecx)
45f0e1:	8b c1                	mov    %ecx,%eax
45f0e3:	c6 41 04 01          	movb   $0x1,0x4(%ecx)
45f0e7:	5b                   	pop    %ebx
45f0e8:	8b e5                	mov    %ebp,%esp
45f0ea:	5d                   	pop    %ebp
45f0eb:	c2 0c 00             	ret    $0xc
45f0ee:	cc                   	int3
45f0ef:	cc                   	int3
45f0f0:	55                   	push   %ebp
45f0f1:	8b ec                	mov    %esp,%ebp
45f0f3:	83 ec 08             	sub    $0x8,%esp
45f0f6:	8b 45 0c             	mov    0xc(%ebp),%eax
45f0f9:	53                   	push   %ebx
45f0fa:	56                   	push   %esi
45f0fb:	8b 75 10             	mov    0x10(%ebp),%esi
45f0fe:	89 45 fc             	mov    %eax,-0x4(%ebp)
45f101:	8d 45 fc             	lea    -0x4(%ebp),%eax
45f104:	57                   	push   %edi
45f105:	8b 7d 08             	mov    0x8(%ebp),%edi
45f108:	50                   	push   %eax
45f109:	89 7d f8             	mov    %edi,-0x8(%ebp)
45f10c:	e8 cf 06 00 00       	call   0x45f7e0
45f111:	8b 4d fc             	mov    -0x4(%ebp),%ecx
45f114:	83 c4 04             	add    $0x4,%esp
45f117:	8b d8                	mov    %eax,%ebx
45f119:	85 c9                	test   %ecx,%ecx
45f11b:	0f 84 e0 00 00 00    	je     0x45f201
45f121:	8b 46 04             	mov    0x4(%esi),%eax
45f124:	2b c1                	sub    %ecx,%eax
45f126:	83 c0 10             	add    $0x10,%eax
45f129:	3b d8                	cmp    %eax,%ebx
45f12b:	7f 15                	jg     0x45f142
45f12d:	53                   	push   %ebx
45f12e:	51                   	push   %ecx
45f12f:	8b cf                	mov    %edi,%ecx
45f131:	e8 ea 84 fe ff       	call   0x447620
45f136:	8b 45 fc             	mov    -0x4(%ebp),%eax
45f139:	5f                   	pop    %edi
45f13a:	5e                   	pop    %esi
45f13b:	03 c3                	add    %ebx,%eax
45f13d:	5b                   	pop    %ebx
45f13e:	8b e5                	mov    %ebp,%esp
45f140:	5d                   	pop    %ebp
45f141:	c3                   	ret
45f142:	8b d7                	mov    %edi,%edx
45f144:	8b c2                	mov    %edx,%eax
45f146:	c7 42 10 00 00 00 00 	movl   $0x0,0x10(%edx)
45f14d:	83 7a 14 10          	cmpl   $0x10,0x14(%edx)
45f151:	72 02                	jb     0x45f155
45f153:	8b 02                	mov    (%edx),%eax
45f155:	c6 00 00             	movb   $0x0,(%eax)
45f158:	8b 7e 04             	mov    0x4(%esi),%edi
45f15b:	8b c7                	mov    %edi,%eax
45f15d:	2b c1                	sub    %ecx,%eax
45f15f:	03 46 10             	add    0x10(%esi),%eax
45f162:	3b d8                	cmp    %eax,%ebx
45f164:	7f 20                	jg     0x45f186
45f166:	b9 80 f0 fa 02       	mov    $0x2faf080,%ecx
45f16b:	8b c3                	mov    %ebx,%eax
45f16d:	3b d9                	cmp    %ecx,%ebx
45f16f:	0f 4f c1             	cmovg  %ecx,%eax
45f172:	8b ca                	mov    %edx,%ecx
45f174:	03 42 10             	add    0x10(%edx),%eax
45f177:	50                   	push   %eax
45f178:	e8 63 bb ff ff       	call   0x45ace0
45f17d:	8b 7e 04             	mov    0x4(%esi),%edi
45f180:	8b 4d fc             	mov    -0x4(%ebp),%ecx
45f183:	8b 55 f8             	mov    -0x8(%ebp),%edx
45f186:	2b f9                	sub    %ecx,%edi
45f188:	83 c7 10             	add    $0x10,%edi
45f18b:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
45f18f:	74 70                	je     0x45f201
45f191:	57                   	push   %edi
45f192:	51                   	push   %ecx
45f193:	8b ca                	mov    %edx,%ecx
45f195:	e8 e6 9c ff ff       	call   0x458e80
45f19a:	2b df                	sub    %edi,%ebx
45f19c:	83 7e 10 10          	cmpl   $0x10,0x10(%esi)
45f1a0:	7e 5f                	jle    0x45f201
45f1a2:	6a ff                	push   $0xffffffff
45f1a4:	6a 00                	push   $0x0
45f1a6:	8b ce                	mov    %esi,%ecx
45f1a8:	e8 b3 00 00 00       	call   0x45f260
45f1ad:	8b 7e 04             	mov    0x4(%esi),%edi
45f1b0:	8b c8                	mov    %eax,%ecx
45f1b2:	85 c9                	test   %ecx,%ecx
45f1b4:	74 42                	je     0x45f1f8
45f1b6:	2b c7                	sub    %edi,%eax
45f1b8:	01 46 10             	add    %eax,0x10(%esi)
45f1bb:	b8 00 00 00 00       	mov    $0x0,%eax
45f1c0:	0f 48 46 10          	cmovs  0x10(%esi),%eax
45f1c4:	83 c1 10             	add    $0x10,%ecx
45f1c7:	03 c7                	add    %edi,%eax
45f1c9:	2b f9                	sub    %ecx,%edi
45f1cb:	83 c7 10             	add    $0x10,%edi
45f1ce:	89 06                	mov    %eax,(%esi)
45f1d0:	89 4d fc             	mov    %ecx,-0x4(%ebp)
45f1d3:	3b df                	cmp    %edi,%ebx
45f1d5:	7e 0b                	jle    0x45f1e2
45f1d7:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
45f1db:	74 24                	je     0x45f201
45f1dd:	8b 55 f8             	mov    -0x8(%ebp),%edx
45f1e0:	eb af                	jmp    0x45f191
45f1e2:	53                   	push   %ebx
45f1e3:	51                   	push   %ecx
45f1e4:	8b 4d f8             	mov    -0x8(%ebp),%ecx
45f1e7:	e8 94 9c ff ff       	call   0x458e80
45f1ec:	8b 45 fc             	mov    -0x4(%ebp),%eax
45f1ef:	5f                   	pop    %edi
45f1f0:	5e                   	pop    %esi
45f1f1:	03 c3                	add    %ebx,%eax
45f1f3:	5b                   	pop    %ebx
45f1f4:	8b e5                	mov    %ebp,%esp
45f1f6:	5d                   	pop    %ebp
45f1f7:	c3                   	ret
45f1f8:	c7 46 3c 01 00 00 00 	movl   $0x1,0x3c(%esi)
45f1ff:	89 3e                	mov    %edi,(%esi)
45f201:	5f                   	pop    %edi
45f202:	5e                   	pop    %esi
45f203:	33 c0                	xor    %eax,%eax
45f205:	5b                   	pop    %ebx
45f206:	8b e5                	mov    %ebp,%esp
45f208:	5d                   	pop    %ebp
45f209:	c3                   	ret
45f20a:	cc                   	int3
45f20b:	cc                   	int3
45f20c:	cc                   	int3
45f20d:	cc                   	int3
45f20e:	cc                   	int3
45f20f:	cc                   	int3
45f210:	55                   	push   %ebp
45f211:	8b ec                	mov    %esp,%ebp
45f213:	51                   	push   %ecx
45f214:	56                   	push   %esi
45f215:	57                   	push   %edi
45f216:	6a ff                	push   $0xffffffff
45f218:	6a 00                	push   $0x0
45f21a:	8b f1                	mov    %ecx,%esi
45f21c:	e8 3f 00 00 00       	call   0x45f260
45f221:	8b 56 04             	mov    0x4(%esi),%edx
45f224:	8b f8                	mov    %eax,%edi
45f226:	85 ff                	test   %edi,%edi
45f228:	75 0f                	jne    0x45f239
45f22a:	5f                   	pop    %edi
45f22b:	89 16                	mov    %edx,(%esi)
45f22d:	c7 46 3c 01 00 00 00 	movl   $0x1,0x3c(%esi)
45f234:	5e                   	pop    %esi
45f235:	8b e5                	mov    %ebp,%esp
45f237:	5d                   	pop    %ebp
45f238:	c3                   	ret
45f239:	2b c2                	sub    %edx,%eax
45f23b:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
45f242:	01 46 10             	add    %eax,0x10(%esi)
45f245:	8d 4e 10             	lea    0x10(%esi),%ecx
45f248:	8d 45 fc             	lea    -0x4(%ebp),%eax
45f24b:	0f 48 c1             	cmovs  %ecx,%eax
45f24e:	8b 00                	mov    (%eax),%eax
45f250:	03 c2                	add    %edx,%eax
45f252:	89 06                	mov    %eax,(%esi)
45f254:	8b c7                	mov    %edi,%eax
45f256:	5f                   	pop    %edi
45f257:	5e                   	pop    %esi
45f258:	8b e5                	mov    %ebp,%esp
45f25a:	5d                   	pop    %ebp
45f25b:	c3                   	ret
45f25c:	cc                   	int3
45f25d:	cc                   	int3
45f25e:	cc                   	int3
45f25f:	cc                   	int3
45f260:	55                   	push   %ebp
45f261:	8b ec                	mov    %esp,%ebp
45f263:	51                   	push   %ecx
45f264:	56                   	push   %esi
45f265:	8b f1                	mov    %ecx,%esi
45f267:	8b 4e 08             	mov    0x8(%esi),%ecx
45f26a:	85 c9                	test   %ecx,%ecx
45f26c:	75 09                	jne    0x45f277
45f26e:	33 c0                	xor    %eax,%eax
45f270:	5e                   	pop    %esi
45f271:	8b e5                	mov    %ebp,%esp
45f273:	5d                   	pop    %ebp
45f274:	c2 08 00             	ret    $0x8
45f277:	53                   	push   %ebx
45f278:	8d 5e 18             	lea    0x18(%esi),%ebx
45f27b:	57                   	push   %edi
45f27c:	8d 7e 18             	lea    0x18(%esi),%edi
45f27f:	3b cb                	cmp    %ebx,%ecx
45f281:	74 26                	je     0x45f2a9
45f283:	8b 46 0c             	mov    0xc(%esi),%eax
45f286:	83 c0 f0             	add    $0xfffffff0,%eax
45f289:	89 7e 08             	mov    %edi,0x8(%esi)
45f28c:	03 c1                	add    %ecx,%eax
45f28e:	83 7e 38 01          	cmpl   $0x1,0x38(%esi)
45f292:	89 46 04             	mov    %eax,0x4(%esi)
45f295:	75 07                	jne    0x45f29e
45f297:	c7 46 38 02 00 00 00 	movl   $0x2,0x38(%esi)
45f29e:	5f                   	pop    %edi
45f29f:	5b                   	pop    %ebx
45f2a0:	8b c1                	mov    %ecx,%eax
45f2a2:	5e                   	pop    %esi
45f2a3:	8b e5                	mov    %ebp,%esp
45f2a5:	5d                   	pop    %ebp
45f2a6:	c2 08 00             	ret    $0x8
45f2a9:	6a 10                	push   $0x10
45f2ab:	ff 76 04             	push   0x4(%esi)
45f2ae:	57                   	push   %edi
45f2af:	e8 1c 3b 17 00       	call   0x5d2dd0
45f2b4:	83 c4 0c             	add    $0xc,%esp
45f2b7:	83 7e 40 00          	cmpl   $0x0,0x40(%esi)
45f2bb:	0f 8e 8e 00 00 00    	jle    0x45f34f
45f2c1:	8b 45 0c             	mov    0xc(%ebp),%eax
45f2c4:	85 c0                	test   %eax,%eax
45f2c6:	78 11                	js     0x45f2d9
45f2c8:	50                   	push   %eax
45f2c9:	ff 75 08             	push   0x8(%ebp)
45f2cc:	57                   	push   %edi
45f2cd:	e8 1e 01 00 00       	call   0x45f3f0
45f2d2:	83 c4 0c             	add    $0xc,%esp
45f2d5:	84 c0                	test   %al,%al
45f2d7:	75 76                	jne    0x45f34f
45f2d9:	8b 4e 14             	mov    0x14(%esi),%ecx
45f2dc:	8d 56 0c             	lea    0xc(%esi),%edx