402065:	89 45 08             	mov    %eax,0x8(%ebp)
402068:	75 11                	jne    0x40207b
40206a:	6a 08                	push   $0x8
40206c:	53                   	push   %ebx
40206d:	56                   	push   %esi
40206e:	ff 15 6c 81 40 00    	call   *0x40816c
402074:	3b c3                	cmp    %ebx,%eax
402076:	89 45 08             	mov    %eax,0x8(%ebp)
402079:	74 7b                	je     0x4020f6
40207b:	ff 75 c4             	push   -0x3c(%ebp)
40207e:	ff 75 08             	push   0x8(%ebp)
402081:	e8 ab 47 00 00       	call   0x406831
402086:	8b f0                	mov    %eax,%esi
402088:	3b f3                	cmp    %ebx,%esi
40208a:	74 39                	je     0x4020c5
40208c:	39 5d e0             	cmp    %ebx,-0x20(%ebp)
40208f:	89 5d fc             	mov    %ebx,-0x4(%ebp)
402092:	74 17                	je     0x4020ab
402094:	ff 75 e0             	push   -0x20(%ebp)
402097:	e8 87 f3 ff ff       	call   0x401423
40209c:	ff d6                	call   *%esi
40209e:	85 c0                	test   %eax,%eax
4020a0:	74 2d                	je     0x4020cf
4020a2:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
4020a9:	eb 24                	jmp    0x4020cf
4020ab:	68 00 a0 40 00       	push   $0x40a000
4020b0:	68 38 ce 40 00       	push   $0x40ce38
4020b5:	57                   	push   %edi
4020b6:	68 00 04 00 00       	push   $0x400
4020bb:	ff 75 f8             	push   -0x8(%ebp)
4020be:	ff d6                	call   *%esi
4020c0:	83 c4 14             	add    $0x14,%esp
4020c3:	eb 0a                	jmp    0x4020cf
4020c5:	ff 75 c4             	push   -0x3c(%ebp)
4020c8:	6a f7                	push   $0xfffffff7
4020ca:	e8 81 33 00 00       	call   0x405450
4020cf:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
4020d2:	0f 85 ed 09 00 00    	jne    0x402ac5
4020d8:	ff 75 08             	push   0x8(%ebp)
4020db:	e8 98 19 00 00       	call   0x403a78
4020e0:	85 c0                	test   %eax,%eax
4020e2:	0f 84 dd 09 00 00    	je     0x402ac5
4020e8:	ff 75 08             	push   0x8(%ebp)
4020eb:	ff 15 68 81 40 00    	call   *0x408168
4020f1:	e9 cf 09 00 00       	jmp    0x402ac5
4020f6:	6a f6                	push   $0xfffffff6
4020f8:	e9 4e 01 00 00       	jmp    0x40224b
4020fd:	6a e7                	push   $0xffffffe7
4020ff:	e9 47 01 00 00       	jmp    0x40224b
402104:	6a f0                	push   $0xfffffff0
402106:	e8 36 0b 00 00       	call   0x402c41
40210b:	6a df                	push   $0xffffffdf
40210d:	89 45 b4             	mov    %eax,-0x4c(%ebp)
402110:	e8 2c 0b 00 00       	call   0x402c41
402115:	6a 02                	push   $0x2
402117:	89 45 c4             	mov    %eax,-0x3c(%ebp)
40211a:	e8 22 0b 00 00       	call   0x402c41
40211f:	6a cd                	push   $0xffffffcd
402121:	89 45 f8             	mov    %eax,-0x8(%ebp)
402124:	e8 18 0b 00 00       	call   0x402c41
402129:	6a 45                	push   $0x45
40212b:	89 45 b8             	mov    %eax,-0x48(%ebp)
40212e:	e8 0e 0b 00 00       	call   0x402c41
402133:	ff 75 c4             	push   -0x3c(%ebp)
402136:	89 45 f4             	mov    %eax,-0xc(%ebp)
402139:	8b 45 e8             	mov    -0x18(%ebp),%eax
40213c:	8b c8                	mov    %eax,%ecx
40213e:	8b f8                	mov    %eax,%edi
402140:	8b f0                	mov    %eax,%esi
402142:	81 e1 ff 0f 00 00    	and    $0xfff,%ecx
402148:	c1 f8 10             	sar    $0x10,%eax
40214b:	c1 fe 0c             	sar    $0xc,%esi
40214e:	25 ff ff 00 00       	and    $0xffff,%eax
402153:	89 4d bc             	mov    %ecx,-0x44(%ebp)
402156:	81 e7 00 80 00 00    	and    $0x8000,%edi
40215c:	83 e6 07             	and    $0x7,%esi
40215f:	89 45 c8             	mov    %eax,-0x38(%ebp)
402162:	e8 cd 3b 00 00       	call   0x405d34
402167:	85 c0                	test   %eax,%eax
402169:	75 07                	jne    0x402172
40216b:	6a 21                	push   $0x21
40216d:	e8 cf 0a 00 00       	call   0x402c41
402172:	8d 45 08             	lea    0x8(%ebp),%eax
402175:	50                   	push   %eax
402176:	68 d4 84 40 00       	push   $0x4084d4
40217b:	6a 01                	push   $0x1
40217d:	53                   	push   %ebx
40217e:	68 e4 84 40 00       	push   $0x4084e4
402183:	ff 15 a8 82 40 00    	call   *0x4082a8
402189:	3b c3                	cmp    %ebx,%eax
40218b:	0f 8c b1 00 00 00    	jl     0x402242
402191:	8b 45 08             	mov    0x8(%ebp),%eax
402194:	8d 55 d0             	lea    -0x30(%ebp),%edx
402197:	52                   	push   %edx
402198:	68 f4 84 40 00       	push   $0x4084f4
40219d:	8b 08                	mov    (%eax),%ecx
40219f:	50                   	push   %eax
4021a0:	ff 11                	call   *(%ecx)
4021a2:	3b c3                	cmp    %ebx,%eax
4021a4:	89 45 f0             	mov    %eax,-0x10(%ebp)
4021a7:	0f 8c 87 00 00 00    	jl     0x402234
4021ad:	8b 45 08             	mov    0x8(%ebp),%eax
4021b0:	ff 75 c4             	push   -0x3c(%ebp)
4021b3:	8b 08                	mov    (%eax),%ecx
4021b5:	50                   	push   %eax
4021b6:	ff 51 50             	call   *0x50(%ecx)
4021b9:	3b fb                	cmp    %ebx,%edi
4021bb:	89 45 f0             	mov    %eax,-0x10(%ebp)
4021be:	75 0e                	jne    0x4021ce
4021c0:	8b 45 08             	mov    0x8(%ebp),%eax
4021c3:	68 00 60 43 00       	push   $0x436000
4021c8:	50                   	push   %eax
4021c9:	8b 08                	mov    (%eax),%ecx
4021cb:	ff 51 24             	call   *0x24(%ecx)
4021ce:	3b f3                	cmp    %ebx,%esi
4021d0:	74 0a                	je     0x4021dc
4021d2:	8b 45 08             	mov    0x8(%ebp),%eax
4021d5:	56                   	push   %esi
4021d6:	50                   	push   %eax
4021d7:	8b 08                	mov    (%eax),%ecx
4021d9:	ff 51 3c             	call   *0x3c(%ecx)
4021dc:	8b 45 08             	mov    0x8(%ebp),%eax
4021df:	ff 75 c8             	push   -0x38(%ebp)
4021e2:	8b 08                	mov    (%eax),%ecx
4021e4:	50                   	push   %eax
4021e5:	ff 51 34             	call   *0x34(%ecx)
4021e8:	8b 4d b8             	mov    -0x48(%ebp),%ecx
4021eb:	66 39 19             	cmp    %bx,(%ecx)
4021ee:	74 0d                	je     0x4021fd
4021f0:	8b 45 08             	mov    0x8(%ebp),%eax
4021f3:	ff 75 bc             	push   -0x44(%ebp)
4021f6:	8b 10                	mov    (%eax),%edx
4021f8:	51                   	push   %ecx
4021f9:	50                   	push   %eax
4021fa:	ff 52 44             	call   *0x44(%edx)
4021fd:	8b 45 08             	mov    0x8(%ebp),%eax
402200:	ff 75 f8             	push   -0x8(%ebp)
402203:	8b 08                	mov    (%eax),%ecx
402205:	50                   	push   %eax
402206:	ff 51 2c             	call   *0x2c(%ecx)
402209:	8b 45 08             	mov    0x8(%ebp),%eax
40220c:	ff 75 f4             	push   -0xc(%ebp)
40220f:	8b 08                	mov    (%eax),%ecx
402211:	50                   	push   %eax
402212:	ff 51 1c             	call   *0x1c(%ecx)
402215:	39 5d f0             	cmp    %ebx,-0x10(%ebp)
402218:	7c 11                	jl     0x40222b
40221a:	8b 45 d0             	mov    -0x30(%ebp),%eax
40221d:	6a 01                	push   $0x1
40221f:	ff 75 b4             	push   -0x4c(%ebp)
402222:	8b 08                	mov    (%eax),%ecx
402224:	50                   	push   %eax
402225:	ff 51 18             	call   *0x18(%ecx)
402228:	89 45 f0             	mov    %eax,-0x10(%ebp)
40222b:	8b 45 d0             	mov    -0x30(%ebp),%eax
40222e:	50                   	push   %eax
40222f:	8b 08                	mov    (%eax),%ecx
402231:	ff 51 08             	call   *0x8(%ecx)
402234:	8b 45 08             	mov    0x8(%ebp),%eax
402237:	50                   	push   %eax
402238:	8b 08                	mov    (%eax),%ecx
40223a:	ff 51 08             	call   *0x8(%ecx)
40223d:	39 5d f0             	cmp    %ebx,-0x10(%ebp)
402240:	7d 13                	jge    0x402255
402242:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
402249:	6a f0                	push   $0xfffffff0
40224b:	e8 d3 f1 ff ff       	call   0x401423
402250:	e9 70 08 00 00       	jmp    0x402ac5
402255:	6a f4                	push   $0xfffffff4
402257:	eb f2                	jmp    0x40224b
402259:	53                   	push   %ebx
40225a:	e8 e2 09 00 00       	call   0x402c41
40225f:	6a 11                	push   $0x11
402261:	8b f0                	mov    %eax,%esi
402263:	e8 d9 09 00 00       	call   0x402c41
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)