46603d:	57                   	push   %edi
46603e:	85 f6                	test   %esi,%esi
466040:	74 1d                	je     0x46605f
466042:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
466046:	74 17                	je     0x46605f
466048:	8b 7d 08             	mov    0x8(%ebp),%edi
46604b:	85 ff                	test   %edi,%edi
46604d:	75 19                	jne    0x466068
46604f:	e8 db 6d fe ff       	call   0x44ce2f
466054:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
46605a:	e8 77 6c fe ff       	call   0x44ccd6
46605f:	33 c0                	xor    %eax,%eax
466061:	5f                   	pop    %edi
466062:	5e                   	pop    %esi
466063:	5b                   	pop    %ebx
466064:	8b e5                	mov    %ebp,%esp
466066:	5d                   	pop    %ebp
466067:	c3                   	ret
466068:	8b 4d 18             	mov    0x18(%ebp),%ecx
46606b:	8b 5d 0c             	mov    0xc(%ebp),%ebx
46606e:	85 c9                	test   %ecx,%ecx
466070:	74 0c                	je     0x46607e
466072:	83 c8 ff             	or     $0xffffffff,%eax
466075:	33 d2                	xor    %edx,%edx
466077:	f7 f6                	div    %esi
466079:	39 45 14             	cmp    %eax,0x14(%ebp)
46607c:	76 24                	jbe    0x4660a2
46607e:	83 fb ff             	cmp    $0xffffffff,%ebx
466081:	74 0f                	je     0x466092
466083:	53                   	push   %ebx
466084:	6a 00                	push   $0x0
466086:	57                   	push   %edi
466087:	e8 d4 dd fd ff       	call   0x443e60
46608c:	8b 4d 18             	mov    0x18(%ebp),%ecx
46608f:	83 c4 0c             	add    $0xc,%esp
466092:	85 c9                	test   %ecx,%ecx
466094:	74 b9                	je     0x46604f
466096:	83 c8 ff             	or     $0xffffffff,%eax
466099:	33 d2                	xor    %edx,%edx
46609b:	f7 f6                	div    %esi
46609d:	39 45 14             	cmp    %eax,0x14(%ebp)
4660a0:	77 ad                	ja     0x46604f
4660a2:	8d 41 0c             	lea    0xc(%ecx),%eax
4660a5:	89 45 ec             	mov    %eax,-0x14(%ebp)
4660a8:	8b 00                	mov    (%eax),%eax
4660aa:	a9 c0 04 00 00       	test   $0x4c0,%eax
4660af:	74 08                	je     0x4660b9
4660b1:	8b 41 18             	mov    0x18(%ecx),%eax
4660b4:	89 45 f0             	mov    %eax,-0x10(%ebp)
4660b7:	eb 07                	jmp    0x4660c0
4660b9:	c7 45 f0 00 10 00 00 	movl   $0x1000,-0x10(%ebp)
4660c0:	0f af 75 14          	imul   0x14(%ebp),%esi
4660c4:	8b d3                	mov    %ebx,%edx
4660c6:	89 7d fc             	mov    %edi,-0x4(%ebp)
4660c9:	8b fe                	mov    %esi,%edi
4660cb:	85 f6                	test   %esi,%esi
4660cd:	e9 e9 00 00 00       	jmp    0x4661bb
4660d2:	8b 41 0c             	mov    0xc(%ecx),%eax
4660d5:	a9 c0 04 00 00       	test   $0x4c0,%eax
4660da:	74 4a                	je     0x466126
4660dc:	8b 41 08             	mov    0x8(%ecx),%eax
4660df:	89 45 f4             	mov    %eax,-0xc(%ebp)
4660e2:	85 c0                	test   %eax,%eax
4660e4:	74 40                	je     0x466126
4660e6:	0f 88 03 01 00 00    	js     0x4661ef
4660ec:	3b f8                	cmp    %eax,%edi
4660ee:	73 05                	jae    0x4660f5
4660f0:	8b c7                	mov    %edi,%eax
4660f2:	89 7d f4             	mov    %edi,-0xc(%ebp)
4660f5:	3b c2                	cmp    %edx,%eax
4660f7:	0f 87 cf 00 00 00    	ja     0x4661cc
4660fd:	50                   	push   %eax
4660fe:	ff 31                	push   (%ecx)
466100:	52                   	push   %edx
466101:	ff 75 fc             	push   -0x4(%ebp)
466104:	e8 b1 01 00 00       	call   0x4662ba
466109:	8b 4d 18             	mov    0x18(%ebp),%ecx
46610c:	83 c4 10             	add    $0x10,%esp
46610f:	8b 45 f4             	mov    -0xc(%ebp),%eax
466112:	2b f8                	sub    %eax,%edi
466114:	8b 55 f8             	mov    -0x8(%ebp),%edx
466117:	01 45 fc             	add    %eax,-0x4(%ebp)
46611a:	29 41 08             	sub    %eax,0x8(%ecx)
46611d:	01 01                	add    %eax,(%ecx)
46611f:	2b d0                	sub    %eax,%edx
466121:	e9 93 00 00 00       	jmp    0x4661b9
466126:	3b 7d f0             	cmp    -0x10(%ebp),%edi
466129:	72 65                	jb     0x466190
46612b:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
466130:	3b f8                	cmp    %eax,%edi
466132:	76 05                	jbe    0x466139
466134:	89 45 f4             	mov    %eax,-0xc(%ebp)
466137:	eb 05                	jmp    0x46613e
466139:	8b c7                	mov    %edi,%eax
46613b:	89 7d f4             	mov    %edi,-0xc(%ebp)
46613e:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
466142:	74 0d                	je     0x466151
466144:	33 d2                	xor    %edx,%edx
466146:	f7 75 f0             	divl   -0x10(%ebp)
466149:	8b 45 f4             	mov    -0xc(%ebp),%eax
46614c:	2b c2                	sub    %edx,%eax
46614e:	8b 55 f8             	mov    -0x8(%ebp),%edx
466151:	89 45 f4             	mov    %eax,-0xc(%ebp)
466154:	3b c2                	cmp    %edx,%eax
466156:	77 74                	ja     0x4661cc
466158:	ff 75 f4             	push   -0xc(%ebp)
46615b:	8b 41 04             	mov    0x4(%ecx),%eax
46615e:	ff 75 fc             	push   -0x4(%ebp)
466161:	83 61 08 00          	andl   $0x0,0x8(%ecx)
466165:	51                   	push   %ecx
466166:	89 01                	mov    %eax,(%ecx)
466168:	e8 09 20 01 00       	call   0x478176
46616d:	59                   	pop    %ecx
46616e:	50                   	push   %eax
46616f:	e8 3d 2e 01 00       	call   0x478fb1
466174:	83 c4 0c             	add    $0xc,%esp
466177:	85 c0                	test   %eax,%eax
466179:	0f 84 87 00 00 00    	je     0x466206
46617f:	78 6e                	js     0x4661ef
466181:	8b 55 f8             	mov    -0x8(%ebp),%edx
466184:	2b f8                	sub    %eax,%edi
466186:	01 45 fc             	add    %eax,-0x4(%ebp)
466189:	2b d0                	sub    %eax,%edx
46618b:	8b 4d 18             	mov    0x18(%ebp),%ecx
46618e:	eb 29                	jmp    0x4661b9
466190:	51                   	push   %ecx
466191:	e8 cf 35 01 00       	call   0x479765
466196:	59                   	pop    %ecx
466197:	8b c8                	mov    %eax,%ecx
466199:	83 f9 ff             	cmp    $0xffffffff,%ecx
46619c:	74 5a                	je     0x4661f8
46619e:	8b 55 f8             	mov    -0x8(%ebp),%edx
4661a1:	85 d2                	test   %edx,%edx
4661a3:	74 27                	je     0x4661cc
4661a5:	8b 45 fc             	mov    -0x4(%ebp),%eax
4661a8:	88 08                	mov    %cl,(%eax)
4661aa:	40                   	inc    %eax
4661ab:	8b 4d 18             	mov    0x18(%ebp),%ecx
4661ae:	4f                   	dec    %edi
4661af:	89 45 fc             	mov    %eax,-0x4(%ebp)
4661b2:	4a                   	dec    %edx
4661b3:	8b 41 18             	mov    0x18(%ecx),%eax
4661b6:	89 45 f0             	mov    %eax,-0x10(%ebp)
4661b9:	85 ff                	test   %edi,%edi
4661bb:	89 55 f8             	mov    %edx,-0x8(%ebp)
4661be:	0f 85 0e ff ff ff    	jne    0x4660d2
4661c4:	8b 45 14             	mov    0x14(%ebp),%eax
4661c7:	e9 95 fe ff ff       	jmp    0x466061
4661cc:	83 fb ff             	cmp    $0xffffffff,%ebx
4661cf:	74 0e                	je     0x4661df
4661d1:	53                   	push   %ebx
4661d2:	6a 00                	push   $0x0
4661d4:	ff 75 08             	push   0x8(%ebp)
4661d7:	e8 84 dc fd ff       	call   0x443e60
4661dc:	83 c4 0c             	add    $0xc,%esp
4661df:	e8 4b 6c fe ff       	call   0x44ce2f
4661e4:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
4661ea:	e9 6b fe ff ff       	jmp    0x46605a
4661ef:	6a 10                	push   $0x10
4661f1:	8b 45 ec             	mov    -0x14(%ebp),%eax
4661f4:	59                   	pop    %ecx
4661f5:	f0 09 08             	lock or %ecx,(%eax)
4661f8:	2b f7                	sub    %edi,%esi
4661fa:	33 d2                	xor    %edx,%edx
4661fc:	8b c6                	mov    %esi,%eax
4661fe:	f7 75 10             	divl   0x10(%ebp)
466201:	e9 5b fe ff ff       	jmp    0x466061
466206:	6a 08                	push   $0x8
466208:	eb e7                	jmp    0x4661f1
46620a:	8b ff                	mov    %edi,%edi
46620c:	55                   	push   %ebp
46620d:	8b ec                	mov    %esp,%ebp
46620f:	ff 75 14             	push   0x14(%ebp)
466212:	ff 75 10             	push   0x10(%ebp)
466215:	ff 75 0c             	push   0xc(%ebp)
466218:	6a ff                	push   $0xffffffff
46621a:	ff 75 08             	push   0x8(%ebp)
46621d:	e8 05 00 00 00       	call   0x466227
466222:	83 c4 14             	add    $0x14,%esp
466225:	5d                   	pop    %ebp
466226:	c3                   	ret
466227:	6a 0c                	push   $0xc
466229:	68 78 4a 4b 00       	push   $0x4b4a78
46622e:	e8 2d a7 fd ff       	call   0x440960
466233:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
466237:	74 32                	je     0x46626b
466239:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
46623d:	74 2c                	je     0x46626b
46623f:	8b 75 18             	mov    0x18(%ebp),%esi
466242:	85 f6                	test   %esi,%esi
466244:	75 2d                	jne    0x466273
466246:	83 7d 0c ff          	cmpl   $0xffffffff,0xc(%ebp)
46624a:	74 0f                	je     0x46625b
46624c:	ff 75 0c             	push   0xc(%ebp)
46624f:	56                   	push   %esi
466250:	ff 75 08             	push   0x8(%ebp)
466253:	e8 08 dc fd ff       	call   0x443e60
466258:	83 c4 0c             	add    $0xc,%esp
46625b:	e8 cf 6b fe ff       	call   0x44ce2f
466260:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
466266:	e8 6b 6a fe ff       	call   0x44ccd6
46626b:	33 c0                	xor    %eax,%eax
46626d:	e8 34 a7 fd ff       	call   0x4409a6
466272:	c3                   	ret
466273:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
466277:	56                   	push   %esi
466278:	e8 2c df fe ff       	call   0x4541a9
46627d:	59                   	pop    %ecx
46627e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
466282:	56                   	push   %esi
466283:	ff 75 14             	push   0x14(%ebp)
466286:	ff 75 10             	push   0x10(%ebp)
466289:	ff 75 0c             	push   0xc(%ebp)
46628c:	ff 75 08             	push   0x8(%ebp)
46628f:	e8 9c fd ff ff       	call   0x466030
466294:	83 c4 14             	add    $0x14,%esp
466297:	8b f8                	mov    %eax,%edi
466299:	89 7d e4             	mov    %edi,-0x1c(%ebp)
46629c:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4662a3:	e8 0a 00 00 00       	call   0x4662b2
4662a8:	8b c7                	mov    %edi,%eax
4662aa:	eb c1                	jmp    0x46626d
4662ac:	8b 75 18             	mov    0x18(%ebp),%esi
4662af:	8b 7d e4             	mov    -0x1c(%ebp),%edi
4662b2:	56                   	push   %esi
4662b3:	e8 05 df fe ff       	call   0x4541bd
4662b8:	59                   	pop    %ecx
4662b9:	c3                   	ret
4662ba:	8b ff                	mov    %edi,%edi
4662bc:	55                   	push   %ebp
4662bd:	8b ec                	mov    %esp,%ebp
4662bf:	56                   	push   %esi
4662c0:	8b 75 14             	mov    0x14(%ebp),%esi
4662c3:	85 f6                	test   %esi,%esi
4662c5:	75 04                	jne    0x4662cb
4662c7:	33 c0                	xor    %eax,%eax
4662c9:	eb 6d                	jmp    0x466338
4662cb:	8b 45 08             	mov    0x8(%ebp),%eax
4662ce:	85 c0                	test   %eax,%eax
4662d0:	75 13                	jne    0x4662e5
4662d2:	e8 58 6b fe ff       	call   0x44ce2f
4662d7:	6a 16                	push   $0x16
4662d9:	5e                   	pop    %esi
4662da:	89 30                	mov    %esi,(%eax)
4662dc:	e8 f5 69 fe ff       	call   0x44ccd6
4662e1:	8b c6                	mov    %esi,%eax
4662e3:	eb 53                	jmp    0x466338
4662e5:	57                   	push   %edi
4662e6:	8b 7d 10             	mov    0x10(%ebp),%edi
4662e9:	85 ff                	test   %edi,%edi
4662eb:	74 14                	je     0x466301
4662ed:	39 75 0c             	cmp    %esi,0xc(%ebp)
4662f0:	72 0f                	jb     0x466301
4662f2:	56                   	push   %esi
4662f3:	57                   	push   %edi
4662f4:	50                   	push   %eax
4662f5:	e8 66 d0 fd ff       	call   0x443360
4662fa:	83 c4 0c             	add    $0xc,%esp
4662fd:	33 c0                	xor    %eax,%eax
4662ff:	eb 36                	jmp    0x466337
466301:	ff 75 0c             	push   0xc(%ebp)
466304:	6a 00                	push   $0x0
466306:	50                   	push   %eax
466307:	e8 54 db fd ff       	call   0x443e60
46630c:	83 c4 0c             	add    $0xc,%esp
46630f:	85 ff                	test   %edi,%edi
466311:	75 09                	jne    0x46631c
466313:	e8 17 6b fe ff       	call   0x44ce2f
466318:	6a 16                	push   $0x16
46631a:	eb 0c                	jmp    0x466328
46631c:	39 75 0c             	cmp    %esi,0xc(%ebp)
46631f:	73 13                	jae    0x466334
466321:	e8 09 6b fe ff       	call   0x44ce2f
466326:	6a 22                	push   $0x22
466328:	5e                   	pop    %esi
466329:	89 30                	mov    %esi,(%eax)
46632b:	e8 a6 69 fe ff       	call   0x44ccd6
466330:	8b c6                	mov    %esi,%eax
466332:	eb 03                	jmp    0x466337
466334:	6a 16                	push   $0x16
466336:	58                   	pop    %eax
466337:	5f                   	pop    %edi
466338:	5e                   	pop    %esi
466339:	5d                   	pop    %ebp
46633a:	c3                   	ret
46633b:	8b ff                	mov    %edi,%edi
46633d:	55                   	push   %ebp
46633e:	8b ec                	mov    %esp,%ebp
466340:	53                   	push   %ebx
466341:	56                   	push   %esi
466342:	8b 75 08             	mov    0x8(%ebp),%esi
466345:	2b 75 10             	sub    0x10(%ebp),%esi
466348:	57                   	push   %edi
466349:	8b 7d 0c             	mov    0xc(%ebp),%edi
46634c:	1b 7d 14             	sbb    0x14(%ebp),%edi
46634f:	33 c9                	xor    %ecx,%ecx
466351:	33 c0                	xor    %eax,%eax
466353:	41                   	inc    %ecx
466354:	39 45 0c             	cmp    %eax,0xc(%ebp)
466357:	7f 0b                	jg     0x466364
466359:	7c 05                	jl     0x466360
46635b:	39 45 08             	cmp    %eax,0x8(%ebp)
46635e:	73 04                	jae    0x466364
466360:	8b d9                	mov    %ecx,%ebx
466362:	eb 02                	jmp    0x466366
466364:	8b d8                	mov    %eax,%ebx
466366:	39 45 14             	cmp    %eax,0x14(%ebp)
466369:	7f 0b                	jg     0x466376
46636b:	7c 05                	jl     0x466372
46636d:	39 45 10             	cmp    %eax,0x10(%ebp)
466370:	73 04                	jae    0x466376
466372:	8b d1                	mov    %ecx,%edx
466374:	eb 02                	jmp    0x466378
466376:	8b d0                	mov    %eax,%edx
466378:	3b da                	cmp    %edx,%ebx
46637a:	74 33                	je     0x4663af
46637c:	39 45 0c             	cmp    %eax,0xc(%ebp)
46637f:	7f 0b                	jg     0x46638c
466381:	7c 05                	jl     0x466388
466383:	39 45 08             	cmp    %eax,0x8(%ebp)
466386:	73 04                	jae    0x46638c
466388:	8b d1                	mov    %ecx,%edx
46638a:	eb 02                	jmp    0x46638e
46638c:	8b d0                	mov    %eax,%edx
46638e:	3b f8                	cmp    %eax,%edi
466390:	7f 06                	jg     0x466398
466392:	7c 06                	jl     0x46639a
466394:	3b f0                	cmp    %eax,%esi
466396:	72 02                	jb     0x46639a
466398:	8b c8                	mov    %eax,%ecx
46639a:	3b d1                	cmp    %ecx,%edx
46639c:	74 11                	je     0x4663af
46639e:	8b 45 18             	mov    0x18(%ebp),%eax
4663a1:	83 08 ff             	orl    $0xffffffff,(%eax)
4663a4:	83 48 04 ff          	orl    $0xffffffff,0x4(%eax)
4663a8:	b8 16 02 07 80       	mov    $0x80070216,%eax
4663ad:	eb 08                	jmp    0x4663b7
4663af:	8b 4d 18             	mov    0x18(%ebp),%ecx
4663b2:	89 31                	mov    %esi,(%ecx)
4663b4:	89 79 04             	mov    %edi,0x4(%ecx)
4663b7:	5f                   	pop    %edi
4663b8:	5e                   	pop    %esi
4663b9:	5b                   	pop    %ebx
4663ba:	5d                   	pop    %ebp
4663bb:	c3                   	ret
4663bc:	6a 0c                	push   $0xc
4663be:	68 98 4a 4b 00       	push   $0x4b4a98
4663c3:	e8 98 a5 fd ff       	call   0x440960
4663c8:	33 c0                	xor    %eax,%eax
4663ca:	39 45 08             	cmp    %eax,0x8(%ebp)