40d3a5:	8b 46 38             	mov    0x38(%esi),%eax
40d3a8:	85 c7                	test   %eax,%edi
40d3aa:	75 31                	jne    0x40d3dd
40d3ac:	ff 76 1c             	push   0x1c(%esi)
40d3af:	0b c7                	or     %edi,%eax
40d3b1:	89 46 38             	mov    %eax,0x38(%esi)
40d3b4:	ff 15 d8 07 4b 00    	call   *0x4b07d8
40d3ba:	50                   	push   %eax
40d3bb:	e8 e2 78 03 00       	call   0x444ca2
40d3c0:	8b f0                	mov    %eax,%esi
40d3c2:	85 f6                	test   %esi,%esi
40d3c4:	74 03                	je     0x40d3c9
40d3c6:	8b 46 1c             	mov    0x1c(%esi),%eax
40d3c9:	6a f0                	push   $0xfffffff0
40d3cb:	50                   	push   %eax
40d3cc:	ff 15 14 08 4b 00    	call   *0x4b0814
40d3d2:	a9 00 00 00 40       	test   $0x40000000,%eax
40d3d7:	74 04                	je     0x40d3dd
40d3d9:	85 f6                	test   %esi,%esi
40d3db:	75 c8                	jne    0x40d3a5
40d3dd:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40d3e0:	33 c0                	xor    %eax,%eax
40d3e2:	39 43 48             	cmp    %eax,0x48(%ebx)
40d3e5:	5f                   	pop    %edi
40d3e6:	5e                   	pop    %esi
40d3e7:	0f 95 c0             	setne  %al
40d3ea:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40d3f1:	5b                   	pop    %ebx
40d3f2:	c9                   	leave
40d3f3:	c3                   	ret
40d3f4:	e9 ad f2 02 00       	jmp    0x43c6a6
40d3f9:	8b c1                	mov    %ecx,%eax
40d3fb:	c3                   	ret
40d3fc:	b8 79 35 48 00       	mov    $0x483579,%eax
40d401:	e8 76 a8 00 00       	call   0x417c7c
40d406:	83 ec 0c             	sub    $0xc,%esp
40d409:	53                   	push   %ebx
40d40a:	56                   	push   %esi
40d40b:	8b f1                	mov    %ecx,%esi
40d40d:	57                   	push   %edi
40d40e:	89 75 e8             	mov    %esi,-0x18(%ebp)
40d411:	c7 06 a4 c3 48 00    	movl   $0x48c3a4,(%esi)
40d417:	8b 46 40             	mov    0x40(%esi),%eax
40d41a:	85 c0                	test   %eax,%eax
40d41c:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
40d423:	89 45 f0             	mov    %eax,-0x10(%ebp)
40d426:	74 42                	je     0x40d46a
40d428:	8d 5e 3c             	lea    0x3c(%esi),%ebx
40d42b:	89 45 ec             	mov    %eax,-0x14(%ebp)
40d42e:	8d 45 f0             	lea    -0x10(%ebp),%eax
40d431:	50                   	push   %eax
40d432:	8b cb                	mov    %ebx,%ecx
40d434:	e8 29 a0 ff ff       	call   0x407462
40d439:	8b 38                	mov    (%eax),%edi
40d43b:	8b 47 04             	mov    0x4(%edi),%eax
40d43e:	85 c0                	test   %eax,%eax
40d440:	74 21                	je     0x40d463
40d442:	83 b8 8c 00 00 00 00 	cmpl   $0x0,0x8c(%eax)
40d449:	75 18                	jne    0x40d463
40d44b:	ff 75 ec             	push   -0x14(%ebp)
40d44e:	8b cb                	mov    %ebx,%ecx
40d450:	e8 b1 f1 02 00       	call   0x43c606
40d455:	8b cf                	mov    %edi,%ecx
40d457:	e8 8e fa ff ff       	call   0x40ceea
40d45c:	57                   	push   %edi
40d45d:	e8 1e 2c 03 00       	call   0x440080
40d462:	59                   	pop    %ecx
40d463:	8b 45 f0             	mov    -0x10(%ebp),%eax
40d466:	85 c0                	test   %eax,%eax
40d468:	75 c1                	jne    0x40d42b
40d46a:	83 7e 48 00          	cmpl   $0x0,0x48(%esi)
40d46e:	74 24                	je     0x40d494
40d470:	8d 5e 3c             	lea    0x3c(%esi),%ebx
40d473:	8b cb                	mov    %ebx,%ecx
40d475:	e8 44 f1 02 00       	call   0x43c5be
40d47a:	8b f8                	mov    %eax,%edi
40d47c:	85 ff                	test   %edi,%edi
40d47e:	74 0e                	je     0x40d48e
40d480:	8b cf                	mov    %edi,%ecx
40d482:	e8 63 fa ff ff       	call   0x40ceea
40d487:	57                   	push   %edi
40d488:	e8 f3 2b 03 00       	call   0x440080
40d48d:	59                   	pop    %ecx
40d48e:	83 7e 48 00          	cmpl   $0x0,0x48(%esi)
40d492:	75 df                	jne    0x40d473
40d494:	8d 7e 20             	lea    0x20(%esi),%edi
40d497:	8b cf                	mov    %edi,%ecx
40d499:	e8 ac 12 03 00       	call   0x43e74a
40d49e:	8d 46 60             	lea    0x60(%esi),%eax
40d4a1:	50                   	push   %eax
40d4a2:	e8 7c 6a 06 00       	call   0x473f23
40d4a7:	8d 4e 3c             	lea    0x3c(%esi),%ecx
40d4aa:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40d4ae:	e8 f3 f1 02 00       	call   0x43c6a6
40d4b3:	8b cf                	mov    %edi,%ecx
40d4b5:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
40d4b9:	e8 51 14 03 00       	call   0x43e90f
40d4be:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40d4c2:	8b ce                	mov    %esi,%ecx
40d4c4:	e8 55 4c 03 00       	call   0x44211e
40d4c9:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40d4cc:	5f                   	pop    %edi
40d4cd:	5e                   	pop    %esi
40d4ce:	5b                   	pop    %ebx
40d4cf:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40d4d6:	c9                   	leave
40d4d7:	c3                   	ret
40d4d8:	55                   	push   %ebp
40d4d9:	8b ec                	mov    %esp,%ebp
40d4db:	51                   	push   %ecx
40d4dc:	51                   	push   %ecx
40d4dd:	8b 41 40             	mov    0x40(%ecx),%eax
40d4e0:	85 c0                	test   %eax,%eax
40d4e2:	89 45 f8             	mov    %eax,-0x8(%ebp)
40d4e5:	74 56                	je     0x40d53d
40d4e7:	57                   	push   %edi
40d4e8:	8d 79 3c             	lea    0x3c(%ecx),%edi
40d4eb:	8d 45 f8             	lea    -0x8(%ebp),%eax
40d4ee:	50                   	push   %eax
40d4ef:	8b cf                	mov    %edi,%ecx
40d4f1:	e8 6c 9f ff ff       	call   0x407462
40d4f6:	8b 00                	mov    (%eax),%eax
40d4f8:	8b 48 04             	mov    0x4(%eax),%ecx
40d4fb:	85 c9                	test   %ecx,%ecx
40d4fd:	74 37                	je     0x40d536
40d4ff:	83 79 4c 00          	cmpl   $0x0,0x4c(%ecx)
40d503:	74 31                	je     0x40d536
40d505:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40d509:	8b 40 04             	mov    0x4(%eax),%eax
40d50c:	8b 40 4c             	mov    0x4c(%eax),%eax
40d50f:	8b 08                	mov    (%eax),%ecx
40d511:	8d 55 fc             	lea    -0x4(%ebp),%edx
40d514:	52                   	push   %edx
40d515:	68 9c 64 49 00       	push   $0x49649c
40d51a:	50                   	push   %eax
40d51b:	ff 11                	call   *(%ecx)
40d51d:	8b 45 fc             	mov    -0x4(%ebp),%eax
40d520:	85 c0                	test   %eax,%eax
40d522:	74 12                	je     0x40d536
40d524:	ff 75 08             	push   0x8(%ebp)
40d527:	8b 08                	mov    (%eax),%ecx
40d529:	50                   	push   %eax
40d52a:	ff 51 14             	call   *0x14(%ecx)
40d52d:	8b 45 fc             	mov    -0x4(%ebp),%eax
40d530:	8b 08                	mov    (%eax),%ecx
40d532:	50                   	push   %eax
40d533:	ff 51 08             	call   *0x8(%ecx)
40d536:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
40d53a:	75 af                	jne    0x40d4eb
40d53c:	5f                   	pop    %edi
40d53d:	c9                   	leave
40d53e:	c2 04 00             	ret    $0x4
40d541:	b8 83 35 48 00       	mov    $0x483583,%eax
40d546:	e8 31 a7 00 00       	call   0x417c7c
40d54b:	83 ec 10             	sub    $0x10,%esp
40d54e:	53                   	push   %ebx
40d54f:	56                   	push   %esi
40d550:	57                   	push   %edi
40d551:	89 65 f0             	mov    %esp,-0x10(%ebp)
40d554:	ff 75 0c             	push   0xc(%ebp)
40d557:	8b f1                	mov    %ecx,%esi
40d559:	ff 75 20             	push   0x20(%ebp)
40d55c:	8b 4e 1c             	mov    0x1c(%esi),%ecx
40d55f:	8d 55 ec             	lea    -0x14(%ebp),%edx
40d562:	33 ff                	xor    %edi,%edi
40d564:	52                   	push   %edx
40d565:	89 7d ec             	mov    %edi,-0x14(%ebp)
40d568:	8b 01                	mov    (%ecx),%eax
40d56a:	56                   	push   %esi
40d56b:	89 75 e8             	mov    %esi,-0x18(%ebp)
40d56e:	89 7d fc             	mov    %edi,-0x4(%ebp)
40d571:	ff 90 28 01 00 00    	call   *0x128(%eax)
40d577:	3b c7                	cmp    %edi,%eax
40d579:	74 2c                	je     0x40d5a7
40d57b:	39 7d ec             	cmp    %edi,-0x14(%ebp)
40d57e:	75 27                	jne    0x40d5a7
40d580:	e8 7c 03 06 00       	call   0x46d901
40d585:	8b 88 38 10 00 00    	mov    0x1038(%eax),%ecx
40d58b:	8b 01                	mov    (%ecx),%eax
40d58d:	56                   	push   %esi
40d58e:	ff 50 0c             	call   *0xc(%eax)
40d591:	89 45 ec             	mov    %eax,-0x14(%ebp)
40d594:	eb 11                	jmp    0x40d5a7
40d596:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40d599:	e8 7b 29 03 00       	call   0x43ff19
40d59e:	b8 a4 d5 40 00       	mov    $0x40d5a4,%eax
40d5a3:	c3                   	ret
40d5a4:	8b 75 e8             	mov    -0x18(%ebp),%esi
40d5a7:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40d5aa:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40d5ae:	85 c9                	test   %ecx,%ecx
40d5b0:	75 07                	jne    0x40d5b9
40d5b2:	33 c0                	xor    %eax,%eax
40d5b4:	e9 8b 00 00 00       	jmp    0x40d644
40d5b9:	ff 75 2c             	push   0x2c(%ebp)
40d5bc:	8b 01                	mov    (%ecx),%eax
40d5be:	ff 75 28             	push   0x28(%ebp)
40d5c1:	ff 75 24             	push   0x24(%ebp)
40d5c4:	ff 75 20             	push   0x20(%ebp)
40d5c7:	ff 75 1c             	push   0x1c(%ebp)
40d5ca:	ff 75 18             	push   0x18(%ebp)
40d5cd:	ff 75 14             	push   0x14(%ebp)
40d5d0:	ff 75 10             	push   0x10(%ebp)
40d5d3:	ff 75 0c             	push   0xc(%ebp)
40d5d6:	ff 75 08             	push   0x8(%ebp)
40d5d9:	ff 50 50             	call   *0x50(%eax)
40d5dc:	33 db                	xor    %ebx,%ebx
40d5de:	85 c0                	test   %eax,%eax
40d5e0:	0f 9d c3             	setge  %bl
40d5e3:	85 db                	test   %ebx,%ebx
40d5e5:	74 4d                	je     0x40d634
40d5e7:	6a 0c                	push   $0xc
40d5e9:	e8 67 2a 03 00       	call   0x440055
40d5ee:	85 c0                	test   %eax,%eax
40d5f0:	59                   	pop    %ecx
40d5f1:	74 11                	je     0x40d604
40d5f3:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40d5f6:	8b 51 20             	mov    0x20(%ecx),%edx
40d5f9:	83 60 08 00          	andl   $0x0,0x8(%eax)
40d5fd:	89 10                	mov    %edx,(%eax)
40d5ff:	89 48 04             	mov    %ecx,0x4(%eax)
40d602:	eb 02                	jmp    0x40d606
40d604:	33 c0                	xor    %eax,%eax
40d606:	50                   	push   %eax
40d607:	8d 4e 3c             	lea    0x3c(%esi),%ecx
40d60a:	e8 22 f1 02 00       	call   0x43c731
40d60f:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40d612:	8b 41 20             	mov    0x20(%ecx),%eax
40d615:	85 c0                	test   %eax,%eax
40d617:	74 10                	je     0x40d629
40d619:	8b f9                	mov    %ecx,%edi
40d61b:	50                   	push   %eax
40d61c:	8d 4e 20             	lea    0x20(%esi),%ecx
40d61f:	e8 41 13 03 00       	call   0x43e965
40d624:	89 38                	mov    %edi,(%eax)
40d626:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40d629:	8b 45 30             	mov    0x30(%ebp),%eax
40d62c:	85 c0                	test   %eax,%eax
40d62e:	74 12                	je     0x40d642
40d630:	89 08                	mov    %ecx,(%eax)
40d632:	eb 0e                	jmp    0x40d642
40d634:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40d637:	85 c9                	test   %ecx,%ecx
40d639:	74 07                	je     0x40d642
40d63b:	8b 01                	mov    (%ecx),%eax
40d63d:	6a 01                	push   $0x1
40d63f:	ff 50 04             	call   *0x4(%eax)
40d642:	8b c3                	mov    %ebx,%eax
40d644:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40d647:	5f                   	pop    %edi
40d648:	5e                   	pop    %esi
40d649:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40d650:	5b                   	pop    %ebx
40d651:	c9                   	leave
40d652:	c2 2c 00             	ret    $0x2c
40d655:	55                   	push   %ebp
40d656:	8b ec                	mov    %esp,%ebp
40d658:	51                   	push   %ecx
40d659:	8b 41 40             	mov    0x40(%ecx),%eax
40d65c:	85 c0                	test   %eax,%eax
40d65e:	56                   	push   %esi
40d65f:	57                   	push   %edi
40d660:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d663:	74 2c                	je     0x40d691
40d665:	8d 79 3c             	lea    0x3c(%ecx),%edi
40d668:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d66b:	50                   	push   %eax
40d66c:	8b cf                	mov    %edi,%ecx
40d66e:	e8 8d f4 ff ff       	call   0x40cb00
40d673:	8b 30                	mov    (%eax),%esi
40d675:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
40d679:	74 10                	je     0x40d68b
40d67b:	8b 4e 04             	mov    0x4(%esi),%ecx
40d67e:	8b 01                	mov    (%ecx),%eax
40d680:	ff 90 90 00 00 00    	call   *0x90(%eax)
40d686:	3b 45 08             	cmp    0x8(%ebp),%eax
40d689:	74 0e                	je     0x40d699
40d68b:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40d68f:	75 d7                	jne    0x40d668
40d691:	33 c0                	xor    %eax,%eax
40d693:	5f                   	pop    %edi
40d694:	5e                   	pop    %esi
40d695:	c9                   	leave
40d696:	c2 04 00             	ret    $0x4
40d699:	8b 46 04             	mov    0x4(%esi),%eax
40d69c:	eb f5                	jmp    0x40d693
40d69e:	b8 a0 35 48 00       	mov    $0x4835a0,%eax
40d6a3:	e8 d4 a5 00 00       	call   0x417c7c
40d6a8:	81 ec 80 00 00 00    	sub    $0x80,%esp
40d6ae:	a1 40 8b 4a 00       	mov    0x4a8b40,%eax
40d6b3:	53                   	push   %ebx
40d6b4:	56                   	push   %esi
40d6b5:	57                   	push   %edi
40d6b6:	89 45 f0             	mov    %eax,-0x10(%ebp)
40d6b9:	8b f9                	mov    %ecx,%edi
40d6bb:	ff 15 fc 70 4a 00    	call   *0x4a70fc
40d6c1:	33 db                	xor    %ebx,%ebx
40d6c3:	89 45 a8             	mov    %eax,-0x58(%ebp)
40d6c6:	89 5d b0             	mov    %ebx,-0x50(%ebp)
40d6c9:	c7 45 ac 80 b6 48 00 	movl   $0x48b680,-0x54(%ebp)
40d6d0:	8b 45 08             	mov    0x8(%ebp),%eax
40d6d3:	3b c3                	cmp    %ebx,%eax
40d6d5:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40d6d8:	74 05                	je     0x40d6df
40d6da:	39 58 04             	cmp    %ebx,0x4(%eax)
40d6dd:	75 27                	jne    0x40d706
40d6df:	6a 11                	push   $0x11
40d6e1:	8d 4d ac             	lea    -0x54(%ebp),%ecx
40d6e4:	e8 c7 fb ff ff       	call   0x40d2b0
40d6e9:	85 c0                	test   %eax,%eax
40d6eb:	75 16                	jne    0x40d703
40d6ed:	6a 0d                	push   $0xd
40d6ef:	8d 4d ac             	lea    -0x54(%ebp),%ecx
40d6f2:	e8 b9 fb ff ff       	call   0x40d2b0
40d6f7:	85 c0                	test   %eax,%eax
40d6f9:	75 08                	jne    0x40d703
40d6fb:	89 5f 60             	mov    %ebx,0x60(%edi)
40d6fe:	e9 da 00 00 00       	jmp    0x40d7dd
40d703:	8d 45 ac             	lea    -0x54(%ebp),%eax
40d706:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
40d709:	51                   	push   %ecx
40d70a:	6a 3c                	push   $0x3c
40d70c:	ff 70 04             	push   0x4(%eax)
40d70f:	ff 15 94 00 4b 00    	call   *0x4b0094
40d715:	8d 45 d0             	lea    -0x30(%ebp),%eax
40d718:	50                   	push   %eax
40d719:	c7 45 88 20 00 00 00 	movl   $0x20,-0x78(%ebp)
40d720:	ff 15 88 03 4b 00    	call   *0x4b0388
40d726:	8b f0                	mov    %eax,%esi
40d728:	46                   	inc    %esi
40d729:	8d 04 36             	lea    (%esi,%esi,1),%eax
40d72c:	83 c0 03             	add    $0x3,%eax
40d72f:	83 e0 fc             	and    $0xfffffffc,%eax
40d732:	e8 b9 8f 00 00       	call   0x4166f0
40d737:	8b c4                	mov    %esp,%eax
40d739:	ff 75 a8             	push   -0x58(%ebp)
40d73c:	8d 4d d0             	lea    -0x30(%ebp),%ecx
40d73f:	56                   	push   %esi
40d740:	51                   	push   %ecx
40d741:	50                   	push   %eax
40d742:	e8 71 8c ff ff       	call   0x4063b8
40d747:	89 45 8c             	mov    %eax,-0x74(%ebp)
40d74a:	66 8b 45 c4          	mov    -0x3c(%ebp),%ax
40d74e:	66 89 45 98          	mov    %ax,-0x68(%ebp)
40d752:	66 0f b6 45 cb       	movzbw -0x35(%ebp),%ax
40d757:	66 89 45 9a          	mov    %ax,-0x66(%ebp)
40d75b:	0f b6 45 c8          	movzbl -0x38(%ebp),%eax
40d75f:	89 45 9c             	mov    %eax,-0x64(%ebp)
40d762:	0f b6 45 c9          	movzbl -0x37(%ebp),%eax
40d766:	89 45 a0             	mov    %eax,-0x60(%ebp)