40782a:	72 8d                	jb     0x4077b9
40782c:	5e                   	pop    %esi
40782d:	5b                   	pop    %ebx
40782e:	5f                   	pop    %edi
40782f:	c9                   	leave
407830:	c3                   	ret
407831:	55                   	push   %ebp
407832:	8b ec                	mov    %esp,%ebp
407834:	51                   	push   %ecx
407835:	51                   	push   %ecx
407836:	53                   	push   %ebx
407837:	56                   	push   %esi
407838:	8b 75 0c             	mov    0xc(%ebp),%esi
40783b:	57                   	push   %edi
40783c:	85 f6                	test   %esi,%esi
40783e:	74 6c                	je     0x4078ac
407840:	33 db                	xor    %ebx,%ebx
407842:	8b fb                	mov    %ebx,%edi
407844:	39 1e                	cmp    %ebx,(%esi)
407846:	7e 5d                	jle    0x4078a5
407848:	8b cb                	mov    %ebx,%ecx
40784a:	89 5d 0c             	mov    %ebx,0xc(%ebp)
40784d:	8b 45 08             	mov    0x8(%ebp),%eax
407850:	8b 40 1c             	mov    0x1c(%eax),%eax
407853:	8b 40 0c             	mov    0xc(%eax),%eax
407856:	8d 50 04             	lea    0x4(%eax),%edx
407859:	8b 00                	mov    (%eax),%eax
40785b:	89 55 f8             	mov    %edx,-0x8(%ebp)
40785e:	89 45 fc             	mov    %eax,-0x4(%ebp)
407861:	85 c0                	test   %eax,%eax
407863:	7e 35                	jle    0x40789a
407865:	8b 45 08             	mov    0x8(%ebp),%eax
407868:	ff 70 1c             	push   0x1c(%eax)
40786b:	8b 46 04             	mov    0x4(%esi),%eax
40786e:	ff 32                	push   (%edx)
407870:	03 c1                	add    %ecx,%eax
407872:	50                   	push   %eax
407873:	e8 8e 04 00 00       	call   0x407d06
407878:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40787b:	83 c4 0c             	add    $0xc,%esp
40787e:	85 c0                	test   %eax,%eax
407880:	75 16                	jne    0x407898
407882:	8b 45 fc             	mov    -0x4(%ebp),%eax
407885:	8b 55 f8             	mov    -0x8(%ebp),%edx
407888:	48                   	dec    %eax
407889:	83 c2 04             	add    $0x4,%edx
40788c:	89 45 fc             	mov    %eax,-0x4(%ebp)
40788f:	89 55 f8             	mov    %edx,-0x8(%ebp)
407892:	85 c0                	test   %eax,%eax
407894:	7f cf                	jg     0x407865
407896:	eb 02                	jmp    0x40789a
407898:	b3 01                	mov    $0x1,%bl
40789a:	47                   	inc    %edi
40789b:	83 c1 10             	add    $0x10,%ecx
40789e:	89 4d 0c             	mov    %ecx,0xc(%ebp)
4078a1:	3b 3e                	cmp    (%esi),%edi
4078a3:	7c a8                	jl     0x40784d
4078a5:	5f                   	pop    %edi
4078a6:	5e                   	pop    %esi
4078a7:	8a c3                	mov    %bl,%al
4078a9:	5b                   	pop    %ebx
4078aa:	c9                   	leave
4078ab:	c3                   	ret
4078ac:	e8 5b 65 00 00       	call   0x40de0c
4078b1:	e8 8e 65 00 00       	call   0x40de44
4078b6:	cc                   	int3
4078b7:	e8 1a 4b 00 00       	call   0x40c3d6
4078bc:	33 c9                	xor    %ecx,%ecx
4078be:	39 88 90 00 00 00    	cmp    %ecx,0x90(%eax)
4078c4:	0f 95 c0             	setne  %al
4078c7:	c3                   	ret
4078c8:	55                   	push   %ebp
4078c9:	8b ec                	mov    %esp,%ebp
4078cb:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4078ce:	8b 55 08             	mov    0x8(%ebp),%edx
4078d1:	8b 01                	mov    (%ecx),%eax
4078d3:	56                   	push   %esi
4078d4:	8b 71 04             	mov    0x4(%ecx),%esi
4078d7:	03 c2                	add    %edx,%eax
4078d9:	85 f6                	test   %esi,%esi
4078db:	78 0d                	js     0x4078ea
4078dd:	8b 49 08             	mov    0x8(%ecx),%ecx
4078e0:	8b 14 16             	mov    (%esi,%edx,1),%edx
4078e3:	8b 0c 0a             	mov    (%edx,%ecx,1),%ecx
4078e6:	03 ce                	add    %esi,%ecx
4078e8:	03 c1                	add    %ecx,%eax
4078ea:	5e                   	pop    %esi
4078eb:	5d                   	pop    %ebp
4078ec:	c3                   	ret
4078ed:	6a 08                	push   $0x8
4078ef:	68 80 e3 41 00       	push   $0x41e380
4078f4:	e8 b7 34 00 00       	call   0x40adb0
4078f9:	8b 55 10             	mov    0x10(%ebp),%edx
4078fc:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4078ff:	f7 02 00 00 00 80    	testl  $0x80000000,(%edx)
407905:	74 04                	je     0x40790b
407907:	8b f9                	mov    %ecx,%edi
407909:	eb 06                	jmp    0x407911
40790b:	8d 79 0c             	lea    0xc(%ecx),%edi
40790e:	03 7a 08             	add    0x8(%edx),%edi
407911:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
407915:	8b 75 14             	mov    0x14(%ebp),%esi
407918:	56                   	push   %esi
407919:	52                   	push   %edx
40791a:	51                   	push   %ecx
40791b:	8b 5d 08             	mov    0x8(%ebp),%ebx
40791e:	53                   	push   %ebx
40791f:	e8 57 00 00 00       	call   0x40797b
407924:	83 c4 10             	add    $0x10,%esp
407927:	48                   	dec    %eax
407928:	74 1f                	je     0x407949
40792a:	48                   	dec    %eax
40792b:	75 34                	jne    0x407961
40792d:	6a 01                	push   $0x1
40792f:	8d 46 08             	lea    0x8(%esi),%eax
407932:	50                   	push   %eax
407933:	ff 73 18             	push   0x18(%ebx)
407936:	e8 8d ff ff ff       	call   0x4078c8
40793b:	59                   	pop    %ecx
40793c:	59                   	pop    %ecx
40793d:	50                   	push   %eax
40793e:	ff 76 18             	push   0x18(%esi)
407941:	57                   	push   %edi
407942:	e8 7d e6 ff ff       	call   0x405fc4
407947:	eb 18                	jmp    0x407961
407949:	8d 46 08             	lea    0x8(%esi),%eax
40794c:	50                   	push   %eax
40794d:	ff 73 18             	push   0x18(%ebx)
407950:	e8 73 ff ff ff       	call   0x4078c8
407955:	59                   	pop    %ecx
407956:	59                   	pop    %ecx
407957:	50                   	push   %eax
407958:	ff 76 18             	push   0x18(%esi)
40795b:	57                   	push   %edi
40795c:	e8 63 e6 ff ff       	call   0x405fc4
407961:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
407968:	e8 88 34 00 00       	call   0x40adf5
40796d:	c3                   	ret
40796e:	33 c0                	xor    %eax,%eax
407970:	40                   	inc    %eax
407971:	c3                   	ret
407972:	8b 65 e8             	mov    -0x18(%ebp),%esp
407975:	e8 ca 64 00 00       	call   0x40de44
40797a:	cc                   	int3
40797b:	6a 0c                	push   $0xc
40797d:	68 18 e4 41 00       	push   $0x41e418
407982:	e8 29 34 00 00       	call   0x40adb0
407987:	33 db                	xor    %ebx,%ebx
407989:	8b 45 10             	mov    0x10(%ebp),%eax
40798c:	8b 48 04             	mov    0x4(%eax),%ecx
40798f:	85 c9                	test   %ecx,%ecx
407991:	0f 84 61 01 00 00    	je     0x407af8
407997:	38 59 08             	cmp    %bl,0x8(%ecx)
40799a:	0f 84 58 01 00 00    	je     0x407af8
4079a0:	8b 48 08             	mov    0x8(%eax),%ecx
4079a3:	85 c9                	test   %ecx,%ecx
4079a5:	75 0c                	jne    0x4079b3
4079a7:	f7 00 00 00 00 80    	testl  $0x80000000,(%eax)
4079ad:	0f 84 45 01 00 00    	je     0x407af8
4079b3:	8b 10                	mov    (%eax),%edx
4079b5:	8b 7d 0c             	mov    0xc(%ebp),%edi
4079b8:	85 d2                	test   %edx,%edx
4079ba:	78 05                	js     0x4079c1
4079bc:	83 c7 0c             	add    $0xc,%edi
4079bf:	03 f9                	add    %ecx,%edi
4079c1:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4079c4:	6a 01                	push   $0x1
4079c6:	f6 c2 08             	test   $0x8,%dl
4079c9:	74 42                	je     0x407a0d
4079cb:	8b 75 08             	mov    0x8(%ebp),%esi
4079ce:	ff 76 18             	push   0x18(%esi)
4079d1:	e8 44 79 00 00       	call   0x40f31a
4079d6:	59                   	pop    %ecx
4079d7:	59                   	pop    %ecx
4079d8:	85 c0                	test   %eax,%eax
4079da:	0f 84 fc 00 00 00    	je     0x407adc
4079e0:	6a 01                	push   $0x1
4079e2:	57                   	push   %edi
4079e3:	e8 32 79 00 00       	call   0x40f31a
4079e8:	59                   	pop    %ecx
4079e9:	59                   	pop    %ecx
4079ea:	85 c0                	test   %eax,%eax
4079ec:	0f 84 ea 00 00 00    	je     0x407adc
4079f2:	8b 4e 18             	mov    0x18(%esi),%ecx
4079f5:	89 0f                	mov    %ecx,(%edi)
4079f7:	8b 45 14             	mov    0x14(%ebp),%eax
4079fa:	83 c0 08             	add    $0x8,%eax
4079fd:	50                   	push   %eax
4079fe:	51                   	push   %ecx
4079ff:	e8 c4 fe ff ff       	call   0x4078c8
407a04:	59                   	pop    %ecx
407a05:	59                   	pop    %ecx
407a06:	89 07                	mov    %eax,(%edi)
407a08:	e9 d4 00 00 00       	jmp    0x407ae1
407a0d:	8b 75 14             	mov    0x14(%ebp),%esi
407a10:	8b 45 08             	mov    0x8(%ebp),%eax
407a13:	ff 70 18             	push   0x18(%eax)
407a16:	f6 06 01             	testb  $0x1,(%esi)
407a19:	74 4e                	je     0x407a69
407a1b:	e8 fa 78 00 00       	call   0x40f31a
407a20:	59                   	pop    %ecx
407a21:	59                   	pop    %ecx
407a22:	85 c0                	test   %eax,%eax
407a24:	0f 84 b2 00 00 00    	je     0x407adc
407a2a:	6a 01                	push   $0x1
407a2c:	57                   	push   %edi
407a2d:	e8 e8 78 00 00       	call   0x40f31a
407a32:	59                   	pop    %ecx
407a33:	59                   	pop    %ecx
407a34:	85 c0                	test   %eax,%eax
407a36:	0f 84 a0 00 00 00    	je     0x407adc
407a3c:	ff 76 14             	push   0x14(%esi)
407a3f:	8b 45 08             	mov    0x8(%ebp),%eax
407a42:	ff 70 18             	push   0x18(%eax)
407a45:	57                   	push   %edi
407a46:	e8 05 cd ff ff       	call   0x404750
407a4b:	83 c4 0c             	add    $0xc,%esp
407a4e:	83 7e 14 04          	cmpl   $0x4,0x14(%esi)
407a52:	0f 85 89 00 00 00    	jne    0x407ae1
407a58:	83 3f 00             	cmpl   $0x0,(%edi)
407a5b:	0f 84 80 00 00 00    	je     0x407ae1
407a61:	8d 46 08             	lea    0x8(%esi),%eax
407a64:	50                   	push   %eax
407a65:	ff 37                	push   (%edi)
407a67:	eb 96                	jmp    0x4079ff
407a69:	39 5e 18             	cmp    %ebx,0x18(%esi)
407a6c:	75 39                	jne    0x407aa7
407a6e:	e8 a7 78 00 00       	call   0x40f31a
407a73:	59                   	pop    %ecx
407a74:	59                   	pop    %ecx
407a75:	85 c0                	test   %eax,%eax
407a77:	74 63                	je     0x407adc
407a79:	6a 01                	push   $0x1
407a7b:	57                   	push   %edi
407a7c:	e8 99 78 00 00       	call   0x40f31a
407a81:	59                   	pop    %ecx
407a82:	59                   	pop    %ecx
407a83:	85 c0                	test   %eax,%eax
407a85:	74 55                	je     0x407adc
407a87:	ff 76 14             	push   0x14(%esi)
407a8a:	8d 46 08             	lea    0x8(%esi),%eax
407a8d:	50                   	push   %eax
407a8e:	8b 45 08             	mov    0x8(%ebp),%eax
407a91:	ff 70 18             	push   0x18(%eax)
407a94:	e8 2f fe ff ff       	call   0x4078c8
407a99:	59                   	pop    %ecx
407a9a:	59                   	pop    %ecx
407a9b:	50                   	push   %eax
407a9c:	57                   	push   %edi
407a9d:	e8 ae cc ff ff       	call   0x404750
407aa2:	83 c4 0c             	add    $0xc,%esp
407aa5:	eb 3a                	jmp    0x407ae1
407aa7:	e8 6e 78 00 00       	call   0x40f31a
407aac:	59                   	pop    %ecx
407aad:	59                   	pop    %ecx
407aae:	85 c0                	test   %eax,%eax
407ab0:	74 2a                	je     0x407adc
407ab2:	6a 01                	push   $0x1
407ab4:	57                   	push   %edi
407ab5:	e8 60 78 00 00       	call   0x40f31a
407aba:	59                   	pop    %ecx
407abb:	59                   	pop    %ecx
407abc:	85 c0                	test   %eax,%eax
407abe:	74 1c                	je     0x407adc
407ac0:	ff 76 18             	push   0x18(%esi)
407ac3:	e8 52 78 00 00       	call   0x40f31a
407ac8:	59                   	pop    %ecx
407ac9:	85 c0                	test   %eax,%eax
407acb:	74 0f                	je     0x407adc
407acd:	f6 06 04             	testb  $0x4,(%esi)
407ad0:	6a 00                	push   $0x0
407ad2:	5b                   	pop    %ebx
407ad3:	0f 95 c3             	setne  %bl
407ad6:	43                   	inc    %ebx
407ad7:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
407ada:	eb 05                	jmp    0x407ae1
407adc:	e8 2b 63 00 00       	call   0x40de0c
407ae1:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
407ae8:	8b c3                	mov    %ebx,%eax
407aea:	eb 0e                	jmp    0x407afa
407aec:	33 c0                	xor    %eax,%eax
407aee:	40                   	inc    %eax
407aef:	c3                   	ret
407af0:	8b 65 e8             	mov    -0x18(%ebp),%esp
407af3:	e8 4c 63 00 00       	call   0x40de44
407af8:	33 c0                	xor    %eax,%eax
407afa:	e8 f6 32 00 00       	call   0x40adf5
407aff:	c3                   	ret
407b00:	55                   	push   %ebp
407b01:	8b ec                	mov    %esp,%ebp
407b03:	8b 45 08             	mov    0x8(%ebp),%eax
407b06:	8b 00                	mov    (%eax),%eax
407b08:	81 38 52 43 43 e0    	cmpl   $0xe0434352,(%eax)
407b0e:	74 21                	je     0x407b31
407b10:	81 38 4d 4f 43 e0    	cmpl   $0xe0434f4d,(%eax)
407b16:	74 19                	je     0x407b31
407b18:	81 38 63 73 6d e0    	cmpl   $0xe06d7363,(%eax)
407b1e:	75 2a                	jne    0x407b4a
407b20:	e8 b1 48 00 00       	call   0x40c3d6
407b25:	83 a0 90 00 00 00 00 	andl   $0x0,0x90(%eax)
407b2c:	e9 13 63 00 00       	jmp    0x40de44
407b31:	e8 a0 48 00 00       	call   0x40c3d6
407b36:	83 b8 90 00 00 00 00 	cmpl   $0x0,0x90(%eax)
407b3d:	7e 0b                	jle    0x407b4a
407b3f:	e8 92 48 00 00       	call   0x40c3d6
407b44:	ff 88 90 00 00 00    	decl   0x90(%eax)
407b4a:	33 c0                	xor    %eax,%eax
407b4c:	5d                   	pop    %ebp
407b4d:	c3                   	ret
407b4e:	6a 10                	push   $0x10
407b50:	68 30 e3 41 00       	push   $0x41e330
407b55:	e8 56 32 00 00       	call   0x40adb0
407b5a:	8b 45 10             	mov    0x10(%ebp),%eax
407b5d:	81 78 04 80 00 00 00 	cmpl   $0x80,0x4(%eax)
407b64:	8b 45 08             	mov    0x8(%ebp),%eax
407b67:	7f 06                	jg     0x407b6f
407b69:	0f be 70 08          	movsbl 0x8(%eax),%esi
407b6d:	eb 03                	jmp    0x407b72
407b6f:	8b 70 08             	mov    0x8(%eax),%esi
407b72:	89 75 e4             	mov    %esi,-0x1c(%ebp)
407b75:	e8 5c 48 00 00       	call   0x40c3d6
407b7a:	ff 80 90 00 00 00    	incl   0x90(%eax)
407b80:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
407b84:	3b 75 14             	cmp    0x14(%ebp),%esi
407b87:	74 5f                	je     0x407be8
407b89:	83 fe ff             	cmp    $0xffffffff,%esi
407b8c:	7e 08                	jle    0x407b96
407b8e:	8b 45 10             	mov    0x10(%ebp),%eax
407b91:	3b 70 04             	cmp    0x4(%eax),%esi
407b94:	7c 05                	jl     0x407b9b
407b96:	e8 71 62 00 00       	call   0x40de0c
407b9b:	8b 4d 10             	mov    0x10(%ebp),%ecx
407b9e:	8b 41 08             	mov    0x8(%ecx),%eax
407ba1:	8b 14 f0             	mov    (%eax,%esi,8),%edx
407ba4:	89 55 e0             	mov    %edx,-0x20(%ebp)
407ba7:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
407bae:	83 7c f0 04 00       	cmpl   $0x0,0x4(%eax,%esi,8)
407bb3:	74 27                	je     0x407bdc
407bb5:	8b 45 08             	mov    0x8(%ebp),%eax
407bb8:	89 50 08             	mov    %edx,0x8(%eax)
407bbb:	68 03 01 00 00       	push   $0x103
407bc0:	50                   	push   %eax
407bc1:	8b 41 08             	mov    0x8(%ecx),%eax
407bc4:	ff 74 f0 04          	push   0x4(%eax,%esi,8)
407bc8:	e8 f3 61 00 00       	call   0x40ddc0
407bcd:	eb 0d                	jmp    0x407bdc
407bcf:	ff 75 ec             	push   -0x14(%ebp)
407bd2:	e8 29 ff ff ff       	call   0x407b00
407bd7:	59                   	pop    %ecx
407bd8:	c3                   	ret