597dc8:	c3                   	ret
597dc9:	e8 47 a2 03 00       	call   0x5d2015
597dce:	cc                   	int3
597dcf:	cc                   	int3
597dd0:	56                   	push   %esi
597dd1:	57                   	push   %edi
597dd2:	8b 7c 24 0c          	mov    0xc(%esp),%edi
597dd6:	33 f6                	xor    %esi,%esi
597dd8:	85 ff                	test   %edi,%edi
597dda:	74 5c                	je     0x597e38
597ddc:	39 77 08             	cmp    %esi,0x8(%edi)
597ddf:	75 04                	jne    0x597de5
597de1:	33 c0                	xor    %eax,%eax
597de3:	eb 0f                	jmp    0x597df4
597de5:	ff 77 0c             	push   0xc(%edi)
597de8:	e8 73 08 ff ff       	call   0x588660
597ded:	83 c4 04             	add    $0x4,%esp
597df0:	85 c0                	test   %eax,%eax
597df2:	74 44                	je     0x597e38
597df4:	85 c0                	test   %eax,%eax
597df6:	74 13                	je     0x597e0b
597df8:	50                   	push   %eax
597df9:	e8 c2 8a f5 ff       	call   0x4f08c0
597dfe:	83 c4 04             	add    $0x4,%esp
597e01:	8b f0                	mov    %eax,%esi
597e03:	c1 e6 02             	shl    $0x2,%esi
597e06:	8b c6                	mov    %esi,%eax
597e08:	5f                   	pop    %edi
597e09:	5e                   	pop    %esi
597e0a:	c3                   	ret
597e0b:	0f b7 47 04          	movzwl 0x4(%edi),%eax
597e0f:	b9 07 08 00 00       	mov    $0x807,%ecx
597e14:	66 3b c1             	cmp    %cx,%ax
597e17:	75 0a                	jne    0x597e23
597e19:	be 80 00 00 00       	mov    $0x80,%esi
597e1e:	5f                   	pop    %edi
597e1f:	8b c6                	mov    %esi,%eax
597e21:	5e                   	pop    %esi
597e22:	c3                   	ret
597e23:	ba 08 08 00 00       	mov    $0x808,%edx
597e28:	b9 e0 00 00 00       	mov    $0xe0,%ecx
597e2d:	66 3b c2             	cmp    %dx,%ax
597e30:	5f                   	pop    %edi
597e31:	0f 44 f1             	cmove  %ecx,%esi
597e34:	8b c6                	mov    %esi,%eax
597e36:	5e                   	pop    %esi
597e37:	c3                   	ret
597e38:	5f                   	pop    %edi
597e39:	33 c0                	xor    %eax,%eax
597e3b:	5e                   	pop    %esi
597e3c:	c3                   	ret
597e3d:	cc                   	int3
597e3e:	cc                   	int3
597e3f:	cc                   	int3
597e40:	53                   	push   %ebx
597e41:	56                   	push   %esi
597e42:	57                   	push   %edi
597e43:	ff 74 24 14          	push   0x14(%esp)
597e47:	e8 44 9a f5 ff       	call   0x4f1890
597e4c:	8b 7c 24 14          	mov    0x14(%esp),%edi
597e50:	8b d8                	mov    %eax,%ebx
597e52:	57                   	push   %edi
597e53:	33 f6                	xor    %esi,%esi
597e55:	e8 66 d2 f4 ff       	call   0x4e50c0
597e5a:	83 c4 08             	add    $0x8,%esp
597e5d:	85 c0                	test   %eax,%eax
597e5f:	7e 23                	jle    0x597e84
597e61:	56                   	push   %esi
597e62:	57                   	push   %edi
597e63:	e8 18 d4 f4 ff       	call   0x4e5280
597e68:	50                   	push   %eax
597e69:	53                   	push   %ebx
597e6a:	e8 e1 fc fb ff       	call   0x557b50
597e6f:	83 c4 10             	add    $0x10,%esp
597e72:	85 c0                	test   %eax,%eax
597e74:	74 14                	je     0x597e8a
597e76:	57                   	push   %edi
597e77:	46                   	inc    %esi
597e78:	e8 43 d2 f4 ff       	call   0x4e50c0
597e7d:	83 c4 04             	add    $0x4,%esp
597e80:	3b f0                	cmp    %eax,%esi
597e82:	7c dd                	jl     0x597e61
597e84:	5f                   	pop    %edi
597e85:	5e                   	pop    %esi
597e86:	33 c0                	xor    %eax,%eax
597e88:	5b                   	pop    %ebx
597e89:	c3                   	ret
597e8a:	5f                   	pop    %edi
597e8b:	5e                   	pop    %esi
597e8c:	b8 01 00 00 00       	mov    $0x1,%eax
597e91:	5b                   	pop    %ebx
597e92:	c3                   	ret
597e93:	cc                   	int3
597e94:	cc                   	int3
597e95:	cc                   	int3
597e96:	cc                   	int3
597e97:	cc                   	int3
597e98:	cc                   	int3
597e99:	cc                   	int3
597e9a:	cc                   	int3
597e9b:	cc                   	int3
597e9c:	cc                   	int3
597e9d:	cc                   	int3
597e9e:	cc                   	int3
597e9f:	cc                   	int3
597ea0:	8b 54 24 08          	mov    0x8(%esp),%edx
597ea4:	53                   	push   %ebx
597ea5:	56                   	push   %esi
597ea6:	57                   	push   %edi
597ea7:	8b 7c 24 10          	mov    0x10(%esp),%edi
597eab:	8b 5a 10             	mov    0x10(%edx),%ebx
597eae:	8b 77 7c             	mov    0x7c(%edi),%esi
597eb1:	85 9e a0 02 00 00    	test   %ebx,0x2a0(%esi)
597eb7:	75 4c                	jne    0x597f05
597eb9:	8b 86 a4 02 00 00    	mov    0x2a4(%esi),%eax
597ebf:	85 42 14             	test   %eax,0x14(%edx)
597ec2:	75 41                	jne    0x597f05
597ec4:	8b 8e ac 02 00 00    	mov    0x2ac(%esi),%ecx
597eca:	85 c9                	test   %ecx,%ecx
597ecc:	74 37                	je     0x597f05
597ece:	8b 47 04             	mov    0x4(%edi),%eax
597ed1:	8b 40 64             	mov    0x64(%eax),%eax
597ed4:	f6 40 30 08          	testb  $0x8,0x30(%eax)
597ed8:	75 34                	jne    0x597f0e
597eda:	8b 42 20             	mov    0x20(%edx),%eax
597edd:	3d 01 03 00 00       	cmp    $0x301,%eax
597ee2:	75 12                	jne    0x597ef6
597ee4:	83 7c 24 1c 00       	cmpl   $0x0,0x1c(%esp)
597ee9:	74 0b                	je     0x597ef6
597eeb:	f6 c3 84             	test   $0x84,%bl
597eee:	bb 00 03 00 00       	mov    $0x300,%ebx
597ef3:	0f 45 c3             	cmovne %ebx,%eax
597ef6:	3b c1                	cmp    %ecx,%eax
597ef8:	7f 0b                	jg     0x597f05
597efa:	8b 42 24             	mov    0x24(%edx),%eax
597efd:	3b 86 a8 02 00 00    	cmp    0x2a8(%esi),%eax
597f03:	7d 44                	jge    0x597f49
597f05:	5f                   	pop    %edi
597f06:	5e                   	pop    %esi
597f07:	b8 01 00 00 00       	mov    $0x1,%eax
597f0c:	5b                   	pop    %ebx
597f0d:	c3                   	ret
597f0e:	8b 42 28             	mov    0x28(%edx),%eax
597f11:	bb 00 ff 00 00       	mov    $0xff00,%ebx
597f16:	3d 00 01 00 00       	cmp    $0x100,%eax
597f1b:	0f 44 c3             	cmove  %ebx,%eax
597f1e:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
597f24:	0f 44 cb             	cmove  %ebx,%ecx
597f27:	3b c1                	cmp    %ecx,%eax
597f29:	7c da                	jl     0x597f05
597f2b:	8b 4a 2c             	mov    0x2c(%edx),%ecx
597f2e:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
597f34:	8b 86 a8 02 00 00    	mov    0x2a8(%esi),%eax
597f3a:	0f 44 cb             	cmove  %ebx,%ecx
597f3d:	3d 00 01 00 00       	cmp    $0x100,%eax
597f42:	0f 44 c3             	cmove  %ebx,%eax
597f45:	3b c8                	cmp    %eax,%ecx
597f47:	7f bc                	jg     0x597f05
597f49:	52                   	push   %edx
597f4a:	6a 00                	push   $0x0
597f4c:	ff 72 38             	push   0x38(%edx)
597f4f:	ff 74 24 24          	push   0x24(%esp)
597f53:	57                   	push   %edi
597f54:	e8 27 36 ff ff       	call   0x58b580
597f59:	83 c4 14             	add    $0x14,%esp
597f5c:	f7 d8                	neg    %eax
597f5e:	1b c0                	sbb    %eax,%eax
597f60:	40                   	inc    %eax
597f61:	5f                   	pop    %edi
597f62:	5e                   	pop    %esi
597f63:	5b                   	pop    %ebx
597f64:	c3                   	ret
597f65:	cc                   	int3
597f66:	cc                   	int3
597f67:	cc                   	int3
597f68:	cc                   	int3
597f69:	cc                   	int3
597f6a:	cc                   	int3
597f6b:	cc                   	int3
597f6c:	cc                   	int3
597f6d:	cc                   	int3
597f6e:	cc                   	int3
597f6f:	cc                   	int3
597f70:	8b 4c 24 04          	mov    0x4(%esp),%ecx
597f74:	56                   	push   %esi
597f75:	57                   	push   %edi
597f76:	be 50 00 00 00       	mov    $0x50,%esi
597f7b:	8b 81 04 04 00 00    	mov    0x404(%ecx),%eax
597f81:	83 78 0c 02          	cmpl   $0x2,0xc(%eax)
597f85:	74 3c                	je     0x597fc3
597f87:	8b 41 7c             	mov    0x7c(%ecx),%eax
597f8a:	8b 88 10 02 00 00    	mov    0x210(%eax),%ecx
597f90:	f6 41 14 14          	testb  $0x14,0x14(%ecx)
597f94:	74 16                	je     0x597fac
597f96:	81 79 38 00 01 00 00 	cmpl   $0x100,0x38(%ecx)
597f9d:	be 80 00 00 00       	mov    $0x80,%esi
597fa2:	b8 50 00 00 00       	mov    $0x50,%eax
597fa7:	0f 45 f0             	cmovne %eax,%esi
597faa:	eb 17                	jmp    0x597fc3
597fac:	8b 80 64 02 00 00    	mov    0x264(%eax),%eax
597fb2:	85 c0                	test   %eax,%eax
597fb4:	74 18                	je     0x597fce
597fb6:	ff 70 04             	push   0x4(%eax)
597fb9:	e8 62 91 f5 ff       	call   0x4f1120
597fbe:	83 c4 04             	add    $0x4,%esp
597fc1:	8b f0                	mov    %eax,%esi
597fc3:	e8 b8 4a f7 ff       	call   0x50ca80
597fc8:	8b f8                	mov    %eax,%edi
597fca:	85 ff                	test   %edi,%edi
597fcc:	75 05                	jne    0x597fd3
597fce:	5f                   	pop    %edi
597fcf:	33 c0                	xor    %eax,%eax
597fd1:	5e                   	pop    %esi
597fd2:	c3                   	ret
597fd3:	53                   	push   %ebx
597fd4:	e8 07 1e f4 ff       	call   0x4d9de0
597fd9:	8b d8                	mov    %eax,%ebx
597fdb:	85 db                	test   %ebx,%ebx
597fdd:	0f 84 8a 00 00 00    	je     0x59806d
597fe3:	6a 02                	push   $0x2
597fe5:	53                   	push   %ebx
597fe6:	e8 f5 20 f4 ff       	call   0x4da0e0
597feb:	83 c4 08             	add    $0x8,%esp
597fee:	85 c0                	test   %eax,%eax
597ff0:	74 7b                	je     0x59806d
597ff2:	6a 00                	push   $0x0
597ff4:	81 fe c0 00 00 00    	cmp    $0xc0,%esi
597ffa:	7c 07                	jl     0x598003
597ffc:	e8 df f8 05 00       	call   0x5f78e0
598001:	eb 2f                	jmp    0x598032
598003:	81 fe 98 00 00 00    	cmp    $0x98,%esi
598009:	7c 07                	jl     0x598012
59800b:	e8 b0 f8 05 00       	call   0x5f78c0
598010:	eb 20                	jmp    0x598032
598012:	81 fe 80 00 00 00    	cmp    $0x80,%esi
598018:	7c 07                	jl     0x598021
59801a:	e8 81 f8 05 00       	call   0x5f78a0
59801f:	eb 11                	jmp    0x598032
598021:	83 fe 70             	cmp    $0x70,%esi
598024:	7c 07                	jl     0x59802d
598026:	e8 55 f8 05 00       	call   0x5f7880
59802b:	eb 05                	jmp    0x598032
59802d:	e8 2e f8 05 00       	call   0x5f7860
598032:	8b f0                	mov    %eax,%esi
598034:	83 c4 04             	add    $0x4,%esp
598037:	85 f6                	test   %esi,%esi
598039:	74 17                	je     0x598052
59803b:	53                   	push   %ebx
59803c:	6a 00                	push   $0x0
59803e:	56                   	push   %esi
59803f:	57                   	push   %edi
598040:	e8 8b 4c f7 ff       	call   0x50ccd0
598045:	83 c4 10             	add    $0x10,%esp
598048:	85 c0                	test   %eax,%eax
59804a:	74 06                	je     0x598052
59804c:	5b                   	pop    %ebx
59804d:	8b c7                	mov    %edi,%eax
59804f:	5f                   	pop    %edi
598050:	5e                   	pop    %esi
598051:	c3                   	ret
598052:	57                   	push   %edi
598053:	e8 28 49 f7 ff       	call   0x50c980
598058:	56                   	push   %esi
598059:	e8 c2 1b f4 ff       	call   0x4d9c20
59805e:	53                   	push   %ebx
59805f:	e8 bc 1b f4 ff       	call   0x4d9c20
598064:	83 c4 0c             	add    $0xc,%esp
598067:	33 c0                	xor    %eax,%eax
598069:	5b                   	pop    %ebx
59806a:	5f                   	pop    %edi
59806b:	5e                   	pop    %esi
59806c:	c3                   	ret
59806d:	57                   	push   %edi
59806e:	e8 0d 49 f7 ff       	call   0x50c980
598073:	53                   	push   %ebx
598074:	e8 a7 1b f4 ff       	call   0x4d9c20
598079:	83 c4 08             	add    $0x8,%esp
59807c:	33 c0                	xor    %eax,%eax
59807e:	5b                   	pop    %ebx
59807f:	5f                   	pop    %edi
598080:	5e                   	pop    %esi
598081:	c3                   	ret
598082:	cc                   	int3
598083:	cc                   	int3
598084:	cc                   	int3
598085:	cc                   	int3
598086:	cc                   	int3
598087:	cc                   	int3
598088:	cc                   	int3
598089:	cc                   	int3
59808a:	cc                   	int3
59808b:	cc                   	int3
59808c:	cc                   	int3
59808d:	cc                   	int3
59808e:	cc                   	int3
59808f:	cc                   	int3
598090:	b8 04 00 00 00       	mov    $0x4,%eax
598095:	e8 16 97 03 00       	call   0x5d17b0
59809a:	8b 44 24 14          	mov    0x14(%esp),%eax
59809e:	85 c0                	test   %eax,%eax
5980a0:	53                   	push   %ebx
5980a1:	55                   	push   %ebp
5980a2:	56                   	push   %esi
5980a3:	8b 74 24 1c          	mov    0x1c(%esp),%esi
5980a7:	57                   	push   %edi
5980a8:	bf 00 10 00 00       	mov    $0x1000,%edi
5980ad:	0f 44 f8             	cmove  %eax,%edi
5980b0:	83 7c 24 28 00       	cmpl   $0x0,0x28(%esp)
5980b5:	8b ef                	mov    %edi,%ebp
5980b7:	56                   	push   %esi
5980b8:	74 50                	je     0x59810a
5980ba:	81 cd 10 00 06 00    	or     $0x60010,%ebp
5980c0:	e8 6b 00 fc ff       	call   0x558130
5980c5:	83 c4 04             	add    $0x4,%esp
5980c8:	85 c0                	test   %eax,%eax
5980ca:	74 0b                	je     0x5980d7
5980cc:	50                   	push   %eax
5980cd:	e8 4e 90 f5 ff       	call   0x4f1120
5980d2:	83 c4 04             	add    $0x4,%esp
5980d5:	eb 03                	jmp    0x5980da
5980d7:	83 c8 ff             	or     $0xffffffff,%eax
5980da:	8b 5c 24 18          	mov    0x18(%esp),%ebx
5980de:	56                   	push   %esi
5980df:	6a 00                	push   $0x0
5980e1:	50                   	push   %eax
5980e2:	55                   	push   %ebp
5980e3:	85 db                	test   %ebx,%ebx
5980e5:	74 08                	je     0x5980ef
5980e7:	53                   	push   %ebx
5980e8:	e8 93 34 ff ff       	call   0x58b580
5980ed:	eb 09                	jmp    0x5980f8
5980ef:	ff 74 24 2c          	push   0x2c(%esp)
5980f3:	e8 58 34 ff ff       	call   0x58b550
5980f8:	83 c4 14             	add    $0x14,%esp
5980fb:	85 c0                	test   %eax,%eax
5980fd:	75 5b                	jne    0x59815a
5980ff:	5f                   	pop    %edi
598100:	5e                   	pop    %esi
598101:	5d                   	pop    %ebp
598102:	b8 8f 01 00 00       	mov    $0x18f,%eax
598107:	5b                   	pop    %ebx
598108:	59                   	pop    %ecx
598109:	c3                   	ret
59810a:	81 cd 11 00 06 00    	or     $0x60011,%ebp
598110:	e8 1b 00 fc ff       	call   0x558130
598115:	83 c4 04             	add    $0x4,%esp
598118:	85 c0                	test   %eax,%eax
59811a:	74 0b                	je     0x598127
59811c:	50                   	push   %eax
59811d:	e8 fe 8f f5 ff       	call   0x4f1120