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)
40d769:	0f b6 45 ca          	movzbl -0x36(%ebp),%eax
40d76d:	89 45 a4             	mov    %eax,-0x5c(%ebp)
40d770:	8b 45 b4             	mov    -0x4c(%ebp),%eax
40d773:	3b c3                	cmp    %ebx,%eax
40d775:	8b f0                	mov    %eax,%esi
40d777:	7d 04                	jge    0x40d77d
40d779:	f7 d8                	neg    %eax
40d77b:	8b f0                	mov    %eax,%esi
40d77d:	ff 77 1c             	push   0x1c(%edi)
40d780:	8d 8d 74 ff ff ff    	lea    -0x8c(%ebp),%ecx
40d786:	e8 10 1d 04 00       	call   0x44f49b
40d78b:	6a 5a                	push   $0x5a
40d78d:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
40d793:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40d797:	ff 15 48 00 4b 00    	call   *0x4b0048
40d79d:	8b c8                	mov    %eax,%ecx
40d79f:	8b c6                	mov    %esi,%eax
40d7a1:	69 c0 80 fc 0a 00    	imul   $0xafc80,%eax,%eax
40d7a7:	99                   	cltd
40d7a8:	f7 f9                	idiv   %ecx
40d7aa:	8d 77 60             	lea    0x60(%edi),%esi
40d7ad:	56                   	push   %esi
40d7ae:	89 5d 94             	mov    %ebx,-0x6c(%ebp)
40d7b1:	89 45 90             	mov    %eax,-0x70(%ebp)
40d7b4:	e8 6a 67 06 00       	call   0x473f23
40d7b9:	56                   	push   %esi
40d7ba:	68 bc 63 49 00       	push   $0x4963bc
40d7bf:	8d 45 88             	lea    -0x78(%ebp),%eax
40d7c2:	50                   	push   %eax
40d7c3:	ff 15 74 04 4b 00    	call   *0x4b0474
40d7c9:	85 c0                	test   %eax,%eax
40d7cb:	7d 02                	jge    0x40d7cf
40d7cd:	89 1e                	mov    %ebx,(%esi)
40d7cf:	8d 8d 74 ff ff ff    	lea    -0x8c(%ebp),%ecx
40d7d5:	88 5d fc             	mov    %bl,-0x4(%ebp)
40d7d8:	e8 19 1d 04 00       	call   0x44f4f6
40d7dd:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40d7e1:	8d 4d ac             	lea    -0x54(%ebp),%ecx
40d7e4:	c7 45 ac 70 b6 48 00 	movl   $0x48b670,-0x54(%ebp)
40d7eb:	e8 cb 1e 04 00       	call   0x44f6bb
40d7f0:	8d a5 68 ff ff ff    	lea    -0x98(%ebp),%esp
40d7f6:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40d7f9:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40d800:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40d803:	e8 d6 a3 00 00       	call   0x417bde
40d808:	5f                   	pop    %edi
40d809:	5e                   	pop    %esi
40d80a:	5b                   	pop    %ebx
40d80b:	c9                   	leave
40d80c:	c2 04 00             	ret    $0x4
40d80f:	55                   	push   %ebp
40d810:	8b ec                	mov    %esp,%ebp
40d812:	51                   	push   %ecx
40d813:	8b 41 40             	mov    0x40(%ecx),%eax
40d816:	85 c0                	test   %eax,%eax
40d818:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d81b:	74 29                	je     0x40d846
40d81d:	56                   	push   %esi
40d81e:	8d 71 3c             	lea    0x3c(%ecx),%esi
40d821:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d824:	50                   	push   %eax
40d825:	8b ce                	mov    %esi,%ecx
40d827:	e8 36 9c ff ff       	call   0x407462
40d82c:	8b 00                	mov    (%eax),%eax
40d82e:	8b 40 04             	mov    0x4(%eax),%eax
40d831:	85 c0                	test   %eax,%eax
40d833:	74 0a                	je     0x40d83f
40d835:	ff 75 08             	push   0x8(%ebp)
40d838:	8b c8                	mov    %eax,%ecx
40d83a:	e8 6a 13 00 00       	call   0x40eba9
40d83f:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40d843:	75 dc                	jne    0x40d821
40d845:	5e                   	pop    %esi
40d846:	c9                   	leave
40d847:	c2 04 00             	ret    $0x4
40d84a:	55                   	push   %ebp
40d84b:	8b ec                	mov    %esp,%ebp
40d84d:	51                   	push   %ecx
40d84e:	8b 41 40             	mov    0x40(%ecx),%eax
40d851:	85 c0                	test   %eax,%eax
40d853:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d856:	74 42                	je     0x40d89a
40d858:	56                   	push   %esi
40d859:	57                   	push   %edi
40d85a:	8d 79 3c             	lea    0x3c(%ecx),%edi
40d85d:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d860:	50                   	push   %eax
40d861:	8b cf                	mov    %edi,%ecx
40d863:	e8 fa 9b ff ff       	call   0x407462
40d868:	8b 30                	mov    (%eax),%esi
40d86a:	8b 46 04             	mov    0x4(%esi),%eax
40d86d:	85 c0                	test   %eax,%eax
40d86f:	74 21                	je     0x40d892
40d871:	ff 75 0c             	push   0xc(%ebp)
40d874:	83 c0 2c             	add    $0x2c,%eax
40d877:	ff 75 08             	push   0x8(%ebp)
40d87a:	50                   	push   %eax
40d87b:	ff 15 30 07 4b 00    	call   *0x4b0730
40d881:	8b 46 04             	mov    0x4(%esi),%eax
40d884:	8b 48 50             	mov    0x50(%eax),%ecx
40d887:	8b 11                	mov    (%ecx),%edx
40d889:	83 c0 2c             	add    $0x2c,%eax
40d88c:	50                   	push   %eax
40d88d:	50                   	push   %eax
40d88e:	51                   	push   %ecx
40d88f:	ff 52 1c             	call   *0x1c(%edx)
40d892:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40d896:	75 c5                	jne    0x40d85d
40d898:	5f                   	pop    %edi
40d899:	5e                   	pop    %esi
40d89a:	c9                   	leave
40d89b:	c2 08 00             	ret    $0x8
40d89e:	ff 74 24 04          	push   0x4(%esp)
40d8a2:	8b 01                	mov    (%ecx),%eax
40d8a4:	ff 50 74             	call   *0x74(%eax)
40d8a7:	33 c9                	xor    %ecx,%ecx
40d8a9:	3b c1                	cmp    %ecx,%eax
40d8ab:	74 2d                	je     0x40d8da
40d8ad:	39 48 4c             	cmp    %ecx,0x4c(%eax)
40d8b0:	75 15                	jne    0x40d8c7
40d8b2:	51                   	push   %ecx
40d8b3:	ff 74 24 0c          	push   0xc(%esp)
40d8b7:	68 f1 00 00 00       	push   $0xf1
40d8bc:	ff 70 1c             	push   0x1c(%eax)
40d8bf:	ff 15 98 08 4b 00    	call   *0x4b0898
40d8c5:	eb 13                	jmp    0x40d8da
40d8c7:	ff 74 24 08          	push   0x8(%esp)
40d8cb:	8b 40 4c             	mov    0x4c(%eax),%eax
40d8ce:	8b 10                	mov    (%eax),%edx
40d8d0:	6a 03                	push   $0x3
40d8d2:	51                   	push   %ecx
40d8d3:	50                   	push   %eax
40d8d4:	ff 52 74             	call   *0x74(%edx)
40d8d7:	83 c4 10             	add    $0x10,%esp
40d8da:	c2 08 00             	ret    $0x8
40d8dd:	56                   	push   %esi
40d8de:	8b f1                	mov    %ecx,%esi
40d8e0:	8b 46 1c             	mov    0x1c(%esi),%eax
40d8e3:	85 c0                	test   %eax,%eax
40d8e5:	57                   	push   %edi
40d8e6:	74 03                	je     0x40d8eb
40d8e8:	8b 40 1c             	mov    0x1c(%eax),%eax
40d8eb:	ff 74 24 0c          	push   0xc(%esp)
40d8ef:	50                   	push   %eax
40d8f0:	ff 15 50 08 4b 00    	call   *0x4b0850
40d8f6:	8b f8                	mov    %eax,%edi
40d8f8:	85 ff                	test   %edi,%edi
40d8fa:	75 12                	jne    0x40d90e
40d8fc:	ff 74 24 0c          	push   0xc(%esp)
40d900:	8b 06                	mov    (%esi),%eax
40d902:	8b ce                	mov    %esi,%ecx
40d904:	ff 50 54             	call   *0x54(%eax)
40d907:	85 c0                	test   %eax,%eax
40d909:	74 03                	je     0x40d90e
40d90b:	8b 78 20             	mov    0x20(%eax),%edi
40d90e:	8b 44 24 10          	mov    0x10(%esp),%eax
40d912:	89 38                	mov    %edi,(%eax)
40d914:	5f                   	pop    %edi
40d915:	5e                   	pop    %esi
40d916:	c2 08 00             	ret    $0x8
40d919:	ff 74 24 04          	push   0x4(%esp)
40d91d:	8b 01                	mov    (%ecx),%eax
40d91f:	ff 50 74             	call   *0x74(%eax)
40d922:	85 c0                	test   %eax,%eax
40d924:	74 15                	je     0x40d93b
40d926:	ff 74 24 10          	push   0x10(%esp)
40d92a:	ff 74 24 10          	push   0x10(%esp)
40d92e:	ff 74 24 10          	push   0x10(%esp)
40d932:	ff 70 1c             	push   0x1c(%eax)
40d935:	ff 15 98 08 4b 00    	call   *0x4b0898
40d93b:	c2 10 00             	ret    $0x10
40d93e:	b8 aa 35 48 00       	mov    $0x4835aa,%eax
40d943:	e8 34 a3 00 00       	call   0x417c7c
40d948:	51                   	push   %ecx
40d949:	51                   	push   %ecx