40f43b:	8b 75 08             	mov    0x8(%ebp),%esi
40f43e:	57                   	push   %edi
40f43f:	8b f9                	mov    %ecx,%edi
40f441:	8b 56 08             	mov    0x8(%esi),%edx
40f444:	89 15 80 b6 42 00    	mov    %edx,0x42b680
40f44a:	3b c2                	cmp    %edx,%eax
40f44c:	74 14                	je     0x40f462
40f44e:	8b 07                	mov    (%edi),%eax
40f450:	56                   	push   %esi
40f451:	6a 00                	push   $0x0
40f453:	8b 70 08             	mov    0x8(%eax),%esi
40f456:	8b ce                	mov    %esi,%ecx
40f458:	ff 15 d4 c4 42 00    	call   *0x42c4d4
40f45e:	8b cf                	mov    %edi,%ecx
40f460:	ff d6                	call   *%esi
40f462:	5f                   	pop    %edi
40f463:	b0 01                	mov    $0x1,%al
40f465:	5e                   	pop    %esi
40f466:	5d                   	pop    %ebp
40f467:	c2 04 00             	ret    $0x4
40f46a:	cc                   	int3
40f46b:	cc                   	int3
40f46c:	cc                   	int3
40f46d:	cc                   	int3
40f46e:	cc                   	int3
40f46f:	cc                   	int3
40f470:	8b ff                	mov    %edi,%edi
40f472:	55                   	push   %ebp
40f473:	8b ec                	mov    %esp,%ebp
40f475:	56                   	push   %esi
40f476:	8b f1                	mov    %ecx,%esi
40f478:	e8 c5 fd ff ff       	call   0x40f242
40f47d:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
40f481:	74 07                	je     0x40f48a
40f483:	56                   	push   %esi
40f484:	e8 b2 88 01 00       	call   0x427d3b
40f489:	59                   	pop    %ecx
40f48a:	8b c6                	mov    %esi,%eax
40f48c:	5e                   	pop    %esi
40f48d:	5d                   	pop    %ebp
40f48e:	c2 04 00             	ret    $0x4
40f491:	8b ff                	mov    %edi,%edi
40f493:	55                   	push   %ebp
40f494:	8b ec                	mov    %esp,%ebp
40f496:	83 e4 f8             	and    $0xfffffff8,%esp
40f499:	b8 24 10 00 00       	mov    $0x1024,%eax
40f49e:	e8 cd 8e 01 00       	call   0x428370
40f4a3:	a1 74 b6 42 00       	mov    0x42b674,%eax
40f4a8:	33 c4                	xor    %esp,%eax
40f4aa:	89 84 24 20 10 00 00 	mov    %eax,0x1020(%esp)
40f4b1:	53                   	push   %ebx
40f4b2:	8b d9                	mov    %ecx,%ebx
40f4b4:	56                   	push   %esi
40f4b5:	57                   	push   %edi
40f4b6:	6a 0c                	push   $0xc
40f4b8:	8b 43 04             	mov    0x4(%ebx),%eax
40f4bb:	33 f6                	xor    %esi,%esi
40f4bd:	2b 03                	sub    (%ebx),%eax
40f4bf:	59                   	pop    %ecx
40f4c0:	89 5c 24 10          	mov    %ebx,0x10(%esp)
40f4c4:	89 4c 24 18          	mov    %ecx,0x18(%esp)
40f4c8:	3b c1                	cmp    %ecx,%eax
40f4ca:	0f 82 16 01 00 00    	jb     0x40f5e6
40f4d0:	8b fe                	mov    %esi,%edi
40f4d2:	89 74 24 14          	mov    %esi,0x14(%esp)
40f4d6:	8d 44 24 0c          	lea    0xc(%esp),%eax
40f4da:	c7 44 24 0c 00 10 00 	movl   $0x1000,0xc(%esp)
40f4e1:	00
40f4e2:	50                   	push   %eax
40f4e3:	8d 44 24 2c          	lea    0x2c(%esp),%eax
40f4e7:	50                   	push   %eax
40f4e8:	8d 44 24 28          	lea    0x28(%esp),%eax
40f4ec:	50                   	push   %eax
40f4ed:	51                   	push   %ecx
40f4ee:	b9 9c 27 40 00       	mov    $0x40279c,%ecx
40f4f3:	e8 6a ed ff ff       	call   0x40e262
40f4f8:	89 44 24 24          	mov    %eax,0x24(%esp)
40f4fc:	85 c0                	test   %eax,%eax
40f4fe:	0f 85 c4 00 00 00    	jne    0x40f5c8
40f504:	8b 44 24 0c          	mov    0xc(%esp),%eax
40f508:	33 d2                	xor    %edx,%edx
40f50a:	6a 0c                	push   $0xc
40f50c:	59                   	pop    %ecx
40f50d:	f7 f1                	div    %ecx
40f50f:	8b 1b                	mov    (%ebx),%ebx
40f511:	f7 da                	neg    %edx
40f513:	1b f6                	sbb    %esi,%esi
40f515:	33 d2                	xor    %edx,%edx
40f517:	f7 d6                	not    %esi
40f519:	23 74 24 0c          	and    0xc(%esp),%esi
40f51d:	8b c6                	mov    %esi,%eax
40f51f:	89 74 24 0c          	mov    %esi,0xc(%esp)
40f523:	f7 f1                	div    %ecx
40f525:	33 d2                	xor    %edx,%edx
40f527:	8b c8                	mov    %eax,%ecx
40f529:	8b 44 24 10          	mov    0x10(%esp),%eax
40f52d:	8b 40 04             	mov    0x4(%eax),%eax
40f530:	2b c3                	sub    %ebx,%eax
40f532:	f7 74 24 18          	divl   0x18(%esp)
40f536:	6b c0 0c             	imul   $0xc,%eax,%eax
40f539:	03 c3                	add    %ebx,%eax
40f53b:	89 44 24 1c          	mov    %eax,0x1c(%esp)
40f53f:	3b d8                	cmp    %eax,%ebx
40f541:	74 64                	je     0x40f5a7
40f543:	6b c1 0c             	imul   $0xc,%ecx,%eax
40f546:	8d 54 24 28          	lea    0x28(%esp),%edx
40f54a:	03 d0                	add    %eax,%edx
40f54c:	8d 44 24 28          	lea    0x28(%esp),%eax
40f550:	3b c2                	cmp    %edx,%eax
40f552:	74 1e                	je     0x40f572
40f554:	8b 3b                	mov    (%ebx),%edi
40f556:	8b c8                	mov    %eax,%ecx
40f558:	6a 0c                	push   $0xc
40f55a:	58                   	pop    %eax
40f55b:	39 39                	cmp    %edi,(%ecx)
40f55d:	75 0d                	jne    0x40f56c
40f55f:	66 8b 41 04          	mov    0x4(%ecx),%ax
40f563:	6a 0c                	push   $0xc
40f565:	66 3b 43 04          	cmp    0x4(%ebx),%ax
40f569:	74 25                	je     0x40f590
40f56b:	58                   	pop    %eax
40f56c:	03 c8                	add    %eax,%ecx
40f56e:	3b ca                	cmp    %edx,%ecx
40f570:	75 e9                	jne    0x40f55b
40f572:	8d 46 0c             	lea    0xc(%esi),%eax
40f575:	6a 0c                	push   $0xc
40f577:	3d 00 10 00 00       	cmp    $0x1000,%eax
40f57c:	77 1c                	ja     0x40f59a
40f57e:	8b fa                	mov    %edx,%edi
40f580:	8b f3                	mov    %ebx,%esi
40f582:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40f583:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40f584:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40f585:	8b f0                	mov    %eax,%esi
40f587:	58                   	pop    %eax
40f588:	89 74 24 0c          	mov    %esi,0xc(%esp)
40f58c:	03 d0                	add    %eax,%edx
40f58e:	eb 0b                	jmp    0x40f59b
40f590:	8b 43 08             	mov    0x8(%ebx),%eax
40f593:	01 41 08             	add    %eax,0x8(%ecx)
40f596:	8b 74 24 10          	mov    0x10(%esp),%esi
40f59a:	58                   	pop    %eax
40f59b:	03 d8                	add    %eax,%ebx
40f59d:	3b 5c 24 1c          	cmp    0x1c(%esp),%ebx
40f5a1:	75 a9                	jne    0x40f54c
40f5a3:	8b 7c 24 14          	mov    0x14(%esp),%edi
40f5a7:	6a 01                	push   $0x1
40f5a9:	ff 74 24 24          	push   0x24(%esp)
40f5ad:	8d 54 24 30          	lea    0x30(%esp),%edx
40f5b1:	51                   	push   %ecx
40f5b2:	51                   	push   %ecx
40f5b3:	56                   	push   %esi
40f5b4:	b9 9c 27 40 00       	mov    $0x40279c,%ecx
40f5b9:	e8 f9 ec ff ff       	call   0x40e2b7
40f5be:	8b 5c 24 10          	mov    0x10(%esp),%ebx
40f5c2:	8b f0                	mov    %eax,%esi
40f5c4:	8b 44 24 24          	mov    0x24(%esp),%eax
40f5c8:	47                   	inc    %edi
40f5c9:	89 7c 24 14          	mov    %edi,0x14(%esp)
40f5cd:	81 fe 01 00 00 c0    	cmp    $0xc0000001,%esi
40f5d3:	75 0d                	jne    0x40f5e2
40f5d5:	83 ff 64             	cmp    $0x64,%edi
40f5d8:	7d 08                	jge    0x40f5e2
40f5da:	85 c0                	test   %eax,%eax
40f5dc:	0f 84 f4 fe ff ff    	je     0x40f4d6
40f5e2:	85 c0                	test   %eax,%eax
40f5e4:	75 02                	jne    0x40f5e8
40f5e6:	8b c6                	mov    %esi,%eax
40f5e8:	8b 8c 24 2c 10 00 00 	mov    0x102c(%esp),%ecx
40f5ef:	5f                   	pop    %edi
40f5f0:	5e                   	pop    %esi
40f5f1:	5b                   	pop    %ebx
40f5f2:	33 cc                	xor    %esp,%ecx
40f5f4:	e8 e7 84 01 00       	call   0x427ae0
40f5f9:	8b e5                	mov    %ebp,%esp
40f5fb:	5d                   	pop    %ebp
40f5fc:	c3                   	ret
40f5fd:	8b ff                	mov    %edi,%edi
40f5ff:	55                   	push   %ebp
40f600:	8b ec                	mov    %esp,%ebp
40f602:	56                   	push   %esi
40f603:	8b 35 8c ba 42 00    	mov    0x42ba8c,%esi
40f609:	85 f6                	test   %esi,%esi
40f60b:	75 1d                	jne    0x40f62a
40f60d:	68 88 25 40 00       	push   $0x402588
40f612:	e8 63 eb ff ff       	call   0x40e17a
40f617:	50                   	push   %eax
40f618:	ff 15 84 c1 42 00    	call   *0x42c184
40f61e:	8b f0                	mov    %eax,%esi
40f620:	89 35 8c ba 42 00    	mov    %esi,0x42ba8c
40f626:	85 f6                	test   %esi,%esi
40f628:	74 0d                	je     0x40f637
40f62a:	ff 75 08             	push   0x8(%ebp)
40f62d:	8b ce                	mov    %esi,%ecx
40f62f:	ff 15 d4 c4 42 00    	call   *0x42c4d4
40f635:	ff d6                	call   *%esi
40f637:	5e                   	pop    %esi
40f638:	5d                   	pop    %ebp
40f639:	c2 04 00             	ret    $0x4
40f63c:	8b ff                	mov    %edi,%edi
40f63e:	55                   	push   %ebp
40f63f:	8b ec                	mov    %esp,%ebp
40f641:	56                   	push   %esi
40f642:	8b 35 84 ba 42 00    	mov    0x42ba84,%esi
40f648:	85 f6                	test   %esi,%esi
40f64a:	75 1d                	jne    0x40f669
40f64c:	68 e8 24 40 00       	push   $0x4024e8
40f651:	e8 24 eb ff ff       	call   0x40e17a
40f656:	50                   	push   %eax
40f657:	ff 15 84 c1 42 00    	call   *0x42c184
40f65d:	8b f0                	mov    %eax,%esi
40f65f:	89 35 84 ba 42 00    	mov    %esi,0x42ba84
40f665:	85 f6                	test   %esi,%esi
40f667:	74 0d                	je     0x40f676
40f669:	ff 75 08             	push   0x8(%ebp)
40f66c:	8b ce                	mov    %esi,%ecx
40f66e:	ff 15 d4 c4 42 00    	call   *0x42c4d4
40f674:	ff d6                	call   *%esi
40f676:	5e                   	pop    %esi
40f677:	5d                   	pop    %ebp
40f678:	c2 04 00             	ret    $0x4
40f67b:	8b ff                	mov    %edi,%edi
40f67d:	55                   	push   %ebp
40f67e:	8b ec                	mov    %esp,%ebp
40f680:	0f b7 51 08          	movzwl 0x8(%ecx),%edx
40f684:	8b 45 0c             	mov    0xc(%ebp),%eax
40f687:	3b c2                	cmp    %edx,%eax
40f689:	75 11                	jne    0x40f69c
40f68b:	50                   	push   %eax
40f68c:	ff 71 10             	push   0x10(%ecx)
40f68f:	ff 75 08             	push   0x8(%ebp)
40f692:	e8 04 8d 01 00       	call   0x42839b
40f697:	83 c4 0c             	add    $0xc,%esp
40f69a:	eb 02                	jmp    0x40f69e
40f69c:	2b c2                	sub    %edx,%eax
40f69e:	5d                   	pop    %ebp
40f69f:	c2 08 00             	ret    $0x8
40f6a2:	8b ff                	mov    %edi,%edi
40f6a4:	55                   	push   %ebp
40f6a5:	8b ec                	mov    %esp,%ebp
40f6a7:	51                   	push   %ecx
40f6a8:	8b 55 08             	mov    0x8(%ebp),%edx
40f6ab:	8d 41 04             	lea    0x4(%ecx),%eax
40f6ae:	39 10                	cmp    %edx,(%eax)
40f6b0:	74 31                	je     0x40f6e3
40f6b2:	89 10                	mov    %edx,(%eax)
40f6b4:	8a 51 02             	mov    0x2(%ecx),%dl
40f6b7:	80 fa 01             	cmp    $0x1,%dl
40f6ba:	75 11                	jne    0x40f6cd
40f6bc:	66 8b 00             	mov    (%eax),%ax
40f6bf:	66 89 45 fc          	mov    %ax,-0x4(%ebp)
40f6c3:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f6c6:	6a 02                	push   $0x2
40f6c8:	50                   	push   %eax
40f6c9:	6a 02                	push   $0x2
40f6cb:	eb 0a                	jmp    0x40f6d7
40f6cd:	80 fa 02             	cmp    $0x2,%dl
40f6d0:	75 11                	jne    0x40f6e3
40f6d2:	6a 04                	push   $0x4
40f6d4:	50                   	push   %eax
40f6d5:	6a 04                	push   $0x4
40f6d7:	ff 71 0c             	push   0xc(%ecx)
40f6da:	ff 15 60 c3 42 00    	call   *0x42c360
40f6e0:	83 c4 10             	add    $0x10,%esp
40f6e3:	c9                   	leave
40f6e4:	c2 04 00             	ret    $0x4
40f6e7:	0f b7 01             	movzwl (%ecx),%eax
40f6ea:	66 85 c0             	test   %ax,%ax
40f6ed:	75 07                	jne    0x40f6f6
40f6ef:	0f b7 41 08          	movzwl 0x8(%ecx),%eax
40f6f3:	83 c0 02             	add    $0x2,%eax
40f6f6:	8a 49 02             	mov    0x2(%ecx),%cl
40f6f9:	80 f9 01             	cmp    $0x1,%cl
40f6fc:	75 04                	jne    0x40f702
40f6fe:	83 c0 02             	add    $0x2,%eax
40f701:	c3                   	ret
40f702:	80 f9 02             	cmp    $0x2,%cl
40f705:	75 03                	jne    0x40f70a
40f707:	83 c0 04             	add    $0x4,%eax
40f70a:	c3                   	ret
40f70b:	8b ff                	mov    %edi,%edi
40f70d:	55                   	push   %ebp
40f70e:	8b ec                	mov    %esp,%ebp
40f710:	51                   	push   %ecx
40f711:	51                   	push   %ecx
40f712:	8b 45 08             	mov    0x8(%ebp),%eax
40f715:	53                   	push   %ebx
40f716:	8b d9                	mov    %ecx,%ebx
40f718:	56                   	push   %esi
40f719:	8b 30                	mov    (%eax),%esi
40f71b:	57                   	push   %edi
40f71c:	8a 43 02             	mov    0x2(%ebx),%al
40f71f:	8b 7d 0c             	mov    0xc(%ebp),%edi
40f722:	3c 01                	cmp    $0x1,%al
40f724:	75 26                	jne    0x40f74c
40f726:	8d 46 02             	lea    0x2(%esi),%eax
40f729:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f72c:	3b c7                	cmp    %edi,%eax
40f72e:	77 72                	ja     0x40f7a2
40f730:	66 8b 43 04          	mov    0x4(%ebx),%ax
40f734:	66 89 45 fc          	mov    %ax,-0x4(%ebp)
40f738:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f73b:	6a 02                	push   $0x2
40f73d:	50                   	push   %eax
40f73e:	6a 02                	push   $0x2
40f740:	56                   	push   %esi
40f741:	ff 15 60 c3 42 00    	call   *0x42c360
40f747:	8b 75 f8             	mov    -0x8(%ebp),%esi
40f74a:	eb 20                	jmp    0x40f76c
40f74c:	3c 02                	cmp    $0x2,%al
40f74e:	75 1f                	jne    0x40f76f
40f750:	8d 46 04             	lea    0x4(%esi),%eax
40f753:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f756:	3b c7                	cmp    %edi,%eax
40f758:	77 48                	ja     0x40f7a2
40f75a:	6a 04                	push   $0x4
40f75c:	8d 43 04             	lea    0x4(%ebx),%eax
40f75f:	50                   	push   %eax
40f760:	6a 04                	push   $0x4
40f762:	56                   	push   %esi
40f763:	ff 15 60 c3 42 00    	call   *0x42c360
40f769:	8b 75 f8             	mov    -0x8(%ebp),%esi
40f76c:	83 c4 10             	add    $0x10,%esp
40f76f:	66 83 3b 00          	cmpw   $0x0,(%ebx)
40f773:	75 22                	jne    0x40f797
40f775:	8d 46 02             	lea    0x2(%esi),%eax
40f778:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f77b:	3b c7                	cmp    %edi,%eax
40f77d:	77 23                	ja     0x40f7a2
40f77f:	6a 02                	push   $0x2
40f781:	8d 43 08             	lea    0x8(%ebx),%eax
40f784:	50                   	push   %eax
40f785:	8b c7                	mov    %edi,%eax
40f787:	2b c6                	sub    %esi,%eax
40f789:	50                   	push   %eax
40f78a:	56                   	push   %esi
40f78b:	ff 15 60 c3 42 00    	call   *0x42c360
40f791:	8b 75 f8             	mov    -0x8(%ebp),%esi
40f794:	83 c4 10             	add    $0x10,%esp
40f797:	0f b7 4b 08          	movzwl 0x8(%ebx),%ecx
40f79b:	8d 04 31             	lea    (%ecx,%esi,1),%eax
40f79e:	3b c7                	cmp    %edi,%eax
40f7a0:	76 04                	jbe    0x40f7a6
40f7a2:	32 c0                	xor    %al,%al
40f7a4:	eb 1e                	jmp    0x40f7c4
40f7a6:	51                   	push   %ecx
40f7a7:	ff 73 10             	push   0x10(%ebx)
40f7aa:	2b fe                	sub    %esi,%edi
40f7ac:	57                   	push   %edi
40f7ad:	56                   	push   %esi