4058e1:	0f b6 c0             	movzbl %al,%eax
4058e4:	51                   	push   %ecx
4058e5:	50                   	push   %eax
4058e6:	33 c0                	xor    %eax,%eax
4058e8:	8a 45 0d             	mov    0xd(%ebp),%al
4058eb:	0f b6 c0             	movzbl %al,%eax
4058ee:	50                   	push   %eax
4058ef:	0f b6 45 0c          	movzbl 0xc(%ebp),%eax
4058f3:	50                   	push   %eax
4058f4:	68 dc ca 40 00       	push   $0x40cadc
4058f9:	ff 75 08             	push   0x8(%ebp)
4058fc:	ff 15 30 a2 40 00    	call   *0x40a230
405902:	8b 45 08             	mov    0x8(%ebp),%eax
405905:	83 c4 18             	add    $0x18,%esp
405908:	5d                   	pop    %ebp
405909:	c2 08 00             	ret    $0x8
40590c:	b8 88 94 40 00       	mov    $0x409488,%eax
405911:	e8 1a 36 00 00       	call   0x408f30
405916:	81 ec a4 01 00 00    	sub    $0x1a4,%esp
40591c:	53                   	push   %ebx
40591d:	56                   	push   %esi
40591e:	33 f6                	xor    %esi,%esi
405920:	57                   	push   %edi
405921:	39 35 fc d7 40 00    	cmp    %esi,0x40d7fc
405927:	89 65 f0             	mov    %esp,-0x10(%ebp)
40592a:	8b d9                	mov    %ecx,%ebx
40592c:	89 75 ec             	mov    %esi,-0x14(%ebp)
40592f:	89 75 e4             	mov    %esi,-0x1c(%ebp)
405932:	89 75 fc             	mov    %esi,-0x4(%ebp)
405935:	0f 84 14 02 00 00    	je     0x405b4f
40593b:	39 35 00 d8 40 00    	cmp    %esi,0x40d800
405941:	0f 84 08 02 00 00    	je     0x405b4f
405947:	6a 02                	push   $0x2
405949:	56                   	push   %esi
40594a:	89 75 e8             	mov    %esi,-0x18(%ebp)
40594d:	ff 15 90 a0 40 00    	call   *0x40a090
405953:	50                   	push   %eax
405954:	8d 45 ec             	lea    -0x14(%ebp),%eax
405957:	6a 01                	push   $0x1
405959:	50                   	push   %eax
40595a:	ff 15 fc d7 40 00    	call   *0x40d7fc
405960:	3b c6                	cmp    %esi,%eax
405962:	0f 85 1e 01 00 00    	jne    0x405a86
405968:	33 ff                	xor    %edi,%edi
40596a:	8b 45 ec             	mov    -0x14(%ebp),%eax
40596d:	3b 38                	cmp    (%eax),%edi
40596f:	0f 83 11 01 00 00    	jae    0x405a86
405975:	8b 55 08             	mov    0x8(%ebp),%edx
405978:	8d 4c 7f 03          	lea    0x3(%edi,%edi,2),%ecx
40597c:	39 14 c8             	cmp    %edx,(%eax,%ecx,8)
40597f:	0f 85 f9 00 00 00    	jne    0x405a7e
405985:	8d 34 7f             	lea    (%edi,%edi,2),%esi
405988:	c1 e6 03             	shl    $0x3,%esi
40598b:	03 c6                	add    %esi,%eax
40598d:	83 78 10 00          	cmpl   $0x0,0x10(%eax)
405991:	75 04                	jne    0x405997
405993:	83 60 14 00          	andl   $0x0,0x14(%eax)
405997:	8b 45 ec             	mov    -0x14(%ebp),%eax
40599a:	66 8b 44 06 0c       	mov    0xc(%esi,%eax,1),%ax
40599f:	50                   	push   %eax
4059a0:	e8 3f 35 00 00       	call   0x408ee4
4059a5:	0f b7 c0             	movzwl %ax,%eax
4059a8:	50                   	push   %eax
4059a9:	8b 45 ec             	mov    -0x14(%ebp),%eax
4059ac:	8b cb                	mov    %ebx,%ecx
4059ae:	ff 74 06 08          	push   0x8(%esi,%eax,1)
4059b2:	8d 85 50 fe ff ff    	lea    -0x1b0(%ebp),%eax
4059b8:	50                   	push   %eax
4059b9:	e8 13 ff ff ff       	call   0x4058d1
4059be:	50                   	push   %eax
4059bf:	8d 85 d0 fe ff ff    	lea    -0x130(%ebp),%eax
4059c5:	68 14 cb 40 00       	push   $0x40cb14
4059ca:	50                   	push   %eax
4059cb:	ff 15 30 a2 40 00    	call   *0x40a230
4059d1:	83 c4 10             	add    $0x10,%esp
4059d4:	83 f8 1c             	cmp    $0x1c,%eax
4059d7:	89 45 e0             	mov    %eax,-0x20(%ebp)
4059da:	7d 0b                	jge    0x4059e7
4059dc:	c6 84 05 d0 fe ff ff 	movb   $0x20,-0x130(%ebp,%eax,1)
4059e3:	20
4059e4:	40                   	inc    %eax
4059e5:	eb ed                	jmp    0x4059d4
4059e7:	8b 45 ec             	mov    -0x14(%ebp),%eax
4059ea:	8d 34 7f             	lea    (%edi,%edi,2),%esi
4059ed:	c1 e6 03             	shl    $0x3,%esi
4059f0:	66 8b 44 06 14       	mov    0x14(%esi,%eax,1),%ax
4059f5:	50                   	push   %eax
4059f6:	e8 e9 34 00 00       	call   0x408ee4
4059fb:	0f b7 c0             	movzwl %ax,%eax
4059fe:	50                   	push   %eax
4059ff:	8b 45 ec             	mov    -0x14(%ebp),%eax
405a02:	8b cb                	mov    %ebx,%ecx
405a04:	ff 74 06 10          	push   0x10(%esi,%eax,1)
405a08:	8d 85 50 fe ff ff    	lea    -0x1b0(%ebp),%eax
405a0e:	50                   	push   %eax
405a0f:	e8 bd fe ff ff       	call   0x4058d1
405a14:	50                   	push   %eax
405a15:	8b 45 ec             	mov    -0x14(%ebp),%eax
405a18:	8b cb                	mov    %ebx,%ecx
405a1a:	ff 74 06 04          	push   0x4(%esi,%eax,1)
405a1e:	e8 94 fe ff ff       	call   0x4058b7
405a23:	50                   	push   %eax
405a24:	8b 45 e0             	mov    -0x20(%ebp),%eax
405a27:	68 04 cb 40 00       	push   $0x40cb04
405a2c:	8d 84 05 d0 fe ff ff 	lea    -0x130(%ebp,%eax,1),%eax
405a33:	50                   	push   %eax
405a34:	ff 15 58 a1 40 00    	call   *0x40a158
405a3a:	83 c4 14             	add    $0x14,%esp
405a3d:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
405a41:	75 17                	jne    0x405a5a
405a43:	6a 0f                	push   $0xf
405a45:	8b cb                	mov    %ebx,%ecx
405a47:	ff 73 18             	push   0x18(%ebx)
405a4a:	ff 73 4c             	push   0x4c(%ebx)
405a4d:	68 fc ca 40 00       	push   $0x40cafc
405a52:	e8 7c f4 ff ff       	call   0x404ed3
405a57:	89 45 e8             	mov    %eax,-0x18(%ebp)
405a5a:	8b 45 ec             	mov    -0x14(%ebp),%eax
405a5d:	83 7c 06 04 05       	cmpl   $0x5,0x4(%esi,%eax,1)
405a62:	74 04                	je     0x405a68
405a64:	6a 10                	push   $0x10
405a66:	eb 02                	jmp    0x405a6a
405a68:	6a 11                	push   $0x11
405a6a:	ff 73 18             	push   0x18(%ebx)
405a6d:	8d 85 d0 fe ff ff    	lea    -0x130(%ebp),%eax
405a73:	8b cb                	mov    %ebx,%ecx
405a75:	ff 75 e8             	push   -0x18(%ebp)
405a78:	50                   	push   %eax
405a79:	e8 55 f4 ff ff       	call   0x404ed3
405a7e:	47                   	inc    %edi
405a7f:	33 f6                	xor    %esi,%esi
405a81:	e9 e4 fe ff ff       	jmp    0x40596a
405a86:	6a 02                	push   $0x2
405a88:	56                   	push   %esi
405a89:	ff 15 90 a0 40 00    	call   *0x40a090
405a8f:	50                   	push   %eax
405a90:	8d 45 e4             	lea    -0x1c(%ebp),%eax
405a93:	6a 01                	push   $0x1
405a95:	50                   	push   %eax
405a96:	ff 15 00 d8 40 00    	call   *0x40d800
405a9c:	3b c6                	cmp    %esi,%eax
405a9e:	0f 85 9a 00 00 00    	jne    0x405b3e
405aa4:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
405aa7:	33 c0                	xor    %eax,%eax
405aa9:	3b 01                	cmp    (%ecx),%eax
405aab:	0f 83 8d 00 00 00    	jae    0x405b3e
405ab1:	8b 75 08             	mov    0x8(%ebp),%esi
405ab4:	8d 78 01             	lea    0x1(%eax),%edi
405ab7:	8d 14 7f             	lea    (%edi,%edi,2),%edx
405aba:	39 34 91             	cmp    %esi,(%ecx,%edx,4)
405abd:	75 76                	jne    0x405b35
405abf:	8d 34 40             	lea    (%eax,%eax,2),%esi
405ac2:	c1 e6 02             	shl    $0x2,%esi
405ac5:	66 8b 44 0e 08       	mov    0x8(%esi,%ecx,1),%ax
405aca:	50                   	push   %eax
405acb:	e8 14 34 00 00       	call   0x408ee4
405ad0:	0f b7 c0             	movzwl %ax,%eax
405ad3:	50                   	push   %eax
405ad4:	8b 45 e4             	mov    -0x1c(%ebp),%eax
405ad7:	8b cb                	mov    %ebx,%ecx
405ad9:	ff 74 06 04          	push   0x4(%esi,%eax,1)
405add:	8d 85 50 fe ff ff    	lea    -0x1b0(%ebp),%eax
405ae3:	50                   	push   %eax
405ae4:	e8 e8 fd ff ff       	call   0x4058d1
405ae9:	50                   	push   %eax
405aea:	8d 85 d0 fe ff ff    	lea    -0x130(%ebp),%eax
405af0:	68 f0 ca 40 00       	push   $0x40caf0
405af5:	50                   	push   %eax
405af6:	ff 15 58 a1 40 00    	call   *0x40a158
405afc:	83 c4 10             	add    $0x10,%esp
405aff:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
405b03:	75 17                	jne    0x405b1c
405b05:	6a 0f                	push   $0xf
405b07:	8b cb                	mov    %ebx,%ecx
405b09:	ff 73 18             	push   0x18(%ebx)
405b0c:	ff 73 4c             	push   0x4c(%ebx)
405b0f:	68 e8 ca 40 00       	push   $0x40cae8
405b14:	e8 ba f3 ff ff       	call   0x404ed3
405b19:	89 45 e8             	mov    %eax,-0x18(%ebp)
405b1c:	6a 12                	push   $0x12
405b1e:	8d 85 d0 fe ff ff    	lea    -0x130(%ebp),%eax
405b24:	ff 73 18             	push   0x18(%ebx)
405b27:	8b cb                	mov    %ebx,%ecx
405b29:	ff 75 e8             	push   -0x18(%ebp)
405b2c:	50                   	push   %eax
405b2d:	e8 a1 f3 ff ff       	call   0x404ed3
405b32:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
405b35:	8b c7                	mov    %edi,%eax
405b37:	33 f6                	xor    %esi,%esi
405b39:	e9 6b ff ff ff       	jmp    0x405aa9
405b3e:	8d 45 dc             	lea    -0x24(%ebp),%eax
405b41:	68 d8 a5 40 00       	push   $0x40a5d8
405b46:	50                   	push   %eax
405b47:	89 75 dc             	mov    %esi,-0x24(%ebp)
405b4a:	e8 e7 33 00 00       	call   0x408f36
405b4f:	83 4d d8 ff          	orl    $0xffffffff,-0x28(%ebp)
405b53:	8d 45 d8             	lea    -0x28(%ebp),%eax
405b56:	68 d8 a5 40 00       	push   $0x40a5d8
405b5b:	50                   	push   %eax
405b5c:	e8 d5 33 00 00       	call   0x408f36
405b61:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
405b65:	74 12                	je     0x405b79
405b67:	ff 75 e4             	push   -0x1c(%ebp)
405b6a:	6a 01                	push   $0x1
405b6c:	ff 15 90 a0 40 00    	call   *0x40a090
405b72:	50                   	push   %eax
405b73:	ff 15 8c a0 40 00    	call   *0x40a08c
405b79:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
405b7d:	74 12                	je     0x405b91
405b7f:	ff 75 ec             	push   -0x14(%ebp)
405b82:	6a 01                	push   $0x1
405b84:	ff 15 90 a0 40 00    	call   *0x40a090
405b8a:	50                   	push   %eax
405b8b:	ff 15 8c a0 40 00    	call   *0x40a08c
405b91:	b8 97 5b 40 00       	mov    $0x405b97,%eax
405b96:	c3                   	ret
405b97:	8b 4d f4             	mov    -0xc(%ebp),%ecx
405b9a:	8b 45 d4             	mov    -0x2c(%ebp),%eax
405b9d:	5f                   	pop    %edi
405b9e:	5e                   	pop    %esi
405b9f:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
405ba6:	5b                   	pop    %ebx
405ba7:	c9                   	leave
405ba8:	c2 04 00             	ret    $0x4
405bab:	b8 94 94 40 00       	mov    $0x409494,%eax
405bb0:	e8 7b 33 00 00       	call   0x408f30
405bb5:	83 ec 4c             	sub    $0x4c,%esp
405bb8:	53                   	push   %ebx
405bb9:	56                   	push   %esi
405bba:	33 c0                	xor    %eax,%eax
405bbc:	57                   	push   %edi
405bbd:	39 05 f8 d7 40 00    	cmp    %eax,0x40d7f8
405bc3:	89 65 f0             	mov    %esp,-0x10(%ebp)
405bc6:	89 4d c0             	mov    %ecx,-0x40(%ebp)
405bc9:	89 45 fc             	mov    %eax,-0x4(%ebp)
405bcc:	75 11                	jne    0x405bdf
405bce:	89 45 e8             	mov    %eax,-0x18(%ebp)
405bd1:	8d 45 e8             	lea    -0x18(%ebp),%eax
405bd4:	68 d8 a5 40 00       	push   $0x40a5d8
405bd9:	50                   	push   %eax
405bda:	e8 57 33 00 00       	call   0x408f36
405bdf:	8b 75 0c             	mov    0xc(%ebp),%esi
405be2:	6a 04                	push   $0x4
405be4:	68 80 cb 40 00       	push   $0x40cb80
405be9:	56                   	push   %esi
405bea:	ff 15 34 a1 40 00    	call   *0x40a134
405bf0:	83 c4 0c             	add    $0xc,%esp
405bf3:	85 c0                	test   %eax,%eax
405bf5:	0f 85 6b 01 00 00    	jne    0x405d66
405bfb:	8d 5e 04             	lea    0x4(%esi),%ebx
405bfe:	8b 35 2c a1 40 00    	mov    0x40a12c,%esi
405c04:	6a 3a                	push   $0x3a
405c06:	53                   	push   %ebx
405c07:	ff d6                	call   *%esi
405c09:	8b f8                	mov    %eax,%edi
405c0b:	59                   	pop    %ecx
405c0c:	85 ff                	test   %edi,%edi
405c0e:	59                   	pop    %ecx
405c0f:	75 12                	jne    0x405c23
405c11:	83 4d e4 ff          	orl    $0xffffffff,-0x1c(%ebp)
405c15:	8d 45 e4             	lea    -0x1c(%ebp),%eax
405c18:	68 d8 a5 40 00       	push   $0x40a5d8
405c1d:	50                   	push   %eax
405c1e:	e8 13 33 00 00       	call   0x408f36
405c23:	80 27 00             	andb   $0x0,(%edi)
405c26:	53                   	push   %ebx
405c27:	e8 c4 32 00 00       	call   0x408ef0
405c2c:	83 f8 ff             	cmp    $0xffffffff,%eax
405c2f:	89 45 ac             	mov    %eax,-0x54(%ebp)
405c32:	75 11                	jne    0x405c45
405c34:	09 45 e0             	or     %eax,-0x20(%ebp)
405c37:	8d 45 e0             	lea    -0x20(%ebp),%eax
405c3a:	68 d8 a5 40 00       	push   $0x40a5d8
405c3f:	50                   	push   %eax
405c40:	e8 f1 32 00 00       	call   0x408f36
405c45:	47                   	inc    %edi
405c46:	6a 20                	push   $0x20
405c48:	57                   	push   %edi
405c49:	ff d6                	call   *%esi
405c4b:	8b d8                	mov    %eax,%ebx
405c4d:	59                   	pop    %ecx
405c4e:	85 db                	test   %ebx,%ebx
405c50:	59                   	pop    %ecx
405c51:	75 12                	jne    0x405c65
405c53:	83 4d dc ff          	orl    $0xffffffff,-0x24(%ebp)
405c57:	8d 45 dc             	lea    -0x24(%ebp),%eax
405c5a:	68 d8 a5 40 00       	push   $0x40a5d8
405c5f:	50                   	push   %eax
405c60:	e8 d1 32 00 00       	call   0x408f36
405c65:	80 23 00             	andb   $0x0,(%ebx)
405c68:	57                   	push   %edi
405c69:	8b 3d 38 a1 40 00    	mov    0x40a138,%edi
405c6f:	ff d7                	call   *%edi
405c71:	59                   	pop    %ecx
405c72:	50                   	push   %eax
405c73:	e8 72 32 00 00       	call   0x408eea
405c78:	0f b7 c0             	movzwl %ax,%eax
405c7b:	85 c0                	test   %eax,%eax
405c7d:	89 45 b0             	mov    %eax,-0x50(%ebp)
405c80:	75 12                	jne    0x405c94
405c82:	83 4d d8 ff          	orl    $0xffffffff,-0x28(%ebp)
405c86:	8d 45 d8             	lea    -0x28(%ebp),%eax
405c89:	68 d8 a5 40 00       	push   $0x40a5d8
405c8e:	50                   	push   %eax
405c8f:	e8 a2 32 00 00       	call   0x408f36
405c94:	43                   	inc    %ebx
405c95:	6a 20                	push   $0x20
405c97:	53                   	push   %ebx
405c98:	ff 15 54 a1 40 00    	call   *0x40a154
405c9e:	8b d8                	mov    %eax,%ebx
405ca0:	59                   	pop    %ecx
405ca1:	85 db                	test   %ebx,%ebx
405ca3:	59                   	pop    %ecx
405ca4:	75 12                	jne    0x405cb8
405ca6:	83 4d d4 ff          	orl    $0xffffffff,-0x2c(%ebp)
405caa:	8d 45 d4             	lea    -0x2c(%ebp),%eax
405cad:	68 d8 a5 40 00       	push   $0x40a5d8
405cb2:	50                   	push   %eax
405cb3:	e8 7e 32 00 00       	call   0x408f36
405cb8:	43                   	inc    %ebx
405cb9:	6a 3a                	push   $0x3a
405cbb:	53                   	push   %ebx
405cbc:	ff d6                	call   *%esi
405cbe:	8b f0                	mov    %eax,%esi
405cc0:	59                   	pop    %ecx
405cc1:	85 f6                	test   %esi,%esi
405cc3:	59                   	pop    %ecx
405cc4:	75 12                	jne    0x405cd8
405cc6:	83 4d d0 ff          	orl    $0xffffffff,-0x30(%ebp)
405cca:	8d 45 d0             	lea    -0x30(%ebp),%eax
405ccd:	68 d8 a5 40 00       	push   $0x40a5d8
405cd2:	50                   	push   %eax
405cd3:	e8 5e 32 00 00       	call   0x408f36
405cd8:	80 26 00             	andb   $0x0,(%esi)
405cdb:	53                   	push   %ebx
405cdc:	e8 0f 32 00 00       	call   0x408ef0
405ce1:	83 f8 ff             	cmp    $0xffffffff,%eax
405ce4:	89 45 b4             	mov    %eax,-0x4c(%ebp)
405ce7:	75 11                	jne    0x405cfa
405ce9:	09 45 cc             	or     %eax,-0x34(%ebp)
405cec:	8d 45 cc             	lea    -0x34(%ebp),%eax
405cef:	68 d8 a5 40 00       	push   $0x40a5d8
405cf4:	50                   	push   %eax
405cf5:	e8 3c 32 00 00       	call   0x408f36
405cfa:	46                   	inc    %esi
405cfb:	56                   	push   %esi
405cfc:	ff d7                	call   *%edi
405cfe:	59                   	pop    %ecx
405cff:	50                   	push   %eax
405d00:	e8 e5 31 00 00       	call   0x408eea