40d0f1:	8b da                	mov    %edx,%ebx
40d0f3:	8b f8                	mov    %eax,%edi
40d0f5:	33 f6                	xor    %esi,%esi
40d0f7:	8b 6c b7 04          	mov    0x4(%edi,%esi,4),%ebp
40d0fb:	33 c0                	xor    %eax,%eax
40d0fd:	89 44 b7 04          	mov    %eax,0x4(%edi,%esi,4)
40d101:	85 ed                	test   %ebp,%ebp
40d103:	74 0e                	je     0x40d113
40d105:	8b c5                	mov    %ebp,%eax
40d107:	8b 6d 00             	mov    0x0(%ebp),%ebp
40d10a:	e8 05 56 ff ff       	call   0x402714
40d10f:	85 ed                	test   %ebp,%ebp
40d111:	75 f2                	jne    0x40d105
40d113:	46                   	inc    %esi
40d114:	83 fe 10             	cmp    $0x10,%esi
40d117:	75 de                	jne    0x40d0f7
40d119:	8b d3                	mov    %ebx,%edx
40d11b:	80 e2 fc             	and    $0xfc,%dl
40d11e:	8b c7                	mov    %edi,%eax
40d120:	e8 8b 61 ff ff       	call   0x4032b0
40d125:	84 db                	test   %bl,%bl
40d127:	7e 07                	jle    0x40d130
40d129:	8b c7                	mov    %edi,%eax
40d12b:	e8 44 65 ff ff       	call   0x403674
40d130:	5d                   	pop    %ebp
40d131:	5f                   	pop    %edi
40d132:	5e                   	pop    %esi
40d133:	5b                   	pop    %ebx
40d134:	c3                   	ret
40d135:	8d 40 00             	lea    0x0(%eax),%eax
40d138:	55                   	push   %ebp
40d139:	8b ec                	mov    %esp,%ebp
40d13b:	51                   	push   %ecx
40d13c:	e8 db 91 ff ff       	call   0x40631c
40d141:	66 89 45 fe          	mov    %ax,-0x2(%ebp)
40d145:	8a 45 fe             	mov    -0x2(%ebp),%al
40d148:	32 45 ff             	xor    -0x1(%ebp),%al
40d14b:	24 0f                	and    $0xf,%al
40d14d:	59                   	pop    %ecx
40d14e:	5d                   	pop    %ebp
40d14f:	c3                   	ret
40d150:	53                   	push   %ebx
40d151:	56                   	push   %esi
40d152:	57                   	push   %edi
40d153:	55                   	push   %ebp
40d154:	51                   	push   %ecx
40d155:	89 14 24             	mov    %edx,(%esp)
40d158:	8b f8                	mov    %eax,%edi
40d15a:	8b c7                	mov    %edi,%eax
40d15c:	e8 d7 ff ff ff       	call   0x40d138
40d161:	8b d8                	mov    %eax,%ebx
40d163:	e8 b4 91 ff ff       	call   0x40631c
40d168:	8b f0                	mov    %eax,%esi
40d16a:	33 c0                	xor    %eax,%eax
40d16c:	8a c3                	mov    %bl,%al
40d16e:	8b 6c 87 04          	mov    0x4(%edi,%eax,4),%ebp
40d172:	eb 03                	jmp    0x40d177
40d174:	8b 6d 00             	mov    0x0(%ebp),%ebp
40d177:	85 ed                	test   %ebp,%ebp
40d179:	74 05                	je     0x40d180
40d17b:	3b 75 04             	cmp    0x4(%ebp),%esi
40d17e:	75 f4                	jne    0x40d174
40d180:	85 ed                	test   %ebp,%ebp
40d182:	75 38                	jne    0x40d1bc
40d184:	8b c7                	mov    %edi,%eax
40d186:	e8 4d 00 00 00       	call   0x40d1d8
40d18b:	8b e8                	mov    %eax,%ebp
40d18d:	85 ed                	test   %ebp,%ebp
40d18f:	75 2b                	jne    0x40d1bc
40d191:	b8 10 00 00 00       	mov    $0x10,%eax
40d196:	e8 39 ac ff ff       	call   0x407dd4
40d19b:	8b e8                	mov    %eax,%ebp
40d19d:	89 75 04             	mov    %esi,0x4(%ebp)
40d1a0:	c7 45 08 ff ff ff 7f 	movl   $0x7fffffff,0x8(%ebp)
40d1a7:	89 6d 00             	mov    %ebp,0x0(%ebp)
40d1aa:	33 c0                	xor    %eax,%eax
40d1ac:	8a c3                	mov    %bl,%al
40d1ae:	8d 44 87 04          	lea    0x4(%edi,%eax,4),%eax
40d1b2:	8b d5                	mov    %ebp,%edx
40d1b4:	e8 1f ff ff ff       	call   0x40d0d8
40d1b9:	89 45 00             	mov    %eax,0x0(%ebp)
40d1bc:	8b 04 24             	mov    (%esp),%eax
40d1bf:	89 28                	mov    %ebp,(%eax)
40d1c1:	5a                   	pop    %edx
40d1c2:	5d                   	pop    %ebp
40d1c3:	5f                   	pop    %edi
40d1c4:	5e                   	pop    %esi
40d1c5:	5b                   	pop    %ebx
40d1c6:	c3                   	ret
40d1c7:	90                   	nop
40d1c8:	8b 02                	mov    (%edx),%eax
40d1ca:	33 c9                	xor    %ecx,%ecx
40d1cc:	89 48 04             	mov    %ecx,0x4(%eax)
40d1cf:	8b 02                	mov    (%edx),%eax
40d1d1:	33 d2                	xor    %edx,%edx
40d1d3:	89 50 08             	mov    %edx,0x8(%eax)
40d1d6:	c3                   	ret
40d1d7:	90                   	nop
40d1d8:	53                   	push   %ebx
40d1d9:	8b d8                	mov    %eax,%ebx
40d1db:	8b c3                	mov    %ebx,%eax
40d1dd:	e8 56 ff ff ff       	call   0x40d138
40d1e2:	25 ff 00 00 00       	and    $0xff,%eax
40d1e7:	8b 5c 83 04          	mov    0x4(%ebx,%eax,4),%ebx
40d1eb:	85 db                	test   %ebx,%ebx
40d1ed:	74 24                	je     0x40d213
40d1ef:	8d 43 08             	lea    0x8(%ebx),%eax
40d1f2:	ba ff ff ff 7f       	mov    $0x7fffffff,%edx
40d1f7:	e8 dc fe ff ff       	call   0x40d0d8
40d1fc:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
40d201:	74 0a                	je     0x40d20d
40d203:	e8 14 91 ff ff       	call   0x40631c
40d208:	89 43 04             	mov    %eax,0x4(%ebx)
40d20b:	eb 06                	jmp    0x40d213
40d20d:	8b 1b                	mov    (%ebx),%ebx
40d20f:	85 db                	test   %ebx,%ebx
40d211:	75 dc                	jne    0x40d1ef
40d213:	8b c3                	mov    %ebx,%eax
40d215:	5b                   	pop    %ebx
40d216:	c3                   	ret
40d217:	90                   	nop
40d218:	53                   	push   %ebx
40d219:	56                   	push   %esi
40d21a:	84 d2                	test   %dl,%dl
40d21c:	74 08                	je     0x40d226
40d21e:	83 c4 f0             	add    $0xfffffff0,%esp
40d221:	e8 fe 63 ff ff       	call   0x403624
40d226:	8b da                	mov    %edx,%ebx
40d228:	8b f0                	mov    %eax,%esi
40d22a:	33 d2                	xor    %edx,%edx
40d22c:	8b c6                	mov    %esi,%eax
40d22e:	e8 5d 60 ff ff       	call   0x403290
40d233:	c7 46 0c ff ff 00 00 	movl   $0xffff,0xc(%esi)
40d23a:	6a 00                	push   $0x0
40d23c:	6a ff                	push   $0xffffffff
40d23e:	6a ff                	push   $0xffffffff
40d240:	6a 00                	push   $0x0
40d242:	e8 3d 90 ff ff       	call   0x406284
40d247:	89 46 10             	mov    %eax,0x10(%esi)
40d24a:	6a 00                	push   $0x0
40d24c:	6a 00                	push   $0x0
40d24e:	6a 00                	push   $0x0
40d250:	6a 00                	push   $0x0
40d252:	e8 2d 90 ff ff       	call   0x406284
40d257:	89 46 14             	mov    %eax,0x14(%esi)
40d25a:	c7 46 18 ff ff ff ff 	movl   $0xffffffff,0x18(%esi)
40d261:	b2 01                	mov    $0x1,%dl
40d263:	a1 2c 7c 40 00       	mov    0x407c2c,%eax
40d268:	e8 23 60 ff ff       	call   0x403290
40d26d:	89 46 20             	mov    %eax,0x20(%esi)
40d270:	8b c6                	mov    %esi,%eax
40d272:	84 db                	test   %bl,%bl
40d274:	74 0f                	je     0x40d285
40d276:	e8 01 64 ff ff       	call   0x40367c
40d27b:	64 8f 05 00 00 00 00 	pop    %fs:0x0
40d282:	83 c4 0c             	add    $0xc,%esp
40d285:	8b c6                	mov    %esi,%eax
40d287:	5e                   	pop    %esi
40d288:	5b                   	pop    %ebx
40d289:	c3                   	ret
40d28a:	8b c0                	mov    %eax,%eax
40d28c:	53                   	push   %ebx
40d28d:	56                   	push   %esi
40d28e:	e8 f9 63 ff ff       	call   0x40368c
40d293:	8b da                	mov    %edx,%ebx
40d295:	8b f0                	mov    %eax,%esi
40d297:	8b c6                	mov    %esi,%eax
40d299:	e8 7a 00 00 00       	call   0x40d318
40d29e:	8b d3                	mov    %ebx,%edx
40d2a0:	80 e2 fc             	and    $0xfc,%dl
40d2a3:	8b c6                	mov    %esi,%eax
40d2a5:	e8 06 60 ff ff       	call   0x4032b0
40d2aa:	8b 46 10             	mov    0x10(%esi),%eax
40d2ad:	50                   	push   %eax
40d2ae:	e8 c1 8f ff ff       	call   0x406274
40d2b3:	8b 46 14             	mov    0x14(%esi),%eax
40d2b6:	50                   	push   %eax
40d2b7:	e8 b8 8f ff ff       	call   0x406274
40d2bc:	8b 46 20             	mov    0x20(%esi),%eax
40d2bf:	e8 fc 5f ff ff       	call   0x4032c0
40d2c4:	84 db                	test   %bl,%bl
40d2c6:	7e 07                	jle    0x40d2cf
40d2c8:	8b c6                	mov    %esi,%eax
40d2ca:	e8 a5 63 ff ff       	call   0x403674
40d2cf:	5e                   	pop    %esi
40d2d0:	5b                   	pop    %ebx
40d2d1:	c3                   	ret
40d2d2:	8b c0                	mov    %eax,%eax
40d2d4:	8b 40 10             	mov    0x10(%eax),%eax
40d2d7:	50                   	push   %eax
40d2d8:	e8 5f 91 ff ff       	call   0x40643c
40d2dd:	c3                   	ret
40d2de:	8b c0                	mov    %eax,%eax
40d2e0:	8b 40 10             	mov    0x10(%eax),%eax
40d2e3:	50                   	push   %eax
40d2e4:	e8 6b 91 ff ff       	call   0x406454
40d2e9:	c3                   	ret
40d2ea:	8b c0                	mov    %eax,%eax
40d2ec:	8b 40 14             	mov    0x14(%eax),%eax
40d2ef:	50                   	push   %eax
40d2f0:	e8 5f 91 ff ff       	call   0x406454
40d2f5:	c3                   	ret
40d2f6:	8b c0                	mov    %eax,%eax
40d2f8:	8b 50 18             	mov    0x18(%eax),%edx
40d2fb:	52                   	push   %edx
40d2fc:	8b 40 10             	mov    0x10(%eax),%eax
40d2ff:	50                   	push   %eax
40d300:	e8 87 91 ff ff       	call   0x40648c
40d305:	c3                   	ret
40d306:	8b c0                	mov    %eax,%eax
40d308:	8b 50 18             	mov    0x18(%eax),%edx
40d30b:	52                   	push   %edx
40d30c:	8b 40 14             	mov    0x14(%eax),%eax
40d30f:	50                   	push   %eax
40d310:	e8 77 91 ff ff       	call   0x40648c
40d315:	c3                   	ret
40d316:	8b c0                	mov    %eax,%eax
40d318:	53                   	push   %ebx
40d319:	56                   	push   %esi
40d31a:	57                   	push   %edi
40d31b:	55                   	push   %ebp
40d31c:	51                   	push   %ecx
40d31d:	8b f8                	mov    %eax,%edi
40d31f:	b3 01                	mov    $0x1,%bl
40d321:	e8 f6 8f ff ff       	call   0x40631c
40d326:	8b f0                	mov    %eax,%esi
40d328:	3b 77 24             	cmp    0x24(%edi),%esi
40d32b:	74 7c                	je     0x40d3a9
40d32d:	8b c7                	mov    %edi,%eax
40d32f:	e8 a0 ff ff ff       	call   0x40d2d4
40d334:	8b 6f 28             	mov    0x28(%edi),%ebp
40d337:	8b d4                	mov    %esp,%edx
40d339:	8b 47 20             	mov    0x20(%edi),%eax
40d33c:	e8 0f fe ff ff       	call   0x40d150
40d341:	8b 04 24             	mov    (%esp),%eax
40d344:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
40d348:	0f 97 c3             	seta   %bl
40d34b:	84 db                	test   %bl,%bl
40d34d:	74 22                	je     0x40d371
40d34f:	8d 47 0c             	lea    0xc(%edi),%eax
40d352:	e8 69 fd ff ff       	call   0x40d0c0
40d357:	eb 18                	jmp    0x40d371
40d359:	8d 47 0c             	lea    0xc(%edi),%eax
40d35c:	ba ff ff 00 00       	mov    $0xffff,%edx
40d361:	e8 7a fd ff ff       	call   0x40d0e0
40d366:	85 c0                	test   %eax,%eax
40d368:	74 07                	je     0x40d371
40d36a:	8b c7                	mov    %edi,%eax
40d36c:	e8 97 ff ff ff       	call   0x40d308
40d371:	8d 47 0c             	lea    0xc(%edi),%eax
40d374:	ba 01 00 ff ff       	mov    $0xffff0001,%edx
40d379:	e8 62 fd ff ff       	call   0x40d0e0
40d37e:	3d ff ff 00 00       	cmp    $0xffff,%eax
40d383:	75 d4                	jne    0x40d359
40d385:	8b c7                	mov    %edi,%eax
40d387:	e8 48 ff ff ff       	call   0x40d2d4
40d38c:	84 db                	test   %bl,%bl
40d38e:	74 08                	je     0x40d398
40d390:	8d 47 0c             	lea    0xc(%edi),%eax
40d393:	e8 34 fd ff ff       	call   0x40d0cc
40d398:	89 77 24             	mov    %esi,0x24(%edi)
40d39b:	8d 47 28             	lea    0x28(%edi),%eax
40d39e:	e8 1d fd ff ff       	call   0x40d0c0
40d3a3:	48                   	dec    %eax
40d3a4:	3b c5                	cmp    %ebp,%eax
40d3a6:	0f 94 c3             	sete   %bl
40d3a9:	ff 47 1c             	incl   0x1c(%edi)
40d3ac:	8b c3                	mov    %ebx,%eax
40d3ae:	5a                   	pop    %edx
40d3af:	5d                   	pop    %ebp
40d3b0:	5f                   	pop    %edi
40d3b1:	5e                   	pop    %esi
40d3b2:	5b                   	pop    %ebx
40d3b3:	c3                   	ret
40d3b4:	53                   	push   %ebx
40d3b5:	51                   	push   %ecx
40d3b6:	8b d8                	mov    %eax,%ebx
40d3b8:	8b d4                	mov    %esp,%edx
40d3ba:	8b 43 20             	mov    0x20(%ebx),%eax
40d3bd:	e8 8e fd ff ff       	call   0x40d150
40d3c2:	ff 4b 1c             	decl   0x1c(%ebx)
40d3c5:	83 7b 1c 00          	cmpl   $0x0,0x1c(%ebx)
40d3c9:	75 20                	jne    0x40d3eb
40d3cb:	33 c0                	xor    %eax,%eax
40d3cd:	89 43 24             	mov    %eax,0x24(%ebx)
40d3d0:	8d 43 0c             	lea    0xc(%ebx),%eax
40d3d3:	ba ff ff 00 00       	mov    $0xffff,%edx
40d3d8:	e8 03 fd ff ff       	call   0x40d0e0
40d3dd:	8b c3                	mov    %ebx,%eax
40d3df:	e8 08 ff ff ff       	call   0x40d2ec
40d3e4:	8b c3                	mov    %ebx,%eax
40d3e6:	e8 f5 fe ff ff       	call   0x40d2e0
40d3eb:	8b 04 24             	mov    (%esp),%eax
40d3ee:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
40d3f2:	75 0a                	jne    0x40d3fe
40d3f4:	8b d4                	mov    %esp,%edx
40d3f6:	8b 43 20             	mov    0x20(%ebx),%eax
40d3f9:	e8 ca fd ff ff       	call   0x40d1c8
40d3fe:	5a                   	pop    %edx
40d3ff:	5b                   	pop    %ebx
40d400:	c3                   	ret
40d401:	8d 40 00             	lea    0x0(%eax),%eax
40d404:	53                   	push   %ebx
40d405:	56                   	push   %esi
40d406:	51                   	push   %ecx
40d407:	8b f0                	mov    %eax,%esi
40d409:	8b d4                	mov    %esp,%edx
40d40b:	8b 46 20             	mov    0x20(%esi),%eax
40d40e:	e8 3d fd ff ff       	call   0x40d150
40d413:	8b 04 24             	mov    (%esp),%eax
40d416:	ff 40 0c             	incl   0xc(%eax)
40d419:	8b 04 24             	mov    (%esp),%eax
40d41c:	83 78 0c 01          	cmpl   $0x1,0xc(%eax)
40d420:	0f 97 c3             	seta   %bl
40d423:	e8 f4 8e ff ff       	call   0x40631c
40d428:	3b 46 24             	cmp    0x24(%esi),%eax
40d42b:	74 3d                	je     0x40d46a
40d42d:	84 db                	test   %bl,%bl
40d42f:	75 39                	jne    0x40d46a
40d431:	8b c6                	mov    %esi,%eax
40d433:	e8 c0 fe ff ff       	call   0x40d2f8
40d438:	eb 24                	jmp    0x40d45e
40d43a:	8d 46 0c             	lea    0xc(%esi),%eax
40d43d:	e8 7e fc ff ff       	call   0x40d0c0
40d442:	3d ff ff 00 00       	cmp    $0xffff,%eax
40d447:	75 07                	jne    0x40d450
40d449:	8b c6                	mov    %esi,%eax
40d44b:	e8 9c fe ff ff       	call   0x40d2ec
40d450:	6a 00                	push   $0x0
40d452:	e8 1d fb ff ff       	call   0x40cf74
40d457:	8b c6                	mov    %esi,%eax
40d459:	e8 9a fe ff ff       	call   0x40d2f8
40d45e:	8d 46 0c             	lea    0xc(%esi),%eax
40d461:	e8 66 fc ff ff       	call   0x40d0cc
40d466:	85 c0                	test   %eax,%eax
40d468:	7e d0                	jle    0x40d43a
40d46a:	5a                   	pop    %edx
40d46b:	5e                   	pop    %esi
40d46c:	5b                   	pop    %ebx
40d46d:	c3                   	ret
40d46e:	8b c0                	mov    %eax,%eax
40d470:	53                   	push   %ebx
40d471:	51                   	push   %ecx
40d472:	8b d8                	mov    %eax,%ebx
40d474:	8b d4                	mov    %esp,%edx
40d476:	8b 43 20             	mov    0x20(%ebx),%eax
40d479:	e8 d2 fc ff ff       	call   0x40d150
40d47e:	8b 04 24             	mov    (%esp),%eax
40d481:	ff 48 0c             	decl   0xc(%eax)
40d484:	8b 04 24             	mov    (%esp),%eax