402b8f:	50                   	push   %eax
402b90:	68 7f 28 40 00       	push   $0x40287f
402b95:	6a 0a                	push   $0xa
402b97:	53                   	push   %ebx
402b98:	ff 15 e8 a0 40 00    	call   *0x40a0e8
402b9e:	8b f0                	mov    %eax,%esi
402ba0:	3b f3                	cmp    %ebx,%esi
402ba2:	0f 84 03 02 00 00    	je     0x402dab
402ba8:	6a 32                	push   $0x32
402baa:	56                   	push   %esi
402bab:	ff 15 14 a1 40 00    	call   *0x40a114
402bb1:	3d 02 01 00 00       	cmp    $0x102,%eax
402bb6:	75 0a                	jne    0x402bc2
402bb8:	53                   	push   %ebx
402bb9:	56                   	push   %esi
402bba:	ff 15 ec a0 40 00    	call   *0x40a0ec
402bc0:	eb 55                	jmp    0x402c17
402bc2:	39 9d 60 f8 ff ff    	cmp    %ebx,-0x7a0(%ebp)
402bc8:	75 4d                	jne    0x402c17
402bca:	81 bd 64 f8 ff ff e8 	cmpl   $0x3e8,-0x79c(%ebp)
402bd1:	03 00 00
402bd4:	7d 41                	jge    0x402c17
402bd6:	53                   	push   %ebx
402bd7:	53                   	push   %ebx
402bd8:	8d 85 54 fe ff ff    	lea    -0x1ac(%ebp),%eax
402bde:	68 04 01 00 00       	push   $0x104
402be3:	50                   	push   %eax
402be4:	8d 85 68 f8 ff ff    	lea    -0x798(%ebp),%eax
402bea:	ff b5 64 f8 ff ff    	push   -0x79c(%ebp)
402bf0:	50                   	push   %eax
402bf1:	53                   	push   %ebx
402bf2:	53                   	push   %ebx
402bf3:	ff 15 e4 a0 40 00    	call   *0x40a0e4
402bf9:	85 c0                	test   %eax,%eax
402bfb:	75 08                	jne    0x402c05
402bfd:	88 9d 54 fe ff ff    	mov    %bl,-0x1ac(%ebp)
402c03:	eb 12                	jmp    0x402c17
402c05:	8b 85 64 f8 ff ff    	mov    -0x79c(%ebp),%eax
402c0b:	99                   	cltd
402c0c:	2b c2                	sub    %edx,%eax
402c0e:	d1 f8                	sar    $1,%eax
402c10:	88 9c 05 54 fe ff ff 	mov    %bl,-0x1ac(%ebp,%eax,1)
402c17:	56                   	push   %esi
402c18:	ff 15 dc a0 40 00    	call   *0x40a0dc
402c1e:	e9 88 01 00 00       	jmp    0x402dab
402c23:	8d 85 50 fd ff ff    	lea    -0x2b0(%ebp),%eax
402c29:	68 74 c3 40 00       	push   $0x40c374
402c2e:	50                   	push   %eax
402c2f:	ff d6                	call   *%esi
402c31:	59                   	pop    %ecx
402c32:	85 c0                	test   %eax,%eax
402c34:	59                   	pop    %ecx
402c35:	0f 85 d6 00 00 00    	jne    0x402d11
402c3b:	8d 45 ec             	lea    -0x14(%ebp),%eax
402c3e:	50                   	push   %eax
402c3f:	8d 85 74 ff ff ff    	lea    -0x8c(%ebp),%eax
402c45:	6a 18                	push   $0x18
402c47:	50                   	push   %eax
402c48:	53                   	push   %ebx
402c49:	ff 75 08             	push   0x8(%ebp)
402c4c:	ff 15 d4 d7 40 00    	call   *0x40d7d4
402c52:	3b c3                	cmp    %ebx,%eax
402c54:	0f 85 51 01 00 00    	jne    0x402dab
402c5a:	ff 75 84             	push   -0x7c(%ebp)
402c5d:	53                   	push   %ebx
402c5e:	68 10 04 00 00       	push   $0x410
402c63:	ff 15 0c a1 40 00    	call   *0x40a10c
402c69:	8b f0                	mov    %eax,%esi
402c6b:	3b f3                	cmp    %ebx,%esi
402c6d:	0f 84 38 01 00 00    	je     0x402dab
402c73:	ff 75 84             	push   -0x7c(%ebp)
402c76:	8d 85 0c f6 ff ff    	lea    -0x9f4(%ebp),%eax
402c7c:	50                   	push   %eax
402c7d:	8b 87 60 02 00 00    	mov    0x260(%edi),%eax
402c83:	8b 88 e8 01 00 00    	mov    0x1e8(%eax),%ecx
402c89:	e8 4d 3e 00 00       	call   0x406adb
402c8e:	83 f8 01             	cmp    $0x1,%eax
402c91:	75 09                	jne    0x402c9c
402c93:	8d 85 14 f6 ff ff    	lea    -0x9ec(%ebp),%eax
402c99:	50                   	push   %eax
402c9a:	eb 05                	jmp    0x402ca1
402c9c:	68 6c c3 40 00       	push   $0x40c36c
402ca1:	8d 85 54 fe ff ff    	lea    -0x1ac(%ebp),%eax
402ca7:	50                   	push   %eax
402ca8:	e8 9b 63 00 00       	call   0x409048
402cad:	59                   	pop    %ecx
402cae:	59                   	pop    %ecx
402caf:	56                   	push   %esi
402cb0:	ff 15 dc a0 40 00    	call   *0x40a0dc
402cb6:	8d 85 54 fe ff ff    	lea    -0x1ac(%ebp),%eax
402cbc:	68 64 c3 40 00       	push   $0x40c364
402cc1:	50                   	push   %eax
402cc2:	e8 87 63 00 00       	call   0x40904e
402cc7:	59                   	pop    %ecx
402cc8:	8d 84 05 54 fe ff ff 	lea    -0x1ac(%ebp,%eax,1),%eax
402ccf:	50                   	push   %eax
402cd0:	e8 73 63 00 00       	call   0x409048
402cd5:	8d 85 54 fe ff ff    	lea    -0x1ac(%ebp),%eax
402cdb:	50                   	push   %eax
402cdc:	e8 6d 63 00 00       	call   0x40904e
402ce1:	b9 04 01 00 00       	mov    $0x104,%ecx
402ce6:	83 c4 0c             	add    $0xc,%esp
402ce9:	2b c8                	sub    %eax,%ecx
402ceb:	8d 85 54 fe ff ff    	lea    -0x1ac(%ebp),%eax
402cf1:	51                   	push   %ecx
402cf2:	ff 75 84             	push   -0x7c(%ebp)
402cf5:	50                   	push   %eax
402cf6:	e8 53 63 00 00       	call   0x40904e
402cfb:	59                   	pop    %ecx
402cfc:	8d 84 05 54 fe ff ff 	lea    -0x1ac(%ebp,%eax,1),%eax
402d03:	50                   	push   %eax
402d04:	e8 bd 5b 00 00       	call   0x4088c6
402d09:	83 c4 0c             	add    $0xc,%esp
402d0c:	e9 9a 00 00 00       	jmp    0x402dab
402d11:	8d 85 50 fd ff ff    	lea    -0x2b0(%ebp),%eax
402d17:	68 5c c3 40 00       	push   $0x40c35c
402d1c:	50                   	push   %eax
402d1d:	ff d6                	call   *%esi
402d1f:	59                   	pop    %ecx
402d20:	85 c0                	test   %eax,%eax
402d22:	59                   	pop    %ecx
402d23:	0f 85 82 00 00 00    	jne    0x402dab
402d29:	8d 45 ec             	lea    -0x14(%ebp),%eax
402d2c:	50                   	push   %eax
402d2d:	8d 85 58 ff ff ff    	lea    -0xa8(%ebp),%eax
402d33:	6a 1c                	push   $0x1c
402d35:	50                   	push   %eax
402d36:	53                   	push   %ebx
402d37:	ff 75 08             	push   0x8(%ebp)
402d3a:	ff 15 d8 d7 40 00    	call   *0x40d7d8
402d40:	3b c3                	cmp    %ebx,%eax
402d42:	75 67                	jne    0x402dab
402d44:	ff b5 60 ff ff ff    	push   -0xa0(%ebp)
402d4a:	8d 85 bc f3 ff ff    	lea    -0xc44(%ebp),%eax
402d50:	50                   	push   %eax
402d51:	8b 87 60 02 00 00    	mov    0x260(%edi),%eax
402d57:	8b 88 e8 01 00 00    	mov    0x1e8(%eax),%ecx
402d5d:	e8 79 3d 00 00       	call   0x406adb
402d62:	83 f8 01             	cmp    $0x1,%eax
402d65:	75 09                	jne    0x402d70
402d67:	8d 85 c4 f3 ff ff    	lea    -0xc3c(%ebp),%eax
402d6d:	50                   	push   %eax
402d6e:	eb 05                	jmp    0x402d75
402d70:	68 6c c3 40 00       	push   $0x40c36c
402d75:	8d 85 4c fc ff ff    	lea    -0x3b4(%ebp),%eax
402d7b:	50                   	push   %eax
402d7c:	e8 c7 62 00 00       	call   0x409048
402d81:	59                   	pop    %ecx
402d82:	8d 85 4c fc ff ff    	lea    -0x3b4(%ebp),%eax
402d88:	59                   	pop    %ecx
402d89:	ff b5 64 ff ff ff    	push   -0x9c(%ebp)
402d8f:	ff b5 60 ff ff ff    	push   -0xa0(%ebp)
402d95:	50                   	push   %eax
402d96:	8d 85 54 fe ff ff    	lea    -0x1ac(%ebp),%eax
402d9c:	68 3c c3 40 00       	push   $0x40c33c
402da1:	50                   	push   %eax
402da2:	ff 15 58 a1 40 00    	call   *0x40a158
402da8:	83 c4 14             	add    $0x14,%esp
402dab:	38 9d 54 fe ff ff    	cmp    %bl,-0x1ac(%ebp)
402db1:	75 6c                	jne    0x402e1f
402db3:	8d 45 ec             	lea    -0x14(%ebp),%eax
402db6:	50                   	push   %eax
402db7:	53                   	push   %ebx
402db8:	53                   	push   %ebx
402db9:	6a 01                	push   $0x1
402dbb:	ff 75 08             	push   0x8(%ebp)
402dbe:	ff 15 d0 d7 40 00    	call   *0x40d7d0
402dc4:	3d 04 00 00 c0       	cmp    $0xc0000004,%eax
402dc9:	75 4c                	jne    0x402e17
402dcb:	ff 75 ec             	push   -0x14(%ebp)
402dce:	ff 15 44 a1 40 00    	call   *0x40a144
402dd4:	8b f0                	mov    %eax,%esi
402dd6:	59                   	pop    %ecx
402dd7:	3b f3                	cmp    %ebx,%esi
402dd9:	74 3c                	je     0x402e17
402ddb:	8d 45 ec             	lea    -0x14(%ebp),%eax
402dde:	50                   	push   %eax
402ddf:	ff 75 ec             	push   -0x14(%ebp)
402de2:	56                   	push   %esi
402de3:	6a 01                	push   $0x1
402de5:	ff 75 08             	push   0x8(%ebp)
402de8:	ff 15 d0 d7 40 00    	call   *0x40d7d0
402dee:	3b c3                	cmp    %ebx,%eax
402df0:	75 1d                	jne    0x402e0f
402df2:	53                   	push   %ebx
402df3:	53                   	push   %ebx
402df4:	8d 85 54 fe ff ff    	lea    -0x1ac(%ebp),%eax
402dfa:	68 04 01 00 00       	push   $0x104
402dff:	50                   	push   %eax
402e00:	0f b7 06             	movzwl (%esi),%eax
402e03:	50                   	push   %eax
402e04:	ff 76 04             	push   0x4(%esi)
402e07:	53                   	push   %ebx
402e08:	53                   	push   %ebx
402e09:	ff 15 e4 a0 40 00    	call   *0x40a0e4
402e0f:	56                   	push   %esi
402e10:	ff 15 48 a1 40 00    	call   *0x40a148
402e16:	59                   	pop    %ecx
402e17:	38 9d 54 fe ff ff    	cmp    %bl,-0x1ac(%ebp)
402e1d:	74 27                	je     0x402e46
402e1f:	8d 85 54 fe ff ff    	lea    -0x1ac(%ebp),%eax
402e25:	8b 8f 60 02 00 00    	mov    0x260(%edi),%ecx
402e2b:	89 45 a8             	mov    %eax,-0x58(%ebp)
402e2e:	8d 45 94             	lea    -0x6c(%ebp),%eax
402e31:	50                   	push   %eax
402e32:	53                   	push   %ebx
402e33:	68 06 10 00 00       	push   $0x1006
402e38:	c7 45 9c 01 00 00 00 	movl   $0x1,-0x64(%ebp)
402e3f:	ff 37                	push   (%edi)
402e41:	e8 ac 53 00 00       	call   0x4081f2
402e46:	ff 45 e4             	incl   -0x1c(%ebp)
402e49:	e9 f0 fb ff ff       	jmp    0x402a3e
402e4e:	89 45 d0             	mov    %eax,-0x30(%ebp)
402e51:	8d 45 d0             	lea    -0x30(%ebp),%eax
402e54:	68 d8 a5 40 00       	push   $0x40a5d8
402e59:	50                   	push   %eax
402e5a:	e8 d7 60 00 00       	call   0x408f36
402e5f:	8d 45 d8             	lea    -0x28(%ebp),%eax
402e62:	68 d8 a5 40 00       	push   $0x40a5d8
402e67:	50                   	push   %eax
402e68:	89 5d d8             	mov    %ebx,-0x28(%ebp)
402e6b:	e8 c6 60 00 00       	call   0x408f36
402e70:	33 db                	xor    %ebx,%ebx
402e72:	39 5d e0             	cmp    %ebx,-0x20(%ebp)
402e75:	74 09                	je     0x402e80
402e77:	ff 75 e0             	push   -0x20(%ebp)
402e7a:	ff 15 dc a0 40 00    	call   *0x40a0dc
402e80:	39 5d 08             	cmp    %ebx,0x8(%ebp)
402e83:	74 09                	je     0x402e8e
402e85:	ff 75 08             	push   0x8(%ebp)
402e88:	ff 15 dc a0 40 00    	call   *0x40a0dc
402e8e:	39 5d e8             	cmp    %ebx,-0x18(%ebp)
402e91:	74 0a                	je     0x402e9d
402e93:	ff 75 e8             	push   -0x18(%ebp)
402e96:	ff 15 48 a1 40 00    	call   *0x40a148
402e9c:	59                   	pop    %ecx
402e9d:	8b 75 bc             	mov    -0x44(%ebp),%esi
402ea0:	8b 45 98             	mov    -0x68(%ebp),%eax
402ea3:	3b 46 04             	cmp    0x4(%esi),%eax
402ea6:	7f 1c                	jg     0x402ec4
402ea8:	53                   	push   %ebx
402ea9:	ff 76 04             	push   0x4(%esi)
402eac:	68 08 10 00 00       	push   $0x1008
402eb1:	ff 36                	push   (%esi)
402eb3:	ff 15 dc a2 40 00    	call   *0x40a2dc
402eb9:	ff 4e 04             	decl   0x4(%esi)
402ebc:	8b 46 04             	mov    0x4(%esi),%eax
402ebf:	39 45 98             	cmp    %eax,-0x68(%ebp)
402ec2:	7e e4                	jle    0x402ea8
402ec4:	53                   	push   %ebx
402ec5:	6a 01                	push   $0x1
402ec7:	6a 0b                	push   $0xb
402ec9:	ff 36                	push   (%esi)
402ecb:	ff 15 dc a2 40 00    	call   *0x40a2dc
402ed1:	8b 45 98             	mov    -0x68(%ebp),%eax
402ed4:	89 46 04             	mov    %eax,0x4(%esi)
402ed7:	b8 dd 2e 40 00       	mov    $0x402edd,%eax
402edc:	c3                   	ret
402edd:	8b 45 90             	mov    -0x70(%ebp),%eax
402ee0:	8b 4d f4             	mov    -0xc(%ebp),%ecx
402ee3:	5f                   	pop    %edi
402ee4:	5e                   	pop    %esi
402ee5:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402eec:	5b                   	pop    %ebx
402eed:	c9                   	leave
402eee:	c2 04 00             	ret    $0x4
402ef1:	8b 54 24 04          	mov    0x4(%esp),%edx
402ef5:	33 c0                	xor    %eax,%eax
402ef7:	8a 0a                	mov    (%edx),%cl
402ef9:	84 c9                	test   %cl,%cl
402efb:	74 21                	je     0x402f1e
402efd:	56                   	push   %esi
402efe:	8b f0                	mov    %eax,%esi
402f00:	c1 e6 13             	shl    $0x13,%esi
402f03:	c1 e8 0d             	shr    $0xd,%eax
402f06:	0b c6                	or     %esi,%eax
402f08:	80 f9 61             	cmp    $0x61,%cl
402f0b:	0f be c9             	movsbl %cl,%ecx
402f0e:	7c 03                	jl     0x402f13
402f10:	83 e9 20             	sub    $0x20,%ecx
402f13:	03 c1                	add    %ecx,%eax
402f15:	8a 4a 01             	mov    0x1(%edx),%cl
402f18:	42                   	inc    %edx
402f19:	84 c9                	test   %cl,%cl
402f1b:	75 e1                	jne    0x402efe
402f1d:	5e                   	pop    %esi
402f1e:	c3                   	ret
402f1f:	55                   	push   %ebp
402f20:	8b ec                	mov    %esp,%ebp
402f22:	81 ec 0c 01 00 00    	sub    $0x10c,%esp
402f28:	33 c9                	xor    %ecx,%ecx
402f2a:	39 4d 14             	cmp    %ecx,0x14(%ebp)
402f2d:	0f 86 12 01 00 00    	jbe    0x403045
402f33:	33 c0                	xor    %eax,%eax
402f35:	88 84 05 f4 fe ff ff 	mov    %al,-0x10c(%ebp,%eax,1)
402f3c:	40                   	inc    %eax
402f3d:	3d 00 01 00 00       	cmp    $0x100,%eax
402f42:	72 f1                	jb     0x402f35
402f44:	53                   	push   %ebx
402f45:	56                   	push   %esi
402f46:	8b 35 40 a1 40 00    	mov    0x40a140,%esi
402f4c:	57                   	push   %edi
402f4d:	89 4d f8             	mov    %ecx,-0x8(%ebp)
402f50:	89 4d f4             	mov    %ecx,-0xc(%ebp)
402f53:	bb ff 00 00 00       	mov    $0xff,%ebx
402f58:	bf b9 07 00 00       	mov    $0x7b9,%edi
402f5d:	8b 45 f4             	mov    -0xc(%ebp),%eax
402f60:	33 d2                	xor    %edx,%edx
402f62:	6a 41                	push   $0x41
402f64:	6a 61                	push   $0x61
402f66:	8a 8c 05 f4 fe ff ff 	mov    -0x10c(%ebp,%eax,1),%cl
402f6d:	68 d8 c3 40 00       	push   $0x40c3d8
402f72:	f7 75 0c             	divl   0xc(%ebp)
402f75:	8b 45 08             	mov    0x8(%ebp),%eax
402f78:	88 4d ff             	mov    %cl,-0x1(%ebp)
402f7b:	8a 04 02             	mov    (%edx,%eax,1),%al
402f7e:	8b 55 f8             	mov    -0x8(%ebp),%edx
402f81:	03 d1                	add    %ecx,%edx
402f83:	03 c2                	add    %edx,%eax
402f85:	23 c3                	and    %ebx,%eax
402f87:	89 45 f8             	mov    %eax,-0x8(%ebp)
402f8a:	ff d6                	call   *%esi
402f8c:	68 10 eb 09 00       	push   $0x9eb10
402f91:	57                   	push   %edi
402f92:	68 c4 c3 40 00       	push   $0x40c3c4
402f97:	ff d6                	call   *%esi
402f99:	57                   	push   %edi
402f9a:	68 a4 c3 40 00       	push   $0x40c3a4
402f9f:	ff d6                	call   *%esi
402fa1:	57                   	push   %edi
402fa2:	68 84 c3 40 00       	push   $0x40c384
402fa7:	ff d6                	call   *%esi
402fa9:	8b 45 f8             	mov    -0x8(%ebp),%eax
402fac:	8b 55 f4             	mov    -0xc(%ebp),%edx
402faf:	83 c4 28             	add    $0x28,%esp
402fb2:	ff 45 f4             	incl   -0xc(%ebp)
402fb5:	8a 8c 05 f4 fe ff ff 	mov    -0x10c(%ebp,%eax,1),%cl
402fbc:	81 7d f4 00 01 00 00 	cmpl   $0x100,-0xc(%ebp)
402fc3:	8d 84 05 f4 fe ff ff 	lea    -0x10c(%ebp,%eax,1),%eax
402fca:	88 8c 15 f4 fe ff ff 	mov    %cl,-0x10c(%ebp,%edx,1)
402fd1:	8a 4d ff             	mov    -0x1(%ebp),%cl
402fd4:	88 08                	mov    %cl,(%eax)
402fd6:	72 85                	jb     0x402f5d
402fd8:	8b 45 14             	mov    0x14(%ebp),%eax
402fdb:	8b 4d 10             	mov    0x10(%ebp),%ecx
402fde:	33 ff                	xor    %edi,%edi
402fe0:	48                   	dec    %eax
402fe1:	40                   	inc    %eax
402fe2:	89 7d f8             	mov    %edi,-0x8(%ebp)
402fe5:	89 4d 14             	mov    %ecx,0x14(%ebp)