5615ad:	8b d3                	mov    %ebx,%edx
5615af:	8b c6                	mov    %esi,%eax
5615b1:	e8 6e fb ff ff       	call   0x561124
5615b6:	85 c0                	test   %eax,%eax
5615b8:	74 05                	je     0x5615bf
5615ba:	83 c8 ff             	or     $0xffffffff,%eax
5615bd:	eb 20                	jmp    0x5615df
5615bf:	8b d3                	mov    %ebx,%edx
5615c1:	8b c6                	mov    %esi,%eax
5615c3:	e8 e4 f8 ff ff       	call   0x560eac
5615c8:	47                   	inc    %edi
5615c9:	83 c3 38             	add    $0x38,%ebx
5615cc:	8b 56 2c             	mov    0x2c(%esi),%edx
5615cf:	3b fa                	cmp    %edx,%edi
5615d1:	7c d5                	jl     0x5615a8
5615d3:	c7 46 54 20 00 00 00 	movl   $0x20,0x54(%esi)
5615da:	b8 01 00 00 00       	mov    $0x1,%eax
5615df:	5f                   	pop    %edi
5615e0:	5e                   	pop    %esi
5615e1:	5b                   	pop    %ebx
5615e2:	c3                   	ret
5615e3:	90                   	nop
5615e4:	53                   	push   %ebx
5615e5:	56                   	push   %esi
5615e6:	57                   	push   %edi
5615e7:	8d 7a 08             	lea    0x8(%edx),%edi
5615ea:	8b f0                	mov    %eax,%esi
5615ec:	55                   	push   %ebp
5615ed:	8b 47 0c             	mov    0xc(%edi),%eax
5615f0:	83 c4 f8             	add    $0xfffffff8,%esp
5615f3:	89 46 04             	mov    %eax,0x4(%esi)
5615f6:	8b 57 10             	mov    0x10(%edi),%edx
5615f9:	89 56 08             	mov    %edx,0x8(%esi)
5615fc:	8b 4f 04             	mov    0x4(%edi),%ecx
5615ff:	89 4e 0c             	mov    %ecx,0xc(%esi)
561602:	8b 47 08             	mov    0x8(%edi),%eax
561605:	89 46 10             	mov    %eax,0x10(%esi)
561608:	8b 57 14             	mov    0x14(%edi),%edx
56160b:	89 56 14             	mov    %edx,0x14(%esi)
56160e:	8b 4f 18             	mov    0x18(%edi),%ecx
561611:	89 4e 18             	mov    %ecx,0x18(%esi)
561614:	8b 47 1c             	mov    0x1c(%edi),%eax
561617:	89 46 1c             	mov    %eax,0x1c(%esi)
56161a:	8b 57 20             	mov    0x20(%edi),%edx
56161d:	89 56 20             	mov    %edx,0x20(%esi)
561620:	0f b7 4f 24          	movzwl 0x24(%edi),%ecx
561624:	89 4e 38             	mov    %ecx,0x38(%esi)
561627:	66 8b 46 38          	mov    0x38(%esi),%ax
56162b:	e8 d8 06 00 00       	call   0x561d08
561630:	89 46 40             	mov    %eax,0x40(%esi)
561633:	85 c0                	test   %eax,%eax
561635:	75 08                	jne    0x56163f
561637:	83 c8 ff             	or     $0xffffffff,%eax
56163a:	e9 c9 03 00 00       	jmp    0x561a08
56163f:	8b 46 38             	mov    0x38(%esi),%eax
561642:	c1 e0 05             	shl    $0x5,%eax
561645:	e8 32 6d 01 00       	call   0x57837c
56164a:	8b d8                	mov    %eax,%ebx
56164c:	89 5e 58             	mov    %ebx,0x58(%esi)
56164f:	85 db                	test   %ebx,%ebx
561651:	75 08                	jne    0x56165b
561653:	83 c8 ff             	or     $0xffffffff,%eax
561656:	e9 ad 03 00 00       	jmp    0x561a08
56165b:	66 c7 04 24 00 00    	movw   $0x0,(%esp)
561661:	e9 f6 00 00 00       	jmp    0x56175c
561666:	8b 57 28             	mov    0x28(%edi),%edx
561669:	33 c9                	xor    %ecx,%ecx
56166b:	8a 0c 82             	mov    (%edx,%eax,4),%cl
56166e:	66 89 4b 10          	mov    %cx,0x10(%ebx)
561672:	8b 57 28             	mov    0x28(%edi),%edx
561675:	33 c9                	xor    %ecx,%ecx
561677:	8a 4c 82 01          	mov    0x1(%edx,%eax,4),%cl
56167b:	89 4b 14             	mov    %ecx,0x14(%ebx)
56167e:	8b 57 28             	mov    0x28(%edi),%edx
561681:	33 c9                	xor    %ecx,%ecx
561683:	8a 4c 82 02          	mov    0x2(%edx,%eax,4),%cl
561687:	89 0b                	mov    %ecx,(%ebx)
561689:	8b 57 28             	mov    0x28(%edi),%edx
56168c:	0f b6 44 82 03       	movzbl 0x3(%edx,%eax,4),%eax
561691:	89 43 04             	mov    %eax,0x4(%ebx)
561694:	8b 0b                	mov    (%ebx),%ecx
561696:	85 c9                	test   %ecx,%ecx
561698:	77 17                	ja     0x5616b1
56169a:	68 d2 04 00 00       	push   $0x4d2
56169f:	68 92 ec 69 00       	push   $0x69ec92
5616a4:	68 70 ec 69 00       	push   $0x69ec70
5616a9:	e8 92 94 ff ff       	call   0x55ab40
5616ae:	83 c4 0c             	add    $0xc,%esp
5616b1:	8b 46 0c             	mov    0xc(%esi),%eax
5616b4:	8b 2b                	mov    (%ebx),%ebp
5616b6:	03 c5                	add    %ebp,%eax
5616b8:	48                   	dec    %eax
5616b9:	33 d2                	xor    %edx,%edx
5616bb:	f7 f5                	div    %ebp
5616bd:	50                   	push   %eax
5616be:	8b 03                	mov    (%ebx),%eax
5616c0:	85 c0                	test   %eax,%eax
5616c2:	77 17                	ja     0x5616db
5616c4:	68 d3 04 00 00       	push   $0x4d3
5616c9:	68 c0 ec 69 00       	push   $0x69ecc0
5616ce:	68 9c ec 69 00       	push   $0x69ec9c
5616d3:	e8 68 94 ff ff       	call   0x55ab40
5616d8:	83 c4 0c             	add    $0xc,%esp
5616db:	8b 13                	mov    (%ebx),%edx
5616dd:	8b 46 04             	mov    0x4(%esi),%eax
5616e0:	03 c2                	add    %edx,%eax
5616e2:	33 d2                	xor    %edx,%edx
5616e4:	48                   	dec    %eax
5616e5:	59                   	pop    %ecx
5616e6:	f7 33                	divl   (%ebx)
5616e8:	2b c8                	sub    %eax,%ecx
5616ea:	89 4b 08             	mov    %ecx,0x8(%ebx)
5616ed:	8b 43 04             	mov    0x4(%ebx),%eax
5616f0:	85 c0                	test   %eax,%eax
5616f2:	77 17                	ja     0x56170b
5616f4:	68 d4 04 00 00       	push   $0x4d4
5616f9:	68 ec ec 69 00       	push   $0x69ecec
5616fe:	68 ca ec 69 00       	push   $0x69ecca
561703:	e8 38 94 ff ff       	call   0x55ab40
561708:	83 c4 0c             	add    $0xc,%esp
56170b:	8b 46 10             	mov    0x10(%esi),%eax
56170e:	8b 6b 04             	mov    0x4(%ebx),%ebp
561711:	03 c5                	add    %ebp,%eax
561713:	48                   	dec    %eax
561714:	33 d2                	xor    %edx,%edx
561716:	f7 f5                	div    %ebp
561718:	50                   	push   %eax
561719:	8b 43 04             	mov    0x4(%ebx),%eax
56171c:	85 c0                	test   %eax,%eax
56171e:	77 17                	ja     0x561737
561720:	68 d5 04 00 00       	push   $0x4d5
561725:	68 1a ed 69 00       	push   $0x69ed1a
56172a:	68 f6 ec 69 00       	push   $0x69ecf6
56172f:	e8 0c 94 ff ff       	call   0x55ab40
561734:	83 c4 0c             	add    $0xc,%esp
561737:	8b 53 04             	mov    0x4(%ebx),%edx
56173a:	8b 46 08             	mov    0x8(%esi),%eax
56173d:	03 c2                	add    %edx,%eax
56173f:	33 d2                	xor    %edx,%edx
561741:	48                   	dec    %eax
561742:	59                   	pop    %ecx
561743:	f7 73 04             	divl   0x4(%ebx)
561746:	2b c8                	sub    %eax,%ecx
561748:	33 c0                	xor    %eax,%eax
56174a:	89 4b 0c             	mov    %ecx,0xc(%ebx)
56174d:	89 43 18             	mov    %eax,0x18(%ebx)
561750:	33 c0                	xor    %eax,%eax
561752:	89 43 1c             	mov    %eax,0x1c(%ebx)
561755:	66 ff 04 24          	incw   (%esp)
561759:	83 c3 20             	add    $0x20,%ebx
56175c:	0f b7 04 24          	movzwl (%esp),%eax
561760:	8b 56 38             	mov    0x38(%esi),%edx
561763:	3b c2                	cmp    %edx,%eax
561765:	0f 8c fb fe ff ff    	jl     0x561666
56176b:	33 c9                	xor    %ecx,%ecx
56176d:	89 0e                	mov    %ecx,(%esi)
56176f:	8b 46 14             	mov    0x14(%esi),%eax
561772:	85 c0                	test   %eax,%eax
561774:	77 17                	ja     0x56178d
561776:	68 dc 04 00 00       	push   $0x4dc
56177b:	68 59 ed 69 00       	push   $0x69ed59
561780:	68 24 ed 69 00       	push   $0x69ed24
561785:	e8 b6 93 ff ff       	call   0x55ab40
56178a:	83 c4 0c             	add    $0xc,%esp
56178d:	8b 46 0c             	mov    0xc(%esi),%eax
561790:	8b 56 1c             	mov    0x1c(%esi),%edx
561793:	2b c2                	sub    %edx,%eax
561795:	8b 5e 14             	mov    0x14(%esi),%ebx
561798:	03 c3                	add    %ebx,%eax
56179a:	48                   	dec    %eax
56179b:	33 d2                	xor    %edx,%edx
56179d:	f7 f3                	div    %ebx
56179f:	89 46 24             	mov    %eax,0x24(%esi)
5617a2:	8b 46 18             	mov    0x18(%esi),%eax
5617a5:	85 c0                	test   %eax,%eax
5617a7:	77 17                	ja     0x5617c0
5617a9:	68 dd 04 00 00       	push   $0x4dd
5617ae:	68 99 ed 69 00       	push   $0x69ed99
5617b3:	68 63 ed 69 00       	push   $0x69ed63
5617b8:	e8 83 93 ff ff       	call   0x55ab40
5617bd:	83 c4 0c             	add    $0xc,%esp
5617c0:	8b 46 10             	mov    0x10(%esi),%eax
5617c3:	8b 56 20             	mov    0x20(%esi),%edx
5617c6:	2b c2                	sub    %edx,%eax
5617c8:	8b 5e 18             	mov    0x18(%esi),%ebx
5617cb:	03 c3                	add    %ebx,%eax
5617cd:	48                   	dec    %eax
5617ce:	33 d2                	xor    %edx,%edx
5617d0:	f7 f3                	div    %ebx
5617d2:	8b f8                	mov    %eax,%edi
5617d4:	89 7e 28             	mov    %edi,0x28(%esi)
5617d7:	8b 5e 24             	mov    0x24(%esi),%ebx
5617da:	0f af df             	imul   %edi,%ebx
5617dd:	89 5e 2c             	mov    %ebx,0x2c(%esi)
5617e0:	8b c3                	mov    %ebx,%eax
5617e2:	c1 e0 03             	shl    $0x3,%eax
5617e5:	2b c3                	sub    %ebx,%eax
5617e7:	c1 e0 03             	shl    $0x3,%eax
5617ea:	e8 8d 6b 01 00       	call   0x57837c
5617ef:	8b f8                	mov    %eax,%edi
5617f1:	89 7e 30             	mov    %edi,0x30(%esi)
5617f4:	85 ff                	test   %edi,%edi
5617f6:	75 08                	jne    0x561800
5617f8:	83 c8 ff             	or     $0xffffffff,%eax
5617fb:	e9 08 02 00 00       	jmp    0x561a08
561800:	33 d2                	xor    %edx,%edx
561802:	8b ef                	mov    %edi,%ebp
561804:	89 54 24 04          	mov    %edx,0x4(%esp)
561808:	e9 de 01 00 00       	jmp    0x5619eb
56180d:	8b 44 24 04          	mov    0x4(%esp),%eax
561811:	8b 5e 24             	mov    0x24(%esi),%ebx
561814:	33 d2                	xor    %edx,%edx
561816:	f7 f3                	div    %ebx
561818:	8b ca                	mov    %edx,%ecx
56181a:	8b 44 24 04          	mov    0x4(%esp),%eax
56181e:	33 d2                	xor    %edx,%edx
561820:	f7 f3                	div    %ebx
561822:	33 d2                	xor    %edx,%edx
561824:	89 55 30             	mov    %edx,0x30(%ebp)
561827:	33 d2                	xor    %edx,%edx
561829:	89 55 00             	mov    %edx,0x0(%ebp)
56182c:	8b d1                	mov    %ecx,%edx
56182e:	0f af 56 14          	imul   0x14(%esi),%edx
561832:	8b 5e 1c             	mov    0x1c(%esi),%ebx
561835:	03 d3                	add    %ebx,%edx
561837:	8b 5e 04             	mov    0x4(%esi),%ebx
56183a:	3b d3                	cmp    %ebx,%edx
56183c:	76 0d                	jbe    0x56184b
56183e:	8b d1                	mov    %ecx,%edx
561840:	8b 5e 1c             	mov    0x1c(%esi),%ebx
561843:	0f af 56 14          	imul   0x14(%esi),%edx
561847:	03 d3                	add    %ebx,%edx
561849:	eb 03                	jmp    0x56184e
56184b:	8b 56 04             	mov    0x4(%esi),%edx
56184e:	89 55 04             	mov    %edx,0x4(%ebp)
561851:	8b d0                	mov    %eax,%edx
561853:	0f af 56 18          	imul   0x18(%esi),%edx
561857:	8b 5e 20             	mov    0x20(%esi),%ebx
56185a:	03 d3                	add    %ebx,%edx
56185c:	8b 5e 08             	mov    0x8(%esi),%ebx
56185f:	3b d3                	cmp    %ebx,%edx
561861:	76 0d                	jbe    0x561870
561863:	8b d0                	mov    %eax,%edx
561865:	8b 5e 20             	mov    0x20(%esi),%ebx
561868:	0f af 56 18          	imul   0x18(%esi),%edx
56186c:	03 d3                	add    %ebx,%edx
56186e:	eb 03                	jmp    0x561873
561870:	8b 56 08             	mov    0x8(%esi),%edx
561873:	89 55 08             	mov    %edx,0x8(%ebp)
561876:	8d 51 01             	lea    0x1(%ecx),%edx
561879:	0f af 56 14          	imul   0x14(%esi),%edx
56187d:	8b 5e 1c             	mov    0x1c(%esi),%ebx
561880:	03 d3                	add    %ebx,%edx
561882:	8b 5e 0c             	mov    0xc(%esi),%ebx
561885:	3b d3                	cmp    %ebx,%edx
561887:	73 0c                	jae    0x561895
561889:	41                   	inc    %ecx
56188a:	8b 56 1c             	mov    0x1c(%esi),%edx
56188d:	0f af 4e 14          	imul   0x14(%esi),%ecx
561891:	03 ca                	add    %edx,%ecx
561893:	eb 03                	jmp    0x561898
561895:	8b 4e 0c             	mov    0xc(%esi),%ecx
561898:	89 4d 0c             	mov    %ecx,0xc(%ebp)
56189b:	8d 50 01             	lea    0x1(%eax),%edx
56189e:	0f af 56 18          	imul   0x18(%esi),%edx
5618a2:	8b 4e 20             	mov    0x20(%esi),%ecx
5618a5:	03 d1                	add    %ecx,%edx
5618a7:	8b 4e 10             	mov    0x10(%esi),%ecx
5618aa:	3b d1                	cmp    %ecx,%edx
5618ac:	73 0b                	jae    0x5618b9
5618ae:	40                   	inc    %eax
5618af:	f7 6e 18             	imull  0x18(%esi)
5618b2:	8b 56 20             	mov    0x20(%esi),%edx
5618b5:	03 c2                	add    %edx,%eax
5618b7:	eb 03                	jmp    0x5618bc
5618b9:	8b 46 10             	mov    0x10(%esi),%eax
5618bc:	89 45 10             	mov    %eax,0x10(%ebp)
5618bf:	33 d2                	xor    %edx,%edx
5618c1:	89 55 2c             	mov    %edx,0x2c(%ebp)
5618c4:	33 c9                	xor    %ecx,%ecx
5618c6:	89 4d 28             	mov    %ecx,0x28(%ebp)
5618c9:	33 c0                	xor    %eax,%eax
5618cb:	89 45 18             	mov    %eax,0x18(%ebp)
5618ce:	33 d2                	xor    %edx,%edx
5618d0:	89 55 1c             	mov    %edx,0x1c(%ebp)
5618d3:	33 c9                	xor    %ecx,%ecx
5618d5:	89 4d 14             	mov    %ecx,0x14(%ebp)
5618d8:	33 c0                	xor    %eax,%eax
5618da:	89 45 20             	mov    %eax,0x20(%ebp)
5618dd:	8b 46 38             	mov    0x38(%esi),%eax
5618e0:	c1 e0 05             	shl    $0x5,%eax
5618e3:	e8 94 6a 01 00       	call   0x57837c
5618e8:	8b f8                	mov    %eax,%edi
5618ea:	89 7d 24             	mov    %edi,0x24(%ebp)
5618ed:	85 ff                	test   %edi,%edi
5618ef:	75 08                	jne    0x5618f9
5618f1:	83 c8 ff             	or     $0xffffffff,%eax
5618f4:	e9 0f 01 00 00       	jmp    0x561a08
5618f9:	66 c7 04 24 00 00    	movw   $0x0,(%esp)
5618ff:	8b 5e 58             	mov    0x58(%esi),%ebx
561902:	e9 ce 00 00 00       	jmp    0x5619d5
561907:	33 c0                	xor    %eax,%eax
561909:	33 d2                	xor    %edx,%edx
56190b:	89 47 18             	mov    %eax,0x18(%edi)
56190e:	89 57 10             	mov    %edx,0x10(%edi)
561911:	8b 0b                	mov    (%ebx),%ecx
561913:	85 c9                	test   %ecx,%ecx
561915:	77 17                	ja     0x56192e
561917:	68 ff 04 00 00       	push   $0x4ff
56191c:	68 c8 ed 69 00       	push   $0x69edc8
561921:	68 a3 ed 69 00       	push   $0x69eda3
561926:	e8 15 92 ff ff       	call   0x55ab40
56192b:	83 c4 0c             	add    $0xc,%esp
56192e:	8b 45 04             	mov    0x4(%ebp),%eax
561931:	8b 13                	mov    (%ebx),%edx
561933:	03 c2                	add    %edx,%eax
561935:	48                   	dec    %eax
561936:	33 d2                	xor    %edx,%edx
561938:	f7 33                	divl   (%ebx)
56193a:	89 07                	mov    %eax,(%edi)
56193c:	8b 43 04             	mov    0x4(%ebx),%eax
56193f:	85 c0                	test   %eax,%eax
561941:	77 17                	ja     0x56195a
561943:	68 00 05 00 00       	push   $0x500
561948:	68 f7 ed 69 00       	push   $0x69edf7
56194d:	68 d2 ed 69 00       	push   $0x69edd2
561952:	e8 e9 91 ff ff       	call   0x55ab40
561957:	83 c4 0c             	add    $0xc,%esp
56195a:	8b 45 08             	mov    0x8(%ebp),%eax
56195d:	8b 53 04             	mov    0x4(%ebx),%edx
561960:	03 c2                	add    %edx,%eax
561962:	48                   	dec    %eax
561963:	33 d2                	xor    %edx,%edx
561965:	f7 73 04             	divl   0x4(%ebx)
561968:	89 47 04             	mov    %eax,0x4(%edi)
56196b:	8b 03                	mov    (%ebx),%eax
56196d:	85 c0                	test   %eax,%eax
56196f:	77 17                	ja     0x561988
561971:	68 01 05 00 00       	push   $0x501
561976:	68 24 ee 69 00       	push   $0x69ee24
56197b:	68 01 ee 69 00       	push   $0x69ee01
561980:	e8 bb 91 ff ff       	call   0x55ab40
561985:	83 c4 0c             	add    $0xc,%esp
561988:	8b 45 0c             	mov    0xc(%ebp),%eax
56198b:	8b 13                	mov    (%ebx),%edx
56198d:	03 c2                	add    %edx,%eax
56198f:	48                   	dec    %eax
561990:	33 d2                	xor    %edx,%edx
561992:	f7 33                	divl   (%ebx)
561994:	89 47 08             	mov    %eax,0x8(%edi)