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)
5606c5:	8b 46 1c             	mov    0x1c(%esi),%eax
5606c8:	85 c0                	test   %eax,%eax
5606ca:	7d 17                	jge    0x5606e3
5606cc:	68 07 03 00 00       	push   $0x307
5606d1:	68 f1 e9 69 00       	push   $0x69e9f1
5606d6:	68 c5 e9 69 00       	push   $0x69e9c5
5606db:	e8 60 a4 ff ff       	call   0x55ab40
5606e0:	83 c4 0c             	add    $0xc,%esp
5606e3:	8b 4e 1c             	mov    0x1c(%esi),%ecx
5606e6:	b8 01 00 00 00       	mov    $0x1,%eax
5606eb:	d3 e0                	shl    %cl,%eax
5606ed:	8b 56 14             	mov    0x14(%esi),%edx
5606f0:	8b 4e 1c             	mov    0x1c(%esi),%ecx
5606f3:	03 c2                	add    %edx,%eax
5606f5:	48                   	dec    %eax
5606f6:	d3 e8                	shr    %cl,%eax
5606f8:	8b 4e 1c             	mov    0x1c(%esi),%ecx
5606fb:	d3 e0                	shl    %cl,%eax
5606fd:	89 44 24 30          	mov    %eax,0x30(%esp)
560701:	8b 44 24 2c          	mov    0x2c(%esp),%eax
560705:	8b 54 24 24          	mov    0x24(%esp),%edx
560709:	2b c2                	sub    %edx,%eax
56070b:	8b 4e 18             	mov    0x18(%esi),%ecx
56070e:	d3 e8                	shr    %cl,%eax
560710:	89 46 20             	mov    %eax,0x20(%esi)
560713:	8b 44 24 30          	mov    0x30(%esp),%eax
560717:	8b 54 24 28          	mov    0x28(%esp),%edx
56071b:	2b c2                	sub    %edx,%eax
56071d:	8b 4e 1c             	mov    0x1c(%esi),%ecx
560720:	d3 e8                	shr    %cl,%eax
560722:	89 46 24             	mov    %eax,0x24(%esi)
560725:	8b 46 20             	mov    0x20(%esi),%eax
560728:	f7 6e 24             	imull  0x24(%esi)
56072b:	89 46 28             	mov    %eax,0x28(%esi)
56072e:	8b 56 08             	mov    0x8(%esi),%edx
560731:	8b 4e 10             	mov    0x10(%esi),%ecx
560734:	3b d1                	cmp    %ecx,%edx
560736:	73 0a                	jae    0x560742
560738:	8b 46 0c             	mov    0xc(%esi),%eax
56073b:	8b 56 14             	mov    0x14(%esi),%edx
56073e:	3b c2                	cmp    %edx,%eax
560740:	72 19                	jb     0x56075b
560742:	33 c9                	xor    %ecx,%ecx
560744:	89 4e 04             	mov    %ecx,0x4(%esi)
560747:	33 c0                	xor    %eax,%eax
560749:	89 46 28             	mov    %eax,0x28(%esi)
56074c:	33 d2                	xor    %edx,%edx
56074e:	89 56 20             	mov    %edx,0x20(%esi)
560751:	33 c9                	xor    %ecx,%ecx
560753:	89 4e 24             	mov    %ecx,0x24(%esi)
560756:	e9 58 06 00 00       	jmp    0x560db3
56075b:	8b 44 24 10          	mov    0x10(%esp),%eax
56075f:	85 c0                	test   %eax,%eax
560761:	75 2e                	jne    0x560791
560763:	8b 54 24 24          	mov    0x24(%esp),%edx
560767:	89 54 24 34          	mov    %edx,0x34(%esp)
56076b:	8b 4c 24 28          	mov    0x28(%esp),%ecx
56076f:	89 4c 24 38          	mov    %ecx,0x38(%esp)
560773:	8b 44 24 2c          	mov    0x2c(%esp),%eax
560777:	89 44 24 3c          	mov    %eax,0x3c(%esp)
56077b:	8b 54 24 30          	mov    0x30(%esp),%edx
56077f:	89 54 24 40          	mov    %edx,0x40(%esp)
560783:	8b 4e 18             	mov    0x18(%esi),%ecx
560786:	89 4e 2c             	mov    %ecx,0x2c(%esi)
560789:	8b 46 1c             	mov    0x1c(%esi),%eax
56078c:	89 46 30             	mov    %eax,0x30(%esi)
56078f:	eb 46                	jmp    0x5607d7
560791:	8b 54 24 24          	mov    0x24(%esp),%edx
560795:	83 c2 02             	add    $0x2,%edx
560798:	4a                   	dec    %edx
560799:	d1 ea                	shr    $1,%edx
56079b:	89 54 24 34          	mov    %edx,0x34(%esp)
56079f:	8b 4c 24 28          	mov    0x28(%esp),%ecx
5607a3:	83 c1 02             	add    $0x2,%ecx
5607a6:	49                   	dec    %ecx
5607a7:	d1 e9                	shr    $1,%ecx
5607a9:	89 4c 24 38          	mov    %ecx,0x38(%esp)
5607ad:	8b 44 24 2c          	mov    0x2c(%esp),%eax
5607b1:	83 c0 02             	add    $0x2,%eax
5607b4:	48                   	dec    %eax
5607b5:	d1 e8                	shr    $1,%eax
5607b7:	89 44 24 3c          	mov    %eax,0x3c(%esp)
5607bb:	8b 54 24 30          	mov    0x30(%esp),%edx
5607bf:	83 c2 02             	add    $0x2,%edx
5607c2:	4a                   	dec    %edx
5607c3:	d1 ea                	shr    $1,%edx
5607c5:	89 54 24 40          	mov    %edx,0x40(%esp)
5607c9:	8b 4e 18             	mov    0x18(%esi),%ecx
5607cc:	49                   	dec    %ecx
5607cd:	89 4e 2c             	mov    %ecx,0x2c(%esi)
5607d0:	8b 46 1c             	mov    0x1c(%esi),%eax
5607d3:	48                   	dec    %eax
5607d4:	89 46 30             	mov    %eax,0x30(%esi)
5607d7:	8b 54 24 18          	mov    0x18(%esp),%edx
5607db:	33 c9                	xor    %ecx,%ecx
5607dd:	8a 4a 06             	mov    0x6(%edx),%cl
5607e0:	8b 46 2c             	mov    0x2c(%esi),%eax
5607e3:	3b c8                	cmp    %eax,%ecx
5607e5:	7d 0b                	jge    0x5607f2
5607e7:	8b 54 24 18          	mov    0x18(%esp),%edx
5607eb:	33 c9                	xor    %ecx,%ecx
5607ed:	8a 4a 06             	mov    0x6(%edx),%cl
5607f0:	eb 04                	jmp    0x5607f6
5607f2:	66 8b 4e 2c          	mov    0x2c(%esi),%cx
5607f6:	66 89 4e 34          	mov    %cx,0x34(%esi)
5607fa:	8b 44 24 18          	mov    0x18(%esp),%eax
5607fe:	33 d2                	xor    %edx,%edx
560800:	8a 50 07             	mov    0x7(%eax),%dl
560803:	8b 46 30             	mov    0x30(%esi),%eax
560806:	3b d0                	cmp    %eax,%edx
560808:	7d 0b                	jge    0x560815
56080a:	8b 54 24 18          	mov    0x18(%esp),%edx
56080e:	33 c9                	xor    %ecx,%ecx
560810:	8a 4a 07             	mov    0x7(%edx),%cl
560813:	eb 04                	jmp    0x560819
560815:	66 8b 4e 30          	mov    0x30(%esi),%cx
560819:	66 89 4e 36          	mov    %cx,0x36(%esi)
56081d:	8b 44 24 10          	mov    0x10(%esp),%eax
560821:	85 c0                	test   %eax,%eax
560823:	75 07                	jne    0x56082c
560825:	ba 01 00 00 00       	mov    $0x1,%edx
56082a:	eb 05                	jmp    0x560831
56082c:	ba 03 00 00 00       	mov    $0x3,%edx
560831:	89 16                	mov    %edx,(%esi)
560833:	8b 06                	mov    (%esi),%eax
560835:	c1 e0 05             	shl    $0x5,%eax
560838:	e8 3f 7b 01 00       	call   0x57837c
56083d:	89 46 04             	mov    %eax,0x4(%esi)
560840:	85 c0                	test   %eax,%eax
560842:	75 08                	jne    0x56084c
560844:	83 c8 ff             	or     $0xffffffff,%eax
560847:	e9 55 06 00 00       	jmp    0x560ea1
56084c:	33 d2                	xor    %edx,%edx
56084e:	89 54 24 14          	mov    %edx,0x14(%esp)
560852:	8b 7e 04             	mov    0x4(%esi),%edi
560855:	e9 4b 05 00 00       	jmp    0x560da5
56085a:	8b 44 24 10          	mov    0x10(%esp),%eax
56085e:	85 c0                	test   %eax,%eax
560860:	75 04                	jne    0x560866
560862:	33 c0                	xor    %eax,%eax
560864:	eb 10                	jmp    0x560876
560866:	8b 44 24 10          	mov    0x10(%esp),%eax
56086a:	8d 04 40             	lea    (%eax,%eax,2),%eax
56086d:	8b 54 24 14          	mov    0x14(%esp),%edx
560871:	03 c2                	add    %edx,%eax
560873:	83 c0 fe             	add    $0xfffffffe,%eax
560876:	8b d8                	mov    %eax,%ebx
560878:	8d 94 24 8c 00 00 00 	lea    0x8c(%esp),%edx
56087f:	c1 e3 03             	shl    $0x3,%ebx
560882:	8d 1c 9b             	lea    (%ebx,%ebx,4),%ebx
560885:	03 da                	add    %edx,%ebx
560887:	8b 4b 10             	mov    0x10(%ebx),%ecx
56088a:	89 4f 08             	mov    %ecx,0x8(%edi)
56088d:	8b 54 24 18          	mov    0x18(%esp),%edx
560891:	0f b7 44 42 0c       	movzwl 0xc(%edx,%eax,2),%eax
560896:	89 47 0c             	mov    %eax,0xc(%edi)
560899:	8b 4f 08             	mov    0x8(%edi),%ecx
56089c:	51                   	push   %ecx
56089d:	8b 44 24 0c          	mov    0xc(%esp),%eax
5608a1:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
5608a5:	0f b7 50 14          	movzwl 0x14(%eax),%edx
5608a9:	4a                   	dec    %edx
5608aa:	33 c0                	xor    %eax,%eax
5608ac:	8a 41 08             	mov    0x8(%ecx),%al
5608af:	8b 4c 24 14          	mov    0x14(%esp),%ecx
5608b3:	e8 c0 c5 00 00       	call   0x56ce78
5608b8:	89 47 18             	mov    %eax,0x18(%edi)
5608bb:	8b 94 24 84 00 00 00 	mov    0x84(%esp),%edx
5608c2:	8b 47 18             	mov    0x18(%edi),%eax
5608c5:	0f b7 52 10          	movzwl 0x10(%edx),%edx
5608c9:	03 d0                	add    %eax,%edx
5608cb:	8b 47 0c             	mov    0xc(%edi),%eax
5608ce:	e8 21 1a 00 00       	call   0x5622f4
5608d3:	89 47 10             	mov    %eax,0x10(%edi)
5608d6:	33 c9                	xor    %ecx,%ecx