5abff4:	8b 10                	mov    (%eax),%edx
5abff6:	ff 52 20             	call   *0x20(%edx)
5abff9:	8b c8                	mov    %eax,%ecx
5abffb:	0f af cf             	imul   %edi,%ecx
5abffe:	8b d3                	mov    %ebx,%edx
5ac000:	8b c6                	mov    %esi,%eax
5ac002:	e8 b9 be e5 ff       	call   0x407ec0
5ac007:	5f                   	pop    %edi
5ac008:	5e                   	pop    %esi
5ac009:	5b                   	pop    %ebx
5ac00a:	59                   	pop    %ecx
5ac00b:	59                   	pop    %ecx
5ac00c:	5d                   	pop    %ebp
5ac00d:	c3                   	ret
5ac00e:	8b c0                	mov    %eax,%eax
5ac010:	55                   	push   %ebp
5ac011:	8b ec                	mov    %esp,%ebp
5ac013:	83 c4 dc             	add    $0xffffffdc,%esp
5ac016:	53                   	push   %ebx
5ac017:	56                   	push   %esi
5ac018:	57                   	push   %edi
5ac019:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5ac01c:	89 55 fc             	mov    %edx,-0x4(%ebp)
5ac01f:	8b d8                	mov    %eax,%ebx
5ac021:	8b 7d 0c             	mov    0xc(%ebp),%edi
5ac024:	8b c3                	mov    %ebx,%eax
5ac026:	8b 10                	mov    (%eax),%edx
5ac028:	ff 52 10             	call   *0x10(%edx)
5ac02b:	3c 01                	cmp    $0x1,%al
5ac02d:	74 74                	je     0x5ac0a3
5ac02f:	8b c3                	mov    %ebx,%eax
5ac031:	8b 10                	mov    (%eax),%edx
5ac033:	ff 52 10             	call   *0x10(%edx)
5ac036:	3c 05                	cmp    $0x5,%al
5ac038:	74 69                	je     0x5ac0a3
5ac03a:	8b c3                	mov    %ebx,%eax
5ac03c:	8b 10                	mov    (%eax),%edx
5ac03e:	ff 52 10             	call   *0x10(%edx)
5ac041:	3c 03                	cmp    $0x3,%al
5ac043:	74 5e                	je     0x5ac0a3
5ac045:	8b c3                	mov    %ebx,%eax
5ac047:	8b 10                	mov    (%eax),%edx
5ac049:	ff 52 10             	call   *0x10(%edx)
5ac04c:	3c 02                	cmp    $0x2,%al
5ac04e:	74 53                	je     0x5ac0a3
5ac050:	b2 01                	mov    $0x1,%dl
5ac052:	a1 18 ff 5e 00       	mov    0x5eff18,%eax
5ac057:	e8 48 b5 04 00       	call   0x5f75a4
5ac05c:	8b f0                	mov    %eax,%esi
5ac05e:	8b d3                	mov    %ebx,%edx
5ac060:	8b c6                	mov    %esi,%eax
5ac062:	8b 08                	mov    (%eax),%ecx
5ac064:	ff 51 28             	call   *0x28(%ecx)
5ac067:	8b c6                	mov    %esi,%eax
5ac069:	e8 46 c2 04 00       	call   0x5f82b4
5ac06e:	84 c0                	test   %al,%al
5ac070:	75 2a                	jne    0x5ac09c
5ac072:	b2 05                	mov    $0x5,%dl
5ac074:	8b c6                	mov    %esi,%eax
5ac076:	e8 3d c1 04 00       	call   0x5f81b8
5ac07b:	57                   	push   %edi
5ac07c:	8b 45 08             	mov    0x8(%ebp),%eax
5ac07f:	50                   	push   %eax
5ac080:	8b 4d f8             	mov    -0x8(%ebp),%ecx
5ac083:	8b 55 fc             	mov    -0x4(%ebp),%edx
5ac086:	8b c6                	mov    %esi,%eax
5ac088:	e8 83 ff ff ff       	call   0x5ac010
5ac08d:	89 45 f4             	mov    %eax,-0xc(%ebp)
5ac090:	8b c6                	mov    %esi,%eax
5ac092:	e8 e1 79 e5 ff       	call   0x403a78
5ac097:	e9 3b 02 00 00       	jmp    0x5ac2d7
5ac09c:	8b c6                	mov    %esi,%eax
5ac09e:	e8 d5 79 e5 ff       	call   0x403a78
5ac0a3:	85 ff                	test   %edi,%edi
5ac0a5:	75 09                	jne    0x5ac0b0
5ac0a7:	8b c3                	mov    %ebx,%eax
5ac0a9:	8b 10                	mov    (%eax),%edx
5ac0ab:	ff 52 0c             	call   *0xc(%edx)
5ac0ae:	8b f8                	mov    %eax,%edi
5ac0b0:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
5ac0b4:	75 0a                	jne    0x5ac0c0
5ac0b6:	8b c3                	mov    %ebx,%eax
5ac0b8:	8b 10                	mov    (%eax),%edx
5ac0ba:	ff 52 08             	call   *0x8(%edx)
5ac0bd:	89 45 08             	mov    %eax,0x8(%ebp)
5ac0c0:	8b 45 08             	mov    0x8(%ebp),%eax
5ac0c3:	2b 45 f8             	sub    -0x8(%ebp),%eax
5ac0c6:	89 45 ec             	mov    %eax,-0x14(%ebp)
5ac0c9:	2b 7d fc             	sub    -0x4(%ebp),%edi
5ac0cc:	89 7d e8             	mov    %edi,-0x18(%ebp)
5ac0cf:	8b c3                	mov    %ebx,%eax
5ac0d1:	8b 10                	mov    (%eax),%edx
5ac0d3:	ff 52 04             	call   *0x4(%edx)
5ac0d6:	8b d0                	mov    %eax,%edx
5ac0d8:	b9 20 00 00 00       	mov    $0x20,%ecx
5ac0dd:	8b 45 e8             	mov    -0x18(%ebp),%eax
5ac0e0:	e8 fb 49 04 00       	call   0x5f0ae0
5ac0e5:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5ac0e8:	8b c3                	mov    %ebx,%eax
5ac0ea:	8b 10                	mov    (%eax),%edx
5ac0ec:	ff 52 10             	call   *0x10(%edx)
5ac0ef:	fe c8                	dec    %al
5ac0f1:	74 07                	je     0x5ac0fa
5ac0f3:	48                   	dec    %eax
5ac0f4:	2c 02                	sub    $0x2,%al
5ac0f6:	72 09                	jb     0x5ac101
5ac0f8:	eb 0e                	jmp    0x5ac108
5ac0fa:	bf 08 00 00 00       	mov    $0x8,%edi
5ac0ff:	eb 09                	jmp    0x5ac10a
5ac101:	bf 00 04 00 00       	mov    $0x400,%edi
5ac106:	eb 02                	jmp    0x5ac10a
5ac108:	33 ff                	xor    %edi,%edi
5ac10a:	83 c7 2c             	add    $0x2c,%edi
5ac10d:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5ac110:	f7 6d ec             	imull  -0x14(%ebp)
5ac113:	03 f8                	add    %eax,%edi
5ac115:	57                   	push   %edi
5ac116:	68 02 20 00 00       	push   $0x2002
5ac11b:	e8 88 b1 e5 ff       	call   0x4072a8
5ac120:	89 45 f4             	mov    %eax,-0xc(%ebp)
5ac123:	8b 45 f4             	mov    -0xc(%ebp),%eax
5ac126:	50                   	push   %eax
5ac127:	e8 9c b1 e5 ff       	call   0x4072c8
5ac12c:	8b f0                	mov    %eax,%esi
5ac12e:	8b fe                	mov    %esi,%edi
5ac130:	8b c7                	mov    %edi,%eax
5ac132:	33 c9                	xor    %ecx,%ecx
5ac134:	ba 28 00 00 00       	mov    $0x28,%edx
5ac139:	e8 02 71 e5 ff       	call   0x403240
5ac13e:	8b c7                	mov    %edi,%eax
5ac140:	c7 00 28 00 00 00    	movl   $0x28,(%eax)
5ac146:	8b 55 e8             	mov    -0x18(%ebp),%edx
5ac149:	89 50 04             	mov    %edx,0x4(%eax)
5ac14c:	8b 55 ec             	mov    -0x14(%ebp),%edx
5ac14f:	89 50 08             	mov    %edx,0x8(%eax)
5ac152:	66 c7 40 0c 01 00    	movw   $0x1,0xc(%eax)
5ac158:	33 d2                	xor    %edx,%edx
5ac15a:	89 50 10             	mov    %edx,0x10(%eax)
5ac15d:	8b c3                	mov    %ebx,%eax
5ac15f:	8b 10                	mov    (%eax),%edx
5ac161:	ff 52 10             	call   *0x10(%edx)
5ac164:	fe c8                	dec    %al
5ac166:	74 12                	je     0x5ac17a
5ac168:	48                   	dec    %eax
5ac169:	2c 02                	sub    $0x2,%al
5ac16b:	72 68                	jb     0x5ac1d5
5ac16d:	fe c8                	dec    %al
5ac16f:	0f 84 1a 01 00 00    	je     0x5ac28f
5ac175:	e9 54 01 00 00       	jmp    0x5ac2ce
5ac17a:	66 c7 46 0e 01 00    	movw   $0x1,0xe(%esi)
5ac180:	8d 46 28             	lea    0x28(%esi),%eax
5ac183:	8b f0                	mov    %eax,%esi
5ac185:	33 c0                	xor    %eax,%eax
5ac187:	89 06                	mov    %eax,(%esi)
5ac189:	83 c6 04             	add    $0x4,%esi
5ac18c:	c7 06 ff ff ff ff    	movl   $0xffffffff,(%esi)
5ac192:	83 c6 04             	add    $0x4,%esi
5ac195:	8b 7d 08             	mov    0x8(%ebp),%edi
5ac198:	4f                   	dec    %edi
5ac199:	8b 45 f8             	mov    -0x8(%ebp),%eax
5ac19c:	2b c7                	sub    %edi,%eax
5ac19e:	0f 8f 2a 01 00 00    	jg     0x5ac2ce
5ac1a4:	48                   	dec    %eax
5ac1a5:	89 45 e0             	mov    %eax,-0x20(%ebp)
5ac1a8:	8b d7                	mov    %edi,%edx
5ac1aa:	8b c3                	mov    %ebx,%eax
5ac1ac:	8b 08                	mov    (%eax),%ecx
5ac1ae:	ff 11                	call   *(%ecx)
5ac1b0:	8b 55 fc             	mov    -0x4(%ebp),%edx
5ac1b3:	52                   	push   %edx
5ac1b4:	8b 55 e8             	mov    -0x18(%ebp),%edx
5ac1b7:	52                   	push   %edx
5ac1b8:	8b 55 e4             	mov    -0x1c(%ebp),%edx
5ac1bb:	52                   	push   %edx
5ac1bc:	33 c9                	xor    %ecx,%ecx
5ac1be:	8b d0                	mov    %eax,%edx
5ac1c0:	8b c6                	mov    %esi,%eax
5ac1c2:	e8 1d 01 00 00       	call   0x5ac2e4
5ac1c7:	03 75 e4             	add    -0x1c(%ebp),%esi
5ac1ca:	4f                   	dec    %edi
5ac1cb:	ff 45 e0             	incl   -0x20(%ebp)
5ac1ce:	75 d8                	jne    0x5ac1a8
5ac1d0:	e9 f9 00 00 00       	jmp    0x5ac2ce
5ac1d5:	66 c7 46 0e 08 00    	movw   $0x8,0xe(%esi)
5ac1db:	8d 46 28             	lea    0x28(%esi),%eax
5ac1de:	8b f0                	mov    %eax,%esi
5ac1e0:	8b c3                	mov    %ebx,%eax
5ac1e2:	8b 10                	mov    (%eax),%edx
5ac1e4:	ff 52 10             	call   *0x10(%edx)
5ac1e7:	2c 02                	sub    $0x2,%al
5ac1e9:	74 06                	je     0x5ac1f1
5ac1eb:	fe c8                	dec    %al
5ac1ed:	74 4a                	je     0x5ac239
5ac1ef:	eb 6d                	jmp    0x5ac25e
5ac1f1:	8b c3                	mov    %ebx,%eax
5ac1f3:	8b 10                	mov    (%eax),%edx
5ac1f5:	ff 52 20             	call   *0x20(%edx)
5ac1f8:	48                   	dec    %eax
5ac1f9:	85 c0                	test   %eax,%eax
5ac1fb:	7c 61                	jl     0x5ac25e
5ac1fd:	40                   	inc    %eax
5ac1fe:	89 45 e0             	mov    %eax,-0x20(%ebp)
5ac201:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
5ac208:	8d 4d dd             	lea    -0x23(%ebp),%ecx
5ac20b:	8b 55 f0             	mov    -0x10(%ebp),%edx
5ac20e:	8b c3                	mov    %ebx,%eax
5ac210:	8b 38                	mov    (%eax),%edi
5ac212:	ff 57 18             	call   *0x18(%edi)
5ac215:	8b c6                	mov    %esi,%eax
5ac217:	8a 55 dd             	mov    -0x23(%ebp),%dl
5ac21a:	88 10                	mov    %dl,(%eax)
5ac21c:	8a 55 de             	mov    -0x22(%ebp),%dl
5ac21f:	88 50 01             	mov    %dl,0x1(%eax)
5ac222:	8a 55 df             	mov    -0x21(%ebp),%dl
5ac225:	88 50 02             	mov    %dl,0x2(%eax)
5ac228:	c6 40 03 00          	movb   $0x0,0x3(%eax)
5ac22c:	83 c6 04             	add    $0x4,%esi
5ac22f:	ff 45 f0             	incl   -0x10(%ebp)
5ac232:	ff 4d e0             	decl   -0x20(%ebp)
5ac235:	75 d1                	jne    0x5ac208
5ac237:	eb 25                	jmp    0x5ac25e
5ac239:	33 c0                	xor    %eax,%eax
5ac23b:	89 45 f0             	mov    %eax,-0x10(%ebp)
5ac23e:	8b c6                	mov    %esi,%eax
5ac240:	8a 55 f0             	mov    -0x10(%ebp),%dl
5ac243:	88 10                	mov    %dl,(%eax)
5ac245:	88 50 01             	mov    %dl,0x1(%eax)
5ac248:	88 50 02             	mov    %dl,0x2(%eax)
5ac24b:	c6 40 03 00          	movb   $0x0,0x3(%eax)
5ac24f:	83 c6 04             	add    $0x4,%esi
5ac252:	ff 45 f0             	incl   -0x10(%ebp)
5ac255:	81 7d f0 00 01 00 00 	cmpl   $0x100,-0x10(%ebp)
5ac25c:	75 e0                	jne    0x5ac23e
5ac25e:	8b 7d 08             	mov    0x8(%ebp),%edi
5ac261:	4f                   	dec    %edi
5ac262:	8b 45 f8             	mov    -0x8(%ebp),%eax
5ac265:	2b c7                	sub    %edi,%eax
5ac267:	7f 65                	jg     0x5ac2ce
5ac269:	48                   	dec    %eax
5ac26a:	89 45 e0             	mov    %eax,-0x20(%ebp)
5ac26d:	8b d7                	mov    %edi,%edx
5ac26f:	8b c3                	mov    %ebx,%eax
5ac271:	8b 08                	mov    (%eax),%ecx
5ac273:	ff 11                	call   *(%ecx)
5ac275:	03 45 fc             	add    -0x4(%ebp),%eax
5ac278:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
5ac27b:	8b d0                	mov    %eax,%edx
5ac27d:	8b c6                	mov    %esi,%eax
5ac27f:	e8 3c bc e5 ff       	call   0x407ec0
5ac284:	03 75 e4             	add    -0x1c(%ebp),%esi
5ac287:	4f                   	dec    %edi
5ac288:	ff 45 e0             	incl   -0x20(%ebp)
5ac28b:	75 e0                	jne    0x5ac26d
5ac28d:	eb 3f                	jmp    0x5ac2ce
5ac28f:	66 c7 46 0e 18 00    	movw   $0x18,0xe(%esi)
5ac295:	8d 46 28             	lea    0x28(%esi),%eax
5ac298:	8b f0                	mov    %eax,%esi
5ac29a:	8b 7d 08             	mov    0x8(%ebp),%edi
5ac29d:	4f                   	dec    %edi
5ac29e:	8b 45 f8             	mov    -0x8(%ebp),%eax
5ac2a1:	2b c7                	sub    %edi,%eax
5ac2a3:	7f 29                	jg     0x5ac2ce
5ac2a5:	48                   	dec    %eax
5ac2a6:	89 45 e0             	mov    %eax,-0x20(%ebp)
5ac2a9:	8b d7                	mov    %edi,%edx
5ac2ab:	8b c3                	mov    %ebx,%eax
5ac2ad:	8b 08                	mov    (%eax),%ecx
5ac2af:	ff 11                	call   *(%ecx)
5ac2b1:	8b 55 fc             	mov    -0x4(%ebp),%edx
5ac2b4:	8d 14 52             	lea    (%edx,%edx,2),%edx
5ac2b7:	03 c2                	add    %edx,%eax
5ac2b9:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
5ac2bc:	8b d0                	mov    %eax,%edx
5ac2be:	8b c6                	mov    %esi,%eax
5ac2c0:	e8 fb bb e5 ff       	call   0x407ec0
5ac2c5:	03 75 e4             	add    -0x1c(%ebp),%esi
5ac2c8:	4f                   	dec    %edi
5ac2c9:	ff 45 e0             	incl   -0x20(%ebp)
5ac2cc:	75 db                	jne    0x5ac2a9
5ac2ce:	8b 45 f4             	mov    -0xc(%ebp),%eax
5ac2d1:	50                   	push   %eax
5ac2d2:	e8 19 b0 e5 ff       	call   0x4072f0
5ac2d7:	8b 45 f4             	mov    -0xc(%ebp),%eax
5ac2da:	5f                   	pop    %edi
5ac2db:	5e                   	pop    %esi
5ac2dc:	5b                   	pop    %ebx
5ac2dd:	8b e5                	mov    %ebp,%esp
5ac2df:	5d                   	pop    %ebp
5ac2e0:	c2 08 00             	ret    $0x8
5ac2e3:	90                   	nop
5ac2e4:	55                   	push   %ebp
5ac2e5:	8b ec                	mov    %esp,%ebp
5ac2e7:	83 c4 d4             	add    $0xffffffd4,%esp
5ac2ea:	53                   	push   %ebx
5ac2eb:	56                   	push   %esi
5ac2ec:	57                   	push   %edi
5ac2ed:	89 4d f4             	mov    %ecx,-0xc(%ebp)
5ac2f0:	89 55 f8             	mov    %edx,-0x8(%ebp)
5ac2f3:	89 45 fc             	mov    %eax,-0x4(%ebp)
5ac2f6:	8b 7d 0c             	mov    0xc(%ebp),%edi
5ac2f9:	8b 45 10             	mov    0x10(%ebp),%eax
5ac2fc:	85 ff                	test   %edi,%edi
5ac2fe:	0f 8e a0 01 00 00    	jle    0x5ac4a4
5ac304:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
5ac308:	0f 8c 96 01 00 00    	jl     0x5ac4a4
5ac30e:	85 c0                	test   %eax,%eax
5ac310:	0f 8c 8e 01 00 00    	jl     0x5ac4a4
5ac316:	8b 55 f4             	mov    -0xc(%ebp),%edx
5ac319:	c1 ea 03             	shr    $0x3,%edx
5ac31c:	01 55 fc             	add    %edx,-0x4(%ebp)
5ac31f:	8b d0                	mov    %eax,%edx
5ac321:	c1 ea 03             	shr    $0x3,%edx
5ac324:	01 55 f8             	add    %edx,-0x8(%ebp)
5ac327:	29 55 08             	sub    %edx,0x8(%ebp)
5ac32a:	8b 5d f4             	mov    -0xc(%ebp),%ebx
5ac32d:	83 e3 07             	and    $0x7,%ebx
5ac330:	8b f0                	mov    %eax,%esi
5ac332:	83 e6 07             	and    $0x7,%esi
5ac335:	8d 44 1f 07          	lea    0x7(%edi,%ebx,1),%eax
5ac339:	c1 e8 03             	shr    $0x3,%eax
5ac33c:	89 45 e8             	mov    %eax,-0x18(%ebp)
5ac33f:	8a 86 b4 51 6a 00    	mov    0x6a51b4(%esi),%al
5ac345:	88 45 e2             	mov    %al,-0x1e(%ebp)
5ac348:	8a 83 ac 51 6a 00    	mov    0x6a51ac(%ebx),%al
5ac34e:	88 45 e0             	mov    %al,-0x20(%ebp)
5ac351:	8a 86 a4 51 6a 00    	mov    0x6a51a4(%esi),%al
5ac357:	88 45 e1             	mov    %al,-0x1f(%ebp)
5ac35a:	8b 45 fc             	mov    -0x4(%ebp),%eax
5ac35d:	8a 00                	mov    (%eax),%al
5ac35f:	22 83 a4 51 6a 00    	and    0x6a51a4(%ebx),%al
5ac365:	88 45 f3             	mov    %al,-0xd(%ebp)
5ac368:	8b 45 e8             	mov    -0x18(%ebp),%eax
5ac36b:	c1 e0 03             	shl    $0x3,%eax
5ac36e:	2b c3                	sub    %ebx,%eax
5ac370:	2b c7                	sub    %edi,%eax
5ac372:	89 45 ec             	mov    %eax,-0x14(%ebp)
5ac375:	8b 45 fc             	mov    -0x4(%ebp),%eax
5ac378:	8b 55 e8             	mov    -0x18(%ebp),%edx
5ac37b:	8d 44 10 ff          	lea    -0x1(%eax,%edx,1),%eax
5ac37f:	8a 00                	mov    (%eax),%al
5ac381:	8b 55 ec             	mov    -0x14(%ebp),%edx
5ac384:	22 82 ac 51 6a 00    	and    0x6a51ac(%edx),%al
5ac38a:	88 45 f2             	mov    %al,-0xe(%ebp)
5ac38d:	8d 44 37 07          	lea    0x7(%edi,%esi,1),%eax
5ac391:	c1 e8 03             	shr    $0x3,%eax
5ac394:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5ac397:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5ac39a:	83 c0 08             	add    $0x8,%eax
5ac39d:	e8 12 cd e5 ff       	call   0x4090b4
5ac3a2:	89 45 d8             	mov    %eax,-0x28(%ebp)