5a1b3c:	89 54 24 1c          	mov    %edx,0x1c(%esp)
5a1b40:	ff 74 24 30          	push   0x30(%esp)
5a1b44:	2b c7                	sub    %edi,%eax
5a1b46:	89 4c 24 2c          	mov    %ecx,0x2c(%esp)
5a1b4a:	ff 74 24 38          	push   0x38(%esp)
5a1b4e:	89 44 24 70          	mov    %eax,0x70(%esp)
5a1b52:	8d 44 24 30          	lea    0x30(%esp),%eax
5a1b56:	ff 74 24 40          	push   0x40(%esp)
5a1b5a:	89 5c 24 38          	mov    %ebx,0x38(%esp)
5a1b5e:	50                   	push   %eax
5a1b5f:	e8 cc fb ff ff       	call   0x5a1730
5a1b64:	8d 47 ff             	lea    -0x1(%edi),%eax
5a1b67:	83 c4 10             	add    $0x10,%esp
5a1b6a:	03 ef                	add    %edi,%ebp
5a1b6c:	33 c9                	xor    %ecx,%ecx
5a1b6e:	33 d2                	xor    %edx,%edx
5a1b70:	83 f8 07             	cmp    $0x7,%eax
5a1b73:	77 50                	ja     0x5a1bc5
5a1b75:	ff 24 85 cc 21 5a 00 	jmp    *0x5a21cc(,%eax,4)
5a1b7c:	0f b6 4d ff          	movzbl -0x1(%ebp),%ecx
5a1b80:	4d                   	dec    %ebp
5a1b81:	c1 e1 18             	shl    $0x18,%ecx
5a1b84:	0f b6 45 ff          	movzbl -0x1(%ebp),%eax
5a1b88:	4d                   	dec    %ebp
5a1b89:	c1 e0 10             	shl    $0x10,%eax
5a1b8c:	0b c8                	or     %eax,%ecx
5a1b8e:	0f b6 45 ff          	movzbl -0x1(%ebp),%eax
5a1b92:	4d                   	dec    %ebp
5a1b93:	c1 e0 08             	shl    $0x8,%eax
5a1b96:	0b c8                	or     %eax,%ecx
5a1b98:	0f b6 45 ff          	movzbl -0x1(%ebp),%eax
5a1b9c:	4d                   	dec    %ebp
5a1b9d:	0b c8                	or     %eax,%ecx
5a1b9f:	0f b6 55 ff          	movzbl -0x1(%ebp),%edx
5a1ba3:	4d                   	dec    %ebp
5a1ba4:	c1 e2 18             	shl    $0x18,%edx
5a1ba7:	0f b6 45 ff          	movzbl -0x1(%ebp),%eax
5a1bab:	4d                   	dec    %ebp
5a1bac:	c1 e0 10             	shl    $0x10,%eax
5a1baf:	0b d0                	or     %eax,%edx
5a1bb1:	0f b6 45 ff          	movzbl -0x1(%ebp),%eax
5a1bb5:	4d                   	dec    %ebp
5a1bb6:	c1 e0 08             	shl    $0x8,%eax
5a1bb9:	0b d0                	or     %eax,%edx
5a1bbb:	0f b6 45 ff          	movzbl -0x1(%ebp),%eax
5a1bbf:	4d                   	dec    %ebp
5a1bc0:	0b d0                	or     %eax,%edx
5a1bc2:	8d 47 ff             	lea    -0x1(%edi),%eax
5a1bc5:	33 4c 24 2c          	xor    0x2c(%esp),%ecx
5a1bc9:	03 ef                	add    %edi,%ebp
5a1bcb:	33 54 24 28          	xor    0x28(%esp),%edx
5a1bcf:	03 f7                	add    %edi,%esi
5a1bd1:	89 4c 24 24          	mov    %ecx,0x24(%esp)
5a1bd5:	83 f8 07             	cmp    $0x7,%eax
5a1bd8:	77 3d                	ja     0x5a1c17
5a1bda:	ff 24 85 ec 21 5a 00 	jmp    *0x5a21ec(,%eax,4)
5a1be1:	4e                   	dec    %esi
5a1be2:	8b c1                	mov    %ecx,%eax
5a1be4:	c1 e8 18             	shr    $0x18,%eax
5a1be7:	88 06                	mov    %al,(%esi)
5a1be9:	4e                   	dec    %esi
5a1bea:	8b c1                	mov    %ecx,%eax
5a1bec:	c1 e8 10             	shr    $0x10,%eax
5a1bef:	88 06                	mov    %al,(%esi)
5a1bf1:	4e                   	dec    %esi
5a1bf2:	8b c1                	mov    %ecx,%eax
5a1bf4:	c1 e8 08             	shr    $0x8,%eax
5a1bf7:	88 06                	mov    %al,(%esi)
5a1bf9:	4e                   	dec    %esi
5a1bfa:	88 0e                	mov    %cl,(%esi)
5a1bfc:	4e                   	dec    %esi
5a1bfd:	8b c2                	mov    %edx,%eax
5a1bff:	c1 e8 18             	shr    $0x18,%eax
5a1c02:	88 06                	mov    %al,(%esi)
5a1c04:	4e                   	dec    %esi
5a1c05:	8b c2                	mov    %edx,%eax
5a1c07:	c1 e8 10             	shr    $0x10,%eax
5a1c0a:	88 06                	mov    %al,(%esi)
5a1c0c:	4e                   	dec    %esi
5a1c0d:	8b c2                	mov    %edx,%eax
5a1c0f:	c1 e8 08             	shr    $0x8,%eax
5a1c12:	88 06                	mov    %al,(%esi)
5a1c14:	4e                   	dec    %esi
5a1c15:	88 16                	mov    %dl,(%esi)
5a1c17:	8b 44 24 64          	mov    0x64(%esp),%eax
5a1c1b:	03 f7                	add    %edi,%esi
5a1c1d:	83 f8 20             	cmp    $0x20,%eax
5a1c20:	75 09                	jne    0x5a1c2b
5a1c22:	8b cb                	mov    %ebx,%ecx
5a1c24:	8b da                	mov    %edx,%ebx
5a1c26:	e9 f5 01 00 00       	jmp    0x5a1e20
5a1c2b:	83 f8 40             	cmp    $0x40,%eax
5a1c2e:	75 0b                	jne    0x5a1c3b
5a1c30:	8b 5c 24 24          	mov    0x24(%esp),%ebx
5a1c34:	8b ca                	mov    %edx,%ecx
5a1c36:	e9 e5 01 00 00       	jmp    0x5a1e20
5a1c3b:	8b 4c 24 14          	mov    0x14(%esp),%ecx
5a1c3f:	8b c1                	mov    %ecx,%eax
5a1c41:	c1 e8 08             	shr    $0x8,%eax
5a1c44:	88 44 24 45          	mov    %al,0x45(%esp)
5a1c48:	8b c1                	mov    %ecx,%eax
5a1c4a:	c1 e8 10             	shr    $0x10,%eax
5a1c4d:	88 44 24 46          	mov    %al,0x46(%esp)
5a1c51:	8b c3                	mov    %ebx,%eax
5a1c53:	c1 e8 08             	shr    $0x8,%eax
5a1c56:	88 44 24 49          	mov    %al,0x49(%esp)
5a1c5a:	8b c3                	mov    %ebx,%eax
5a1c5c:	c1 e8 10             	shr    $0x10,%eax
5a1c5f:	88 44 24 4a          	mov    %al,0x4a(%esp)
5a1c63:	8b c2                	mov    %edx,%eax
5a1c65:	c1 e8 08             	shr    $0x8,%eax
5a1c68:	88 44 24 4d          	mov    %al,0x4d(%esp)
5a1c6c:	8b c2                	mov    %edx,%eax
5a1c6e:	c1 e8 10             	shr    $0x10,%eax
5a1c71:	88 44 24 4e          	mov    %al,0x4e(%esp)
5a1c75:	88 54 24 4c          	mov    %dl,0x4c(%esp)
5a1c79:	c1 ea 18             	shr    $0x18,%edx
5a1c7c:	88 54 24 4f          	mov    %dl,0x4f(%esp)
5a1c80:	8b 54 24 24          	mov    0x24(%esp),%edx
5a1c84:	8b c2                	mov    %edx,%eax
5a1c86:	c1 e8 08             	shr    $0x8,%eax
5a1c89:	88 44 24 51          	mov    %al,0x51(%esp)
5a1c8d:	8b c2                	mov    %edx,%eax
5a1c8f:	c1 e8 10             	shr    $0x10,%eax
5a1c92:	88 5c 24 48          	mov    %bl,0x48(%esp)
5a1c96:	c1 eb 18             	shr    $0x18,%ebx
5a1c99:	88 44 24 52          	mov    %al,0x52(%esp)
5a1c9d:	33 c0                	xor    %eax,%eax
5a1c9f:	88 4c 24 44          	mov    %cl,0x44(%esp)
5a1ca3:	c1 e9 18             	shr    $0x18,%ecx
5a1ca6:	88 5c 24 4b          	mov    %bl,0x4b(%esp)
5a1caa:	8b 5c 24 18          	mov    0x18(%esp),%ebx
5a1cae:	88 54 24 50          	mov    %dl,0x50(%esp)
5a1cb2:	c1 ea 18             	shr    $0x18,%edx
5a1cb5:	85 db                	test   %ebx,%ebx
5a1cb7:	88 4c 24 47          	mov    %cl,0x47(%esp)
5a1cbb:	0f 95 c0             	setne  %al
5a1cbe:	88 54 24 53          	mov    %dl,0x53(%esp)
5a1cc2:	83 c0 08             	add    $0x8,%eax
5a1cc5:	50                   	push   %eax
5a1cc6:	8b 44 24 68          	mov    0x68(%esp),%eax
5a1cca:	8b c0                	mov    %eax,%eax
5a1ccc:	85 c0                	test   %eax,%eax
5a1cce:	79 03                	jns    0x5a1cd3
5a1cd0:	83 c0 07             	add    $0x7,%eax
5a1cd3:	c1 f8 03             	sar    $0x3,%eax
5a1cd6:	8d 4c 24 48          	lea    0x48(%esp),%ecx
5a1cda:	03 c1                	add    %ecx,%eax
5a1cdc:	50                   	push   %eax
5a1cdd:	8b c1                	mov    %ecx,%eax
5a1cdf:	50                   	push   %eax
5a1ce0:	e8 9b 17 04 00       	call   0x5e3480
5a1ce5:	8a 54 24 51          	mov    0x51(%esp),%dl
5a1ce9:	83 c4 0c             	add    $0xc,%esp
5a1cec:	8a 64 24 47          	mov    0x47(%esp),%ah
5a1cf0:	8a 74 24 48          	mov    0x48(%esp),%dh
5a1cf4:	85 db                	test   %ebx,%ebx
5a1cf6:	0f 84 c8 00 00 00    	je     0x5a1dc4
5a1cfc:	8a cb                	mov    %bl,%cl
5a1cfe:	8a 6c 24 49          	mov    0x49(%esp),%ch
5a1d02:	8a 5c 24 44          	mov    0x44(%esp),%bl
5a1d06:	8a c2                	mov    %dl,%al
5a1d08:	d2 e3                	shl    %cl,%bl
5a1d0a:	8a 4c 24 1c          	mov    0x1c(%esp),%cl
5a1d0e:	d2 e8                	shr    %cl,%al
5a1d10:	8a 4c 24 18          	mov    0x18(%esp),%cl
5a1d14:	0a d8                	or     %al,%bl
5a1d16:	d2 e2                	shl    %cl,%dl
5a1d18:	8a 4c 24 1c          	mov    0x1c(%esp),%cl
5a1d1c:	8a 7c 24 4a          	mov    0x4a(%esp),%bh
5a1d20:	88 5c 24 11          	mov    %bl,0x11(%esp)
5a1d24:	88 5c 24 44          	mov    %bl,0x44(%esp)
5a1d28:	8a 5c 24 46          	mov    0x46(%esp),%bl
5a1d2c:	8a c3                	mov    %bl,%al
5a1d2e:	d2 e8                	shr    %cl,%al
5a1d30:	8a 4c 24 18          	mov    0x18(%esp),%cl
5a1d34:	0a d0                	or     %al,%dl
5a1d36:	d2 e3                	shl    %cl,%bl
5a1d38:	8a c4                	mov    %ah,%al
5a1d3a:	8a 4c 24 1c          	mov    0x1c(%esp),%cl
5a1d3e:	d2 e8                	shr    %cl,%al
5a1d40:	8a 4c 24 18          	mov    0x18(%esp),%cl
5a1d44:	0a d8                	or     %al,%bl
5a1d46:	d2 e4                	shl    %cl,%ah
5a1d48:	8a c6                	mov    %dh,%al
5a1d4a:	8a 4c 24 1c          	mov    0x1c(%esp),%cl
5a1d4e:	d2 e8                	shr    %cl,%al
5a1d50:	8a 4c 24 18          	mov    0x18(%esp),%cl
5a1d54:	0a e0                	or     %al,%ah
5a1d56:	d2 e6                	shl    %cl,%dh
5a1d58:	8a c5                	mov    %ch,%al
5a1d5a:	8a 4c 24 1c          	mov    0x1c(%esp),%cl
5a1d5e:	d2 e8                	shr    %cl,%al
5a1d60:	8a 4c 24 18          	mov    0x18(%esp),%cl
5a1d64:	0a f0                	or     %al,%dh
5a1d66:	d2 e5                	shl    %cl,%ch
5a1d68:	8a c7                	mov    %bh,%al
5a1d6a:	8a 4c 24 1c          	mov    0x1c(%esp),%cl
5a1d6e:	d2 e8                	shr    %cl,%al
5a1d70:	8a 4c 24 18          	mov    0x18(%esp),%cl
5a1d74:	0a e8                	or     %al,%ch
5a1d76:	d2 e7                	shl    %cl,%bh
5a1d78:	8a 4c 24 1c          	mov    0x1c(%esp),%cl
5a1d7c:	88 6c 24 13          	mov    %ch,0x13(%esp)
5a1d80:	88 6c 24 49          	mov    %ch,0x49(%esp)
5a1d84:	8a 6c 24 4b          	mov    0x4b(%esp),%ch
5a1d88:	8a c5                	mov    %ch,%al
5a1d8a:	88 54 24 45          	mov    %dl,0x45(%esp)
5a1d8e:	d2 e8                	shr    %cl,%al
5a1d90:	8a 4c 24 18          	mov    0x18(%esp),%cl
5a1d94:	0a f8                	or     %al,%bh
5a1d96:	8a 44 24 4c          	mov    0x4c(%esp),%al
5a1d9a:	d2 e5                	shl    %cl,%ch
5a1d9c:	8a 4c 24 1c          	mov    0x1c(%esp),%cl
5a1da0:	d2 e8                	shr    %cl,%al
5a1da2:	0a e8                	or     %al,%ch
5a1da4:	88 7c 24 12          	mov    %bh,0x12(%esp)
5a1da8:	88 7c 24 4a          	mov    %bh,0x4a(%esp)
5a1dac:	8a fd                	mov    %ch,%bh
5a1dae:	88 5c 24 46          	mov    %bl,0x46(%esp)
5a1db2:	88 64 24 47          	mov    %ah,0x47(%esp)
5a1db6:	88 74 24 48          	mov    %dh,0x48(%esp)
5a1dba:	88 6c 24 23          	mov    %ch,0x23(%esp)
5a1dbe:	88 6c 24 4b          	mov    %ch,0x4b(%esp)
5a1dc2:	eb 20                	jmp    0x5a1de4
5a1dc4:	8a 44 24 4a          	mov    0x4a(%esp),%al
5a1dc8:	8a 7c 24 4b          	mov    0x4b(%esp),%bh
5a1dcc:	8a 5c 24 46          	mov    0x46(%esp),%bl
5a1dd0:	88 44 24 12          	mov    %al,0x12(%esp)
5a1dd4:	8a 44 24 49          	mov    0x49(%esp),%al
5a1dd8:	88 44 24 13          	mov    %al,0x13(%esp)
5a1ddc:	8a 44 24 44          	mov    0x44(%esp),%al
5a1de0:	88 44 24 11          	mov    %al,0x11(%esp)
5a1de4:	0f b6 cc             	movzbl %ah,%ecx
5a1de7:	0f b6 c3             	movzbl %bl,%eax
5a1dea:	c1 e1 08             	shl    $0x8,%ecx
5a1ded:	0b c8                	or     %eax,%ecx
5a1def:	0f b6 df             	movzbl %bh,%ebx
5a1df2:	c1 e1 08             	shl    $0x8,%ecx
5a1df5:	0f b6 c2             	movzbl %dl,%eax
5a1df8:	0b c8                	or     %eax,%ecx
5a1dfa:	c1 e3 08             	shl    $0x8,%ebx
5a1dfd:	0f b6 44 24 11       	movzbl 0x11(%esp),%eax
5a1e02:	c1 e1 08             	shl    $0x8,%ecx
5a1e05:	0b c8                	or     %eax,%ecx
5a1e07:	0f b6 44 24 12       	movzbl 0x12(%esp),%eax
5a1e0c:	0b d8                	or     %eax,%ebx
5a1e0e:	0f b6 44 24 13       	movzbl 0x13(%esp),%eax
5a1e13:	c1 e3 08             	shl    $0x8,%ebx
5a1e16:	0b d8                	or     %eax,%ebx
5a1e18:	0f b6 c6             	movzbl %dh,%eax
5a1e1b:	c1 e3 08             	shl    $0x8,%ebx
5a1e1e:	0b d8                	or     %eax,%ebx
5a1e20:	8b 44 24 68          	mov    0x68(%esp),%eax
5a1e24:	89 4c 24 14          	mov    %ecx,0x14(%esp)
5a1e28:	3b c7                	cmp    %edi,%eax
5a1e2a:	0f 83 10 fd ff ff    	jae    0x5a1b40
5a1e30:	e9 49 03 00 00       	jmp    0x5a217e
5a1e35:	3b c7                	cmp    %edi,%eax
5a1e37:	0f 82 41 03 00 00    	jb     0x5a217e
5a1e3d:	8b cd                	mov    %ebp,%ecx
5a1e3f:	81 e1 07 00 00 80    	and    $0x80000007,%ecx
5a1e45:	79 05                	jns    0x5a1e4c
5a1e47:	49                   	dec    %ecx
5a1e48:	83 c9 f8             	or     $0xfffffff8,%ecx
5a1e4b:	41                   	inc    %ecx
5a1e4c:	8b 6c 24 5c          	mov    0x5c(%esp),%ebp
5a1e50:	ba 08 00 00 00       	mov    $0x8,%edx
5a1e55:	2b d1                	sub    %ecx,%edx
5a1e57:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
5a1e5b:	8b 4c 24 14          	mov    0x14(%esp),%ecx
5a1e5f:	89 54 24 24          	mov    %edx,0x24(%esp)
5a1e63:	ff 74 24 30          	push   0x30(%esp)
5a1e67:	2b c7                	sub    %edi,%eax
5a1e69:	89 4c 24 2c          	mov    %ecx,0x2c(%esp)
5a1e6d:	ff 74 24 38          	push   0x38(%esp)
5a1e71:	89 44 24 70          	mov    %eax,0x70(%esp)
5a1e75:	8d 44 24 30          	lea    0x30(%esp),%eax
5a1e79:	ff 74 24 40          	push   0x40(%esp)
5a1e7d:	89 5c 24 38          	mov    %ebx,0x38(%esp)
5a1e81:	50                   	push   %eax
5a1e82:	e8 a9 f8 ff ff       	call   0x5a1730
5a1e87:	33 c9                	xor    %ecx,%ecx
5a1e89:	8d 47 ff             	lea    -0x1(%edi),%eax
5a1e8c:	33 d2                	xor    %edx,%edx
5a1e8e:	89 4c 24 28          	mov    %ecx,0x28(%esp)
5a1e92:	83 c4 10             	add    $0x10,%esp
5a1e95:	89 54 24 3c          	mov    %edx,0x3c(%esp)
5a1e99:	03 ef                	add    %edi,%ebp
5a1e9b:	83 f8 07             	cmp    $0x7,%eax
5a1e9e:	77 55                	ja     0x5a1ef5
5a1ea0:	ff 24 85 0c 22 5a 00 	jmp    *0x5a220c(,%eax,4)
5a1ea7:	0f b6 4d ff          	movzbl -0x1(%ebp),%ecx
5a1eab:	4d                   	dec    %ebp
5a1eac:	c1 e1 18             	shl    $0x18,%ecx
5a1eaf:	0f b6 45 ff          	movzbl -0x1(%ebp),%eax
5a1eb3:	4d                   	dec    %ebp
5a1eb4:	c1 e0 10             	shl    $0x10,%eax
5a1eb7:	0b c8                	or     %eax,%ecx
5a1eb9:	0f b6 45 ff          	movzbl -0x1(%ebp),%eax
5a1ebd:	4d                   	dec    %ebp
5a1ebe:	c1 e0 08             	shl    $0x8,%eax
5a1ec1:	0b c8                	or     %eax,%ecx
5a1ec3:	0f b6 45 ff          	movzbl -0x1(%ebp),%eax
5a1ec7:	4d                   	dec    %ebp
5a1ec8:	0b c8                	or     %eax,%ecx
5a1eca:	89 4c 24 18          	mov    %ecx,0x18(%esp)
5a1ece:	0f b6 55 ff          	movzbl -0x1(%ebp),%edx
5a1ed2:	4d                   	dec    %ebp
5a1ed3:	c1 e2 18             	shl    $0x18,%edx
5a1ed6:	0f b6 45 ff          	movzbl -0x1(%ebp),%eax
5a1eda:	4d                   	dec    %ebp
5a1edb:	c1 e0 10             	shl    $0x10,%eax
5a1ede:	0b d0                	or     %eax,%edx
5a1ee0:	0f b6 45 ff          	movzbl -0x1(%ebp),%eax
5a1ee4:	4d                   	dec    %ebp
5a1ee5:	c1 e0 08             	shl    $0x8,%eax
5a1ee8:	0b d0                	or     %eax,%edx
5a1eea:	0f b6 45 ff          	movzbl -0x1(%ebp),%eax
5a1eee:	4d                   	dec    %ebp
5a1eef:	0b d0                	or     %eax,%edx
5a1ef1:	89 54 24 3c          	mov    %edx,0x3c(%esp)
5a1ef5:	8b 44 24 64          	mov    0x64(%esp),%eax
5a1ef9:	03 ef                	add    %edi,%ebp
5a1efb:	83 f8 20             	cmp    $0x20,%eax
5a1efe:	75 09                	jne    0x5a1f09
5a1f00:	8b cb                	mov    %ebx,%ecx
5a1f02:	8b da                	mov    %edx,%ebx
5a1f04:	e9 ff 01 00 00       	jmp    0x5a2108
5a1f09:	83 f8 40             	cmp    $0x40,%eax
5a1f0c:	75 0d                	jne    0x5a1f1b
5a1f0e:	8b 44 24 18          	mov    0x18(%esp),%eax
5a1f12:	8b ca                	mov    %edx,%ecx
5a1f14:	8b d8                	mov    %eax,%ebx
5a1f16:	e9 f1 01 00 00       	jmp    0x5a210c
5a1f1b:	8b 4c 24 14          	mov    0x14(%esp),%ecx
5a1f1f:	8b c1                	mov    %ecx,%eax
5a1f21:	c1 e8 08             	shr    $0x8,%eax
5a1f24:	88 44 24 45          	mov    %al,0x45(%esp)
5a1f28:	8b c1                	mov    %ecx,%eax
5a1f2a:	c1 e8 10             	shr    $0x10,%eax
5a1f2d:	88 44 24 46          	mov    %al,0x46(%esp)
5a1f31:	8b c3                	mov    %ebx,%eax
5a1f33:	c1 e8 08             	shr    $0x8,%eax
5a1f36:	88 44 24 49          	mov    %al,0x49(%esp)
5a1f3a:	8b c3                	mov    %ebx,%eax
5a1f3c:	c1 e8 10             	shr    $0x10,%eax
5a1f3f:	88 44 24 4a          	mov    %al,0x4a(%esp)
5a1f43:	8b c2                	mov    %edx,%eax
5a1f45:	c1 e8 08             	shr    $0x8,%eax