405bde:	3b f3                	cmp    %ebx,%esi
405be0:	73 14                	jae    0x405bf6
405be2:	8b cb                	mov    %ebx,%ecx
405be4:	2b ce                	sub    %esi,%ecx
405be6:	51                   	push   %ecx
405be7:	8d 44 35 c0          	lea    -0x40(%ebp,%esi,1),%eax
405beb:	6a 36                	push   $0x36
405bed:	50                   	push   %eax
405bee:	e8 0d 46 01 00       	call   0x41a200
405bf3:	83 c4 0c             	add    $0xc,%esp
405bf6:	8d 85 10 ff ff ff    	lea    -0xf0(%ebp),%eax
405bfc:	50                   	push   %eax
405bfd:	e8 2f a8 00 00       	call   0x410431
405c02:	53                   	push   %ebx
405c03:	8d 45 c0             	lea    -0x40(%ebp),%eax
405c06:	50                   	push   %eax
405c07:	8d 85 10 ff ff ff    	lea    -0xf0(%ebp),%eax
405c0d:	50                   	push   %eax
405c0e:	e8 20 ab 00 00       	call   0x410733
405c13:	ff 75 14             	push   0x14(%ebp)
405c16:	8d 85 10 ff ff ff    	lea    -0xf0(%ebp),%eax
405c1c:	ff 75 10             	push   0x10(%ebp)
405c1f:	50                   	push   %eax
405c20:	e8 0e ab 00 00       	call   0x410733
405c25:	8d 45 a0             	lea    -0x60(%ebp),%eax
405c28:	50                   	push   %eax
405c29:	8d 85 10 ff ff ff    	lea    -0xf0(%ebp),%eax
405c2f:	50                   	push   %eax
405c30:	e8 77 ab 00 00       	call   0x4107ac
405c35:	8d 85 a0 fe ff ff    	lea    -0x160(%ebp),%eax
405c3b:	50                   	push   %eax
405c3c:	e8 f0 a7 00 00       	call   0x410431
405c41:	33 c9                	xor    %ecx,%ecx
405c43:	85 f6                	test   %esi,%esi
405c45:	76 19                	jbe    0x405c60
405c47:	8b 7d 08             	mov    0x8(%ebp),%edi
405c4a:	8d 45 c0             	lea    -0x40(%ebp),%eax
405c4d:	2b f8                	sub    %eax,%edi
405c4f:	8d 44 0d c0          	lea    -0x40(%ebp,%ecx,1),%eax
405c53:	8a 14 07             	mov    (%edi,%eax,1),%dl
405c56:	80 f2 5c             	xor    $0x5c,%dl
405c59:	41                   	inc    %ecx
405c5a:	88 10                	mov    %dl,(%eax)
405c5c:	3b ce                	cmp    %esi,%ecx
405c5e:	72 ef                	jb     0x405c4f
405c60:	5f                   	pop    %edi
405c61:	3b f3                	cmp    %ebx,%esi
405c63:	73 14                	jae    0x405c79
405c65:	8b cb                	mov    %ebx,%ecx
405c67:	2b ce                	sub    %esi,%ecx
405c69:	51                   	push   %ecx
405c6a:	8d 44 35 c0          	lea    -0x40(%ebp,%esi,1),%eax
405c6e:	6a 5c                	push   $0x5c
405c70:	50                   	push   %eax
405c71:	e8 8a 45 01 00       	call   0x41a200
405c76:	83 c4 0c             	add    $0xc,%esp
405c79:	53                   	push   %ebx
405c7a:	8d 45 c0             	lea    -0x40(%ebp),%eax
405c7d:	50                   	push   %eax
405c7e:	8d 85 a0 fe ff ff    	lea    -0x160(%ebp),%eax
405c84:	50                   	push   %eax
405c85:	e8 a9 aa 00 00       	call   0x410733
405c8a:	6a 20                	push   $0x20
405c8c:	8d 45 a0             	lea    -0x60(%ebp),%eax
405c8f:	50                   	push   %eax
405c90:	8d 85 a0 fe ff ff    	lea    -0x160(%ebp),%eax
405c96:	50                   	push   %eax
405c97:	e8 97 aa 00 00       	call   0x410733
405c9c:	ff 75 18             	push   0x18(%ebp)
405c9f:	8d 85 a0 fe ff ff    	lea    -0x160(%ebp),%eax
405ca5:	50                   	push   %eax
405ca6:	e8 01 ab 00 00       	call   0x4107ac
405cab:	5e                   	pop    %esi
405cac:	5b                   	pop    %ebx
405cad:	c9                   	leave
405cae:	c2 14 00             	ret    $0x14
405cb1:	55                   	push   %ebp
405cb2:	8d 6c 24 a8          	lea    -0x58(%esp),%ebp
405cb6:	81 ec bc 00 00 00    	sub    $0xbc,%esp
405cbc:	56                   	push   %esi
405cbd:	8b 75 6c             	mov    0x6c(%ebp),%esi
405cc0:	57                   	push   %edi
405cc1:	6a 40                	push   $0x40
405cc3:	58                   	pop    %eax
405cc4:	3b f0                	cmp    %eax,%esi
405cc6:	73 02                	jae    0x405cca
405cc8:	8b c6                	mov    %esi,%eax
405cca:	50                   	push   %eax
405ccb:	ff 75 68             	push   0x68(%ebp)
405cce:	8d 45 bc             	lea    -0x44(%ebp),%eax
405cd1:	50                   	push   %eax
405cd2:	e8 99 5f 01 00       	call   0x41bc70
405cd7:	83 c4 0c             	add    $0xc,%esp
405cda:	8d 45 20             	lea    0x20(%ebp),%eax
405cdd:	50                   	push   %eax
405cde:	c6 44 35 bc 00       	movb   $0x0,-0x44(%ebp,%esi,1)
405ce3:	c6 44 35 bd 00       	movb   $0x0,-0x43(%ebp,%esi,1)
405ce8:	c6 44 35 be 00       	movb   $0x0,-0x42(%ebp,%esi,1)
405ced:	c6 44 35 bf 01       	movb   $0x1,-0x41(%ebp,%esi,1)
405cf2:	83 c6 04             	add    $0x4,%esi
405cf5:	56                   	push   %esi
405cf6:	8d 45 bc             	lea    -0x44(%ebp),%eax
405cf9:	50                   	push   %eax
405cfa:	ff 75 64             	push   0x64(%ebp)
405cfd:	ff 75 60             	push   0x60(%ebp)
405d00:	e8 6f fe ff ff       	call   0x405b74
405d05:	6a 20                	push   $0x20
405d07:	5e                   	pop    %esi
405d08:	56                   	push   %esi
405d09:	8d 45 20             	lea    0x20(%ebp),%eax
405d0c:	50                   	push   %eax
405d0d:	8d 45 00             	lea    0x0(%ebp),%eax
405d10:	50                   	push   %eax
405d11:	e8 5a 5f 01 00       	call   0x41bc70
405d16:	8b 45 7c             	mov    0x7c(%ebp),%eax
405d19:	83 c4 0c             	add    $0xc,%esp
405d1c:	48                   	dec    %eax
405d1d:	89 45 4c             	mov    %eax,0x4c(%ebp)
405d20:	6a 10                	push   $0x10
405d22:	58                   	pop    %eax
405d23:	89 45 50             	mov    %eax,0x50(%ebp)
405d26:	89 45 54             	mov    %eax,0x54(%ebp)
405d29:	8b 45 70             	mov    0x70(%ebp),%eax
405d2c:	89 45 40             	mov    %eax,0x40(%ebp)
405d2f:	8b 45 74             	mov    0x74(%ebp),%eax
405d32:	89 45 44             	mov    %eax,0x44(%ebp)
405d35:	8b 45 78             	mov    0x78(%ebp),%eax
405d38:	89 45 48             	mov    %eax,0x48(%ebp)
405d3b:	33 ff                	xor    %edi,%edi
405d3d:	8b 44 3d 4c          	mov    0x4c(%ebp,%edi,1),%eax
405d41:	85 c0                	test   %eax,%eax
405d43:	76 3c                	jbe    0x405d81
405d45:	89 45 6c             	mov    %eax,0x6c(%ebp)
405d48:	8d 45 9c             	lea    -0x64(%ebp),%eax
405d4b:	50                   	push   %eax
405d4c:	56                   	push   %esi
405d4d:	8d 45 20             	lea    0x20(%ebp),%eax
405d50:	50                   	push   %eax
405d51:	ff 75 64             	push   0x64(%ebp)
405d54:	ff 75 60             	push   0x60(%ebp)
405d57:	e8 18 fe ff ff       	call   0x405b74
405d5c:	56                   	push   %esi
405d5d:	8d 45 9c             	lea    -0x64(%ebp),%eax
405d60:	50                   	push   %eax
405d61:	8d 45 20             	lea    0x20(%ebp),%eax
405d64:	50                   	push   %eax
405d65:	e8 06 5f 01 00       	call   0x41bc70
405d6a:	83 c4 0c             	add    $0xc,%esp
405d6d:	33 c0                	xor    %eax,%eax
405d6f:	8a 4c 05 20          	mov    0x20(%ebp,%eax,1),%cl
405d73:	30 4c 05 00          	xor    %cl,0x0(%ebp,%eax,1)
405d77:	40                   	inc    %eax
405d78:	3b c6                	cmp    %esi,%eax
405d7a:	72 f3                	jb     0x405d6f
405d7c:	ff 4d 6c             	decl   0x6c(%ebp)
405d7f:	75 c7                	jne    0x405d48
405d81:	56                   	push   %esi
405d82:	8d 45 00             	lea    0x0(%ebp),%eax
405d85:	50                   	push   %eax
405d86:	ff 74 3d 40          	push   0x40(%ebp,%edi,1)
405d8a:	e8 e1 5e 01 00       	call   0x41bc70
405d8f:	83 c7 04             	add    $0x4,%edi
405d92:	83 c4 0c             	add    $0xc,%esp
405d95:	83 ff 0c             	cmp    $0xc,%edi
405d98:	72 a3                	jb     0x405d3d
405d9a:	6a 44                	push   $0x44
405d9c:	8d 45 bc             	lea    -0x44(%ebp),%eax
405d9f:	50                   	push   %eax
405da0:	e8 23 70 00 00       	call   0x40cdc8
405da5:	56                   	push   %esi
405da6:	8d 45 00             	lea    0x0(%ebp),%eax
405da9:	50                   	push   %eax
405daa:	e8 19 70 00 00       	call   0x40cdc8
405daf:	56                   	push   %esi
405db0:	8d 45 20             	lea    0x20(%ebp),%eax
405db3:	50                   	push   %eax
405db4:	e8 0f 70 00 00       	call   0x40cdc8
405db9:	56                   	push   %esi
405dba:	8d 45 9c             	lea    -0x64(%ebp),%eax
405dbd:	50                   	push   %eax
405dbe:	e8 05 70 00 00       	call   0x40cdc8
405dc3:	5f                   	pop    %edi
405dc4:	5e                   	pop    %esi
405dc5:	83 c5 58             	add    $0x58,%ebp
405dc8:	c9                   	leave
405dc9:	c2 20 00             	ret    $0x20
405dcc:	55                   	push   %ebp
405dcd:	8b ec                	mov    %esp,%ebp
405dcf:	81 ec 64 02 00 00    	sub    $0x264,%esp
405dd5:	53                   	push   %ebx
405dd6:	57                   	push   %edi
405dd7:	8b 7d 1c             	mov    0x1c(%ebp),%edi
405dda:	8b d9                	mov    %ecx,%ebx
405ddc:	89 5d fc             	mov    %ebx,-0x4(%ebp)
405ddf:	83 ff 18             	cmp    $0x18,%edi
405de2:	0f 87 8d 01 00 00    	ja     0x405f75
405de8:	83 65 1c 00          	andl   $0x0,0x1c(%ebp)
405dec:	56                   	push   %esi
405ded:	8d b3 02 01 00 00    	lea    0x102(%ebx),%esi
405df3:	39 7e 12             	cmp    %edi,0x12(%esi)
405df6:	75 24                	jne    0x405e1c
405df8:	ff 75 0c             	push   0xc(%ebp)
405dfb:	8b cb                	mov    %ebx,%ecx
405dfd:	e8 95 70 00 00       	call   0x40ce97
405e02:	84 c0                	test   %al,%al
405e04:	74 16                	je     0x405e1c
405e06:	6a 10                	push   $0x10
405e08:	ff 75 14             	push   0x14(%ebp)
405e0b:	56                   	push   %esi
405e0c:	e8 d3 47 01 00       	call   0x41a5e4
405e11:	83 c4 0c             	add    $0xc,%esp
405e14:	85 c0                	test   %eax,%eax
405e16:	0f 84 5f 01 00 00    	je     0x405f7b
405e1c:	ff 45 1c             	incl   0x1c(%ebp)
405e1f:	81 c3 78 01 00 00    	add    $0x178,%ebx
405e25:	83 7d 1c 04          	cmpl   $0x4,0x1c(%ebp)
405e29:	72 c2                	jb     0x405ded
405e2b:	be 00 02 00 00       	mov    $0x200,%esi
405e30:	56                   	push   %esi
405e31:	8d 85 9c fd ff ff    	lea    -0x264(%ebp),%eax
405e37:	50                   	push   %eax
405e38:	ff 75 10             	push   0x10(%ebp)
405e3b:	e8 df b9 00 00       	call   0x41181f
405e40:	33 c0                	xor    %eax,%eax
405e42:	40                   	inc    %eax
405e43:	8b cf                	mov    %edi,%ecx
405e45:	d3 e0                	shl    %cl,%eax
405e47:	50                   	push   %eax
405e48:	8d 45 bc             	lea    -0x44(%ebp),%eax
405e4b:	50                   	push   %eax
405e4c:	8d 45 9c             	lea    -0x64(%ebp),%eax
405e4f:	50                   	push   %eax
405e50:	8d 45 dc             	lea    -0x24(%ebp),%eax
405e53:	50                   	push   %eax
405e54:	6a 10                	push   $0x10
405e56:	ff 75 14             	push   0x14(%ebp)
405e59:	8d 85 9c fd ff ff    	lea    -0x264(%ebp),%eax
405e5f:	50                   	push   %eax
405e60:	e8 db 45 01 00       	call   0x41a440
405e65:	59                   	pop    %ecx
405e66:	50                   	push   %eax
405e67:	8d 85 9c fd ff ff    	lea    -0x264(%ebp),%eax
405e6d:	50                   	push   %eax
405e6e:	e8 3e fe ff ff       	call   0x405cb1
405e73:	56                   	push   %esi
405e74:	8d 85 9c fd ff ff    	lea    -0x264(%ebp),%eax
405e7a:	50                   	push   %eax
405e7b:	e8 48 6f 00 00       	call   0x40cdc8
405e80:	8b 55 fc             	mov    -0x4(%ebp),%edx
405e83:	8b 75 0c             	mov    0xc(%ebp),%esi
405e86:	8d 82 e0 05 00 00    	lea    0x5e0(%edx),%eax
405e8c:	8b 08                	mov    (%eax),%ecx
405e8e:	8b d9                	mov    %ecx,%ebx
405e90:	83 e3 03             	and    $0x3,%ebx
405e93:	69 db 78 01 00 00    	imul   $0x178,%ebx,%ebx
405e99:	03 da                	add    %edx,%ebx
405e9b:	41                   	inc    %ecx
405e9c:	89 08                	mov    %ecx,(%eax)
405e9e:	6a 40                	push   $0x40
405ea0:	89 bb 14 01 00 00    	mov    %edi,0x114(%ebx)
405ea6:	59                   	pop    %ecx
405ea7:	8b fb                	mov    %ebx,%edi
405ea9:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
405eab:	6a 10                	push   $0x10
405ead:	ff 75 14             	push   0x14(%ebp)
405eb0:	8d 83 02 01 00 00    	lea    0x102(%ebx),%eax
405eb6:	50                   	push   %eax
405eb7:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
405eb9:	e8 b2 5d 01 00       	call   0x41bc70
405ebe:	6a 20                	push   $0x20
405ec0:	5e                   	pop    %esi
405ec1:	56                   	push   %esi
405ec2:	8d 45 dc             	lea    -0x24(%ebp),%eax
405ec5:	50                   	push   %eax
405ec6:	8d bb 18 01 00 00    	lea    0x118(%ebx),%edi
405ecc:	57                   	push   %edi
405ecd:	e8 9e 5d 01 00       	call   0x41bc70
405ed2:	56                   	push   %esi
405ed3:	8d 45 bc             	lea    -0x44(%ebp),%eax
405ed6:	50                   	push   %eax
405ed7:	8d 83 38 01 00 00    	lea    0x138(%ebx),%eax
405edd:	50                   	push   %eax
405ede:	e8 8d 5d 01 00       	call   0x41bc70
405ee3:	56                   	push   %esi
405ee4:	8d 45 9c             	lea    -0x64(%ebp),%eax
405ee7:	50                   	push   %eax
405ee8:	81 c3 58 01 00 00    	add    $0x158,%ebx
405eee:	53                   	push   %ebx
405eef:	e8 7c 5d 01 00       	call   0x41bc70
405ef4:	83 c4 30             	add    $0x30,%esp
405ef7:	6a 01                	push   $0x1
405ef9:	56                   	push   %esi
405efa:	57                   	push   %edi
405efb:	e8 22 6e 00 00       	call   0x40cd22
405f00:	33 db                	xor    %ebx,%ebx
405f02:	39 5d 20             	cmp    %ebx,0x20(%ebp)
405f05:	74 10                	je     0x405f17
405f07:	56                   	push   %esi
405f08:	8d 45 9c             	lea    -0x64(%ebp),%eax
405f0b:	50                   	push   %eax
405f0c:	ff 75 20             	push   0x20(%ebp)
405f0f:	e8 5c 5d 01 00       	call   0x41bc70
405f14:	83 c4 0c             	add    $0xc,%esp
405f17:	8b 7d 24             	mov    0x24(%ebp),%edi
405f1a:	3b fb                	cmp    %ebx,%edi
405f1c:	74 2a                	je     0x405f48
405f1e:	6a 08                	push   $0x8
405f20:	53                   	push   %ebx
405f21:	57                   	push   %edi
405f22:	e8 d9 42 01 00       	call   0x41a200
405f27:	83 c4 0c             	add    $0xc,%esp
405f2a:	33 c9                	xor    %ecx,%ecx
405f2c:	8a 54 0d bc          	mov    -0x44(%ebp,%ecx,1),%dl
405f30:	8b c1                	mov    %ecx,%eax
405f32:	83 e0 07             	and    $0x7,%eax
405f35:	03 c7                	add    %edi,%eax
405f37:	30 10                	xor    %dl,(%eax)
405f39:	41                   	inc    %ecx
405f3a:	3b ce                	cmp    %esi,%ecx
405f3c:	72 ee                	jb     0x405f2c
405f3e:	56                   	push   %esi
405f3f:	8d 45 bc             	lea    -0x44(%ebp),%eax
405f42:	50                   	push   %eax
405f43:	e8 80 6e 00 00       	call   0x40cdc8
405f48:	39 5d 18             	cmp    %ebx,0x18(%ebp)
405f4b:	74 1d                	je     0x405f6a
405f4d:	ff 75 18             	push   0x18(%ebp)
405f50:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405f53:	68 00 01 00 00       	push   $0x100
405f58:	8d 45 dc             	lea    -0x24(%ebp),%eax
405f5b:	50                   	push   %eax
405f5c:	ff 75 08             	push   0x8(%ebp)
405f5f:	81 c1 e8 05 00 00    	add    $0x5e8,%ecx
405f65:	e8 15 69 00 00       	call   0x40c87f
405f6a:	56                   	push   %esi
405f6b:	8d 45 dc             	lea    -0x24(%ebp),%eax
405f6e:	50                   	push   %eax
405f6f:	e8 54 6e 00 00       	call   0x40cdc8
405f74:	5e                   	pop    %esi
405f75:	5f                   	pop    %edi
405f76:	5b                   	pop    %ebx
405f77:	c9                   	leave
405f78:	c2 20 00             	ret    $0x20
405f7b:	6a 00                	push   $0x0
405f7d:	6a 20                	push   $0x20
405f7f:	5e                   	pop    %esi
405f80:	56                   	push   %esi
405f81:	8d bb 18 01 00 00    	lea    0x118(%ebx),%edi
405f87:	57                   	push   %edi
405f88:	e8 95 6d 00 00       	call   0x40cd22