43a5bc:	ff 15 9c c0 4a 00    	call   *0x4ac09c
43a5c2:	85 c0                	test   %eax,%eax
43a5c4:	74 05                	je     0x43a5cb
43a5c6:	89 45 88             	mov    %eax,-0x78(%ebp)
43a5c9:	eb 02                	jmp    0x43a5cd
43a5cb:	8b c3                	mov    %ebx,%eax
43a5cd:	85 c0                	test   %eax,%eax
43a5cf:	75 2b                	jne    0x43a5fc
43a5d1:	66 83 7d d8 03       	cmpw   $0x3,-0x28(%ebp)
43a5d6:	75 24                	jne    0x43a5fc
43a5d8:	8b 45 dc             	mov    -0x24(%ebp),%eax
43a5db:	0f b7 08             	movzwl (%eax),%ecx
43a5de:	8d 41 fe             	lea    -0x2(%ecx),%eax
43a5e1:	66 83 f8 06          	cmp    $0x6,%ax
43a5e5:	77 15                	ja     0x43a5fc
43a5e7:	ff 34 8d e0 00 41 00 	push   0x4100e0(,%ecx,4)
43a5ee:	57                   	push   %edi
43a5ef:	ff 15 a0 c0 4a 00    	call   *0x4ac0a0
43a5f5:	85 c0                	test   %eax,%eax
43a5f7:	74 03                	je     0x43a5fc
43a5f9:	89 45 88             	mov    %eax,-0x78(%ebp)
43a5fc:	8d 4d 80             	lea    -0x80(%ebp),%ecx
43a5ff:	e8 d5 ef ff ff       	call   0x4395d9
43a604:	8b 4d a0             	mov    -0x60(%ebp),%ecx
43a607:	c1 e8 12             	shr    $0x12,%eax
43a60a:	83 e0 01             	and    $0x1,%eax
43a60d:	89 01                	mov    %eax,(%ecx)
43a60f:	0f 84 58 01 00 00    	je     0x43a76d
43a615:	8b 7d 84             	mov    -0x7c(%ebp),%edi
43a618:	8d 45 ac             	lea    -0x54(%ebp),%eax
43a61b:	50                   	push   %eax
43a61c:	57                   	push   %edi
43a61d:	89 5d ac             	mov    %ebx,-0x54(%ebp)
43a620:	89 7d 90             	mov    %edi,-0x70(%ebp)
43a623:	ff 15 58 c0 4a 00    	call   *0x4ac058
43a629:	85 c0                	test   %eax,%eax
43a62b:	74 03                	je     0x43a630
43a62d:	89 45 88             	mov    %eax,-0x78(%ebp)
43a630:	8b 45 ac             	mov    -0x54(%ebp),%eax
43a633:	89 45 a0             	mov    %eax,-0x60(%ebp)
43a636:	8d 45 a8             	lea    -0x58(%ebp),%eax
43a639:	50                   	push   %eax
43a63a:	57                   	push   %edi
43a63b:	89 5d a8             	mov    %ebx,-0x58(%ebp)
43a63e:	ff 15 54 c0 4a 00    	call   *0x4ac054
43a644:	85 c0                	test   %eax,%eax
43a646:	74 03                	je     0x43a64b
43a648:	89 45 88             	mov    %eax,-0x78(%ebp)
43a64b:	68 0a 20 26 00       	push   $0x26200a
43a650:	ff 75 a0             	push   -0x60(%ebp)
43a653:	8d 4d e0             	lea    -0x20(%ebp),%ecx
43a656:	ff 75 a8             	push   -0x58(%ebp)
43a659:	e8 9e ef ff ff       	call   0x4395fc
43a65e:	8d 45 e0             	lea    -0x20(%ebp),%eax
43a661:	50                   	push   %eax
43a662:	8d 8d 78 ff ff ff    	lea    -0x88(%ebp),%ecx
43a668:	e8 3b ef ff ff       	call   0x4395a8
43a66d:	83 4d a0 ff          	orl    $0xffffffff,-0x60(%ebp)
43a671:	8d 45 a0             	lea    -0x60(%ebp),%eax
43a674:	50                   	push   %eax
43a675:	8d 8d 5c ff ff ff    	lea    -0xa4(%ebp),%ecx
43a67b:	e8 a6 03 00 00       	call   0x43aa26
43a680:	8d 45 ac             	lea    -0x54(%ebp),%eax
43a683:	89 5d ac             	mov    %ebx,-0x54(%ebp)
43a686:	50                   	push   %eax
43a687:	57                   	push   %edi
43a688:	ff 15 58 c0 4a 00    	call   *0x4ac058
43a68e:	85 c0                	test   %eax,%eax
43a690:	74 03                	je     0x43a695
43a692:	89 45 88             	mov    %eax,-0x78(%ebp)
43a695:	8b 45 ac             	mov    -0x54(%ebp),%eax
43a698:	89 45 a0             	mov    %eax,-0x60(%ebp)
43a69b:	8d 45 a8             	lea    -0x58(%ebp),%eax
43a69e:	50                   	push   %eax
43a69f:	57                   	push   %edi
43a6a0:	89 5d a8             	mov    %ebx,-0x58(%ebp)
43a6a3:	ff 15 54 c0 4a 00    	call   *0x4ac054
43a6a9:	85 c0                	test   %eax,%eax
43a6ab:	74 03                	je     0x43a6b0
43a6ad:	89 45 88             	mov    %eax,-0x78(%ebp)
43a6b0:	8b 4d a0             	mov    -0x60(%ebp),%ecx
43a6b3:	8b 45 a8             	mov    -0x58(%ebp),%eax
43a6b6:	51                   	push   %ecx
43a6b7:	50                   	push   %eax
43a6b8:	53                   	push   %ebx
43a6b9:	53                   	push   %ebx
43a6ba:	ff b5 60 ff ff ff    	push   -0xa0(%ebp)
43a6c0:	89 9d 68 ff ff ff    	mov    %ebx,-0x98(%ebp)
43a6c6:	ff b5 78 ff ff ff    	push   -0x88(%ebp)
43a6cc:	89 9d 6c ff ff ff    	mov    %ebx,-0x94(%ebp)
43a6d2:	89 85 70 ff ff ff    	mov    %eax,-0x90(%ebp)
43a6d8:	89 8d 74 ff ff ff    	mov    %ecx,-0x8c(%ebp)
43a6de:	ff 15 40 c0 4a 00    	call   *0x4ac040
43a6e4:	85 c0                	test   %eax,%eax
43a6e6:	74 06                	je     0x43a6ee
43a6e8:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
43a6ee:	8d 45 ac             	lea    -0x54(%ebp),%eax
43a6f1:	89 5d ac             	mov    %ebx,-0x54(%ebp)
43a6f4:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
43a6f7:	50                   	push   %eax
43a6f8:	53                   	push   %ebx
43a6f9:	ff 15 58 c0 4a 00    	call   *0x4ac058
43a6ff:	8b 7d ac             	mov    -0x54(%ebp),%edi
43a702:	8d 45 a8             	lea    -0x58(%ebp),%eax
43a705:	83 65 a8 00          	andl   $0x0,-0x58(%ebp)
43a709:	50                   	push   %eax
43a70a:	53                   	push   %ebx
43a70b:	ff 15 54 c0 4a 00    	call   *0x4ac054
43a711:	51                   	push   %ecx
43a712:	51                   	push   %ecx
43a713:	33 c0                	xor    %eax,%eax
43a715:	50                   	push   %eax
43a716:	51                   	push   %ecx
43a717:	57                   	push   %edi
43a718:	ff 75 a8             	push   -0x58(%ebp)
43a71b:	51                   	push   %ecx
43a71c:	50                   	push   %eax
43a71d:	8d 85 68 ff ff ff    	lea    -0x98(%ebp),%eax
43a723:	50                   	push   %eax
43a724:	8d 45 80             	lea    -0x80(%ebp),%eax
43a727:	50                   	push   %eax
43a728:	8d 8d 78 ff ff ff    	lea    -0x88(%ebp),%ecx
43a72e:	e8 97 ed ff ff       	call   0x4394ca
43a733:	ff b5 60 ff ff ff    	push   -0xa0(%ebp)
43a739:	ff 15 18 c0 4a 00    	call   *0x4ac018
43a73f:	ff b5 78 ff ff ff    	push   -0x88(%ebp)
43a745:	ff 15 2c c0 4a 00    	call   *0x4ac02c
43a74b:	6a 00                	push   $0x0
43a74d:	8d 45 b0             	lea    -0x50(%ebp),%eax
43a750:	50                   	push   %eax
43a751:	56                   	push   %esi
43a752:	53                   	push   %ebx
43a753:	ff 15 a8 c0 4a 00    	call   *0x4ac0a8
43a759:	85 c0                	test   %eax,%eax
43a75b:	53                   	push   %ebx
43a75c:	0f 94 45 a7          	sete   -0x59(%ebp)
43a760:	ff 15 10 c0 4a 00    	call   *0x4ac010
43a766:	8a 45 a7             	mov    -0x59(%ebp),%al
43a769:	33 db                	xor    %ebx,%ebx
43a76b:	eb 23                	jmp    0x43a790
43a76d:	53                   	push   %ebx
43a76e:	8d 45 b0             	lea    -0x50(%ebp),%eax
43a771:	50                   	push   %eax
43a772:	8b 45 84             	mov    -0x7c(%ebp),%eax
43a775:	56                   	push   %esi
43a776:	50                   	push   %eax
43a777:	89 45 90             	mov    %eax,-0x70(%ebp)
43a77a:	ff 15 a8 c0 4a 00    	call   *0x4ac0a8
43a780:	85 c0                	test   %eax,%eax
43a782:	74 05                	je     0x43a789
43a784:	89 45 88             	mov    %eax,-0x78(%ebp)
43a787:	eb 02                	jmp    0x43a78b
43a789:	8b c3                	mov    %ebx,%eax
43a78b:	85 c0                	test   %eax,%eax
43a78d:	0f 94 c0             	sete   %al
43a790:	84 c0                	test   %al,%al
43a792:	74 05                	je     0x43a799
43a794:	8b 5e 08             	mov    0x8(%esi),%ebx
43a797:	eb 18                	jmp    0x43a7b1
43a799:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
43a79d:	74 12                	je     0x43a7b1
43a79f:	ff 76 08             	push   0x8(%esi)
43a7a2:	ff 15 5c 72 4a 00    	call   *0x4a725c
43a7a8:	89 5e 08             	mov    %ebx,0x8(%esi)
43a7ab:	89 5e 0c             	mov    %ebx,0xc(%esi)
43a7ae:	89 5e 10             	mov    %ebx,0x10(%esi)
43a7b1:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
43a7b5:	85 f6                	test   %esi,%esi
43a7b7:	74 10                	je     0x43a7c9
43a7b9:	8b 06                	mov    (%esi),%eax
43a7bb:	56                   	push   %esi
43a7bc:	8b 70 08             	mov    0x8(%eax),%esi
43a7bf:	8b ce                	mov    %esi,%ecx
43a7c1:	ff 15 2c 81 4a 00    	call   *0x4a812c
43a7c7:	ff d6                	call   *%esi
43a7c9:	8b 75 90             	mov    -0x70(%ebp),%esi
43a7cc:	56                   	push   %esi
43a7cd:	ff 15 10 c0 4a 00    	call   *0x4ac010
43a7d3:	8b c3                	mov    %ebx,%eax
43a7d5:	e8 db 5c 05 00       	call   0x4904b5
43a7da:	c2 0c 00             	ret    $0xc
43a7dd:	6a 14                	push   $0x14
43a7df:	68 10 96 49 00       	push   $0x499610
43a7e4:	e8 ef 60 05 00       	call   0x4908d8
43a7e9:	89 55 dc             	mov    %edx,-0x24(%ebp)
43a7ec:	89 4d e0             	mov    %ecx,-0x20(%ebp)
43a7ef:	33 f6                	xor    %esi,%esi
43a7f1:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
43a7f4:	89 33                	mov    %esi,(%ebx)
43a7f6:	8b 7d 10             	mov    0x10(%ebp),%edi
43a7f9:	39 37                	cmp    %esi,(%edi)
43a7fb:	74 0a                	je     0x43a807
43a7fd:	ff 37                	push   (%edi)
43a7ff:	ff 15 5c 72 4a 00    	call   *0x4a725c
43a805:	89 37                	mov    %esi,(%edi)
43a807:	ff 75 14             	push   0x14(%ebp)
43a80a:	6a 64                	push   $0x64
43a80c:	ff 15 6c 7e 4a 00    	call   *0x4a7e6c
43a812:	89 75 e4             	mov    %esi,-0x1c(%ebp)
43a815:	39 35 e8 59 4a 00    	cmp    %esi,0x4a59e8
43a81b:	75 31                	jne    0x43a84e
43a81d:	89 75 fc             	mov    %esi,-0x4(%ebp)
43a820:	53                   	push   %ebx
43a821:	ff 75 0c             	push   0xc(%ebp)
43a824:	ff 75 08             	push   0x8(%ebp)
43a827:	8b 55 dc             	mov    -0x24(%ebp),%edx
43a82a:	8b 4d e0             	mov    -0x20(%ebp),%ecx
43a82d:	e8 cb fb ff ff       	call   0x43a3fd
43a832:	89 45 e4             	mov    %eax,-0x1c(%ebp)
43a835:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
43a83c:	eb 10                	jmp    0x43a84e
43a83e:	33 c0                	xor    %eax,%eax
43a840:	40                   	inc    %eax
43a841:	c3                   	ret
43a842:	8b 65 e8             	mov    -0x18(%ebp),%esp
43a845:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
43a84c:	33 f6                	xor    %esi,%esi
43a84e:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
43a852:	74 33                	je     0x43a887
43a854:	8b 4d dc             	mov    -0x24(%ebp),%ecx
43a857:	ba 3c 38 41 00       	mov    $0x41383c,%edx
43a85c:	8b 04 b1             	mov    (%ecx,%esi,4),%eax
43a85f:	3b 04 b2             	cmp    (%edx,%esi,4),%eax
43a862:	75 11                	jne    0x43a875
43a864:	46                   	inc    %esi
43a865:	83 fe 04             	cmp    $0x4,%esi
43a868:	75 f2                	jne    0x43a85c
43a86a:	8b 55 10             	mov    0x10(%ebp),%edx
43a86d:	8b 4d e0             	mov    -0x20(%ebp),%ecx
43a870:	e8 27 00 00 00       	call   0x43a89c
43a875:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
43a879:	74 0c                	je     0x43a887
43a87b:	51                   	push   %ecx
43a87c:	8b 55 14             	mov    0x14(%ebp),%edx
43a87f:	8b 4d e0             	mov    -0x20(%ebp),%ecx
43a882:	e8 2f 01 00 00       	call   0x43a9b6
43a887:	8b 45 e4             	mov    -0x1c(%ebp),%eax
43a88a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
43a88d:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
43a894:	59                   	pop    %ecx
43a895:	5f                   	pop    %edi
43a896:	5e                   	pop    %esi
43a897:	5b                   	pop    %ebx
43a898:	c9                   	leave
43a899:	c2 18 00             	ret    $0x18
43a89c:	6a 1c                	push   $0x1c
43a89e:	b8 cf 2a 49 00       	mov    $0x492acf,%eax
43a8a3:	e8 2b 5c 05 00       	call   0x4904d3
43a8a8:	89 55 ec             	mov    %edx,-0x14(%ebp)
43a8ab:	8b f1                	mov    %ecx,%esi
43a8ad:	8d 4d d8             	lea    -0x28(%ebp),%ecx
43a8b0:	33 ff                	xor    %edi,%edi
43a8b2:	ff 15 5c 75 4a 00    	call   *0x4a755c
43a8b8:	57                   	push   %edi
43a8b9:	6a 20                	push   $0x20
43a8bb:	56                   	push   %esi
43a8bc:	8d 4d d8             	lea    -0x28(%ebp),%ecx
43a8bf:	89 7d fc             	mov    %edi,-0x4(%ebp)
43a8c2:	ff 15 78 75 4a 00    	call   *0x4a7578
43a8c8:	85 c0                	test   %eax,%eax
43a8ca:	0f 84 d5 00 00 00    	je     0x43a9a5
43a8d0:	8d 4d d8             	lea    -0x28(%ebp),%ecx
43a8d3:	ff 15 48 77 4a 00    	call   *0x4a7748
43a8d9:	8b f0                	mov    %eax,%esi
43a8db:	83 fe 04             	cmp    $0x4,%esi
43a8de:	0f 86 b8 00 00 00    	jbe    0x43a99c
43a8e4:	56                   	push   %esi
43a8e5:	57                   	push   %edi
43a8e6:	ff 15 f4 71 4a 00    	call   *0x4a71f4
43a8ec:	8b d8                	mov    %eax,%ebx
43a8ee:	85 db                	test   %ebx,%ebx
43a8f0:	0f 84 a6 00 00 00    	je     0x43a99c
43a8f6:	56                   	push   %esi
43a8f7:	53                   	push   %ebx
43a8f8:	8d 4d d8             	lea    -0x28(%ebp),%ecx
43a8fb:	ff 15 4c 77 4a 00    	call   *0x4a774c
43a901:	3b c6                	cmp    %esi,%eax
43a903:	0f 85 8c 00 00 00    	jne    0x43a995
43a909:	66 8b 03             	mov    (%ebx),%ax
43a90c:	b9 0c 01 41 00       	mov    $0x41010c,%ecx
43a911:	66 3b 01             	cmp    (%ecx),%ax
43a914:	75 7f                	jne    0x43a995
43a916:	6a 02                	push   $0x2
43a918:	5a                   	pop    %edx
43a919:	8d 46 fc             	lea    -0x4(%esi),%eax
43a91c:	3b c2                	cmp    %edx,%eax
43a91e:	76 75                	jbe    0x43a995
43a920:	8d 0c 1a             	lea    (%edx,%ebx,1),%ecx
43a923:	66 8b 01             	mov    (%ecx),%ax
43a926:	89 4d e8             	mov    %ecx,-0x18(%ebp)
43a929:	b9 08 01 41 00       	mov    $0x410108,%ecx
43a92e:	66 3b 01             	cmp    (%ecx),%ax
43a931:	8d 0c 1a             	lea    (%edx,%ebx,1),%ecx
43a934:	74 5f                	je     0x43a995
43a936:	0f b6 49 02          	movzbl 0x2(%ecx),%ecx
43a93a:	0f b6 44 1a 03       	movzbl 0x3(%edx,%ebx,1),%eax
43a93f:	c1 e1 08             	shl    $0x8,%ecx
43a942:	83 c0 02             	add    $0x2,%eax
43a945:	03 c8                	add    %eax,%ecx
43a947:	8d 04 1a             	lea    (%edx,%ebx,1),%eax
43a94a:	66 8b 00             	mov    (%eax),%ax
43a94d:	89 4d f0             	mov    %ecx,-0x10(%ebp)
43a950:	b9 04 01 41 00       	mov    $0x410104,%ecx
43a955:	66 3b 01             	cmp    (%ecx),%ax
43a958:	8b 4d f0             	mov    -0x10(%ebp),%ecx
43a95b:	74 0b                	je     0x43a968
43a95d:	03 d1                	add    %ecx,%edx
43a95f:	8d 46 fc             	lea    -0x4(%esi),%eax
43a962:	3b d0                	cmp    %eax,%edx
43a964:	72 ba                	jb     0x43a920
43a966:	eb 2d                	jmp    0x43a995
43a968:	3b f1                	cmp    %ecx,%esi
43a96a:	72 29                	jb     0x43a995
43a96c:	2b f1                	sub    %ecx,%esi
43a96e:	3b d6                	cmp    %esi,%edx
43a970:	73 23                	jae    0x43a995
43a972:	51                   	push   %ecx
43a973:	57                   	push   %edi
43a974:	ff 15 58 72 4a 00    	call   *0x4a7258
43a97a:	8b 4d ec             	mov    -0x14(%ebp),%ecx
43a97d:	89 01                	mov    %eax,(%ecx)
43a97f:	85 c0                	test   %eax,%eax
43a981:	74 12                	je     0x43a995
43a983:	ff 75 f0             	push   -0x10(%ebp)
43a986:	ff 75 e8             	push   -0x18(%ebp)
43a989:	50                   	push   %eax
43a98a:	e8 9e 66 05 00       	call   0x49102d
43a98f:	33 ff                	xor    %edi,%edi
43a991:	83 c4 0c             	add    $0xc,%esp
43a994:	47                   	inc    %edi
43a995:	53                   	push   %ebx
43a996:	ff 15 f0 71 4a 00    	call   *0x4a71f0
43a99c:	8d 4d d8             	lea    -0x28(%ebp),%ecx
43a99f:	ff 15 50 77 4a 00    	call   *0x4a7750
43a9a5:	8d 4d d8             	lea    -0x28(%ebp),%ecx
43a9a8:	ff 15 60 75 4a 00    	call   *0x4a7560
43a9ae:	8b c7                	mov    %edi,%eax
43a9b0:	e8 ec 5a 05 00       	call   0x4904a1
43a9b5:	c3                   	ret
43a9b6:	6a 04                	push   $0x4
43a9b8:	b8 ea 2a 49 00       	mov    $0x492aea,%eax
43a9bd:	e8 11 5b 05 00       	call   0x4904d3
43a9c2:	8b da                	mov    %edx,%ebx
43a9c4:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
43a9c8:	8d 45 f0             	lea    -0x10(%ebp),%eax
43a9cb:	50                   	push   %eax
43a9cc:	32 d2                	xor    %dl,%dl
43a9ce:	e8 7f f7 01 00       	call   0x45a152
43a9d3:	85 c0                	test   %eax,%eax
43a9d5:	78 2c                	js     0x43aa03