477fe8:	6a 01                	push   $0x1
477fea:	51                   	push   %ecx
477feb:	51                   	push   %ecx
477fec:	51                   	push   %ecx
477fed:	50                   	push   %eax
477fee:	8b 45 f4             	mov    -0xc(%ebp),%eax
477ff1:	51                   	push   %ecx
477ff2:	51                   	push   %ecx
477ff3:	0f af c6             	imul   %esi,%eax
477ff6:	51                   	push   %ecx
477ff7:	6a b8                	push   $0xffffffb8
477ff9:	59                   	pop    %ecx
477ffa:	99                   	cltd
477ffb:	f7 f9                	idiv   %ecx
477ffd:	50                   	push   %eax
477ffe:	ff 15 1c f1 48 00    	call   *0x48f11c
478004:	6a 01                	push   $0x1
478006:	50                   	push   %eax
478007:	6a 30                	push   $0x30
478009:	57                   	push   %edi
47800a:	a3 a4 62 4c 00       	mov    %eax,0x4c62a4
47800f:	ff 15 88 f6 48 00    	call   *0x48f688
478015:	f6 45 d0 20          	testb  $0x20,-0x30(%ebp)
478019:	74 6c                	je     0x478087
47801b:	57                   	push   %edi
47801c:	ff 15 28 f6 48 00    	call   *0x48f628
478022:	ff 35 a4 62 4c 00    	push   0x4c62a4
478028:	8b d8                	mov    %eax,%ebx
47802a:	53                   	push   %ebx
47802b:	ff 15 ec f0 48 00    	call   *0x48f0ec
478031:	8b 4d 08             	mov    0x8(%ebp),%ecx
478034:	8b f8                	mov    %eax,%edi
478036:	8b 49 04             	mov    0x4(%ecx),%ecx
478039:	8b 71 04             	mov    0x4(%ecx),%esi
47803c:	8b ce                	mov    %esi,%ecx
47803e:	e8 54 19 f9 ff       	call   0x409997
478043:	8b 56 08             	mov    0x8(%esi),%edx
478046:	8d 45 cc             	lea    -0x34(%ebp),%eax
478049:	50                   	push   %eax
47804a:	8b cb                	mov    %ebx,%ecx
47804c:	8b 12                	mov    (%edx),%edx
47804e:	e8 1e ca fe ff       	call   0x464a71
478053:	59                   	pop    %ecx
478054:	57                   	push   %edi
478055:	53                   	push   %ebx
478056:	ff 15 ec f0 48 00    	call   *0x48f0ec
47805c:	8b 75 f8             	mov    -0x8(%ebp),%esi
47805f:	53                   	push   %ebx
478060:	56                   	push   %esi
478061:	ff 15 24 f6 48 00    	call   *0x48f624
478067:	8b 45 fc             	mov    -0x4(%ebp),%eax
47806a:	2b 45 d0             	sub    -0x30(%ebp),%eax
47806d:	6a 01                	push   $0x1
47806f:	ff 75 d0             	push   -0x30(%ebp)
478072:	99                   	cltd
478073:	ff 75 10             	push   0x10(%ebp)
478076:	2b c2                	sub    %edx,%eax
478078:	d1 f8                	sar    $1,%eax
47807a:	83 c0 0b             	add    $0xb,%eax
47807d:	50                   	push   %eax
47807e:	6a 0b                	push   $0xb
478080:	56                   	push   %esi
478081:	ff 15 00 f7 48 00    	call   *0x48f700
478087:	6a 04                	push   $0x4
478089:	ff 35 a0 62 4c 00    	push   0x4c62a0
47808f:	ff 15 1c f7 48 00    	call   *0x48f71c
478095:	5f                   	pop    %edi
478096:	5e                   	pop    %esi
478097:	33 c0                	xor    %eax,%eax
478099:	5b                   	pop    %ebx
47809a:	8b e5                	mov    %ebp,%esp
47809c:	5d                   	pop    %ebp
47809d:	c2 0c 00             	ret    $0xc
4780a0:	55                   	push   %ebp
4780a1:	8b ec                	mov    %esp,%ebp
4780a3:	83 ec 10             	sub    $0x10,%esp
4780a6:	53                   	push   %ebx
4780a7:	56                   	push   %esi
4780a8:	57                   	push   %edi
4780a9:	8b 7d 08             	mov    0x8(%ebp),%edi
4780ac:	8b f1                	mov    %ecx,%esi
4780ae:	6a 02                	push   $0x2
4780b0:	58                   	pop    %eax
4780b1:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4780b4:	66 89 07             	mov    %ax,(%edi)
4780b7:	e8 5c db f8 ff       	call   0x405c18
4780bc:	8d 45 f0             	lea    -0x10(%ebp),%eax
4780bf:	50                   	push   %eax
4780c0:	ff 75 0c             	push   0xc(%ebp)
4780c3:	e8 43 02 00 00       	call   0x47830b
4780c8:	ff 75 f0             	push   -0x10(%ebp)
4780cb:	ff 15 e0 f7 48 00    	call   *0x48f7e0
4780d1:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4780d4:	8b d8                	mov    %eax,%ebx
4780d6:	e8 89 d9 f8 ff       	call   0x405a64
4780db:	83 fb ff             	cmp    $0xffffffff,%ebx
4780de:	75 17                	jne    0x4780f7
4780e0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4780e3:	ba 80 a9 4b 00       	mov    $0x4ba980,%edx
4780e8:	e8 80 22 fe ff       	call   0x45a36d
4780ed:	84 c0                	test   %al,%al
4780ef:	74 06                	je     0x4780f7
4780f1:	6a 00                	push   $0x0
4780f3:	6a 01                	push   $0x1
4780f5:	eb 23                	jmp    0x47811a
4780f7:	8b 4d 10             	mov    0x10(%ebp),%ecx
4780fa:	89 5f 04             	mov    %ebx,0x4(%edi)
4780fd:	8d 41 ff             	lea    -0x1(%ecx),%eax
478100:	3d fe ff 00 00       	cmp    $0xfffe,%eax
478105:	77 0f                	ja     0x478116
478107:	51                   	push   %ecx
478108:	ff 15 e4 f7 48 00    	call   *0x48f7e4
47810e:	66 89 47 02          	mov    %ax,0x2(%edi)
478112:	b0 01                	mov    $0x1,%al
478114:	eb 12                	jmp    0x478128
478116:	6a 00                	push   $0x0
478118:	6a 02                	push   $0x2
47811a:	8b 06                	mov    (%esi),%eax
47811c:	8b 48 04             	mov    0x4(%eax),%ecx
47811f:	03 ce                	add    %esi,%ecx
478121:	e8 7d e9 fd ff       	call   0x456aa3
478126:	32 c0                	xor    %al,%al
478128:	5f                   	pop    %edi
478129:	5e                   	pop    %esi
47812a:	5b                   	pop    %ebx
47812b:	8b e5                	mov    %ebp,%esp
47812d:	5d                   	pop    %ebp
47812e:	c2 0c 00             	ret    $0xc
478131:	55                   	push   %ebp
478132:	8b ec                	mov    %esp,%ebp
478134:	51                   	push   %ecx
478135:	51                   	push   %ecx
478136:	8b 45 08             	mov    0x8(%ebp),%eax
478139:	53                   	push   %ebx
47813a:	8b 5d 0c             	mov    0xc(%ebp),%ebx
47813d:	56                   	push   %esi
47813e:	8b 75 10             	mov    0x10(%ebp),%esi
478141:	57                   	push   %edi
478142:	83 23 00             	andl   $0x0,(%ebx)
478145:	8b f9                	mov    %ecx,%edi
478147:	89 43 04             	mov    %eax,0x4(%ebx)
47814a:	b9 e8 03 00 00       	mov    $0x3e8,%ecx
47814f:	8b c6                	mov    %esi,%eax
478151:	ff 03                	incl   (%ebx)
478153:	99                   	cltd
478154:	f7 f9                	idiv   %ecx
478156:	89 45 f8             	mov    %eax,-0x8(%ebp)
478159:	69 c0 e8 03 00 00    	imul   $0x3e8,%eax,%eax
47815f:	2b f0                	sub    %eax,%esi
478161:	69 c6 e8 03 00 00    	imul   $0x3e8,%esi,%eax
478167:	89 45 fc             	mov    %eax,-0x4(%ebp)
47816a:	8d 45 f8             	lea    -0x8(%ebp),%eax
47816d:	50                   	push   %eax
47816e:	33 c0                	xor    %eax,%eax
478170:	50                   	push   %eax
478171:	38 45 14             	cmp    %al,0x14(%ebp)
478174:	74 04                	je     0x47817a
478176:	53                   	push   %ebx
478177:	50                   	push   %eax
478178:	eb 02                	jmp    0x47817c
47817a:	50                   	push   %eax
47817b:	53                   	push   %ebx
47817c:	50                   	push   %eax
47817d:	ff 15 f0 f7 48 00    	call   *0x48f7f0
478183:	8b f0                	mov    %eax,%esi
478185:	85 f6                	test   %esi,%esi
478187:	75 0d                	jne    0x478196
478189:	38 45 14             	cmp    %al,0x14(%ebp)
47818c:	74 34                	je     0x4781c2
47818e:	50                   	push   %eax
47818f:	68 4c 27 00 00       	push   $0x274c
478194:	eb 20                	jmp    0x4781b6
478196:	7e 15                	jle    0x4781ad
478198:	53                   	push   %ebx
478199:	ff 75 08             	push   0x8(%ebp)
47819c:	ff 15 ec f7 48 00    	call   *0x48f7ec
4781a2:	85 c0                	test   %eax,%eax
4781a4:	75 1c                	jne    0x4781c2
4781a6:	6a fe                	push   $0xfffffffe
4781a8:	5e                   	pop    %esi
4781a9:	50                   	push   %eax
4781aa:	56                   	push   %esi
4781ab:	eb 09                	jmp    0x4781b6
4781ad:	6a 00                	push   $0x0
4781af:	ff 15 04 f8 48 00    	call   *0x48f804
4781b5:	50                   	push   %eax
4781b6:	8b 07                	mov    (%edi),%eax
4781b8:	8b 48 04             	mov    0x4(%eax),%ecx
4781bb:	03 cf                	add    %edi,%ecx
4781bd:	e8 e1 e8 fd ff       	call   0x456aa3
4781c2:	5f                   	pop    %edi
4781c3:	8b c6                	mov    %esi,%eax
4781c5:	5e                   	pop    %esi
4781c6:	5b                   	pop    %ebx
4781c7:	8b e5                	mov    %ebp,%esp
4781c9:	5d                   	pop    %ebp
4781ca:	c2 10 00             	ret    $0x10
4781cd:	55                   	push   %ebp
4781ce:	8b ec                	mov    %esp,%ebp
4781d0:	53                   	push   %ebx
4781d1:	8b 5d 08             	mov    0x8(%ebp),%ebx
4781d4:	33 c0                	xor    %eax,%eax
4781d6:	57                   	push   %edi
4781d7:	50                   	push   %eax
4781d8:	50                   	push   %eax
4781d9:	8b 7b 04             	mov    0x4(%ebx),%edi
4781dc:	47                   	inc    %edi
4781dd:	57                   	push   %edi
4781de:	ff 33                	push   (%ebx)
4781e0:	6a 01                	push   $0x1
4781e2:	50                   	push   %eax
4781e3:	ff 15 84 f1 48 00    	call   *0x48f184
4781e9:	89 45 08             	mov    %eax,0x8(%ebp)
4781ec:	85 c0                	test   %eax,%eax
4781ee:	75 0a                	jne    0x4781fa
4781f0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4781f3:	e8 f4 fc f8 ff       	call   0x407eec
4781f8:	eb 3e                	jmp    0x478238
4781fa:	56                   	push   %esi
4781fb:	33 c9                	xor    %ecx,%ecx
4781fd:	6a 02                	push   $0x2
4781ff:	5a                   	pop    %edx
478200:	f7 e2                	mul    %edx
478202:	0f 90 c1             	seto   %cl
478205:	f7 d9                	neg    %ecx
478207:	0b c8                	or     %eax,%ecx
478209:	51                   	push   %ecx
47820a:	e8 e7 8d fa ff       	call   0x420ff6
47820f:	59                   	pop    %ecx
478210:	ff 75 08             	push   0x8(%ebp)
478213:	8b f0                	mov    %eax,%esi
478215:	56                   	push   %esi
478216:	57                   	push   %edi
478217:	ff 33                	push   (%ebx)
478219:	6a 01                	push   $0x1
47821b:	6a 00                	push   $0x0
47821d:	ff 15 84 f1 48 00    	call   *0x48f184
478223:	8b 4d 0c             	mov    0xc(%ebp),%ecx
478226:	48                   	dec    %eax
478227:	50                   	push   %eax
478228:	6a 00                	push   $0x0
47822a:	56                   	push   %esi
47822b:	e8 7d f6 f8 ff       	call   0x4078ad
478230:	56                   	push   %esi
478231:	e8 36 8e fa ff       	call   0x42106c
478236:	59                   	pop    %ecx
478237:	5e                   	pop    %esi
478238:	5f                   	pop    %edi
478239:	5b                   	pop    %ebx
47823a:	5d                   	pop    %ebp
47823b:	c2 08 00             	ret    $0x8
47823e:	55                   	push   %ebp
47823f:	8b ec                	mov    %esp,%ebp
478241:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
478245:	56                   	push   %esi
478246:	8b f1                	mov    %ecx,%esi
478248:	75 09                	jne    0x478253
47824a:	51                   	push   %ecx
47824b:	51                   	push   %ecx
47824c:	e8 b7 b1 fe ff       	call   0x463408
478251:	eb 54                	jmp    0x4782a7
478253:	ff 75 08             	push   0x8(%ebp)
478256:	e8 25 b7 fa ff       	call   0x423980
47825b:	59                   	pop    %ecx
47825c:	8b 4e 0c             	mov    0xc(%esi),%ecx
47825f:	89 46 04             	mov    %eax,0x4(%esi)
478262:	8b 11                	mov    (%ecx),%edx
478264:	83 fa 01             	cmp    $0x1,%edx
478267:	7e 24                	jle    0x47828d
478269:	8d 42 ff             	lea    -0x1(%edx),%eax
47826c:	89 01                	mov    %eax,(%ecx)
47826e:	8b ce                	mov    %esi,%ecx
478270:	e8 ce e1 fd ff       	call   0x456443
478275:	8b 46 04             	mov    0x4(%esi),%eax
478278:	40                   	inc    %eax
478279:	50                   	push   %eax
47827a:	e8 cc d7 f8 ff       	call   0x405a4b
47827f:	50                   	push   %eax
478280:	89 46 08             	mov    %eax,0x8(%esi)
478283:	e8 6e 8d fa ff       	call   0x420ff6
478288:	59                   	pop    %ecx
478289:	89 06                	mov    %eax,(%esi)
47828b:	eb 08                	jmp    0x478295
47828d:	50                   	push   %eax
47828e:	8b ce                	mov    %esi,%ecx
478290:	e8 f2 d7 f8 ff       	call   0x405a87
478295:	8b 46 04             	mov    0x4(%esi),%eax
478298:	40                   	inc    %eax
478299:	50                   	push   %eax
47829a:	ff 75 08             	push   0x8(%ebp)
47829d:	ff 36                	push   (%esi)
47829f:	e8 dc 8d fa ff       	call   0x421080
4782a4:	83 c4 0c             	add    $0xc,%esp
4782a7:	5e                   	pop    %esi
4782a8:	5d                   	pop    %ebp
4782a9:	c2 04 00             	ret    $0x4
4782ac:	55                   	push   %ebp
4782ad:	8b ec                	mov    %esp,%ebp
4782af:	56                   	push   %esi
4782b0:	8b f1                	mov    %ecx,%esi
4782b2:	8b 4d 08             	mov    0x8(%ebp),%ecx
4782b5:	e8 0d f5 f8 ff       	call   0x4077c7
4782ba:	ff 75 08             	push   0x8(%ebp)
4782bd:	56                   	push   %esi
4782be:	e8 0a ff ff ff       	call   0x4781cd
4782c3:	8b 45 08             	mov    0x8(%ebp),%eax
4782c6:	5e                   	pop    %esi
4782c7:	5d                   	pop    %ebp
4782c8:	c2 04 00             	ret    $0x4
4782cb:	55                   	push   %ebp
4782cc:	8b ec                	mov    %esp,%ebp
4782ce:	56                   	push   %esi
4782cf:	57                   	push   %edi
4782d0:	8b 7d 08             	mov    0x8(%ebp),%edi
4782d3:	8b f1                	mov    %ecx,%esi
4782d5:	8b 0f                	mov    (%edi),%ecx
4782d7:	8b 51 08             	mov    0x8(%ecx),%edx
4782da:	8b 41 04             	mov    0x4(%ecx),%eax
4782dd:	85 d2                	test   %edx,%edx
4782df:	74 03                	je     0x4782e4
4782e1:	89 42 04             	mov    %eax,0x4(%edx)
4782e4:	85 c0                	test   %eax,%eax
4782e6:	74 03                	je     0x4782eb
4782e8:	89 50 08             	mov    %edx,0x8(%eax)
4782eb:	3b 0e                	cmp    (%esi),%ecx
4782ed:	75 02                	jne    0x4782f1
4782ef:	89 06                	mov    %eax,(%esi)
4782f1:	3b 4e 04             	cmp    0x4(%esi),%ecx
4782f4:	75 03                	jne    0x4782f9
4782f6:	89 56 04             	mov    %edx,0x4(%esi)
4782f9:	51                   	push   %ecx
4782fa:	e8 4d 1b ff ff       	call   0x469e4c
4782ff:	83 27 00             	andl   $0x0,(%edi)
478302:	ff 4e 08             	decl   0x8(%esi)
478305:	5f                   	pop    %edi
478306:	5e                   	pop    %esi
478307:	5d                   	pop    %ebp
478308:	c2 04 00             	ret    $0x4
47830b:	55                   	push   %ebp
47830c:	8b ec                	mov    %esp,%ebp
47830e:	53                   	push   %ebx
47830f:	8b 5d 08             	mov    0x8(%ebp),%ebx
478312:	33 c0                	xor    %eax,%eax
478314:	57                   	push   %edi
478315:	50                   	push   %eax
478316:	50                   	push   %eax
478317:	8b 7b 04             	mov    0x4(%ebx),%edi
47831a:	50                   	push   %eax
47831b:	50                   	push   %eax
47831c:	47                   	inc    %edi