40247f:	e9 d3 00 00 00       	jmp    0x402557
402484:	68 19 00 02 00       	push   $0x20019
402489:	e8 f3 07 00 00       	call   0x402c81
40248e:	6a 33                	push   $0x33
402490:	8b f8                	mov    %eax,%edi
402492:	e8 aa 07 00 00       	call   0x402c41
402497:	3b fb                	cmp    %ebx,%edi
402499:	66 89 1e             	mov    %bx,(%esi)
40249c:	0f 84 e9 03 00 00    	je     0x40288b
4024a2:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
4024a5:	c7 45 b4 00 08 00 00 	movl   $0x800,-0x4c(%ebp)
4024ac:	51                   	push   %ecx
4024ad:	8d 4d 08             	lea    0x8(%ebp),%ecx
4024b0:	56                   	push   %esi
4024b1:	51                   	push   %ecx
4024b2:	53                   	push   %ebx
4024b3:	50                   	push   %eax
4024b4:	57                   	push   %edi
4024b5:	ff 15 2c 80 40 00    	call   *0x40802c
4024bb:	33 c9                	xor    %ecx,%ecx
4024bd:	41                   	inc    %ecx
4024be:	85 c0                	test   %eax,%eax
4024c0:	75 2e                	jne    0x4024f0
4024c2:	83 7d 08 04          	cmpl   $0x4,0x8(%ebp)
4024c6:	74 13                	je     0x4024db
4024c8:	39 4d 08             	cmp    %ecx,0x8(%ebp)
4024cb:	74 06                	je     0x4024d3
4024cd:	83 7d 08 02          	cmpl   $0x2,0x8(%ebp)
4024d1:	75 1d                	jne    0x4024f0
4024d3:	8b 45 e8             	mov    -0x18(%ebp),%eax
4024d6:	89 45 fc             	mov    %eax,-0x4(%ebp)
4024d9:	eb 74                	jmp    0x40254f
4024db:	ff 36                	push   (%esi)
4024dd:	33 c0                	xor    %eax,%eax
4024df:	39 5d e8             	cmp    %ebx,-0x18(%ebp)
4024e2:	56                   	push   %esi
4024e3:	0f 94 c0             	sete   %al
4024e6:	89 45 fc             	mov    %eax,-0x4(%ebp)
4024e9:	e8 41 3e 00 00       	call   0x40632f
4024ee:	eb 66                	jmp    0x402556
4024f0:	66 89 1e             	mov    %bx,(%esi)
4024f3:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4024f6:	eb 5e                	jmp    0x402556
4024f8:	68 19 00 02 00       	push   $0x20019
4024fd:	e8 7f 07 00 00       	call   0x402c81
402502:	6a 03                	push   $0x3
402504:	8b f8                	mov    %eax,%edi
402506:	e8 14 07 00 00       	call   0x402c1f
40250b:	3b fb                	cmp    %ebx,%edi
40250d:	59                   	pop    %ecx
40250e:	89 55 b4             	mov    %edx,-0x4c(%ebp)
402511:	66 89 1e             	mov    %bx,(%esi)
402514:	0f 84 71 03 00 00    	je     0x40288b
40251a:	39 5d e8             	cmp    %ebx,-0x18(%ebp)
40251d:	b9 ff 03 00 00       	mov    $0x3ff,%ecx
402522:	89 4d 08             	mov    %ecx,0x8(%ebp)
402525:	74 0c                	je     0x402533
402527:	51                   	push   %ecx
402528:	56                   	push   %esi
402529:	50                   	push   %eax
40252a:	57                   	push   %edi
40252b:	ff 15 30 80 40 00    	call   *0x408030
402531:	eb 1c                	jmp    0x40254f
402533:	53                   	push   %ebx
402534:	53                   	push   %ebx
402535:	53                   	push   %ebx
402536:	8d 4d 08             	lea    0x8(%ebp),%ecx
402539:	53                   	push   %ebx
40253a:	51                   	push   %ecx
40253b:	56                   	push   %esi
40253c:	50                   	push   %eax
40253d:	57                   	push   %edi
40253e:	ff 15 18 80 40 00    	call   *0x408018
402544:	85 c0                	test   %eax,%eax
402546:	74 07                	je     0x40254f
402548:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40254f:	66 89 9e fe 07 00 00 	mov    %bx,0x7fe(%esi)
402556:	57                   	push   %edi
402557:	ff 15 24 80 40 00    	call   *0x408024
40255d:	e9 63 05 00 00       	jmp    0x402ac5
402562:	56                   	push   %esi
402563:	e8 e0 3d 00 00       	call   0x406348
402568:	3b c3                	cmp    %ebx,%eax
40256a:	0f 84 55 05 00 00    	je     0x402ac5
402570:	50                   	push   %eax
402571:	e9 d7 f9 ff ff       	jmp    0x401f4d
402576:	6a ed                	push   $0xffffffed
402578:	e8 c4 06 00 00       	call   0x402c41
40257d:	ff 75 e0             	push   -0x20(%ebp)
402580:	ff 75 dc             	push   -0x24(%ebp)
402583:	50                   	push   %eax
402584:	e8 55 39 00 00       	call   0x405ede
402589:	83 f8 ff             	cmp    $0xffffffff,%eax
40258c:	0f 84 f6 02 00 00    	je     0x402888
402592:	50                   	push   %eax
402593:	e9 d5 ef ff ff       	jmp    0x40156d
402598:	8b 45 e0             	mov    -0x20(%ebp),%eax
40259b:	33 c9                	xor    %ecx,%ecx
40259d:	83 fa 38             	cmp    $0x38,%edx
4025a0:	89 45 b4             	mov    %eax,-0x4c(%ebp)
4025a3:	0f 94 c1             	sete   %cl
4025a6:	3b c3                	cmp    %ebx,%eax
4025a8:	8b f9                	mov    %ecx,%edi
4025aa:	74 1b                	je     0x4025c7
4025ac:	6a 01                	push   $0x1
4025ae:	e8 6c 06 00 00       	call   0x402c1f
4025b3:	66 a3 d8 ad 40 00    	mov    %ax,0x40add8
4025b9:	33 c0                	xor    %eax,%eax
4025bb:	3b fb                	cmp    %ebx,%edi
4025bd:	59                   	pop    %ecx
4025be:	0f 94 c0             	sete   %al
4025c1:	89 55 c4             	mov    %edx,-0x3c(%ebp)
4025c4:	40                   	inc    %eax
4025c5:	eb 43                	jmp    0x40260a
4025c7:	83 fa 38             	cmp    $0x38,%edx
4025ca:	75 2f                	jne    0x4025fb
4025cc:	6a 21                	push   $0x21
4025ce:	e8 6e 06 00 00       	call   0x402c41
4025d3:	53                   	push   %ebx
4025d4:	53                   	push   %ebx
4025d5:	68 00 04 00 00       	push   $0x400
4025da:	68 d8 ad 40 00       	push   $0x40add8
4025df:	6a ff                	push   $0xffffffff
4025e1:	68 d8 b5 40 00       	push   $0x40b5d8
4025e6:	53                   	push   %ebx
4025e7:	53                   	push   %ebx
4025e8:	ff 15 5c 81 40 00    	call   *0x40815c
4025ee:	68 d8 ad 40 00       	push   $0x40add8
4025f3:	ff 15 50 81 40 00    	call   *0x408150
4025f9:	eb 0f                	jmp    0x40260a
4025fb:	6a 11                	push   $0x11
4025fd:	e8 3f 06 00 00       	call   0x402c41
402602:	50                   	push   %eax
402603:	e8 f6 3d 00 00       	call   0x4063fe
402608:	03 c0                	add    %eax,%eax
40260a:	66 39 1e             	cmp    %bx,(%esi)
40260d:	89 45 08             	mov    %eax,0x8(%ebp)
402610:	0f 84 75 02 00 00    	je     0x40288b
402616:	56                   	push   %esi
402617:	e8 2c 3d 00 00       	call   0x406348
40261c:	0b 7d b4             	or     -0x4c(%ebp),%edi
40261f:	8b f0                	mov    %eax,%esi
402621:	75 14                	jne    0x402637
402623:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
402626:	74 0f                	je     0x402637
402628:	56                   	push   %esi
402629:	56                   	push   %esi
40262a:	e8 90 39 00 00       	call   0x405fbf
40262f:	85 c0                	test   %eax,%eax
402631:	0f 8c 54 02 00 00    	jl     0x40288b
402637:	ff 75 08             	push   0x8(%ebp)
40263a:	68 d8 ad 40 00       	push   $0x40add8
40263f:	56                   	push   %esi
402640:	e8 4b 39 00 00       	call   0x405f90
402645:	e9 6a ef ff ff       	jmp    0x4015b4
40264a:	6a 02                	push   $0x2
40264c:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40264f:	58                   	pop    %eax
402650:	50                   	push   %eax
402651:	89 45 b8             	mov    %eax,-0x48(%ebp)
402654:	e8 c6 05 00 00       	call   0x402c1f
402659:	83 f8 01             	cmp    $0x1,%eax
40265c:	59                   	pop    %ecx
40265d:	89 55 b4             	mov    %edx,-0x4c(%ebp)
402660:	89 45 c4             	mov    %eax,-0x3c(%ebp)
402663:	0f 8c 5c 04 00 00    	jl     0x402ac5
402669:	b9 ff 03 00 00       	mov    $0x3ff,%ecx
40266e:	3b c1                	cmp    %ecx,%eax
402670:	7e 03                	jle    0x402675
402672:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
402675:	66 39 1e             	cmp    %bx,(%esi)
402678:	0f 84 5e 01 00 00    	je     0x4027dc
40267e:	56                   	push   %esi
40267f:	89 5d d0             	mov    %ebx,-0x30(%ebp)
402682:	e8 c1 3c 00 00       	call   0x406348
402687:	39 5d c4             	cmp    %ebx,-0x3c(%ebp)
40268a:	89 45 f0             	mov    %eax,-0x10(%ebp)
40268d:	0f 8e 49 01 00 00    	jle    0x4027dc
402693:	8b 3d 58 81 40 00    	mov    0x408158,%edi
402699:	83 7d d4 39          	cmpl   $0x39,-0x2c(%ebp)
40269d:	0f 85 8f 00 00 00    	jne    0x402732
4026a3:	8d 45 c8             	lea    -0x38(%ebp),%eax
4026a6:	53                   	push   %ebx
4026a7:	50                   	push   %eax
4026a8:	6a 02                	push   $0x2
4026aa:	58                   	pop    %eax
4026ab:	2b 45 e4             	sub    -0x1c(%ebp),%eax
4026ae:	50                   	push   %eax
4026af:	8d 45 0a             	lea    0xa(%ebp),%eax
4026b2:	50                   	push   %eax
4026b3:	ff 75 f0             	push   -0x10(%ebp)
4026b6:	ff 15 48 81 40 00    	call   *0x408148
4026bc:	85 c0                	test   %eax,%eax
4026be:	0f 84 18 01 00 00    	je     0x4027dc
4026c4:	8b 4d c8             	mov    -0x38(%ebp),%ecx
4026c7:	3b cb                	cmp    %ebx,%ecx
4026c9:	0f 84 0d 01 00 00    	je     0x4027dc
4026cf:	66 0f b6 45 0a       	movzbw 0xa(%ebp),%ax
4026d4:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
4026d7:	89 4d b8             	mov    %ecx,-0x48(%ebp)
4026da:	89 45 bc             	mov    %eax,-0x44(%ebp)
4026dd:	0f 85 b5 00 00 00    	jne    0x402798
4026e3:	8d 45 bc             	lea    -0x44(%ebp),%eax
4026e6:	6a 01                	push   $0x1
4026e8:	50                   	push   %eax
4026e9:	8d 45 0a             	lea    0xa(%ebp),%eax
4026ec:	51                   	push   %ecx
4026ed:	50                   	push   %eax
4026ee:	6a 08                	push   $0x8
4026f0:	53                   	push   %ebx
4026f1:	ff d7                	call   *%edi
4026f3:	85 c0                	test   %eax,%eax
4026f5:	75 68                	jne    0x40275f
4026f7:	8b 75 b8             	mov    -0x48(%ebp),%esi
4026fa:	f7 de                	neg    %esi
4026fc:	ff 4d c8             	decl   -0x38(%ebp)
4026ff:	b8 fd ff 00 00       	mov    $0xfffd,%eax
402704:	89 45 bc             	mov    %eax,-0x44(%ebp)
402707:	74 59                	je     0x402762
402709:	ff 4d b8             	decl   -0x48(%ebp)
40270c:	46                   	inc    %esi
40270d:	6a 01                	push   $0x1
40270f:	53                   	push   %ebx
402710:	56                   	push   %esi
402711:	ff 75 f0             	push   -0x10(%ebp)
402714:	ff 15 44 81 40 00    	call   *0x408144
40271a:	8d 45 bc             	lea    -0x44(%ebp),%eax
40271d:	6a 01                	push   $0x1
40271f:	50                   	push   %eax
402720:	8d 45 0a             	lea    0xa(%ebp),%eax
402723:	ff 75 c8             	push   -0x38(%ebp)
402726:	50                   	push   %eax
402727:	6a 08                	push   $0x8
402729:	53                   	push   %ebx
40272a:	ff d7                	call   *%edi
40272c:	85 c0                	test   %eax,%eax
40272e:	74 cc                	je     0x4026fc
402730:	eb 2d                	jmp    0x40275f
402732:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
402735:	75 16                	jne    0x40274d
402737:	39 5d f8             	cmp    %ebx,-0x8(%ebp)
40273a:	75 11                	jne    0x40274d
40273c:	53                   	push   %ebx
40273d:	ff 75 f0             	push   -0x10(%ebp)
402740:	e8 7a 38 00 00       	call   0x405fbf
402745:	85 c0                	test   %eax,%eax
402747:	0f 8c 8f 00 00 00    	jl     0x4027dc
40274d:	8d 45 bc             	lea    -0x44(%ebp),%eax
402750:	6a 02                	push   $0x2
402752:	50                   	push   %eax
402753:	ff 75 f0             	push   -0x10(%ebp)
402756:	e8 06 38 00 00       	call   0x405f61
40275b:	85 c0                	test   %eax,%eax
40275d:	74 7d                	je     0x4027dc
40275f:	8b 45 bc             	mov    -0x44(%ebp),%eax
402762:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
402765:	75 31                	jne    0x402798
402767:	66 83 7d d0 0d       	cmpw   $0xd,-0x30(%ebp)
40276c:	74 3b                	je     0x4027a9
40276e:	66 83 7d d0 0a       	cmpw   $0xa,-0x30(%ebp)
402773:	74 34                	je     0x4027a9
402775:	8b 4d f4             	mov    -0xc(%ebp),%ecx
402778:	8b 55 f8             	mov    -0x8(%ebp),%edx
40277b:	ff 45 f8             	incl   -0x8(%ebp)
40277e:	66 3b c3             	cmp    %bx,%ax
402781:	66 89 04 51          	mov    %ax,(%ecx,%edx,2)
402785:	89 45 d0             	mov    %eax,-0x30(%ebp)
402788:	74 52                	je     0x4027dc
40278a:	8b 45 f8             	mov    -0x8(%ebp),%eax
40278d:	3b 45 c4             	cmp    -0x3c(%ebp),%eax
402790:	0f 8c 03 ff ff ff    	jl     0x402699
402796:	eb 44                	jmp    0x4027dc
402798:	0f b7 c0             	movzwl %ax,%eax
40279b:	50                   	push   %eax
40279c:	ff 75 f4             	push   -0xc(%ebp)
40279f:	e8 8b 3b 00 00       	call   0x40632f
4027a4:	e9 25 03 00 00       	jmp    0x402ace
4027a9:	66 39 45 d0          	cmp    %ax,-0x30(%ebp)
4027ad:	74 1b                	je     0x4027ca
4027af:	66 3d 0d 00          	cmp    $0xd,%ax
4027b3:	74 06                	je     0x4027bb
4027b5:	66 3d 0a 00          	cmp    $0xa,%ax
4027b9:	75 0f                	jne    0x4027ca
4027bb:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4027be:	8b 55 f8             	mov    -0x8(%ebp),%edx
4027c1:	ff 45 f8             	incl   -0x8(%ebp)
4027c4:	66 89 04 51          	mov    %ax,(%ecx,%edx,2)
4027c8:	eb 12                	jmp    0x4027dc
4027ca:	8b 45 b8             	mov    -0x48(%ebp),%eax
4027cd:	6a 01                	push   $0x1
4027cf:	f7 d8                	neg    %eax
4027d1:	53                   	push   %ebx
4027d2:	50                   	push   %eax
4027d3:	ff 75 f0             	push   -0x10(%ebp)
4027d6:	ff 15 44 81 40 00    	call   *0x408144
4027dc:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4027df:	8b 45 f8             	mov    -0x8(%ebp),%eax
4027e2:	3b c3                	cmp    %ebx,%eax
4027e4:	66 89 1c 41          	mov    %bx,(%ecx,%eax,2)
4027e8:	e9 c9 ed ff ff       	jmp    0x4015b6
4027ed:	66 39 1e             	cmp    %bx,(%esi)
4027f0:	0f 84 cf 02 00 00    	je     0x402ac5
4027f6:	6a 02                	push   $0x2
4027f8:	e8 22 04 00 00       	call   0x402c1f
4027fd:	59                   	pop    %ecx
4027fe:	89 55 b4             	mov    %edx,-0x4c(%ebp)
402801:	ff 75 e4             	push   -0x1c(%ebp)
402804:	53                   	push   %ebx
402805:	50                   	push   %eax
402806:	56                   	push   %esi
402807:	e8 3c 3b 00 00       	call   0x406348
40280c:	50                   	push   %eax
40280d:	ff 15 44 81 40 00    	call   *0x408144
402813:	39 5d dc             	cmp    %ebx,-0x24(%ebp)
402816:	0f 8c a9 02 00 00    	jl     0x402ac5
40281c:	e9 46 02 00 00       	jmp    0x402a67
402821:	56                   	push   %esi
402822:	e8 21 3b 00 00       	call   0x406348
402827:	3b c3                	cmp    %ebx,%eax
402829:	0f 84 96 02 00 00    	je     0x402ac5
40282f:	50                   	push   %eax
402830:	ff 15 4c 81 40 00    	call   *0x40814c
402836:	e9 8a 02 00 00       	jmp    0x402ac5
40283b:	ff 75 f4             	push   -0xc(%ebp)
40283e:	e8 05 3b 00 00       	call   0x406348
402843:	3b c3                	cmp    %ebx,%eax
402845:	74 12                	je     0x402859
402847:	8d 8d 2c fd ff ff    	lea    -0x2d4(%ebp),%ecx
40284d:	51                   	push   %ecx
40284e:	50                   	push   %eax
40284f:	ff 15 3c 81 40 00    	call   *0x40813c
402855:	85 c0                	test   %eax,%eax
402857:	75 47                	jne    0x4028a0
402859:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
402860:	66 89 1e             	mov    %bx,(%esi)
402863:	e9 5d 02 00 00       	jmp    0x402ac5
402868:	6a 02                	push   $0x2
40286a:	e8 d2 03 00 00       	call   0x402c41
40286f:	8d 8d 2c fd ff ff    	lea    -0x2d4(%ebp),%ecx
402875:	51                   	push   %ecx
402876:	50                   	push   %eax
402877:	ff 15 38 81 40 00    	call   *0x408138
40287d:	83 f8 ff             	cmp    $0xffffffff,%eax
402880:	75 15                	jne    0x402897
402882:	8b 45 f4             	mov    -0xc(%ebp),%eax
402885:	66 89 18             	mov    %bx,(%eax)
402888:	66 89 1e             	mov    %bx,(%esi)
40288b:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
402892:	e9 2e 02 00 00       	jmp    0x402ac5
402897:	50                   	push   %eax