40a7f4:	5b                   	pop    %ebx
40a7f5:	8b c1                	mov    %ecx,%eax
40a7f7:	6a 18                	push   $0x18
40a7f9:	99                   	cltd
40a7fa:	59                   	pop    %ecx
40a7fb:	f7 f9                	idiv   %ecx
40a7fd:	3b c3                	cmp    %ebx,%eax
40a7ff:	7e 43                	jle    0x40a844
40a801:	53                   	push   %ebx
40a802:	8b cf                	mov    %edi,%ecx
40a804:	e8 47 c2 ff ff       	call   0x406a50
40a809:	50                   	push   %eax
40a80a:	68 7c 3f 40 00       	push   $0x403f7c
40a80f:	56                   	push   %esi
40a810:	e8 33 db ff ff       	call   0x408348
40a815:	83 c4 0c             	add    $0xc,%esp
40a818:	68 8c 3f 40 00       	push   $0x403f8c
40a81d:	51                   	push   %ecx
40a81e:	8b 4e 08             	mov    0x8(%esi),%ecx
40a821:	53                   	push   %ebx
40a822:	e8 29 c2 ff ff       	call   0x406a50
40a827:	59                   	pop    %ecx
40a828:	50                   	push   %eax
40a829:	8b ce                	mov    %esi,%ecx
40a82b:	e8 63 fa ff ff       	call   0x40a293
40a830:	8b 7e 08             	mov    0x8(%esi),%edi
40a833:	43                   	inc    %ebx
40a834:	6a 18                	push   $0x18
40a836:	59                   	pop    %ecx
40a837:	8b 47 14             	mov    0x14(%edi),%eax
40a83a:	2b 47 10             	sub    0x10(%edi),%eax
40a83d:	99                   	cltd
40a83e:	f7 f9                	idiv   %ecx
40a840:	3b d8                	cmp    %eax,%ebx
40a842:	7c bd                	jl     0x40a801
40a844:	5f                   	pop    %edi
40a845:	5e                   	pop    %esi
40a846:	5b                   	pop    %ebx
40a847:	8b e5                	mov    %ebp,%esp
40a849:	5d                   	pop    %ebp
40a84a:	c3                   	ret
40a84b:	cc                   	int3
40a84c:	cc                   	int3
40a84d:	cc                   	int3
40a84e:	cc                   	int3
40a84f:	cc                   	int3
40a850:	6a 2d                	push   $0x2d
40a852:	e8 e5 bc ff ff       	call   0x40653c
40a857:	c3                   	ret
40a858:	cc                   	int3
40a859:	cc                   	int3
40a85a:	cc                   	int3
40a85b:	cc                   	int3
40a85c:	cc                   	int3
40a85d:	cc                   	int3
40a85e:	cc                   	int3
40a85f:	cc                   	int3
40a860:	8b ff                	mov    %edi,%edi
40a862:	56                   	push   %esi
40a863:	8b f1                	mov    %ecx,%esi
40a865:	6a 02                	push   $0x2
40a867:	6a 02                	push   $0x2
40a869:	8b 4e 08             	mov    0x8(%esi),%ecx
40a86c:	e8 50 c3 ff ff       	call   0x406bc1
40a871:	8b 4e 08             	mov    0x8(%esi),%ecx
40a874:	6a 00                	push   $0x0
40a876:	e8 15 c2 ff ff       	call   0x406a90
40a87b:	8b 4e 08             	mov    0x8(%esi),%ecx
40a87e:	6a 01                	push   $0x1
40a880:	e8 cb c1 ff ff       	call   0x406a50
40a885:	50                   	push   %eax
40a886:	8d 4e 18             	lea    0x18(%esi),%ecx
40a889:	e8 13 bc ff ff       	call   0x4064a1
40a88e:	5e                   	pop    %esi
40a88f:	c3                   	ret
40a890:	83 c1 18             	add    $0x18,%ecx
40a893:	83 79 14 08          	cmpl   $0x8,0x14(%ecx)
40a897:	72 02                	jb     0x40a89b
40a899:	8b 09                	mov    (%ecx),%ecx
40a89b:	6a 00                	push   $0x0
40a89d:	51                   	push   %ecx
40a89e:	ff 15 20 20 41 00    	call   *0x412020
40a8a4:	85 c0                	test   %eax,%eax
40a8a6:	75 10                	jne    0x40a8b8
40a8a8:	ff 15 70 20 41 00    	call   *0x412070
40a8ae:	6a 0b                	push   $0xb
40a8b0:	5a                   	pop    %edx
40a8b1:	8b c8                	mov    %eax,%ecx
40a8b3:	e9 2b cd ff ff       	jmp    0x4075e3
40a8b8:	c3                   	ret
40a8b9:	cc                   	int3
40a8ba:	cc                   	int3
40a8bb:	cc                   	int3
40a8bc:	cc                   	int3
40a8bd:	cc                   	int3
40a8be:	cc                   	int3
40a8bf:	cc                   	int3
40a8c0:	6a 2e                	push   $0x2e
40a8c2:	e8 75 bc ff ff       	call   0x40653c
40a8c7:	c3                   	ret
40a8c8:	6a 1c                	push   $0x1c
40a8ca:	b8 1c f1 40 00       	mov    $0x40f11c,%eax
40a8cf:	e8 7a 3d 00 00       	call   0x40e64e
40a8d4:	8b d9                	mov    %ecx,%ebx
40a8d6:	33 c0                	xor    %eax,%eax
40a8d8:	89 45 d8             	mov    %eax,-0x28(%ebp)
40a8db:	89 45 dc             	mov    %eax,-0x24(%ebp)
40a8de:	89 45 e0             	mov    %eax,-0x20(%ebp)
40a8e1:	8d 73 18             	lea    0x18(%ebx),%esi
40a8e4:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a8e7:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40a8eb:	72 04                	jb     0x40a8f1
40a8ed:	8b 0e                	mov    (%esi),%ecx
40a8ef:	eb 02                	jmp    0x40a8f3
40a8f1:	8b ce                	mov    %esi,%ecx
40a8f3:	8d 45 f0             	lea    -0x10(%ebp),%eax
40a8f6:	33 d2                	xor    %edx,%edx
40a8f8:	50                   	push   %eax
40a8f9:	8d 45 d8             	lea    -0x28(%ebp),%eax
40a8fc:	50                   	push   %eax
40a8fd:	51                   	push   %ecx
40a8fe:	ff 75 08             	push   0x8(%ebp)
40a901:	e8 91 d8 ff ff       	call   0x408197
40a906:	85 c0                	test   %eax,%eax
40a908:	75 7f                	jne    0x40a989
40a90a:	8b 45 f0             	mov    -0x10(%ebp),%eax
40a90d:	83 78 0c 02          	cmpl   $0x2,0xc(%eax)
40a911:	75 51                	jne    0x40a964
40a913:	83 38 01             	cmpl   $0x1,(%eax)
40a916:	75 4c                	jne    0x40a964
40a918:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
40a91c:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
40a920:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
40a924:	ff 75 08             	push   0x8(%ebp)
40a927:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40a92a:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40a92e:	6a 25                	push   $0x25
40a930:	50                   	push   %eax
40a931:	e8 9e 30 00 00       	call   0x40d9d4
40a936:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40a939:	56                   	push   %esi
40a93a:	68 c0 3f 40 00       	push   $0x403fc0
40a93f:	53                   	push   %ebx
40a940:	e8 03 da ff ff       	call   0x408348
40a945:	83 c4 18             	add    $0x18,%esp
40a948:	85 f6                	test   %esi,%esi
40a94a:	74 08                	je     0x40a954
40a94c:	56                   	push   %esi
40a94d:	ff 15 e4 21 41 00    	call   *0x4121e4
40a953:	59                   	pop    %ecx
40a954:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a957:	e8 bb b5 ff ff       	call   0x405f17
40a95c:	e8 bb 3c 00 00       	call   0x40e61c
40a961:	c2 04 00             	ret    $0x4
40a964:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40a968:	72 02                	jb     0x40a96c
40a96a:	8b 36                	mov    (%esi),%esi
40a96c:	6a 00                	push   $0x0
40a96e:	ff 75 08             	push   0x8(%ebp)
40a971:	56                   	push   %esi
40a972:	ff 15 1c 20 41 00    	call   *0x41201c
40a978:	85 c0                	test   %eax,%eax
40a97a:	75 d8                	jne    0x40a954
40a97c:	ff 75 08             	push   0x8(%ebp)
40a97f:	6a 10                	push   $0x10
40a981:	ff 15 70 20 41 00    	call   *0x412070
40a987:	eb 07                	jmp    0x40a990
40a989:	68 6c 3c 40 00       	push   $0x403c6c
40a98e:	6a 0e                	push   $0xe
40a990:	50                   	push   %eax
40a991:	e8 7f cc ff ff       	call   0x407615
40a996:	cc                   	int3
40a997:	6a 20                	push   $0x20
40a999:	b8 47 f1 40 00       	mov    $0x40f147,%eax
40a99e:	e8 ab 3c 00 00       	call   0x40e64e
40a9a3:	8b d9                	mov    %ecx,%ebx
40a9a5:	8d 73 18             	lea    0x18(%ebx),%esi
40a9a8:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40a9ac:	72 04                	jb     0x40a9b2
40a9ae:	8b 06                	mov    (%esi),%eax
40a9b0:	eb 02                	jmp    0x40a9b4
40a9b2:	8b c6                	mov    %esi,%eax
40a9b4:	6a 02                	push   $0x2
40a9b6:	6a 01                	push   $0x1
40a9b8:	50                   	push   %eax
40a9b9:	ff 15 28 20 41 00    	call   *0x412028
40a9bf:	8b f8                	mov    %eax,%edi
40a9c1:	85 ff                	test   %edi,%edi
40a9c3:	0f 84 14 01 00 00    	je     0x40aadd
40a9c9:	a1 30 20 41 00       	mov    0x412030,%eax
40a9ce:	33 c9                	xor    %ecx,%ecx
40a9d0:	88 4d d4             	mov    %cl,-0x2c(%ebp)
40a9d3:	89 45 d8             	mov    %eax,-0x28(%ebp)
40a9d6:	89 7d dc             	mov    %edi,-0x24(%ebp)
40a9d9:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40a9dc:	89 4d e0             	mov    %ecx,-0x20(%ebp)
40a9df:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40a9e2:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40a9e5:	8d 45 f0             	lea    -0x10(%ebp),%eax
40a9e8:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40a9ec:	50                   	push   %eax
40a9ed:	8d 45 e0             	lea    -0x20(%ebp),%eax
40a9f0:	50                   	push   %eax
40a9f1:	51                   	push   %ecx
40a9f2:	6a 1b                	push   $0x1b
40a9f4:	5a                   	pop    %edx
40a9f5:	8b cf                	mov    %edi,%ecx
40a9f7:	e8 69 d6 ff ff       	call   0x408065
40a9fc:	85 c0                	test   %eax,%eax
40a9fe:	0f 85 e9 00 00 00    	jne    0x40aaed
40aa04:	8b 45 f0             	mov    -0x10(%ebp),%eax
40aa07:	83 78 0c 02          	cmpl   $0x2,0xc(%eax)
40aa0b:	75 36                	jne    0x40aa43
40aa0d:	83 38 00             	cmpl   $0x0,(%eax)
40aa10:	75 31                	jne    0x40aa43
40aa12:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40aa16:	72 02                	jb     0x40aa1a
40aa18:	8b 36                	mov    (%esi),%esi
40aa1a:	6a 00                	push   $0x0
40aa1c:	6a 00                	push   $0x0
40aa1e:	56                   	push   %esi
40aa1f:	ff 15 1c 20 41 00    	call   *0x41201c
40aa25:	85 c0                	test   %eax,%eax
40aa27:	0f 84 cd 00 00 00    	je     0x40aafa
40aa2d:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40aa30:	e8 e2 b4 ff ff       	call   0x405f17
40aa35:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
40aa38:	e8 26 b4 ff ff       	call   0x405e63
40aa3d:	e8 da 3b 00 00       	call   0x40e61c
40aa42:	c3                   	ret
40aa43:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
40aa47:	8d 45 f0             	lea    -0x10(%ebp),%eax
40aa4a:	50                   	push   %eax
40aa4b:	8d 45 e0             	lea    -0x20(%ebp),%eax
40aa4e:	33 d2                	xor    %edx,%edx
40aa50:	50                   	push   %eax
40aa51:	51                   	push   %ecx
40aa52:	42                   	inc    %edx
40aa53:	8b cf                	mov    %edi,%ecx
40aa55:	e8 0b d6 ff ff       	call   0x408065
40aa5a:	85 c0                	test   %eax,%eax
40aa5c:	74 0a                	je     0x40aa68
40aa5e:	68 50 2e 40 00       	push   $0x402e50
40aa63:	e9 8a 00 00 00       	jmp    0x40aaf2
40aa68:	8b 45 f0             	mov    -0x10(%ebp),%eax
40aa6b:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
40aa6f:	74 61                	je     0x40aad2
40aa71:	8b 38                	mov    (%eax),%edi
40aa73:	8d 45 ec             	lea    -0x14(%ebp),%eax
40aa76:	50                   	push   %eax
40aa77:	57                   	push   %edi
40aa78:	ff 15 24 20 41 00    	call   *0x412024
40aa7e:	85 c0                	test   %eax,%eax
40aa80:	75 0d                	jne    0x40aa8f
40aa82:	ff 15 70 20 41 00    	call   *0x412070
40aa88:	68 6c 2e 40 00       	push   $0x402e6c
40aa8d:	eb 63                	jmp    0x40aaf2
40aa8f:	33 f6                	xor    %esi,%esi
40aa91:	39 75 ec             	cmp    %esi,-0x14(%ebp)
40aa94:	76 97                	jbe    0x40aa2d
40aa96:	8d 45 f0             	lea    -0x10(%ebp),%eax
40aa99:	50                   	push   %eax
40aa9a:	8d 45 e0             	lea    -0x20(%ebp),%eax
40aa9d:	50                   	push   %eax
40aa9e:	51                   	push   %ecx
40aa9f:	56                   	push   %esi
40aaa0:	6a 02                	push   $0x2
40aaa2:	5a                   	pop    %edx
40aaa3:	8b cf                	mov    %edi,%ecx
40aaa5:	e8 51 d6 ff ff       	call   0x4080fb
40aaaa:	85 c0                	test   %eax,%eax
40aaac:	75 1d                	jne    0x40aacb
40aaae:	8b 45 f0             	mov    -0x10(%ebp),%eax
40aab1:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
40aab5:	74 09                	je     0x40aac0
40aab7:	ff 30                	push   (%eax)
40aab9:	8b cb                	mov    %ebx,%ecx
40aabb:	e8 08 fe ff ff       	call   0x40a8c8
40aac0:	46                   	inc    %esi
40aac1:	3b 75 ec             	cmp    -0x14(%ebp),%esi
40aac4:	72 d0                	jb     0x40aa96
40aac6:	e9 62 ff ff ff       	jmp    0x40aa2d
40aacb:	68 c0 2e 40 00       	push   $0x402ec0
40aad0:	eb 20                	jmp    0x40aaf2
40aad2:	68 50 2e 40 00       	push   $0x402e50
40aad7:	6a 0e                	push   $0xe
40aad9:	6a 0d                	push   $0xd
40aadb:	eb 18                	jmp    0x40aaf5
40aadd:	ff 15 70 20 41 00    	call   *0x412070
40aae3:	6a 08                	push   $0x8
40aae5:	5a                   	pop    %edx
40aae6:	8b c8                	mov    %eax,%ecx
40aae8:	e8 f6 ca ff ff       	call   0x4075e3
40aaed:	68 f8 26 40 00       	push   $0x4026f8
40aaf2:	6a 0e                	push   $0xe
40aaf4:	50                   	push   %eax
40aaf5:	e8 1b cb ff ff       	call   0x407615
40aafa:	6a 11                	push   $0x11
40aafc:	ff 15 70 20 41 00    	call   *0x412070
40ab02:	50                   	push   %eax
40ab03:	e8 0d cb ff ff       	call   0x407615
40ab08:	cc                   	int3
40ab09:	cc                   	int3
40ab0a:	cc                   	int3
40ab0b:	cc                   	int3
40ab0c:	cc                   	int3
40ab0d:	cc                   	int3
40ab0e:	cc                   	int3
40ab0f:	cc                   	int3
40ab10:	8b ff                	mov    %edi,%edi
40ab12:	53                   	push   %ebx
40ab13:	56                   	push   %esi
40ab14:	8b f1                	mov    %ecx,%esi
40ab16:	6a 18                	push   $0x18
40ab18:	5b                   	pop    %ebx
40ab19:	8b 4e 08             	mov    0x8(%esi),%ecx
40ab1c:	8b 51 14             	mov    0x14(%ecx),%edx
40ab1f:	2b 51 10             	sub    0x10(%ecx),%edx
40ab22:	8d 42 d0             	lea    -0x30(%edx),%eax
40ab25:	3b c3                	cmp    %ebx,%eax
40ab27:	73 09                	jae    0x40ab32
40ab29:	8b ce                	mov    %esi,%ecx
40ab2b:	5e                   	pop    %esi
40ab2c:	5b                   	pop    %ebx
40ab2d:	e9 65 fe ff ff       	jmp    0x40a997
40ab32:	8b c2                	mov    %edx,%eax
40ab34:	99                   	cltd
40ab35:	f7 fb                	idiv   %ebx
40ab37:	57                   	push   %edi
40ab38:	6a 02                	push   $0x2
40ab3a:	5f                   	pop    %edi
40ab3b:	3b c7                	cmp    %edi,%eax
40ab3d:	7e 1f                	jle    0x40ab5e
40ab3f:	57                   	push   %edi
40ab40:	e8 0b bf ff ff       	call   0x406a50
40ab45:	50                   	push   %eax
40ab46:	8b ce                	mov    %esi,%ecx
40ab48:	e8 7b fd ff ff       	call   0x40a8c8
40ab4d:	8b 4e 08             	mov    0x8(%esi),%ecx
40ab50:	47                   	inc    %edi
40ab51:	8b 41 14             	mov    0x14(%ecx),%eax
40ab54:	2b 41 10             	sub    0x10(%ecx),%eax
40ab57:	99                   	cltd
40ab58:	f7 fb                	idiv   %ebx
40ab5a:	3b f8                	cmp    %eax,%edi
40ab5c:	7c e1                	jl     0x40ab3f
40ab5e:	5f                   	pop    %edi
40ab5f:	5e                   	pop    %esi
40ab60:	5b                   	pop    %ebx
40ab61:	c3                   	ret