593d17:	03 c3                	add    %ebx,%eax
593d19:	50                   	push   %eax
593d1a:	8d 44 24 18          	lea    0x18(%esp),%eax
593d1e:	50                   	push   %eax
593d1f:	8b c7                	mov    %edi,%eax
593d21:	2b c1                	sub    %ecx,%eax
593d23:	03 c3                	add    %ebx,%eax
593d25:	50                   	push   %eax
593d26:	ff 74 24 3c          	push   0x3c(%esp)
593d2a:	e8 b1 b9 ef ff       	call   0x48f6e0
593d2f:	8b c7                	mov    %edi,%eax
593d31:	2b c5                	sub    %ebp,%eax
593d33:	55                   	push   %ebp
593d34:	03 c3                	add    %ebx,%eax
593d36:	50                   	push   %eax
593d37:	8d 44 24 2c          	lea    0x2c(%esp),%eax
593d3b:	50                   	push   %eax
593d3c:	57                   	push   %edi
593d3d:	ff 74 24 50          	push   0x50(%esp)
593d41:	e8 9a b9 ef ff       	call   0x48f6e0
593d46:	8b c3                	mov    %ebx,%eax
593d48:	2b c5                	sub    %ebp,%eax
593d4a:	8b 6c 24 54          	mov    0x54(%esp),%ebp
593d4e:	50                   	push   %eax
593d4f:	56                   	push   %esi
593d50:	8d 44 24 40          	lea    0x40(%esp),%eax
593d54:	50                   	push   %eax
593d55:	57                   	push   %edi
593d56:	55                   	push   %ebp
593d57:	e8 84 b9 ef ff       	call   0x48f6e0
593d5c:	6a 00                	push   $0x0
593d5e:	6a 00                	push   $0x0
593d60:	6a 00                	push   $0x0
593d62:	6a 00                	push   $0x0
593d64:	55                   	push   %ebp
593d65:	e8 56 b9 ef ff       	call   0x48f6c0
593d6a:	83 c4 50             	add    $0x50,%esp
593d6d:	8d 44 24 10          	lea    0x10(%esp),%eax
593d71:	53                   	push   %ebx
593d72:	57                   	push   %edi
593d73:	50                   	push   %eax
593d74:	57                   	push   %edi
593d75:	55                   	push   %ebp
593d76:	e8 65 b9 ef ff       	call   0x48f6e0
593d7b:	0f b6 47 05          	movzbl 0x5(%edi),%eax
593d7f:	8d 57 04             	lea    0x4(%edi),%edx
593d82:	32 47 02             	xor    0x2(%edi),%al
593d85:	83 c4 14             	add    $0x14,%esp
593d88:	8a 4f 06             	mov    0x6(%edi),%cl
593d8b:	32 4f 03             	xor    0x3(%edi),%cl
593d8e:	22 c8                	and    %al,%cl
593d90:	0f b6 47 01          	movzbl 0x1(%edi),%eax
593d94:	32 02                	xor    (%edx),%al
593d96:	22 c8                	and    %al,%cl
593d98:	80 f9 ff             	cmp    $0xff,%cl
593d9b:	75 26                	jne    0x593dc3
593d9d:	0f b6 0f             	movzbl (%edi),%ecx
593da0:	8d 41 fc             	lea    -0x4(%ecx),%eax
593da3:	3b d8                	cmp    %eax,%ebx
593da5:	72 1c                	jb     0x593dc3
593da7:	8b 44 24 20          	mov    0x20(%esp),%eax
593dab:	51                   	push   %ecx
593dac:	52                   	push   %edx
593dad:	ff 74 24 24          	push   0x24(%esp)
593db1:	89 08                	mov    %ecx,(%eax)
593db3:	e8 48 f1 04 00       	call   0x5e2f00
593db8:	83 c4 0c             	add    $0xc,%esp
593dbb:	c7 44 24 14 01 00 00 	movl   $0x1,0x14(%esp)
593dc2:	00
593dc3:	53                   	push   %ebx
593dc4:	57                   	push   %edi
593dc5:	e8 86 c5 f0 ff       	call   0x4a0350
593dca:	57                   	push   %edi
593dcb:	e8 60 c3 f0 ff       	call   0x4a0130
593dd0:	8b 44 24 20          	mov    0x20(%esp),%eax
593dd4:	83 c4 0c             	add    $0xc,%esp
593dd7:	5f                   	pop    %edi
593dd8:	5e                   	pop    %esi
593dd9:	5d                   	pop    %ebp
593dda:	5b                   	pop    %ebx
593ddb:	83 c4 08             	add    $0x8,%esp
593dde:	c3                   	ret
593ddf:	cc                   	int3
593de0:	b8 04 00 00 00       	mov    $0x4,%eax
593de5:	e8 06 d7 04 00       	call   0x5e14f0
593dea:	53                   	push   %ebx
593deb:	55                   	push   %ebp
593dec:	8b 6c 24 20          	mov    0x20(%esp),%ebp
593df0:	57                   	push   %edi
593df1:	55                   	push   %ebp
593df2:	e8 19 d2 ef ff       	call   0x491010
593df7:	8b 5c 24 24          	mov    0x24(%esp),%ebx
593dfb:	8b c8                	mov    %eax,%ecx
593dfd:	33 d2                	xor    %edx,%edx
593dff:	83 c4 04             	add    $0x4,%esp
593e02:	8d 43 03             	lea    0x3(%ebx),%eax
593e05:	03 c1                	add    %ecx,%eax
593e07:	f7 f1                	div    %ecx
593e09:	8b f8                	mov    %eax,%edi
593e0b:	0f af f9             	imul   %ecx,%edi
593e0e:	03 c9                	add    %ecx,%ecx
593e10:	3b f9                	cmp    %ecx,%edi
593e12:	73 07                	jae    0x593e1b
593e14:	5f                   	pop    %edi
593e15:	5d                   	pop    %ebp
593e16:	33 c0                	xor    %eax,%eax
593e18:	5b                   	pop    %ebx
593e19:	59                   	pop    %ecx
593e1a:	c3                   	ret
593e1b:	81 fb ff 00 00 00    	cmp    $0xff,%ebx
593e21:	77 f1                	ja     0x593e14
593e23:	56                   	push   %esi
593e24:	8b 74 24 18          	mov    0x18(%esp),%esi
593e28:	85 f6                	test   %esi,%esi
593e2a:	74 76                	je     0x593ea2
593e2c:	8b 4c 24 20          	mov    0x20(%esp),%ecx
593e30:	88 1e                	mov    %bl,(%esi)
593e32:	53                   	push   %ebx
593e33:	51                   	push   %ecx
593e34:	0f b6 01             	movzbl (%ecx),%eax
593e37:	f6 d0                	not    %al
593e39:	88 46 01             	mov    %al,0x1(%esi)
593e3c:	0f b6 41 01          	movzbl 0x1(%ecx),%eax
593e40:	f6 d0                	not    %al
593e42:	88 46 02             	mov    %al,0x2(%esi)
593e45:	0f b6 41 02          	movzbl 0x2(%ecx),%eax
593e49:	f6 d0                	not    %al
593e4b:	88 46 03             	mov    %al,0x3(%esi)
593e4e:	8d 46 04             	lea    0x4(%esi),%eax
593e51:	50                   	push   %eax
593e52:	e8 a9 f0 04 00       	call   0x5e2f00
593e57:	8d 43 04             	lea    0x4(%ebx),%eax
593e5a:	83 c4 0c             	add    $0xc,%esp
593e5d:	3b f8                	cmp    %eax,%edi
593e5f:	76 22                	jbe    0x593e83
593e61:	8b c7                	mov    %edi,%eax
593e63:	2b c3                	sub    %ebx,%eax
593e65:	83 e8 04             	sub    $0x4,%eax
593e68:	50                   	push   %eax
593e69:	8d 43 04             	lea    0x4(%ebx),%eax
593e6c:	03 c6                	add    %esi,%eax
593e6e:	50                   	push   %eax
593e6f:	e8 2c d0 ef ff       	call   0x490ea0
593e74:	83 c4 08             	add    $0x8,%esp
593e77:	85 c0                	test   %eax,%eax
593e79:	7f 08                	jg     0x593e83
593e7b:	5e                   	pop    %esi
593e7c:	5f                   	pop    %edi
593e7d:	5d                   	pop    %ebp
593e7e:	33 c0                	xor    %eax,%eax
593e80:	5b                   	pop    %ebx
593e81:	59                   	pop    %ecx
593e82:	c3                   	ret
593e83:	57                   	push   %edi
593e84:	56                   	push   %esi
593e85:	8d 44 24 18          	lea    0x18(%esp),%eax
593e89:	50                   	push   %eax
593e8a:	56                   	push   %esi
593e8b:	55                   	push   %ebp
593e8c:	e8 af ba ef ff       	call   0x48f940
593e91:	57                   	push   %edi
593e92:	56                   	push   %esi
593e93:	8d 44 24 2c          	lea    0x2c(%esp),%eax
593e97:	50                   	push   %eax
593e98:	56                   	push   %esi
593e99:	55                   	push   %ebp
593e9a:	e8 a1 ba ef ff       	call   0x48f940
593e9f:	83 c4 28             	add    $0x28,%esp
593ea2:	8b 44 24 1c          	mov    0x1c(%esp),%eax
593ea6:	5e                   	pop    %esi
593ea7:	89 38                	mov    %edi,(%eax)
593ea9:	b8 01 00 00 00       	mov    $0x1,%eax
593eae:	5f                   	pop    %edi
593eaf:	5d                   	pop    %ebp
593eb0:	5b                   	pop    %ebx
593eb1:	59                   	pop    %ecx
593eb2:	c3                   	ret
593eb3:	cc                   	int3
593eb4:	cc                   	int3
593eb5:	cc                   	int3
593eb6:	cc                   	int3
593eb7:	cc                   	int3
593eb8:	cc                   	int3
593eb9:	cc                   	int3
593eba:	cc                   	int3
593ebb:	cc                   	int3
593ebc:	cc                   	int3
593ebd:	cc                   	int3
593ebe:	cc                   	int3
593ebf:	cc                   	int3
593ec0:	b8 30 00 00 00       	mov    $0x30,%eax
593ec5:	e8 26 d6 04 00       	call   0x5e14f0
593eca:	a1 d4 89 72 00       	mov    0x7289d4,%eax
593ecf:	33 c4                	xor    %esp,%eax
593ed1:	89 44 24 2c          	mov    %eax,0x2c(%esp)
593ed5:	8b 44 24 38          	mov    0x38(%esp),%eax
593ed9:	53                   	push   %ebx
593eda:	55                   	push   %ebp
593edb:	8b 6c 24 3c          	mov    0x3c(%esp),%ebp
593edf:	89 44 24 08          	mov    %eax,0x8(%esp)
593ee3:	8b 44 24 44          	mov    0x44(%esp),%eax
593ee7:	56                   	push   %esi
593ee8:	8b 74 24 4c          	mov    0x4c(%esp),%esi
593eec:	89 44 24 10          	mov    %eax,0x10(%esp)
593ef0:	8d 44 24 14          	lea    0x14(%esp),%eax
593ef4:	57                   	push   %edi
593ef5:	8b 7c 24 54          	mov    0x54(%esp),%edi
593ef9:	50                   	push   %eax
593efa:	8d 44 24 14          	lea    0x14(%esp),%eax
593efe:	50                   	push   %eax
593eff:	e8 1c c2 00 00       	call   0x5a0120
593f04:	8b d8                	mov    %eax,%ebx
593f06:	83 c4 08             	add    $0x8,%esp
593f09:	85 db                	test   %ebx,%ebx
593f0b:	75 30                	jne    0x593f3d
593f0d:	6a 73                	push   $0x73
593f0f:	68 24 81 6c 00       	push   $0x6c8124
593f14:	68 ad 00 00 00       	push   $0xad
593f19:	68 d9 00 00 00       	push   $0xd9
593f1e:	6a 0d                	push   $0xd
593f20:	e8 7b d5 f0 ff       	call   0x4a14a0
593f25:	83 c4 14             	add    $0x14,%esp
593f28:	5f                   	pop    %edi
593f29:	5e                   	pop    %esi
593f2a:	5d                   	pop    %ebp
593f2b:	33 c0                	xor    %eax,%eax
593f2d:	5b                   	pop    %ebx
593f2e:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
593f32:	33 cc                	xor    %esp,%ecx
593f34:	e8 a1 d5 04 00       	call   0x5e14da
593f39:	83 c4 30             	add    $0x30,%esp
593f3c:	c3                   	ret
593f3d:	85 f6                	test   %esi,%esi
593f3f:	75 04                	jne    0x593f45
593f41:	85 ff                	test   %edi,%edi
593f43:	74 0f                	je     0x593f54
593f45:	57                   	push   %edi
593f46:	56                   	push   %esi
593f47:	53                   	push   %ebx
593f48:	e8 03 c2 00 00       	call   0x5a0150
593f4d:	83 c4 0c             	add    $0xc,%esp
593f50:	85 c0                	test   %eax,%eax
593f52:	74 d4                	je     0x593f28
593f54:	8b 43 14             	mov    0x14(%ebx),%eax
593f57:	83 f8 32             	cmp    $0x32,%eax
593f5a:	7c 19                	jl     0x593f75
593f5c:	3d 96 00 00 00       	cmp    $0x96,%eax
593f61:	7d 12                	jge    0x593f75
593f63:	57                   	push   %edi
593f64:	56                   	push   %esi
593f65:	ff 74 24 1c          	push   0x1c(%esp)
593f69:	ff 74 24 1c          	push   0x1c(%esp)
593f6d:	55                   	push   %ebp
593f6e:	e8 cd c4 00 00       	call   0x5a0440
593f73:	eb 10                	jmp    0x593f85
593f75:	57                   	push   %edi
593f76:	56                   	push   %esi
593f77:	ff 74 24 1c          	push   0x1c(%esp)
593f7b:	ff 74 24 1c          	push   0x1c(%esp)
593f7f:	55                   	push   %ebp
593f80:	e8 4b c8 00 00       	call   0x5a07d0
593f85:	8b 4c 24 50          	mov    0x50(%esp),%ecx
593f89:	83 c4 14             	add    $0x14,%esp
593f8c:	5f                   	pop    %edi
593f8d:	5e                   	pop    %esi
593f8e:	5d                   	pop    %ebp
593f8f:	5b                   	pop    %ebx
593f90:	33 cc                	xor    %esp,%ecx
593f92:	e8 43 d5 04 00       	call   0x5e14da
593f97:	83 c4 30             	add    $0x30,%esp
593f9a:	c3                   	ret
593f9b:	cc                   	int3
593f9c:	cc                   	int3
593f9d:	cc                   	int3
593f9e:	cc                   	int3
593f9f:	cc                   	int3
593fa0:	8b 44 24 04          	mov    0x4(%esp),%eax
593fa4:	8b 48 04             	mov    0x4(%eax),%ecx
593fa7:	83 f9 18             	cmp    $0x18,%ecx
593faa:	75 09                	jne    0x593fb5
593fac:	89 44 24 04          	mov    %eax,0x4(%esp)
593fb0:	e9 6b c9 00 00       	jmp    0x5a0920
593fb5:	83 f9 17             	cmp    $0x17,%ecx
593fb8:	75 09                	jne    0x593fc3
593fba:	89 44 24 04          	mov    %eax,0x4(%esp)
593fbe:	e9 dd c5 00 00       	jmp    0x5a05a0
593fc3:	33 c0                	xor    %eax,%eax
593fc5:	c3                   	ret
593fc6:	cc                   	int3
593fc7:	cc                   	int3
593fc8:	cc                   	int3
593fc9:	cc                   	int3
593fca:	cc                   	int3
593fcb:	cc                   	int3
593fcc:	cc                   	int3
593fcd:	cc                   	int3
593fce:	cc                   	int3
593fcf:	cc                   	int3
593fd0:	68 fc 80 6c 00       	push   $0x6c80fc
593fd5:	ff 74 24 08          	push   0x8(%esp)
593fd9:	e8 b2 de f1 ff       	call   0x4b1e90
593fde:	83 c4 08             	add    $0x8,%esp
593fe1:	c3                   	ret
593fe2:	cc                   	int3
593fe3:	cc                   	int3
593fe4:	cc                   	int3
593fe5:	cc                   	int3
593fe6:	cc                   	int3
593fe7:	cc                   	int3
593fe8:	cc                   	int3
593fe9:	cc                   	int3
593fea:	cc                   	int3
593feb:	cc                   	int3
593fec:	cc                   	int3
593fed:	cc                   	int3
593fee:	cc                   	int3
593fef:	cc                   	int3
593ff0:	b8 fc 80 6c 00       	mov    $0x6c80fc,%eax
593ff5:	c3                   	ret
593ff6:	cc                   	int3
593ff7:	cc                   	int3
593ff8:	cc                   	int3
593ff9:	cc                   	int3
593ffa:	cc                   	int3
593ffb:	cc                   	int3
593ffc:	cc                   	int3
593ffd:	cc                   	int3
593ffe:	cc                   	int3
593fff:	cc                   	int3
594000:	b8 6c 00 00 00       	mov    $0x6c,%eax
594005:	e8 e6 d4 04 00       	call   0x5e14f0
59400a:	a1 d4 89 72 00       	mov    0x7289d4,%eax
59400f:	33 c4                	xor    %esp,%eax
594011:	89 44 24 68          	mov    %eax,0x68(%esp)
594015:	8b 44 24 74          	mov    0x74(%esp),%eax
594019:	53                   	push   %ebx
59401a:	89 44 24 0c          	mov    %eax,0xc(%esp)
59401e:	33 db                	xor    %ebx,%ebx
594020:	8b 44 24 7c          	mov    0x7c(%esp),%eax
594024:	55                   	push   %ebp
594025:	8b 6c 24 78          	mov    0x78(%esp),%ebp
594029:	56                   	push   %esi
59402a:	89 44 24 10          	mov    %eax,0x10(%esp)
59402e:	33 f6                	xor    %esi,%esi
594030:	89 18                	mov    %ebx,(%eax)
594032:	8d 44 24 1c          	lea    0x1c(%esp),%eax
594036:	57                   	push   %edi
594037:	8b bc 24 8c 00 00 00 	mov    0x8c(%esp),%edi
59403e:	50                   	push   %eax
59403f:	e8 7c d6 f1 ff       	call   0x4b16c0