56022c:	33 c0                	xor    %eax,%eax
56022e:	89 41 30             	mov    %eax,0x30(%ecx)
560231:	8b 54 24 78          	mov    0x78(%esp),%edx
560235:	8a 4a 0c             	mov    0xc(%edx),%cl
560238:	80 f9 01             	cmp    $0x1,%cl
56023b:	75 0b                	jne    0x560248
56023d:	8b 44 24 04          	mov    0x4(%esp),%eax
560241:	c7 40 30 01 00 00 00 	movl   $0x1,0x30(%eax)
560248:	66 c7 44 24 0c 00 00 	movw   $0x0,0xc(%esp)
56024f:	8b 54 24 04          	mov    0x4(%esp),%edx
560253:	8b 4a 24             	mov    0x24(%edx),%ecx
560256:	89 4c 24 08          	mov    %ecx,0x8(%esp)
56025a:	8b 04 24             	mov    (%esp),%eax
56025d:	8b 50 58             	mov    0x58(%eax),%edx
560260:	89 94 24 84 00 00 00 	mov    %edx,0x84(%esp)
560267:	e9 7b 0b 00 00       	jmp    0x560de7
56026c:	8b 4c 24 04          	mov    0x4(%esp),%ecx
560270:	8b 41 20             	mov    0x20(%ecx),%eax
560273:	0f b7 4c 24 0c       	movzwl 0xc(%esp),%ecx
560278:	8b 50 10             	mov    0x10(%eax),%edx
56027b:	8d 04 c9             	lea    (%ecx,%ecx,8),%eax
56027e:	c1 e0 03             	shl    $0x3,%eax
560281:	2b c1                	sub    %ecx,%eax
560283:	c1 e0 02             	shl    $0x2,%eax
560286:	03 d0                	add    %eax,%edx
560288:	89 54 24 18          	mov    %edx,0x18(%esp)
56028c:	8b 54 24 18          	mov    0x18(%esp),%edx
560290:	8a 4a 08             	mov    0x8(%edx),%cl
560293:	84 c9                	test   %cl,%cl
560295:	75 0b                	jne    0x5602a2
560297:	8b 44 24 04          	mov    0x4(%esp),%eax
56029b:	c7 40 30 01 00 00 00 	movl   $0x1,0x30(%eax)
5602a2:	8b 54 24 18          	mov    0x18(%esp),%edx
5602a6:	8b 44 24 08          	mov    0x8(%esp),%eax
5602aa:	33 c9                	xor    %ecx,%ecx
5602ac:	8a 4a 05             	mov    0x5(%edx),%cl
5602af:	66 89 48 14          	mov    %cx,0x14(%eax)
5602b3:	8b 54 24 08          	mov    0x8(%esp),%edx
5602b7:	0f b7 4a 14          	movzwl 0x14(%edx),%ecx
5602bb:	8b c1                	mov    %ecx,%eax
5602bd:	c1 e0 03             	shl    $0x3,%eax
5602c0:	2b c1                	sub    %ecx,%eax
5602c2:	c1 e0 03             	shl    $0x3,%eax
5602c5:	e8 b2 80 01 00       	call   0x57837c
5602ca:	8b 54 24 08          	mov    0x8(%esp),%edx
5602ce:	85 c0                	test   %eax,%eax
5602d0:	89 42 18             	mov    %eax,0x18(%edx)
5602d3:	75 08                	jne    0x5602dd
5602d5:	83 c8 ff             	or     $0xffffffff,%eax
5602d8:	e9 c4 0b 00 00       	jmp    0x560ea1
5602dd:	8b 94 24 84 00 00 00 	mov    0x84(%esp),%edx
5602e4:	8b 4a 04             	mov    0x4(%edx),%ecx
5602e7:	85 c9                	test   %ecx,%ecx
5602e9:	77 17                	ja     0x560302
5602eb:	68 e9 02 00 00       	push   $0x2e9
5602f0:	68 15 e8 69 00       	push   $0x69e815
5602f5:	68 f2 e7 69 00       	push   $0x69e7f2
5602fa:	e8 41 a8 ff ff       	call   0x55ab40
5602ff:	83 c4 0c             	add    $0xc,%esp
560302:	8b 94 24 84 00 00 00 	mov    0x84(%esp),%edx
560309:	8b 44 24 04          	mov    0x4(%esp),%eax
56030d:	8b 4a 04             	mov    0x4(%edx),%ecx
560310:	8b 94 24 84 00 00 00 	mov    0x84(%esp),%edx
560317:	8b 40 10             	mov    0x10(%eax),%eax
56031a:	03 c1                	add    %ecx,%eax
56031c:	8b 4a 04             	mov    0x4(%edx),%ecx
56031f:	33 d2                	xor    %edx,%edx
560321:	48                   	dec    %eax
560322:	f7 f1                	div    %ecx
560324:	50                   	push   %eax
560325:	8b 84 24 88 00 00 00 	mov    0x88(%esp),%eax
56032c:	8b 00                	mov    (%eax),%eax
56032e:	85 c0                	test   %eax,%eax
560330:	77 17                	ja     0x560349
560332:	68 e8 02 00 00       	push   $0x2e8
560337:	68 e8 e7 69 00       	push   $0x69e7e8
56033c:	68 c5 e7 69 00       	push   $0x69e7c5
560341:	e8 fa a7 ff ff       	call   0x55ab40
560346:	83 c4 0c             	add    $0xc,%esp
560349:	8b 54 24 08          	mov    0x8(%esp),%edx
56034d:	8b 42 0c             	mov    0xc(%edx),%eax
560350:	8b 94 24 88 00 00 00 	mov    0x88(%esp),%edx
560357:	8b 0a                	mov    (%edx),%ecx
560359:	8b 94 24 88 00 00 00 	mov    0x88(%esp),%edx
560360:	03 c1                	add    %ecx,%eax
560362:	48                   	dec    %eax
560363:	8b 0a                	mov    (%edx),%ecx
560365:	33 d2                	xor    %edx,%edx
560367:	f7 f1                	div    %ecx
560369:	50                   	push   %eax
56036a:	8b 84 24 8c 00 00 00 	mov    0x8c(%esp),%eax
560371:	8b 40 04             	mov    0x4(%eax),%eax
560374:	85 c0                	test   %eax,%eax
560376:	77 17                	ja     0x56038f
560378:	68 e7 02 00 00       	push   $0x2e7
56037d:	68 bb e7 69 00       	push   $0x69e7bb
560382:	68 96 e7 69 00       	push   $0x69e796
560387:	e8 b4 a7 ff ff       	call   0x55ab40
56038c:	83 c4 0c             	add    $0xc,%esp
56038f:	8b 54 24 0c          	mov    0xc(%esp),%edx
560393:	8b 42 08             	mov    0x8(%edx),%eax
560396:	8b 94 24 8c 00 00 00 	mov    0x8c(%esp),%edx
56039d:	8b 4a 04             	mov    0x4(%edx),%ecx
5603a0:	8b 94 24 8c 00 00 00 	mov    0x8c(%esp),%edx
5603a7:	03 c1                	add    %ecx,%eax
5603a9:	48                   	dec    %eax
5603aa:	8b 4a 04             	mov    0x4(%edx),%ecx
5603ad:	33 d2                	xor    %edx,%edx
5603af:	f7 f1                	div    %ecx
5603b1:	50                   	push   %eax
5603b2:	8b 84 24 90 00 00 00 	mov    0x90(%esp),%eax
5603b9:	8b 00                	mov    (%eax),%eax
5603bb:	85 c0                	test   %eax,%eax
5603bd:	77 17                	ja     0x5603d6
5603bf:	68 e7 02 00 00       	push   $0x2e7
5603c4:	68 8c e7 69 00       	push   $0x69e78c
5603c9:	68 67 e7 69 00       	push   $0x69e767
5603ce:	e8 6d a7 ff ff       	call   0x55ab40
5603d3:	83 c4 0c             	add    $0xc,%esp
5603d6:	8b 54 24 10          	mov    0x10(%esp),%edx
5603da:	8b 42 04             	mov    0x4(%edx),%eax
5603dd:	8b 94 24 90 00 00 00 	mov    0x90(%esp),%edx
5603e4:	8b 0a                	mov    (%edx),%ecx
5603e6:	8b 94 24 90 00 00 00 	mov    0x90(%esp),%edx
5603ed:	03 c1                	add    %ecx,%eax
5603ef:	48                   	dec    %eax
5603f0:	8b 0a                	mov    (%edx),%ecx
5603f2:	33 d2                	xor    %edx,%edx
5603f4:	f7 f1                	div    %ecx
5603f6:	5a                   	pop    %edx
5603f7:	59                   	pop    %ecx
5603f8:	e8 5b 78 01 00       	call   0x577c58
5603fd:	8b 54 24 08          	mov    0x8(%esp),%edx
560401:	85 c0                	test   %eax,%eax
560403:	89 42 10             	mov    %eax,0x10(%edx)
560406:	75 08                	jne    0x560410
560408:	83 c8 ff             	or     $0xffffffff,%eax
56040b:	e9 91 0a 00 00       	jmp    0x560ea1
560410:	8b 54 24 08          	mov    0x8(%esp),%edx
560414:	8b 44 24 18          	mov    0x18(%esp),%eax
560418:	0f b7 52 14          	movzwl 0x14(%edx),%edx
56041c:	0f b6 40 08          	movzbl 0x8(%eax),%eax
560420:	4a                   	dec    %edx
560421:	e8 2a df 00 00       	call   0x56e350
560426:	8b 54 24 08          	mov    0x8(%esp),%edx
56042a:	85 c0                	test   %eax,%eax
56042c:	89 42 1c             	mov    %eax,0x1c(%edx)
56042f:	75 08                	jne    0x560439
560431:	83 c8 ff             	or     $0xffffffff,%eax
560434:	e9 68 0a 00 00       	jmp    0x560ea1
560439:	8b 54 24 08          	mov    0x8(%esp),%edx
56043d:	8b 4a 10             	mov    0x10(%edx),%ecx
560440:	8b 41 0c             	mov    0xc(%ecx),%eax
560443:	50                   	push   %eax
560444:	8b 54 24 0c          	mov    0xc(%esp),%edx
560448:	8b 4a 10             	mov    0x10(%edx),%ecx
56044b:	8b 41 10             	mov    0x10(%ecx),%eax
56044e:	50                   	push   %eax
56044f:	8d 94 24 94 00 00 00 	lea    0x94(%esp),%edx
560456:	52                   	push   %edx
560457:	8b 4c 24 14          	mov    0x14(%esp),%ecx
56045b:	8b 54 24 14          	mov    0x14(%esp),%edx
56045f:	8b 41 10             	mov    0x10(%ecx),%eax
560462:	8b 48 08             	mov    0x8(%eax),%ecx
560465:	8b 42 10             	mov    0x10(%edx),%eax
560468:	8b 50 04             	mov    0x4(%eax),%edx
56046b:	8b 44 24 14          	mov    0x14(%esp),%eax
56046f:	8b 40 1c             	mov    0x1c(%eax),%eax
560472:	e8 1d d8 00 00       	call   0x56dc94
560477:	33 d2                	xor    %edx,%edx
560479:	89 54 24 10          	mov    %edx,0x10(%esp)
56047d:	8b 4c 24 08          	mov    0x8(%esp),%ecx
560481:	8b 44 24 18          	mov    0x18(%esp),%eax
560485:	8d 90 d7 00 00 00    	lea    0xd7(%eax),%edx
56048b:	8b 71 18             	mov    0x18(%ecx),%esi
56048e:	89 94 24 88 00 00 00 	mov    %edx,0x88(%esp)
560495:	e9 27 09 00 00       	jmp    0x560dc1
56049a:	33 c9                	xor    %ecx,%ecx
56049c:	89 4e 04             	mov    %ecx,0x4(%esi)
56049f:	8b 44 24 08          	mov    0x8(%esp),%eax
5604a3:	0f b7 50 14          	movzwl 0x14(%eax),%edx
5604a7:	4a                   	dec    %edx
5604a8:	8b 4c 24 10          	mov    0x10(%esp),%ecx
5604ac:	2b d1                	sub    %ecx,%edx
5604ae:	79 17                	jns    0x5604c7
5604b0:	68 f7 02 00 00       	push   $0x2f7
5604b5:	68 57 e8 69 00       	push   $0x69e857
5604ba:	68 1f e8 69 00       	push   $0x69e81f
5604bf:	e8 7c a6 ff ff       	call   0x55ab40
5604c4:	83 c4 0c             	add    $0xc,%esp
5604c7:	8b 44 24 08          	mov    0x8(%esp),%eax
5604cb:	8b 54 24 10          	mov    0x10(%esp),%edx
5604cf:	0f b7 48 14          	movzwl 0x14(%eax),%ecx
5604d3:	49                   	dec    %ecx
5604d4:	b8 01 00 00 00       	mov    $0x1,%eax
5604d9:	2b ca                	sub    %edx,%ecx
5604db:	8b 54 24 08          	mov    0x8(%esp),%edx
5604df:	d3 e0                	shl    %cl,%eax
5604e1:	8b 0a                	mov    (%edx),%ecx
5604e3:	8b 54 24 08          	mov    0x8(%esp),%edx
5604e7:	03 c1                	add    %ecx,%eax
5604e9:	0f b7 4a 14          	movzwl 0x14(%edx),%ecx
5604ed:	8b 54 24 10          	mov    0x10(%esp),%edx
5604f1:	49                   	dec    %ecx
5604f2:	2b ca                	sub    %edx,%ecx
5604f4:	48                   	dec    %eax
5604f5:	d3 e8                	shr    %cl,%eax
5604f7:	89 46 08             	mov    %eax,0x8(%esi)
5604fa:	8b 44 24 08          	mov    0x8(%esp),%eax
5604fe:	0f b7 48 14          	movzwl 0x14(%eax),%ecx
560502:	8b 44 24 10          	mov    0x10(%esp),%eax
560506:	49                   	dec    %ecx
560507:	2b c8                	sub    %eax,%ecx
560509:	79 17                	jns    0x560522
56050b:	68 f9 02 00 00       	push   $0x2f9
560510:	68 99 e8 69 00       	push   $0x69e899
560515:	68 61 e8 69 00       	push   $0x69e861
56051a:	e8 21 a6 ff ff       	call   0x55ab40
56051f:	83 c4 0c             	add    $0xc,%esp
560522:	8b 54 24 08          	mov    0x8(%esp),%edx
560526:	8b 44 24 10          	mov    0x10(%esp),%eax
56052a:	0f b7 4a 14          	movzwl 0x14(%edx),%ecx
56052e:	49                   	dec    %ecx
56052f:	ba 01 00 00 00       	mov    $0x1,%edx
560534:	2b c8                	sub    %eax,%ecx
560536:	d3 e2                	shl    %cl,%edx
560538:	8b 4c 24 08          	mov    0x8(%esp),%ecx
56053c:	8b 41 04             	mov    0x4(%ecx),%eax
56053f:	8b 4c 24 08          	mov    0x8(%esp),%ecx
560543:	03 d0                	add    %eax,%edx
560545:	8b 44 24 10          	mov    0x10(%esp),%eax
560549:	0f b7 49 14          	movzwl 0x14(%ecx),%ecx
56054d:	49                   	dec    %ecx
56054e:	4a                   	dec    %edx
56054f:	2b c8                	sub    %eax,%ecx
560551:	d3 ea                	shr    %cl,%edx
560553:	89 56 0c             	mov    %edx,0xc(%esi)
560556:	8b 54 24 08          	mov    0x8(%esp),%edx
56055a:	0f b7 42 14          	movzwl 0x14(%edx),%eax
56055e:	8b 54 24 10          	mov    0x10(%esp),%edx
560562:	48                   	dec    %eax
560563:	2b c2                	sub    %edx,%eax
560565:	79 17                	jns    0x56057e
560567:	68 fb 02 00 00       	push   $0x2fb
56056c:	68 d9 e8 69 00       	push   $0x69e8d9
560571:	68 a3 e8 69 00       	push   $0x69e8a3
560576:	e8 c5 a5 ff ff       	call   0x55ab40
56057b:	83 c4 0c             	add    $0xc,%esp
56057e:	8b 4c 24 08          	mov    0x8(%esp),%ecx
560582:	8b 44 24 10          	mov    0x10(%esp),%eax
560586:	ba 01 00 00 00       	mov    $0x1,%edx
56058b:	0f b7 49 14          	movzwl 0x14(%ecx),%ecx
56058f:	49                   	dec    %ecx
560590:	2b c8                	sub    %eax,%ecx
560592:	8b 44 24 08          	mov    0x8(%esp),%eax
560596:	d3 e2                	shl    %cl,%edx
560598:	8b 48 08             	mov    0x8(%eax),%ecx
56059b:	8b 44 24 08          	mov    0x8(%esp),%eax
56059f:	03 d1                	add    %ecx,%edx
5605a1:	0f b7 48 14          	movzwl 0x14(%eax),%ecx
5605a5:	8b 44 24 10          	mov    0x10(%esp),%eax
5605a9:	49                   	dec    %ecx
5605aa:	2b c8                	sub    %eax,%ecx
5605ac:	4a                   	dec    %edx
5605ad:	d3 ea                	shr    %cl,%edx
5605af:	89 56 10             	mov    %edx,0x10(%esi)
5605b2:	8b 54 24 08          	mov    0x8(%esp),%edx
5605b6:	8b 44 24 10          	mov    0x10(%esp),%eax
5605ba:	0f b7 4a 14          	movzwl 0x14(%edx),%ecx
5605be:	49                   	dec    %ecx
5605bf:	2b c8                	sub    %eax,%ecx
5605c1:	79 17                	jns    0x5605da
5605c3:	68 fd 02 00 00       	push   $0x2fd
5605c8:	68 19 e9 69 00       	push   $0x69e919
5605cd:	68 e3 e8 69 00       	push   $0x69e8e3
5605d2:	e8 69 a5 ff ff       	call   0x55ab40
5605d7:	83 c4 0c             	add    $0xc,%esp
5605da:	8b 54 24 08          	mov    0x8(%esp),%edx
5605de:	8b 44 24 10          	mov    0x10(%esp),%eax
5605e2:	0f b7 4a 14          	movzwl 0x14(%edx),%ecx
5605e6:	49                   	dec    %ecx
5605e7:	ba 01 00 00 00       	mov    $0x1,%edx
5605ec:	2b c8                	sub    %eax,%ecx
5605ee:	d3 e2                	shl    %cl,%edx
5605f0:	8b 4c 24 08          	mov    0x8(%esp),%ecx
5605f4:	8b 41 0c             	mov    0xc(%ecx),%eax
5605f7:	8b 4c 24 08          	mov    0x8(%esp),%ecx
5605fb:	03 d0                	add    %eax,%edx
5605fd:	8b 44 24 10          	mov    0x10(%esp),%eax
560601:	0f b7 49 14          	movzwl 0x14(%ecx),%ecx
560605:	49                   	dec    %ecx
560606:	4a                   	dec    %edx
560607:	2b c8                	sub    %eax,%ecx
560609:	33 c0                	xor    %eax,%eax
56060b:	d3 ea                	shr    %cl,%edx
56060d:	89 56 14             	mov    %edx,0x14(%esi)
560610:	33 c9                	xor    %ecx,%ecx
560612:	8b 94 24 88 00 00 00 	mov    0x88(%esp),%edx
560619:	8a 02                	mov    (%edx),%al
56061b:	89 46 18             	mov    %eax,0x18(%esi)
56061e:	8b 94 24 88 00 00 00 	mov    0x88(%esp),%edx
560625:	8a 4a 21             	mov    0x21(%edx),%cl
560628:	89 4e 1c             	mov    %ecx,0x1c(%esi)
56062b:	8b 46 18             	mov    0x18(%esi),%eax
56062e:	85 c0                	test   %eax,%eax
560630:	7f 17                	jg     0x560649
560632:	68 01 03 00 00       	push   $0x301
560637:	68 4f e9 69 00       	push   $0x69e94f
56063c:	68 23 e9 69 00       	push   $0x69e923
560641:	e8 fa a4 ff ff       	call   0x55ab40
560646:	83 c4 0c             	add    $0xc,%esp
560649:	8b 4e 18             	mov    0x18(%esi),%ecx
56064c:	8b 56 08             	mov    0x8(%esi),%edx
56064f:	d3 ea                	shr    %cl,%edx
560651:	8b 4e 18             	mov    0x18(%esi),%ecx
560654:	d3 e2                	shl    %cl,%edx
560656:	89 54 24 24          	mov    %edx,0x24(%esp)
56065a:	8b 46 1c             	mov    0x1c(%esi),%eax
56065d:	85 c0                	test   %eax,%eax
56065f:	7f 17                	jg     0x560678
560661:	68 03 03 00 00       	push   $0x303
560666:	68 86 e9 69 00       	push   $0x69e986
56066b:	68 59 e9 69 00       	push   $0x69e959
560670:	e8 cb a4 ff ff       	call   0x55ab40
560675:	83 c4 0c             	add    $0xc,%esp
560678:	8b 4e 1c             	mov    0x1c(%esi),%ecx
56067b:	8b 46 0c             	mov    0xc(%esi),%eax
56067e:	d3 e8                	shr    %cl,%eax
560680:	8b 4e 1c             	mov    0x1c(%esi),%ecx
560683:	d3 e0                	shl    %cl,%eax
560685:	89 44 24 28          	mov    %eax,0x28(%esp)
560689:	8b 46 18             	mov    0x18(%esi),%eax
56068c:	85 c0                	test   %eax,%eax
56068e:	7d 17                	jge    0x5606a7
560690:	68 05 03 00 00       	push   $0x305
560695:	68 bb e9 69 00       	push   $0x69e9bb
56069a:	68 90 e9 69 00       	push   $0x69e990
56069f:	e8 9c a4 ff ff       	call   0x55ab40
5606a4:	83 c4 0c             	add    $0xc,%esp
5606a7:	8b 4e 18             	mov    0x18(%esi),%ecx
5606aa:	b8 01 00 00 00       	mov    $0x1,%eax
5606af:	d3 e0                	shl    %cl,%eax
5606b1:	8b 56 10             	mov    0x10(%esi),%edx
5606b4:	03 c2                	add    %edx,%eax
5606b6:	48                   	dec    %eax
5606b7:	8b 4e 18             	mov    0x18(%esi),%ecx
5606ba:	d3 e8                	shr    %cl,%eax
5606bc:	8b 4e 18             	mov    0x18(%esi),%ecx
5606bf:	d3 e0                	shl    %cl,%eax
5606c1:	89 44 24 2c          	mov    %eax,0x2c(%esp)