4022f6:	8b 70 04             	mov    0x4(%eax),%esi
4022f9:	03 f3                	add    %ebx,%esi
4022fb:	8b ce                	mov    %esi,%ecx
4022fd:	e8 94 23 00 00       	call   0x404696
402302:	0f b7 c0             	movzwl %ax,%eax
402305:	8b ce                	mov    %esi,%ecx
402307:	50                   	push   %eax
402308:	e8 1d 29 00 00       	call   0x404c2a
40230d:	8b c8                	mov    %eax,%ecx
40230f:	e8 a3 2d 00 00       	call   0x4050b7
402314:	0f b7 c0             	movzwl %ax,%eax
402317:	89 45 d0             	mov    %eax,-0x30(%ebp)
40231a:	e8 63 22 00 00       	call   0x404582
40231f:	0f b7 c0             	movzwl %ax,%eax
402322:	89 45 d8             	mov    %eax,-0x28(%ebp)
402325:	8d 45 d0             	lea    -0x30(%ebp),%eax
402328:	50                   	push   %eax
402329:	8d 45 d8             	lea    -0x28(%ebp),%eax
40232c:	50                   	push   %eax
40232d:	e8 76 22 00 00       	call   0x4045a8
402332:	59                   	pop    %ecx
402333:	59                   	pop    %ecx
402334:	84 c0                	test   %al,%al
402336:	74 07                	je     0x40233f
402338:	8b f7                	mov    %edi,%esi
40233a:	83 ce 04             	or     $0x4,%esi
40233d:	eb 16                	jmp    0x402355
40233f:	8b 45 ec             	mov    -0x14(%ebp),%eax
402342:	8b 4d e8             	mov    -0x18(%ebp),%ecx
402345:	83 c0 ff             	add    $0xffffffff,%eax
402348:	89 45 ec             	mov    %eax,-0x14(%ebp)
40234b:	83 d1 ff             	adc    $0xffffffff,%ecx
40234e:	89 4d e8             	mov    %ecx,-0x18(%ebp)
402351:	eb 97                	jmp    0x4022ea
402353:	8b f7                	mov    %edi,%esi
402355:	8b 03                	mov    (%ebx),%eax
402357:	57                   	push   %edi
402358:	57                   	push   %edi
402359:	8b 48 04             	mov    0x4(%eax),%ecx
40235c:	03 cb                	add    %ebx,%ecx
40235e:	e8 1d 2f 00 00       	call   0x405280
402363:	eb 20                	jmp    0x402385
402365:	8b 55 e0             	mov    -0x20(%ebp),%edx
402368:	6a 01                	push   $0x1
40236a:	6a 04                	push   $0x4
40236c:	8b 02                	mov    (%edx),%eax
40236e:	8b 48 04             	mov    0x4(%eax),%ecx
402371:	03 ca                	add    %edx,%ecx
402373:	e8 17 2d 00 00       	call   0x40508f
402378:	b8 7e 23 40 00       	mov    $0x40237e,%eax
40237d:	c3                   	ret
40237e:	8b 5d e0             	mov    -0x20(%ebp),%ebx
402381:	33 ff                	xor    %edi,%edi
402383:	8b f7                	mov    %edi,%esi
402385:	89 7d fc             	mov    %edi,-0x4(%ebp)
402388:	8b 03                	mov    (%ebx),%eax
40238a:	57                   	push   %edi
40238b:	56                   	push   %esi
40238c:	8b 48 04             	mov    0x4(%eax),%ecx
40238f:	03 cb                	add    %ebx,%ecx
402391:	e8 f9 2c 00 00       	call   0x40508f
402396:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
402399:	e8 97 0d 00 00       	call   0x403135
40239e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4023a1:	8b c3                	mov    %ebx,%eax
4023a3:	5f                   	pop    %edi
4023a4:	5e                   	pop    %esi
4023a5:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4023ac:	5b                   	pop    %ebx
4023ad:	8b e5                	mov    %ebp,%esp
4023af:	5d                   	pop    %ebp
4023b0:	c3                   	ret
4023b1:	56                   	push   %esi
4023b2:	57                   	push   %edi
4023b3:	8b fa                	mov    %edx,%edi
4023b5:	8b f1                	mov    %ecx,%esi
4023b7:	eb 14                	jmp    0x4023cd
4023b9:	8b ce                	mov    %esi,%ecx
4023bb:	e8 85 00 00 00       	call   0x402445
4023c0:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
4023c4:	50                   	push   %eax
4023c5:	e8 df 00 00 00       	call   0x4024a9
4023ca:	83 c6 18             	add    $0x18,%esi
4023cd:	3b f7                	cmp    %edi,%esi
4023cf:	75 e8                	jne    0x4023b9
4023d1:	5f                   	pop    %edi
4023d2:	5e                   	pop    %esi
4023d3:	c2 08 00             	ret    $0x8
4023d6:	55                   	push   %ebp
4023d7:	8b ec                	mov    %esp,%ebp
4023d9:	ff 75 08             	push   0x8(%ebp)
4023dc:	ff 75 08             	push   0x8(%ebp)
4023df:	e8 cd ff ff ff       	call   0x4023b1
4023e4:	5d                   	pop    %ebp
4023e5:	c2 04 00             	ret    $0x4
4023e8:	64 a1 2c 00 00 00    	mov    %fs:0x2c,%eax
4023ee:	8b 0d 44 96 83 02    	mov    0x2839644,%ecx
4023f4:	57                   	push   %edi
4023f5:	bf 40 93 83 02       	mov    $0x2839340,%edi
4023fa:	8b 0c 88             	mov    (%eax,%ecx,4),%ecx
4023fd:	a1 48 93 83 02       	mov    0x2839348,%eax
402402:	3b 81 08 00 00 00    	cmp    0x8(%ecx),%eax
402408:	7e 03                	jle    0x40240d
40240a:	eb 05                	jmp    0x402411
40240c:	5e                   	pop    %esi
40240d:	8b c7                	mov    %edi,%eax
40240f:	5f                   	pop    %edi
402410:	c3                   	ret
402411:	56                   	push   %esi
402412:	be 48 93 83 02       	mov    $0x2839348,%esi
402417:	56                   	push   %esi
402418:	e8 9e 48 00 00       	call   0x406cbb
40241d:	59                   	pop    %ecx
40241e:	83 3d 48 93 83 02 ff 	cmpl   $0xffffffff,0x2839348
402425:	75 e5                	jne    0x40240c
402427:	8b cf                	mov    %edi,%ecx
402429:	e8 4c 01 00 00       	call   0x40257a
40242e:	68 24 6c 42 00       	push   $0x426c24
402433:	e8 19 47 00 00       	call   0x406b51
402438:	56                   	push   %esi
402439:	e8 3e 48 00 00       	call   0x406c7c
40243e:	59                   	pop    %ecx
40243f:	59                   	pop    %ecx
402440:	eb ca                	jmp    0x40240c
402442:	8b c1                	mov    %ecx,%eax
402444:	c3                   	ret
402445:	8b c1                	mov    %ecx,%eax
402447:	c3                   	ret
402448:	8b c1                	mov    %ecx,%eax
40244a:	c3                   	ret
40244b:	56                   	push   %esi
40244c:	8b f1                	mov    %ecx,%esi
40244e:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
402452:	e8 73 00 00 00       	call   0x4024ca
402457:	8b 54 24 08          	mov    0x8(%esp),%edx
40245b:	8b ce                	mov    %esi,%ecx
40245d:	50                   	push   %eax
40245e:	e8 29 00 00 00       	call   0x40248c
402463:	5e                   	pop    %esi
402464:	c2 08 00             	ret    $0x8
402467:	56                   	push   %esi
402468:	ff 74 24 08          	push   0x8(%esp)
40246c:	6a 04                	push   $0x4
40246e:	e8 08 0d 00 00       	call   0x40317b
402473:	8b f0                	mov    %eax,%esi
402475:	59                   	pop    %ecx
402476:	59                   	pop    %ecx
402477:	85 f6                	test   %esi,%esi
402479:	74 0d                	je     0x402488
40247b:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40247f:	e8 46 00 00 00       	call   0x4024ca
402484:	8b 08                	mov    (%eax),%ecx
402486:	89 0e                	mov    %ecx,(%esi)
402488:	5e                   	pop    %esi
402489:	c2 08 00             	ret    $0x8
40248c:	56                   	push   %esi
40248d:	57                   	push   %edi
40248e:	8b f9                	mov    %ecx,%edi
402490:	8b f2                	mov    %edx,%esi
402492:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
402496:	e8 2f 00 00 00       	call   0x4024ca
40249b:	50                   	push   %eax
40249c:	56                   	push   %esi
40249d:	8b cf                	mov    %edi,%ecx
40249f:	e8 c3 ff ff ff       	call   0x402467
4024a4:	5f                   	pop    %edi
4024a5:	5e                   	pop    %esi
4024a6:	c2 04 00             	ret    $0x4
4024a9:	8b 54 24 04          	mov    0x4(%esp),%edx
4024ad:	e8 11 00 00 00       	call   0x4024c3
4024b2:	c2 04 00             	ret    $0x4
4024b5:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4024b9:	6a 00                	push   $0x0
4024bb:	e8 65 0e 00 00       	call   0x403325
4024c0:	c2 04 00             	ret    $0x4
4024c3:	52                   	push   %edx
4024c4:	e8 ec ff ff ff       	call   0x4024b5
4024c9:	c3                   	ret
4024ca:	8b c1                	mov    %ecx,%eax
4024cc:	c3                   	ret
4024cd:	8b c1                	mov    %ecx,%eax
4024cf:	c3                   	ret
4024d0:	8b c1                	mov    %ecx,%eax
4024d2:	c3                   	ret
4024d3:	8b c1                	mov    %ecx,%eax
4024d5:	c3                   	ret
4024d6:	8b c1                	mov    %ecx,%eax
4024d8:	c3                   	ret
4024d9:	b8 5d 69 42 00       	mov    $0x42695d,%eax
4024de:	e8 dd 48 00 00       	call   0x406dc0
4024e3:	83 ec 14             	sub    $0x14,%esp
4024e6:	56                   	push   %esi
4024e7:	57                   	push   %edi
4024e8:	6a 00                	push   $0x0
4024ea:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4024ed:	e8 21 32 00 00       	call   0x405713
4024f2:	8b 3d 4c 93 83 02    	mov    0x283934c,%edi
4024f8:	b9 34 94 83 02       	mov    $0x2839434,%ecx
4024fd:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
402501:	89 7d f0             	mov    %edi,-0x10(%ebp)
402504:	e8 d1 0c 00 00       	call   0x4031da
402509:	8b 4d 08             	mov    0x8(%ebp),%ecx
40250c:	50                   	push   %eax
40250d:	e8 e1 14 00 00       	call   0x4039f3
402512:	8b f0                	mov    %eax,%esi
402514:	85 f6                	test   %esi,%esi
402516:	75 48                	jne    0x402560
402518:	85 ff                	test   %edi,%edi
40251a:	74 04                	je     0x402520
40251c:	8b f7                	mov    %edi,%esi
40251e:	eb 40                	jmp    0x402560
402520:	ff 75 08             	push   0x8(%ebp)
402523:	8d 45 f0             	lea    -0x10(%ebp),%eax
402526:	50                   	push   %eax
402527:	e8 07 14 00 00       	call   0x403933
40252c:	59                   	pop    %ecx
40252d:	59                   	pop    %ecx
40252e:	83 f8 ff             	cmp    $0xffffffff,%eax
402531:	75 16                	jne    0x402549
402533:	8d 4d e0             	lea    -0x20(%ebp),%ecx
402536:	e8 4a 06 00 00       	call   0x402b85
40253b:	68 3c 7c 43 00       	push   $0x437c3c
402540:	8d 45 e0             	lea    -0x20(%ebp),%eax
402543:	50                   	push   %eax
402544:	e8 cd 5a 00 00       	call   0x408016
402549:	8b 75 f0             	mov    -0x10(%ebp),%esi
40254c:	8b ce                	mov    %esi,%ecx
40254e:	89 35 4c 93 83 02    	mov    %esi,0x283934c
402554:	8b 06                	mov    (%esi),%eax
402556:	ff 50 04             	call   *0x4(%eax)
402559:	56                   	push   %esi
40255a:	e8 68 39 00 00       	call   0x405ec7
40255f:	59                   	pop    %ecx
402560:	8d 4d ec             	lea    -0x14(%ebp),%ecx
402563:	e8 03 32 00 00       	call   0x40576b
402568:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40256b:	8b c6                	mov    %esi,%eax
40256d:	5f                   	pop    %edi
40256e:	5e                   	pop    %esi
40256f:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402576:	8b e5                	mov    %ebp,%esp
402578:	5d                   	pop    %ebp
402579:	c3                   	ret
40257a:	56                   	push   %esi
40257b:	8b f1                	mov    %ecx,%esi
40257d:	56                   	push   %esi
40257e:	6a 08                	push   $0x8
402580:	e8 f6 0b 00 00       	call   0x40317b
402585:	59                   	pop    %ecx
402586:	59                   	pop    %ecx
402587:	85 c0                	test   %eax,%eax
402589:	74 07                	je     0x402592
40258b:	8b c8                	mov    %eax,%ecx
40258d:	e8 87 04 00 00       	call   0x402a19
402592:	8b c6                	mov    %esi,%eax
402594:	5e                   	pop    %esi
402595:	c3                   	ret
402596:	55                   	push   %ebp
402597:	8b ec                	mov    %esp,%ebp
402599:	51                   	push   %ecx
40259a:	56                   	push   %esi
40259b:	8b f1                	mov    %ecx,%esi
40259d:	89 75 fc             	mov    %esi,-0x4(%ebp)
4025a0:	ff 75 fc             	push   -0x4(%ebp)
4025a3:	e8 a7 f8 ff ff       	call   0x401e4f
4025a8:	8b c6                	mov    %esi,%eax
4025aa:	5e                   	pop    %esi
4025ab:	8b e5                	mov    %ebp,%esp
4025ad:	5d                   	pop    %ebp
4025ae:	c3                   	ret
4025af:	51                   	push   %ecx
4025b0:	83 61 10 00          	andl   $0x0,0x10(%ecx)
4025b4:	8b c1                	mov    %ecx,%eax
4025b6:	83 61 14 00          	andl   $0x0,0x14(%ecx)
4025ba:	89 0c 24             	mov    %ecx,(%esp)
4025bd:	59                   	pop    %ecx
4025be:	c3                   	ret
4025bf:	51                   	push   %ecx
4025c0:	56                   	push   %esi
4025c1:	ff 74 24 04          	push   0x4(%esp)
4025c5:	8b f1                	mov    %ecx,%esi
4025c7:	e8 9e f8 ff ff       	call   0x401e6a
4025cc:	8b c6                	mov    %esi,%eax
4025ce:	5e                   	pop    %esi
4025cf:	59                   	pop    %ecx
4025d0:	c3                   	ret
4025d1:	33 c0                	xor    %eax,%eax
4025d3:	89 01                	mov    %eax,(%ecx)
4025d5:	89 41 04             	mov    %eax,0x4(%ecx)
4025d8:	89 41 08             	mov    %eax,0x8(%ecx)
4025db:	8b c1                	mov    %ecx,%eax
4025dd:	c3                   	ret
4025de:	56                   	push   %esi
4025df:	8b f1                	mov    %ecx,%esi
4025e1:	8b 4c 24 08          	mov    0x8(%esp),%ecx
4025e5:	e8 ec fe ff ff       	call   0x4024d6
4025ea:	50                   	push   %eax
4025eb:	8b ce                	mov    %esi,%ecx
4025ed:	e8 34 00 00 00       	call   0x402626
4025f2:	8b c6                	mov    %esi,%eax
4025f4:	5e                   	pop    %esi
4025f5:	c2 04 00             	ret    $0x4
4025f8:	56                   	push   %esi
4025f9:	8b f1                	mov    %ecx,%esi
4025fb:	e8 2b 00 00 00       	call   0x40262b
402600:	8b c6                	mov    %esi,%eax
402602:	5e                   	pop    %esi
402603:	c3                   	ret
402604:	56                   	push   %esi
402605:	8b f1                	mov    %ecx,%esi
402607:	e8 22 00 00 00       	call   0x40262e
40260c:	8b c6                	mov    %esi,%eax
40260e:	5e                   	pop    %esi
40260f:	c3                   	ret
402610:	83 21 00             	andl   $0x0,(%ecx)
402613:	8b c1                	mov    %ecx,%eax
402615:	c6 41 04 00          	movb   $0x0,0x4(%ecx)
402619:	c3                   	ret
40261a:	83 21 00             	andl   $0x0,(%ecx)
40261d:	33 c0                	xor    %eax,%eax
40261f:	66 89 41 04          	mov    %ax,0x4(%ecx)
402623:	8b c1                	mov    %ecx,%eax
402625:	c3                   	ret
402626:	8b c1                	mov    %ecx,%eax
402628:	c2 04 00             	ret    $0x4
40262b:	8b c1                	mov    %ecx,%eax
40262d:	c3                   	ret
40262e:	8b c1                	mov    %ecx,%eax
402630:	c3                   	ret
402631:	8b c1                	mov    %ecx,%eax
402633:	c3                   	ret
402634:	51                   	push   %ecx
402635:	56                   	push   %esi
402636:	8b f1                	mov    %ecx,%esi
402638:	89 74 24 04          	mov    %esi,0x4(%esp)
40263c:	e8 92 06 00 00       	call   0x402cd3
402641:	c7 06 c4 74 42 00    	movl   $0x4274c4,(%esi)
402647:	8b c6                	mov    %esi,%eax
402649:	5e                   	pop    %esi
40264a:	59                   	pop    %ecx
40264b:	c3                   	ret
40264c:	b8 8e 69 42 00       	mov    $0x42698e,%eax
402651:	e8 6a 47 00 00       	call   0x406dc0
402656:	51                   	push   %ecx
402657:	51                   	push   %ecx
402658:	53                   	push   %ebx
402659:	56                   	push   %esi
40265a:	33 db                	xor    %ebx,%ebx
40265c:	8b f1                	mov    %ecx,%esi
40265e:	57                   	push   %edi