4054ac:	ff 36                	push   (%esi)
4054ae:	ff 15 60 d6 48 00    	call   *0x48d660
4054b4:	83 66 24 00          	andl   $0x0,0x24(%esi)
4054b8:	8b 47 04             	mov    0x4(%edi),%eax
4054bb:	85 c0                	test   %eax,%eax
4054bd:	74 0f                	je     0x4054ce
4054bf:	89 70 24             	mov    %esi,0x24(%eax)
4054c2:	ff 47 0c             	incl   0xc(%edi)
4054c5:	89 77 04             	mov    %esi,0x4(%edi)
4054c8:	5e                   	pop    %esi
4054c9:	5f                   	pop    %edi
4054ca:	5d                   	pop    %ebp
4054cb:	c2 04 00             	ret    $0x4
4054ce:	89 37                	mov    %esi,(%edi)
4054d0:	eb f0                	jmp    0x4054c2
4054d2:	33 f6                	xor    %esi,%esi
4054d4:	eb c2                	jmp    0x405498
4054d6:	55                   	push   %ebp
4054d7:	8b ec                	mov    %esp,%ebp
4054d9:	83 ec 44             	sub    $0x44,%esp
4054dc:	53                   	push   %ebx
4054dd:	56                   	push   %esi
4054de:	8b d9                	mov    %ecx,%ebx
4054e0:	57                   	push   %edi
4054e1:	8d 4d c0             	lea    -0x40(%ebp),%ecx
4054e4:	89 5d f4             	mov    %ebx,-0xc(%ebp)
4054e7:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
4054ee:	e8 78 09 00 00       	call   0x405e6b
4054f3:	8b 75 08             	mov    0x8(%ebp),%esi
4054f6:	8d 45 ff             	lea    -0x1(%ebp),%eax
4054f9:	50                   	push   %eax
4054fa:	8d 45 f8             	lea    -0x8(%ebp),%eax
4054fd:	50                   	push   %eax
4054fe:	56                   	push   %esi
4054ff:	8b cb                	mov    %ebx,%ecx
405501:	c7 45 c0 01 00 00 00 	movl   $0x1,-0x40(%ebp)
405508:	e8 a3 01 00 00       	call   0x4056b0
40550d:	85 c0                	test   %eax,%eax
40550f:	0f 88 8b 00 00 00    	js     0x4055a0
405515:	8b 4e 04             	mov    0x4(%esi),%ecx
405518:	8b 45 f8             	mov    -0x8(%ebp),%eax
40551b:	8b 04 81             	mov    (%ecx,%eax,4),%eax
40551e:	66 83 78 08 7f       	cmpw   $0x7f,0x8(%eax)
405523:	0f 85 9f 30 07 00    	jne    0x4785c8
405529:	8b 55 0c             	mov    0xc(%ebp),%edx
40552c:	8b 7d c8             	mov    -0x38(%ebp),%edi
40552f:	8b 32                	mov    (%edx),%esi
405531:	4e                   	dec    %esi
405532:	33 c0                	xor    %eax,%eax
405534:	89 75 0c             	mov    %esi,0xc(%ebp)
405537:	89 75 c4             	mov    %esi,-0x3c(%ebp)
40553a:	8b c8                	mov    %eax,%ecx
40553c:	8a d8                	mov    %al,%bl
40553e:	8b 02                	mov    (%edx),%eax
405540:	50                   	push   %eax
405541:	8d 70 01             	lea    0x1(%eax),%esi
405544:	89 75 08             	mov    %esi,0x8(%ebp)
405547:	89 32                	mov    %esi,(%edx)
405549:	e8 fa 08 00 00       	call   0x405e48
40554e:	85 c0                	test   %eax,%eax
405550:	74 27                	je     0x405579
405552:	84 db                	test   %bl,%bl
405554:	75 23                	jne    0x405579
405556:	8b 40 04             	mov    0x4(%eax),%eax
405559:	33 f6                	xor    %esi,%esi
40555b:	8b 00                	mov    (%eax),%eax
40555d:	66 39 70 08          	cmp    %si,0x8(%eax)
405561:	75 db                	jne    0x40553e
405563:	8b 00                	mov    (%eax),%eax
405565:	83 e8 09             	sub    $0x9,%eax
405568:	74 50                	je     0x4055ba
40556a:	48                   	dec    %eax
40556b:	75 d1                	jne    0x40553e
40556d:	85 c9                	test   %ecx,%ecx
40556f:	75 46                	jne    0x4055b7
405571:	8b 7d 08             	mov    0x8(%ebp),%edi
405574:	fe c3                	inc    %bl
405576:	4f                   	dec    %edi
405577:	eb c5                	jmp    0x40553e
405579:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
40557d:	8b 75 0c             	mov    0xc(%ebp),%esi
405580:	8b 5d f4             	mov    -0xc(%ebp),%ebx
405583:	89 7d c8             	mov    %edi,-0x38(%ebp)
405586:	0f 84 4f 30 07 00    	je     0x4785db
40558c:	8d 46 01             	lea    0x1(%esi),%eax
40558f:	89 02                	mov    %eax,(%edx)
405591:	8d 45 c0             	lea    -0x40(%ebp),%eax
405594:	50                   	push   %eax
405595:	8d 8b 60 01 00 00    	lea    0x160(%ebx),%ecx
40559b:	e8 e5 08 00 00       	call   0x405e85
4055a0:	8d 4d e0             	lea    -0x20(%ebp),%ecx
4055a3:	e8 78 d6 00 00       	call   0x412c20
4055a8:	8d 4d d0             	lea    -0x30(%ebp),%ecx
4055ab:	e8 70 d6 00 00       	call   0x412c20
4055b0:	5f                   	pop    %edi
4055b1:	5e                   	pop    %esi
4055b2:	5b                   	pop    %ebx
4055b3:	c9                   	leave
4055b4:	c2 08 00             	ret    $0x8
4055b7:	49                   	dec    %ecx
4055b8:	eb 84                	jmp    0x40553e
4055ba:	41                   	inc    %ecx
4055bb:	eb 81                	jmp    0x40553e
4055bd:	e8 3e 01 00 00       	call   0x405700
4055c2:	84 c0                	test   %al,%al
4055c4:	74 0f                	je     0x4055d5
4055c6:	8b ca                	mov    %edx,%ecx
4055c8:	e8 33 01 00 00       	call   0x405700
4055cd:	84 c0                	test   %al,%al
4055cf:	74 04                	je     0x4055d5
4055d1:	33 c0                	xor    %eax,%eax
4055d3:	40                   	inc    %eax
4055d4:	c3                   	ret
4055d5:	33 c0                	xor    %eax,%eax
4055d7:	c3                   	ret
4055d8:	e8 23 01 00 00       	call   0x405700
4055dd:	84 c0                	test   %al,%al
4055df:	75 0e                	jne    0x4055ef
4055e1:	8b ca                	mov    %edx,%ecx
4055e3:	e8 18 01 00 00       	call   0x405700
4055e8:	84 c0                	test   %al,%al
4055ea:	75 03                	jne    0x4055ef
4055ec:	33 c0                	xor    %eax,%eax
4055ee:	c3                   	ret
4055ef:	33 c0                	xor    %eax,%eax
4055f1:	40                   	inc    %eax
4055f2:	c3                   	ret
4055f3:	55                   	push   %ebp
4055f4:	8b ec                	mov    %esp,%ebp
4055f6:	83 ec 0c             	sub    $0xc,%esp
4055f9:	56                   	push   %esi
4055fa:	8b f1                	mov    %ecx,%esi
4055fc:	57                   	push   %edi
4055fd:	8d be 60 01 00 00    	lea    0x160(%esi),%edi
405603:	8b cf                	mov    %edi,%ecx
405605:	e8 3a 01 00 00       	call   0x405744
40560a:	ff 70 04             	push   0x4(%eax)
40560d:	e8 36 08 00 00       	call   0x405e48
405612:	8d 4d ff             	lea    -0x1(%ebp),%ecx
405615:	51                   	push   %ecx
405616:	8d 4d f8             	lea    -0x8(%ebp),%ecx
405619:	51                   	push   %ecx
40561a:	50                   	push   %eax
40561b:	8b ce                	mov    %esi,%ecx
40561d:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
405624:	e8 87 00 00 00       	call   0x4056b0
405629:	85 c0                	test   %eax,%eax
40562b:	78 16                	js     0x405643
40562d:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
405631:	8b cf                	mov    %edi,%ecx
405633:	74 14                	je     0x405649
405635:	e8 0a 01 00 00       	call   0x405744
40563a:	8b 48 04             	mov    0x4(%eax),%ecx
40563d:	8b 45 08             	mov    0x8(%ebp),%eax
405640:	41                   	inc    %ecx
405641:	89 08                	mov    %ecx,(%eax)
405643:	5f                   	pop    %edi
405644:	5e                   	pop    %esi
405645:	c9                   	leave
405646:	c2 04 00             	ret    $0x4
405649:	e8 d4 87 00 00       	call   0x40de22
40564e:	eb f3                	jmp    0x405643
405650:	55                   	push   %ebp
405651:	8b ec                	mov    %esp,%ebp
405653:	51                   	push   %ecx
405654:	51                   	push   %ecx
405655:	56                   	push   %esi
405656:	57                   	push   %edi
405657:	8b 7d 08             	mov    0x8(%ebp),%edi
40565a:	8d 45 ff             	lea    -0x1(%ebp),%eax
40565d:	50                   	push   %eax
40565e:	8d 45 f8             	lea    -0x8(%ebp),%eax
405661:	50                   	push   %eax
405662:	57                   	push   %edi
405663:	8b f1                	mov    %ecx,%esi
405665:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
40566c:	e8 3f 00 00 00       	call   0x4056b0
405671:	85 c0                	test   %eax,%eax
405673:	78 2e                	js     0x4056a3
405675:	8b 4f 04             	mov    0x4(%edi),%ecx
405678:	8b 45 f8             	mov    -0x8(%ebp),%eax
40567b:	8b 04 81             	mov    (%ecx,%eax,4),%eax
40567e:	66 83 78 08 7f       	cmpw   $0x7f,0x8(%eax)
405683:	0f 85 2c 2f 07 00    	jne    0x4785b5
405689:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
40568d:	8d 8e 60 01 00 00    	lea    0x160(%esi),%ecx
405693:	75 14                	jne    0x4056a9
405695:	e8 aa 00 00 00       	call   0x405744
40569a:	8b 48 04             	mov    0x4(%eax),%ecx
40569d:	8b 45 0c             	mov    0xc(%ebp),%eax
4056a0:	41                   	inc    %ecx
4056a1:	89 08                	mov    %ecx,(%eax)
4056a3:	5f                   	pop    %edi
4056a4:	5e                   	pop    %esi
4056a5:	c9                   	leave
4056a6:	c2 08 00             	ret    $0x8
4056a9:	e8 74 87 00 00       	call   0x40de22
4056ae:	eb f3                	jmp    0x4056a3
4056b0:	55                   	push   %ebp
4056b1:	8b ec                	mov    %esp,%ebp
4056b3:	83 ec 18             	sub    $0x18,%esp
4056b6:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
4056ba:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
4056be:	56                   	push   %esi
4056bf:	83 ce ff             	or     $0xffffffff,%esi
4056c2:	56                   	push   %esi
4056c3:	8d 45 ec             	lea    -0x14(%ebp),%eax
4056c6:	50                   	push   %eax
4056c7:	ff 75 0c             	push   0xc(%ebp)
4056ca:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
4056d1:	ff 75 08             	push   0x8(%ebp)
4056d4:	e8 57 a7 00 00       	call   0x40fe30
4056d9:	85 c0                	test   %eax,%eax
4056db:	78 14                	js     0x4056f1
4056dd:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4056e0:	e8 1b 00 00 00       	call   0x405700
4056e5:	84 c0                	test   %al,%al
4056e7:	8b 45 10             	mov    0x10(%ebp),%eax
4056ea:	0f 95 c1             	setne  %cl
4056ed:	88 08                	mov    %cl,(%eax)
4056ef:	33 f6                	xor    %esi,%esi
4056f1:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4056f4:	e8 27 d5 00 00       	call   0x412c20
4056f9:	8b c6                	mov    %esi,%eax
4056fb:	5e                   	pop    %esi
4056fc:	c9                   	leave
4056fd:	c2 0c 00             	ret    $0xc
405700:	8b 41 0c             	mov    0xc(%ecx),%eax
405703:	48                   	dec    %eax
405704:	74 21                	je     0x405727
405706:	48                   	dec    %eax
405707:	0f 84 f2 f6 06 00    	je     0x474dff
40570d:	48                   	dec    %eax
40570e:	0f 84 db f6 06 00    	je     0x474def
405714:	48                   	dec    %eax
405715:	74 20                	je     0x405737
405717:	83 e8 03             	sub    $0x3,%eax
40571a:	74 12                	je     0x40572e
40571c:	48                   	dec    %eax
40571d:	48                   	dec    %eax
40571e:	0f 85 b9 f6 06 00    	jne    0x474ddd
405724:	8a 01                	mov    (%ecx),%al
405726:	c3                   	ret
405727:	83 39 00             	cmpl   $0x0,(%ecx)
40572a:	0f 95 c0             	setne  %al
40572d:	c3                   	ret
40572e:	33 c0                	xor    %eax,%eax
405730:	39 01                	cmp    %eax,(%ecx)
405732:	e9 b4 f6 06 00       	jmp    0x474deb
405737:	8b 49 08             	mov    0x8(%ecx),%ecx
40573a:	33 c0                	xor    %eax,%eax
40573c:	39 41 04             	cmp    %eax,0x4(%ecx)
40573f:	e9 a7 f6 06 00       	jmp    0x474deb
405744:	80 79 09 00          	cmpb   $0x0,0x9(%ecx)
405748:	8b 41 04             	mov    0x4(%ecx),%eax
40574b:	75 01                	jne    0x40574e
40574d:	c3                   	ret
40574e:	8b 40 30             	mov    0x30(%eax),%eax
405751:	c3                   	ret
405752:	55                   	push   %ebp
405753:	8b ec                	mov    %esp,%ebp
405755:	51                   	push   %ecx
405756:	53                   	push   %ebx
405757:	33 db                	xor    %ebx,%ebx
405759:	56                   	push   %esi
40575a:	8b 75 08             	mov    0x8(%ebp),%esi
40575d:	8a d3                	mov    %bl,%dl
40575f:	8b 06                	mov    (%esi),%eax
405761:	50                   	push   %eax
405762:	8d 48 01             	lea    0x1(%eax),%ecx
405765:	89 0e                	mov    %ecx,(%esi)
405767:	e8 dc 06 00 00       	call   0x405e48
40576c:	85 c0                	test   %eax,%eax
40576e:	74 1b                	je     0x40578b
405770:	49                   	dec    %ecx
405771:	89 0d 54 12 4c 00    	mov    %ecx,0x4c1254
405777:	8b 40 04             	mov    0x4(%eax),%eax
40577a:	8b 00                	mov    (%eax),%eax
40577c:	66 39 58 08          	cmp    %bx,0x8(%eax)
405780:	75 05                	jne    0x405787
405782:	83 38 21             	cmpl   $0x21,(%eax)
405785:	74 0d                	je     0x405794
405787:	84 d2                	test   %dl,%dl
405789:	74 d4                	je     0x40575f
40578b:	5e                   	pop    %esi
40578c:	33 c0                	xor    %eax,%eax
40578e:	5b                   	pop    %ebx
40578f:	59                   	pop    %ecx
405790:	5d                   	pop    %ebp
405791:	c2 04 00             	ret    $0x4
405794:	b2 01                	mov    $0x1,%dl
405796:	eb ef                	jmp    0x405787
405798:	55                   	push   %ebp
405799:	8b ec                	mov    %esp,%ebp
40579b:	83 ec 1c             	sub    $0x1c,%esp
40579e:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
4057a1:	53                   	push   %ebx
4057a2:	56                   	push   %esi
4057a3:	57                   	push   %edi
4057a4:	e8 4e 80 00 00       	call   0x40d7f7
4057a9:	33 d2                	xor    %edx,%edx
4057ab:	42                   	inc    %edx
4057ac:	33 f6                	xor    %esi,%esi
4057ae:	52                   	push   %edx
4057af:	42                   	inc    %edx
4057b0:	89 55 f8             	mov    %edx,-0x8(%ebp)
4057b3:	e8 90 06 00 00       	call   0x405e48
4057b8:	8b d8                	mov    %eax,%ebx
4057ba:	85 db                	test   %ebx,%ebx
4057bc:	0f 84 9a 00 00 00    	je     0x40585c
4057c2:	8d 4a ff             	lea    -0x1(%edx),%ecx
4057c5:	89 0d 54 12 4c 00    	mov    %ecx,0x4c1254
4057cb:	8b 4b 04             	mov    0x4(%ebx),%ecx
4057ce:	8b fe                	mov    %esi,%edi
4057d0:	8b 01                	mov    (%ecx),%eax
4057d2:	66 39 70 08          	cmp    %si,0x8(%eax)
4057d6:	75 d6                	jne    0x4057ae
4057d8:	83 38 20             	cmpl   $0x20,(%eax)
4057db:	74 05                	je     0x4057e2
4057dd:	83 38 2b             	cmpl   $0x2b,(%eax)
4057e0:	75 cc                	jne    0x4057ae
4057e2:	83 38 2b             	cmpl   $0x2b,(%eax)
4057e5:	0f 84 91 06 07 00    	je     0x475e7c
4057eb:	33 c0                	xor    %eax,%eax
4057ed:	88 45 fc             	mov    %al,-0x4(%ebp)
4057f0:	8b 44 b9 04          	mov    0x4(%ecx,%edi,4),%eax
4057f4:	83 ce ff             	or     $0xffffffff,%esi
4057f7:	66 83 78 08 34       	cmpw   $0x34,0x8(%eax)
4057fc:	0f 85 82 00 00 00    	jne    0x405884
405802:	ff 30                	push   (%eax)
405804:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
405807:	e8 e1 16 00 00       	call   0x406eed
40580c:	83 ec 10             	sub    $0x10,%esp
40580f:	8b cc                	mov    %esp,%ecx
405811:	ff 75 e4             	push   -0x1c(%ebp)
405814:	e8 00 76 00 00       	call   0x40ce19
405819:	b9 98 12 4c 00       	mov    $0x4c1298,%ecx
40581e:	e8 0d 65 00 00       	call   0x40bd30
405823:	85 c0                	test   %eax,%eax
405825:	75 52                	jne    0x405879
405827:	8b 43 04             	mov    0x4(%ebx),%eax
40582a:	8b 44 b8 08          	mov    0x8(%eax,%edi,4),%eax
40582e:	66 83 78 08 47       	cmpw   $0x47,0x8(%eax)
405833:	75 4f                	jne    0x405884
405835:	ff 75 fc             	push   -0x4(%ebp)
405838:	8d 45 f8             	lea    -0x8(%ebp),%eax
40583b:	50                   	push   %eax
40583c:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40583f:	50                   	push   %eax
405840:	8d 45 f4             	lea    -0xc(%ebp),%eax