5f8ee9:	ff 75 08             	push   0x8(%ebp)
5f8eec:	e8 b7 68 00 00       	call   0x5ff7a8
5f8ef1:	59                   	pop    %ecx
5f8ef2:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f8ef5:	33 db                	xor    %ebx,%ebx
5f8ef7:	8b f8                	mov    %eax,%edi
5f8ef9:	39 59 08             	cmp    %ebx,0x8(%ecx)
5f8efc:	7d 03                	jge    0x5f8f01
5f8efe:	89 59 08             	mov    %ebx,0x8(%ecx)
5f8f01:	56                   	push   %esi
5f8f02:	6a 01                	push   $0x1
5f8f04:	53                   	push   %ebx
5f8f05:	53                   	push   %ebx
5f8f06:	57                   	push   %edi
5f8f07:	e8 96 c9 00 00       	call   0x6058a2
5f8f0c:	8b ca                	mov    %edx,%ecx
5f8f0e:	83 c4 10             	add    $0x10,%esp
5f8f11:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5f8f14:	8b f0                	mov    %eax,%esi
5f8f16:	89 75 ec             	mov    %esi,-0x14(%ebp)
5f8f19:	3b cb                	cmp    %ebx,%ecx
5f8f1b:	7f 0e                	jg     0x5f8f2b
5f8f1d:	0f 8c ca 00 00 00    	jl     0x5f8fed
5f8f23:	3b f3                	cmp    %ebx,%esi
5f8f25:	0f 82 c2 00 00 00    	jb     0x5f8fed
5f8f2b:	8b 45 08             	mov    0x8(%ebp),%eax
5f8f2e:	8b 40 0c             	mov    0xc(%eax),%eax
5f8f31:	90                   	nop
5f8f32:	a8 c0                	test   $0xc0,%al
5f8f34:	75 14                	jne    0x5f8f4a
5f8f36:	8b 45 08             	mov    0x8(%ebp),%eax
5f8f39:	8b 40 08             	mov    0x8(%eax),%eax
5f8f3c:	99                   	cltd
5f8f3d:	2b f0                	sub    %eax,%esi
5f8f3f:	8b c6                	mov    %esi,%eax
5f8f41:	1b ca                	sbb    %edx,%ecx
5f8f43:	8b d1                	mov    %ecx,%edx
5f8f45:	e9 f7 00 00 00       	jmp    0x5f9041
5f8f4a:	8b c7                	mov    %edi,%eax
5f8f4c:	83 e7 3f             	and    $0x3f,%edi
5f8f4f:	c1 f8 06             	sar    $0x6,%eax
5f8f52:	6b cf 38             	imul   $0x38,%edi,%ecx
5f8f55:	89 45 f4             	mov    %eax,-0xc(%ebp)
5f8f58:	8b 04 85 b8 10 73 00 	mov    0x7310b8(,%eax,4),%eax
5f8f5f:	89 4d f0             	mov    %ecx,-0x10(%ebp)
5f8f62:	8a 44 01 29          	mov    0x29(%ecx,%eax,1),%al
5f8f66:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f8f69:	88 45 fc             	mov    %al,-0x4(%ebp)
5f8f6c:	8b 01                	mov    (%ecx),%eax
5f8f6e:	2b 41 04             	sub    0x4(%ecx),%eax
5f8f71:	8b 49 0c             	mov    0xc(%ecx),%ecx
5f8f74:	99                   	cltd
5f8f75:	8b f8                	mov    %eax,%edi
5f8f77:	8b da                	mov    %edx,%ebx
5f8f79:	90                   	nop
5f8f7a:	f6 c1 03             	test   $0x3,%cl
5f8f7d:	74 55                	je     0x5f8fd4
5f8f7f:	80 7d fc 01          	cmpb   $0x1,-0x4(%ebp)
5f8f83:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5f8f86:	8b 55 f0             	mov    -0x10(%ebp),%edx
5f8f89:	75 22                	jne    0x5f8fad
5f8f8b:	8b 04 8d b8 10 73 00 	mov    0x7310b8(,%ecx,4),%eax
5f8f92:	f6 44 02 2d 02       	testb  $0x2,0x2d(%edx,%eax,1)
5f8f97:	74 14                	je     0x5f8fad
5f8f99:	ff 75 f8             	push   -0x8(%ebp)
5f8f9c:	56                   	push   %esi
5f8f9d:	ff 75 08             	push   0x8(%ebp)
5f8fa0:	e8 60 02 00 00       	call   0x5f9205
5f8fa5:	83 c4 0c             	add    $0xc,%esp
5f8fa8:	e9 94 00 00 00       	jmp    0x5f9041
5f8fad:	8b 04 8d b8 10 73 00 	mov    0x7310b8(,%ecx,4),%eax
5f8fb4:	80 7c 02 28 00       	cmpb   $0x0,0x28(%edx,%eax,1)
5f8fb9:	7d 39                	jge    0x5f8ff4
5f8fbb:	8b 75 08             	mov    0x8(%ebp),%esi
5f8fbe:	ff 75 fc             	push   -0x4(%ebp)
5f8fc1:	ff 36                	push   (%esi)
5f8fc3:	ff 76 04             	push   0x4(%esi)
5f8fc6:	e8 d3 03 00 00       	call   0x5f939e
5f8fcb:	83 c4 0c             	add    $0xc,%esp
5f8fce:	03 f8                	add    %eax,%edi
5f8fd0:	13 da                	adc    %edx,%ebx
5f8fd2:	eb 23                	jmp    0x5f8ff7
5f8fd4:	8b 45 08             	mov    0x8(%ebp),%eax
5f8fd7:	8b 40 0c             	mov    0xc(%eax),%eax
5f8fda:	90                   	nop
5f8fdb:	c1 e8 02             	shr    $0x2,%eax
5f8fde:	a8 01                	test   $0x1,%al
5f8fe0:	75 12                	jne    0x5f8ff4
5f8fe2:	e8 12 40 ff ff       	call   0x5ecff9
5f8fe7:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
5f8fed:	83 c8 ff             	or     $0xffffffff,%eax
5f8ff0:	0b d0                	or     %eax,%edx
5f8ff2:	eb 4d                	jmp    0x5f9041
5f8ff4:	8b 75 08             	mov    0x8(%ebp),%esi
5f8ff7:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5f8ffa:	8b c1                	mov    %ecx,%eax
5f8ffc:	8b 55 f8             	mov    -0x8(%ebp),%edx
5f8fff:	0b c2                	or     %edx,%eax
5f9001:	75 04                	jne    0x5f9007
5f9003:	8b d3                	mov    %ebx,%edx
5f9005:	eb 38                	jmp    0x5f903f
5f9007:	8b 46 0c             	mov    0xc(%esi),%eax
5f900a:	90                   	nop
5f900b:	a8 01                	test   $0x1,%al
5f900d:	74 11                	je     0x5f9020
5f900f:	53                   	push   %ebx
5f9010:	57                   	push   %edi
5f9011:	52                   	push   %edx
5f9012:	51                   	push   %ecx
5f9013:	ff 75 08             	push   0x8(%ebp)
5f9016:	e8 2b 00 00 00       	call   0x5f9046
5f901b:	83 c4 14             	add    $0x14,%esp
5f901e:	eb 21                	jmp    0x5f9041
5f9020:	80 7d fc 01          	cmpb   $0x1,-0x4(%ebp)
5f9024:	75 15                	jne    0x5f903b
5f9026:	6a 00                	push   $0x0
5f9028:	6a 02                	push   $0x2
5f902a:	53                   	push   %ebx
5f902b:	57                   	push   %edi
5f902c:	e8 0f 8b fe ff       	call   0x5e1b40
5f9031:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5f9034:	8b da                	mov    %edx,%ebx
5f9036:	8b 55 f8             	mov    -0x8(%ebp),%edx
5f9039:	8b f8                	mov    %eax,%edi
5f903b:	03 f9                	add    %ecx,%edi
5f903d:	13 d3                	adc    %ebx,%edx
5f903f:	8b c7                	mov    %edi,%eax
5f9041:	5e                   	pop    %esi
5f9042:	5f                   	pop    %edi
5f9043:	5b                   	pop    %ebx
5f9044:	c9                   	leave
5f9045:	c3                   	ret
5f9046:	8b ff                	mov    %edi,%edi
5f9048:	55                   	push   %ebp
5f9049:	8b ec                	mov    %esp,%ebp
5f904b:	83 ec 20             	sub    $0x20,%esp
5f904e:	53                   	push   %ebx
5f904f:	56                   	push   %esi
5f9050:	57                   	push   %edi
5f9051:	ff 75 08             	push   0x8(%ebp)
5f9054:	e8 4f 67 00 00       	call   0x5ff7a8
5f9059:	8b f0                	mov    %eax,%esi
5f905b:	33 ff                	xor    %edi,%edi
5f905d:	59                   	pop    %ecx
5f905e:	c1 f8 06             	sar    $0x6,%eax
5f9061:	8b ce                	mov    %esi,%ecx
5f9063:	83 e1 3f             	and    $0x3f,%ecx
5f9066:	89 45 e0             	mov    %eax,-0x20(%ebp)
5f9069:	6b c9 38             	imul   $0x38,%ecx,%ecx
5f906c:	89 7d fc             	mov    %edi,-0x4(%ebp)
5f906f:	8b 04 85 b8 10 73 00 	mov    0x7310b8(,%eax,4),%eax
5f9076:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5f9079:	89 4d e8             	mov    %ecx,-0x18(%ebp)
5f907c:	8a 4c 08 29          	mov    0x29(%eax,%ecx,1),%cl
5f9080:	33 c0                	xor    %eax,%eax
5f9082:	40                   	inc    %eax
5f9083:	88 4d ec             	mov    %cl,-0x14(%ebp)
5f9086:	3a c8                	cmp    %al,%cl
5f9088:	75 08                	jne    0x5f9092
5f908a:	6a 02                	push   $0x2
5f908c:	5b                   	pop    %ebx
5f908d:	89 5d f4             	mov    %ebx,-0xc(%ebp)
5f9090:	eb 03                	jmp    0x5f9095
5f9092:	89 45 f4             	mov    %eax,-0xc(%ebp)
5f9095:	8b 45 08             	mov    0x8(%ebp),%eax
5f9098:	8b 48 08             	mov    0x8(%eax),%ecx
5f909b:	89 4d f0             	mov    %ecx,-0x10(%ebp)
5f909e:	85 c9                	test   %ecx,%ecx
5f90a0:	75 0b                	jne    0x5f90ad
5f90a2:	8b 45 0c             	mov    0xc(%ebp),%eax
5f90a5:	8b 55 10             	mov    0x10(%ebp),%edx
5f90a8:	e9 53 01 00 00       	jmp    0x5f9200
5f90ad:	8b 08                	mov    (%eax),%ecx
5f90af:	2b 48 04             	sub    0x4(%eax),%ecx
5f90b2:	8b 5d e8             	mov    -0x18(%ebp),%ebx
5f90b5:	8b c1                	mov    %ecx,%eax
5f90b7:	99                   	cltd
5f90b8:	8b c8                	mov    %eax,%ecx
5f90ba:	89 55 f8             	mov    %edx,-0x8(%ebp)
5f90bd:	8b 45 f0             	mov    -0x10(%ebp),%eax
5f90c0:	99                   	cltd
5f90c1:	03 c8                	add    %eax,%ecx
5f90c3:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f90c6:	89 4d f0             	mov    %ecx,-0x10(%ebp)
5f90c9:	13 c2                	adc    %edx,%eax
5f90cb:	8b 55 e4             	mov    -0x1c(%ebp),%edx
5f90ce:	89 45 f8             	mov    %eax,-0x8(%ebp)
5f90d1:	80 7c 1a 28 00       	cmpb   $0x0,0x28(%edx,%ebx,1)
5f90d6:	8b 5d f4             	mov    -0xc(%ebp),%ebx
5f90d9:	7c 14                	jl     0x5f90ef
5f90db:	ff 75 fc             	push   -0x4(%ebp)
5f90de:	53                   	push   %ebx
5f90df:	50                   	push   %eax
5f90e0:	51                   	push   %ecx
5f90e1:	e8 5a 8a fe ff       	call   0x5e1b40
5f90e6:	ff 75 fc             	push   -0x4(%ebp)
5f90e9:	53                   	push   %ebx
5f90ea:	e9 f8 00 00 00       	jmp    0x5f91e7
5f90ef:	6a 02                	push   $0x2
5f90f1:	57                   	push   %edi
5f90f2:	57                   	push   %edi
5f90f3:	56                   	push   %esi
5f90f4:	e8 a9 c7 00 00       	call   0x6058a2
5f90f9:	83 c4 10             	add    $0x10,%esp
5f90fc:	3b 45 0c             	cmp    0xc(%ebp),%eax
5f90ff:	75 4c                	jne    0x5f914d
5f9101:	3b 55 10             	cmp    0x10(%ebp),%edx
5f9104:	75 47                	jne    0x5f914d
5f9106:	8b 75 08             	mov    0x8(%ebp),%esi
5f9109:	ff 75 ec             	push   -0x14(%ebp)
5f910c:	8b 45 f0             	mov    -0x10(%ebp),%eax
5f910f:	8b 4e 04             	mov    0x4(%esi),%ecx
5f9112:	03 c1                	add    %ecx,%eax
5f9114:	50                   	push   %eax
5f9115:	51                   	push   %ecx
5f9116:	e8 83 02 00 00       	call   0x5f939e
5f911b:	8b d8                	mov    %eax,%ebx
5f911d:	83 c4 0c             	add    $0xc,%esp
5f9120:	03 5d f0             	add    -0x10(%ebp),%ebx
5f9123:	8b 46 0c             	mov    0xc(%esi),%eax
5f9126:	13 55 f8             	adc    -0x8(%ebp),%edx
5f9129:	90                   	nop
5f912a:	33 c9                	xor    %ecx,%ecx
5f912c:	c1 e8 05             	shr    $0x5,%eax
5f912f:	41                   	inc    %ecx
5f9130:	84 c1                	test   %al,%cl
5f9132:	0f 84 9c 00 00 00    	je     0x5f91d4
5f9138:	8a 45 ec             	mov    -0x14(%ebp),%al
5f913b:	3a c1                	cmp    %cl,%al
5f913d:	74 04                	je     0x5f9143
5f913f:	3c 02                	cmp    $0x2,%al
5f9141:	75 03                	jne    0x5f9146
5f9143:	6a 02                	push   $0x2
5f9145:	59                   	pop    %ecx
5f9146:	03 d9                	add    %ecx,%ebx
5f9148:	e9 85 00 00 00       	jmp    0x5f91d2
5f914d:	57                   	push   %edi
5f914e:	ff 75 10             	push   0x10(%ebp)
5f9151:	ff 75 0c             	push   0xc(%ebp)
5f9154:	56                   	push   %esi
5f9155:	e8 48 c7 00 00       	call   0x6058a2
5f915a:	23 c2                	and    %edx,%eax
5f915c:	83 c4 10             	add    $0x10,%esp
5f915f:	83 ca ff             	or     $0xffffffff,%edx
5f9162:	3b c2                	cmp    %edx,%eax
5f9164:	75 07                	jne    0x5f916d
5f9166:	8b c2                	mov    %edx,%eax
5f9168:	e9 93 00 00 00       	jmp    0x5f9200
5f916d:	39 7d f8             	cmp    %edi,-0x8(%ebp)
5f9170:	7f 2f                	jg     0x5f91a1
5f9172:	bb 00 02 00 00       	mov    $0x200,%ebx
5f9177:	7c 05                	jl     0x5f917e
5f9179:	39 5d f0             	cmp    %ebx,-0x10(%ebp)
5f917c:	77 23                	ja     0x5f91a1
5f917e:	8b 45 08             	mov    0x8(%ebp),%eax
5f9181:	8b 40 0c             	mov    0xc(%eax),%eax
5f9184:	90                   	nop
5f9185:	33 c9                	xor    %ecx,%ecx
5f9187:	c1 e8 06             	shr    $0x6,%eax
5f918a:	41                   	inc    %ecx
5f918b:	84 c1                	test   %al,%cl
5f918d:	74 12                	je     0x5f91a1
5f918f:	8b 45 08             	mov    0x8(%ebp),%eax
5f9192:	8b 40 0c             	mov    0xc(%eax),%eax
5f9195:	90                   	nop
5f9196:	c1 e8 08             	shr    $0x8,%eax
5f9199:	84 c1                	test   %al,%cl
5f919b:	75 04                	jne    0x5f91a1
5f919d:	8b d7                	mov    %edi,%edx
5f919f:	eb 09                	jmp    0x5f91aa
5f91a1:	8b 45 08             	mov    0x8(%ebp),%eax
5f91a4:	8b 40 18             	mov    0x18(%eax),%eax
5f91a7:	99                   	cltd
5f91a8:	8b d8                	mov    %eax,%ebx
5f91aa:	8b 4d e0             	mov    -0x20(%ebp),%ecx
5f91ad:	8b 45 e8             	mov    -0x18(%ebp),%eax
5f91b0:	8b 0c 8d b8 10 73 00 	mov    0x7310b8(,%ecx,4),%ecx
5f91b7:	f6 44 01 28 04       	testb  $0x4,0x28(%ecx,%eax,1)
5f91bc:	74 16                	je     0x5f91d4
5f91be:	8a 4d ec             	mov    -0x14(%ebp),%cl
5f91c1:	33 c0                	xor    %eax,%eax
5f91c3:	40                   	inc    %eax
5f91c4:	3a c8                	cmp    %al,%cl
5f91c6:	74 05                	je     0x5f91cd
5f91c8:	80 f9 02             	cmp    $0x2,%cl
5f91cb:	75 03                	jne    0x5f91d0
5f91cd:	6a 02                	push   $0x2
5f91cf:	58                   	pop    %eax
5f91d0:	03 d8                	add    %eax,%ebx
5f91d2:	13 d7                	adc    %edi,%edx
5f91d4:	ff 75 fc             	push   -0x4(%ebp)
5f91d7:	ff 75 f4             	push   -0xc(%ebp)
5f91da:	52                   	push   %edx
5f91db:	53                   	push   %ebx
5f91dc:	e8 5f 89 fe ff       	call   0x5e1b40
5f91e1:	ff 75 fc             	push   -0x4(%ebp)
5f91e4:	ff 75 f4             	push   -0xc(%ebp)
5f91e7:	ff 75 18             	push   0x18(%ebp)
5f91ea:	8b fa                	mov    %edx,%edi
5f91ec:	8b f0                	mov    %eax,%esi
5f91ee:	ff 75 14             	push   0x14(%ebp)
5f91f1:	e8 4a 89 fe ff       	call   0x5e1b40
5f91f6:	2b c6                	sub    %esi,%eax
5f91f8:	1b d7                	sbb    %edi,%edx
5f91fa:	03 45 0c             	add    0xc(%ebp),%eax
5f91fd:	13 55 10             	adc    0x10(%ebp),%edx
5f9200:	5f                   	pop    %edi
5f9201:	5e                   	pop    %esi
5f9202:	5b                   	pop    %ebx
5f9203:	c9                   	leave
5f9204:	c3                   	ret
5f9205:	8b ff                	mov    %edi,%edi
5f9207:	55                   	push   %ebp
5f9208:	8b ec                	mov    %esp,%ebp
5f920a:	b8 18 10 00 00       	mov    $0x1018,%eax
5f920f:	e8 dc 82 fe ff       	call   0x5e14f0
5f9214:	a1 d4 89 72 00       	mov    0x7289d4,%eax
5f9219:	33 c5                	xor    %ebp,%eax
5f921b:	89 45 fc             	mov    %eax,-0x4(%ebp)
5f921e:	53                   	push   %ebx
5f921f:	ff 75 08             	push   0x8(%ebp)
5f9222:	e8 81 65 00 00       	call   0x5ff7a8
5f9227:	59                   	pop    %ecx
5f9228:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f922b:	8b d8                	mov    %eax,%ebx
5f922d:	83 79 08 00          	cmpl   $0x0,0x8(%ecx)
5f9231:	75 0b                	jne    0x5f923e
5f9233:	8b 45 0c             	mov    0xc(%ebp),%eax
5f9236:	8b 55 10             	mov    0x10(%ebp),%edx
5f9239:	e9 53 01 00 00       	jmp    0x5f9391
5f923e:	8b 01                	mov    (%ecx),%eax
5f9240:	2b 41 04             	sub    0x4(%ecx),%eax
5f9243:	56                   	push   %esi
5f9244:	57                   	push   %edi
5f9245:	6a 00                	push   $0x0
5f9247:	99                   	cltd
5f9248:	6a 02                	push   $0x2
5f924a:	52                   	push   %edx
5f924b:	50                   	push   %eax
5f924c:	e8 ef 88 fe ff       	call   0x5e1b40
5f9251:	8b cb                	mov    %ebx,%ecx
5f9253:	89 85 f8 ef ff ff    	mov    %eax,-0x1008(%ebp)
5f9259:	83 e1 3f             	and    $0x3f,%ecx
5f925c:	89 95 ec ef ff ff    	mov    %edx,-0x1014(%ebp)
5f9262:	8b f3                	mov    %ebx,%esi
5f9264:	6b f9 38             	imul   $0x38,%ecx,%edi
5f9267:	c1 fe 06             	sar    $0x6,%esi
5f926a:	6a 00                	push   $0x0
5f926c:	8b 0c b5 b8 10 73 00 	mov    0x7310b8(,%esi,4),%ecx
5f9273:	ff 74 0f 24          	push   0x24(%edi,%ecx,1)