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)
5f43fc:	8b d8                	mov    %eax,%ebx
5f43fe:	8b 46 08             	mov    0x8(%esi),%eax
5f4401:	2b 45 f4             	sub    -0xc(%ebp),%eax
5f4404:	48                   	dec    %eax
5f4405:	f7 6e 10             	imull  0x10(%esi)
5f4408:	03 46 14             	add    0x14(%esi),%eax
5f440b:	89 45 e0             	mov    %eax,-0x20(%ebp)
5f440e:	8b 46 18             	mov    0x18(%esi),%eax
5f4411:	8b 7e 20             	mov    0x20(%esi),%edi
5f4414:	2b f8                	sub    %eax,%edi
5f4416:	7c 34                	jl     0x5f444c
5f4418:	47                   	inc    %edi
5f4419:	89 45 f0             	mov    %eax,-0x10(%ebp)
5f441c:	8b 45 e0             	mov    -0x20(%ebp),%eax
5f441f:	03 45 f0             	add    -0x10(%ebp),%eax
5f4422:	0f b6 00             	movzbl (%eax),%eax
5f4425:	85 c0                	test   %eax,%eax
5f4427:	74 1d                	je     0x5f4446
5f4429:	8b 55 f0             	mov    -0x10(%ebp),%edx
5f442c:	2b 55 d4             	sub    -0x2c(%ebp),%edx
5f442f:	8b 45 ec             	mov    -0x14(%ebp),%eax
5f4432:	e8 c9 b6 fb ff       	call   0x5afb00
5f4437:	8b c8                	mov    %eax,%ecx
5f4439:	8b 55 f0             	mov    -0x10(%ebp),%edx
5f443c:	2b 55 dc             	sub    -0x24(%ebp),%edx
5f443f:	8b c3                	mov    %ebx,%eax
5f4441:	e8 d6 b6 fb ff       	call   0x5afb1c
5f4446:	ff 45 f0             	incl   -0x10(%ebp)
5f4449:	4f                   	dec    %edi
5f444a:	75 d0                	jne    0x5f441c
5f444c:	ff 45 f4             	incl   -0xc(%ebp)
5f444f:	ff 4d cc             	decl   -0x34(%ebp)
5f4452:	75 8b                	jne    0x5f43df
5f4454:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
5f4458:	74 15                	je     0x5f446f
5f445a:	8a 45 10             	mov    0x10(%ebp),%al
5f445d:	50                   	push   %eax
5f445e:	8a 45 0c             	mov    0xc(%ebp),%al
5f4461:	50                   	push   %eax
5f4462:	8b 4d f8             	mov    -0x8(%ebp),%ecx
5f4465:	8b 55 fc             	mov    -0x4(%ebp),%edx
5f4468:	8b c6                	mov    %esi,%eax
5f446a:	e8 09 00 00 00       	call   0x5f4478
5f446f:	5f                   	pop    %edi
5f4470:	5e                   	pop    %esi
5f4471:	5b                   	pop    %ebx
5f4472:	8b e5                	mov    %ebp,%esp
5f4474:	5d                   	pop    %ebp
5f4475:	c2 0c 00             	ret    $0xc
5f4478:	55                   	push   %ebp
5f4479:	8b ec                	mov    %esp,%ebp
5f447b:	83 c4 cc             	add    $0xffffffcc,%esp
5f447e:	53                   	push   %ebx
5f447f:	56                   	push   %esi
5f4480:	57                   	push   %edi
5f4481:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5f4484:	89 55 fc             	mov    %edx,-0x4(%ebp)
5f4487:	8b d8                	mov    %eax,%ebx
5f4489:	8b 43 18             	mov    0x18(%ebx),%eax
5f448c:	3b 43 20             	cmp    0x20(%ebx),%eax
5f448f:	7e 0c                	jle    0x5f449d
5f4491:	8b 53 1c             	mov    0x1c(%ebx),%edx
5f4494:	3b 53 24             	cmp    0x24(%ebx),%edx
5f4497:	0f 8f 91 01 00 00    	jg     0x5f462e
5f449d:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
5f44a1:	74 0b                	je     0x5f44ae
5f44a3:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5f44a6:	8b 53 1c             	mov    0x1c(%ebx),%edx
5f44a9:	89 55 e0             	mov    %edx,-0x20(%ebp)
5f44ac:	eb 0a                	jmp    0x5f44b8
5f44ae:	33 d2                	xor    %edx,%edx
5f44b0:	89 55 e4             	mov    %edx,-0x1c(%ebp)
5f44b3:	33 d2                	xor    %edx,%edx
5f44b5:	89 55 e0             	mov    %edx,-0x20(%ebp)
5f44b8:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
5f44bc:	74 0b                	je     0x5f44c9
5f44be:	89 45 dc             	mov    %eax,-0x24(%ebp)
5f44c1:	8b 43 1c             	mov    0x1c(%ebx),%eax
5f44c4:	89 45 d8             	mov    %eax,-0x28(%ebp)
5f44c7:	eb 0a                	jmp    0x5f44d3
5f44c9:	33 c0                	xor    %eax,%eax
5f44cb:	89 45 dc             	mov    %eax,-0x24(%ebp)
5f44ce:	33 c0                	xor    %eax,%eax
5f44d0:	89 45 d8             	mov    %eax,-0x28(%ebp)
5f44d3:	33 c0                	xor    %eax,%eax
5f44d5:	89 45 d0             	mov    %eax,-0x30(%ebp)
5f44d8:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f44db:	e8 28 34 00 00       	call   0x5f7908
5f44e0:	84 c0                	test   %al,%al
5f44e2:	75 27                	jne    0x5f450b
5f44e4:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f44e7:	8b 10                	mov    (%eax),%edx
5f44e9:	ff 52 0c             	call   *0xc(%edx)
5f44ec:	e8 bb e2 e0 ff       	call   0x4027ac
5f44f1:	89 45 d0             	mov    %eax,-0x30(%ebp)
5f44f4:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f44f7:	8b 10                	mov    (%eax),%edx
5f44f9:	ff 52 0c             	call   *0xc(%edx)
5f44fc:	8b d0                	mov    %eax,%edx
5f44fe:	8b 45 d0             	mov    -0x30(%ebp),%eax
5f4501:	b9 ff 00 00 00       	mov    $0xff,%ecx
5f4506:	e8 35 ed e0 ff       	call   0x403240
5f450b:	8b 43 1c             	mov    0x1c(%ebx),%eax
5f450e:	8b 53 24             	mov    0x24(%ebx),%edx
5f4511:	2b d0                	sub    %eax,%edx
5f4513:	0f 8c fb 00 00 00    	jl     0x5f4614
5f4519:	42                   	inc    %edx
5f451a:	89 55 cc             	mov    %edx,-0x34(%ebp)
5f451d:	89 45 f4             	mov    %eax,-0xc(%ebp)
5f4520:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f4523:	e8 e0 33 00 00       	call   0x5f7908
5f4528:	84 c0                	test   %al,%al
5f452a:	74 17                	je     0x5f4543
5f452c:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f452f:	e8 a4 33 00 00       	call   0x5f78d8
5f4534:	8b 55 f4             	mov    -0xc(%ebp),%edx
5f4537:	2b 55 d8             	sub    -0x28(%ebp),%edx
5f453a:	8b 08                	mov    (%eax),%ecx
5f453c:	ff 11                	call   *(%ecx)
5f453e:	89 45 ec             	mov    %eax,-0x14(%ebp)
5f4541:	eb 06                	jmp    0x5f4549
5f4543:	8b 45 d0             	mov    -0x30(%ebp),%eax
5f4546:	89 45 ec             	mov    %eax,-0x14(%ebp)
5f4549:	8b 43 18             	mov    0x18(%ebx),%eax
5f454c:	2b 45 dc             	sub    -0x24(%ebp),%eax
5f454f:	01 45 ec             	add    %eax,-0x14(%ebp)
5f4552:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f4555:	e8 7e 33 00 00       	call   0x5f78d8
5f455a:	8b 55 f4             	mov    -0xc(%ebp),%edx
5f455d:	2b 55 e0             	sub    -0x20(%ebp),%edx
5f4560:	8b 08                	mov    (%eax),%ecx
5f4562:	ff 11                	call   *(%ecx)
5f4564:	8b f0                	mov    %eax,%esi
5f4566:	8b 43 18             	mov    0x18(%ebx),%eax
5f4569:	8b d0                	mov    %eax,%edx
5f456b:	2b 55 e4             	sub    -0x1c(%ebp),%edx
5f456e:	03 f2                	add    %edx,%esi
5f4570:	8b 53 08             	mov    0x8(%ebx),%edx
5f4573:	2b 55 f4             	sub    -0xc(%ebp),%edx
5f4576:	4a                   	dec    %edx
5f4577:	0f af 53 10          	imul   0x10(%ebx),%edx
5f457b:	03 53 14             	add    0x14(%ebx),%edx
5f457e:	89 55 e8             	mov    %edx,-0x18(%ebp)
5f4581:	8b 53 0c             	mov    0xc(%ebx),%edx
5f4584:	4a                   	dec    %edx
5f4585:	74 07                	je     0x5f458e
5f4587:	83 ea 07             	sub    $0x7,%edx
5f458a:	74 3f                	je     0x5f45cb
5f458c:	eb 7a                	jmp    0x5f4608
5f458e:	8b 7b 20             	mov    0x20(%ebx),%edi
5f4591:	2b f8                	sub    %eax,%edi
5f4593:	7c 73                	jl     0x5f4608
5f4595:	47                   	inc    %edi
5f4596:	89 45 f0             	mov    %eax,-0x10(%ebp)
5f4599:	8b 55 f0             	mov    -0x10(%ebp),%edx
5f459c:	8b 45 e8             	mov    -0x18(%ebp),%eax
5f459f:	e8 5c b5 fb ff       	call   0x5afb00
5f45a4:	85 c0                	test   %eax,%eax
5f45a6:	74 14                	je     0x5f45bc
5f45a8:	8b 45 ec             	mov    -0x14(%ebp),%eax
5f45ab:	0f b6 00             	movzbl (%eax),%eax
5f45ae:	ba ff 00 00 00       	mov    $0xff,%edx
5f45b3:	e8 64 4e fb ff       	call   0x5a941c
5f45b8:	88 06                	mov    %al,(%esi)
5f45ba:	eb 03                	jmp    0x5f45bf
5f45bc:	c6 06 00             	movb   $0x0,(%esi)
5f45bf:	46                   	inc    %esi
5f45c0:	ff 45 ec             	incl   -0x14(%ebp)
5f45c3:	ff 45 f0             	incl   -0x10(%ebp)
5f45c6:	4f                   	dec    %edi
5f45c7:	75 d0                	jne    0x5f4599
5f45c9:	eb 3d                	jmp    0x5f4608
5f45cb:	8b 7b 20             	mov    0x20(%ebx),%edi
5f45ce:	2b f8                	sub    %eax,%edi
5f45d0:	7c 36                	jl     0x5f4608