5abe36:	8a 45 09             	mov    0x9(%ebp),%al
5abe39:	33 d2                	xor    %edx,%edx
5abe3b:	8a 51 ff             	mov    -0x1(%ecx),%dl
5abe3e:	2b c2                	sub    %edx,%eax
5abe40:	99                   	cltd
5abe41:	33 c2                	xor    %edx,%eax
5abe43:	2b c2                	sub    %edx,%eax
5abe45:	03 f0                	add    %eax,%esi
5abe47:	33 c0                	xor    %eax,%eax
5abe49:	8a 45 08             	mov    0x8(%ebp),%al
5abe4c:	33 d2                	xor    %edx,%edx
5abe4e:	8a 51 fe             	mov    -0x2(%ecx),%dl
5abe51:	2b c2                	sub    %edx,%eax
5abe53:	99                   	cltd
5abe54:	33 c2                	xor    %edx,%eax
5abe56:	2b c2                	sub    %edx,%eax
5abe58:	03 f0                	add    %eax,%esi
5abe5a:	8b c6                	mov    %esi,%eax
5abe5c:	3b 45 f4             	cmp    -0xc(%ebp),%eax
5abe5f:	7d 09                	jge    0x5abe6a
5abe61:	8b 55 f8             	mov    -0x8(%ebp),%edx
5abe64:	89 55 fc             	mov    %edx,-0x4(%ebp)
5abe67:	89 45 f4             	mov    %eax,-0xc(%ebp)
5abe6a:	ff 45 f8             	incl   -0x8(%ebp)
5abe6d:	83 c1 03             	add    $0x3,%ecx
5abe70:	4b                   	dec    %ebx
5abe71:	75 af                	jne    0x5abe22
5abe73:	8b 45 fc             	mov    -0x4(%ebp),%eax
5abe76:	5e                   	pop    %esi
5abe77:	5b                   	pop    %ebx
5abe78:	8b e5                	mov    %ebp,%esp
5abe7a:	5d                   	pop    %ebp
5abe7b:	c2 04 00             	ret    $0x4
5abe7e:	8b c0                	mov    %eax,%eax
5abe80:	53                   	push   %ebx
5abe81:	56                   	push   %esi
5abe82:	8b f0                	mov    %eax,%esi
5abe84:	b2 01                	mov    $0x1,%dl
5abe86:	a1 ec 6a 42 00       	mov    0x426aec,%eax
5abe8b:	e8 40 13 e8 ff       	call   0x42d1d0
5abe90:	8b d8                	mov    %eax,%ebx
5abe92:	8b d3                	mov    %ebx,%edx
5abe94:	8b c6                	mov    %esi,%eax
5abe96:	e8 45 00 00 00       	call   0x5abee0
5abe9b:	8b c3                	mov    %ebx,%eax
5abe9d:	5e                   	pop    %esi
5abe9e:	5b                   	pop    %ebx
5abe9f:	c3                   	ret
5abea0:	55                   	push   %ebp
5abea1:	8b ec                	mov    %esp,%ebp
5abea3:	8b 45 08             	mov    0x8(%ebp),%eax
5abea6:	8b 40 fc             	mov    -0x4(%eax),%eax
5abea9:	ba 01 00 00 00       	mov    $0x1,%edx
5abeae:	8b 08                	mov    (%eax),%ecx
5abeb0:	ff 51 40             	call   *0x40(%ecx)
5abeb3:	8b 45 08             	mov    0x8(%ebp),%eax
5abeb6:	8b 40 fc             	mov    -0x4(%eax),%eax
5abeb9:	ba 01 00 00 00       	mov    $0x1,%edx
5abebe:	8b 08                	mov    (%eax),%ecx
5abec0:	ff 51 34             	call   *0x34(%ecx)
5abec3:	8b 45 08             	mov    0x8(%ebp),%eax
5abec6:	8b 40 f8             	mov    -0x8(%eax),%eax
5abec9:	e8 b6 19 e8 ff       	call   0x42d884
5abece:	8b d0                	mov    %eax,%edx
5abed0:	8b 45 08             	mov    0x8(%ebp),%eax
5abed3:	8b 40 fc             	mov    -0x4(%eax),%eax
5abed6:	e8 cd 28 e8 ff       	call   0x42e7a8
5abedb:	5d                   	pop    %ebp
5abedc:	c3                   	ret
5abedd:	8d 40 00             	lea    0x0(%eax),%eax
5abee0:	55                   	push   %ebp
5abee1:	8b ec                	mov    %esp,%ebp
5abee3:	83 c4 f8             	add    $0xfffffff8,%esp
5abee6:	53                   	push   %ebx
5abee7:	56                   	push   %esi
5abee8:	57                   	push   %edi
5abee9:	89 55 fc             	mov    %edx,-0x4(%ebp)
5abeec:	89 45 f8             	mov    %eax,-0x8(%ebp)
5abeef:	8b 45 f8             	mov    -0x8(%ebp),%eax
5abef2:	8b 10                	mov    (%eax),%edx
5abef4:	ff 52 2c             	call   *0x2c(%edx)
5abef7:	85 c0                	test   %eax,%eax
5abef9:	74 0c                	je     0x5abf07
5abefb:	8b 45 f8             	mov    -0x8(%ebp),%eax
5abefe:	8b 10                	mov    (%eax),%edx
5abf00:	ff 52 20             	call   *0x20(%edx)
5abf03:	85 c0                	test   %eax,%eax
5abf05:	75 0c                	jne    0x5abf13
5abf07:	55                   	push   %ebp
5abf08:	e8 93 ff ff ff       	call   0x5abea0
5abf0d:	59                   	pop    %ecx
5abf0e:	e9 f4 00 00 00       	jmp    0x5ac007
5abf13:	8b 45 fc             	mov    -0x4(%ebp),%eax
5abf16:	8b 10                	mov    (%eax),%edx
5abf18:	ff 52 2c             	call   *0x2c(%edx)
5abf1b:	8b d8                	mov    %eax,%ebx
5abf1d:	8b 45 f8             	mov    -0x8(%ebp),%eax
5abf20:	8b 10                	mov    (%eax),%edx
5abf22:	ff 52 2c             	call   *0x2c(%edx)
5abf25:	3b d8                	cmp    %eax,%ebx
5abf27:	75 2c                	jne    0x5abf55
5abf29:	8b 45 fc             	mov    -0x4(%ebp),%eax
5abf2c:	8b 10                	mov    (%eax),%edx
5abf2e:	ff 52 20             	call   *0x20(%edx)
5abf31:	8b d8                	mov    %eax,%ebx
5abf33:	8b 45 f8             	mov    -0x8(%ebp),%eax
5abf36:	8b 10                	mov    (%eax),%edx
5abf38:	ff 52 20             	call   *0x20(%edx)
5abf3b:	3b d8                	cmp    %eax,%ebx
5abf3d:	75 16                	jne    0x5abf55
5abf3f:	8b 45 fc             	mov    -0x4(%ebp),%eax
5abf42:	e8 3d 19 e8 ff       	call   0x42d884
5abf47:	8b d8                	mov    %eax,%ebx
5abf49:	8b 45 f8             	mov    -0x8(%ebp),%eax
5abf4c:	e8 33 19 e8 ff       	call   0x42d884
5abf51:	3a d8                	cmp    %al,%bl
5abf53:	74 2b                	je     0x5abf80
5abf55:	55                   	push   %ebp
5abf56:	e8 45 ff ff ff       	call   0x5abea0
5abf5b:	59                   	pop    %ecx
5abf5c:	8b 45 f8             	mov    -0x8(%ebp),%eax
5abf5f:	8b 10                	mov    (%eax),%edx
5abf61:	ff 52 2c             	call   *0x2c(%edx)
5abf64:	8b d0                	mov    %eax,%edx
5abf66:	8b 45 fc             	mov    -0x4(%ebp),%eax
5abf69:	8b 08                	mov    (%eax),%ecx
5abf6b:	ff 51 40             	call   *0x40(%ecx)
5abf6e:	8b 45 f8             	mov    -0x8(%ebp),%eax
5abf71:	8b 10                	mov    (%eax),%edx
5abf73:	ff 52 20             	call   *0x20(%edx)
5abf76:	8b d0                	mov    %eax,%edx
5abf78:	8b 45 fc             	mov    -0x4(%ebp),%eax
5abf7b:	8b 08                	mov    (%eax),%ecx
5abf7d:	ff 51 34             	call   *0x34(%ecx)
5abf80:	8b 45 f8             	mov    -0x8(%ebp),%eax
5abf83:	8b 10                	mov    (%eax),%edx
5abf85:	ff 52 20             	call   *0x20(%edx)
5abf88:	8b d0                	mov    %eax,%edx
5abf8a:	4a                   	dec    %edx
5abf8b:	8b 45 f8             	mov    -0x8(%ebp),%eax
5abf8e:	e8 75 19 e8 ff       	call   0x42d908
5abf93:	50                   	push   %eax
5abf94:	33 d2                	xor    %edx,%edx
5abf96:	8b 45 f8             	mov    -0x8(%ebp),%eax
5abf99:	e8 6a 19 e8 ff       	call   0x42d908
5abf9e:	5a                   	pop    %edx
5abf9f:	e8 78 d4 ff ff       	call   0x5a941c
5abfa4:	8b d8                	mov    %eax,%ebx
5abfa6:	8b 45 fc             	mov    -0x4(%ebp),%eax
5abfa9:	8b 10                	mov    (%eax),%edx
5abfab:	ff 52 20             	call   *0x20(%edx)
5abfae:	8b d0                	mov    %eax,%edx
5abfb0:	4a                   	dec    %edx
5abfb1:	8b 45 fc             	mov    -0x4(%ebp),%eax
5abfb4:	e8 4f 19 e8 ff       	call   0x42d908
5abfb9:	50                   	push   %eax
5abfba:	33 d2                	xor    %edx,%edx
5abfbc:	8b 45 fc             	mov    -0x4(%ebp),%eax
5abfbf:	e8 44 19 e8 ff       	call   0x42d908
5abfc4:	5a                   	pop    %edx
5abfc5:	e8 52 d4 ff ff       	call   0x5a941c
5abfca:	8b f0                	mov    %eax,%esi
5abfcc:	8b 45 fc             	mov    -0x4(%ebp),%eax
5abfcf:	8b 10                	mov    (%eax),%edx
5abfd1:	ff 52 2c             	call   *0x2c(%edx)
5abfd4:	50                   	push   %eax
5abfd5:	8b 45 fc             	mov    -0x4(%ebp),%eax
5abfd8:	e8 a7 18 e8 ff       	call   0x42d884
5abfdd:	e8 36 4b 04 00       	call   0x5f0b18
5abfe2:	8b d0                	mov    %eax,%edx
5abfe4:	b9 20 00 00 00       	mov    $0x20,%ecx
5abfe9:	58                   	pop    %eax
5abfea:	e8 f1 4a 04 00       	call   0x5f0ae0
5abfef:	8b f8                	mov    %eax,%edi
5abff1:	8b 45 fc             	mov    -0x4(%ebp),%eax
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