59dffe:	8b d0                	mov    %eax,%edx
59e000:	8b cf                	mov    %edi,%ecx
59e002:	8b 45 d8             	mov    -0x28(%ebp),%eax
59e005:	e8 b6 9e e6 ff       	call   0x407ec0
59e00a:	01 7d d8             	add    %edi,-0x28(%ebp)
59e00d:	ff 45 dc             	incl   -0x24(%ebp)
59e010:	ff 4d b0             	decl   -0x50(%ebp)
59e013:	75 df                	jne    0x59dff4
59e015:	e9 c0 02 00 00       	jmp    0x59e2da
59e01a:	8b 45 e0             	mov    -0x20(%ebp),%eax
59e01d:	8b 10                	mov    (%eax),%edx
59e01f:	ff 52 08             	call   *0x8(%edx)
59e022:	f7 ef                	imul   %edi
59e024:	e8 83 47 e6 ff       	call   0x4027ac
59e029:	89 45 bc             	mov    %eax,-0x44(%ebp)
59e02c:	8b 45 bc             	mov    -0x44(%ebp),%eax
59e02f:	89 45 d8             	mov    %eax,-0x28(%ebp)
59e032:	8b 45 e0             	mov    -0x20(%ebp),%eax
59e035:	8b 10                	mov    (%eax),%edx
59e037:	ff 52 08             	call   *0x8(%edx)
59e03a:	48                   	dec    %eax
59e03b:	85 c0                	test   %eax,%eax
59e03d:	7c 2c                	jl     0x59e06b
59e03f:	40                   	inc    %eax
59e040:	89 45 b0             	mov    %eax,-0x50(%ebp)
59e043:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
59e04a:	8b 55 dc             	mov    -0x24(%ebp),%edx
59e04d:	8b 45 e0             	mov    -0x20(%ebp),%eax
59e050:	8b 08                	mov    (%eax),%ecx
59e052:	ff 11                	call   *(%ecx)
59e054:	8b d0                	mov    %eax,%edx
59e056:	8b cf                	mov    %edi,%ecx
59e058:	8b 45 d8             	mov    -0x28(%ebp),%eax
59e05b:	e8 60 9e e6 ff       	call   0x407ec0
59e060:	01 7d d8             	add    %edi,-0x28(%ebp)
59e063:	ff 45 dc             	incl   -0x24(%ebp)
59e066:	ff 4d b0             	decl   -0x50(%ebp)
59e069:	75 df                	jne    0x59e04a
59e06b:	8b 45 e0             	mov    -0x20(%ebp),%eax
59e06e:	8b 10                	mov    (%eax),%edx
59e070:	ff 52 08             	call   *0x8(%edx)
59e073:	8b d7                	mov    %edi,%edx
59e075:	03 d2                	add    %edx,%edx
59e077:	f7 ea                	imul   %edx
59e079:	e8 2e 47 e6 ff       	call   0x4027ac
59e07e:	89 45 b8             	mov    %eax,-0x48(%ebp)
59e081:	8b 45 e0             	mov    -0x20(%ebp),%eax
59e084:	8b 10                	mov    (%eax),%edx
59e086:	ff 52 08             	call   *0x8(%edx)
59e089:	8b d0                	mov    %eax,%edx
59e08b:	0f af d7             	imul   %edi,%edx
59e08e:	8b 4d b8             	mov    -0x48(%ebp),%ecx
59e091:	8b 45 bc             	mov    -0x44(%ebp),%eax
59e094:	e8 1b 3c 06 00       	call   0x601cb4
59e099:	89 45 ec             	mov    %eax,-0x14(%ebp)
59e09c:	8b 45 ec             	mov    -0x14(%ebp),%eax
59e09f:	50                   	push   %eax
59e0a0:	8b 4d b8             	mov    -0x48(%ebp),%ecx
59e0a3:	b2 01                	mov    $0x1,%dl
59e0a5:	a1 44 06 5f 00       	mov    0x5f0644,%eax
59e0aa:	e8 75 52 06 00       	call   0x603324
59e0af:	89 45 e8             	mov    %eax,-0x18(%ebp)
59e0b2:	8b 45 b8             	mov    -0x48(%ebp),%eax
59e0b5:	e8 12 47 e6 ff       	call   0x4027cc
59e0ba:	8b 45 bc             	mov    -0x44(%ebp),%eax
59e0bd:	e8 0a 47 e6 ff       	call   0x4027cc
59e0c2:	b2 01                	mov    $0x1,%dl
59e0c4:	a1 78 05 5f 00       	mov    0x5f0578,%eax
59e0c9:	e8 82 50 06 00       	call   0x603150
59e0ce:	8b f8                	mov    %eax,%edi
59e0d0:	b9 a8 e8 59 00       	mov    $0x59e8a8,%ecx
59e0d5:	b2 01                	mov    $0x1,%dl
59e0d7:	a1 04 05 5f 00       	mov    0x5f0504,%eax
59e0dc:	e8 f3 4f 06 00       	call   0x6030d4
59e0e1:	8b d0                	mov    %eax,%edx
59e0e3:	8b 47 10             	mov    0x10(%edi),%eax
59e0e6:	e8 29 db e7 ff       	call   0x41bc14
59e0eb:	8b 45 e8             	mov    -0x18(%ebp),%eax
59e0ee:	8b 40 18             	mov    0x18(%eax),%eax
59e0f1:	8b 40 10             	mov    0x10(%eax),%eax
59e0f4:	8b cf                	mov    %edi,%ecx
59e0f6:	ba c0 e8 59 00       	mov    $0x59e8c0,%edx
59e0fb:	8b 38                	mov    (%eax),%edi
59e0fd:	ff 57 3c             	call   *0x3c(%edi)
59e100:	e9 d5 01 00 00       	jmp    0x59e2da
59e105:	55                   	push   %ebp
59e106:	e8 89 fa ff ff       	call   0x59db94
59e10b:	59                   	pop    %ecx
59e10c:	8b 45 e0             	mov    -0x20(%ebp),%eax
59e10f:	8b 10                	mov    (%eax),%edx
59e111:	ff 52 08             	call   *0x8(%edx)
59e114:	48                   	dec    %eax
59e115:	85 c0                	test   %eax,%eax
59e117:	7c 46                	jl     0x59e15f
59e119:	40                   	inc    %eax
59e11a:	89 45 b0             	mov    %eax,-0x50(%ebp)
59e11d:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
59e124:	8d 45 f7             	lea    -0x9(%ebp),%eax
59e127:	50                   	push   %eax
59e128:	8d 45 f8             	lea    -0x8(%ebp),%eax
59e12b:	50                   	push   %eax
59e12c:	8d 45 f0             	lea    -0x10(%ebp),%eax
59e12f:	50                   	push   %eax
59e130:	8b 45 08             	mov    0x8(%ebp),%eax
59e133:	8b 40 28             	mov    0x28(%eax),%eax
59e136:	50                   	push   %eax
59e137:	6a 01                	push   $0x1
59e139:	8b 55 dc             	mov    -0x24(%ebp),%edx
59e13c:	8b 45 e0             	mov    -0x20(%ebp),%eax
59e13f:	8b 08                	mov    (%eax),%ecx
59e141:	ff 11                	call   *(%ecx)
59e143:	50                   	push   %eax
59e144:	8b 45 e0             	mov    -0x20(%ebp),%eax
59e147:	8b 10                	mov    (%eax),%edx
59e149:	ff 52 0c             	call   *0xc(%edx)
59e14c:	8b d0                	mov    %eax,%edx
59e14e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
59e151:	58                   	pop    %eax
59e152:	e8 21 bd f3 ff       	call   0x4d9e78
59e157:	ff 45 dc             	incl   -0x24(%ebp)
59e15a:	ff 4d b0             	decl   -0x50(%ebp)
59e15d:	75 c5                	jne    0x59e124
59e15f:	8d 45 f7             	lea    -0x9(%ebp),%eax
59e162:	50                   	push   %eax
59e163:	8d 45 f8             	lea    -0x8(%ebp),%eax
59e166:	50                   	push   %eax
59e167:	8d 45 f0             	lea    -0x10(%ebp),%eax
59e16a:	50                   	push   %eax
59e16b:	8b 45 08             	mov    0x8(%ebp),%eax
59e16e:	8b 40 28             	mov    0x28(%eax),%eax
59e171:	50                   	push   %eax
59e172:	6a 01                	push   $0x1
59e174:	8b 4d fc             	mov    -0x4(%ebp),%ecx
59e177:	33 d2                	xor    %edx,%edx
59e179:	33 c0                	xor    %eax,%eax
59e17b:	e8 f8 bc f3 ff       	call   0x4d9e78
59e180:	55                   	push   %ebp
59e181:	83 c8 ff             	or     $0xffffffff,%eax
59e184:	e8 3b fa ff ff       	call   0x59dbc4
59e189:	59                   	pop    %ecx
59e18a:	e9 4b 01 00 00       	jmp    0x59e2da
59e18f:	55                   	push   %ebp
59e190:	e8 ff f9 ff ff       	call   0x59db94
59e195:	59                   	pop    %ecx
59e196:	8b 45 e0             	mov    -0x20(%ebp),%eax
59e199:	8b 10                	mov    (%eax),%edx
59e19b:	ff 52 08             	call   *0x8(%edx)
59e19e:	48                   	dec    %eax
59e19f:	85 c0                	test   %eax,%eax
59e1a1:	7c 46                	jl     0x59e1e9
59e1a3:	40                   	inc    %eax
59e1a4:	89 45 b0             	mov    %eax,-0x50(%ebp)
59e1a7:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
59e1ae:	8d 45 f7             	lea    -0x9(%ebp),%eax
59e1b1:	50                   	push   %eax
59e1b2:	8d 45 f8             	lea    -0x8(%ebp),%eax
59e1b5:	50                   	push   %eax
59e1b6:	8d 45 f0             	lea    -0x10(%ebp),%eax
59e1b9:	50                   	push   %eax
59e1ba:	8b 45 08             	mov    0x8(%ebp),%eax
59e1bd:	8b 40 28             	mov    0x28(%eax),%eax
59e1c0:	50                   	push   %eax
59e1c1:	6a 01                	push   $0x1
59e1c3:	8b 55 dc             	mov    -0x24(%ebp),%edx
59e1c6:	8b 45 e0             	mov    -0x20(%ebp),%eax
59e1c9:	8b 08                	mov    (%eax),%ecx
59e1cb:	ff 11                	call   *(%ecx)
59e1cd:	50                   	push   %eax
59e1ce:	8b 45 e0             	mov    -0x20(%ebp),%eax
59e1d1:	8b 10                	mov    (%eax),%edx
59e1d3:	ff 52 0c             	call   *0xc(%edx)
59e1d6:	8b d0                	mov    %eax,%edx
59e1d8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
59e1db:	58                   	pop    %eax
59e1dc:	e8 27 bb f3 ff       	call   0x4d9d08
59e1e1:	ff 45 dc             	incl   -0x24(%ebp)
59e1e4:	ff 4d b0             	decl   -0x50(%ebp)
59e1e7:	75 c5                	jne    0x59e1ae
59e1e9:	8d 45 f7             	lea    -0x9(%ebp),%eax
59e1ec:	50                   	push   %eax
59e1ed:	8d 45 f8             	lea    -0x8(%ebp),%eax
59e1f0:	50                   	push   %eax
59e1f1:	8d 45 f0             	lea    -0x10(%ebp),%eax
59e1f4:	50                   	push   %eax
59e1f5:	8b 45 08             	mov    0x8(%ebp),%eax
59e1f8:	8b 40 28             	mov    0x28(%eax),%eax
59e1fb:	50                   	push   %eax
59e1fc:	6a 01                	push   $0x1
59e1fe:	8b 4d fc             	mov    -0x4(%ebp),%ecx
59e201:	33 d2                	xor    %edx,%edx
59e203:	33 c0                	xor    %eax,%eax
59e205:	e8 fe ba f3 ff       	call   0x4d9d08
59e20a:	55                   	push   %ebp
59e20b:	b8 01 00 00 00       	mov    $0x1,%eax
59e210:	e8 af f9 ff ff       	call   0x59dbc4
59e215:	59                   	pop    %ecx
59e216:	e9 bf 00 00 00       	jmp    0x59e2da
59e21b:	b2 01                	mov    $0x1,%dl
59e21d:	a1 78 9d 41 00       	mov    0x419d78,%eax
59e222:	e8 21 58 e6 ff       	call   0x403a48
59e227:	89 45 fc             	mov    %eax,-0x4(%ebp)
59e22a:	33 c0                	xor    %eax,%eax
59e22c:	89 45 b4             	mov    %eax,-0x4c(%ebp)
59e22f:	8b 45 e0             	mov    -0x20(%ebp),%eax
59e232:	8b 10                	mov    (%eax),%edx
59e234:	ff 52 08             	call   *0x8(%edx)
59e237:	48                   	dec    %eax
59e238:	85 c0                	test   %eax,%eax
59e23a:	7c 42                	jl     0x59e27e
59e23c:	40                   	inc    %eax
59e23d:	89 45 b0             	mov    %eax,-0x50(%ebp)
59e240:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
59e247:	8d 45 b4             	lea    -0x4c(%ebp),%eax
59e24a:	50                   	push   %eax
59e24b:	8b 45 e0             	mov    -0x20(%ebp),%eax
59e24e:	8b 10                	mov    (%eax),%edx
59e250:	ff 52 0c             	call   *0xc(%edx)
59e253:	b9 08 00 00 00       	mov    $0x8,%ecx
59e258:	ba 01 00 00 00       	mov    $0x1,%edx
59e25d:	e8 7e 28 05 00       	call   0x5f0ae0
59e262:	50                   	push   %eax
59e263:	8b 55 dc             	mov    -0x24(%ebp),%edx
59e266:	8b 45 e0             	mov    -0x20(%ebp),%eax
59e269:	8b 08                	mov    (%eax),%ecx
59e26b:	ff 11                	call   *(%ecx)
59e26d:	8b 3b                	mov    (%ebx),%edi
59e26f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
59e272:	5a                   	pop    %edx
59e273:	ff 57 64             	call   *0x64(%edi)
59e276:	ff 45 dc             	incl   -0x24(%ebp)
59e279:	ff 4d b0             	decl   -0x50(%ebp)
59e27c:	75 c9                	jne    0x59e247
59e27e:	8d 45 b4             	lea    -0x4c(%ebp),%eax
59e281:	50                   	push   %eax
59e282:	8b 3b                	mov    (%ebx),%edi
59e284:	8b 4d fc             	mov    -0x4(%ebp),%ecx
59e287:	33 d2                	xor    %edx,%edx
59e289:	33 c0                	xor    %eax,%eax
59e28b:	ff 57 64             	call   *0x64(%edi)
59e28e:	8b 45 fc             	mov    -0x4(%ebp),%eax
59e291:	e8 56 04 e8 ff       	call   0x41e6ec
59e296:	50                   	push   %eax
59e297:	8b 45 fc             	mov    -0x4(%ebp),%eax
59e29a:	8b 48 04             	mov    0x4(%eax),%ecx
59e29d:	b2 01                	mov    $0x1,%dl
59e29f:	a1 44 06 5f 00       	mov    0x5f0644,%eax
59e2a4:	e8 7b 50 06 00       	call   0x603324
59e2a9:	89 45 e8             	mov    %eax,-0x18(%ebp)
59e2ac:	b9 d0 e8 59 00       	mov    $0x59e8d0,%ecx
59e2b1:	b2 01                	mov    $0x1,%dl
59e2b3:	a1 04 05 5f 00       	mov    0x5f0504,%eax
59e2b8:	e8 17 4e 06 00       	call   0x6030d4
59e2bd:	8b c8                	mov    %eax,%ecx
59e2bf:	8b 45 e8             	mov    -0x18(%ebp),%eax
59e2c2:	8b 40 18             	mov    0x18(%eax),%eax
59e2c5:	8b 40 10             	mov    0x10(%eax),%eax
59e2c8:	ba c0 e8 59 00       	mov    $0x59e8c0,%edx
59e2cd:	8b 38                	mov    (%eax),%edi
59e2cf:	ff 57 3c             	call   *0x3c(%edi)
59e2d2:	8b 45 fc             	mov    -0x4(%ebp),%eax
59e2d5:	e8 9e 57 e6 ff       	call   0x403a78
59e2da:	b9 e4 e8 59 00       	mov    $0x59e8e4,%ecx
59e2df:	b2 01                	mov    $0x1,%dl
59e2e1:	a1 04 05 5f 00       	mov    0x5f0504,%eax
59e2e6:	e8 e9 4d 06 00       	call   0x6030d4
59e2eb:	8b c8                	mov    %eax,%ecx
59e2ed:	8b 45 e8             	mov    -0x18(%ebp),%eax
59e2f0:	8b 40 18             	mov    0x18(%eax),%eax
59e2f3:	8b 40 10             	mov    0x10(%eax),%eax
59e2f6:	ba f8 e8 59 00       	mov    $0x59e8f8,%edx
59e2fb:	8b 38                	mov    (%eax),%edi
59e2fd:	ff 57 3c             	call   *0x3c(%edi)
59e300:	68 00 00 f0 3f       	push   $0x3ff00000
59e305:	6a 00                	push   $0x0
59e307:	b2 01                	mov    $0x1,%dl
59e309:	a1 28 04 5f 00       	mov    0x5f0428,%eax
59e30e:	e8 b9 4c 06 00       	call   0x602fcc
59e313:	8b c8                	mov    %eax,%ecx
59e315:	8b 45 e8             	mov    -0x18(%ebp),%eax
59e318:	8b 40 18             	mov    0x18(%eax),%eax
59e31b:	8b 40 10             	mov    0x10(%eax),%eax
59e31e:	ba 0c e9 59 00       	mov    $0x59e90c,%edx
59e323:	8b 38                	mov    (%eax),%edi
59e325:	ff 57 3c             	call   *0x3c(%edi)
59e328:	e9 4a 02 00 00       	jmp    0x59e577
59e32d:	8b 03                	mov    (%ebx),%eax
59e32f:	8a 80 4c 03 00 00    	mov    0x34c(%eax),%al
59e335:	3c 05                	cmp    $0x5,%al
59e337:	0f 85 e8 00 00 00    	jne    0x59e425
59e33d:	b2 01                	mov    $0x1,%dl
59e33f:	a1 78 9d 41 00       	mov    0x419d78,%eax
59e344:	e8 ff 56 e6 ff       	call   0x403a48
59e349:	89 45 fc             	mov    %eax,-0x4(%ebp)
59e34c:	33 c0                	xor    %eax,%eax
59e34e:	89 45 b4             	mov    %eax,-0x4c(%ebp)
59e351:	8b 45 e0             	mov    -0x20(%ebp),%eax
59e354:	8b 10                	mov    (%eax),%edx
59e356:	ff 52 0c             	call   *0xc(%edx)
59e359:	8d 04 40             	lea    (%eax,%eax,2),%eax
59e35c:	e8 4b 44 e6 ff       	call   0x4027ac
59e361:	89 45 d8             	mov    %eax,-0x28(%ebp)
59e364:	8b 45 e0             	mov    -0x20(%ebp),%eax
59e367:	8b 10                	mov    (%eax),%edx
59e369:	ff 52 08             	call   *0x8(%edx)
59e36c:	48                   	dec    %eax
59e36d:	85 c0                	test   %eax,%eax
59e36f:	7c 4b                	jl     0x59e3bc
59e371:	40                   	inc    %eax
59e372:	89 45 b0             	mov    %eax,-0x50(%ebp)
59e375:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
59e37c:	8b 55 dc             	mov    -0x24(%ebp),%edx
59e37f:	8b 45 e0             	mov    -0x20(%ebp),%eax
59e382:	8b 08                	mov    (%eax),%ecx
59e384:	ff 11                	call   *(%ecx)
59e386:	50                   	push   %eax
59e387:	8b 45 e0             	mov    -0x20(%ebp),%eax
59e38a:	8b 10                	mov    (%eax),%edx
59e38c:	ff 52 0c             	call   *0xc(%edx)
59e38f:	8b c8                	mov    %eax,%ecx
59e391:	8b 45 d8             	mov    -0x28(%ebp),%eax
59e394:	5a                   	pop    %edx
59e395:	e8 e2 35 01 00       	call   0x5b197c
59e39a:	8d 45 b4             	lea    -0x4c(%ebp),%eax
59e39d:	50                   	push   %eax
59e39e:	8b 45 e0             	mov    -0x20(%ebp),%eax
59e3a1:	8b 10                	mov    (%eax),%edx
59e3a3:	ff 52 0c             	call   *0xc(%edx)
59e3a6:	8d 14 40             	lea    (%eax,%eax,2),%edx
59e3a9:	8b 3b                	mov    (%ebx),%edi
59e3ab:	8b 4d fc             	mov    -0x4(%ebp),%ecx
59e3ae:	8b 45 d8             	mov    -0x28(%ebp),%eax
59e3b1:	ff 57 64             	call   *0x64(%edi)
59e3b4:	ff 45 dc             	incl   -0x24(%ebp)
59e3b7:	ff 4d b0             	decl   -0x50(%ebp)
59e3ba:	75 c0                	jne    0x59e37c
59e3bc:	8b 45 d8             	mov    -0x28(%ebp),%eax
59e3bf:	e8 08 44 e6 ff       	call   0x4027cc
59e3c4:	8d 45 b4             	lea    -0x4c(%ebp),%eax
59e3c7:	50                   	push   %eax
59e3c8:	8b 3b                	mov    (%ebx),%edi
59e3ca:	8b 4d fc             	mov    -0x4(%ebp),%ecx
59e3cd:	33 d2                	xor    %edx,%edx
59e3cf:	33 c0                	xor    %eax,%eax
59e3d1:	ff 57 64             	call   *0x64(%edi)
59e3d4:	8b 45 fc             	mov    -0x4(%ebp),%eax
59e3d7:	e8 10 03 e8 ff       	call   0x41e6ec
59e3dc:	50                   	push   %eax
59e3dd:	8b 45 fc             	mov    -0x4(%ebp),%eax
59e3e0:	8b 48 04             	mov    0x4(%eax),%ecx
59e3e3:	b2 01                	mov    $0x1,%dl