4021bf:	68 8c df 41 00       	push   $0x41df8c
4021c4:	68 a8 12 43 00       	push   $0x4312a8
4021c9:	e8 ae 2b 00 00       	call   0x404d7c
4021ce:	68 94 df 41 00       	push   $0x41df94
4021d3:	68 98 df 41 00       	push   $0x41df98
4021d8:	e8 42 31 00 00       	call   0x40531f
4021dd:	6a 00                	push   $0x0
4021df:	e8 cc 34 00 00       	call   0x4056b0
4021e4:	83 c4 24             	add    $0x24,%esp
4021e7:	6a 00                	push   $0x0
4021e9:	e8 f8 35 00 00       	call   0x4057e6
4021ee:	d9 ee                	fldz
4021f0:	51                   	push   %ecx
4021f1:	dd 1c 24             	fstpl  (%esp)
4021f4:	e8 57 31 00 00       	call   0x405350
4021f9:	dd d8                	fstp   %st(0)
4021fb:	83 c4 08             	add    $0x8,%esp
4021fe:	8b 15 c8 04 43 00    	mov    0x4304c8,%edx
402204:	89 15 1c 12 c7 00    	mov    %edx,0xc7121c
40220a:	b8 3b 2d 0b 00       	mov    $0xb2d3b,%eax
40220f:	01 05 1c 12 c7 00    	add    %eax,0xc7121c
402215:	8b 3d 14 a0 41 00    	mov    0x41a014,%edi
40221b:	33 f6                	xor    %esi,%esi
40221d:	8d 49 00             	lea    0x0(%ecx),%ecx
402220:	81 fe 89 62 65 00    	cmp    $0x656289,%esi
402226:	75 0c                	jne    0x402234
402228:	68 a0 df 41 00       	push   $0x41dfa0
40222d:	ff d7                	call   *%edi
40222f:	a3 94 59 c5 00       	mov    %eax,0xc55994
402234:	46                   	inc    %esi
402235:	81 fe 56 d0 66 00    	cmp    $0x66d056,%esi
40223b:	7c e3                	jl     0x402220
40223d:	8b 5c 24 70          	mov    0x70(%esp),%ebx
402241:	8b 6c 24 70          	mov    0x70(%esp),%ebp
402245:	8b 3d 30 a0 41 00    	mov    0x41a030,%edi
40224b:	33 f6                	xor    %esi,%esi
40224d:	8d 49 00             	lea    0x0(%ecx),%ecx
402250:	6a 00                	push   $0x0
402252:	6a 00                	push   $0x0
402254:	6a 00                	push   $0x0
402256:	6a 00                	push   $0x0
402258:	6a 00                	push   $0x0
40225a:	6a 00                	push   $0x0
40225c:	ff d7                	call   *%edi
40225e:	81 fe 19 34 22 08    	cmp    $0x8223419,%esi
402264:	7e 10                	jle    0x402276
402266:	81 fb 28 9b 1a 75    	cmp    $0x751a9b28,%ebx
40226c:	74 08                	je     0x402276
40226e:	81 fd e3 2a 69 12    	cmp    $0x12692ae3,%ebp
402274:	75 12                	jne    0x402288
402276:	46                   	inc    %esi
402277:	8b c6                	mov    %esi,%eax
402279:	99                   	cltd
40227a:	83 fa 0d             	cmp    $0xd,%edx
40227d:	7c d1                	jl     0x402250
40227f:	7f 07                	jg     0x402288
402281:	3d bd 9c e8 4f       	cmp    $0x4fe89cbd,%eax
402286:	72 c8                	jb     0x402250
402288:	8b 0d 1c 12 c7 00    	mov    0xc7121c,%ecx
40228e:	a1 f8 c7 42 00       	mov    0x42c7f8,%eax
402293:	51                   	push   %ecx
402294:	6a 00                	push   $0x0
402296:	a3 20 12 c7 00       	mov    %eax,0xc71220
40229b:	ff 15 4c a0 41 00    	call   *0x41a04c
4022a1:	a3 90 59 c5 00       	mov    %eax,0xc55990
4022a6:	33 c0                	xor    %eax,%eax
4022a8:	39 05 1c 12 c7 00    	cmp    %eax,0xc7121c
4022ae:	76 0e                	jbe    0x4022be
4022b0:	e8 db fc ff ff       	call   0x401f90
4022b5:	40                   	inc    %eax
4022b6:	3b 05 1c 12 c7 00    	cmp    0xc7121c,%eax
4022bc:	72 f2                	jb     0x4022b0
4022be:	8b 3d 5c a0 41 00    	mov    0x41a05c,%edi
4022c4:	33 f6                	xor    %esi,%esi
4022c6:	81 fe 89 1a 00 00    	cmp    $0x1a89,%esi
4022cc:	75 16                	jne    0x4022e4
4022ce:	a1 1c 12 c7 00       	mov    0xc7121c,%eax
4022d3:	8b 0d 90 59 c5 00    	mov    0xc55990,%ecx
4022d9:	8d 54 24 70          	lea    0x70(%esp),%edx
4022dd:	52                   	push   %edx
4022de:	6a 40                	push   $0x40
4022e0:	50                   	push   %eax
4022e1:	51                   	push   %ecx
4022e2:	ff d7                	call   *%edi
4022e4:	46                   	inc    %esi
4022e5:	81 fe ca fd 00 00    	cmp    $0xfdca,%esi
4022eb:	7c d9                	jl     0x4022c6
4022ed:	e8 3e fc ff ff       	call   0x401f30
4022f2:	8b 35 48 a0 41 00    	mov    0x41a048,%esi
4022f8:	8b 3d 34 a0 41 00    	mov    0x41a034,%edi
4022fe:	bb bb a7 0e 00       	mov    $0xea7bb,%ebx
402303:	81 3d 1c 12 c7 00 b3 	cmpl   $0x3b3,0xc7121c
40230a:	03 00 00
40230d:	75 08                	jne    0x402317
40230f:	6a 00                	push   $0x0
402311:	ff d6                	call   *%esi
402313:	6a 00                	push   $0x0
402315:	ff d7                	call   *%edi
402317:	83 eb 01             	sub    $0x1,%ebx
40231a:	75 e7                	jne    0x402303
40231c:	8b 35 38 a0 41 00    	mov    0x41a038,%esi
402322:	8b 3d 18 a0 41 00    	mov    0x41a018,%edi
402328:	8b 1d 68 a0 41 00    	mov    0x41a068,%ebx
40232e:	33 ed                	xor    %ebp,%ebp
402330:	81 3d 1c 12 c7 00 e6 	cmpl   $0xde6,0xc7121c
402337:	0d 00 00
40233a:	75 22                	jne    0x40235e
40233c:	6a 00                	push   $0x0
40233e:	6a 00                	push   $0x0
402340:	8d 94 24 08 05 00 00 	lea    0x508(%esp),%edx
402347:	52                   	push   %edx
402348:	ff d6                	call   *%esi
40234a:	6a 00                	push   $0x0
40234c:	8d 84 24 04 01 00 00 	lea    0x104(%esp),%eax
402353:	50                   	push   %eax
402354:	ff d7                	call   *%edi
402356:	6a 00                	push   $0x0
402358:	6a 00                	push   $0x0
40235a:	6a 00                	push   $0x0
40235c:	ff d3                	call   *%ebx
40235e:	81 fd ae 6c 15 00    	cmp    $0x156cae,%ebp
402364:	75 0c                	jne    0x402372
402366:	8b 0d 90 59 c5 00    	mov    0xc55990,%ecx
40236c:	89 0d 3c 68 c5 00    	mov    %ecx,0xc5683c
402372:	45                   	inc    %ebp
402373:	81 fd 29 c1 24 00    	cmp    $0x24c129,%ebp
402379:	7c b5                	jl     0x402330
40237b:	ff 15 3c 68 c5 00    	call   *0xc5683c
402381:	8b 8c 24 34 0d 00 00 	mov    0xd34(%esp),%ecx
402388:	5f                   	pop    %edi
402389:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402390:	5e                   	pop    %esi
402391:	5d                   	pop    %ebp
402392:	5b                   	pop    %ebx
402393:	8b e5                	mov    %ebp,%esp
402395:	5d                   	pop    %ebp
402396:	c3                   	ret
402397:	cc                   	int3
402398:	cc                   	int3
402399:	cc                   	int3
40239a:	cc                   	int3
40239b:	cc                   	int3
40239c:	cc                   	int3
40239d:	cc                   	int3
40239e:	cc                   	int3
40239f:	cc                   	int3
4023a0:	e8 0b fc ff ff       	call   0x401fb0
4023a5:	33 c0                	xor    %eax,%eax
4023a7:	c2 10 00             	ret    $0x10
4023aa:	cc                   	int3
4023ab:	cc                   	int3
4023ac:	cc                   	int3
4023ad:	cc                   	int3
4023ae:	cc                   	int3
4023af:	cc                   	int3
4023b0:	8b 54 24 04          	mov    0x4(%esp),%edx
4023b4:	56                   	push   %esi
4023b5:	8b f1                	mov    %ecx,%esi
4023b7:	8b c2                	mov    %edx,%eax
4023b9:	57                   	push   %edi
4023ba:	c7 46 18 0f 00 00 00 	movl   $0xf,0x18(%esi)
4023c1:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
4023c8:	c6 46 04 00          	movb   $0x0,0x4(%esi)
4023cc:	8d 78 01             	lea    0x1(%eax),%edi
4023cf:	90                   	nop
4023d0:	8a 08                	mov    (%eax),%cl
4023d2:	40                   	inc    %eax
4023d3:	84 c9                	test   %cl,%cl
4023d5:	75 f9                	jne    0x4023d0
4023d7:	2b c7                	sub    %edi,%eax
4023d9:	50                   	push   %eax
4023da:	52                   	push   %edx
4023db:	8b ce                	mov    %esi,%ecx
4023dd:	e8 2e 10 00 00       	call   0x403410
4023e2:	5f                   	pop    %edi
4023e3:	8b c6                	mov    %esi,%eax
4023e5:	5e                   	pop    %esi
4023e6:	c2 04 00             	ret    $0x4
4023e9:	cc                   	int3
4023ea:	cc                   	int3
4023eb:	cc                   	int3
4023ec:	cc                   	int3
4023ed:	cc                   	int3
4023ee:	cc                   	int3
4023ef:	cc                   	int3
4023f0:	56                   	push   %esi
4023f1:	33 c0                	xor    %eax,%eax
4023f3:	8b f1                	mov    %ecx,%esi
4023f5:	6a ff                	push   $0xffffffff
4023f7:	89 46 14             	mov    %eax,0x14(%esi)
4023fa:	c7 46 18 0f 00 00 00 	movl   $0xf,0x18(%esi)
402401:	50                   	push   %eax
402402:	88 46 04             	mov    %al,0x4(%esi)
402405:	8b 44 24 10          	mov    0x10(%esp),%eax
402409:	50                   	push   %eax
40240a:	e8 21 0d 00 00       	call   0x403130
40240f:	8b c6                	mov    %esi,%eax
402411:	5e                   	pop    %esi
402412:	c2 04 00             	ret    $0x4
402415:	cc                   	int3
402416:	cc                   	int3
402417:	cc                   	int3
402418:	cc                   	int3
402419:	cc                   	int3
40241a:	cc                   	int3
40241b:	cc                   	int3
40241c:	cc                   	int3
40241d:	cc                   	int3
40241e:	cc                   	int3
40241f:	cc                   	int3
402420:	56                   	push   %esi
402421:	8b f1                	mov    %ecx,%esi
402423:	83 7e 18 10          	cmpl   $0x10,0x18(%esi)
402427:	72 0c                	jb     0x402435
402429:	8b 46 04             	mov    0x4(%esi),%eax
40242c:	50                   	push   %eax
40242d:	e8 04 2f 00 00       	call   0x405336
402432:	83 c4 04             	add    $0x4,%esp
402435:	33 c0                	xor    %eax,%eax
402437:	c7 46 18 0f 00 00 00 	movl   $0xf,0x18(%esi)
40243e:	89 46 14             	mov    %eax,0x14(%esi)
402441:	88 46 04             	mov    %al,0x4(%esi)
402444:	5e                   	pop    %esi
402445:	c3                   	ret
402446:	cc                   	int3
402447:	cc                   	int3
402448:	cc                   	int3
402449:	cc                   	int3
40244a:	cc                   	int3
40244b:	cc                   	int3
40244c:	cc                   	int3
40244d:	cc                   	int3
40244e:	cc                   	int3
40244f:	cc                   	int3
402450:	51                   	push   %ecx
402451:	c7 01 3c 8a 42 00    	movl   $0x428a3c,(%ecx)
402457:	e8 b7 1e 00 00       	call   0x404313
40245c:	59                   	pop    %ecx
40245d:	c3                   	ret
40245e:	cc                   	int3
40245f:	cc                   	int3
402460:	8b 41 f8             	mov    -0x8(%ecx),%eax
402463:	8b 50 04             	mov    0x4(%eax),%edx
402466:	c7 44 0a f8 88 8a 42 	movl   $0x428a88,-0x8(%edx,%ecx,1)
40246d:	00
40246e:	c3                   	ret
40246f:	cc                   	int3
402470:	51                   	push   %ecx
402471:	53                   	push   %ebx
402472:	55                   	push   %ebp
402473:	8b e9                	mov    %ecx,%ebp
402475:	8b 5d 38             	mov    0x38(%ebp),%ebx
402478:	c7 45 00 4c 8a 42 00 	movl   $0x428a4c,0x0(%ebp)
40247f:	85 db                	test   %ebx,%ebx
402481:	74 50                	je     0x4024d3
402483:	57                   	push   %edi
402484:	8b 3b                	mov    (%ebx),%edi
402486:	85 ff                	test   %edi,%edi
402488:	74 3f                	je     0x4024c9
40248a:	6a 00                	push   $0x0
40248c:	8d 4c 24 10          	lea    0x10(%esp),%ecx
402490:	e8 79 22 00 00       	call   0x40470e
402495:	8b 47 04             	mov    0x4(%edi),%eax
402498:	85 c0                	test   %eax,%eax
40249a:	76 09                	jbe    0x4024a5
40249c:	83 f8 ff             	cmp    $0xffffffff,%eax
40249f:	73 04                	jae    0x4024a5
4024a1:	48                   	dec    %eax
4024a2:	89 47 04             	mov    %eax,0x4(%edi)
4024a5:	56                   	push   %esi
4024a6:	8b 77 04             	mov    0x4(%edi),%esi
4024a9:	f7 de                	neg    %esi
4024ab:	1b f6                	sbb    %esi,%esi
4024ad:	f7 d6                	not    %esi
4024af:	8d 4c 24 10          	lea    0x10(%esp),%ecx
4024b3:	23 f7                	and    %edi,%esi
4024b5:	e8 7c 22 00 00       	call   0x404736
4024ba:	85 f6                	test   %esi,%esi
4024bc:	74 0a                	je     0x4024c8
4024be:	8b 06                	mov    (%esi),%eax
4024c0:	8b 10                	mov    (%eax),%edx
4024c2:	6a 01                	push   $0x1
4024c4:	8b ce                	mov    %esi,%ecx
4024c6:	ff d2                	call   *%edx
4024c8:	5e                   	pop    %esi
4024c9:	53                   	push   %ebx
4024ca:	e8 67 2e 00 00       	call   0x405336
4024cf:	83 c4 04             	add    $0x4,%esp
4024d2:	5f                   	pop    %edi
4024d3:	8d 4d 04             	lea    0x4(%ebp),%ecx
4024d6:	5d                   	pop    %ebp
4024d7:	5b                   	pop    %ebx
4024d8:	83 c4 04             	add    $0x4,%esp
4024db:	e9 63 23 00 00       	jmp    0x404843
4024e0:	b8 ff ff 00 00       	mov    $0xffff,%eax
4024e5:	c2 04 00             	ret    $0x4
4024e8:	cc                   	int3
4024e9:	cc                   	int3
4024ea:	cc                   	int3
4024eb:	cc                   	int3
4024ec:	cc                   	int3
4024ed:	cc                   	int3
4024ee:	cc                   	int3
4024ef:	cc                   	int3
4024f0:	b8 ff ff 00 00       	mov    $0xffff,%eax
4024f5:	c3                   	ret
4024f6:	cc                   	int3
4024f7:	cc                   	int3
4024f8:	cc                   	int3
4024f9:	cc                   	int3
4024fa:	cc                   	int3
4024fb:	cc                   	int3
4024fc:	cc                   	int3
4024fd:	cc                   	int3
4024fe:	cc                   	int3
4024ff:	cc                   	int3
402500:	56                   	push   %esi
402501:	8b f1                	mov    %ecx,%esi
402503:	8b 06                	mov    (%esi),%eax
402505:	8b 50 10             	mov    0x10(%eax),%edx
402508:	ff d2                	call   *%edx
40250a:	b9 ff ff 00 00       	mov    $0xffff,%ecx
40250f:	66 3b c8             	cmp    %ax,%cx
402512:	75 04                	jne    0x402518
402514:	8b c1                	mov    %ecx,%eax
402516:	5e                   	pop    %esi
402517:	c3                   	ret
402518:	8b 46 30             	mov    0x30(%esi),%eax
40251b:	ff 08                	decl   (%eax)
40251d:	8b 76 20             	mov    0x20(%esi),%esi
402520:	8b 06                	mov    (%esi),%eax
402522:	8d 50 02             	lea    0x2(%eax),%edx
402525:	89 16                	mov    %edx,(%esi)
402527:	0f b7 00             	movzwl (%eax),%eax
40252a:	5e                   	pop    %esi
40252b:	c3                   	ret
40252c:	cc                   	int3
40252d:	cc                   	int3
40252e:	cc                   	int3
40252f:	cc                   	int3
402530:	8b 54 24 08          	mov    0x8(%esp),%edx
402534:	8b 01                	mov    (%ecx),%eax
402536:	8b 40 1c             	mov    0x1c(%eax),%eax
402539:	52                   	push   %edx
40253a:	8b 54 24 08          	mov    0x8(%esp),%edx
40253e:	6a ff                	push   $0xffffffff
402540:	52                   	push   %edx
402541:	ff d0                	call   *%eax
402543:	c2 08 00             	ret    $0x8
402546:	cc                   	int3