4035e3:	56                   	push   %esi
4035e4:	8b f1                	mov    %ecx,%esi
4035e6:	74 22                	je     0x40360a
4035e8:	8b 46 04             	mov    0x4(%esi),%eax
4035eb:	85 c0                	test   %eax,%eax
4035ed:	74 1b                	je     0x40360a
4035ef:	8d 48 ff             	lea    -0x1(%eax),%ecx
4035f2:	8a 40 ff             	mov    -0x1(%eax),%al
4035f5:	84 c0                	test   %al,%al
4035f7:	74 0a                	je     0x403603
4035f9:	3c ff                	cmp    $0xff,%al
4035fb:	74 06                	je     0x403603
4035fd:	fe c8                	dec    %al
4035ff:	88 01                	mov    %al,(%ecx)
403601:	eb 07                	jmp    0x40360a
403603:	51                   	push   %ecx
403604:	e8 78 19 00 00       	call   0x404f81
403609:	59                   	pop    %ecx
40360a:	83 66 04 00          	andl   $0x0,0x4(%esi)
40360e:	83 66 08 00          	andl   $0x0,0x8(%esi)
403612:	83 66 0c 00          	andl   $0x0,0xc(%esi)
403616:	5e                   	pop    %esi
403617:	c2 04 00             	ret    $0x4
40361a:	8b 44 24 04          	mov    0x4(%esp),%eax
40361e:	56                   	push   %esi
40361f:	8b f1                	mov    %ecx,%esi
403621:	83 66 2c 00          	andl   $0x0,0x2c(%esi)
403625:	89 46 28             	mov    %eax,0x28(%esi)
403628:	c6 46 30 20          	movb   $0x20,0x30(%esi)
40362c:	e8 4f 15 00 00       	call   0x404b80
403631:	83 7e 28 00          	cmpl   $0x0,0x28(%esi)
403635:	75 11                	jne    0x403648
403637:	8b 46 04             	mov    0x4(%esi),%eax
40363a:	6a 00                	push   $0x0
40363c:	0c 04                	or     $0x4,%al
40363e:	8b ce                	mov    %esi,%ecx
403640:	0c 04                	or     $0x4,%al
403642:	50                   	push   %eax
403643:	e8 ee 11 00 00       	call   0x404836
403648:	80 7c 24 0c 00       	cmpb   $0x0,0xc(%esp)
40364d:	74 07                	je     0x403656
40364f:	8b ce                	mov    %esi,%ecx
403651:	e8 dc 14 00 00       	call   0x404b32
403656:	5e                   	pop    %esi
403657:	c2 08 00             	ret    $0x8
40365a:	55                   	push   %ebp
40365b:	8b ec                	mov    %esp,%ebp
40365d:	8b 45 08             	mov    0x8(%ebp),%eax
403660:	56                   	push   %esi
403661:	8b f1                	mov    %ecx,%esi
403663:	8d 4d 08             	lea    0x8(%ebp),%ecx
403666:	89 06                	mov    %eax,(%esi)
403668:	a1 08 d3 40 00       	mov    0x40d308,%eax
40366d:	89 46 08             	mov    %eax,0x8(%esi)
403670:	a1 0c d3 40 00       	mov    0x40d30c,%eax
403675:	89 46 0c             	mov    %eax,0xc(%esi)
403678:	e8 08 11 00 00       	call   0x404785
40367d:	a1 60 1b 41 00       	mov    0x411b60,%eax
403682:	8d 4d 08             	lea    0x8(%ebp),%ecx
403685:	89 46 10             	mov    %eax,0x10(%esi)
403688:	e8 94 11 00 00       	call   0x404821
40368d:	8b c6                	mov    %esi,%eax
40368f:	5e                   	pop    %esi
403690:	5d                   	pop    %ebp
403691:	c2 04 00             	ret    $0x4
403694:	8b 41 2c             	mov    0x2c(%ecx),%eax
403697:	ff 00                	incl   (%eax)
403699:	8b 41 1c             	mov    0x1c(%ecx),%eax
40369c:	ff 08                	decl   (%eax)
40369e:	8b 41 1c             	mov    0x1c(%ecx),%eax
4036a1:	8b 00                	mov    (%eax),%eax
4036a3:	c3                   	ret
4036a4:	8b 41 2c             	mov    0x2c(%ecx),%eax
4036a7:	ff 08                	decl   (%eax)
4036a9:	8b 49 1c             	mov    0x1c(%ecx),%ecx
4036ac:	8b 01                	mov    (%ecx),%eax
4036ae:	8d 50 01             	lea    0x1(%eax),%edx
4036b1:	89 11                	mov    %edx,(%ecx)
4036b3:	c3                   	ret
4036b4:	8b 41 30             	mov    0x30(%ecx),%eax
4036b7:	ff 08                	decl   (%eax)
4036b9:	8b 49 20             	mov    0x20(%ecx),%ecx
4036bc:	8b 01                	mov    (%ecx),%eax
4036be:	8d 50 01             	lea    0x1(%eax),%edx
4036c1:	89 11                	mov    %edx,(%ecx)
4036c3:	c3                   	ret
4036c4:	56                   	push   %esi
4036c5:	8b f1                	mov    %ecx,%esi
4036c7:	8b 46 50             	mov    0x50(%esi),%eax
4036ca:	85 c0                	test   %eax,%eax
4036cc:	74 19                	je     0x4036e7
4036ce:	50                   	push   %eax
4036cf:	e8 a1 32 00 00       	call   0x406975
4036d4:	85 c0                	test   %eax,%eax
4036d6:	59                   	pop    %ecx
4036d7:	75 0e                	jne    0x4036e7
4036d9:	6a 02                	push   $0x2
4036db:	50                   	push   %eax
4036dc:	8b ce                	mov    %esi,%ecx
4036de:	e8 08 00 00 00       	call   0x4036eb
4036e3:	8b c6                	mov    %esi,%eax
4036e5:	5e                   	pop    %esi
4036e6:	c3                   	ret
4036e7:	33 c0                	xor    %eax,%eax
4036e9:	5e                   	pop    %esi
4036ea:	c3                   	ret
4036eb:	83 7c 24 08 01       	cmpl   $0x1,0x8(%esp)
4036f0:	56                   	push   %esi
4036f1:	8b f1                	mov    %ecx,%esi
4036f3:	0f 94 c0             	sete   %al
4036f6:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
4036fb:	88 46 48             	mov    %al,0x48(%esi)
4036fe:	75 1b                	jne    0x40371b
403700:	57                   	push   %edi
403701:	8d 7e 4c             	lea    0x4c(%esi),%edi
403704:	8b cf                	mov    %edi,%ecx
403706:	e8 9d f7 ff ff       	call   0x402ea8
40370b:	85 ff                	test   %edi,%edi
40370d:	74 07                	je     0x403716
40370f:	8b cf                	mov    %edi,%ecx
403711:	e8 3e f7 ff ff       	call   0x402e54
403716:	83 66 44 00          	andl   $0x0,0x44(%esi)
40371a:	5f                   	pop    %edi
40371b:	8b ce                	mov    %esi,%ecx
40371d:	e8 57 01 00 00       	call   0x403879
403722:	8b 44 24 08          	mov    0x8(%esp),%eax
403726:	85 c0                	test   %eax,%eax
403728:	74 1e                	je     0x403748
40372a:	80 7e 48 00          	cmpb   $0x0,0x48(%esi)
40372e:	75 18                	jne    0x403748
403730:	8d 48 08             	lea    0x8(%eax),%ecx
403733:	89 46 1c             	mov    %eax,0x1c(%esi)
403736:	89 4e 0c             	mov    %ecx,0xc(%esi)
403739:	89 4e 10             	mov    %ecx,0x10(%esi)
40373c:	8d 48 04             	lea    0x4(%eax),%ecx
40373f:	89 46 20             	mov    %eax,0x20(%esi)
403742:	89 4e 2c             	mov    %ecx,0x2c(%esi)
403745:	89 4e 30             	mov    %ecx,0x30(%esi)
403748:	89 46 50             	mov    %eax,0x50(%esi)
40374b:	a1 5c 1b 41 00       	mov    0x411b5c,%eax
403750:	89 46 40             	mov    %eax,0x40(%esi)
403753:	a1 5c 1b 41 00       	mov    0x411b5c,%eax
403758:	83 66 38 00          	andl   $0x0,0x38(%esi)
40375c:	89 46 3c             	mov    %eax,0x3c(%esi)
40375f:	5e                   	pop    %esi
403760:	c2 08 00             	ret    $0x8
403763:	56                   	push   %esi
403764:	8b f1                	mov    %ecx,%esi
403766:	8b 46 04             	mov    0x4(%esi),%eax
403769:	85 c0                	test   %eax,%eax
40376b:	74 15                	je     0x403782
40376d:	8a 40 ff             	mov    -0x1(%eax),%al
403770:	84 c0                	test   %al,%al
403772:	74 0e                	je     0x403782
403774:	3c ff                	cmp    $0xff,%al
403776:	74 0a                	je     0x403782
403778:	6a 00                	push   $0x0
40377a:	ff 76 08             	push   0x8(%esi)
40377d:	e8 0d 00 00 00       	call   0x40378f
403782:	8b 76 04             	mov    0x4(%esi),%esi
403785:	85 f6                	test   %esi,%esi
403787:	74 04                	je     0x40378d
403789:	80 4e ff ff          	orb    $0xff,-0x1(%esi)
40378d:	5e                   	pop    %esi
40378e:	c3                   	ret
40378f:	56                   	push   %esi
403790:	57                   	push   %edi
403791:	8b 7c 24 0c          	mov    0xc(%esp),%edi
403795:	8b f1                	mov    %ecx,%esi
403797:	83 ff fd             	cmp    $0xfffffffd,%edi
40379a:	76 05                	jbe    0x4037a1
40379c:	e8 eb 17 00 00       	call   0x404f8c
4037a1:	8b 4e 04             	mov    0x4(%esi),%ecx
4037a4:	33 d2                	xor    %edx,%edx
4037a6:	3b ca                	cmp    %edx,%ecx
4037a8:	74 20                	je     0x4037ca
4037aa:	8a 41 ff             	mov    -0x1(%ecx),%al
4037ad:	3a c2                	cmp    %dl,%al
4037af:	74 19                	je     0x4037ca
4037b1:	3c ff                	cmp    $0xff,%al
4037b3:	74 15                	je     0x4037ca
4037b5:	3b fa                	cmp    %edx,%edi
4037b7:	75 4c                	jne    0x403805
4037b9:	fe c8                	dec    %al
4037bb:	52                   	push   %edx
4037bc:	88 41 ff             	mov    %al,-0x1(%ecx)
4037bf:	8b ce                	mov    %esi,%ecx
4037c1:	e8 18 fe ff ff       	call   0x4035de
4037c6:	32 c0                	xor    %al,%al
4037c8:	eb 45                	jmp    0x40380f
4037ca:	3b fa                	cmp    %edx,%edi
4037cc:	75 15                	jne    0x4037e3
4037ce:	38 54 24 10          	cmp    %dl,0x10(%esp)
4037d2:	74 04                	je     0x4037d8
4037d4:	6a 01                	push   $0x1
4037d6:	eb e7                	jmp    0x4037bf
4037d8:	3b ca                	cmp    %edx,%ecx
4037da:	74 ea                	je     0x4037c6
4037dc:	89 56 08             	mov    %edx,0x8(%esi)
4037df:	88 11                	mov    %dl,(%ecx)
4037e1:	eb e3                	jmp    0x4037c6
4037e3:	38 54 24 10          	cmp    %dl,0x10(%esp)
4037e7:	74 17                	je     0x403800
4037e9:	8b 46 0c             	mov    0xc(%esi),%eax
4037ec:	83 f8 1f             	cmp    $0x1f,%eax
4037ef:	77 04                	ja     0x4037f5
4037f1:	3b c7                	cmp    %edi,%eax
4037f3:	73 18                	jae    0x40380d
4037f5:	6a 01                	push   $0x1
4037f7:	8b ce                	mov    %esi,%ecx
4037f9:	e8 e0 fd ff ff       	call   0x4035de
4037fe:	eb 05                	jmp    0x403805
403800:	39 7e 0c             	cmp    %edi,0xc(%esi)
403803:	73 08                	jae    0x40380d
403805:	57                   	push   %edi
403806:	8b ce                	mov    %esi,%ecx
403808:	e8 ae 00 00 00       	call   0x4038bb
40380d:	b0 01                	mov    $0x1,%al
40380f:	5f                   	pop    %edi
403810:	5e                   	pop    %esi
403811:	c2 08 00             	ret    $0x8
403814:	56                   	push   %esi
403815:	57                   	push   %edi
403816:	8b f9                	mov    %ecx,%edi
403818:	8b 77 04             	mov    0x4(%edi),%esi
40381b:	85 f6                	test   %esi,%esi
40381d:	74 22                	je     0x403841
40381f:	8a 46 ff             	mov    -0x1(%esi),%al
403822:	84 c0                	test   %al,%al
403824:	74 1b                	je     0x403841
403826:	3c ff                	cmp    $0xff,%al
403828:	74 17                	je     0x403841
40382a:	6a 01                	push   $0x1
40382c:	e8 ad fd ff ff       	call   0x4035de
403831:	56                   	push   %esi
403832:	e8 c9 31 00 00       	call   0x406a00
403837:	59                   	pop    %ecx
403838:	50                   	push   %eax
403839:	56                   	push   %esi
40383a:	8b cf                	mov    %edi,%ecx
40383c:	e8 03 00 00 00       	call   0x403844
403841:	5f                   	pop    %edi
403842:	5e                   	pop    %esi
403843:	c3                   	ret
403844:	56                   	push   %esi
403845:	57                   	push   %edi
403846:	8b 7c 24 10          	mov    0x10(%esp),%edi
40384a:	6a 01                	push   $0x1
40384c:	8b f1                	mov    %ecx,%esi
40384e:	57                   	push   %edi
40384f:	e8 3b ff ff ff       	call   0x40378f
403854:	84 c0                	test   %al,%al
403856:	74 1a                	je     0x403872
403858:	57                   	push   %edi
403859:	ff 74 24 10          	push   0x10(%esp)
40385d:	ff 76 04             	push   0x4(%esi)
403860:	e8 fb 24 00 00       	call   0x405d60
403865:	8b 46 04             	mov    0x4(%esi),%eax
403868:	83 c4 0c             	add    $0xc,%esp
40386b:	89 7e 08             	mov    %edi,0x8(%esi)
40386e:	80 24 38 00          	andb   $0x0,(%eax,%edi,1)
403872:	8b c6                	mov    %esi,%eax
403874:	5f                   	pop    %edi
403875:	5e                   	pop    %esi
403876:	c2 08 00             	ret    $0x8
403879:	8d 51 14             	lea    0x14(%ecx),%edx
40387c:	8d 41 04             	lea    0x4(%ecx),%eax
40387f:	89 51 1c             	mov    %edx,0x1c(%ecx)
403882:	8d 51 18             	lea    0x18(%ecx),%edx
403885:	89 51 20             	mov    %edx,0x20(%ecx)
403888:	8d 51 24             	lea    0x24(%ecx),%edx
40388b:	89 51 2c             	mov    %edx,0x2c(%ecx)
40388e:	8d 51 28             	lea    0x28(%ecx),%edx
403891:	89 41 0c             	mov    %eax,0xc(%ecx)
403894:	8d 41 08             	lea    0x8(%ecx),%eax
403897:	89 51 30             	mov    %edx,0x30(%ecx)
40389a:	33 d2                	xor    %edx,%edx
40389c:	89 41 10             	mov    %eax,0x10(%ecx)
40389f:	89 10                	mov    %edx,(%eax)
4038a1:	8b 41 20             	mov    0x20(%ecx),%eax
4038a4:	89 10                	mov    %edx,(%eax)
4038a6:	8b 41 30             	mov    0x30(%ecx),%eax
4038a9:	89 10                	mov    %edx,(%eax)
4038ab:	8b 41 0c             	mov    0xc(%ecx),%eax
4038ae:	89 10                	mov    %edx,(%eax)
4038b0:	8b 41 1c             	mov    0x1c(%ecx),%eax
4038b3:	89 10                	mov    %edx,(%eax)
4038b5:	8b 41 2c             	mov    0x2c(%ecx),%eax
4038b8:	89 10                	mov    %edx,(%eax)
4038ba:	c3                   	ret
4038bb:	b8 78 c5 40 00       	mov    $0x40c578,%eax
4038c0:	e8 7b 24 00 00       	call   0x405d40
4038c5:	83 ec 0c             	sub    $0xc,%esp
4038c8:	53                   	push   %ebx
4038c9:	56                   	push   %esi
4038ca:	57                   	push   %edi
4038cb:	8b 7d 08             	mov    0x8(%ebp),%edi
4038ce:	83 cf 1f             	or     $0x1f,%edi
4038d1:	8b f1                	mov    %ecx,%esi
4038d3:	83 ff fd             	cmp    $0xfffffffd,%edi
4038d6:	89 65 f0             	mov    %esp,-0x10(%ebp)
4038d9:	89 75 ec             	mov    %esi,-0x14(%ebp)
4038dc:	76 03                	jbe    0x4038e1
4038de:	8b 7d 08             	mov    0x8(%ebp),%edi
4038e1:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4038e5:	8d 47 02             	lea    0x2(%edi),%eax
4038e8:	85 c0                	test   %eax,%eax
4038ea:	7d 02                	jge    0x4038ee
4038ec:	33 c0                	xor    %eax,%eax
4038ee:	50                   	push   %eax
4038ef:	e8 87 31 00 00       	call   0x406a7b
4038f4:	59                   	pop    %ecx
4038f5:	89 45 08             	mov    %eax,0x8(%ebp)
4038f8:	eb 25                	jmp    0x40391f
4038fa:	8b 45 08             	mov    0x8(%ebp),%eax
4038fd:	89 45 e8             	mov    %eax,-0x18(%ebp)
403900:	83 c0 02             	add    $0x2,%eax
403903:	85 c0                	test   %eax,%eax
403905:	7d 02                	jge    0x403909
403907:	33 c0                	xor    %eax,%eax
403909:	50                   	push   %eax
40390a:	e8 6c 31 00 00       	call   0x406a7b
40390f:	89 45 08             	mov    %eax,0x8(%ebp)
403912:	59                   	pop    %ecx
403913:	b8 19 39 40 00       	mov    $0x403919,%eax
403918:	c3                   	ret
403919:	8b 75 ec             	mov    -0x14(%ebp),%esi
40391c:	8b 7d e8             	mov    -0x18(%ebp),%edi
40391f:	8b 46 08             	mov    0x8(%esi),%eax
403922:	85 c0                	test   %eax,%eax
403924:	76 17                	jbe    0x40393d
403926:	3b c7                	cmp    %edi,%eax
403928:	76 02                	jbe    0x40392c
40392a:	8b c7                	mov    %edi,%eax
40392c:	50                   	push   %eax
40392d:	8b 45 08             	mov    0x8(%ebp),%eax
403930:	ff 76 04             	push   0x4(%esi)
403933:	40                   	inc    %eax
403934:	50                   	push   %eax
403935:	e8 26 24 00 00       	call   0x405d60
40393a:	83 c4 0c             	add    $0xc,%esp
40393d:	8b 5e 08             	mov    0x8(%esi),%ebx
403940:	6a 01                	push   $0x1
403942:	8b ce                	mov    %esi,%ecx
403944:	e8 95 fc ff ff       	call   0x4035de
403949:	8b 45 08             	mov    0x8(%ebp),%eax
40394c:	40                   	inc    %eax
40394d:	89 46 04             	mov    %eax,0x4(%esi)
403950:	80 60 ff 00          	andb   $0x0,-0x1(%eax)
403954:	3b df                	cmp    %edi,%ebx