589e3f:	85 c0                	test   %eax,%eax
589e41:	74 09                	je     0x589e4c
589e43:	50                   	push   %eax
589e44:	e8 97 93 f2 ff       	call   0x4b31e0
589e49:	83 c4 04             	add    $0x4,%esp
589e4c:	8b 44 24 1c          	mov    0x1c(%esp),%eax
589e50:	85 c0                	test   %eax,%eax
589e52:	74 09                	je     0x589e5d
589e54:	50                   	push   %eax
589e55:	e8 86 93 f2 ff       	call   0x4b31e0
589e5a:	83 c4 04             	add    $0x4,%esp
589e5d:	8b 44 24 20          	mov    0x20(%esp),%eax
589e61:	85 c0                	test   %eax,%eax
589e63:	74 09                	je     0x589e6e
589e65:	50                   	push   %eax
589e66:	e8 75 93 f2 ff       	call   0x4b31e0
589e6b:	83 c4 04             	add    $0x4,%esp
589e6e:	8b 44 24 24          	mov    0x24(%esp),%eax
589e72:	85 c0                	test   %eax,%eax
589e74:	74 09                	je     0x589e7f
589e76:	50                   	push   %eax
589e77:	e8 64 93 f2 ff       	call   0x4b31e0
589e7c:	83 c4 04             	add    $0x4,%esp
589e7f:	85 f6                	test   %esi,%esi
589e81:	74 09                	je     0x589e8c
589e83:	56                   	push   %esi
589e84:	e8 07 df f4 ff       	call   0x4d7d90
589e89:	83 c4 04             	add    $0x4,%esp
589e8c:	85 db                	test   %ebx,%ebx
589e8e:	74 09                	je     0x589e99
589e90:	53                   	push   %ebx
589e91:	e8 9a 62 f1 ff       	call   0x4a0130
589e96:	83 c4 04             	add    $0x4,%esp
589e99:	8b 44 24 28          	mov    0x28(%esp),%eax
589e9d:	5f                   	pop    %edi
589e9e:	5e                   	pop    %esi
589e9f:	5d                   	pop    %ebp
589ea0:	5b                   	pop    %ebx
589ea1:	83 c4 30             	add    $0x30,%esp
589ea4:	c3                   	ret
589ea5:	cc                   	int3
589ea6:	cc                   	int3
589ea7:	cc                   	int3
589ea8:	cc                   	int3
589ea9:	cc                   	int3
589eaa:	cc                   	int3
589eab:	cc                   	int3
589eac:	cc                   	int3
589ead:	cc                   	int3
589eae:	cc                   	int3
589eaf:	cc                   	int3
589eb0:	b8 94 00 00 00       	mov    $0x94,%eax
589eb5:	e8 36 76 05 00       	call   0x5e14f0
589eba:	a1 d4 89 72 00       	mov    0x7289d4,%eax
589ebf:	33 c4                	xor    %esp,%eax
589ec1:	89 84 24 90 00 00 00 	mov    %eax,0x90(%esp)
589ec8:	8b 84 24 a0 00 00 00 	mov    0xa0(%esp),%eax
589ecf:	89 04 24             	mov    %eax,(%esp)
589ed2:	53                   	push   %ebx
589ed3:	8b 9c 24 9c 00 00 00 	mov    0x9c(%esp),%ebx
589eda:	55                   	push   %ebp
589edb:	8b ac 24 ac 00 00 00 	mov    0xac(%esp),%ebp
589ee2:	56                   	push   %esi
589ee3:	8b b4 24 a8 00 00 00 	mov    0xa8(%esp),%esi
589eea:	85 c0                	test   %eax,%eax
589eec:	75 1d                	jne    0x589f0b
589eee:	5e                   	pop    %esi
589eef:	5d                   	pop    %ebp
589ef0:	b8 01 00 00 00       	mov    $0x1,%eax
589ef5:	5b                   	pop    %ebx
589ef6:	8b 8c 24 90 00 00 00 	mov    0x90(%esp),%ecx
589efd:	33 cc                	xor    %esp,%ecx
589eff:	e8 d6 75 05 00       	call   0x5e14da
589f04:	81 c4 94 00 00 00    	add    $0x94,%esp
589f0a:	c3                   	ret
589f0b:	57                   	push   %edi
589f0c:	8b bc 24 b8 00 00 00 	mov    0xb8(%esp),%edi
589f13:	85 ff                	test   %edi,%edi
589f15:	7e 31                	jle    0x589f48
589f17:	b8 80 00 00 00       	mov    $0x80,%eax
589f1c:	3b f8                	cmp    %eax,%edi
589f1e:	0f 4f f8             	cmovg  %eax,%edi
589f21:	8d 44 24 18          	lea    0x18(%esp),%eax
589f25:	57                   	push   %edi
589f26:	6a 20                	push   $0x20
589f28:	50                   	push   %eax
589f29:	e8 d2 9a 05 00       	call   0x5e3a00
589f2e:	57                   	push   %edi
589f2f:	8d 44 24 28          	lea    0x28(%esp),%eax
589f33:	50                   	push   %eax
589f34:	53                   	push   %ebx
589f35:	e8 16 8c f2 ff       	call   0x4b2b50
589f3a:	83 c4 18             	add    $0x18,%esp
589f3d:	85 c0                	test   %eax,%eax
589f3f:	7f 09                	jg     0x589f4a
589f41:	33 c0                	xor    %eax,%eax
589f43:	e9 c2 00 00 00       	jmp    0x58a00a
589f48:	33 ff                	xor    %edi,%edi
589f4a:	56                   	push   %esi
589f4b:	68 04 d0 6a 00       	push   $0x6ad004
589f50:	53                   	push   %ebx
589f51:	e8 7a 4f f2 ff       	call   0x4aeed0
589f56:	83 c4 0c             	add    $0xc,%esp
589f59:	85 c0                	test   %eax,%eax
589f5b:	7e e4                	jle    0x589f41
589f5d:	33 f6                	xor    %esi,%esi
589f5f:	85 ed                	test   %ebp,%ebp
589f61:	0f 84 8a 00 00 00    	je     0x589ff1
589f67:	b8 01 00 00 00       	mov    $0x1,%eax
589f6c:	2b 44 24 10          	sub    0x10(%esp),%eax
589f70:	89 44 24 14          	mov    %eax,0x14(%esp)
589f74:	b8 89 88 88 88       	mov    $0x88888889,%eax
589f79:	f7 e6                	mul    %esi
589f7b:	8b c6                	mov    %esi,%eax
589f7d:	c1 ea 03             	shr    $0x3,%edx
589f80:	8b ca                	mov    %edx,%ecx
589f82:	c1 e1 04             	shl    $0x4,%ecx
589f85:	2b ca                	sub    %edx,%ecx
589f87:	2b c1                	sub    %ecx,%eax
589f89:	75 2b                	jne    0x589fb6
589f8b:	8d 47 04             	lea    0x4(%edi),%eax
589f8e:	c6 44 24 18 0a       	movb   $0xa,0x18(%esp)
589f93:	50                   	push   %eax
589f94:	8d 44 24 1d          	lea    0x1d(%esp),%eax
589f98:	6a 20                	push   $0x20
589f9a:	50                   	push   %eax
589f9b:	e8 60 9a 05 00       	call   0x5e3a00
589fa0:	8d 47 05             	lea    0x5(%edi),%eax
589fa3:	50                   	push   %eax
589fa4:	8d 44 24 28          	lea    0x28(%esp),%eax
589fa8:	50                   	push   %eax
589fa9:	53                   	push   %ebx
589faa:	e8 a1 8b f2 ff       	call   0x4b2b50
589faf:	83 c4 18             	add    $0x18,%esp
589fb2:	85 c0                	test   %eax,%eax
589fb4:	7e 8b                	jle    0x589f41
589fb6:	8b 54 24 10          	mov    0x10(%esp),%edx
589fba:	b9 ad 57 6e 00       	mov    $0x6e57ad,%ecx
589fbf:	8b 44 24 14          	mov    0x14(%esp),%eax
589fc3:	03 d6                	add    %esi,%edx
589fc5:	03 c2                	add    %edx,%eax
589fc7:	3b c5                	cmp    %ebp,%eax
589fc9:	b8 40 d1 6b 00       	mov    $0x6bd140,%eax
589fce:	0f 45 c8             	cmovne %eax,%ecx
589fd1:	0f b6 02             	movzbl (%edx),%eax
589fd4:	51                   	push   %ecx
589fd5:	50                   	push   %eax
589fd6:	68 44 d1 6b 00       	push   $0x6bd144
589fdb:	53                   	push   %ebx
589fdc:	e8 ef 4e f2 ff       	call   0x4aeed0
589fe1:	83 c4 10             	add    $0x10,%esp
589fe4:	85 c0                	test   %eax,%eax
589fe6:	0f 8e 55 ff ff ff    	jle    0x589f41
589fec:	46                   	inc    %esi
589fed:	3b f5                	cmp    %ebp,%esi
589fef:	72 83                	jb     0x589f74
589ff1:	6a 01                	push   $0x1
589ff3:	68 b8 82 6b 00       	push   $0x6b82b8
589ff8:	53                   	push   %ebx
589ff9:	e8 52 8b f2 ff       	call   0x4b2b50
589ffe:	33 c9                	xor    %ecx,%ecx
58a000:	83 c4 0c             	add    $0xc,%esp
58a003:	85 c0                	test   %eax,%eax
58a005:	0f 9f c1             	setg   %cl
58a008:	8b c1                	mov    %ecx,%eax
58a00a:	8b 8c 24 a0 00 00 00 	mov    0xa0(%esp),%ecx
58a011:	5f                   	pop    %edi
58a012:	5e                   	pop    %esi
58a013:	5d                   	pop    %ebp
58a014:	5b                   	pop    %ebx
58a015:	33 cc                	xor    %esp,%ecx
58a017:	e8 be 74 05 00       	call   0x5e14da
58a01c:	81 c4 94 00 00 00    	add    $0x94,%esp
58a022:	c3                   	ret
58a023:	cc                   	int3
58a024:	cc                   	int3
58a025:	cc                   	int3
58a026:	cc                   	int3
58a027:	cc                   	int3
58a028:	cc                   	int3
58a029:	cc                   	int3
58a02a:	cc                   	int3
58a02b:	cc                   	int3
58a02c:	cc                   	int3
58a02d:	cc                   	int3
58a02e:	cc                   	int3
58a02f:	cc                   	int3
58a030:	b8 0c 3f 6c 00       	mov    $0x6c3f0c,%eax
58a035:	c3                   	ret
58a036:	cc                   	int3
58a037:	cc                   	int3
58a038:	cc                   	int3
58a039:	cc                   	int3
58a03a:	cc                   	int3
58a03b:	cc                   	int3
58a03c:	cc                   	int3
58a03d:	cc                   	int3
58a03e:	cc                   	int3
58a03f:	cc                   	int3
58a040:	b8 3c 3f 6c 00       	mov    $0x6c3f3c,%eax
58a045:	c3                   	ret
58a046:	cc                   	int3
58a047:	cc                   	int3
58a048:	cc                   	int3
58a049:	cc                   	int3
58a04a:	cc                   	int3
58a04b:	cc                   	int3
58a04c:	cc                   	int3
58a04d:	cc                   	int3
58a04e:	cc                   	int3
58a04f:	cc                   	int3
58a050:	b8 dc 3f 6c 00       	mov    $0x6c3fdc,%eax
58a055:	c3                   	ret
58a056:	cc                   	int3
58a057:	cc                   	int3
58a058:	cc                   	int3
58a059:	cc                   	int3
58a05a:	cc                   	int3
58a05b:	cc                   	int3
58a05c:	cc                   	int3
58a05d:	cc                   	int3
58a05e:	cc                   	int3
58a05f:	cc                   	int3
58a060:	b8 3c 40 6c 00       	mov    $0x6c403c,%eax
58a065:	c3                   	ret
58a066:	cc                   	int3
58a067:	cc                   	int3
58a068:	cc                   	int3
58a069:	cc                   	int3
58a06a:	cc                   	int3
58a06b:	cc                   	int3
58a06c:	cc                   	int3
58a06d:	cc                   	int3
58a06e:	cc                   	int3
58a06f:	cc                   	int3
58a070:	b8 80 40 6c 00       	mov    $0x6c4080,%eax
58a075:	c3                   	ret
58a076:	cc                   	int3
58a077:	cc                   	int3
58a078:	cc                   	int3
58a079:	cc                   	int3
58a07a:	cc                   	int3
58a07b:	cc                   	int3
58a07c:	cc                   	int3
58a07d:	cc                   	int3
58a07e:	cc                   	int3
58a07f:	cc                   	int3
58a080:	b8 d8 40 6c 00       	mov    $0x6c40d8,%eax
58a085:	c3                   	ret
58a086:	cc                   	int3
58a087:	cc                   	int3
58a088:	cc                   	int3
58a089:	cc                   	int3
58a08a:	cc                   	int3
58a08b:	cc                   	int3
58a08c:	cc                   	int3
58a08d:	cc                   	int3
58a08e:	cc                   	int3
58a08f:	cc                   	int3
58a090:	b8 f4 40 6c 00       	mov    $0x6c40f4,%eax
58a095:	c3                   	ret
58a096:	cc                   	int3
58a097:	cc                   	int3
58a098:	cc                   	int3
58a099:	cc                   	int3
58a09a:	cc                   	int3
58a09b:	cc                   	int3
58a09c:	cc                   	int3
58a09d:	cc                   	int3
58a09e:	cc                   	int3
58a09f:	cc                   	int3
58a0a0:	b8 c4 41 6c 00       	mov    $0x6c41c4,%eax
58a0a5:	c3                   	ret
58a0a6:	cc                   	int3
58a0a7:	cc                   	int3
58a0a8:	cc                   	int3
58a0a9:	cc                   	int3
58a0aa:	cc                   	int3
58a0ab:	cc                   	int3
58a0ac:	cc                   	int3
58a0ad:	cc                   	int3
58a0ae:	cc                   	int3
58a0af:	cc                   	int3
58a0b0:	56                   	push   %esi
58a0b1:	8b 74 24 08          	mov    0x8(%esp),%esi
58a0b5:	56                   	push   %esi
58a0b6:	e8 65 6f f0 ff       	call   0x491020
58a0bb:	50                   	push   %eax
58a0bc:	e8 1f 74 f0 ff       	call   0x4914e0
58a0c1:	83 c4 08             	add    $0x8,%esp
58a0c4:	3d 97 01 00 00       	cmp    $0x197,%eax
58a0c9:	74 04                	je     0x58a0cf
58a0cb:	33 c0                	xor    %eax,%eax
58a0cd:	5e                   	pop    %esi
58a0ce:	c3                   	ret
58a0cf:	33 c9                	xor    %ecx,%ecx
58a0d1:	8d 46 5c             	lea    0x5c(%esi),%eax
58a0d4:	83 38 00             	cmpl   $0x0,(%eax)
58a0d7:	74 09                	je     0x58a0e2
58a0d9:	41                   	inc    %ecx
58a0da:	83 c0 04             	add    $0x4,%eax
58a0dd:	83 f9 06             	cmp    $0x6,%ecx
58a0e0:	7c f2                	jl     0x58a0d4
58a0e2:	83 f9 04             	cmp    $0x4,%ecx
58a0e5:	75 07                	jne    0x58a0ee
58a0e7:	b8 ab 02 00 00       	mov    $0x2ab,%eax
58a0ec:	5e                   	pop    %esi
58a0ed:	c3                   	ret
58a0ee:	33 c0                	xor    %eax,%eax
58a0f0:	ba aa 02 00 00       	mov    $0x2aa,%edx
58a0f5:	83 f9 02             	cmp    $0x2,%ecx
58a0f8:	5e                   	pop    %esi
58a0f9:	0f 44 c2             	cmove  %edx,%eax
58a0fc:	c3                   	ret
58a0fd:	cc                   	int3
58a0fe:	cc                   	int3
58a0ff:	cc                   	int3
58a100:	56                   	push   %esi
58a101:	8b 74 24 08          	mov    0x8(%esp),%esi
58a105:	85 f6                	test   %esi,%esi
58a107:	74 78                	je     0x58a181
58a109:	56                   	push   %esi
58a10a:	e8 11 6f f0 ff       	call   0x491020
58a10f:	50                   	push   %eax
58a110:	e8 cb 73 f0 ff       	call   0x4914e0
58a115:	83 c4 08             	add    $0x8,%esp
58a118:	3d 97 01 00 00       	cmp    $0x197,%eax
58a11d:	75 4a                	jne    0x58a169
58a11f:	83 7e 5c 00          	cmpl   $0x0,0x5c(%esi)
58a123:	74 44                	je     0x58a169
58a125:	83 7e 60 00          	cmpl   $0x0,0x60(%esi)
58a129:	74 3e                	je     0x58a169
58a12b:	83 7e 64 00          	cmpl   $0x0,0x64(%esi)
58a12f:	74 38                	je     0x58a169
58a131:	8b 4e 68             	mov    0x68(%esi),%ecx
58a134:	85 c9                	test   %ecx,%ecx
58a136:	74 31                	je     0x58a169
58a138:	83 7e 6c 00          	cmpl   $0x0,0x6c(%esi)
58a13c:	75 2b                	jne    0x58a169
58a13e:	8b 44 24 0c          	mov    0xc(%esp),%eax
58a142:	85 c0                	test   %eax,%eax
58a144:	74 02                	je     0x58a148
58a146:	89 08                	mov    %ecx,(%eax)
58a148:	8b 4c 24 10          	mov    0x10(%esp),%ecx
58a14c:	85 c9                	test   %ecx,%ecx
58a14e:	74 05                	je     0x58a155
58a150:	8b 46 64             	mov    0x64(%esi),%eax
58a153:	89 01                	mov    %eax,(%ecx)
58a155:	8b 4c 24 14          	mov    0x14(%esp),%ecx
58a159:	85 c9                	test   %ecx,%ecx