4021e5:	5e                   	pop    %esi
4021e6:	5d                   	pop    %ebp
4021e7:	c3                   	ret
4021e8:	8b ff                	mov    %edi,%edi
4021ea:	55                   	push   %ebp
4021eb:	8b ec                	mov    %esp,%ebp
4021ed:	81 ec 0c 02 00 00    	sub    $0x20c,%esp
4021f3:	a1 04 30 40 00       	mov    0x403004,%eax
4021f8:	33 c5                	xor    %ebp,%eax
4021fa:	89 45 fc             	mov    %eax,-0x4(%ebp)
4021fd:	8b 45 08             	mov    0x8(%ebp),%eax
402200:	56                   	push   %esi
402201:	8b f1                	mov    %ecx,%esi
402203:	83 e8 00             	sub    $0x0,%eax
402206:	74 37                	je     0x40223f
402208:	83 e8 01             	sub    $0x1,%eax
40220b:	74 2b                	je     0x402238
40220d:	83 e8 01             	sub    $0x1,%eax
402210:	74 1f                	je     0x402231
402212:	83 e8 01             	sub    $0x1,%eax
402215:	74 13                	je     0x40222a
402217:	83 e8 01             	sub    $0x1,%eax
40221a:	74 07                	je     0x402223
40221c:	b8 57 00 07 80       	mov    $0x80070057,%eax
402221:	eb 50                	jmp    0x402273
402223:	b8 50 13 40 00       	mov    $0x401350,%eax
402228:	eb 1a                	jmp    0x402244
40222a:	b8 20 13 40 00       	mov    $0x401320,%eax
40222f:	eb 13                	jmp    0x402244
402231:	b8 e0 12 40 00       	mov    $0x4012e0,%eax
402236:	eb 0c                	jmp    0x402244
402238:	b8 a8 12 40 00       	mov    $0x4012a8,%eax
40223d:	eb 05                	jmp    0x402244
40223f:	b8 70 12 40 00       	mov    $0x401270,%eax
402244:	57                   	push   %edi
402245:	50                   	push   %eax
402246:	bf 04 01 00 00       	mov    $0x104,%edi
40224b:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
402251:	57                   	push   %edi
402252:	50                   	push   %eax
402253:	ff 15 cc 40 40 00    	call   *0x4040cc
402259:	ff 75 0c             	push   0xc(%ebp)
40225c:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
402262:	50                   	push   %eax
402263:	68 88 13 40 00       	push   $0x401388
402268:	57                   	push   %edi
402269:	56                   	push   %esi
40226a:	e8 12 ff ff ff       	call   0x402181
40226f:	83 c4 14             	add    $0x14,%esp
402272:	5f                   	pop    %edi
402273:	8b 4d fc             	mov    -0x4(%ebp),%ecx
402276:	33 cd                	xor    %ebp,%ecx
402278:	5e                   	pop    %esi
402279:	e8 32 06 00 00       	call   0x4028b0
40227e:	c9                   	leave
40227f:	c2 08 00             	ret    $0x8
402282:	8b ff                	mov    %edi,%edi
402284:	55                   	push   %ebp
402285:	8b ec                	mov    %esp,%ebp
402287:	81 ec 0c 02 00 00    	sub    $0x20c,%esp
40228d:	a1 04 30 40 00       	mov    0x403004,%eax
402292:	33 c5                	xor    %ebp,%eax
402294:	89 45 fc             	mov    %eax,-0x4(%ebp)
402297:	56                   	push   %esi
402298:	57                   	push   %edi
402299:	8b 7d 0c             	mov    0xc(%ebp),%edi
40229c:	8d 8d f4 fd ff ff    	lea    -0x20c(%ebp),%ecx
4022a2:	52                   	push   %edx
4022a3:	ff 75 08             	push   0x8(%ebp)
4022a6:	e8 3d ff ff ff       	call   0x4021e8
4022ab:	8b f0                	mov    %eax,%esi
4022ad:	85 f6                	test   %esi,%esi
4022af:	78 2f                	js     0x4022e0
4022b1:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
4022b7:	50                   	push   %eax
4022b8:	6a 00                	push   $0x0
4022ba:	68 02 00 10 00       	push   $0x100002
4022bf:	ff 15 4c 40 40 00    	call   *0x40404c
4022c5:	89 07                	mov    %eax,(%edi)
4022c7:	85 c0                	test   %eax,%eax
4022c9:	75 15                	jne    0x4022e0
4022cb:	ff 15 3c 40 40 00    	call   *0x40403c
4022d1:	8b f0                	mov    %eax,%esi
4022d3:	85 f6                	test   %esi,%esi
4022d5:	7e 09                	jle    0x4022e0
4022d7:	0f b7 f6             	movzwl %si,%esi
4022da:	81 ce 00 00 07 80    	or     $0x80070000,%esi
4022e0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4022e3:	8b c6                	mov    %esi,%eax
4022e5:	5f                   	pop    %edi
4022e6:	33 cd                	xor    %ebp,%ecx
4022e8:	5e                   	pop    %esi
4022e9:	e8 c2 05 00 00       	call   0x4028b0
4022ee:	c9                   	leave
4022ef:	c2 08 00             	ret    $0x8
4022f2:	8b ff                	mov    %edi,%edi
4022f4:	55                   	push   %ebp
4022f5:	8b ec                	mov    %esp,%ebp
4022f7:	81 ec 1c 02 00 00    	sub    $0x21c,%esp
4022fd:	a1 04 30 40 00       	mov    0x403004,%eax
402302:	33 c5                	xor    %ebp,%eax
402304:	89 45 fc             	mov    %eax,-0x4(%ebp)
402307:	8b 55 10             	mov    0x10(%ebp),%edx
40230a:	8b 4d 08             	mov    0x8(%ebp),%ecx
40230d:	8b 45 0c             	mov    0xc(%ebp),%eax
402310:	53                   	push   %ebx
402311:	8b 5d 18             	mov    0x18(%ebp),%ebx
402314:	56                   	push   %esi
402315:	89 95 ec fd ff ff    	mov    %edx,-0x214(%ebp)
40231b:	33 f6                	xor    %esi,%esi
40231d:	8b 55 1c             	mov    0x1c(%ebp),%edx
402320:	89 8d e4 fd ff ff    	mov    %ecx,-0x21c(%ebp)
402326:	89 85 f0 fd ff ff    	mov    %eax,-0x210(%ebp)
40232c:	89 95 e8 fd ff ff    	mov    %edx,-0x218(%ebp)
402332:	57                   	push   %edi
402333:	8b 3d 6c 33 40 00    	mov    0x40336c,%edi
402339:	85 c9                	test   %ecx,%ecx
40233b:	74 19                	je     0x402356
40233d:	51                   	push   %ecx
40233e:	56                   	push   %esi
40233f:	8b d7                	mov    %edi,%edx
402341:	e8 3c ff ff ff       	call   0x402282
402346:	8b f0                	mov    %eax,%esi
402348:	85 f6                	test   %esi,%esi
40234a:	0f 88 c1 00 00 00    	js     0x402411
402350:	8b 85 f0 fd ff ff    	mov    -0x210(%ebp),%eax
402356:	85 c0                	test   %eax,%eax
402358:	74 0c                	je     0x402366
40235a:	50                   	push   %eax
40235b:	6a 01                	push   $0x1
40235d:	8b d7                	mov    %edi,%edx
40235f:	e8 1e ff ff ff       	call   0x402282
402364:	8b f0                	mov    %eax,%esi
402366:	85 f6                	test   %esi,%esi
402368:	0f 88 a3 00 00 00    	js     0x402411
40236e:	8b 85 ec fd ff ff    	mov    -0x214(%ebp),%eax
402374:	85 c0                	test   %eax,%eax
402376:	74 0c                	je     0x402384
402378:	50                   	push   %eax
402379:	6a 02                	push   $0x2
40237b:	8b d7                	mov    %edi,%edx
40237d:	e8 00 ff ff ff       	call   0x402282
402382:	8b f0                	mov    %eax,%esi
402384:	85 f6                	test   %esi,%esi
402386:	0f 88 85 00 00 00    	js     0x402411
40238c:	85 db                	test   %ebx,%ebx
40238e:	74 7d                	je     0x40240d
402390:	57                   	push   %edi
402391:	6a 04                	push   $0x4
402393:	8d 8d f4 fd ff ff    	lea    -0x20c(%ebp),%ecx
402399:	e8 4a fe ff ff       	call   0x4021e8
40239e:	8b f0                	mov    %eax,%esi
4023a0:	85 f6                	test   %esi,%esi
4023a2:	78 6d                	js     0x402411
4023a4:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
4023aa:	50                   	push   %eax
4023ab:	6a 00                	push   $0x0
4023ad:	6a 06                	push   $0x6
4023af:	ff 15 40 40 40 00    	call   *0x404040
4023b5:	89 03                	mov    %eax,(%ebx)
4023b7:	85 c0                	test   %eax,%eax
4023b9:	75 15                	jne    0x4023d0
4023bb:	ff 15 3c 40 40 00    	call   *0x40403c
4023c1:	8b f0                	mov    %eax,%esi
4023c3:	85 f6                	test   %esi,%esi
4023c5:	7e 0b                	jle    0x4023d2
4023c7:	0f b7 f6             	movzwl %si,%esi
4023ca:	81 ce 00 00 07 80    	or     $0x80070000,%esi
4023d0:	85 f6                	test   %esi,%esi
4023d2:	78 3d                	js     0x402411
4023d4:	83 3b 00             	cmpl   $0x0,(%ebx)
4023d7:	74 34                	je     0x40240d
4023d9:	8b bd e8 fd ff ff    	mov    -0x218(%ebp),%edi
4023df:	85 ff                	test   %edi,%edi
4023e1:	74 2a                	je     0x40240d
4023e3:	33 c0                	xor    %eax,%eax
4023e5:	50                   	push   %eax
4023e6:	50                   	push   %eax
4023e7:	50                   	push   %eax
4023e8:	6a 02                	push   $0x2
4023ea:	ff 33                	push   (%ebx)
4023ec:	ff 15 38 40 40 00    	call   *0x404038
4023f2:	89 07                	mov    %eax,(%edi)
4023f4:	85 c0                	test   %eax,%eax
4023f6:	75 15                	jne    0x40240d
4023f8:	ff 15 3c 40 40 00    	call   *0x40403c
4023fe:	8b f0                	mov    %eax,%esi
402400:	85 f6                	test   %esi,%esi
402402:	7e 0b                	jle    0x40240f
402404:	0f b7 f6             	movzwl %si,%esi
402407:	81 ce 00 00 07 80    	or     $0x80070000,%esi
40240d:	85 f6                	test   %esi,%esi
40240f:	79 6c                	jns    0x40247d
402411:	8b 85 e4 fd ff ff    	mov    -0x21c(%ebp),%eax
402417:	85 c0                	test   %eax,%eax
402419:	74 0d                	je     0x402428
40241b:	83 38 00             	cmpl   $0x0,(%eax)
40241e:	74 08                	je     0x402428
402420:	ff 30                	push   (%eax)
402422:	ff 15 28 40 40 00    	call   *0x404028
402428:	8b 85 f0 fd ff ff    	mov    -0x210(%ebp),%eax
40242e:	85 c0                	test   %eax,%eax
402430:	74 0d                	je     0x40243f
402432:	83 38 00             	cmpl   $0x0,(%eax)
402435:	74 08                	je     0x40243f
402437:	ff 30                	push   (%eax)
402439:	ff 15 28 40 40 00    	call   *0x404028
40243f:	8b 85 ec fd ff ff    	mov    -0x214(%ebp),%eax
402445:	85 c0                	test   %eax,%eax
402447:	74 0d                	je     0x402456
402449:	83 38 00             	cmpl   $0x0,(%eax)
40244c:	74 08                	je     0x402456
40244e:	ff 30                	push   (%eax)
402450:	ff 15 28 40 40 00    	call   *0x404028
402456:	8b 85 e8 fd ff ff    	mov    -0x218(%ebp),%eax
40245c:	85 c0                	test   %eax,%eax
40245e:	74 0c                	je     0x40246c
402460:	83 38 00             	cmpl   $0x0,(%eax)
402463:	74 07                	je     0x40246c
402465:	ff 30                	push   (%eax)
402467:	e8 0d 01 00 00       	call   0x402579
40246c:	85 db                	test   %ebx,%ebx
40246e:	74 0d                	je     0x40247d
402470:	83 3b 00             	cmpl   $0x0,(%ebx)
402473:	74 08                	je     0x40247d
402475:	ff 33                	push   (%ebx)
402477:	ff 15 28 40 40 00    	call   *0x404028
40247d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
402480:	8b c6                	mov    %esi,%eax
402482:	5f                   	pop    %edi
402483:	5e                   	pop    %esi
402484:	33 cd                	xor    %ebp,%ecx
402486:	5b                   	pop    %ebx
402487:	e8 24 04 00 00       	call   0x4028b0
40248c:	c9                   	leave
40248d:	c2 18 00             	ret    $0x18
402490:	e9 d5 00 00 00       	jmp    0x40256a
402495:	8b ff                	mov    %edi,%edi
402497:	56                   	push   %esi
402498:	57                   	push   %edi
402499:	8b 3d 88 33 40 00    	mov    0x403388,%edi
40249f:	85 ff                	test   %edi,%edi
4024a1:	74 18                	je     0x4024bb
4024a3:	8b f4                	mov    %esp,%esi
4024a5:	51                   	push   %ecx
4024a6:	8b cf                	mov    %edi,%ecx
4024a8:	ff 15 48 41 40 00    	call   *0x404148
4024ae:	ff d7                	call   *%edi
4024b0:	3b f4                	cmp    %esp,%esi
4024b2:	74 07                	je     0x4024bb
4024b4:	b9 04 00 00 00       	mov    $0x4,%ecx
4024b9:	cd 29                	int    $0x29
4024bb:	33 c0                	xor    %eax,%eax
4024bd:	5f                   	pop    %edi
4024be:	40                   	inc    %eax
4024bf:	5e                   	pop    %esi
4024c0:	c3                   	ret
4024c1:	6a 60                	push   $0x60
4024c3:	68 c8 2d 40 00       	push   $0x402dc8
4024c8:	e8 1b 07 00 00       	call   0x402be8
4024cd:	8b f2                	mov    %edx,%esi
4024cf:	8b d9                	mov    %ecx,%ebx
4024d1:	89 5d 90             	mov    %ebx,-0x70(%ebp)
4024d4:	89 75 94             	mov    %esi,-0x6c(%ebp)
4024d7:	33 ff                	xor    %edi,%edi
4024d9:	57                   	push   %edi
4024da:	ff 15 80 40 40 00    	call   *0x404080
4024e0:	a3 88 33 40 00       	mov    %eax,0x403388
4024e5:	85 f6                	test   %esi,%esi
4024e7:	75 06                	jne    0x4024ef
4024e9:	8b 45 04             	mov    0x4(%ebp),%eax
4024ec:	89 45 94             	mov    %eax,-0x6c(%ebp)
4024ef:	89 7d fc             	mov    %edi,-0x4(%ebp)
4024f2:	57                   	push   %edi
4024f3:	53                   	push   %ebx
4024f4:	6a 01                	push   $0x1
4024f6:	68 03 00 00 80       	push   $0x80000003
4024fb:	ff 15 30 40 40 00    	call   *0x404030
402501:	eb 4e                	jmp    0x402551
402503:	8b 4d ec             	mov    -0x14(%ebp),%ecx
402506:	e8 8a ff ff ff       	call   0x402495
40250b:	c3                   	ret
40250c:	8b 65 e8             	mov    -0x18(%ebp),%esp
40250f:	6a 50                	push   $0x50
402511:	33 ff                	xor    %edi,%edi
402513:	57                   	push   %edi
402514:	8d 45 98             	lea    -0x68(%ebp),%eax
402517:	50                   	push   %eax
402518:	e8 a4 08 00 00       	call   0x402dc1
40251d:	83 c4 0c             	add    $0xc,%esp
402520:	8b 45 90             	mov    -0x70(%ebp),%eax
402523:	48                   	dec    %eax
402524:	f7 d8                	neg    %eax
402526:	1b c0                	sbb    %eax,%eax
402528:	25 55 04 00 00       	and    $0x455,%eax
40252d:	05 ad 01 00 c0       	add    $0xc00001ad,%eax
402532:	89 45 98             	mov    %eax,-0x68(%ebp)
402535:	8b 45 94             	mov    -0x6c(%ebp),%eax
402538:	89 45 a4             	mov    %eax,-0x5c(%ebp)
40253b:	c7 45 9c 01 00 00 00 	movl   $0x1,-0x64(%ebp)
402542:	89 7d a8             	mov    %edi,-0x58(%ebp)
402545:	57                   	push   %edi
402546:	57                   	push   %edi
402547:	8d 45 98             	lea    -0x68(%ebp),%eax
40254a:	50                   	push   %eax
40254b:	ff 15 34 40 40 00    	call   *0x404034
402551:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
402558:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40255b:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402562:	59                   	pop    %ecx
402563:	5f                   	pop    %edi
402564:	5e                   	pop    %esi
402565:	5b                   	pop    %ebx
402566:	c9                   	leave
402567:	c2 08 00             	ret    $0x8
40256a:	8b ff                	mov    %edi,%edi
40256c:	51                   	push   %ecx
40256d:	51                   	push   %ecx
40256e:	33 c9                	xor    %ecx,%ecx
402570:	33 d2                	xor    %edx,%edx
402572:	41                   	inc    %ecx
402573:	e8 49 ff ff ff       	call   0x4024c1
402578:	cc                   	int3
402579:	ff 25 8c 40 40 00    	jmp    *0x40408c
40257f:	cc                   	int3
402580:	e8 aa 02 00 00       	call   0x40282f
402585:	6a 02                	push   $0x2
402587:	a3 30 30 40 00       	mov    %eax,0x403030
40258c:	e8 07 04 00 00       	call   0x402998
402591:	50                   	push   %eax
402592:	ff 15 00 41 40 00    	call   *0x404100
402598:	83 0d a4 33 40 00 ff 	orl    $0xffffffff,0x4033a4
40259f:	83 0d a8 33 40 00 ff 	orl    $0xffffffff,0x4033a8
4025a6:	59                   	pop    %ecx
4025a7:	59                   	pop    %ecx
4025a8:	ff 15 f0 40 40 00    	call   *0x4040f0
4025ae:	8b 0d 44 30 40 00    	mov    0x403044,%ecx
4025b4:	89 08                	mov    %ecx,(%eax)
4025b6:	ff 15 0c 41 40 00    	call   *0x40410c
4025bc:	8b 0d 38 30 40 00    	mov    0x403038,%ecx
4025c2:	89 08                	mov    %ecx,(%eax)
4025c4:	e8 17 04 00 00       	call   0x4029e0
4025c9:	83 3d 00 30 40 00 00 	cmpl   $0x0,0x403000
4025d0:	75 0c                	jne    0x4025de
4025d2:	68 e0 29 40 00       	push   $0x4029e0
4025d7:	ff 15 ec 40 40 00    	call   *0x4040ec
4025dd:	59                   	pop    %ecx
4025de:	e8 ea 05 00 00       	call   0x402bcd
4025e3:	33 c0                	xor    %eax,%eax
4025e5:	c3                   	ret