5f4010:	ff 45 f4             	incl   -0xc(%ebp)
5f4013:	ff 4d cc             	decl   -0x34(%ebp)
5f4016:	75 89                	jne    0x5f3fa1
5f4018:	e9 37 04 00 00       	jmp    0x5f4454
5f401d:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f4020:	8b 10                	mov    (%eax),%edx
5f4022:	ff 52 10             	call   *0x10(%edx)
5f4025:	8b d8                	mov    %eax,%ebx
5f4027:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f402a:	8b 10                	mov    (%eax),%edx
5f402c:	ff 52 10             	call   *0x10(%edx)
5f402f:	3a d8                	cmp    %al,%bl
5f4031:	0f 85 1d 04 00 00    	jne    0x5f4454
5f4037:	8b 46 1c             	mov    0x1c(%esi),%eax
5f403a:	8b 56 24             	mov    0x24(%esi),%edx
5f403d:	2b d0                	sub    %eax,%edx
5f403f:	0f 8c 0f 04 00 00    	jl     0x5f4454
5f4045:	42                   	inc    %edx
5f4046:	89 55 cc             	mov    %edx,-0x34(%ebp)
5f4049:	89 45 f4             	mov    %eax,-0xc(%ebp)
5f404c:	8b 46 08             	mov    0x8(%esi),%eax
5f404f:	2b 45 f4             	sub    -0xc(%ebp),%eax
5f4052:	48                   	dec    %eax
5f4053:	f7 6e 10             	imull  0x10(%esi)
5f4056:	03 46 14             	add    0x14(%esi),%eax
5f4059:	89 45 e8             	mov    %eax,-0x18(%ebp)
5f405c:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f405f:	8b 10                	mov    (%eax),%edx
5f4061:	ff 52 10             	call   *0x10(%edx)
5f4064:	2c 04                	sub    $0x4,%al
5f4066:	74 19                	je     0x5f4081
5f4068:	2c 02                	sub    $0x2,%al
5f406a:	74 6a                	je     0x5f40d6
5f406c:	fe c8                	dec    %al
5f406e:	0f 84 bd 00 00 00    	je     0x5f4131
5f4074:	fe c8                	dec    %al
5f4076:	0f 84 07 01 00 00    	je     0x5f4183
5f407c:	e9 55 01 00 00       	jmp    0x5f41d6
5f4081:	8b 46 18             	mov    0x18(%esi),%eax
5f4084:	8b 7e 20             	mov    0x20(%esi),%edi
5f4087:	2b f8                	sub    %eax,%edi
5f4089:	0f 8c 47 01 00 00    	jl     0x5f41d6
5f408f:	47                   	inc    %edi
5f4090:	89 45 f0             	mov    %eax,-0x10(%ebp)
5f4093:	8b 55 f0             	mov    -0x10(%ebp),%edx
5f4096:	8b 45 e8             	mov    -0x18(%ebp),%eax
5f4099:	e8 62 ba fb ff       	call   0x5afb00
5f409e:	85 c0                	test   %eax,%eax
5f40a0:	74 29                	je     0x5f40cb
5f40a2:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5f40a5:	2b 4d d0             	sub    -0x30(%ebp),%ecx
5f40a8:	8b 55 f0             	mov    -0x10(%ebp),%edx
5f40ab:	2b 55 d4             	sub    -0x2c(%ebp),%edx
5f40ae:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f40b1:	e8 1e 7b 00 00       	call   0x5fbbd4
5f40b6:	50                   	push   %eax
5f40b7:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5f40ba:	2b 4d d8             	sub    -0x28(%ebp),%ecx
5f40bd:	8b 55 f0             	mov    -0x10(%ebp),%edx
5f40c0:	2b 55 dc             	sub    -0x24(%ebp),%edx
5f40c3:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f40c6:	e8 25 7b 00 00       	call   0x5fbbf0
5f40cb:	ff 45 f0             	incl   -0x10(%ebp)
5f40ce:	4f                   	dec    %edi
5f40cf:	75 c2                	jne    0x5f4093
5f40d1:	e9 00 01 00 00       	jmp    0x5f41d6
5f40d6:	8b 46 18             	mov    0x18(%esi),%eax
5f40d9:	8b 7e 20             	mov    0x20(%esi),%edi
5f40dc:	2b f8                	sub    %eax,%edi
5f40de:	0f 8c f2 00 00 00    	jl     0x5f41d6
5f40e4:	47                   	inc    %edi
5f40e5:	89 45 f0             	mov    %eax,-0x10(%ebp)
5f40e8:	8b 55 f0             	mov    -0x10(%ebp),%edx
5f40eb:	8b 45 e8             	mov    -0x18(%ebp),%eax
5f40ee:	e8 0d ba fb ff       	call   0x5afb00
5f40f3:	85 c0                	test   %eax,%eax
5f40f5:	74 2f                	je     0x5f4126
5f40f7:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5f40fa:	2b 4d d0             	sub    -0x30(%ebp),%ecx
5f40fd:	8b 55 f0             	mov    -0x10(%ebp),%edx
5f4100:	2b 55 d4             	sub    -0x2c(%ebp),%edx
5f4103:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f4106:	e8 19 7b 00 00       	call   0x5fbc24
5f410b:	83 c4 fc             	add    $0xfffffffc,%esp
5f410e:	d9 1c 24             	fstps  (%esp)
5f4111:	9b                   	fwait
5f4112:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5f4115:	2b 4d d8             	sub    -0x28(%ebp),%ecx
5f4118:	8b 55 f0             	mov    -0x10(%ebp),%edx
5f411b:	2b 55 dc             	sub    -0x24(%ebp),%edx
5f411e:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f4121:	e8 1e 7b 00 00       	call   0x5fbc44
5f4126:	ff 45 f0             	incl   -0x10(%ebp)
5f4129:	4f                   	dec    %edi
5f412a:	75 bc                	jne    0x5f40e8
5f412c:	e9 a5 00 00 00       	jmp    0x5f41d6
5f4131:	8b 46 18             	mov    0x18(%esi),%eax
5f4134:	8b 7e 20             	mov    0x20(%esi),%edi
5f4137:	2b f8                	sub    %eax,%edi
5f4139:	0f 8c 97 00 00 00    	jl     0x5f41d6
5f413f:	47                   	inc    %edi
5f4140:	89 45 f0             	mov    %eax,-0x10(%ebp)
5f4143:	8b 55 f0             	mov    -0x10(%ebp),%edx
5f4146:	8b 45 e8             	mov    -0x18(%ebp),%eax
5f4149:	e8 b2 b9 fb ff       	call   0x5afb00
5f414e:	85 c0                	test   %eax,%eax
5f4150:	74 29                	je     0x5f417b
5f4152:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5f4155:	2b 4d d0             	sub    -0x30(%ebp),%ecx
5f4158:	8b 55 f0             	mov    -0x10(%ebp),%edx
5f415b:	2b 55 d4             	sub    -0x2c(%ebp),%edx
5f415e:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f4161:	e8 16 7b 00 00       	call   0x5fbc7c
5f4166:	50                   	push   %eax
5f4167:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5f416a:	2b 4d d8             	sub    -0x28(%ebp),%ecx
5f416d:	8b 55 f0             	mov    -0x10(%ebp),%edx
5f4170:	2b 55 dc             	sub    -0x24(%ebp),%edx
5f4173:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f4176:	e8 21 7b 00 00       	call   0x5fbc9c
5f417b:	ff 45 f0             	incl   -0x10(%ebp)
5f417e:	4f                   	dec    %edi
5f417f:	75 c2                	jne    0x5f4143
5f4181:	eb 53                	jmp    0x5f41d6
5f4183:	8b 46 18             	mov    0x18(%esi),%eax
5f4186:	8b 7e 20             	mov    0x20(%esi),%edi
5f4189:	2b f8                	sub    %eax,%edi
5f418b:	7c 49                	jl     0x5f41d6
5f418d:	47                   	inc    %edi
5f418e:	89 45 f0             	mov    %eax,-0x10(%ebp)
5f4191:	8b 55 f0             	mov    -0x10(%ebp),%edx
5f4194:	8b 45 e8             	mov    -0x18(%ebp),%eax
5f4197:	e8 64 b9 fb ff       	call   0x5afb00
5f419c:	85 c0                	test   %eax,%eax
5f419e:	74 30                	je     0x5f41d0
5f41a0:	8d 45 c4             	lea    -0x3c(%ebp),%eax
5f41a3:	50                   	push   %eax
5f41a4:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5f41a7:	2b 4d d0             	sub    -0x30(%ebp),%ecx
5f41aa:	8b 55 f0             	mov    -0x10(%ebp),%edx
5f41ad:	2b 55 d4             	sub    -0x2c(%ebp),%edx
5f41b0:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f41b3:	e8 24 7b 00 00       	call   0x5fbcdc
5f41b8:	8d 45 c4             	lea    -0x3c(%ebp),%eax
5f41bb:	50                   	push   %eax
5f41bc:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5f41bf:	2b 4d d8             	sub    -0x28(%ebp),%ecx
5f41c2:	8b 55 f0             	mov    -0x10(%ebp),%edx
5f41c5:	2b 55 dc             	sub    -0x24(%ebp),%edx
5f41c8:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f41cb:	e8 24 7d 00 00       	call   0x5fbef4
5f41d0:	ff 45 f0             	incl   -0x10(%ebp)
5f41d3:	4f                   	dec    %edi
5f41d4:	75 bb                	jne    0x5f4191
5f41d6:	ff 45 f4             	incl   -0xc(%ebp)
5f41d9:	ff 4d cc             	decl   -0x34(%ebp)
5f41dc:	0f 85 6a fe ff ff    	jne    0x5f404c
5f41e2:	e9 6d 02 00 00       	jmp    0x5f4454
5f41e7:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f41ea:	8b 10                	mov    (%eax),%edx
5f41ec:	ff 52 10             	call   *0x10(%edx)
5f41ef:	3c 05                	cmp    $0x5,%al
5f41f1:	0f 85 e5 00 00 00    	jne    0x5f42dc
5f41f7:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f41fa:	8b 10                	mov    (%eax),%edx
5f41fc:	ff 52 10             	call   *0x10(%edx)
5f41ff:	3c 05                	cmp    $0x5,%al
5f4201:	0f 85 d5 00 00 00    	jne    0x5f42dc
5f4207:	8b 46 1c             	mov    0x1c(%esi),%eax
5f420a:	8b 56 24             	mov    0x24(%esi),%edx
5f420d:	2b d0                	sub    %eax,%edx
5f420f:	0f 8c 3f 02 00 00    	jl     0x5f4454
5f4215:	42                   	inc    %edx
5f4216:	89 55 cc             	mov    %edx,-0x34(%ebp)
5f4219:	89 45 f4             	mov    %eax,-0xc(%ebp)
5f421c:	8b 55 f4             	mov    -0xc(%ebp),%edx
5f421f:	2b 55 d0             	sub    -0x30(%ebp),%edx
5f4222:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f4225:	8b 08                	mov    (%eax),%ecx
5f4227:	ff 11                	call   *(%ecx)
5f4229:	89 45 ec             	mov    %eax,-0x14(%ebp)
5f422c:	8b 46 18             	mov    0x18(%esi),%eax
5f422f:	2b 45 d4             	sub    -0x2c(%ebp),%eax
5f4232:	8d 04 40             	lea    (%eax,%eax,2),%eax
5f4235:	01 45 ec             	add    %eax,-0x14(%ebp)
5f4238:	8b 55 f4             	mov    -0xc(%ebp),%edx
5f423b:	2b 55 d8             	sub    -0x28(%ebp),%edx
5f423e:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f4241:	8b 08                	mov    (%eax),%ecx
5f4243:	ff 11                	call   *(%ecx)
5f4245:	8b d8                	mov    %eax,%ebx
5f4247:	8b 46 18             	mov    0x18(%esi),%eax
5f424a:	8b d0                	mov    %eax,%edx
5f424c:	2b 55 dc             	sub    -0x24(%ebp),%edx
5f424f:	8d 14 52             	lea    (%edx,%edx,2),%edx
5f4252:	03 da                	add    %edx,%ebx
5f4254:	8b 56 08             	mov    0x8(%esi),%edx
5f4257:	2b 55 f4             	sub    -0xc(%ebp),%edx
5f425a:	4a                   	dec    %edx
5f425b:	0f af 56 10          	imul   0x10(%esi),%edx
5f425f:	03 56 14             	add    0x14(%esi),%edx
5f4262:	89 55 e0             	mov    %edx,-0x20(%ebp)
5f4265:	8b 7e 20             	mov    0x20(%esi),%edi
5f4268:	2b f8                	sub    %eax,%edi
5f426a:	7c 5f                	jl     0x5f42cb
5f426c:	47                   	inc    %edi
5f426d:	89 45 f0             	mov    %eax,-0x10(%ebp)
5f4270:	8b 45 e0             	mov    -0x20(%ebp),%eax
5f4273:	03 45 f0             	add    -0x10(%ebp),%eax
5f4276:	0f b6 00             	movzbl (%eax),%eax
5f4279:	c1 e0 0a             	shl    $0xa,%eax
5f427c:	8b 55 ec             	mov    -0x14(%ebp),%edx
5f427f:	0f b6 52 02          	movzbl 0x2(%edx),%edx
5f4283:	33 c9                	xor    %ecx,%ecx
5f4285:	8a 4b 02             	mov    0x2(%ebx),%cl
5f4288:	2b d1                	sub    %ecx,%edx
5f428a:	0f af d0             	imul   %eax,%edx
5f428d:	c1 ea 12             	shr    $0x12,%edx
5f4290:	00 53 02             	add    %dl,0x2(%ebx)
5f4293:	8b 55 ec             	mov    -0x14(%ebp),%edx
5f4296:	0f b6 52 01          	movzbl 0x1(%edx),%edx
5f429a:	33 c9                	xor    %ecx,%ecx
5f429c:	8a 4b 01             	mov    0x1(%ebx),%cl
5f429f:	2b d1                	sub    %ecx,%edx
5f42a1:	0f af d0             	imul   %eax,%edx
5f42a4:	c1 ea 12             	shr    $0x12,%edx
5f42a7:	00 53 01             	add    %dl,0x1(%ebx)
5f42aa:	8b 55 ec             	mov    -0x14(%ebp),%edx
5f42ad:	0f b6 12             	movzbl (%edx),%edx
5f42b0:	33 c9                	xor    %ecx,%ecx
5f42b2:	8a 0b                	mov    (%ebx),%cl
5f42b4:	2b d1                	sub    %ecx,%edx
5f42b6:	0f af d0             	imul   %eax,%edx
5f42b9:	c1 ea 12             	shr    $0x12,%edx
5f42bc:	00 13                	add    %dl,(%ebx)
5f42be:	83 c3 03             	add    $0x3,%ebx
5f42c1:	83 45 ec 03          	addl   $0x3,-0x14(%ebp)
5f42c5:	ff 45 f0             	incl   -0x10(%ebp)
5f42c8:	4f                   	dec    %edi
5f42c9:	75 a5                	jne    0x5f4270
5f42cb:	ff 45 f4             	incl   -0xc(%ebp)
5f42ce:	ff 4d cc             	decl   -0x34(%ebp)
5f42d1:	0f 85 45 ff ff ff    	jne    0x5f421c
5f42d7:	e9 78 01 00 00       	jmp    0x5f4454
5f42dc:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f42df:	8b 10                	mov    (%eax),%edx
5f42e1:	ff 52 10             	call   *0x10(%edx)
5f42e4:	3c 03                	cmp    $0x3,%al
5f42e6:	75 0c                	jne    0x5f42f4
5f42e8:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f42eb:	8b 10                	mov    (%eax),%edx
5f42ed:	ff 52 10             	call   *0x10(%edx)
5f42f0:	3c 03                	cmp    $0x3,%al
5f42f2:	74 20                	je     0x5f4314
5f42f4:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f42f7:	8b 10                	mov    (%eax),%edx
5f42f9:	ff 52 10             	call   *0x10(%edx)
5f42fc:	3c 02                	cmp    $0x2,%al
5f42fe:	0f 85 aa 00 00 00    	jne    0x5f43ae
5f4304:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f4307:	8b 10                	mov    (%eax),%edx
5f4309:	ff 52 10             	call   *0x10(%edx)
5f430c:	3c 02                	cmp    $0x2,%al
5f430e:	0f 85 9a 00 00 00    	jne    0x5f43ae
5f4314:	8b 46 1c             	mov    0x1c(%esi),%eax
5f4317:	8b 56 24             	mov    0x24(%esi),%edx
5f431a:	2b d0                	sub    %eax,%edx
5f431c:	0f 8c 32 01 00 00    	jl     0x5f4454
5f4322:	42                   	inc    %edx
5f4323:	89 55 cc             	mov    %edx,-0x34(%ebp)
5f4326:	89 45 f4             	mov    %eax,-0xc(%ebp)
5f4329:	8b 55 f4             	mov    -0xc(%ebp),%edx
5f432c:	2b 55 d0             	sub    -0x30(%ebp),%edx
5f432f:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f4332:	8b 08                	mov    (%eax),%ecx
5f4334:	ff 11                	call   *(%ecx)
5f4336:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5f4339:	8b 46 18             	mov    0x18(%esi),%eax
5f433c:	2b 45 d4             	sub    -0x2c(%ebp),%eax
5f433f:	01 45 e4             	add    %eax,-0x1c(%ebp)
5f4342:	8b 55 f4             	mov    -0xc(%ebp),%edx
5f4345:	2b 55 d8             	sub    -0x28(%ebp),%edx
5f4348:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f434b:	8b 08                	mov    (%eax),%ecx
5f434d:	ff 11                	call   *(%ecx)
5f434f:	8b d8                	mov    %eax,%ebx
5f4351:	8b 46 18             	mov    0x18(%esi),%eax
5f4354:	8b d0                	mov    %eax,%edx
5f4356:	2b 55 dc             	sub    -0x24(%ebp),%edx
5f4359:	03 da                	add    %edx,%ebx
5f435b:	8b 56 08             	mov    0x8(%esi),%edx
5f435e:	2b 55 f4             	sub    -0xc(%ebp),%edx
5f4361:	4a                   	dec    %edx
5f4362:	0f af 56 10          	imul   0x10(%esi),%edx
5f4366:	03 56 14             	add    0x14(%esi),%edx
5f4369:	89 55 e0             	mov    %edx,-0x20(%ebp)
5f436c:	8b 7e 20             	mov    0x20(%esi),%edi
5f436f:	2b f8                	sub    %eax,%edi
5f4371:	7c 2e                	jl     0x5f43a1
5f4373:	47                   	inc    %edi
5f4374:	89 45 f0             	mov    %eax,-0x10(%ebp)
5f4377:	8b 45 e0             	mov    -0x20(%ebp),%eax
5f437a:	03 45 f0             	add    -0x10(%ebp),%eax
5f437d:	0f b6 00             	movzbl (%eax),%eax
5f4380:	c1 e0 0a             	shl    $0xa,%eax
5f4383:	8b 55 e4             	mov    -0x1c(%ebp),%edx
5f4386:	0f b6 12             	movzbl (%edx),%edx
5f4389:	33 c9                	xor    %ecx,%ecx
5f438b:	8a 0b                	mov    (%ebx),%cl
5f438d:	2b d1                	sub    %ecx,%edx
5f438f:	0f af d0             	imul   %eax,%edx
5f4392:	c1 ea 12             	shr    $0x12,%edx
5f4395:	00 13                	add    %dl,(%ebx)
5f4397:	43                   	inc    %ebx
5f4398:	ff 45 e4             	incl   -0x1c(%ebp)
5f439b:	ff 45 f0             	incl   -0x10(%ebp)
5f439e:	4f                   	dec    %edi
5f439f:	75 d6                	jne    0x5f4377
5f43a1:	ff 45 f4             	incl   -0xc(%ebp)
5f43a4:	ff 4d cc             	decl   -0x34(%ebp)
5f43a7:	75 80                	jne    0x5f4329
5f43a9:	e9 a6 00 00 00       	jmp    0x5f4454
5f43ae:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f43b1:	8b 10                	mov    (%eax),%edx
5f43b3:	ff 52 10             	call   *0x10(%edx)
5f43b6:	3c 01                	cmp    $0x1,%al
5f43b8:	0f 85 96 00 00 00    	jne    0x5f4454
5f43be:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f43c1:	8b 10                	mov    (%eax),%edx
5f43c3:	ff 52 10             	call   *0x10(%edx)
5f43c6:	3c 01                	cmp    $0x1,%al
5f43c8:	0f 85 86 00 00 00    	jne    0x5f4454
5f43ce:	8b 46 1c             	mov    0x1c(%esi),%eax
5f43d1:	8b 56 24             	mov    0x24(%esi),%edx
5f43d4:	2b d0                	sub    %eax,%edx
5f43d6:	7c 7c                	jl     0x5f4454
5f43d8:	42                   	inc    %edx
5f43d9:	89 55 cc             	mov    %edx,-0x34(%ebp)
5f43dc:	89 45 f4             	mov    %eax,-0xc(%ebp)
5f43df:	8b 55 f4             	mov    -0xc(%ebp),%edx
5f43e2:	2b 55 d0             	sub    -0x30(%ebp),%edx
5f43e5:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f43e8:	8b 08                	mov    (%eax),%ecx
5f43ea:	ff 11                	call   *(%ecx)
5f43ec:	89 45 ec             	mov    %eax,-0x14(%ebp)
5f43ef:	8b 55 f4             	mov    -0xc(%ebp),%edx
5f43f2:	2b 55 d8             	sub    -0x28(%ebp),%edx
5f43f5:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f43f8:	8b 08                	mov    (%eax),%ecx
5f43fa:	ff 11                	call   *(%ecx)