42b330:	57                   	push   %edi
42b331:	53                   	push   %ebx
42b332:	e8 0b 22 fe ff       	call   0x40d542
42b337:	8b f0                	mov    %eax,%esi
42b339:	89 75 f0             	mov    %esi,-0x10(%ebp)
42b33c:	85 f6                	test   %esi,%esi
42b33e:	79 23                	jns    0x42b363
42b340:	56                   	push   %esi
42b341:	68 b8 01 00 00       	push   $0x1b8
42b346:	68 74 e9 45 00       	push   $0x45e974
42b34b:	e8 83 84 fd ff       	call   0x4037d3
42b350:	68 d0 ea 45 00       	push   $0x45ead0
42b355:	56                   	push   %esi
42b356:	e8 d4 4d 01 00       	call   0x44012f
42b35b:	8b 5d 14             	mov    0x14(%ebp),%ebx
42b35e:	e9 37 05 00 00       	jmp    0x42b89a
42b363:	8b 55 c8             	mov    -0x38(%ebp),%edx
42b366:	8b 4d cc             	mov    -0x34(%ebp),%ecx
42b369:	8b 5d 14             	mov    0x14(%ebp),%ebx
42b36c:	89 55 fc             	mov    %edx,-0x4(%ebp)
42b36f:	89 4d f8             	mov    %ecx,-0x8(%ebp)
42b372:	33 f6                	xor    %esi,%esi
42b374:	c7 45 e4 00 00 00 80 	movl   $0x80000000,-0x1c(%ebp)
42b37b:	21 75 cc             	and    %esi,-0x34(%ebp)
42b37e:	33 c0                	xor    %eax,%eax
42b380:	89 45 e0             	mov    %eax,-0x20(%ebp)
42b383:	8b 45 e8             	mov    -0x18(%ebp),%eax
42b386:	3d 00 00 00 80       	cmp    $0x80000000,%eax
42b38b:	89 75 f0             	mov    %esi,-0x10(%ebp)
42b38e:	0f 44 c6             	cmove  %esi,%eax
42b391:	6b f0 28             	imul   $0x28,%eax,%esi
42b394:	89 45 d4             	mov    %eax,-0x2c(%ebp)
42b397:	89 75 d0             	mov    %esi,-0x30(%ebp)
42b39a:	8b 75 f0             	mov    -0x10(%ebp),%esi
42b39d:	3b 43 50             	cmp    0x50(%ebx),%eax
42b3a0:	0f 83 ca 03 00 00    	jae    0x42b770
42b3a6:	8b 7b 4c             	mov    0x4c(%ebx),%edi
42b3a9:	03 7d d0             	add    -0x30(%ebp),%edi
42b3ac:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
42b3b0:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
42b3b4:	74 09                	je     0x42b3bf
42b3b6:	39 45 e8             	cmp    %eax,-0x18(%ebp)
42b3b9:	75 17                	jne    0x42b3d2
42b3bb:	83 67 04 00          	andl   $0x0,0x4(%edi)
42b3bf:	8b 07                	mov    (%edi),%eax
42b3c1:	48                   	dec    %eax
42b3c2:	83 f8 0b             	cmp    $0xb,%eax
42b3c5:	0f 87 8f 03 00 00    	ja     0x42b75a
42b3cb:	ff 24 85 32 b9 42 00 	jmp    *0x42b932(,%eax,4)
42b3d2:	57                   	push   %edi
42b3d3:	e8 c2 f8 ff ff       	call   0x42ac9a
42b3d8:	01 45 fc             	add    %eax,-0x4(%ebp)
42b3db:	13 ca                	adc    %edx,%ecx
42b3dd:	89 4d f8             	mov    %ecx,-0x8(%ebp)
42b3e0:	e9 72 03 00 00       	jmp    0x42b757
42b3e5:	8b 47 08             	mov    0x8(%edi),%eax
42b3e8:	89 45 c4             	mov    %eax,-0x3c(%ebp)
42b3eb:	e9 6a 03 00 00       	jmp    0x42b75a
42b3f0:	ff 73 24             	push   0x24(%ebx)
42b3f3:	ff 73 20             	push   0x20(%ebx)
42b3f6:	51                   	push   %ecx
42b3f7:	52                   	push   %edx
42b3f8:	ff 77 10             	push   0x10(%edi)
42b3fb:	ff 77 0c             	push   0xc(%edi)
42b3fe:	ff 77 08             	push   0x8(%edi)
42b401:	ff 75 18             	push   0x18(%ebp)
42b404:	ff 75 10             	push   0x10(%ebp)
42b407:	ff 75 0c             	push   0xc(%ebp)
42b40a:	e8 c7 f8 ff ff       	call   0x42acd6
42b40f:	8b f0                	mov    %eax,%esi
42b411:	89 75 f0             	mov    %esi,-0x10(%ebp)
42b414:	85 f6                	test   %esi,%esi
42b416:	0f 88 38 03 00 00    	js     0x42b754
42b41c:	8b 45 fc             	mov    -0x4(%ebp),%eax
42b41f:	03 47 18             	add    0x18(%edi),%eax
42b422:	89 45 fc             	mov    %eax,-0x4(%ebp)
42b425:	8b 45 f8             	mov    -0x8(%ebp),%eax
42b428:	13 47 1c             	adc    0x1c(%edi),%eax
42b42b:	33 ff                	xor    %edi,%edi
42b42d:	89 45 f8             	mov    %eax,-0x8(%ebp)
42b430:	8b 45 1c             	mov    0x1c(%ebp),%eax
42b433:	ff 00                	incl   (%eax)
42b435:	ff 30                	push   (%eax)
42b437:	ff 73 34             	push   0x34(%ebx)
42b43a:	57                   	push   %edi
42b43b:	ff 75 0c             	push   0xc(%ebp)
42b43e:	e8 80 fe ff ff       	call   0x42b2c3
42b443:	8b f0                	mov    %eax,%esi
42b445:	89 75 f0             	mov    %esi,-0x10(%ebp)
42b448:	85 f6                	test   %esi,%esi
42b44a:	0f 89 04 03 00 00    	jns    0x42b754
42b450:	57                   	push   %edi
42b451:	57                   	push   %edi
42b452:	68 e4 ea 45 00       	push   $0x45eae4
42b457:	57                   	push   %edi
42b458:	68 38 00 00 e0       	push   $0xe0000038
42b45d:	56                   	push   %esi
42b45e:	e8 6c 4c 01 00       	call   0x4400cf
42b463:	e9 ec 02 00 00       	jmp    0x42b754
42b468:	ff 77 14             	push   0x14(%edi)
42b46b:	8b 45 d4             	mov    -0x2c(%ebp),%eax
42b46e:	ff 77 10             	push   0x10(%edi)
42b471:	8b 75 0c             	mov    0xc(%ebp),%esi
42b474:	ff 77 0c             	push   0xc(%edi)
42b477:	89 45 dc             	mov    %eax,-0x24(%ebp)
42b47a:	8b 47 18             	mov    0x18(%edi),%eax
42b47d:	89 45 d8             	mov    %eax,-0x28(%ebp)
42b480:	8b 47 08             	mov    0x8(%edi),%eax
42b483:	89 45 f4             	mov    %eax,-0xc(%ebp)
42b486:	8b 46 10             	mov    0x10(%esi),%eax
42b489:	8b 7d f4             	mov    -0xc(%ebp),%edi
42b48c:	8b 08                	mov    (%eax),%ecx
42b48e:	ff 37                	push   (%edi)
42b490:	50                   	push   %eax
42b491:	ff 91 8c 00 00 00    	call   *0x8c(%ecx)
42b497:	50                   	push   %eax
42b498:	6a 01                	push   $0x1
42b49a:	6a 00                	push   $0x0
42b49c:	56                   	push   %esi
42b49d:	e8 a0 20 fe ff       	call   0x40d542
42b4a2:	8b f0                	mov    %eax,%esi
42b4a4:	89 75 f0             	mov    %esi,-0x10(%ebp)
42b4a7:	85 f6                	test   %esi,%esi
42b4a9:	79 16                	jns    0x42b4c1
42b4ab:	6a 00                	push   $0x0
42b4ad:	ff 37                	push   (%edi)
42b4af:	68 00 eb 45 00       	push   $0x45eb00
42b4b4:	6a 00                	push   $0x0
42b4b6:	68 38 00 00 e0       	push   $0xe0000038
42b4bb:	56                   	push   %esi
42b4bc:	e8 0e 4c 01 00       	call   0x4400cf
42b4c1:	8b 4d f8             	mov    -0x8(%ebp),%ecx
42b4c4:	8b 55 fc             	mov    -0x4(%ebp),%edx
42b4c7:	e9 91 02 00 00       	jmp    0x42b75d
42b4cc:	ff 73 24             	push   0x24(%ebx)
42b4cf:	ff 73 20             	push   0x20(%ebx)
42b4d2:	51                   	push   %ecx
42b4d3:	52                   	push   %edx
42b4d4:	ff 77 0c             	push   0xc(%edi)
42b4d7:	6a 00                	push   $0x0
42b4d9:	6a 00                	push   $0x0
42b4db:	ff 77 08             	push   0x8(%edi)
42b4de:	ff 75 10             	push   0x10(%ebp)
42b4e1:	ff 75 0c             	push   0xc(%ebp)
42b4e4:	e8 33 e0 ff ff       	call   0x42951c
42b4e9:	8b f0                	mov    %eax,%esi
42b4eb:	8b 47 08             	mov    0x8(%edi),%eax
42b4ee:	89 75 f0             	mov    %esi,-0x10(%ebp)
42b4f1:	85 f6                	test   %esi,%esi
42b4f3:	78 17                	js     0x42b50c
42b4f5:	8b 55 fc             	mov    -0x4(%ebp),%edx
42b4f8:	03 50 18             	add    0x18(%eax),%edx
42b4fb:	8b 4d f8             	mov    -0x8(%ebp),%ecx
42b4fe:	13 48 1c             	adc    0x1c(%eax),%ecx
42b501:	89 55 fc             	mov    %edx,-0x4(%ebp)
42b504:	89 4d f8             	mov    %ecx,-0x8(%ebp)
42b507:	e9 4e 02 00 00       	jmp    0x42b75a
42b50c:	6a 00                	push   $0x0
42b50e:	ff 77 0c             	push   0xc(%edi)
42b511:	ff 30                	push   (%eax)
42b513:	6a 00                	push   $0x0
42b515:	68 37 01 00 e0       	push   $0xe0000137
42b51a:	e9 3e ff ff ff       	jmp    0x42b45d
42b51f:	8b 47 18             	mov    0x18(%edi),%eax
42b522:	3d 00 00 00 80       	cmp    $0x80000000,%eax
42b527:	74 18                	je     0x42b541
42b529:	6b c8 28             	imul   $0x28,%eax,%ecx
42b52c:	8b 43 4c             	mov    0x4c(%ebx),%eax
42b52f:	83 7c 01 04 00       	cmpl   $0x0,0x4(%ecx,%eax,1)
42b534:	74 0b                	je     0x42b541
42b536:	03 57 10             	add    0x10(%edi),%edx
42b539:	8b 4d f8             	mov    -0x8(%ebp),%ecx
42b53c:	13 4f 14             	adc    0x14(%edi),%ecx
42b53f:	eb c0                	jmp    0x42b501
42b541:	ff 77 24             	push   0x24(%edi)
42b544:	ff 77 20             	push   0x20(%edi)
42b547:	ff 77 1c             	push   0x1c(%edi)
42b54a:	ff 77 08             	push   0x8(%edi)
42b54d:	ff 75 08             	push   0x8(%ebp)
42b550:	e8 93 f5 ff ff       	call   0x42aae8
42b555:	8b f0                	mov    %eax,%esi
42b557:	89 75 f0             	mov    %esi,-0x10(%ebp)
42b55a:	85 f6                	test   %esi,%esi
42b55c:	78 05                	js     0x42b563
42b55e:	8b 55 fc             	mov    -0x4(%ebp),%edx
42b561:	eb d3                	jmp    0x42b536
42b563:	8b 47 08             	mov    0x8(%edi),%eax
42b566:	6a 00                	push   $0x0
42b568:	ff 77 1c             	push   0x1c(%edi)
42b56b:	ff 30                	push   (%eax)
42b56d:	6a 00                	push   $0x0
42b56f:	68 38 01 00 e0       	push   $0xe0000138
42b574:	e9 e4 fe ff ff       	jmp    0x42b45d
42b579:	8d 45 ec             	lea    -0x14(%ebp),%eax
42b57c:	50                   	push   %eax
42b57d:	ff 77 14             	push   0x14(%edi)
42b580:	ff 77 20             	push   0x20(%edi)
42b583:	ff 77 1c             	push   0x1c(%edi)
42b586:	ff 77 18             	push   0x18(%edi)
42b589:	ff 73 24             	push   0x24(%ebx)
42b58c:	ff 73 20             	push   0x20(%ebx)
42b58f:	51                   	push   %ecx
42b590:	52                   	push   %edx
42b591:	6a 00                	push   $0x0
42b593:	ff 77 08             	push   0x8(%edi)
42b596:	ff 77 0c             	push   0xc(%edi)
42b599:	ff 75 18             	push   0x18(%ebp)
42b59c:	ff 75 0c             	push   0xc(%ebp)
42b59f:	e8 b0 f9 ff ff       	call   0x42af54
42b5a4:	8b f0                	mov    %eax,%esi
42b5a6:	89 75 f0             	mov    %esi,-0x10(%ebp)
42b5a9:	85 f6                	test   %esi,%esi
42b5ab:	0f 89 a3 01 00 00    	jns    0x42b754
42b5b1:	ff 77 1c             	push   0x1c(%edi)
42b5b4:	8b 47 0c             	mov    0xc(%edi),%eax
42b5b7:	ff 77 18             	push   0x18(%edi)
42b5ba:	ff 30                	push   (%eax)
42b5bc:	6a 00                	push   $0x0
42b5be:	68 3c 01 00 e0       	push   $0xe000013c
42b5c3:	56                   	push   %esi
42b5c4:	e8 06 4b 01 00       	call   0x4400cf
42b5c9:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
42b5cd:	8b 4d f8             	mov    -0x8(%ebp),%ecx
42b5d0:	8b 55 fc             	mov    -0x4(%ebp),%edx
42b5d3:	0f 84 81 01 00 00    	je     0x42b75a
42b5d9:	8b 47 0c             	mov    0xc(%edi),%eax
42b5dc:	8b 00                	mov    (%eax),%eax
42b5de:	ff 47 14             	incl   0x14(%edi)
42b5e1:	89 45 e0             	mov    %eax,-0x20(%ebp)
42b5e4:	8b 47 10             	mov    0x10(%edi),%eax
42b5e7:	89 45 e4             	mov    %eax,-0x1c(%ebp)
42b5ea:	e9 6b 01 00 00       	jmp    0x42b75a
42b5ef:	ff 73 24             	push   0x24(%ebx)
42b5f2:	ff 73 20             	push   0x20(%ebx)
42b5f5:	51                   	push   %ecx
42b5f6:	52                   	push   %edx
42b5f7:	ff 77 10             	push   0x10(%edi)
42b5fa:	ff 77 0c             	push   0xc(%edi)
42b5fd:	ff 77 08             	push   0x8(%edi)
42b600:	6a 00                	push   $0x0
42b602:	ff 75 10             	push   0x10(%ebp)
42b605:	ff 75 0c             	push   0xc(%ebp)
42b608:	e8 0f df ff ff       	call   0x42951c
42b60d:	8b f0                	mov    %eax,%esi
42b60f:	8b 47 0c             	mov    0xc(%edi),%eax
42b612:	89 75 f0             	mov    %esi,-0x10(%ebp)
42b615:	85 f6                	test   %esi,%esi
42b617:	78 11                	js     0x42b62a
42b619:	8b 55 fc             	mov    -0x4(%ebp),%edx
42b61c:	03 50 10             	add    0x10(%eax),%edx
42b61f:	8b 4d f8             	mov    -0x8(%ebp),%ecx
42b622:	13 48 14             	adc    0x14(%eax),%ecx
42b625:	e9 d7 fe ff ff       	jmp    0x42b501
42b62a:	6a 00                	push   $0x0
42b62c:	ff 77 10             	push   0x10(%edi)
42b62f:	ff 30                	push   (%eax)
42b631:	6a 00                	push   $0x0
42b633:	68 39 01 00 e0       	push   $0xe0000139
42b638:	e9 20 fe ff ff       	jmp    0x42b45d
42b63d:	8b 4f 08             	mov    0x8(%edi),%ecx
42b640:	8d 45 ec             	lea    -0x14(%ebp),%eax
42b643:	50                   	push   %eax
42b644:	ff 77 14             	push   0x14(%edi)
42b647:	8b 45 f8             	mov    -0x8(%ebp),%eax
42b64a:	33 f6                	xor    %esi,%esi
42b64c:	ff 77 1c             	push   0x1c(%edi)
42b64f:	ff 77 18             	push   0x18(%edi)
42b652:	56                   	push   %esi
42b653:	ff 73 24             	push   0x24(%ebx)
42b656:	ff 73 20             	push   0x20(%ebx)
42b659:	50                   	push   %eax
42b65a:	52                   	push   %edx
42b65b:	ff 77 0c             	push   0xc(%edi)
42b65e:	83 c8 ff             	or     $0xffffffff,%eax
42b661:	39 71 14             	cmp    %esi,0x14(%ecx)
42b664:	51                   	push   %ecx
42b665:	0f 45 45 18          	cmovne 0x18(%ebp),%eax
42b669:	56                   	push   %esi
42b66a:	50                   	push   %eax
42b66b:	ff 75 0c             	push   0xc(%ebp)
42b66e:	e8 e1 f8 ff ff       	call   0x42af54
42b673:	8b f0                	mov    %eax,%esi
42b675:	89 75 f0             	mov    %esi,-0x10(%ebp)
42b678:	85 f6                	test   %esi,%esi
42b67a:	0f 89 d4 00 00 00    	jns    0x42b754
42b680:	8b 47 0c             	mov    0xc(%edi),%eax
42b683:	6a 00                	push   $0x0
42b685:	ff 77 18             	push   0x18(%edi)
42b688:	ff 30                	push   (%eax)
42b68a:	6a 00                	push   $0x0
42b68c:	68 3a 01 00 e0       	push   $0xe000013a
42b691:	e9 2d ff ff ff       	jmp    0x42b5c3
42b696:	8d 45 ec             	lea    -0x14(%ebp),%eax
42b699:	50                   	push   %eax
42b69a:	ff 77 14             	push   0x14(%edi)
42b69d:	ff 77 20             	push   0x20(%edi)
42b6a0:	ff 77 1c             	push   0x1c(%edi)
42b6a3:	ff 77 18             	push   0x18(%edi)
42b6a6:	ff 73 24             	push   0x24(%ebx)
42b6a9:	ff 73 20             	push   0x20(%ebx)
42b6ac:	51                   	push   %ecx
42b6ad:	52                   	push   %edx
42b6ae:	ff 77 0c             	push   0xc(%edi)
42b6b1:	ff 77 08             	push   0x8(%edi)
42b6b4:	6a 00                	push   $0x0
42b6b6:	ff 75 18             	push   0x18(%ebp)
42b6b9:	ff 75 0c             	push   0xc(%ebp)
42b6bc:	e8 93 f8 ff ff       	call   0x42af54
42b6c1:	8b f0                	mov    %eax,%esi
42b6c3:	89 75 f0             	mov    %esi,-0x10(%ebp)
42b6c6:	85 f6                	test   %esi,%esi
42b6c8:	0f 89 86 00 00 00    	jns    0x42b754
42b6ce:	ff 77 1c             	push   0x1c(%edi)
42b6d1:	8b 47 0c             	mov    0xc(%edi),%eax
42b6d4:	ff 77 18             	push   0x18(%edi)
42b6d7:	ff 30                	push   (%eax)
42b6d9:	6a 00                	push   $0x0
42b6db:	68 3d 01 00 e0       	push   $0xe000013d
42b6e0:	e9 de fe ff ff       	jmp    0x42b5c3
42b6e5:	8b 45 1c             	mov    0x1c(%ebp),%eax
42b6e8:	8b 7d 0c             	mov    0xc(%ebp),%edi
42b6eb:	8b 00                	mov    (%eax),%eax
42b6ed:	40                   	inc    %eax
42b6ee:	50                   	push   %eax
42b6ef:	ff 73 34             	push   0x34(%ebx)
42b6f2:	6a 00                	push   $0x0
42b6f4:	57                   	push   %edi
42b6f5:	e8 c9 fb ff ff       	call   0x42b2c3
42b6fa:	8b f0                	mov    %eax,%esi
42b6fc:	89 75 f0             	mov    %esi,-0x10(%ebp)
42b6ff:	85 f6                	test   %esi,%esi
42b701:	79 0f                	jns    0x42b712
42b703:	33 c0                	xor    %eax,%eax
42b705:	50                   	push   %eax
42b706:	50                   	push   %eax
42b707:	68 28 eb 45 00       	push   $0x45eb28
42b70c:	50                   	push   %eax
42b70d:	e9 46 fd ff ff       	jmp    0x42b458
42b712:	8b 45 1c             	mov    0x1c(%ebp),%eax
42b715:	6a 00                	push   $0x0
42b717:	56                   	push   %esi
42b718:	ff 00                	incl   (%eax)
42b71a:	8b 47 10             	mov    0x10(%edi),%eax
42b71d:	8b 7d f4             	mov    -0xc(%ebp),%edi
42b720:	8b 08                	mov    (%eax),%ecx
42b722:	ff 37                	push   (%edi)
42b724:	50                   	push   %eax
42b725:	ff 91 a8 00 00 00    	call   *0xa8(%ecx)
42b72b:	89 77 78             	mov    %esi,0x78(%edi)
42b72e:	b8 00 00 00 80       	mov    $0x80000000,%eax