40d240:	83 e8 01             	sub    $0x1,%eax
40d243:	74 67                	je     0x40d2ac
40d245:	83 e8 01             	sub    $0x1,%eax
40d248:	74 2e                	je     0x40d278
40d24a:	83 e8 01             	sub    $0x1,%eax
40d24d:	0f 85 fe 00 00 00    	jne    0x40d351
40d253:	83 f9 01             	cmp    $0x1,%ecx
40d256:	0f 84 a0 00 00 00    	je     0x40d2fc
40d25c:	83 f9 06             	cmp    $0x6,%ecx
40d25f:	0f 84 97 00 00 00    	je     0x40d2fc
40d265:	83 f9 07             	cmp    $0x7,%ecx
40d268:	0f 84 87 00 00 00    	je     0x40d2f5
40d26e:	83 f9 02             	cmp    $0x2,%ecx
40d271:	74 5e                	je     0x40d2d1
40d273:	83 f9 03             	cmp    $0x3,%ecx
40d276:	eb 53                	jmp    0x40d2cb
40d278:	83 f9 02             	cmp    $0x2,%ecx
40d27b:	0f 84 17 01 00 00    	je     0x40d398
40d281:	83 f9 03             	cmp    $0x3,%ecx
40d284:	0f 84 0e 01 00 00    	je     0x40d398
40d28a:	3b ce                	cmp    %esi,%ecx
40d28c:	0f 84 bd 00 00 00    	je     0x40d34f
40d292:	83 f9 0a             	cmp    $0xa,%ecx
40d295:	0f 84 b4 00 00 00    	je     0x40d34f
40d29b:	6a 05                	push   $0x5
40d29d:	5a                   	pop    %edx
40d29e:	33 c0                	xor    %eax,%eax
40d2a0:	3b ca                	cmp    %edx,%ecx
40d2a2:	0f 44 c2             	cmove  %edx,%eax
40d2a5:	8b c8                	mov    %eax,%ecx
40d2a7:	e9 a5 00 00 00       	jmp    0x40d351
40d2ac:	83 f9 01             	cmp    $0x1,%ecx
40d2af:	0f 84 a7 00 00 00    	je     0x40d35c
40d2b5:	83 f9 06             	cmp    $0x6,%ecx
40d2b8:	0f 84 9e 00 00 00    	je     0x40d35c
40d2be:	83 f9 02             	cmp    $0x2,%ecx
40d2c1:	74 0e                	je     0x40d2d1
40d2c3:	83 f9 03             	cmp    $0x3,%ecx
40d2c6:	74 09                	je     0x40d2d1
40d2c8:	83 f9 07             	cmp    $0x7,%ecx
40d2cb:	0f 85 c3 00 00 00    	jne    0x40d394
40d2d1:	6a 02                	push   $0x2
40d2d3:	e9 c2 00 00 00       	jmp    0x40d39a
40d2d8:	83 f9 01             	cmp    $0x1,%ecx
40d2db:	74 1f                	je     0x40d2fc
40d2dd:	83 f9 06             	cmp    $0x6,%ecx
40d2e0:	74 1a                	je     0x40d2fc
40d2e2:	83 f9 02             	cmp    $0x2,%ecx
40d2e5:	74 0e                	je     0x40d2f5
40d2e7:	83 f9 03             	cmp    $0x3,%ecx
40d2ea:	74 09                	je     0x40d2f5
40d2ec:	83 f9 07             	cmp    $0x7,%ecx
40d2ef:	0f 85 9f 00 00 00    	jne    0x40d394
40d2f5:	6a 07                	push   $0x7
40d2f7:	e9 9e 00 00 00       	jmp    0x40d39a
40d2fc:	6a 06                	push   $0x6
40d2fe:	e9 97 00 00 00       	jmp    0x40d39a
40d303:	6a 05                	push   $0x5
40d305:	5a                   	pop    %edx
40d306:	2b c2                	sub    %edx,%eax
40d308:	74 77                	je     0x40d381
40d30a:	83 e8 01             	sub    $0x1,%eax
40d30d:	74 52                	je     0x40d361
40d30f:	83 e8 08             	sub    $0x8,%eax
40d312:	74 10                	je     0x40d324
40d314:	83 e8 01             	sub    $0x1,%eax
40d317:	75 38                	jne    0x40d351
40d319:	3b ce                	cmp    %esi,%ecx
40d31b:	74 34                	je     0x40d351
40d31d:	83 f9 0a             	cmp    $0xa,%ecx
40d320:	74 2f                	je     0x40d351
40d322:	eb 70                	jmp    0x40d394
40d324:	83 f9 01             	cmp    $0x1,%ecx
40d327:	74 33                	je     0x40d35c
40d329:	83 f9 06             	cmp    $0x6,%ecx
40d32c:	74 2e                	je     0x40d35c
40d32e:	83 f9 0b             	cmp    $0xb,%ecx
40d331:	74 25                	je     0x40d358
40d333:	3b ca                	cmp    %edx,%ecx
40d335:	74 21                	je     0x40d358
40d337:	83 f9 02             	cmp    $0x2,%ecx
40d33a:	74 95                	je     0x40d2d1
40d33c:	83 f9 03             	cmp    $0x3,%ecx
40d33f:	74 90                	je     0x40d2d1
40d341:	3b ce                	cmp    %esi,%ecx
40d343:	74 0a                	je     0x40d34f
40d345:	83 f9 0a             	cmp    $0xa,%ecx
40d348:	74 05                	je     0x40d34f
40d34a:	83 f9 07             	cmp    $0x7,%ecx
40d34d:	75 45                	jne    0x40d394
40d34f:	8b ce                	mov    %esi,%ecx
40d351:	5e                   	pop    %esi
40d352:	8b c1                	mov    %ecx,%eax
40d354:	5d                   	pop    %ebp
40d355:	c2 08 00             	ret    $0x8
40d358:	8b ca                	mov    %edx,%ecx
40d35a:	eb f5                	jmp    0x40d351
40d35c:	33 c9                	xor    %ecx,%ecx
40d35e:	41                   	inc    %ecx
40d35f:	eb f0                	jmp    0x40d351
40d361:	83 f9 02             	cmp    $0x2,%ecx
40d364:	74 32                	je     0x40d398
40d366:	83 f9 03             	cmp    $0x3,%ecx
40d369:	74 2d                	je     0x40d398
40d36b:	3b ce                	cmp    %esi,%ecx
40d36d:	74 e0                	je     0x40d34f
40d36f:	83 f9 0a             	cmp    $0xa,%ecx
40d372:	74 db                	je     0x40d34f
40d374:	83 f9 0b             	cmp    $0xb,%ecx
40d377:	74 04                	je     0x40d37d
40d379:	3b ca                	cmp    %edx,%ecx
40d37b:	75 17                	jne    0x40d394
40d37d:	6a 0b                	push   $0xb
40d37f:	eb 19                	jmp    0x40d39a
40d381:	3b ce                	cmp    %esi,%ecx
40d383:	74 ca                	je     0x40d34f
40d385:	83 f9 0a             	cmp    $0xa,%ecx
40d388:	74 c5                	je     0x40d34f
40d38a:	83 f9 02             	cmp    $0x2,%ecx
40d38d:	74 09                	je     0x40d398
40d38f:	83 f9 03             	cmp    $0x3,%ecx
40d392:	74 04                	je     0x40d398
40d394:	33 c9                	xor    %ecx,%ecx
40d396:	eb b9                	jmp    0x40d351
40d398:	6a 03                	push   $0x3
40d39a:	59                   	pop    %ecx
40d39b:	eb b4                	jmp    0x40d351
40d39d:	55                   	push   %ebp
40d39e:	8b ec                	mov    %esp,%ebp
40d3a0:	53                   	push   %ebx
40d3a1:	56                   	push   %esi
40d3a2:	8b 75 08             	mov    0x8(%ebp),%esi
40d3a5:	57                   	push   %edi
40d3a6:	33 ff                	xor    %edi,%edi
40d3a8:	8d 46 18             	lea    0x18(%esi),%eax
40d3ab:	50                   	push   %eax
40d3ac:	ff 15 b4 b1 44 00    	call   *0x44b1b4
40d3b2:	57                   	push   %edi
40d3b3:	33 db                	xor    %ebx,%ebx
40d3b5:	8d 46 30             	lea    0x30(%esi),%eax
40d3b8:	43                   	inc    %ebx
40d3b9:	53                   	push   %ebx
40d3ba:	50                   	push   %eax
40d3bb:	ff 15 fc b1 44 00    	call   *0x44b1fc
40d3c1:	85 c0                	test   %eax,%eax
40d3c3:	74 07                	je     0x40d3cc
40d3c5:	8b df                	mov    %edi,%ebx
40d3c7:	bf 9f 13 07 80       	mov    $0x8007139f,%edi
40d3cc:	8d 46 18             	lea    0x18(%esi),%eax
40d3cf:	50                   	push   %eax
40d3d0:	ff 15 b8 b1 44 00    	call   *0x44b1b8
40d3d6:	8b 45 0c             	mov    0xc(%ebp),%eax
40d3d9:	85 c0                	test   %eax,%eax
40d3db:	74 02                	je     0x40d3df
40d3dd:	89 18                	mov    %ebx,(%eax)
40d3df:	85 ff                	test   %edi,%edi
40d3e1:	79 1d                	jns    0x40d400
40d3e3:	57                   	push   %edi
40d3e4:	68 ea 00 00 00       	push   $0xea
40d3e9:	68 3c ff 44 00       	push   $0x44ff3c
40d3ee:	e8 e0 63 ff ff       	call   0x4037d3
40d3f3:	68 b0 00 45 00       	push   $0x4500b0
40d3f8:	57                   	push   %edi
40d3f9:	e8 31 2d 03 00       	call   0x44012f
40d3fe:	59                   	pop    %ecx
40d3ff:	59                   	pop    %ecx
40d400:	8b c7                	mov    %edi,%eax
40d402:	5f                   	pop    %edi
40d403:	5e                   	pop    %esi
40d404:	5b                   	pop    %ebx
40d405:	5d                   	pop    %ebp
40d406:	c2 08 00             	ret    $0x8
40d409:	55                   	push   %ebp
40d40a:	8b ec                	mov    %esp,%ebp
40d40c:	8b 55 0c             	mov    0xc(%ebp),%edx
40d40f:	8b 4d 14             	mov    0x14(%ebp),%ecx
40d412:	56                   	push   %esi
40d413:	6a 02                	push   $0x2
40d415:	5e                   	pop    %esi
40d416:	85 d2                	test   %edx,%edx
40d418:	74 0d                	je     0x40d427
40d41a:	3b ce                	cmp    %esi,%ecx
40d41c:	74 05                	je     0x40d423
40d41e:	83 f9 03             	cmp    $0x3,%ecx
40d421:	75 04                	jne    0x40d427
40d423:	33 c9                	xor    %ecx,%ecx
40d425:	eb 0e                	jmp    0x40d435
40d427:	8b 45 08             	mov    0x8(%ebp),%eax
40d42a:	83 78 34 00          	cmpl   $0x0,0x34(%eax)
40d42e:	7d 05                	jge    0x40d435
40d430:	85 d2                	test   %edx,%edx
40d432:	0f 44 ce             	cmove  %esi,%ecx
40d435:	51                   	push   %ecx
40d436:	ff 75 10             	push   0x10(%ebp)
40d439:	e8 cd fd ff ff       	call   0x40d20b
40d43e:	5e                   	pop    %esi
40d43f:	5d                   	pop    %ebp
40d440:	c2 10 00             	ret    $0x10
40d443:	55                   	push   %ebp
40d444:	8b ec                	mov    %esp,%ebp
40d446:	8b 45 08             	mov    0x8(%ebp),%eax
40d449:	6a 00                	push   $0x0
40d44b:	83 c0 30             	add    $0x30,%eax
40d44e:	50                   	push   %eax
40d44f:	ff 15 f8 b1 44 00    	call   *0x44b1f8
40d455:	5d                   	pop    %ebp
40d456:	c2 04 00             	ret    $0x4
40d459:	55                   	push   %ebp
40d45a:	8b ec                	mov    %esp,%ebp
40d45c:	8b 45 08             	mov    0x8(%ebp),%eax
40d45f:	56                   	push   %esi
40d460:	8b 70 30             	mov    0x30(%eax),%esi
40d463:	f7 de                	neg    %esi
40d465:	1b f6                	sbb    %esi,%esi
40d467:	81 e6 aa 00 07 80    	and    $0x800700aa,%esi
40d46d:	83 78 30 00          	cmpl   $0x0,0x30(%eax)
40d471:	74 1d                	je     0x40d490
40d473:	56                   	push   %esi
40d474:	68 fe 00 00 00       	push   $0xfe
40d479:	68 3c ff 44 00       	push   $0x44ff3c
40d47e:	e8 50 63 ff ff       	call   0x4037d3
40d483:	68 f8 00 45 00       	push   $0x4500f8
40d488:	56                   	push   %esi
40d489:	e8 a1 2c 03 00       	call   0x44012f
40d48e:	59                   	pop    %ecx
40d48f:	59                   	pop    %ecx
40d490:	8b c6                	mov    %esi,%eax
40d492:	5e                   	pop    %esi
40d493:	5d                   	pop    %ebp
40d494:	c2 04 00             	ret    $0x4
40d497:	55                   	push   %ebp
40d498:	8b ec                	mov    %esp,%ebp
40d49a:	51                   	push   %ecx
40d49b:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40d49f:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d4a2:	56                   	push   %esi
40d4a3:	50                   	push   %eax
40d4a4:	ff 75 08             	push   0x8(%ebp)
40d4a7:	e8 0b ca 00 00       	call   0x419eb7
40d4ac:	8b f0                	mov    %eax,%esi
40d4ae:	85 f6                	test   %esi,%esi
40d4b0:	79 0f                	jns    0x40d4c1
40d4b2:	68 f8 ff 44 00       	push   $0x44fff8
40d4b7:	56                   	push   %esi
40d4b8:	e8 72 2c 03 00       	call   0x44012f
40d4bd:	59                   	pop    %ecx
40d4be:	59                   	pop    %ecx
40d4bf:	eb 44                	jmp    0x40d505
40d4c1:	57                   	push   %edi
40d4c2:	8b 7d 0c             	mov    0xc(%ebp),%edi
40d4c5:	68 1c 00 45 00       	push   $0x45001c
40d4ca:	ff 75 fc             	push   -0x4(%ebp)
40d4cd:	68 24 00 45 00       	push   $0x450024
40d4d2:	57                   	push   %edi
40d4d3:	e8 48 4a ff ff       	call   0x401f20
40d4d8:	8b f0                	mov    %eax,%esi
40d4da:	83 c4 10             	add    $0x10,%esp
40d4dd:	85 f6                	test   %esi,%esi
40d4df:	79 07                	jns    0x40d4e8
40d4e1:	68 34 00 45 00       	push   $0x450034
40d4e6:	eb 14                	jmp    0x40d4fc
40d4e8:	6a 00                	push   $0x0
40d4ea:	ff 37                	push   (%edi)
40d4ec:	e8 22 6b ff ff       	call   0x404013
40d4f1:	8b f0                	mov    %eax,%esi
40d4f3:	85 f6                	test   %esi,%esi
40d4f5:	79 0d                	jns    0x40d504
40d4f7:	68 74 00 45 00       	push   $0x450074
40d4fc:	56                   	push   %esi
40d4fd:	e8 2d 2c 03 00       	call   0x44012f
40d502:	59                   	pop    %ecx
40d503:	59                   	pop    %ecx
40d504:	5f                   	pop    %edi
40d505:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40d509:	74 08                	je     0x40d513
40d50b:	ff 75 fc             	push   -0x4(%ebp)
40d50e:	e8 dc 7f 03 00       	call   0x4454ef
40d513:	8b c6                	mov    %esi,%eax
40d515:	5e                   	pop    %esi
40d516:	8b e5                	mov    %ebp,%esp
40d518:	5d                   	pop    %ebp
40d519:	c2 08 00             	ret    $0x8
40d51c:	55                   	push   %ebp
40d51d:	8b ec                	mov    %esp,%ebp
40d51f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40d522:	85 c9                	test   %ecx,%ecx
40d524:	79 06                	jns    0x40d52c
40d526:	8b 45 08             	mov    0x8(%ebp),%eax
40d529:	89 48 34             	mov    %ecx,0x34(%eax)
40d52c:	5d                   	pop    %ebp
40d52d:	c2 08 00             	ret    $0x8
40d530:	55                   	push   %ebp
40d531:	8b ec                	mov    %esp,%ebp
40d533:	8b 45 08             	mov    0x8(%ebp),%eax
40d536:	83 60 34 00          	andl   $0x0,0x34(%eax)
40d53a:	83 60 38 00          	andl   $0x0,0x38(%eax)
40d53e:	5d                   	pop    %ebp
40d53f:	c2 04 00             	ret    $0x4
40d542:	55                   	push   %ebp
40d543:	8b ec                	mov    %esp,%ebp
40d545:	8b 4d 08             	mov    0x8(%ebp),%ecx
40d548:	8b 41 34             	mov    0x34(%ecx),%eax
40d54b:	85 c0                	test   %eax,%eax
40d54d:	79 06                	jns    0x40d555
40d54f:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40d553:	74 32                	je     0x40d587
40d555:	ff 75 14             	push   0x14(%ebp)
40d558:	ff 75 10             	push   0x10(%ebp)
40d55b:	ff 75 0c             	push   0xc(%ebp)
40d55e:	51                   	push   %ecx
40d55f:	e8 a5 fe ff ff       	call   0x40d409
40d564:	83 f8 01             	cmp    $0x1,%eax
40d567:	74 1c                	je     0x40d585
40d569:	85 c0                	test   %eax,%eax
40d56b:	74 18                	je     0x40d585
40d56d:	83 f8 02             	cmp    $0x2,%eax
40d570:	74 0c                	je     0x40d57e
40d572:	83 f8 03             	cmp    $0x3,%eax
40d575:	74 07                	je     0x40d57e
40d577:	b8 43 06 07 80       	mov    $0x80070643,%eax
40d57c:	eb 09                	jmp    0x40d587
40d57e:	b8 42 06 07 80       	mov    $0x80070642,%eax
40d583:	eb 02                	jmp    0x40d587
40d585:	33 c0                	xor    %eax,%eax
40d587:	5d                   	pop    %ebp
40d588:	c2 10 00             	ret    $0x10
40d58b:	55                   	push   %ebp
40d58c:	8b ec                	mov    %esp,%ebp
40d58e:	ff 75 10             	push   0x10(%ebp)
40d591:	ff 75 0c             	push   0xc(%ebp)
40d594:	e8 72 fc ff ff       	call   0x40d20b
40d599:	83 f8 01             	cmp    $0x1,%eax
40d59c:	74 1c                	je     0x40d5ba
40d59e:	85 c0                	test   %eax,%eax
40d5a0:	74 18                	je     0x40d5ba
40d5a2:	83 f8 02             	cmp    $0x2,%eax
40d5a5:	74 0c                	je     0x40d5b3
40d5a7:	83 f8 03             	cmp    $0x3,%eax
40d5aa:	74 07                	je     0x40d5b3
40d5ac:	b8 43 06 07 80       	mov    $0x80070643,%eax
40d5b1:	eb 09                	jmp    0x40d5bc
40d5b3:	b8 42 06 07 80       	mov    $0x80070642,%eax
40d5b8:	eb 02                	jmp    0x40d5bc
40d5ba:	33 c0                	xor    %eax,%eax
40d5bc:	5d                   	pop    %ebp
40d5bd:	c2 0c 00             	ret    $0xc
40d5c0:	55                   	push   %ebp
40d5c1:	8b ec                	mov    %esp,%ebp
40d5c3:	56                   	push   %esi
40d5c4:	8b 75 08             	mov    0x8(%ebp),%esi