42b48c:	8b f7                	mov    %edi,%esi
42b48e:	85 d2                	test   %edx,%edx
42b490:	7e 2c                	jle    0x42b4be
42b492:	8b 7d 08             	mov    0x8(%ebp),%edi
42b495:	33 c0                	xor    %eax,%eax
42b497:	8b d8                	mov    %eax,%ebx
42b499:	3b f9                	cmp    %ecx,%edi
42b49b:	76 15                	jbe    0x42b4b2
42b49d:	6a 20                	push   $0x20
42b49f:	58                   	pop    %eax
42b4a0:	66 89 06             	mov    %ax,(%esi)
42b4a3:	83 c3 02             	add    $0x2,%ebx
42b4a6:	8b c3                	mov    %ebx,%eax
42b4a8:	4f                   	dec    %edi
42b4a9:	d1 f8                	sar    $1,%eax
42b4ab:	83 c6 02             	add    $0x2,%esi
42b4ae:	3b c2                	cmp    %edx,%eax
42b4b0:	7c e7                	jl     0x42b499
42b4b2:	8b bd 20 ff ff ff    	mov    -0xe0(%ebp),%edi
42b4b8:	8b 9d 30 ff ff ff    	mov    -0xd0(%ebp),%ebx
42b4be:	8b c6                	mov    %esi,%eax
42b4c0:	2b c7                	sub    %edi,%eax
42b4c2:	d1 f8                	sar    $1,%eax
42b4c4:	2b d0                	sub    %eax,%edx
42b4c6:	eb 05                	jmp    0x42b4cd
42b4c8:	8b 55 10             	mov    0x10(%ebp),%edx
42b4cb:	8b f7                	mov    %edi,%esi
42b4cd:	53                   	push   %ebx
42b4ce:	8b ce                	mov    %esi,%ecx
42b4d0:	e8 cb 3e fe ff       	call   0x40f3a0
42b4d5:	8d 57 02             	lea    0x2(%edi),%edx
42b4d8:	33 c0                	xor    %eax,%eax
42b4da:	66 8b 0f             	mov    (%edi),%cx
42b4dd:	83 c7 02             	add    $0x2,%edi
42b4e0:	66 3b c8             	cmp    %ax,%cx
42b4e3:	75 f5                	jne    0x42b4da
42b4e5:	8b 4d fc             	mov    -0x4(%ebp),%ecx
42b4e8:	2b fa                	sub    %edx,%edi
42b4ea:	d1 ff                	sar    $1,%edi
42b4ec:	33 cd                	xor    %ebp,%ecx
42b4ee:	8b c7                	mov    %edi,%eax
42b4f0:	5f                   	pop    %edi
42b4f1:	5e                   	pop    %esi
42b4f2:	5b                   	pop    %ebx
42b4f3:	e8 38 b6 fe ff       	call   0x416b30
42b4f8:	c9                   	leave
42b4f9:	c2 0c 00             	ret    $0xc
42b4fc:	8b ff                	mov    %edi,%edi
42b4fe:	55                   	push   %ebp
42b4ff:	8b ec                	mov    %esp,%ebp
42b501:	83 ec 0c             	sub    $0xc,%esp
42b504:	53                   	push   %ebx
42b505:	8b 59 14             	mov    0x14(%ecx),%ebx
42b508:	33 c0                	xor    %eax,%eax
42b50a:	89 45 f4             	mov    %eax,-0xc(%ebp)
42b50d:	57                   	push   %edi
42b50e:	8b f8                	mov    %eax,%edi
42b510:	85 db                	test   %ebx,%ebx
42b512:	74 73                	je     0x42b587
42b514:	e8 1b df fd ff       	call   0x409434
42b519:	8a d0                	mov    %al,%dl
42b51b:	8b 41 1c             	mov    0x1c(%ecx),%eax
42b51e:	88 55 ff             	mov    %dl,-0x1(%ebp)
42b521:	89 45 f8             	mov    %eax,-0x8(%ebp)
42b524:	56                   	push   %esi
42b525:	8b 30                	mov    (%eax),%esi
42b527:	83 c6 30             	add    $0x30,%esi
42b52a:	8b ce                	mov    %esi,%ecx
42b52c:	84 d2                	test   %dl,%dl
42b52e:	74 16                	je     0x42b546
42b530:	e8 a3 cd ff ff       	call   0x4282d8
42b535:	66 3b f8             	cmp    %ax,%di
42b538:	77 3b                	ja     0x42b575
42b53a:	8b ce                	mov    %esi,%ecx
42b53c:	e8 97 cd ff ff       	call   0x4282d8
42b541:	0f b7 f8             	movzwl %ax,%edi
42b544:	eb 2f                	jmp    0x42b575
42b546:	8d 51 02             	lea    0x2(%ecx),%edx
42b549:	66 8b 01             	mov    (%ecx),%ax
42b54c:	83 c1 02             	add    $0x2,%ecx
42b54f:	66 3b 45 f4          	cmp    -0xc(%ebp),%ax
42b553:	75 f4                	jne    0x42b549
42b555:	2b ca                	sub    %edx,%ecx
42b557:	d1 f9                	sar    $1,%ecx
42b559:	66 3b f9             	cmp    %cx,%di
42b55c:	77 17                	ja     0x42b575
42b55e:	8d 4e 02             	lea    0x2(%esi),%ecx
42b561:	33 d2                	xor    %edx,%edx
42b563:	66 8b 06             	mov    (%esi),%ax
42b566:	83 c6 02             	add    $0x2,%esi
42b569:	66 3b c2             	cmp    %dx,%ax
42b56c:	75 f5                	jne    0x42b563
42b56e:	2b f1                	sub    %ecx,%esi
42b570:	d1 fe                	sar    $1,%esi
42b572:	0f b7 fe             	movzwl %si,%edi
42b575:	8b 45 f8             	mov    -0x8(%ebp),%eax
42b578:	8a 55 ff             	mov    -0x1(%ebp),%dl
42b57b:	83 c0 04             	add    $0x4,%eax
42b57e:	89 45 f8             	mov    %eax,-0x8(%ebp)
42b581:	83 eb 01             	sub    $0x1,%ebx
42b584:	75 9f                	jne    0x42b525
42b586:	5e                   	pop    %esi
42b587:	66 8b c7             	mov    %di,%ax
42b58a:	5f                   	pop    %edi
42b58b:	5b                   	pop    %ebx
42b58c:	c9                   	leave
42b58d:	c3                   	ret
42b58e:	8b ff                	mov    %edi,%edi
42b590:	55                   	push   %ebp
42b591:	8b ec                	mov    %esp,%ebp
42b593:	53                   	push   %ebx
42b594:	56                   	push   %esi
42b595:	57                   	push   %edi
42b596:	8b 7d 08             	mov    0x8(%ebp),%edi
42b599:	8b da                	mov    %edx,%ebx
42b59b:	8b f1                	mov    %ecx,%esi
42b59d:	ba d8 40 40 00       	mov    $0x4040d8,%edx
42b5a2:	8b cb                	mov    %ebx,%ecx
42b5a4:	83 27 00             	andl   $0x0,(%edi)
42b5a7:	e8 d7 02 00 00       	call   0x42b883
42b5ac:	85 c0                	test   %eax,%eax
42b5ae:	75 26                	jne    0x42b5d6
42b5b0:	51                   	push   %ecx
42b5b1:	57                   	push   %edi
42b5b2:	53                   	push   %ebx
42b5b3:	8b ce                	mov    %esi,%ecx
42b5b5:	e8 95 02 00 00       	call   0x42b84f
42b5ba:	8b d8                	mov    %eax,%ebx
42b5bc:	85 db                	test   %ebx,%ebx
42b5be:	78 12                	js     0x42b5d2
42b5c0:	8b 0f                	mov    (%edi),%ecx
42b5c2:	51                   	push   %ecx
42b5c3:	8b 11                	mov    (%ecx),%edx
42b5c5:	8b 72 04             	mov    0x4(%edx),%esi
42b5c8:	8b ce                	mov    %esi,%ecx
42b5ca:	ff 15 c4 a4 44 00    	call   *0x44a4c4
42b5d0:	ff d6                	call   *%esi
42b5d2:	8b c3                	mov    %ebx,%eax
42b5d4:	eb 14                	jmp    0x42b5ea
42b5d6:	89 37                	mov    %esi,(%edi)
42b5d8:	8b 06                	mov    (%esi),%eax
42b5da:	56                   	push   %esi
42b5db:	8b 70 04             	mov    0x4(%eax),%esi
42b5de:	8b ce                	mov    %esi,%ecx
42b5e0:	ff 15 c4 a4 44 00    	call   *0x44a4c4
42b5e6:	ff d6                	call   *%esi
42b5e8:	33 c0                	xor    %eax,%eax
42b5ea:	5f                   	pop    %edi
42b5eb:	5e                   	pop    %esi
42b5ec:	5b                   	pop    %ebx
42b5ed:	5d                   	pop    %ebp
42b5ee:	c2 04 00             	ret    $0x4
42b5f1:	8b ff                	mov    %edi,%edi
42b5f3:	55                   	push   %ebp
42b5f4:	8b ec                	mov    %esp,%ebp
42b5f6:	51                   	push   %ecx
42b5f7:	53                   	push   %ebx
42b5f8:	56                   	push   %esi
42b5f9:	57                   	push   %edi
42b5fa:	8b d9                	mov    %ecx,%ebx
42b5fc:	89 55 fc             	mov    %edx,-0x4(%ebp)
42b5ff:	68 34 27 40 00       	push   $0x402734
42b604:	6a 24                	push   $0x24
42b606:	83 23 00             	andl   $0x0,(%ebx)
42b609:	e8 22 b8 fe ff       	call   0x416e30
42b60e:	8b f0                	mov    %eax,%esi
42b610:	59                   	pop    %ecx
42b611:	59                   	pop    %ecx
42b612:	85 f6                	test   %esi,%esi
42b614:	75 07                	jne    0x42b61d
42b616:	bf 0e 00 07 80       	mov    $0x8007000e,%edi
42b61b:	eb 50                	jmp    0x42b66d
42b61d:	8b ce                	mov    %esi,%ecx
42b61f:	e8 52 00 00 00       	call   0x42b676
42b624:	8b 45 10             	mov    0x10(%ebp),%eax
42b627:	c7 06 bc 15 40 00    	movl   $0x4015bc,(%esi)
42b62d:	c7 46 04 ac 15 40 00 	movl   $0x4015ac,0x4(%esi)
42b634:	c7 46 08 9c 15 40 00 	movl   $0x40159c,0x8(%esi)
42b63b:	8b 38                	mov    (%eax),%edi
42b63d:	8b 45 0c             	mov    0xc(%ebp),%eax
42b640:	53                   	push   %ebx
42b641:	8b 10                	mov    (%eax),%edx
42b643:	8b 45 08             	mov    0x8(%ebp),%eax
42b646:	8b 08                	mov    (%eax),%ecx
42b648:	8b 45 fc             	mov    -0x4(%ebp),%eax
42b64b:	8b 00                	mov    (%eax),%eax
42b64d:	89 4e 18             	mov    %ecx,0x18(%esi)
42b650:	8b ce                	mov    %esi,%ecx
42b652:	89 56 1c             	mov    %edx,0x1c(%esi)
42b655:	ba 84 35 40 00       	mov    $0x403584,%edx
42b65a:	89 46 14             	mov    %eax,0x14(%esi)
42b65d:	89 7e 20             	mov    %edi,0x20(%esi)
42b660:	e8 29 ff ff ff       	call   0x42b58e
42b665:	56                   	push   %esi
42b666:	8b f8                	mov    %eax,%edi
42b668:	e8 c3 03 00 00       	call   0x42ba30
42b66d:	8b c7                	mov    %edi,%eax
42b66f:	5f                   	pop    %edi
42b670:	5e                   	pop    %esi
42b671:	5b                   	pop    %ebx
42b672:	c9                   	leave
42b673:	c2 0c 00             	ret    $0xc
42b676:	8b ff                	mov    %edi,%edi
42b678:	57                   	push   %edi
42b679:	8b f9                	mov    %ecx,%edi
42b67b:	8b 0d 30 95 44 00    	mov    0x449530,%ecx
42b681:	c7 47 10 01 00 00 00 	movl   $0x1,0x10(%edi)
42b688:	c7 07 58 1c 40 00    	movl   $0x401c58,(%edi)
42b68e:	c7 47 04 48 1c 40 00 	movl   $0x401c48,0x4(%edi)
42b695:	c7 47 08 38 1c 40 00 	movl   $0x401c38,0x8(%edi)
42b69c:	85 c9                	test   %ecx,%ecx
42b69e:	74 12                	je     0x42b6b2
42b6a0:	8b 01                	mov    (%ecx),%eax
42b6a2:	56                   	push   %esi
42b6a3:	51                   	push   %ecx
42b6a4:	8b 70 04             	mov    0x4(%eax),%esi
42b6a7:	8b ce                	mov    %esi,%ecx
42b6a9:	ff 15 c4 a4 44 00    	call   *0x44a4c4
42b6af:	ff d6                	call   *%esi
42b6b1:	5e                   	pop    %esi
42b6b2:	8b c7                	mov    %edi,%eax
42b6b4:	5f                   	pop    %edi
42b6b5:	c3                   	ret
42b6b6:	cc                   	int3
42b6b7:	cc                   	int3
42b6b8:	cc                   	int3
42b6b9:	cc                   	int3
42b6ba:	cc                   	int3
42b6bb:	cc                   	int3
42b6bc:	cc                   	int3
42b6bd:	cc                   	int3
42b6be:	cc                   	int3
42b6bf:	cc                   	int3
42b6c0:	8b ff                	mov    %edi,%edi
42b6c2:	55                   	push   %ebp
42b6c3:	8b ec                	mov    %esp,%ebp
42b6c5:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
42b6c9:	56                   	push   %esi
42b6ca:	8b f1                	mov    %ecx,%esi
42b6cc:	c7 46 10 01 00 00 c0 	movl   $0xc0000001,0x10(%esi)
42b6d3:	74 08                	je     0x42b6dd
42b6d5:	56                   	push   %esi
42b6d6:	ff 15 d8 a3 44 00    	call   *0x44a3d8
42b6dc:	59                   	pop    %ecx
42b6dd:	8b c6                	mov    %esi,%eax
42b6df:	5e                   	pop    %esi
42b6e0:	5d                   	pop    %ebp
42b6e1:	c2 04 00             	ret    $0x4
42b6e4:	cc                   	int3
42b6e5:	cc                   	int3
42b6e6:	cc                   	int3
42b6e7:	cc                   	int3
42b6e8:	cc                   	int3
42b6e9:	cc                   	int3
42b6ea:	cc                   	int3
42b6eb:	cc                   	int3
42b6ec:	cc                   	int3
42b6ed:	cc                   	int3
42b6ee:	cc                   	int3
42b6ef:	cc                   	int3
42b6f0:	8b ff                	mov    %edi,%edi
42b6f2:	55                   	push   %ebp
42b6f3:	8b ec                	mov    %esp,%ebp
42b6f5:	8b 4d 08             	mov    0x8(%ebp),%ecx
42b6f8:	e8 ab 01 00 00       	call   0x42b8a8
42b6fd:	5d                   	pop    %ebp
42b6fe:	c2 04 00             	ret    $0x4
42b701:	8b ff                	mov    %edi,%edi
42b703:	55                   	push   %ebp
42b704:	8b ec                	mov    %esp,%ebp
42b706:	83 ec 4c             	sub    $0x4c,%esp
42b709:	53                   	push   %ebx
42b70a:	56                   	push   %esi
42b70b:	57                   	push   %edi
42b70c:	8b d9                	mov    %ecx,%ebx
42b70e:	89 55 f0             	mov    %edx,-0x10(%ebp)
42b711:	33 ff                	xor    %edi,%edi
42b713:	89 5d f8             	mov    %ebx,-0x8(%ebp)
42b716:	57                   	push   %edi
42b717:	ff 15 f8 a2 44 00    	call   *0x44a2f8
42b71d:	8b f0                	mov    %eax,%esi
42b71f:	85 f6                	test   %esi,%esi
42b721:	0f 88 db 00 00 00    	js     0x42b802
42b727:	89 7d fc             	mov    %edi,-0x4(%ebp)
42b72a:	ff 15 5c a1 44 00    	call   *0x44a15c
42b730:	8d 4d fc             	lea    -0x4(%ebp),%ecx
42b733:	89 45 f4             	mov    %eax,-0xc(%ebp)
42b736:	e8 75 01 00 00       	call   0x42b8b0
42b73b:	8d 45 f8             	lea    -0x8(%ebp),%eax
42b73e:	50                   	push   %eax
42b73f:	8d 45 18             	lea    0x18(%ebp),%eax
42b742:	50                   	push   %eax
42b743:	8d 45 14             	lea    0x14(%ebp),%eax
42b746:	50                   	push   %eax
42b747:	8d 55 f4             	lea    -0xc(%ebp),%edx
42b74a:	8d 4d fc             	lea    -0x4(%ebp),%ecx
42b74d:	e8 9f fe ff ff       	call   0x42b5f1
42b752:	85 c0                	test   %eax,%eax
42b754:	0f 88 96 00 00 00    	js     0x42b7f0
42b75a:	e8 d6 ca fd ff       	call   0x408235
42b75f:	6a 38                	push   $0x38
42b761:	8d 45 b8             	lea    -0x48(%ebp),%eax
42b764:	c7 45 b4 3c 00 00 00 	movl   $0x3c,-0x4c(%ebp)
42b76b:	57                   	push   %edi
42b76c:	50                   	push   %eax
42b76d:	e8 4b c8 fe ff       	call   0x417fbd
42b772:	83 c4 0c             	add    $0xc,%esp
42b775:	c7 45 b8 40 81 00 08 	movl   $0x8008140,-0x48(%ebp)
42b77c:	f6 c3 10             	test   $0x10,%bl
42b77f:	74 07                	je     0x42b788
42b781:	c7 45 b8 40 01 00 08 	movl   $0x8000140,-0x48(%ebp)
42b788:	ff 15 5c a1 44 00    	call   *0x44a15c
42b78e:	89 45 bc             	mov    %eax,-0x44(%ebp)
42b791:	8b 45 f0             	mov    -0x10(%ebp),%eax
42b794:	89 45 c4             	mov    %eax,-0x3c(%ebp)
42b797:	8b 45 08             	mov    0x8(%ebp),%eax
42b79a:	89 45 c8             	mov    %eax,-0x38(%ebp)
42b79d:	8b 45 0c             	mov    0xc(%ebp),%eax
42b7a0:	89 45 cc             	mov    %eax,-0x34(%ebp)
42b7a3:	8b 45 10             	mov    0x10(%ebp),%eax
42b7a6:	89 45 d0             	mov    %eax,-0x30(%ebp)
42b7a9:	8b 45 fc             	mov    -0x4(%ebp),%eax
42b7ac:	89 45 d4             	mov    %eax,-0x2c(%ebp)
42b7af:	8d 45 b4             	lea    -0x4c(%ebp),%eax
42b7b2:	50                   	push   %eax
42b7b3:	ff 15 40 d0 44 00    	call   *0x44d040
42b7b9:	8b f8                	mov    %eax,%edi
42b7bb:	85 ff                	test   %edi,%edi
42b7bd:	74 0a                	je     0x42b7c9
42b7bf:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
42b7c2:	8b 45 ec             	mov    -0x14(%ebp),%eax
42b7c5:	89 01                	mov    %eax,(%ecx)
42b7c7:	eb 27                	jmp    0x42b7f0
42b7c9:	8b 45 d4             	mov    -0x2c(%ebp),%eax
42b7cc:	85 c0                	test   %eax,%eax
42b7ce:	75 0c                	jne    0x42b7dc
42b7d0:	c7 05 a8 67 43 00 08 	movl   $0x8,0x4367a8
42b7d7:	00 00 00
42b7da:	eb 14                	jmp    0x42b7f0
42b7dc:	c7 05 a8 67 43 00 02 	movl   $0x2,0x4367a8
42b7e3:	00 00 00
42b7e6:	83 f8 20             	cmp    $0x20,%eax
42b7e9:	74 05                	je     0x42b7f0
42b7eb:	a3 a8 67 43 00       	mov    %eax,0x4367a8
42b7f0:	8d 4d fc             	lea    -0x4(%ebp),%ecx
42b7f3:	e8 b8 00 00 00       	call   0x42b8b0
42b7f8:	85 f6                	test   %esi,%esi
42b7fa:	78 06                	js     0x42b802
42b7fc:	ff 15 fc a2 44 00    	call   *0x44a2fc
42b802:	8b c7                	mov    %edi,%eax