409157:	56                   	push   %esi
409158:	57                   	push   %edi
409159:	6a 2f                	push   $0x2f
40915b:	58                   	pop    %eax
40915c:	66 89 45 e8          	mov    %ax,-0x18(%ebp)
409160:	8b f2                	mov    %edx,%esi
409162:	33 c0                	xor    %eax,%eax
409164:	8d 55 e8             	lea    -0x18(%ebp),%edx
409167:	6a 02                	push   $0x2
409169:	66 89 45 ea          	mov    %ax,-0x16(%ebp)
40916d:	e8 be 2a 00 00       	call   0x40bc30
409172:	33 c9                	xor    %ecx,%ecx
409174:	8d 5e 4c             	lea    0x4c(%esi),%ebx
409177:	8b f8                	mov    %eax,%edi
409179:	89 5d dc             	mov    %ebx,-0x24(%ebp)
40917c:	89 7d e4             	mov    %edi,-0x1c(%ebp)
40917f:	39 4e 48             	cmp    %ecx,0x48(%esi)
409182:	0f 85 71 27 01 00    	jne    0x41b8f9
409188:	89 4e 0c             	mov    %ecx,0xc(%esi)
40918b:	0f b7 07             	movzwl (%edi),%eax
40918e:	66 85 c0             	test   %ax,%ax
409191:	0f 84 d8 00 00 00    	je     0x40926f
409197:	6a 2d                	push   $0x2d
409199:	5a                   	pop    %edx
40919a:	6a 2f                	push   $0x2f
40919c:	59                   	pop    %ecx
40919d:	66 3b c1             	cmp    %cx,%ax
4091a0:	0f 85 a4 00 00 00    	jne    0x40924a
4091a6:	8d 47 04             	lea    0x4(%edi),%eax
4091a9:	89 45 d8             	mov    %eax,-0x28(%ebp)
4091ac:	0f b7 00             	movzwl (%eax),%eax
4091af:	8b c8                	mov    %eax,%ecx
4091b1:	89 4d e0             	mov    %ecx,-0x20(%ebp)
4091b4:	33 c9                	xor    %ecx,%ecx
4091b6:	66 3b c2             	cmp    %dx,%ax
4091b9:	0f 94 c1             	sete   %cl
4091bc:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
4091bf:	83 c1 02             	add    $0x2,%ecx
4091c2:	8d 1c 4f             	lea    (%edi,%ecx,2),%ebx
4091c5:	0f b7 03             	movzwl (%ebx),%eax
4091c8:	50                   	push   %eax
4091c9:	ff 15 18 a4 44 00    	call   *0x44a418
4091cf:	0f b7 c0             	movzwl %ax,%eax
4091d2:	59                   	pop    %ecx
4091d3:	83 f8 4f             	cmp    $0x4f,%eax
4091d6:	0f 87 a4 00 00 00    	ja     0x409280
4091dc:	6a 2d                	push   $0x2d
4091de:	0f 84 e3 00 00 00    	je     0x4092c7
4091e4:	83 f8 43             	cmp    $0x43,%eax
4091e7:	0f 87 bb 27 01 00    	ja     0x41b9a8
4091ed:	0f 84 97 27 01 00    	je     0x41b98a
4091f3:	5a                   	pop    %edx
4091f4:	2b c2                	sub    %edx,%eax
4091f6:	0f 84 5a 29 01 00    	je     0x41bb56
4091fc:	83 e8 07             	sub    $0x7,%eax
4091ff:	0f 84 67 27 01 00    	je     0x41b96c
409205:	83 e8 0d             	sub    $0xd,%eax
409208:	0f 84 15 27 01 00    	je     0x41b923
40920e:	83 e8 01             	sub    $0x1,%eax
409211:	0f 85 5e 29 01 00    	jne    0x41bb75
409217:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40921a:	66 3b ca             	cmp    %dx,%cx
40921d:	0f 84 f8 26 01 00    	je     0x41b91b
409223:	83 0e 40             	orl    $0x40,(%esi)
409226:	8b 45 e4             	mov    -0x1c(%ebp),%eax
409229:	33 d2                	xor    %edx,%edx
40922b:	66 39 54 47 06       	cmp    %dx,0x6(%edi,%eax,2)
409230:	0f 85 34 28 01 00    	jne    0x41ba6a
409236:	8b 7d d8             	mov    -0x28(%ebp),%edi
409239:	8b 5d dc             	mov    -0x24(%ebp),%ebx
40923c:	8b cf                	mov    %edi,%ecx
40923e:	e8 92 15 00 00       	call   0x40a7d5
409243:	8b f8                	mov    %eax,%edi
409245:	e9 41 ff ff ff       	jmp    0x40918b
40924a:	8b 46 48             	mov    0x48(%esi),%eax
40924d:	85 c0                	test   %eax,%eax
40924f:	0f 85 e0 28 01 00    	jne    0x41bb35
409255:	40                   	inc    %eax
409256:	8b cf                	mov    %edi,%ecx
409258:	89 46 48             	mov    %eax,0x48(%esi)
40925b:	e8 00 6e 00 00       	call   0x410060
409260:	8b c8                	mov    %eax,%ecx
409262:	e8 e4 72 00 00       	call   0x41054b
409267:	89 03                	mov    %eax,(%ebx)
409269:	c6 43 08 01          	movb   $0x1,0x8(%ebx)
40926d:	eb cd                	jmp    0x40923c
40926f:	33 c0                	xor    %eax,%eax
409271:	8b 4d fc             	mov    -0x4(%ebp),%ecx
409274:	5f                   	pop    %edi
409275:	5e                   	pop    %esi
409276:	33 cd                	xor    %ebp,%ecx
409278:	5b                   	pop    %ebx
409279:	e8 b2 d8 00 00       	call   0x416b30
40927e:	c9                   	leave
40927f:	c3                   	ret
409280:	83 e8 50             	sub    $0x50,%eax
409283:	0f 84 91 28 01 00    	je     0x41bb1a
409289:	83 e8 01             	sub    $0x1,%eax
40928c:	0f 84 67 28 01 00    	je     0x41baf9
409292:	83 e8 01             	sub    $0x1,%eax
409295:	0f 84 3d 28 01 00    	je     0x41bad8
40929b:	83 e8 01             	sub    $0x1,%eax
40929e:	0f 85 9a 27 01 00    	jne    0x41ba3e
4092a4:	8b 4d e0             	mov    -0x20(%ebp),%ecx
4092a7:	6a 2d                	push   $0x2d
4092a9:	5b                   	pop    %ebx
4092aa:	66 3b cb             	cmp    %bx,%cx
4092ad:	74 5c                	je     0x40930b
4092af:	83 0e 10             	orl    $0x10,(%esi)
4092b2:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4092b5:	33 d2                	xor    %edx,%edx
4092b7:	66 39 54 47 06       	cmp    %dx,0x6(%edi,%eax,2)
4092bc:	0f 84 74 ff ff ff    	je     0x409236
4092c2:	e9 a6 27 01 00       	jmp    0x41ba6d
4092c7:	8b 45 e0             	mov    -0x20(%ebp),%eax
4092ca:	8b 0e                	mov    (%esi),%ecx
4092cc:	5a                   	pop    %edx
4092cd:	66 3b c2             	cmp    %dx,%ax
4092d0:	74 31                	je     0x409303
4092d2:	81 c9 00 40 00 00    	or     $0x4000,%ecx
4092d8:	89 0e                	mov    %ecx,(%esi)
4092da:	66 3b c2             	cmp    %dx,%ax
4092dd:	0f 84 33 27 01 00    	je     0x41ba16
4092e3:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4092e6:	8b d6                	mov    %esi,%edx
4092e8:	83 c0 03             	add    $0x3,%eax
4092eb:	8d 0c 47             	lea    (%edi,%eax,2),%ecx
4092ee:	e8 ac d3 00 00       	call   0x41669f
4092f3:	85 c0                	test   %eax,%eax
4092f5:	0f 84 3b ff ff ff    	je     0x409236
4092fb:	33 c0                	xor    %eax,%eax
4092fd:	40                   	inc    %eax
4092fe:	e9 6e ff ff ff       	jmp    0x409271
409303:	81 f1 00 40 00 00    	xor    $0x4000,%ecx
409309:	eb cd                	jmp    0x4092d8
40930b:	83 36 10             	xorl   $0x10,(%esi)
40930e:	eb a2                	jmp    0x4092b2
409310:	8b ff                	mov    %edi,%edi
409312:	55                   	push   %ebp
409313:	8b ec                	mov    %esp,%ebp
409315:	81 ec 7c 01 00 00    	sub    $0x17c,%esp
40931b:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
409320:	33 c5                	xor    %ebp,%eax
409322:	89 45 fc             	mov    %eax,-0x4(%ebp)
409325:	53                   	push   %ebx
409326:	56                   	push   %esi
409327:	8b 75 08             	mov    0x8(%ebp),%esi
40932a:	89 b5 98 fe ff ff    	mov    %esi,-0x168(%ebp)
409330:	57                   	push   %edi
409331:	8b fa                	mov    %edx,%edi
409333:	85 c9                	test   %ecx,%ecx
409335:	0f 85 81 28 01 00    	jne    0x41bbbc
40933b:	8d 85 a8 fe ff ff    	lea    -0x158(%ebp),%eax
409341:	50                   	push   %eax
409342:	ff 15 c4 a2 44 00    	call   *0x44a2c4
409348:	8d 85 90 fe ff ff    	lea    -0x170(%ebp),%eax
40934e:	50                   	push   %eax
40934f:	8d 85 a8 fe ff ff    	lea    -0x158(%ebp),%eax
409355:	50                   	push   %eax
409356:	ff 15 f0 a2 44 00    	call   *0x44a2f0
40935c:	8d 85 88 fe ff ff    	lea    -0x178(%ebp),%eax
409362:	50                   	push   %eax
409363:	8d 85 90 fe ff ff    	lea    -0x170(%ebp),%eax
409369:	50                   	push   %eax
40936a:	ff 15 c0 a0 44 00    	call   *0x44a0c0
409370:	8d 85 a8 fe ff ff    	lea    -0x158(%ebp),%eax
409376:	50                   	push   %eax
409377:	8d 85 88 fe ff ff    	lea    -0x178(%ebp),%eax
40937d:	50                   	push   %eax
40937e:	ff 15 ec a2 44 00    	call   *0x44a2ec
409384:	83 ff 01             	cmp    $0x1,%edi
409387:	0f 85 4c 28 01 00    	jne    0x41bbd9
40938d:	0f b7 85 b6 fe ff ff 	movzwl -0x14a(%ebp),%eax
409394:	33 d2                	xor    %edx,%edx
409396:	6a 0a                	push   $0xa
409398:	59                   	pop    %ecx
409399:	f7 f1                	div    %ecx
40939b:	b9 e0 c9 43 00       	mov    $0x43c9e0,%ecx
4093a0:	50                   	push   %eax
4093a1:	0f b7 85 b4 fe ff ff 	movzwl -0x14c(%ebp),%eax
4093a8:	68 c0 c9 43 00       	push   $0x43c9c0
4093ad:	50                   	push   %eax
4093ae:	0f b7 85 b2 fe ff ff 	movzwl -0x14e(%ebp),%eax
4093b5:	51                   	push   %ecx
4093b6:	50                   	push   %eax
4093b7:	0f b7 85 b0 fe ff ff 	movzwl -0x150(%ebp),%eax
4093be:	51                   	push   %ecx
4093bf:	50                   	push   %eax
4093c0:	68 2c 22 40 00       	push   $0x40222c
4093c5:	85 f6                	test   %esi,%esi
4093c7:	0f 84 ff 27 01 00    	je     0x41bbcc
4093cd:	ff 75 0c             	push   0xc(%ebp)
4093d0:	56                   	push   %esi
4093d1:	e8 e9 06 00 00       	call   0x409abf
4093d6:	83 c4 28             	add    $0x28,%esp
4093d9:	8d 56 02             	lea    0x2(%esi),%edx
4093dc:	33 c9                	xor    %ecx,%ecx
4093de:	6a 02                	push   $0x2
4093e0:	5b                   	pop    %ebx
4093e1:	66 8b 06             	mov    (%esi),%ax
4093e4:	03 f3                	add    %ebx,%esi
4093e6:	66 3b c1             	cmp    %cx,%ax
4093e9:	75 f6                	jne    0x4093e1
4093eb:	2b f2                	sub    %edx,%esi
4093ed:	d1 fe                	sar    $1,%esi
4093ef:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4093f2:	8b c6                	mov    %esi,%eax
4093f4:	5f                   	pop    %edi
4093f5:	5e                   	pop    %esi
4093f6:	33 cd                	xor    %ebp,%ecx
4093f8:	5b                   	pop    %ebx
4093f9:	e8 32 d7 00 00       	call   0x416b30
4093fe:	c9                   	leave
4093ff:	c2 08 00             	ret    $0x8
409402:	8b ff                	mov    %edi,%edi
409404:	55                   	push   %ebp
409405:	8b ec                	mov    %esp,%ebp
409407:	51                   	push   %ecx
409408:	8b 45 08             	mov    0x8(%ebp),%eax
40940b:	56                   	push   %esi
40940c:	57                   	push   %edi
40940d:	ff 75 0c             	push   0xc(%ebp)
409410:	8b f9                	mov    %ecx,%edi
409412:	8b f2                	mov    %edx,%esi
409414:	33 c9                	xor    %ecx,%ecx
409416:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
40941a:	8b cf                	mov    %edi,%ecx
40941c:	e8 1f 68 00 00       	call   0x40fc40
409421:	ff 75 10             	push   0x10(%ebp)
409424:	8b d6                	mov    %esi,%edx
409426:	8b cf                	mov    %edi,%ecx
409428:	e8 97 07 00 00       	call   0x409bc4
40942d:	5f                   	pop    %edi
40942e:	5e                   	pop    %esi
40942f:	59                   	pop    %ecx
409430:	5d                   	pop    %ebp
409431:	c2 0c 00             	ret    $0xc
409434:	a1 a0 25 43 00       	mov    0x4325a0,%eax
409439:	3d a4 03 00 00       	cmp    $0x3a4,%eax
40943e:	74 15                	je     0x409455
409440:	3d a8 03 00 00       	cmp    $0x3a8,%eax
409445:	74 0e                	je     0x409455
409447:	3d b4 03 00 00       	cmp    $0x3b4,%eax
40944c:	0f 87 8f 29 01 00    	ja     0x41bde1
409452:	32 c0                	xor    %al,%al
409454:	c3                   	ret
409455:	b0 01                	mov    $0x1,%al
409457:	c3                   	ret
409458:	68 08 01 00 00       	push   $0x108
40945d:	68 d0 c9 42 00       	push   $0x42c9d0
409462:	e8 29 e9 00 00       	call   0x417d90
409467:	89 95 58 ff ff ff    	mov    %edx,-0xa8(%ebp)
40946d:	89 8d 44 ff ff ff    	mov    %ecx,-0xbc(%ebp)
409473:	8b 7d 0c             	mov    0xc(%ebp),%edi
409476:	8b 5d 10             	mov    0x10(%ebp),%ebx
409479:	33 f6                	xor    %esi,%esi
40947b:	89 b5 54 ff ff ff    	mov    %esi,-0xac(%ebp)
409481:	89 b5 5c ff ff ff    	mov    %esi,-0xa4(%ebp)
409487:	89 b5 50 ff ff ff    	mov    %esi,-0xb0(%ebp)
40948d:	c7 85 4c ff ff ff 20 	movl   $0x20,-0xb4(%ebp)
409494:	00 00 00
409497:	8d 85 4c ff ff ff    	lea    -0xb4(%ebp),%eax
40949d:	50                   	push   %eax
40949e:	56                   	push   %esi
40949f:	33 c0                	xor    %eax,%eax
4094a1:	40                   	inc    %eax
4094a2:	50                   	push   %eax
4094a3:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
4094a9:	50                   	push   %eax
4094aa:	ff 15 04 a2 44 00    	call   *0x44a204
4094b0:	85 c0                	test   %eax,%eax
4094b2:	0f 84 39 29 01 00    	je     0x41bdf1
4094b8:	33 c9                	xor    %ecx,%ecx
4094ba:	41                   	inc    %ecx
4094bb:	89 8d 48 ff ff ff    	mov    %ecx,-0xb8(%ebp)
4094c1:	56                   	push   %esi
4094c2:	56                   	push   %esi
4094c3:	6a 04                	push   $0x4
4094c5:	8d 85 48 ff ff ff    	lea    -0xb8(%ebp),%eax
4094cb:	50                   	push   %eax
4094cc:	68 01 00 06 00       	push   $0x60001
4094d1:	56                   	push   %esi
4094d2:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
4094d8:	50                   	push   %eax
4094d9:	ff 15 00 a2 44 00    	call   *0x44a200
4094df:	85 c0                	test   %eax,%eax
4094e1:	0f 84 26 29 01 00    	je     0x41be0d
4094e7:	6a 48                	push   $0x48
4094e9:	56                   	push   %esi
4094ea:	8d 85 e8 fe ff ff    	lea    -0x118(%ebp),%eax
4094f0:	50                   	push   %eax
4094f1:	e8 c7 ea 00 00       	call   0x417fbd
4094f6:	83 c4 0c             	add    $0xc,%esp
4094f9:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
4094ff:	89 85 2c ff ff ff    	mov    %eax,-0xd4(%ebp)
409505:	c7 85 e8 fe ff ff 48 	movl   $0x48,-0x118(%ebp)
40950c:	00 00 00
40950f:	8b 45 14             	mov    0x14(%ebp),%eax
409512:	89 85 f4 fe ff ff    	mov    %eax,-0x10c(%ebp)
409518:	89 b5 f8 fe ff ff    	mov    %esi,-0x108(%ebp)
40951e:	33 c9                	xor    %ecx,%ecx
409520:	41                   	inc    %ecx
409521:	89 8d fc fe ff ff    	mov    %ecx,-0x104(%ebp)
409527:	6a 64                	push   $0x64
409529:	58                   	pop    %eax
40952a:	89 85 00 ff ff ff    	mov    %eax,-0x100(%ebp)
409530:	89 85 04 ff ff ff    	mov    %eax,-0xfc(%ebp)
409536:	89 b5 14 ff ff ff    	mov    %esi,-0xec(%ebp)
40953c:	66 89 8d 18 ff ff ff 	mov    %cx,-0xe8(%ebp)
409543:	6a 44                	push   $0x44
409545:	56                   	push   %esi
409546:	8d 45 98             	lea    -0x68(%ebp),%eax
409549:	50                   	push   %eax
40954a:	e8 6e ea 00 00       	call   0x417fbd
40954f:	83 c4 0c             	add    $0xc,%esp
409552:	c7 45 98 44 00 00 00 	movl   $0x44,-0x68(%ebp)
409559:	8d 45 98             	lea    -0x68(%ebp),%eax
40955c:	50                   	push   %eax
40955d:	ff 15 f0 a1 44 00    	call   *0x44a1f0
409563:	8b 45 a0             	mov    -0x60(%ebp),%eax
409566:	89 85 f0 fe ff ff    	mov    %eax,-0x110(%ebp)
40956c:	89 75 fc             	mov    %esi,-0x4(%ebp)
40956f:	b9 1c 22 40 00       	mov    $0x40221c,%ecx
409574:	e8 17 88 00 00       	call   0x411d90
409579:	85 c0                	test   %eax,%eax
40957b:	75 05                	jne    0x409582
40957d:	b8 b8 20 40 00       	mov    $0x4020b8,%eax
409582:	8b c8                	mov    %eax,%ecx
409584:	e8 27 17 00 00       	call   0x40acb0
409589:	89 85 50 ff ff ff    	mov    %eax,-0xb0(%ebp)
40958f:	85 c0                	test   %eax,%eax
409591:	0f 84 b2 28 01 00    	je     0x41be49
409597:	83 3d 58 67 43 00 00 	cmpl   $0x0,0x436758
40959e:	0f 84 c0 28 01 00    	je     0x41be64
4095a4:	6a 5c                	push   $0x5c
4095a6:	5a                   	pop    %edx
4095a7:	8b cb                	mov    %ebx,%ecx
4095a9:	e8 47 6c 00 00       	call   0x4101f5
4095ae:	85 c0                	test   %eax,%eax
4095b0:	74 14                	je     0x4095c6
4095b2:	68 bc 20 40 00       	push   $0x4020bc
4095b7:	50                   	push   %eax
4095b8:	ff 15 70 a2 44 00    	call   *0x44a270
4095be:	85 c0                	test   %eax,%eax
4095c0:	0f 84 bd 28 01 00    	je     0x41be83
4095c6:	e8 6a ec ff ff       	call   0x408235
4095cb:	a1 48 67 43 00       	mov    0x436748,%eax
4095d0:	85 c0                	test   %eax,%eax
4095d2:	0f 85 2e 01 00 00    	jne    0x409706
4095d8:	a1 f8 8d 44 00       	mov    0x448df8,%eax