40e42d:	ff d0                	call   *%eax
40e42f:	eb 09                	jmp    0x40e43a
40e431:	b8 01 00 00 00       	mov    $0x1,%eax
40e436:	c3                   	ret
40e437:	8b 65 e8             	mov    -0x18(%ebp),%esp
40e43a:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40e441:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
40e448:	e8 11 00 00 00       	call   0x40e45e
40e44d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40e450:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40e457:	5f                   	pop    %edi
40e458:	5e                   	pop    %esi
40e459:	5b                   	pop    %ebx
40e45a:	8b e5                	mov    %ebp,%esp
40e45c:	5d                   	pop    %ebp
40e45d:	c3                   	ret
40e45e:	e8 fd fe ff ff       	call   0x40e360
40e463:	c3                   	ret
40e464:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40e467:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40e46e:	5f                   	pop    %edi
40e46f:	5e                   	pop    %esi
40e470:	5b                   	pop    %ebx
40e471:	8b e5                	mov    %ebp,%esp
40e473:	5d                   	pop    %ebp
40e474:	c3                   	ret
40e475:	90                   	nop
40e476:	90                   	nop
40e477:	90                   	nop
40e478:	90                   	nop
40e479:	90                   	nop
40e47a:	90                   	nop
40e47b:	90                   	nop
40e47c:	90                   	nop
40e47d:	90                   	nop
40e47e:	90                   	nop
40e47f:	90                   	nop
40e480:	83 ec 08             	sub    $0x8,%esp
40e483:	53                   	push   %ebx
40e484:	55                   	push   %ebp
40e485:	56                   	push   %esi
40e486:	8b 74 24 18          	mov    0x18(%esp),%esi
40e48a:	85 f6                	test   %esi,%esi
40e48c:	57                   	push   %edi
40e48d:	75 15                	jne    0x40e4a4
40e48f:	8b 44 24 20          	mov    0x20(%esp),%eax
40e493:	50                   	push   %eax
40e494:	e8 27 e0 ff ff       	call   0x40c4c0
40e499:	83 c4 04             	add    $0x4,%esp
40e49c:	5f                   	pop    %edi
40e49d:	5e                   	pop    %esi
40e49e:	5d                   	pop    %ebp
40e49f:	5b                   	pop    %ebx
40e4a0:	83 c4 08             	add    $0x8,%esp
40e4a3:	c3                   	ret
40e4a4:	8b 7c 24 20          	mov    0x20(%esp),%edi
40e4a8:	85 ff                	test   %edi,%edi
40e4aa:	75 13                	jne    0x40e4bf
40e4ac:	56                   	push   %esi
40e4ad:	e8 de e0 ff ff       	call   0x40c590
40e4b2:	83 c4 04             	add    $0x4,%esp
40e4b5:	33 c0                	xor    %eax,%eax
40e4b7:	5f                   	pop    %edi
40e4b8:	5e                   	pop    %esi
40e4b9:	5d                   	pop    %ebp
40e4ba:	5b                   	pop    %ebx
40e4bb:	83 c4 08             	add    $0x8,%esp
40e4be:	c3                   	ret
40e4bf:	83 ff e0             	cmp    $0xffffffe0,%edi
40e4c2:	77 1c                	ja     0x40e4e0
40e4c4:	85 ff                	test   %edi,%edi
40e4c6:	76 0c                	jbe    0x40e4d4
40e4c8:	83 c7 0f             	add    $0xf,%edi
40e4cb:	83 e7 f0             	and    $0xfffffff0,%edi
40e4ce:	89 7c 24 20          	mov    %edi,0x20(%esp)
40e4d2:	eb 08                	jmp    0x40e4dc
40e4d4:	c7 44 24 20 10 00 00 	movl   $0x10,0x20(%esp)
40e4db:	00
40e4dc:	8b 7c 24 20          	mov    0x20(%esp),%edi
40e4e0:	33 db                	xor    %ebx,%ebx
40e4e2:	83 ff e0             	cmp    $0xffffffe0,%edi
40e4e5:	0f 87 15 01 00 00    	ja     0x40e600
40e4eb:	6a 09                	push   $0x9
40e4ed:	e8 4e 0f 00 00       	call   0x40f440
40e4f2:	83 c4 04             	add    $0x4,%esp
40e4f5:	8d 4c 24 10          	lea    0x10(%esp),%ecx
40e4f9:	8d 54 24 14          	lea    0x14(%esp),%edx
40e4fd:	51                   	push   %ecx
40e4fe:	52                   	push   %edx
40e4ff:	56                   	push   %esi
40e500:	e8 0b 14 00 00       	call   0x40f910
40e505:	8b e8                	mov    %eax,%ebp
40e507:	83 c4 0c             	add    $0xc,%esp
40e50a:	85 ed                	test   %ebp,%ebp
40e50c:	0f 84 d2 00 00 00    	je     0x40e5e4
40e512:	3b 3d 84 3f 43 00    	cmp    0x433f84,%edi
40e518:	73 6b                	jae    0x40e585
40e51a:	8b 44 24 10          	mov    0x10(%esp),%eax
40e51e:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40e522:	8b df                	mov    %edi,%ebx
40e524:	c1 eb 04             	shr    $0x4,%ebx
40e527:	53                   	push   %ebx
40e528:	55                   	push   %ebp
40e529:	50                   	push   %eax
40e52a:	51                   	push   %ecx
40e52b:	e8 60 18 00 00       	call   0x40fd90
40e530:	83 c4 10             	add    $0x10,%esp
40e533:	85 c0                	test   %eax,%eax
40e535:	74 04                	je     0x40e53b
40e537:	8b de                	mov    %esi,%ebx
40e539:	eb 4a                	jmp    0x40e585
40e53b:	53                   	push   %ebx
40e53c:	e8 8f 14 00 00       	call   0x40f9d0
40e541:	8b d8                	mov    %eax,%ebx
40e543:	83 c4 04             	add    $0x4,%esp
40e546:	85 db                	test   %ebx,%ebx
40e548:	74 3f                	je     0x40e589
40e54a:	33 c0                	xor    %eax,%eax
40e54c:	8a 45 00             	mov    0x0(%ebp),%al
40e54f:	c1 e0 04             	shl    $0x4,%eax
40e552:	3b c7                	cmp    %edi,%eax
40e554:	72 02                	jb     0x40e558
40e556:	8b c7                	mov    %edi,%eax
40e558:	8b c8                	mov    %eax,%ecx
40e55a:	8b fb                	mov    %ebx,%edi
40e55c:	8b d1                	mov    %ecx,%edx
40e55e:	55                   	push   %ebp
40e55f:	c1 e9 02             	shr    $0x2,%ecx
40e562:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40e564:	8b ca                	mov    %edx,%ecx
40e566:	83 e1 03             	and    $0x3,%ecx
40e569:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40e56b:	8b 44 24 14          	mov    0x14(%esp),%eax
40e56f:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40e573:	50                   	push   %eax
40e574:	51                   	push   %ecx
40e575:	e8 f6 13 00 00       	call   0x40f970
40e57a:	8b 7c 24 2c          	mov    0x2c(%esp),%edi
40e57e:	8b 74 24 28          	mov    0x28(%esp),%esi
40e582:	83 c4 0c             	add    $0xc,%esp
40e585:	85 db                	test   %ebx,%ebx
40e587:	75 4f                	jne    0x40e5d8
40e589:	8b 15 8c 89 43 00    	mov    0x43898c,%edx
40e58f:	57                   	push   %edi
40e590:	6a 00                	push   $0x0
40e592:	52                   	push   %edx
40e593:	ff 15 58 96 43 00    	call   *0x439658
40e599:	8b d8                	mov    %eax,%ebx
40e59b:	85 db                	test   %ebx,%ebx
40e59d:	74 39                	je     0x40e5d8
40e59f:	33 c0                	xor    %eax,%eax
40e5a1:	8a 45 00             	mov    0x0(%ebp),%al
40e5a4:	c1 e0 04             	shl    $0x4,%eax
40e5a7:	3b c7                	cmp    %edi,%eax
40e5a9:	72 02                	jb     0x40e5ad
40e5ab:	8b c7                	mov    %edi,%eax
40e5ad:	8b c8                	mov    %eax,%ecx
40e5af:	8b fb                	mov    %ebx,%edi
40e5b1:	c1 e9 02             	shr    $0x2,%ecx
40e5b4:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40e5b6:	8b c8                	mov    %eax,%ecx
40e5b8:	55                   	push   %ebp
40e5b9:	83 e1 03             	and    $0x3,%ecx
40e5bc:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40e5be:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40e5c2:	8b 54 24 18          	mov    0x18(%esp),%edx
40e5c6:	51                   	push   %ecx
40e5c7:	52                   	push   %edx
40e5c8:	e8 a3 13 00 00       	call   0x40f970
40e5cd:	8b 7c 24 2c          	mov    0x2c(%esp),%edi
40e5d1:	8b 74 24 28          	mov    0x28(%esp),%esi
40e5d5:	83 c4 0c             	add    $0xc,%esp
40e5d8:	6a 09                	push   $0x9
40e5da:	e8 e1 0e 00 00       	call   0x40f4c0
40e5df:	83 c4 04             	add    $0x4,%esp
40e5e2:	eb 1c                	jmp    0x40e600
40e5e4:	6a 09                	push   $0x9
40e5e6:	e8 d5 0e 00 00       	call   0x40f4c0
40e5eb:	a1 8c 89 43 00       	mov    0x43898c,%eax
40e5f0:	83 c4 04             	add    $0x4,%esp
40e5f3:	57                   	push   %edi
40e5f4:	56                   	push   %esi
40e5f5:	6a 00                	push   $0x0
40e5f7:	50                   	push   %eax
40e5f8:	ff 15 e0 95 43 00    	call   *0x4395e0
40e5fe:	8b d8                	mov    %eax,%ebx
40e600:	85 db                	test   %ebx,%ebx
40e602:	75 22                	jne    0x40e626
40e604:	a1 54 73 43 00       	mov    0x437354,%eax
40e609:	85 c0                	test   %eax,%eax
40e60b:	74 19                	je     0x40e626
40e60d:	57                   	push   %edi
40e60e:	e8 3d 10 00 00       	call   0x40f650
40e613:	83 c4 04             	add    $0x4,%esp
40e616:	85 c0                	test   %eax,%eax
40e618:	0f 85 c2 fe ff ff    	jne    0x40e4e0
40e61e:	5f                   	pop    %edi
40e61f:	5e                   	pop    %esi
40e620:	5d                   	pop    %ebp
40e621:	5b                   	pop    %ebx
40e622:	83 c4 08             	add    $0x8,%esp
40e625:	c3                   	ret
40e626:	5f                   	pop    %edi
40e627:	5e                   	pop    %esi
40e628:	8b c3                	mov    %ebx,%eax
40e62a:	5d                   	pop    %ebp
40e62b:	5b                   	pop    %ebx
40e62c:	83 c4 08             	add    $0x8,%esp
40e62f:	c3                   	ret
40e630:	51                   	push   %ecx
40e631:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40e635:	56                   	push   %esi
40e636:	8d 41 01             	lea    0x1(%ecx),%eax
40e639:	3d 00 01 00 00       	cmp    $0x100,%eax
40e63e:	77 15                	ja     0x40e655
40e640:	8b 15 48 1b 43 00    	mov    0x431b48,%edx
40e646:	33 c0                	xor    %eax,%eax
40e648:	66 8b 04 4a          	mov    (%edx,%ecx,2),%ax
40e64c:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40e650:	23 c1                	and    %ecx,%eax
40e652:	5e                   	pop    %esi
40e653:	59                   	pop    %ecx
40e654:	c3                   	ret
40e655:	8b 35 48 1b 43 00    	mov    0x431b48,%esi
40e65b:	8b c1                	mov    %ecx,%eax
40e65d:	c1 f8 08             	sar    $0x8,%eax
40e660:	8b d0                	mov    %eax,%edx
40e662:	81 e2 ff 00 00 00    	and    $0xff,%edx
40e668:	f6 44 56 01 80       	testb  $0x80,0x1(%esi,%edx,2)
40e66d:	74 14                	je     0x40e683
40e66f:	88 44 24 0c          	mov    %al,0xc(%esp)
40e673:	88 4c 24 0d          	mov    %cl,0xd(%esp)
40e677:	c6 44 24 0e 00       	movb   $0x0,0xe(%esp)
40e67c:	b8 02 00 00 00       	mov    $0x2,%eax
40e681:	eb 0e                	jmp    0x40e691
40e683:	88 4c 24 0c          	mov    %cl,0xc(%esp)
40e687:	c6 44 24 0d 00       	movb   $0x0,0xd(%esp)
40e68c:	b8 01 00 00 00       	mov    $0x1,%eax
40e691:	6a 00                	push   $0x0
40e693:	8d 4c 24 08          	lea    0x8(%esp),%ecx
40e697:	6a 00                	push   $0x0
40e699:	51                   	push   %ecx
40e69a:	8d 54 24 18          	lea    0x18(%esp),%edx
40e69e:	50                   	push   %eax
40e69f:	52                   	push   %edx
40e6a0:	6a 01                	push   $0x1
40e6a2:	e8 49 22 00 00       	call   0x4108f0
40e6a7:	83 c4 18             	add    $0x18,%esp
40e6aa:	85 c0                	test   %eax,%eax
40e6ac:	75 03                	jne    0x40e6b1
40e6ae:	5e                   	pop    %esi
40e6af:	59                   	pop    %ecx
40e6b0:	c3                   	ret
40e6b1:	8b 44 24 04          	mov    0x4(%esp),%eax
40e6b5:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40e6b9:	25 ff ff 00 00       	and    $0xffff,%eax
40e6be:	5e                   	pop    %esi
40e6bf:	23 c1                	and    %ecx,%eax
40e6c1:	59                   	pop    %ecx
40e6c2:	c3                   	ret
40e6c3:	90                   	nop
40e6c4:	90                   	nop
40e6c5:	90                   	nop
40e6c6:	90                   	nop
40e6c7:	90                   	nop
40e6c8:	90                   	nop
40e6c9:	90                   	nop
40e6ca:	90                   	nop
40e6cb:	90                   	nop
40e6cc:	90                   	nop
40e6cd:	90                   	nop
40e6ce:	90                   	nop
40e6cf:	90                   	nop
40e6d0:	8b 44 24 08          	mov    0x8(%esp),%eax
40e6d4:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40e6d8:	0b c8                	or     %eax,%ecx
40e6da:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40e6de:	75 09                	jne    0x40e6e9
40e6e0:	8b 44 24 04          	mov    0x4(%esp),%eax
40e6e4:	f7 e1                	mul    %ecx
40e6e6:	c2 10 00             	ret    $0x10
40e6e9:	53                   	push   %ebx
40e6ea:	f7 e1                	mul    %ecx
40e6ec:	8b d8                	mov    %eax,%ebx
40e6ee:	8b 44 24 08          	mov    0x8(%esp),%eax
40e6f2:	f7 64 24 14          	mull   0x14(%esp)
40e6f6:	03 d8                	add    %eax,%ebx
40e6f8:	8b 44 24 08          	mov    0x8(%esp),%eax
40e6fc:	f7 e1                	mul    %ecx
40e6fe:	03 d3                	add    %ebx,%edx
40e700:	5b                   	pop    %ebx
40e701:	c2 10 00             	ret    $0x10
40e704:	cc                   	int3
40e705:	cc                   	int3
40e706:	cc                   	int3
40e707:	cc                   	int3
40e708:	cc                   	int3
40e709:	cc                   	int3
40e70a:	cc                   	int3
40e70b:	cc                   	int3
40e70c:	cc                   	int3
40e70d:	cc                   	int3
40e70e:	cc                   	int3
40e70f:	cc                   	int3
40e710:	51                   	push   %ecx
40e711:	53                   	push   %ebx
40e712:	55                   	push   %ebp
40e713:	56                   	push   %esi
40e714:	57                   	push   %edi
40e715:	e8 26 fb ff ff       	call   0x40e240
40e71a:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40e71e:	8b f0                	mov    %eax,%esi
40e720:	8b 46 50             	mov    0x50(%esi),%eax
40e723:	50                   	push   %eax
40e724:	51                   	push   %ecx
40e725:	e8 f6 01 00 00       	call   0x40e920
40e72a:	33 ff                	xor    %edi,%edi
40e72c:	83 c4 08             	add    $0x8,%esp
40e72f:	3b c7                	cmp    %edi,%eax
40e731:	0f 84 d5 01 00 00    	je     0x40e90c
40e737:	8b 50 08             	mov    0x8(%eax),%edx
40e73a:	3b d7                	cmp    %edi,%edx
40e73c:	89 54 24 18          	mov    %edx,0x18(%esp)
40e740:	0f 84 c6 01 00 00    	je     0x40e90c
40e746:	83 fa 05             	cmp    $0x5,%edx
40e749:	75 0e                	jne    0x40e759
40e74b:	89 78 08             	mov    %edi,0x8(%eax)
40e74e:	b8 01 00 00 00       	mov    $0x1,%eax
40e753:	5f                   	pop    %edi
40e754:	5e                   	pop    %esi
40e755:	5d                   	pop    %ebp
40e756:	5b                   	pop    %ebx
40e757:	59                   	pop    %ecx
40e758:	c3                   	ret
40e759:	83 fa 01             	cmp    $0x1,%edx
40e75c:	75 09                	jne    0x40e767
40e75e:	83 c8 ff             	or     $0xffffffff,%eax
40e761:	5f                   	pop    %edi
40e762:	5e                   	pop    %esi
40e763:	5d                   	pop    %ebp
40e764:	5b                   	pop    %ebx
40e765:	59                   	pop    %ecx
40e766:	c3                   	ret
40e767:	8b 4e 54             	mov    0x54(%esi),%ecx
40e76a:	89 4c 24 10          	mov    %ecx,0x10(%esp)
40e76e:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
40e772:	89 4e 54             	mov    %ecx,0x54(%esi)
40e775:	8b 48 04             	mov    0x4(%eax),%ecx
40e778:	83 f9 08             	cmp    $0x8,%ecx
40e77b:	0f 85 72 01 00 00    	jne    0x40e8f3