40c6e2:	8b e5                	mov    %ebp,%esp
40c6e4:	5d                   	pop    %ebp
40c6e5:	c3                   	ret
40c6e6:	8b c1                	mov    %ecx,%eax
40c6e8:	8b 48 1c             	mov    0x1c(%eax),%ecx
40c6eb:	85 c9                	test   %ecx,%ecx
40c6ed:	74 85                	je     0x40c674
40c6ef:	e9 c4 85 01 00       	jmp    0x424cb8
40c6f4:	81 fb 02 01 00 00    	cmp    $0x102,%ebx
40c6fa:	74 4a                	je     0x40c746
40c6fc:	0f 87 d5 85 01 00    	ja     0x424cd7
40c702:	85 db                	test   %ebx,%ebx
40c704:	74 63                	je     0x40c769
40c706:	81 fb c0 00 00 00    	cmp    $0xc0,%ebx
40c70c:	74 65                	je     0x40c773
40c70e:	8d 47 02             	lea    0x2(%edi),%eax
40c711:	3b d8                	cmp    %eax,%ebx
40c713:	0f 84 10 86 01 00    	je     0x424d29
40c719:	0f 83 e3 86 01 00    	jae    0x424e02
40c71f:	8d 44 24 38          	lea    0x38(%esp),%eax
40c723:	8d 04 98             	lea    (%eax,%ebx,4),%eax
40c726:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40c72a:	50                   	push   %eax
40c72b:	e8 50 00 00 00       	call   0x40c780
40c730:	8b f0                	mov    %eax,%esi
40c732:	e9 69 ff ff ff       	jmp    0x40c6a0
40c737:	8b c1                	mov    %ecx,%eax
40c739:	8b 48 1c             	mov    0x1c(%eax),%ecx
40c73c:	85 c9                	test   %ecx,%ecx
40c73e:	0f 84 f1 fe ff ff    	je     0x40c635
40c744:	eb f1                	jmp    0x40c737
40c746:	8b 5c 24 10          	mov    0x10(%esp),%ebx
40c74a:	8b 03                	mov    (%ebx),%eax
40c74c:	8b 70 2c             	mov    0x2c(%eax),%esi
40c74f:	81 fe 20 6a 41 00    	cmp    $0x416a20,%esi
40c755:	0f 85 78 86 01 00    	jne    0x424dd3
40c75b:	8b cb                	mov    %ebx,%ecx
40c75d:	e8 be a2 00 00       	call   0x416a20
40c762:	8b f0                	mov    %eax,%esi
40c764:	e9 37 ff ff ff       	jmp    0x40c6a0
40c769:	be 0c 00 00 80       	mov    $0x8000000c,%esi
40c76e:	e9 2d ff ff ff       	jmp    0x40c6a0
40c773:	33 f6                	xor    %esi,%esi
40c775:	e9 26 ff ff ff       	jmp    0x40c6a0
40c77a:	cc                   	int3
40c77b:	cc                   	int3
40c77c:	cc                   	int3
40c77d:	cc                   	int3
40c77e:	cc                   	int3
40c77f:	cc                   	int3
40c780:	8b ff                	mov    %edi,%edi
40c782:	55                   	push   %ebp
40c783:	8b ec                	mov    %esp,%ebp
40c785:	83 ec 28             	sub    $0x28,%esp
40c788:	53                   	push   %ebx
40c789:	8b d9                	mov    %ecx,%ebx
40c78b:	56                   	push   %esi
40c78c:	57                   	push   %edi
40c78d:	33 ff                	xor    %edi,%edi
40c78f:	80 7b 30 00          	cmpb   $0x0,0x30(%ebx)
40c793:	74 10                	je     0x40c7a5
40c795:	8d 4b 18             	lea    0x18(%ebx),%ecx
40c798:	e8 03 f4 ff ff       	call   0x40bba0
40c79d:	84 c0                	test   %al,%al
40c79f:	0f 84 67 86 01 00    	je     0x424e0c
40c7a5:	8b 83 80 00 00 00    	mov    0x80(%ebx),%eax
40c7ab:	89 45 f4             	mov    %eax,-0xc(%ebp)
40c7ae:	8b ff                	mov    %edi,%edi
40c7b0:	85 c0                	test   %eax,%eax
40c7b2:	0f 84 c0 00 00 00    	je     0x40c878
40c7b8:	8d 45 f8             	lea    -0x8(%ebp),%eax
40c7bb:	50                   	push   %eax
40c7bc:	8d 45 dc             	lea    -0x24(%ebp),%eax
40c7bf:	50                   	push   %eax
40c7c0:	8d 4b 7c             	lea    0x7c(%ebx),%ecx
40c7c3:	e8 78 04 00 00       	call   0x40cc40
40c7c8:	8b f8                	mov    %eax,%edi
40c7ca:	85 ff                	test   %edi,%edi
40c7cc:	0f 85 3d 01 00 00    	jne    0x40c90f
40c7d2:	39 83 80 00 00 00    	cmp    %eax,0x80(%ebx)
40c7d8:	0f 84 6f 86 01 00    	je     0x424e4d
40c7de:	8b 43 7c             	mov    0x7c(%ebx),%eax
40c7e1:	8b d0                	mov    %eax,%edx
40c7e3:	85 d2                	test   %edx,%edx
40c7e5:	74 0b                	je     0x40c7f2
40c7e7:	8b 4a 18             	mov    0x18(%edx),%ecx
40c7ea:	85 c9                	test   %ecx,%ecx
40c7ec:	0f 85 a1 00 00 00    	jne    0x40c893
40c7f2:	85 c0                	test   %eax,%eax
40c7f4:	0f 84 49 86 01 00    	je     0x424e43
40c7fa:	8b 7a 08             	mov    0x8(%edx),%edi
40c7fd:	8d 49 00             	lea    0x0(%ecx),%ecx
40c800:	8b 70 08             	mov    0x8(%eax),%esi
40c803:	3b fe                	cmp    %esi,%edi
40c805:	0f 85 2d 86 01 00    	jne    0x424e38
40c80b:	8b 4a 10             	mov    0x10(%edx),%ecx
40c80e:	3b 48 10             	cmp    0x10(%eax),%ecx
40c811:	0f 85 8b 00 00 00    	jne    0x40c8a2
40c817:	8b 4a 14             	mov    0x14(%edx),%ecx
40c81a:	3b 48 14             	cmp    0x14(%eax),%ecx
40c81d:	0f 85 7f 00 00 00    	jne    0x40c8a2
40c823:	50                   	push   %eax
40c824:	8d 4b 7c             	lea    0x7c(%ebx),%ecx
40c827:	e8 04 01 00 00       	call   0x40c930
40c82c:	8b f8                	mov    %eax,%edi
40c82e:	85 ff                	test   %edi,%edi
40c830:	0f 85 d9 00 00 00    	jne    0x40c90f
40c836:	8b 75 f8             	mov    -0x8(%ebp),%esi
40c839:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c83c:	8b 46 14             	mov    0x14(%esi),%eax
40c83f:	3b 01                	cmp    (%ecx),%eax
40c841:	0f 85 96 00 00 00    	jne    0x40c8dd
40c847:	83 7e 24 02          	cmpl   $0x2,0x24(%esi)
40c84b:	0f 85 06 86 01 00    	jne    0x424e57
40c851:	8d 45 f0             	lea    -0x10(%ebp),%eax
40c854:	50                   	push   %eax
40c855:	8d 45 f8             	lea    -0x8(%ebp),%eax
40c858:	50                   	push   %eax
40c859:	8d 45 dc             	lea    -0x24(%ebp),%eax
40c85c:	50                   	push   %eax
40c85d:	8d 4b 5c             	lea    0x5c(%ebx),%ecx
40c860:	e8 7b 01 00 00       	call   0x40c9e0
40c865:	8b f8                	mov    %eax,%edi
40c867:	85 ff                	test   %edi,%edi
40c869:	0f 85 a0 00 00 00    	jne    0x40c90f
40c86f:	ff 73 3c             	push   0x3c(%ebx)
40c872:	ff 15 4c 11 45 00    	call   *0x45114c
40c878:	80 7b 30 00          	cmpb   $0x0,0x30(%ebx)
40c87c:	8d 43 18             	lea    0x18(%ebx),%eax
40c87f:	74 07                	je     0x40c888
40c881:	50                   	push   %eax
40c882:	ff 15 40 11 45 00    	call   *0x451140
40c888:	8b c7                	mov    %edi,%eax
40c88a:	5f                   	pop    %edi
40c88b:	5e                   	pop    %esi
40c88c:	5b                   	pop    %ebx
40c88d:	8b e5                	mov    %ebp,%esp
40c88f:	5d                   	pop    %ebp
40c890:	c2 04 00             	ret    $0x4
40c893:	8b d1                	mov    %ecx,%edx
40c895:	8b 4a 18             	mov    0x18(%edx),%ecx
40c898:	85 c9                	test   %ecx,%ecx
40c89a:	0f 84 52 ff ff ff    	je     0x40c7f2
40c8a0:	eb f1                	jmp    0x40c893
40c8a2:	3b fe                	cmp    %esi,%edi
40c8a4:	0f 85 8e 85 01 00    	jne    0x424e38
40c8aa:	8b 7a 10             	mov    0x10(%edx),%edi
40c8ad:	3b 78 10             	cmp    0x10(%eax),%edi
40c8b0:	8b 72 14             	mov    0x14(%edx),%esi
40c8b3:	8b 48 14             	mov    0x14(%eax),%ecx
40c8b6:	8b 7a 08             	mov    0x8(%edx),%edi
40c8b9:	75 04                	jne    0x40c8bf
40c8bb:	3b f1                	cmp    %ecx,%esi
40c8bd:	74 64                	je     0x40c923
40c8bf:	3b f1                	cmp    %ecx,%esi
40c8c1:	7c 0a                	jl     0x40c8cd
40c8c3:	7f 5e                	jg     0x40c923
40c8c5:	8b 4a 10             	mov    0x10(%edx),%ecx
40c8c8:	3b 48 10             	cmp    0x10(%eax),%ecx
40c8cb:	73 56                	jae    0x40c923
40c8cd:	8b 40 18             	mov    0x18(%eax),%eax
40c8d0:	85 c0                	test   %eax,%eax
40c8d2:	0f 85 28 ff ff ff    	jne    0x40c800
40c8d8:	e9 66 85 01 00       	jmp    0x424e43
40c8dd:	8b 53 08             	mov    0x8(%ebx),%edx
40c8e0:	8b ca                	mov    %edx,%ecx
40c8e2:	8b 73 0c             	mov    0xc(%ebx),%esi
40c8e5:	83 c1 01             	add    $0x1,%ecx
40c8e8:	8b c6                	mov    %esi,%eax
40c8ea:	89 4b 08             	mov    %ecx,0x8(%ebx)
40c8ed:	83 d0 00             	adc    $0x0,%eax
40c8f0:	89 55 e4             	mov    %edx,-0x1c(%ebp)
40c8f3:	89 43 0c             	mov    %eax,0xc(%ebx)
40c8f6:	8d 4b 7c             	lea    0x7c(%ebx),%ecx
40c8f9:	8d 45 f0             	lea    -0x10(%ebp),%eax
40c8fc:	89 75 e8             	mov    %esi,-0x18(%ebp)
40c8ff:	50                   	push   %eax
40c900:	8d 45 f8             	lea    -0x8(%ebp),%eax
40c903:	50                   	push   %eax
40c904:	8d 45 dc             	lea    -0x24(%ebp),%eax
40c907:	50                   	push   %eax
40c908:	e8 d3 00 00 00       	call   0x40c9e0
40c90d:	8b f8                	mov    %eax,%edi
40c90f:	8b 45 f4             	mov    -0xc(%ebp),%eax
40c912:	48                   	dec    %eax
40c913:	89 45 f4             	mov    %eax,-0xc(%ebp)
40c916:	85 ff                	test   %edi,%edi
40c918:	0f 84 92 fe ff ff    	je     0x40c7b0
40c91e:	e9 55 ff ff ff       	jmp    0x40c878
40c923:	8b 40 1c             	mov    0x1c(%eax),%eax
40c926:	eb a8                	jmp    0x40c8d0
40c928:	cc                   	int3
40c929:	cc                   	int3
40c92a:	cc                   	int3
40c92b:	cc                   	int3
40c92c:	cc                   	int3
40c92d:	cc                   	int3
40c92e:	cc                   	int3
40c92f:	cc                   	int3
40c930:	8b ff                	mov    %edi,%edi
40c932:	55                   	push   %ebp
40c933:	8b ec                	mov    %esp,%ebp
40c935:	6a ff                	push   $0xffffffff
40c937:	68 50 2c 42 00       	push   $0x422c50
40c93c:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40c942:	50                   	push   %eax
40c943:	51                   	push   %ecx
40c944:	53                   	push   %ebx
40c945:	56                   	push   %esi
40c946:	57                   	push   %edi
40c947:	a1 54 02 45 00       	mov    0x450254,%eax
40c94c:	33 c5                	xor    %ebp,%eax
40c94e:	50                   	push   %eax
40c94f:	8d 45 f4             	lea    -0xc(%ebp),%eax
40c952:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40c958:	8b f1                	mov    %ecx,%esi
40c95a:	8b 7d 08             	mov    0x8(%ebp),%edi
40c95d:	8b 4f 18             	mov    0x18(%edi),%ecx
40c960:	8b 47 1c             	mov    0x1c(%edi),%eax
40c963:	8b 5f 20             	mov    0x20(%edi),%ebx
40c966:	85 c9                	test   %ecx,%ecx
40c968:	0f 85 61 85 01 00    	jne    0x424ecf
40c96e:	85 c0                	test   %eax,%eax
40c970:	75 4c                	jne    0x40c9be
40c972:	85 db                	test   %ebx,%ebx
40c974:	75 4d                	jne    0x40c9c3
40c976:	8b 47 18             	mov    0x18(%edi),%eax
40c979:	85 c0                	test   %eax,%eax
40c97b:	75 03                	jne    0x40c980
40c97d:	8b 47 1c             	mov    0x1c(%edi),%eax
40c980:	89 06                	mov    %eax,(%esi)
40c982:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
40c989:	8b 46 08             	mov    0x8(%esi),%eax
40c98c:	8b 40 04             	mov    0x4(%eax),%eax
40c98f:	85 c0                	test   %eax,%eax
40c991:	74 44                	je     0x40c9d7
40c993:	57                   	push   %edi
40c994:	6a 00                	push   $0x0
40c996:	50                   	push   %eax
40c997:	ff 15 70 10 45 00    	call   *0x451070
40c99d:	85 c0                	test   %eax,%eax
40c99f:	0f 84 d7 85 01 00    	je     0x424f7c
40c9a5:	ff 4e 04             	decl   0x4(%esi)
40c9a8:	33 c0                	xor    %eax,%eax
40c9aa:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40c9ad:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c9b4:	59                   	pop    %ecx
40c9b5:	5f                   	pop    %edi
40c9b6:	5e                   	pop    %esi
40c9b7:	5b                   	pop    %ebx
40c9b8:	8b e5                	mov    %ebp,%esp
40c9ba:	5d                   	pop    %ebp
40c9bb:	c2 04 00             	ret    $0x4
40c9be:	89 58 20             	mov    %ebx,0x20(%eax)
40c9c1:	eb af                	jmp    0x40c972
40c9c3:	39 7b 18             	cmp    %edi,0x18(%ebx)
40c9c6:	0f 85 a2 85 01 00    	jne    0x424f6e
40c9cc:	85 c9                	test   %ecx,%ecx
40c9ce:	75 02                	jne    0x40c9d2
40c9d0:	8b c8                	mov    %eax,%ecx
40c9d2:	89 4b 18             	mov    %ecx,0x18(%ebx)
40c9d5:	eb ab                	jmp    0x40c982
40c9d7:	b8 02 00 00 80       	mov    $0x80000002,%eax
40c9dc:	eb cc                	jmp    0x40c9aa
40c9de:	cc                   	int3
40c9df:	cc                   	int3
40c9e0:	8b ff                	mov    %edi,%edi
40c9e2:	55                   	push   %ebp
40c9e3:	8b ec                	mov    %esp,%ebp
40c9e5:	6a ff                	push   $0xffffffff
40c9e7:	68 70 2c 42 00       	push   $0x422c70
40c9ec:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40c9f2:	50                   	push   %eax
40c9f3:	83 ec 18             	sub    $0x18,%esp
40c9f6:	53                   	push   %ebx
40c9f7:	56                   	push   %esi
40c9f8:	57                   	push   %edi
40c9f9:	a1 54 02 45 00       	mov    0x450254,%eax
40c9fe:	33 c5                	xor    %ebp,%eax
40ca00:	50                   	push   %eax
40ca01:	8d 45 f4             	lea    -0xc(%ebp),%eax
40ca04:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40ca0a:	89 65 f0             	mov    %esp,-0x10(%ebp)
40ca0d:	8b f1                	mov    %ecx,%esi
40ca0f:	89 75 ec             	mov    %esi,-0x14(%ebp)
40ca12:	8b 3e                	mov    (%esi),%edi
40ca14:	85 ff                	test   %edi,%edi
40ca16:	0f 84 f8 00 00 00    	je     0x40cb14
40ca1c:	8b 5d 08             	mov    0x8(%ebp),%ebx
40ca1f:	90                   	nop
40ca20:	85 ff                	test   %edi,%edi
40ca22:	0f 84 0b 86 01 00    	je     0x425033
40ca28:	8b 0b                	mov    (%ebx),%ecx
40ca2a:	8b 57 08             	mov    0x8(%edi),%edx
40ca2d:	3b ca                	cmp    %edx,%ecx
40ca2f:	0f 85 6d 85 01 00    	jne    0x424fa2
40ca35:	8b 43 08             	mov    0x8(%ebx),%eax
40ca38:	3b 47 10             	cmp    0x10(%edi),%eax
40ca3b:	75 0c                	jne    0x40ca49
40ca3d:	8b 43 0c             	mov    0xc(%ebx),%eax
40ca40:	3b 47 14             	cmp    0x14(%edi),%eax
40ca43:	0f 84 4f 85 01 00    	je     0x424f98
40ca49:	3b ca                	cmp    %edx,%ecx
40ca4b:	0f 85 51 85 01 00    	jne    0x424fa2
40ca51:	8b 4b 0c             	mov    0xc(%ebx),%ecx
40ca54:	8b 57 10             	mov    0x10(%edi),%edx
40ca57:	8b 47 14             	mov    0x14(%edi),%eax
40ca5a:	39 53 08             	cmp    %edx,0x8(%ebx)
40ca5d:	75 04                	jne    0x40ca63
40ca5f:	3b c8                	cmp    %eax,%ecx
40ca61:	74 13                	je     0x40ca76
40ca63:	3b c8                	cmp    %eax,%ecx
40ca65:	7f 0f                	jg     0x40ca76
40ca67:	0f 8c 2f 01 00 00    	jl     0x40cb9c
40ca6d:	39 53 08             	cmp    %edx,0x8(%ebx)
40ca70:	0f 82 26 01 00 00    	jb     0x40cb9c
40ca76:	8b 47 1c             	mov    0x1c(%edi),%eax
40ca79:	85 c0                	test   %eax,%eax
40ca7b:	0f 85 82 85 01 00    	jne    0x425003
40ca81:	8b 46 08             	mov    0x8(%esi),%eax
40ca84:	8b 48 08             	mov    0x8(%eax),%ecx
40ca87:	83 e1 05             	and    $0x5,%ecx
40ca8a:	83 c9 08             	or     $0x8,%ecx
40ca8d:	8b 40 04             	mov    0x4(%eax),%eax
40ca90:	85 c0                	test   %eax,%eax
40ca92:	0f 84 61 85 01 00    	je     0x424ff9
40ca98:	6a 28                	push   $0x28
40ca9a:	51                   	push   %ecx
40ca9b:	50                   	push   %eax
40ca9c:	ff 15 78 10 45 00    	call   *0x451078
40caa2:	8b c8                	mov    %eax,%ecx
40caa4:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40caa7:	85 c9                	test   %ecx,%ecx
40caa9:	0f 84 05 85 01 00    	je     0x424fb4
40caaf:	c7 41 20 00 00 00 00 	movl   $0x0,0x20(%ecx)
40cab6:	c7 41 1c 00 00 00 00 	movl   $0x0,0x1c(%ecx)
40cabd:	c7 41 18 00 00 00 00 	movl   $0x0,0x18(%ecx)
40cac4:	c7 45 fc 04 00 00 00 	movl   $0x4,-0x4(%ebp)
40cacb:	8b 45 0c             	mov    0xc(%ebp),%eax
40cace:	8b 00                	mov    (%eax),%eax
40cad0:	89 01                	mov    %eax,(%ecx)
40cad2:	8b 03                	mov    (%ebx),%eax
40cad4:	89 41 08             	mov    %eax,0x8(%ecx)
40cad7:	8b 43 04             	mov    0x4(%ebx),%eax
40cada:	89 41 0c             	mov    %eax,0xc(%ecx)
40cadd:	8b 43 08             	mov    0x8(%ebx),%eax
40cae0:	89 41 10             	mov    %eax,0x10(%ecx)
40cae3:	8b 43 0c             	mov    0xc(%ebx),%eax
40cae6:	89 41 14             	mov    %eax,0x14(%ecx)
40cae9:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)