4046da:	8b f1                	mov    %ecx,%esi
4046dc:	89 14 24             	mov    %edx,(%esp)
4046df:	8b f8                	mov    %eax,%edi
4046e1:	85 f6                	test   %esi,%esi
4046e3:	7f 09                	jg     0x4046ee
4046e5:	8b c7                	mov    %edi,%eax
4046e7:	e8 84 fe ff ff       	call   0x404570
4046ec:	eb 5f                	jmp    0x40474d
4046ee:	8d 6e 01             	lea    0x1(%esi),%ebp
4046f1:	81 fd ff 07 00 00    	cmp    $0x7ff,%ebp
4046f7:	7d 28                	jge    0x404721
4046f9:	56                   	push   %esi
4046fa:	8d 44 24 08          	lea    0x8(%esp),%eax
4046fe:	8b 4c 24 04          	mov    0x4(%esp),%ecx
404702:	ba ff 0f 00 00       	mov    $0xfff,%edx
404707:	e8 84 ff ff ff       	call   0x404690
40470c:	8b d8                	mov    %eax,%ebx
40470e:	85 db                	test   %ebx,%ebx
404710:	7c 0f                	jl     0x404721
404712:	8d 54 24 04          	lea    0x4(%esp),%edx
404716:	8b c7                	mov    %edi,%eax
404718:	8b cb                	mov    %ebx,%ecx
40471a:	e8 41 ff ff ff       	call   0x404660
40471f:	eb 2c                	jmp    0x40474d
404721:	8b dd                	mov    %ebp,%ebx
404723:	03 db                	add    %ebx,%ebx
404725:	8b c7                	mov    %edi,%eax
404727:	8b d3                	mov    %ebx,%edx
404729:	e8 8e 04 00 00       	call   0x404bbc
40472e:	56                   	push   %esi
40472f:	8b 07                	mov    (%edi),%eax
404731:	8b 4c 24 04          	mov    0x4(%esp),%ecx
404735:	8b d3                	mov    %ebx,%edx
404737:	e8 54 ff ff ff       	call   0x404690
40473c:	8b d8                	mov    %eax,%ebx
40473e:	85 db                	test   %ebx,%ebx
404740:	7d 02                	jge    0x404744
404742:	33 db                	xor    %ebx,%ebx
404744:	8b c7                	mov    %edi,%eax
404746:	8b d3                	mov    %ebx,%edx
404748:	e8 6f 04 00 00       	call   0x404bbc
40474d:	81 c4 04 10 00 00    	add    $0x1004,%esp
404753:	5d                   	pop    %ebp
404754:	5f                   	pop    %edi
404755:	5e                   	pop    %esi
404756:	5b                   	pop    %ebx
404757:	c3                   	ret
404758:	52                   	push   %edx
404759:	89 e2                	mov    %esp,%edx
40475b:	b9 01 00 00 00       	mov    $0x1,%ecx
404760:	e8 fb fe ff ff       	call   0x404660
404765:	5a                   	pop    %edx
404766:	c3                   	ret
404767:	90                   	nop
404768:	31 c9                	xor    %ecx,%ecx
40476a:	85 d2                	test   %edx,%edx
40476c:	74 21                	je     0x40478f
40476e:	52                   	push   %edx
40476f:	3a 0a                	cmp    (%edx),%cl
404771:	74 17                	je     0x40478a
404773:	3a 4a 01             	cmp    0x1(%edx),%cl
404776:	74 11                	je     0x404789
404778:	3a 4a 02             	cmp    0x2(%edx),%cl
40477b:	74 0b                	je     0x404788
40477d:	3a 4a 03             	cmp    0x3(%edx),%cl
404780:	74 05                	je     0x404787
404782:	83 c2 04             	add    $0x4,%edx
404785:	eb e8                	jmp    0x40476f
404787:	42                   	inc    %edx
404788:	42                   	inc    %edx
404789:	42                   	inc    %edx
40478a:	89 d1                	mov    %edx,%ecx
40478c:	5a                   	pop    %edx
40478d:	29 d1                	sub    %edx,%ecx
40478f:	e9 cc fe ff ff       	jmp    0x404660
404794:	c3                   	ret
404795:	8d 40 00             	lea    0x0(%eax),%eax
404798:	31 c9                	xor    %ecx,%ecx
40479a:	85 d2                	test   %edx,%edx
40479c:	74 2d                	je     0x4047cb
40479e:	52                   	push   %edx
40479f:	66 3b 0a             	cmp    (%edx),%cx
4047a2:	74 20                	je     0x4047c4
4047a4:	66 3b 4a 02          	cmp    0x2(%edx),%cx
4047a8:	74 17                	je     0x4047c1
4047aa:	66 3b 4a 04          	cmp    0x4(%edx),%cx
4047ae:	74 0e                	je     0x4047be
4047b0:	66 3b 4a 06          	cmp    0x6(%edx),%cx
4047b4:	74 05                	je     0x4047bb
4047b6:	83 c2 08             	add    $0x8,%edx
4047b9:	eb e4                	jmp    0x40479f
4047bb:	83 c2 02             	add    $0x2,%edx
4047be:	83 c2 02             	add    $0x2,%edx
4047c1:	83 c2 02             	add    $0x2,%edx
4047c4:	89 d1                	mov    %edx,%ecx
4047c6:	5a                   	pop    %edx
4047c7:	29 d1                	sub    %edx,%ecx
4047c9:	d1 e9                	shr    $1,%ecx
4047cb:	e9 fc fe ff ff       	jmp    0x4046cc
4047d0:	c3                   	ret
4047d1:	8d 40 00             	lea    0x0(%eax),%eax
4047d4:	31 c9                	xor    %ecx,%ecx
4047d6:	8a 0a                	mov    (%edx),%cl
4047d8:	42                   	inc    %edx
4047d9:	e9 82 fe ff ff       	jmp    0x404660
4047de:	c3                   	ret
4047df:	90                   	nop
4047e0:	57                   	push   %edi
4047e1:	50                   	push   %eax
4047e2:	51                   	push   %ecx
4047e3:	89 d7                	mov    %edx,%edi
4047e5:	31 c0                	xor    %eax,%eax
4047e7:	f2 ae                	repnz scas %es:(%edi),%al
4047e9:	75 02                	jne    0x4047ed
4047eb:	f7 d1                	not    %ecx
4047ed:	58                   	pop    %eax
4047ee:	01 c1                	add    %eax,%ecx
4047f0:	58                   	pop    %eax
4047f1:	5f                   	pop    %edi
4047f2:	e9 69 fe ff ff       	jmp    0x404660
4047f7:	c3                   	ret
4047f8:	31 c9                	xor    %ecx,%ecx
4047fa:	85 d2                	test   %edx,%edx
4047fc:	74 05                	je     0x404803
4047fe:	8b 4a fc             	mov    -0x4(%edx),%ecx
404801:	d1 e9                	shr    $1,%ecx
404803:	e9 c4 fe ff ff       	jmp    0x4046cc
404808:	c3                   	ret
404809:	8d 40 00             	lea    0x0(%eax),%eax
40480c:	53                   	push   %ebx
40480d:	85 d2                	test   %edx,%edx
40480f:	74 18                	je     0x404829
404811:	8b 5a fc             	mov    -0x4(%edx),%ebx
404814:	85 db                	test   %ebx,%ebx
404816:	74 11                	je     0x404829
404818:	39 d9                	cmp    %ebx,%ecx
40481a:	7c 02                	jl     0x40481e
40481c:	89 d9                	mov    %ebx,%ecx
40481e:	88 08                	mov    %cl,(%eax)
404820:	40                   	inc    %eax
404821:	92                   	xchg   %eax,%edx
404822:	e8 31 e4 ff ff       	call   0x402c58
404827:	5b                   	pop    %ebx
404828:	c3                   	ret
404829:	c6 00 00             	movb   $0x0,(%eax)
40482c:	5b                   	pop    %ebx
40482d:	c3                   	ret
40482e:	8b c0                	mov    %eax,%eax
404830:	85 c0                	test   %eax,%eax
404832:	74 03                	je     0x404837
404834:	8b 40 fc             	mov    -0x4(%eax),%eax
404837:	c3                   	ret
404838:	85 d2                	test   %edx,%edx
40483a:	74 3f                	je     0x40487b
40483c:	8b 08                	mov    (%eax),%ecx
40483e:	85 c9                	test   %ecx,%ecx
404840:	0f 84 7e fd ff ff    	je     0x4045c4
404846:	53                   	push   %ebx
404847:	56                   	push   %esi
404848:	57                   	push   %edi
404849:	89 c3                	mov    %eax,%ebx
40484b:	89 d6                	mov    %edx,%esi
40484d:	8b 79 fc             	mov    -0x4(%ecx),%edi
404850:	8b 56 fc             	mov    -0x4(%esi),%edx
404853:	01 fa                	add    %edi,%edx
404855:	39 ce                	cmp    %ecx,%esi
404857:	74 17                	je     0x404870
404859:	e8 5e 03 00 00       	call   0x404bbc
40485e:	89 f0                	mov    %esi,%eax
404860:	8b 4e fc             	mov    -0x4(%esi),%ecx
404863:	8b 13                	mov    (%ebx),%edx
404865:	01 fa                	add    %edi,%edx
404867:	e8 ec e3 ff ff       	call   0x402c58
40486c:	5f                   	pop    %edi
40486d:	5e                   	pop    %esi
40486e:	5b                   	pop    %ebx
40486f:	c3                   	ret
404870:	e8 47 03 00 00       	call   0x404bbc
404875:	8b 03                	mov    (%ebx),%eax
404877:	89 f9                	mov    %edi,%ecx
404879:	eb e8                	jmp    0x404863
40487b:	c3                   	ret
40487c:	85 d2                	test   %edx,%edx
40487e:	74 61                	je     0x4048e1
404880:	85 c9                	test   %ecx,%ecx
404882:	0f 84 3c fd ff ff    	je     0x4045c4
404888:	3b 10                	cmp    (%eax),%edx
40488a:	74 5c                	je     0x4048e8
40488c:	3b 08                	cmp    (%eax),%ecx
40488e:	74 0e                	je     0x40489e
404890:	50                   	push   %eax
404891:	51                   	push   %ecx
404892:	e8 2d fd ff ff       	call   0x4045c4
404897:	5a                   	pop    %edx
404898:	58                   	pop    %eax
404899:	e9 9a ff ff ff       	jmp    0x404838
40489e:	53                   	push   %ebx
40489f:	56                   	push   %esi
4048a0:	57                   	push   %edi
4048a1:	89 d3                	mov    %edx,%ebx
4048a3:	89 ce                	mov    %ecx,%esi
4048a5:	50                   	push   %eax
4048a6:	8b 43 fc             	mov    -0x4(%ebx),%eax
4048a9:	03 46 fc             	add    -0x4(%esi),%eax
4048ac:	e8 83 fd ff ff       	call   0x404634
4048b1:	89 c7                	mov    %eax,%edi
4048b3:	89 c2                	mov    %eax,%edx
4048b5:	89 d8                	mov    %ebx,%eax
4048b7:	8b 4b fc             	mov    -0x4(%ebx),%ecx
4048ba:	e8 99 e3 ff ff       	call   0x402c58
4048bf:	89 fa                	mov    %edi,%edx
4048c1:	89 f0                	mov    %esi,%eax
4048c3:	8b 4e fc             	mov    -0x4(%esi),%ecx
4048c6:	03 53 fc             	add    -0x4(%ebx),%edx
4048c9:	e8 8a e3 ff ff       	call   0x402c58
4048ce:	58                   	pop    %eax
4048cf:	89 fa                	mov    %edi,%edx
4048d1:	85 ff                	test   %edi,%edi
4048d3:	74 03                	je     0x4048d8
4048d5:	ff 4f f8             	decl   -0x8(%edi)
4048d8:	e8 e7 fc ff ff       	call   0x4045c4
4048dd:	5f                   	pop    %edi
4048de:	5e                   	pop    %esi
4048df:	5b                   	pop    %ebx
4048e0:	c3                   	ret
4048e1:	89 ca                	mov    %ecx,%edx
4048e3:	e9 dc fc ff ff       	jmp    0x4045c4
4048e8:	89 ca                	mov    %ecx,%edx
4048ea:	e9 49 ff ff ff       	jmp    0x404838
4048ef:	c3                   	ret
4048f0:	53                   	push   %ebx
4048f1:	56                   	push   %esi
4048f2:	57                   	push   %edi
4048f3:	52                   	push   %edx
4048f4:	50                   	push   %eax
4048f5:	89 d3                	mov    %edx,%ebx
4048f7:	31 ff                	xor    %edi,%edi
4048f9:	8b 4c 94 14          	mov    0x14(%esp,%edx,4),%ecx
4048fd:	85 c9                	test   %ecx,%ecx
4048ff:	74 0c                	je     0x40490d
404901:	39 08                	cmp    %ecx,(%eax)
404903:	75 08                	jne    0x40490d
404905:	89 cf                	mov    %ecx,%edi
404907:	8b 41 fc             	mov    -0x4(%ecx),%eax
40490a:	4a                   	dec    %edx
40490b:	eb 02                	jmp    0x40490f
40490d:	31 c0                	xor    %eax,%eax
40490f:	8b 4c 94 14          	mov    0x14(%esp,%edx,4),%ecx
404913:	85 c9                	test   %ecx,%ecx
404915:	74 09                	je     0x404920
404917:	03 41 fc             	add    -0x4(%ecx),%eax
40491a:	39 cf                	cmp    %ecx,%edi
40491c:	75 02                	jne    0x404920
40491e:	31 ff                	xor    %edi,%edi
404920:	4a                   	dec    %edx
404921:	75 ec                	jne    0x40490f
404923:	85 ff                	test   %edi,%edi
404925:	74 17                	je     0x40493e
404927:	89 c2                	mov    %eax,%edx
404929:	8b 04 24             	mov    (%esp),%eax
40492c:	8b 77 fc             	mov    -0x4(%edi),%esi
40492f:	e8 88 02 00 00       	call   0x404bbc
404934:	8b 3c 24             	mov    (%esp),%edi
404937:	ff 37                	push   (%edi)
404939:	03 37                	add    (%edi),%esi
40493b:	4b                   	dec    %ebx
40493c:	eb 08                	jmp    0x404946
40493e:	e8 f1 fc ff ff       	call   0x404634
404943:	50                   	push   %eax
404944:	89 c6                	mov    %eax,%esi
404946:	8b 44 9c 18          	mov    0x18(%esp,%ebx,4),%eax
40494a:	89 f2                	mov    %esi,%edx
40494c:	85 c0                	test   %eax,%eax
40494e:	74 0a                	je     0x40495a
404950:	8b 48 fc             	mov    -0x4(%eax),%ecx
404953:	01 ce                	add    %ecx,%esi
404955:	e8 fe e2 ff ff       	call   0x402c58
40495a:	4b                   	dec    %ebx
40495b:	75 e9                	jne    0x404946
40495d:	5a                   	pop    %edx
40495e:	58                   	pop    %eax
40495f:	85 ff                	test   %edi,%edi
404961:	75 0c                	jne    0x40496f
404963:	85 d2                	test   %edx,%edx
404965:	74 03                	je     0x40496a
404967:	ff 4a f8             	decl   -0x8(%edx)
40496a:	e8 55 fc ff ff       	call   0x4045c4
40496f:	5a                   	pop    %edx
404970:	5f                   	pop    %edi
404971:	5e                   	pop    %esi
404972:	5b                   	pop    %ebx
404973:	58                   	pop    %eax
404974:	8d 24 94             	lea    (%esp,%edx,4),%esp
404977:	ff e0                	jmp    *%eax
404979:	c3                   	ret
40497a:	8b c0                	mov    %eax,%eax
40497c:	53                   	push   %ebx
40497d:	56                   	push   %esi
40497e:	57                   	push   %edi
40497f:	89 c6                	mov    %eax,%esi
404981:	89 d7                	mov    %edx,%edi
404983:	39 d0                	cmp    %edx,%eax
404985:	0f 84 8f 00 00 00    	je     0x404a1a
40498b:	85 f6                	test   %esi,%esi
40498d:	74 68                	je     0x4049f7
40498f:	85 ff                	test   %edi,%edi
404991:	74 6b                	je     0x4049fe
404993:	8b 46 fc             	mov    -0x4(%esi),%eax
404996:	8b 57 fc             	mov    -0x4(%edi),%edx
404999:	29 d0                	sub    %edx,%eax
40499b:	77 02                	ja     0x40499f
40499d:	01 c2                	add    %eax,%edx
40499f:	52                   	push   %edx
4049a0:	c1 ea 02             	shr    $0x2,%edx
4049a3:	74 26                	je     0x4049cb
4049a5:	8b 0e                	mov    (%esi),%ecx
4049a7:	8b 1f                	mov    (%edi),%ebx
4049a9:	39 d9                	cmp    %ebx,%ecx
4049ab:	75 58                	jne    0x404a05
4049ad:	4a                   	dec    %edx
4049ae:	74 15                	je     0x4049c5
4049b0:	8b 4e 04             	mov    0x4(%esi),%ecx
4049b3:	8b 5f 04             	mov    0x4(%edi),%ebx
4049b6:	39 d9                	cmp    %ebx,%ecx
4049b8:	75 4b                	jne    0x404a05
4049ba:	83 c6 08             	add    $0x8,%esi
4049bd:	83 c7 08             	add    $0x8,%edi
4049c0:	4a                   	dec    %edx
4049c1:	75 e2                	jne    0x4049a5
4049c3:	eb 06                	jmp    0x4049cb
4049c5:	83 c6 04             	add    $0x4,%esi
4049c8:	83 c7 04             	add    $0x4,%edi
4049cb:	5a                   	pop    %edx
4049cc:	83 e2 03             	and    $0x3,%edx
4049cf:	74 22                	je     0x4049f3
4049d1:	8b 0e                	mov    (%esi),%ecx
4049d3:	8b 1f                	mov    (%edi),%ebx
4049d5:	38 d9                	cmp    %bl,%cl
4049d7:	75 41                	jne    0x404a1a
4049d9:	4a                   	dec    %edx
4049da:	74 17                	je     0x4049f3
4049dc:	38 fd                	cmp    %bh,%ch
4049de:	75 3a                	jne    0x404a1a
4049e0:	4a                   	dec    %edx
4049e1:	74 10                	je     0x4049f3
4049e3:	81 e3 00 00 ff 00    	and    $0xff0000,%ebx
4049e9:	81 e1 00 00 ff 00    	and    $0xff0000,%ecx
4049ef:	39 d9                	cmp    %ebx,%ecx
4049f1:	75 27                	jne    0x404a1a
4049f3:	01 c0                	add    %eax,%eax