598cc5:	8b f0                	mov    %eax,%esi
598cc7:	83 c4 04             	add    $0x4,%esp
598cca:	89 74 24 18          	mov    %esi,0x18(%esp)
598cce:	85 f6                	test   %esi,%esi
598cd0:	74 b8                	je     0x598c8a
598cd2:	56                   	push   %esi
598cd3:	e8 e8 c3 f4 ff       	call   0x4e50c0
598cd8:	83 c4 04             	add    $0x4,%esp
598cdb:	33 db                	xor    %ebx,%ebx
598cdd:	85 c0                	test   %eax,%eax
598cdf:	0f 8e dd 00 00 00    	jle    0x598dc2
598ce5:	89 44 24 14          	mov    %eax,0x14(%esp)
598ce9:	c7 44 24 10 00 ff 00 	movl   $0xff00,0x10(%esp)
598cf0:	00
598cf1:	53                   	push   %ebx
598cf2:	56                   	push   %esi
598cf3:	e8 88 c5 f4 ff       	call   0x4e5280
598cf8:	8b 57 7c             	mov    0x7c(%edi),%edx
598cfb:	8b f0                	mov    %eax,%esi
598cfd:	83 c4 08             	add    $0x8,%esp
598d00:	8b 8a a0 02 00 00    	mov    0x2a0(%edx),%ecx
598d06:	85 4e 10             	test   %ecx,0x10(%esi)
598d09:	0f 85 a2 00 00 00    	jne    0x598db1
598d0f:	8b 8a a4 02 00 00    	mov    0x2a4(%edx),%ecx
598d15:	85 4e 14             	test   %ecx,0x14(%esi)
598d18:	0f 85 93 00 00 00    	jne    0x598db1
598d1e:	8b 8a ac 02 00 00    	mov    0x2ac(%edx),%ecx
598d24:	85 c9                	test   %ecx,%ecx
598d26:	0f 84 85 00 00 00    	je     0x598db1
598d2c:	8b 47 04             	mov    0x4(%edi),%eax
598d2f:	8b 40 64             	mov    0x64(%eax),%eax
598d32:	f6 40 30 08          	testb  $0x8,0x30(%eax)
598d36:	75 12                	jne    0x598d4a
598d38:	39 4e 20             	cmp    %ecx,0x20(%esi)
598d3b:	7f 74                	jg     0x598db1
598d3d:	8b 46 24             	mov    0x24(%esi),%eax
598d40:	3b 82 a8 02 00 00    	cmp    0x2a8(%edx),%eax
598d46:	7d 46                	jge    0x598d8e
598d48:	eb 67                	jmp    0x598db1
598d4a:	8b 46 28             	mov    0x28(%esi),%eax
598d4d:	3d 00 01 00 00       	cmp    $0x100,%eax
598d52:	0f 44 44 24 10       	cmove  0x10(%esp),%eax
598d57:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
598d5d:	0f 44 4c 24 10       	cmove  0x10(%esp),%ecx
598d62:	3b c1                	cmp    %ecx,%eax
598d64:	7c 4b                	jl     0x598db1
598d66:	8b 4e 2c             	mov    0x2c(%esi),%ecx
598d69:	b8 00 ff 00 00       	mov    $0xff00,%eax
598d6e:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
598d74:	0f 44 c8             	cmove  %eax,%ecx
598d77:	8b 82 a8 02 00 00    	mov    0x2a8(%edx),%eax
598d7d:	3d 00 01 00 00       	cmp    $0x100,%eax
598d82:	ba 00 ff 00 00       	mov    $0xff00,%edx
598d87:	0f 44 c2             	cmove  %edx,%eax
598d8a:	3b c8                	cmp    %eax,%ecx
598d8c:	7f 23                	jg     0x598db1
598d8e:	56                   	push   %esi
598d8f:	6a 00                	push   $0x0
598d91:	ff 76 38             	push   0x38(%esi)
598d94:	68 01 00 01 00       	push   $0x10001
598d99:	57                   	push   %edi
598d9a:	e8 e1 27 ff ff       	call   0x58b580
598d9f:	83 c4 14             	add    $0x14,%esp
598da2:	f7 d8                	neg    %eax
598da4:	1b c0                	sbb    %eax,%eax
598da6:	83 c0 01             	add    $0x1,%eax
598da9:	75 06                	jne    0x598db1
598dab:	f6 46 10 10          	testb  $0x10,0x10(%esi)
598daf:	75 19                	jne    0x598dca
598db1:	8b 44 24 14          	mov    0x14(%esp),%eax
598db5:	43                   	inc    %ebx
598db6:	8b 74 24 18          	mov    0x18(%esp),%esi
598dba:	3b d8                	cmp    %eax,%ebx
598dbc:	0f 8c 2f ff ff ff    	jl     0x598cf1
598dc2:	3b d8                	cmp    %eax,%ebx
598dc4:	0f 84 c0 fe ff ff    	je     0x598c8a
598dca:	55                   	push   %ebp
598dcb:	e8 00 f0 ff ff       	call   0x597dd0
598dd0:	0f b7 55 04          	movzwl 0x4(%ebp),%edx
598dd4:	8b ca                	mov    %edx,%ecx
598dd6:	88 54 24 2d          	mov    %dl,0x2d(%esp)
598dda:	c1 e9 08             	shr    $0x8,%ecx
598ddd:	88 4c 24 2c          	mov    %cl,0x2c(%esp)
598de1:	8d 4c 24 2c          	lea    0x2c(%esp),%ecx
598de5:	51                   	push   %ecx
598de6:	ff 75 08             	push   0x8(%ebp)
598de9:	50                   	push   %eax
598dea:	ff 74 24 34          	push   0x34(%esp)
598dee:	57                   	push   %edi
598def:	e8 8c 27 ff ff       	call   0x58b580
598df4:	83 c4 18             	add    $0x18,%esp
598df7:	5f                   	pop    %edi
598df8:	5e                   	pop    %esi
598df9:	5d                   	pop    %ebp
598dfa:	5b                   	pop    %ebx
598dfb:	83 c4 0c             	add    $0xc,%esp
598dfe:	c3                   	ret
598dff:	cc                   	int3
598e00:	53                   	push   %ebx
598e01:	56                   	push   %esi
598e02:	57                   	push   %edi
598e03:	ff 74 24 14          	push   0x14(%esp)
598e07:	e8 24 f3 fb ff       	call   0x558130
598e0c:	8b f8                	mov    %eax,%edi
598e0e:	83 c4 04             	add    $0x4,%esp
598e11:	85 ff                	test   %edi,%edi
598e13:	0f 84 96 00 00 00    	je     0x598eaf
598e19:	57                   	push   %edi
598e1a:	e8 a1 72 f5 ff       	call   0x4f00c0
598e1f:	83 c4 04             	add    $0x4,%esp
598e22:	3d 98 01 00 00       	cmp    $0x198,%eax
598e27:	0f 85 88 00 00 00    	jne    0x598eb5
598e2d:	8b 74 24 10          	mov    0x10(%esp),%esi
598e31:	57                   	push   %edi
598e32:	56                   	push   %esi
598e33:	e8 78 09 00 00       	call   0x5997b0
598e38:	83 c4 08             	add    $0x8,%esp
598e3b:	85 c0                	test   %eax,%eax
598e3d:	74 70                	je     0x598eaf
598e3f:	57                   	push   %edi
598e40:	e8 bb 0b 00 00       	call   0x599a00
598e45:	0f b7 f8             	movzwl %ax,%edi
598e48:	33 c0                	xor    %eax,%eax
598e4a:	39 46 1c             	cmp    %eax,0x1c(%esi)
598e4d:	0f 94 c0             	sete   %al
598e50:	50                   	push   %eax
598e51:	57                   	push   %edi
598e52:	56                   	push   %esi
598e53:	e8 78 08 00 00       	call   0x5996d0
598e58:	83 c4 10             	add    $0x10,%esp
598e5b:	85 c0                	test   %eax,%eax
598e5d:	74 50                	je     0x598eaf
598e5f:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
598e64:	74 4f                	je     0x598eb5
598e66:	8b 86 04 04 00 00    	mov    0x404(%esi),%eax
598e6c:	f7 40 10 00 00 03 00 	testl  $0x30000,0x10(%eax)
598e73:	74 40                	je     0x598eb5
598e75:	83 ff 17             	cmp    $0x17,%edi
598e78:	75 07                	jne    0x598e81
598e7a:	bf 1a 03 00 00       	mov    $0x31a,%edi
598e7f:	eb 0a                	jmp    0x598e8b
598e81:	83 ff 18             	cmp    $0x18,%edi
598e84:	75 29                	jne    0x598eaf
598e86:	bf 1b 03 00 00       	mov    $0x31b,%edi
598e8b:	8b 9e 8c 0f 00 00    	mov    0xf8c(%esi),%ebx
598e91:	33 c9                	xor    %ecx,%ecx
598e93:	85 db                	test   %ebx,%ebx
598e95:	74 18                	je     0x598eaf
598e97:	8b 96 88 0f 00 00    	mov    0xf88(%esi),%edx
598e9d:	0f 1f 00             	nopl   (%eax)
598ea0:	8b 02                	mov    (%edx),%eax
598ea2:	3b 78 18             	cmp    0x18(%eax),%edi
598ea5:	74 0e                	je     0x598eb5
598ea7:	41                   	inc    %ecx
598ea8:	83 c2 04             	add    $0x4,%edx
598eab:	3b cb                	cmp    %ebx,%ecx
598ead:	72 f1                	jb     0x598ea0
598eaf:	5f                   	pop    %edi
598eb0:	5e                   	pop    %esi
598eb1:	33 c0                	xor    %eax,%eax
598eb3:	5b                   	pop    %ebx
598eb4:	c3                   	ret
598eb5:	5f                   	pop    %edi
598eb6:	5e                   	pop    %esi
598eb7:	b8 01 00 00 00       	mov    $0x1,%eax
598ebc:	5b                   	pop    %ebx
598ebd:	c3                   	ret
598ebe:	cc                   	int3
598ebf:	cc                   	int3
598ec0:	b8 24 00 00 00       	mov    $0x24,%eax
598ec5:	e8 e6 88 03 00       	call   0x5d17b0
598eca:	53                   	push   %ebx
598ecb:	55                   	push   %ebp
598ecc:	8b 6c 24 30          	mov    0x30(%esp),%ebp
598ed0:	33 c9                	xor    %ecx,%ecx
598ed2:	56                   	push   %esi
598ed3:	57                   	push   %edi
598ed4:	8b 7c 24 48          	mov    0x48(%esp),%edi
598ed8:	33 f6                	xor    %esi,%esi
598eda:	8b 95 04 04 00 00    	mov    0x404(%ebp),%edx
598ee0:	89 4c 24 14          	mov    %ecx,0x14(%esp)
598ee4:	89 54 24 28          	mov    %edx,0x28(%esp)
598ee8:	8b 42 10             	mov    0x10(%edx),%eax
598eeb:	8b d8                	mov    %eax,%ebx
598eed:	81 e3 00 00 03 00    	and    $0x30000,%ebx
598ef3:	89 44 24 10          	mov    %eax,0x10(%esp)
598ef7:	83 ff ff             	cmp    $0xffffffff,%edi
598efa:	0f 84 a7 00 00 00    	je     0x598fa7
598f00:	83 ff fe             	cmp    $0xfffffffe,%edi
598f03:	75 1e                	jne    0x598f23
598f05:	8b 2a                	mov    (%edx),%ebp
598f07:	b8 67 66 66 66       	mov    $0x66666667,%eax
598f0c:	8b cd                	mov    %ebp,%ecx
598f0e:	2b ca                	sub    %edx,%ecx
598f10:	83 e9 14             	sub    $0x14,%ecx
598f13:	f7 e9                	imul   %ecx
598f15:	c1 fa 03             	sar    $0x3,%edx
598f18:	8b fa                	mov    %edx,%edi
598f1a:	c1 ef 1f             	shr    $0x1f,%edi
598f1d:	03 fa                	add    %edx,%edi
598f1f:	33 c9                	xor    %ecx,%ecx
598f21:	eb 09                	jmp    0x598f2c
598f23:	8d 47 01             	lea    0x1(%edi),%eax
598f26:	8d 04 80             	lea    (%eax,%eax,4),%eax
598f29:	8d 2c 82             	lea    (%edx,%eax,4),%ebp
598f2c:	8b 44 24 38          	mov    0x38(%esp),%eax
598f30:	8b 55 00             	mov    0x0(%ebp),%edx
598f33:	81 64 24 10 01 00 03 	andl   $0x30001,0x10(%esp)
598f3a:	00
598f3b:	89 54 24 1c          	mov    %edx,0x1c(%esp)
598f3f:	8b 40 7c             	mov    0x7c(%eax),%eax
598f42:	8d 04 b8             	lea    (%eax,%edi,4),%eax
598f45:	05 7c 02 00 00       	add    $0x27c,%eax
598f4a:	89 44 24 24          	mov    %eax,0x24(%esp)
598f4e:	8b 45 04             	mov    0x4(%ebp),%eax
598f51:	8b 6d 08             	mov    0x8(%ebp),%ebp
598f54:	89 44 24 20          	mov    %eax,0x20(%esp)
598f58:	85 d2                	test   %edx,%edx
598f5a:	74 08                	je     0x598f64
598f5c:	85 c0                	test   %eax,%eax
598f5e:	0f 85 ba 00 00 00    	jne    0x59901e
598f64:	33 db                	xor    %ebx,%ebx
598f66:	8b 6c 24 38          	mov    0x38(%esp),%ebp
598f6a:	55                   	push   %ebp
598f6b:	e8 50 71 f5 ff       	call   0x4f00c0
598f70:	25 00 ff ff ff       	and    $0xffffff00,%eax
598f75:	83 c4 04             	add    $0x4,%esp
598f78:	3d 00 03 00 00       	cmp    $0x300,%eax
598f7d:	0f 85 c6 04 00 00    	jne    0x599449
598f83:	55                   	push   %ebp
598f84:	e8 37 71 f5 ff       	call   0x4f00c0
598f89:	83 c4 04             	add    $0x4,%esp
598f8c:	3d 03 03 00 00       	cmp    $0x303,%eax
598f91:	0f 8c b2 04 00 00    	jl     0x599449
598f97:	8b 4c 24 24          	mov    0x24(%esp),%ecx
598f9b:	8b 01                	mov    (%ecx),%eax
598f9d:	25 02 01 00 00       	and    $0x102,%eax
598fa2:	e9 ab 04 00 00       	jmp    0x599452
598fa7:	8b 44 24 3c          	mov    0x3c(%esp),%eax
598fab:	89 44 24 1c          	mov    %eax,0x1c(%esp)
598faf:	85 c0                	test   %eax,%eax
598fb1:	0f 84 b5 04 00 00    	je     0x59946c
598fb7:	8b 44 24 40          	mov    0x40(%esp),%eax
598fbb:	89 44 24 20          	mov    %eax,0x20(%esp)
598fbf:	85 c0                	test   %eax,%eax
598fc1:	0f 84 a5 04 00 00    	je     0x59946c
598fc7:	8d 4c 24 2c          	lea    0x2c(%esp),%ecx
598fcb:	51                   	push   %ecx
598fcc:	50                   	push   %eax
598fcd:	e8 0e 23 ff ff       	call   0x58b2e0
598fd2:	83 c4 08             	add    $0x8,%esp
598fd5:	85 c0                	test   %eax,%eax
598fd7:	0f 84 8f 04 00 00    	je     0x59946c
598fdd:	8b 45 7c             	mov    0x7c(%ebp),%eax
598fe0:	8b 7c 24 2c          	mov    0x2c(%esp),%edi
598fe4:	8b 6c 24 44          	mov    0x44(%esp),%ebp
598fe8:	8b 54 24 3c          	mov    0x3c(%esp),%edx
598fec:	c7 44 24 10 01 00 00 	movl   $0x1,0x10(%esp)
598ff3:	00
598ff4:	8d 04 b8             	lea    (%eax,%edi,4),%eax
598ff7:	05 7c 02 00 00       	add    $0x27c,%eax
598ffc:	89 44 24 24          	mov    %eax,0x24(%esp)
599000:	8b 44 24 28          	mov    0x28(%esp),%eax
599004:	8b 48 10             	mov    0x10(%eax),%ecx
599007:	81 e1 01 00 03 00    	and    $0x30001,%ecx
59900d:	f7 d9                	neg    %ecx
59900f:	1b c9                	sbb    %ecx,%ecx
599011:	81 e1 a0 06 00 00    	and    $0x6a0,%ecx
599017:	83 c1 50             	add    $0x50,%ecx
59901a:	89 4c 24 14          	mov    %ecx,0x14(%esp)
59901e:	85 db                	test   %ebx,%ebx
599020:	74 40                	je     0x599062
599022:	8b c1                	mov    %ecx,%eax
599024:	53                   	push   %ebx
599025:	0d 00 08 00 00       	or     $0x800,%eax
59902a:	85 c9                	test   %ecx,%ecx
59902c:	55                   	push   %ebp
59902d:	0f 44 c1             	cmove  %ecx,%eax
599030:	52                   	push   %edx
599031:	6a 00                	push   $0x0
599033:	89 44 24 24          	mov    %eax,0x24(%esp)
599037:	89 44 24 58          	mov    %eax,0x58(%esp)
59903b:	e8 60 ec fb ff       	call   0x557ca0
599040:	8b 5c 24 24          	mov    0x24(%esp),%ebx
599044:	83 c4 10             	add    $0x10,%esp
599047:	85 c0                	test   %eax,%eax
599049:	75 07                	jne    0x599052
59904b:	be 00 08 00 00       	mov    $0x800,%esi
599050:	eb 14                	jmp    0x599066
599052:	89 5c 24 14          	mov    %ebx,0x14(%esp)
599056:	39 74 24 48          	cmp    %esi,0x48(%esp)
59905a:	0f 84 06 ff ff ff    	je     0x598f66
599060:	eb 04                	jmp    0x599066
599062:	8b 5c 24 14          	mov    0x14(%esp),%ebx
599066:	ff 74 24 38          	push   0x38(%esp)
59906a:	e8 51 70 f5 ff       	call   0x4f00c0
59906f:	25 00 ff ff ff       	and    $0xffffff00,%eax
599074:	83 c4 04             	add    $0x4,%esp
599077:	3d 00 03 00 00       	cmp    $0x300,%eax
59907c:	0f 85 e7 01 00 00    	jne    0x599269
599082:	ff 74 24 38          	push   0x38(%esp)
599086:	e8 35 70 f5 ff       	call   0x4f00c0
59908b:	83 c4 04             	add    $0x4,%esp
59908e:	3d 03 03 00 00       	cmp    $0x303,%eax
599093:	0f 8c d0 01 00 00    	jl     0x599269
599099:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
59909e:	0f 84 c5 01 00 00    	je     0x599269
5990a4:	8b 44 24 38          	mov    0x38(%esp),%eax
5990a8:	8b 40 7c             	mov    0x7c(%eax),%eax
5990ab:	83 b8 6c 02 00 00 00 	cmpl   $0x0,0x26c(%eax)
5990b2:	0f 85 06 01 00 00    	jne    0x5991be
5990b8:	83 b8 68 02 00 00 00 	cmpl   $0x0,0x268(%eax)
5990bf:	0f 85 f9 00 00 00    	jne    0x5991be
5990c5:	83 ff 06             	cmp    $0x6,%edi
5990c8:	0f 87 e7 00 00 00    	ja     0x5991b5
5990ce:	ff 24 bd 78 94 59 00 	jmp    *0x599478(,%edi,4)
5990d5:	c7 44 24 18 06 00 00 	movl   $0x6,0x18(%esp)
5990dc:	00
5990dd:	c7 44 24 48 41 00 00 	movl   $0x41,0x48(%esp)
5990e4:	00
5990e5:	eb 58                	jmp    0x59913f
5990e7:	c7 44 24 18 74 00 00 	movl   $0x74,0x18(%esp)
5990ee:	00
5990ef:	c7 44 24 48 71 00 00 	movl   $0x71,0x48(%esp)
5990f6:	00
5990f7:	eb 46                	jmp    0x59913f
5990f9:	c7 44 24 18 98 01 00 	movl   $0x198,0x18(%esp)
599100:	00
599101:	c7 44 24 48 a0 01 00 	movl   $0x1a0,0x48(%esp)
599108:	00
599109:	eb 34                	jmp    0x59913f
59910b:	c7 44 24 18 2b 03 00 	movl   $0x32b,0x18(%esp)
599112:	00
599113:	c7 44 24 48 27 03 00 	movl   $0x327,0x48(%esp)
59911a:	00
59911b:	eb 22                	jmp    0x59913f
59911d:	c7 44 24 18 d3 03 00 	movl   $0x3d3,0x18(%esp)
599124:	00
599125:	c7 44 24 48 d9 03 00 	movl   $0x3d9,0x48(%esp)
59912c:	00
59912d:	eb 10                	jmp    0x59913f
59912f:	c7 44 24 18 d4 03 00 	movl   $0x3d4,0x18(%esp)
599136:	00
599137:	c7 44 24 48 da 03 00 	movl   $0x3da,0x48(%esp)
59913e:	00
59913f:	8b 44 24 28          	mov    0x28(%esp),%eax
599143:	8b 90 d0 00 00 00    	mov    0xd0(%eax),%edx
599149:	89 54 24 28          	mov    %edx,0x28(%esp)
59914d:	85 d2                	test   %edx,%edx
59914f:	74 75                	je     0x5991c6