402268:	6a 23                	push   $0x23
40226a:	8b f8                	mov    %eax,%edi
40226c:	e8 d0 09 00 00       	call   0x402c41
402271:	56                   	push   %esi
402272:	89 45 08             	mov    %eax,0x8(%ebp)
402275:	e8 b1 44 00 00       	call   0x40672b
40227a:	85 c0                	test   %eax,%eax
40227c:	75 0d                	jne    0x40228b
40227e:	53                   	push   %ebx
40227f:	6a f9                	push   $0xfffffff9
402281:	e8 ca 31 00 00       	call   0x405450
402286:	e9 00 06 00 00       	jmp    0x40288b
40228b:	8b 45 f8             	mov    -0x8(%ebp),%eax
40228e:	56                   	push   %esi
40228f:	89 45 98             	mov    %eax,-0x68(%ebp)
402292:	c7 45 9c 02 00 00 00 	movl   $0x2,-0x64(%ebp)
402299:	e8 60 41 00 00       	call   0x4063fe
40229e:	57                   	push   %edi
40229f:	66 89 5c 46 02       	mov    %bx,0x2(%esi,%eax,2)
4022a4:	e8 55 41 00 00       	call   0x4063fe
4022a9:	66 89 5c 47 02       	mov    %bx,0x2(%edi,%eax,2)
4022ae:	8b 45 08             	mov    0x8(%ebp),%eax
4022b1:	66 8b 4d e0          	mov    -0x20(%ebp),%cx
4022b5:	50                   	push   %eax
4022b6:	53                   	push   %ebx
4022b7:	89 75 a0             	mov    %esi,-0x60(%ebp)
4022ba:	89 7d a4             	mov    %edi,-0x5c(%ebp)
4022bd:	89 45 b2             	mov    %eax,-0x4e(%ebp)
4022c0:	66 89 4d a8          	mov    %cx,-0x58(%ebp)
4022c4:	e8 87 31 00 00       	call   0x405450
4022c9:	8d 45 98             	lea    -0x68(%ebp),%eax
4022cc:	50                   	push   %eax
4022cd:	ff 15 8c 81 40 00    	call   *0x40818c
4022d3:	85 c0                	test   %eax,%eax
4022d5:	0f 84 ea 07 00 00    	je     0x402ac5
4022db:	eb a1                	jmp    0x40227e
4022dd:	3d 0d f0 ad 0b       	cmp    $0xbadf00d,%eax
4022e2:	74 1d                	je     0x402301
4022e4:	68 10 00 20 00       	push   $0x200010
4022e9:	6a e8                	push   $0xffffffe8
4022eb:	53                   	push   %ebx
4022ec:	e8 19 41 00 00       	call   0x40640a
4022f1:	50                   	push   %eax
4022f2:	e8 57 37 00 00       	call   0x405a4e
4022f7:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
4022fc:	e9 cf 07 00 00       	jmp    0x402ad0
402301:	ff 05 f4 a2 42 00    	incl   0x42a2f4
402307:	e9 b9 07 00 00       	jmp    0x402ac5
40230c:	33 f6                	xor    %esi,%esi
40230e:	33 ff                	xor    %edi,%edi
402310:	3b c3                	cmp    %ebx,%eax
402312:	74 08                	je     0x40231c
402314:	53                   	push   %ebx
402315:	e8 27 09 00 00       	call   0x402c41
40231a:	8b f0                	mov    %eax,%esi
40231c:	39 5d dc             	cmp    %ebx,-0x24(%ebp)
40231f:	74 09                	je     0x40232a
402321:	6a 11                	push   $0x11
402323:	e8 19 09 00 00       	call   0x402c41
402328:	8b f8                	mov    %eax,%edi
40232a:	39 5d e8             	cmp    %ebx,-0x18(%ebp)
40232d:	74 09                	je     0x402338
40232f:	6a 22                	push   $0x22
402331:	e8 0b 09 00 00       	call   0x402c41
402336:	8b d8                	mov    %eax,%ebx
402338:	6a cd                	push   $0xffffffcd
40233a:	e8 02 09 00 00       	call   0x402c41
40233f:	50                   	push   %eax
402340:	53                   	push   %ebx
402341:	57                   	push   %edi
402342:	56                   	push   %esi
402343:	ff 15 64 81 40 00    	call   *0x408164
402349:	e9 66 f2 ff ff       	jmp    0x4015b4
40234e:	a1 10 a0 40 00       	mov    0x40a010,%eax
402353:	6a 01                	push   $0x1
402355:	89 45 08             	mov    %eax,0x8(%ebp)
402358:	e8 e4 08 00 00       	call   0x402c41
40235d:	6a 12                	push   $0x12
40235f:	8b f8                	mov    %eax,%edi
402361:	e8 db 08 00 00       	call   0x402c41
402366:	6a dd                	push   $0xffffffdd
402368:	89 45 b4             	mov    %eax,-0x4c(%ebp)
40236b:	e8 d1 08 00 00       	call   0x402c41
402370:	50                   	push   %eax
402371:	68 ff 03 00 00       	push   $0x3ff
402376:	8d 45 08             	lea    0x8(%ebp),%eax
402379:	56                   	push   %esi
40237a:	50                   	push   %eax
40237b:	ff 75 b4             	push   -0x4c(%ebp)
40237e:	57                   	push   %edi
40237f:	ff 15 60 81 40 00    	call   *0x408160
402385:	66 83 3e 0a          	cmpw   $0xa,(%esi)
402389:	e9 c3 f3 ff ff       	jmp    0x401751
40238e:	39 5d e8             	cmp    %ebx,-0x18(%ebp)
402391:	8b 75 dc             	mov    -0x24(%ebp),%esi
402394:	75 2b                	jne    0x4023c1
402396:	6a 02                	push   $0x2
402398:	e8 e4 08 00 00       	call   0x402c81
40239d:	8b f0                	mov    %eax,%esi
40239f:	3b f3                	cmp    %ebx,%esi
4023a1:	0f 84 e4 04 00 00    	je     0x40288b
4023a7:	6a 33                	push   $0x33
4023a9:	e8 93 08 00 00       	call   0x402c41
4023ae:	50                   	push   %eax
4023af:	56                   	push   %esi
4023b0:	ff 15 20 80 40 00    	call   *0x408020
4023b6:	56                   	push   %esi
4023b7:	8b f8                	mov    %eax,%edi
4023b9:	ff 15 24 80 40 00    	call   *0x408024
4023bf:	eb 16                	jmp    0x4023d7
4023c1:	6a 22                	push   $0x22
4023c3:	e8 79 08 00 00       	call   0x402c41
4023c8:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4023cb:	d1 f9                	sar    $1,%ecx
4023cd:	51                   	push   %ecx
4023ce:	50                   	push   %eax
4023cf:	56                   	push   %esi
4023d0:	e8 2a 09 00 00       	call   0x402cff
4023d5:	8b f8                	mov    %eax,%edi
4023d7:	3b fb                	cmp    %ebx,%edi
4023d9:	0f 84 e6 06 00 00    	je     0x402ac5
4023df:	e9 a7 04 00 00       	jmp    0x40288b
4023e4:	8b 75 e8             	mov    -0x18(%ebp),%esi
4023e7:	8b f8                	mov    %eax,%edi
4023e9:	8b 45 ec             	mov    -0x14(%ebp),%eax
4023ec:	6a 02                	push   $0x2
4023ee:	89 45 b4             	mov    %eax,-0x4c(%ebp)
4023f1:	e8 4b 08 00 00       	call   0x402c41
4023f6:	6a 11                	push   $0x11
4023f8:	89 45 c4             	mov    %eax,-0x3c(%ebp)
4023fb:	e8 41 08 00 00       	call   0x402c41
402400:	6a 02                	push   $0x2
402402:	50                   	push   %eax
402403:	57                   	push   %edi
402404:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40240b:	e8 c1 08 00 00       	call   0x402cd1
402410:	3b c3                	cmp    %ebx,%eax
402412:	89 45 08             	mov    %eax,0x8(%ebp)
402415:	0f 84 aa 06 00 00    	je     0x402ac5
40241b:	33 c0                	xor    %eax,%eax
40241d:	83 fe 01             	cmp    $0x1,%esi
402420:	bf d8 b5 40 00       	mov    $0x40b5d8,%edi
402425:	75 11                	jne    0x402438
402427:	6a 23                	push   $0x23
402429:	e8 13 08 00 00       	call   0x402c41
40242e:	57                   	push   %edi
40242f:	e8 ca 3f 00 00       	call   0x4063fe
402434:	8d 44 00 02          	lea    0x2(%eax,%eax,1),%eax
402438:	83 fe 04             	cmp    $0x4,%esi
40243b:	75 12                	jne    0x40244f
40243d:	6a 03                	push   $0x3
40243f:	e8 db 07 00 00       	call   0x402c1f
402444:	59                   	pop    %ecx
402445:	a3 d8 b5 40 00       	mov    %eax,0x40b5d8
40244a:	56                   	push   %esi
40244b:	89 55 d0             	mov    %edx,-0x30(%ebp)
40244e:	58                   	pop    %eax
40244f:	83 fe 03             	cmp    $0x3,%esi
402452:	75 0f                	jne    0x402463
402454:	68 00 18 00 00       	push   $0x1800
402459:	57                   	push   %edi
40245a:	53                   	push   %ebx
40245b:	ff 75 e4             	push   -0x1c(%ebp)
40245e:	e8 73 0d 00 00       	call   0x4031d6
402463:	50                   	push   %eax
402464:	57                   	push   %edi
402465:	ff 75 b4             	push   -0x4c(%ebp)
402468:	53                   	push   %ebx
402469:	ff 75 c4             	push   -0x3c(%ebp)
40246c:	ff 75 08             	push   0x8(%ebp)
40246f:	ff 15 28 80 40 00    	call   *0x408028
402475:	85 c0                	test   %eax,%eax
402477:	75 03                	jne    0x40247c
402479:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40247c:	ff 75 08             	push   0x8(%ebp)
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