59818a:	ff 52 0c             	call   *0xc(%edx)
59818d:	d1 e8                	shr    $1,%eax
59818f:	3b 45 e8             	cmp    -0x18(%ebp),%eax
598192:	7f d3                	jg     0x598167
598194:	8b 45 b4             	mov    -0x4c(%ebp),%eax
598197:	8b 10                	mov    (%eax),%edx
598199:	ff 52 0c             	call   *0xc(%edx)
59819c:	a8 01                	test   $0x1,%al
59819e:	0f 84 a1 00 00 00    	je     0x598245
5981a4:	8b 45 c0             	mov    -0x40(%ebp),%eax
5981a7:	8b 55 e8             	mov    -0x18(%ebp),%edx
5981aa:	8a 0b                	mov    (%ebx),%cl
5981ac:	c1 e1 04             	shl    $0x4,%ecx
5981af:	88 0c 10             	mov    %cl,(%eax,%edx,1)
5981b2:	e9 8e 00 00 00       	jmp    0x598245
5981b7:	8b 55 e0             	mov    -0x20(%ebp),%edx
5981ba:	8b 45 b4             	mov    -0x4c(%ebp),%eax
5981bd:	8b 08                	mov    (%eax),%ecx
5981bf:	ff 11                	call   *(%ecx)
5981c1:	8b f0                	mov    %eax,%esi
5981c3:	33 c0                	xor    %eax,%eax
5981c5:	89 45 e8             	mov    %eax,-0x18(%ebp)
5981c8:	eb 42                	jmp    0x59820c
5981ca:	8a 46 02             	mov    0x2(%esi),%al
5981cd:	c1 e0 10             	shl    $0x10,%eax
5981d0:	66 8b 06             	mov    (%esi),%ax
5981d3:	50                   	push   %eax
5981d4:	8b 45 ec             	mov    -0x14(%ebp),%eax
5981d7:	e8 c4 79 fa ff       	call   0x53fba0
5981dc:	c1 e0 04             	shl    $0x4,%eax
5981df:	8b 55 c0             	mov    -0x40(%ebp),%edx
5981e2:	8b 4d e8             	mov    -0x18(%ebp),%ecx
5981e5:	88 04 0a             	mov    %al,(%edx,%ecx,1)
5981e8:	83 c6 03             	add    $0x3,%esi
5981eb:	8a 46 02             	mov    0x2(%esi),%al
5981ee:	c1 e0 10             	shl    $0x10,%eax
5981f1:	66 8b 06             	mov    (%esi),%ax
5981f4:	50                   	push   %eax
5981f5:	8b 45 ec             	mov    -0x14(%ebp),%eax
5981f8:	e8 a3 79 fa ff       	call   0x53fba0
5981fd:	8b 55 c0             	mov    -0x40(%ebp),%edx
598200:	8b 4d e8             	mov    -0x18(%ebp),%ecx
598203:	08 04 0a             	or     %al,(%edx,%ecx,1)
598206:	83 c6 03             	add    $0x3,%esi
598209:	ff 45 e8             	incl   -0x18(%ebp)
59820c:	8b 45 b4             	mov    -0x4c(%ebp),%eax
59820f:	8b 10                	mov    (%eax),%edx
598211:	ff 52 0c             	call   *0xc(%edx)
598214:	d1 e8                	shr    $1,%eax
598216:	3b 45 e8             	cmp    -0x18(%ebp),%eax
598219:	7f af                	jg     0x5981ca
59821b:	8b 45 b4             	mov    -0x4c(%ebp),%eax
59821e:	8b 10                	mov    (%eax),%edx
598220:	ff 52 0c             	call   *0xc(%edx)
598223:	a8 01                	test   $0x1,%al
598225:	74 1e                	je     0x598245
598227:	8a 46 02             	mov    0x2(%esi),%al
59822a:	c1 e0 10             	shl    $0x10,%eax
59822d:	66 8b 06             	mov    (%esi),%ax
598230:	50                   	push   %eax
598231:	8b 45 ec             	mov    -0x14(%ebp),%eax
598234:	e8 67 79 fa ff       	call   0x53fba0
598239:	c1 e0 04             	shl    $0x4,%eax
59823c:	8b 55 c0             	mov    -0x40(%ebp),%edx
59823f:	8b 4d e8             	mov    -0x18(%ebp),%ecx
598242:	88 04 0a             	mov    %al,(%edx,%ecx,1)
598245:	8b 45 b8             	mov    -0x48(%ebp),%eax
598248:	50                   	push   %eax
598249:	8b 4d c0             	mov    -0x40(%ebp),%ecx
59824c:	8b 55 08             	mov    0x8(%ebp),%edx
59824f:	8b 52 28             	mov    0x28(%edx),%edx
598252:	8b 45 f8             	mov    -0x8(%ebp),%eax
598255:	e8 a2 dc 05 00       	call   0x5f5efc
59825a:	ff 4d e0             	decl   -0x20(%ebp)
59825d:	83 7d e0 ff          	cmpl   $0xffffffff,-0x20(%ebp)
598261:	0f 85 30 fd ff ff    	jne    0x597f97
598267:	8b 45 fc             	mov    -0x4(%ebp),%eax
59826a:	8b 00                	mov    (%eax),%eax
59826c:	80 b8 02 01 00 00 01 	cmpb   $0x1,0x102(%eax)
598273:	75 19                	jne    0x59828e
598275:	66 c7 45 be 01 00    	movw   $0x1,-0x42(%ebp)
59827b:	6a 02                	push   $0x2
59827d:	8d 4d be             	lea    -0x42(%ebp),%ecx
598280:	8b 55 08             	mov    0x8(%ebp),%edx
598283:	8b 52 28             	mov    0x28(%edx),%edx
598286:	8b 45 f8             	mov    -0x8(%ebp),%eax
598289:	e8 6e dc 05 00       	call   0x5f5efc
59828e:	8b 45 c0             	mov    -0x40(%ebp),%eax
598291:	e8 36 a5 e6 ff       	call   0x4027cc
598296:	8b 45 c4             	mov    -0x3c(%ebp),%eax
598299:	e8 2e a5 e6 ff       	call   0x4027cc
59829e:	8b 45 ec             	mov    -0x14(%ebp),%eax
5982a1:	e8 d2 b7 e6 ff       	call   0x403a78
5982a6:	8b 45 b4             	mov    -0x4c(%ebp),%eax
5982a9:	3b 45 f4             	cmp    -0xc(%ebp),%eax
5982ac:	74 08                	je     0x5982b6
5982ae:	8b 45 b4             	mov    -0x4c(%ebp),%eax
5982b1:	e8 c2 b7 e6 ff       	call   0x403a78
5982b6:	83 7d f0 01          	cmpl   $0x1,-0x10(%ebp)
5982ba:	0f 85 f7 01 00 00    	jne    0x5984b7
5982c0:	8b 45 fc             	mov    -0x4(%ebp),%eax
5982c3:	8b 00                	mov    (%eax),%eax
5982c5:	8b 80 a8 03 00 00    	mov    0x3a8(%eax),%eax
5982cb:	85 c0                	test   %eax,%eax
5982cd:	74 22                	je     0x5982f1
5982cf:	8b 55 fc             	mov    -0x4(%ebp),%edx
5982d2:	e8 f5 a4 e6 ff       	call   0x4027cc
5982d7:	8b 45 fc             	mov    -0x4(%ebp),%eax
5982da:	8b 00                	mov    (%eax),%eax
5982dc:	33 d2                	xor    %edx,%edx
5982de:	89 90 a8 03 00 00    	mov    %edx,0x3a8(%eax)
5982e4:	8b 45 fc             	mov    -0x4(%ebp),%eax
5982e7:	8b 00                	mov    (%eax),%eax
5982e9:	33 d2                	xor    %edx,%edx
5982eb:	89 90 ac 03 00 00    	mov    %edx,0x3ac(%eax)
5982f1:	8b 45 fc             	mov    -0x4(%ebp),%eax
5982f4:	8b 00                	mov    (%eax),%eax
5982f6:	c7 80 ac 03 00 00 02 	movl   $0x2,0x3ac(%eax)
5982fd:	00 00 00
598300:	b8 06 00 00 00       	mov    $0x6,%eax
598305:	e8 a2 a4 e6 ff       	call   0x4027ac
59830a:	8b 55 fc             	mov    -0x4(%ebp),%edx
59830d:	8b 12                	mov    (%edx),%edx
59830f:	89 82 a8 03 00 00    	mov    %eax,0x3a8(%edx)
598315:	8b 45 f4             	mov    -0xc(%ebp),%eax
598318:	8b 10                	mov    (%eax),%edx
59831a:	ff 52 10             	call   *0x10(%edx)
59831d:	3c 01                	cmp    $0x1,%al
59831f:	75 69                	jne    0x59838a
598321:	8b 45 f4             	mov    -0xc(%ebp),%eax
598324:	89 45 b4             	mov    %eax,-0x4c(%ebp)
598327:	8d 85 18 ff ff ff    	lea    -0xe8(%ebp),%eax
59832d:	50                   	push   %eax
59832e:	33 c9                	xor    %ecx,%ecx
598330:	33 d2                	xor    %edx,%edx
598332:	33 c0                	xor    %eax,%eax
598334:	e8 d7 0f 01 00       	call   0x5a9310
598339:	8b 45 fc             	mov    -0x4(%ebp),%eax
59833c:	8b 00                	mov    (%eax),%eax
59833e:	8b 80 a8 03 00 00    	mov    0x3a8(%eax),%eax
598344:	66 8b 95 18 ff ff ff 	mov    -0xe8(%ebp),%dx
59834b:	66 89 10             	mov    %dx,(%eax)
59834e:	8a 95 1a ff ff ff    	mov    -0xe6(%ebp),%dl
598354:	88 50 02             	mov    %dl,0x2(%eax)
598357:	8d 85 18 ff ff ff    	lea    -0xe8(%ebp),%eax
59835d:	50                   	push   %eax
59835e:	b1 ff                	mov    $0xff,%cl
598360:	b2 ff                	mov    $0xff,%dl
598362:	b0 ff                	mov    $0xff,%al
598364:	e8 a7 0f 01 00       	call   0x5a9310
598369:	8b 45 fc             	mov    -0x4(%ebp),%eax
59836c:	8b 00                	mov    (%eax),%eax
59836e:	8b 80 a8 03 00 00    	mov    0x3a8(%eax),%eax
598374:	66 8b 95 18 ff ff ff 	mov    -0xe8(%ebp),%dx
59837b:	66 89 50 03          	mov    %dx,0x3(%eax)
59837f:	8a 95 1a ff ff ff    	mov    -0xe6(%ebp),%dl
598385:	88 50 05             	mov    %dl,0x5(%eax)
598388:	eb 48                	jmp    0x5983d2
59838a:	8b 45 fc             	mov    -0x4(%ebp),%eax
59838d:	8b 00                	mov    (%eax),%eax
59838f:	8b 80 a8 03 00 00    	mov    0x3a8(%eax),%eax
598395:	8d 48 03             	lea    0x3(%eax),%ecx
598398:	8b 55 fc             	mov    -0x4(%ebp),%edx
59839b:	8b d0                	mov    %eax,%edx
59839d:	8b 45 f4             	mov    -0xc(%ebp),%eax
5983a0:	e8 6f 34 01 00       	call   0x5ab814
5983a5:	89 45 b4             	mov    %eax,-0x4c(%ebp)
5983a8:	83 7d b4 00          	cmpl   $0x0,-0x4c(%ebp)
5983ac:	75 24                	jne    0x5983d2
5983ae:	b2 01                	mov    $0x1,%dl
5983b0:	a1 18 ff 5e 00       	mov    0x5eff18,%eax
5983b5:	e8 ea f1 05 00       	call   0x5f75a4
5983ba:	89 45 b4             	mov    %eax,-0x4c(%ebp)
5983bd:	8b 55 f4             	mov    -0xc(%ebp),%edx
5983c0:	8b 45 b4             	mov    -0x4c(%ebp),%eax
5983c3:	8b 08                	mov    (%eax),%ecx
5983c5:	ff 51 28             	call   *0x28(%ecx)
5983c8:	b2 01                	mov    $0x1,%dl
5983ca:	8b 45 b4             	mov    -0x4c(%ebp),%eax
5983cd:	e8 e6 fd 05 00       	call   0x5f81b8
5983d2:	83 7d b4 00          	cmpl   $0x0,-0x4c(%ebp)
5983d6:	0f 84 db 00 00 00    	je     0x5984b7
5983dc:	8b 45 fc             	mov    -0x4(%ebp),%eax
5983df:	8b 00                	mov    (%eax),%eax
5983e1:	80 b8 01 01 00 00 02 	cmpb   $0x2,0x101(%eax)
5983e8:	75 1d                	jne    0x598407
5983ea:	6a 06                	push   $0x6
5983ec:	8b 45 fc             	mov    -0x4(%ebp),%eax
5983ef:	8b 00                	mov    (%eax),%eax
5983f1:	8b 88 a8 03 00 00    	mov    0x3a8(%eax),%ecx
5983f7:	8b 55 08             	mov    0x8(%ebp),%edx
5983fa:	8b 52 28             	mov    0x28(%edx),%edx
5983fd:	8b 45 f8             	mov    -0x8(%ebp),%eax
598400:	e8 f7 da 05 00       	call   0x5f5efc
598405:	eb 0c                	jmp    0x598413
598407:	55                   	push   %ebp
598408:	b8 02 00 00 00       	mov    $0x2,%eax
59840d:	e8 12 f7 ff ff       	call   0x597b24
598412:	59                   	pop    %ecx
598413:	8b 45 f8             	mov    -0x8(%ebp),%eax
598416:	e8 9d 62 e8 ff       	call   0x41e6b8
59841b:	89 45 d0             	mov    %eax,-0x30(%ebp)
59841e:	89 55 d4             	mov    %edx,-0x2c(%ebp)
598421:	8b 45 f4             	mov    -0xc(%ebp),%eax
598424:	8b 10                	mov    (%eax),%edx
598426:	ff 52 08             	call   *0x8(%edx)
598429:	48                   	dec    %eax
59842a:	89 45 b0             	mov    %eax,-0x50(%ebp)
59842d:	8b 45 b0             	mov    -0x50(%ebp),%eax
598430:	83 f8 00             	cmp    $0x0,%eax
598433:	7c 6e                	jl     0x5984a3
598435:	89 45 e8             	mov    %eax,-0x18(%ebp)
598438:	8b 45 08             	mov    0x8(%ebp),%eax
59843b:	66 83 78 02 00       	cmpw   $0x0,0x2(%eax)
598440:	74 2d                	je     0x59846f
598442:	8b 45 b0             	mov    -0x50(%ebp),%eax
598445:	2b 45 e8             	sub    -0x18(%ebp),%eax
598448:	89 85 1c ff ff ff    	mov    %eax,-0xe4(%ebp)
59844e:	db 85 1c ff ff ff    	fildl  -0xe4(%ebp)
598454:	8b 45 08             	mov    0x8(%ebp),%eax
598457:	dc 48 18             	fmull  0x18(%eax)
59845a:	e8 6d a8 e6 ff       	call   0x402ccc
59845f:	8b c8                	mov    %eax,%ecx
598461:	8b 5d 08             	mov    0x8(%ebp),%ebx
598464:	8b 55 08             	mov    0x8(%ebp),%edx
598467:	8b 52 08             	mov    0x8(%edx),%edx
59846a:	8b 43 04             	mov    0x4(%ebx),%eax
59846d:	ff 13                	call   *(%ebx)
59846f:	8b 45 08             	mov    0x8(%ebp),%eax
598472:	8b 40 28             	mov    0x28(%eax),%eax
598475:	80 38 00             	cmpb   $0x0,(%eax)
598478:	75 29                	jne    0x5984a3
59847a:	8b 55 e8             	mov    -0x18(%ebp),%edx
59847d:	8b 45 b4             	mov    -0x4c(%ebp),%eax
598480:	8b 08                	mov    (%eax),%ecx
598482:	ff 11                	call   *(%ecx)
598484:	8b f0                	mov    %eax,%esi
598486:	8b 45 b8             	mov    -0x48(%ebp),%eax
598489:	50                   	push   %eax
59848a:	8b ce                	mov    %esi,%ecx
59848c:	8b 55 08             	mov    0x8(%ebp),%edx
59848f:	8b 52 28             	mov    0x28(%edx),%edx
598492:	8b 45 f8             	mov    -0x8(%ebp),%eax
598495:	e8 62 da 05 00       	call   0x5f5efc
59849a:	ff 4d e8             	decl   -0x18(%ebp)
59849d:	83 7d e8 ff          	cmpl   $0xffffffff,-0x18(%ebp)
5984a1:	75 95                	jne    0x598438
5984a3:	8b 45 f4             	mov    -0xc(%ebp),%eax
5984a6:	8b 10                	mov    (%eax),%edx
5984a8:	ff 52 10             	call   *0x10(%edx)
5984ab:	3c 01                	cmp    $0x1,%al
5984ad:	74 08                	je     0x5984b7
5984af:	8b 45 b4             	mov    -0x4c(%ebp),%eax
5984b2:	e8 c1 b5 e6 ff       	call   0x403a78
5984b7:	83 7d f0 18          	cmpl   $0x18,-0x10(%ebp)
5984bb:	0f 85 d8 00 00 00    	jne    0x598599
5984c1:	8b 45 f4             	mov    -0xc(%ebp),%eax
5984c4:	8b 10                	mov    (%eax),%edx
5984c6:	ff 52 10             	call   *0x10(%edx)
5984c9:	3c 01                	cmp    $0x1,%al
5984cb:	75 26                	jne    0x5984f3
5984cd:	b2 01                	mov    $0x1,%dl
5984cf:	a1 18 ff 5e 00       	mov    0x5eff18,%eax
5984d4:	e8 cb f0 05 00       	call   0x5f75a4
5984d9:	89 45 b4             	mov    %eax,-0x4c(%ebp)
5984dc:	8b 55 f4             	mov    -0xc(%ebp),%edx
5984df:	8b 45 b4             	mov    -0x4c(%ebp),%eax
5984e2:	8b 08                	mov    (%eax),%ecx
5984e4:	ff 51 28             	call   *0x28(%ecx)
5984e7:	b2 05                	mov    $0x5,%dl
5984e9:	8b 45 b4             	mov    -0x4c(%ebp),%eax
5984ec:	e8 c7 fc 05 00       	call   0x5f81b8
5984f1:	eb 06                	jmp    0x5984f9
5984f3:	8b 45 f4             	mov    -0xc(%ebp),%eax
5984f6:	89 45 b4             	mov    %eax,-0x4c(%ebp)
5984f9:	8b 45 f8             	mov    -0x8(%ebp),%eax
5984fc:	e8 b7 61 e8 ff       	call   0x41e6b8
598501:	89 45 d0             	mov    %eax,-0x30(%ebp)
598504:	89 55 d4             	mov    %edx,-0x2c(%ebp)
598507:	8b 45 b4             	mov    -0x4c(%ebp),%eax
59850a:	8b 10                	mov    (%eax),%edx
59850c:	ff 52 08             	call   *0x8(%edx)
59850f:	48                   	dec    %eax
598510:	89 45 b0             	mov    %eax,-0x50(%ebp)
598513:	8b 45 b0             	mov    -0x50(%ebp),%eax
598516:	83 f8 00             	cmp    $0x0,%eax
598519:	7c 6e                	jl     0x598589
59851b:	89 45 e8             	mov    %eax,-0x18(%ebp)
59851e:	8b 45 08             	mov    0x8(%ebp),%eax
598521:	66 83 78 02 00       	cmpw   $0x0,0x2(%eax)
598526:	74 2d                	je     0x598555
598528:	8b 45 b0             	mov    -0x50(%ebp),%eax
59852b:	2b 45 e8             	sub    -0x18(%ebp),%eax
59852e:	89 85 1c ff ff ff    	mov    %eax,-0xe4(%ebp)
598534:	db 85 1c ff ff ff    	fildl  -0xe4(%ebp)
59853a:	8b 45 08             	mov    0x8(%ebp),%eax
59853d:	dc 48 18             	fmull  0x18(%eax)
598540:	e8 87 a7 e6 ff       	call   0x402ccc
598545:	8b c8                	mov    %eax,%ecx
598547:	8b 5d 08             	mov    0x8(%ebp),%ebx
59854a:	8b 55 08             	mov    0x8(%ebp),%edx
59854d:	8b 52 08             	mov    0x8(%edx),%edx
598550:	8b 43 04             	mov    0x4(%ebx),%eax
598553:	ff 13                	call   *(%ebx)
598555:	8b 45 08             	mov    0x8(%ebp),%eax
598558:	8b 40 28             	mov    0x28(%eax),%eax
59855b:	80 38 00             	cmpb   $0x0,(%eax)
59855e:	75 29                	jne    0x598589
598560:	8b 55 e8             	mov    -0x18(%ebp),%edx
598563:	8b 45 b4             	mov    -0x4c(%ebp),%eax
598566:	8b 08                	mov    (%eax),%ecx
598568:	ff 11                	call   *(%ecx)
59856a:	8b f0                	mov    %eax,%esi
59856c:	8b 45 b8             	mov    -0x48(%ebp),%eax
59856f:	50                   	push   %eax
598570:	8b ce                	mov    %esi,%ecx
598572:	8b 55 08             	mov    0x8(%ebp),%edx
598575:	8b 52 28             	mov    0x28(%edx),%edx
598578:	8b 45 f8             	mov    -0x8(%ebp),%eax
59857b:	e8 7c d9 05 00       	call   0x5f5efc
598580:	ff 4d e8             	decl   -0x18(%ebp)
598583:	83 7d e8 ff          	cmpl   $0xffffffff,-0x18(%ebp)
598587:	75 95                	jne    0x59851e
598589:	8b 45 b4             	mov    -0x4c(%ebp),%eax
59858c:	3b 45 f4             	cmp    -0xc(%ebp),%eax
59858f:	74 08                	je     0x598599
598591:	8b 45 b4             	mov    -0x4c(%ebp),%eax
598594:	e8 df b4 e6 ff       	call   0x403a78
598599:	83 7d f0 20          	cmpl   $0x20,-0x10(%ebp)
59859d:	0f 85 f7 00 00 00    	jne    0x59869a
5985a3:	8b 45 f4             	mov    -0xc(%ebp),%eax
5985a6:	89 45 b4             	mov    %eax,-0x4c(%ebp)
5985a9:	8b 45 b8             	mov    -0x48(%ebp),%eax
5985ac:	e8 fb a1 e6 ff       	call   0x4027ac
5985b1:	89 45 c4             	mov    %eax,-0x3c(%ebp)
5985b4:	8b 45 f8             	mov    -0x8(%ebp),%eax
5985b7:	e8 fc 60 e8 ff       	call   0x41e6b8
5985bc:	89 45 d0             	mov    %eax,-0x30(%ebp)
5985bf:	89 55 d4             	mov    %edx,-0x2c(%ebp)
5985c2:	8b 45 b4             	mov    -0x4c(%ebp),%eax
5985c5:	8b 10                	mov    (%eax),%edx
5985c7:	ff 52 08             	call   *0x8(%edx)
5985ca:	48                   	dec    %eax
5985cb:	89 45 b0             	mov    %eax,-0x50(%ebp)
5985ce:	8b 45 b0             	mov    -0x50(%ebp),%eax
5985d1:	83 f8 00             	cmp    $0x0,%eax
5985d4:	0f 8c b8 00 00 00    	jl     0x598692
5985da:	89 45 e8             	mov    %eax,-0x18(%ebp)
5985dd:	8b 45 08             	mov    0x8(%ebp),%eax
5985e0:	66 83 78 02 00       	cmpw   $0x0,0x2(%eax)