409167:	3b 3d 13 ea 8c a1    	cmp    0xa18cea13,%edi
40916d:	23 4d f0             	and    -0x10(%ebp),%ecx
409170:	55                   	push   %ebp
409171:	8b ec                	mov    %esp,%ebp
409173:	83 ec 50             	sub    $0x50,%esp
409176:	53                   	push   %ebx
409177:	56                   	push   %esi
409178:	57                   	push   %edi
409179:	6a 3f                	push   $0x3f
40917b:	8d 45 b1             	lea    -0x4f(%ebp),%eax
40917e:	6a 00                	push   $0x0
409180:	50                   	push   %eax
409181:	c6 45 b0 00          	movb   $0x0,-0x50(%ebp)
409185:	e8 56 f2 00 00       	call   0x4183e0
40918a:	8d 4d b0             	lea    -0x50(%ebp),%ecx
40918d:	6a 04                	push   $0x4
40918f:	51                   	push   %ecx
409190:	e8 eb fd 00 00       	call   0x418f80
409195:	8b 75 08             	mov    0x8(%ebp),%esi
409198:	6a 75                	push   $0x75
40919a:	56                   	push   %esi
40919b:	e8 00 e5 ff ff       	call   0x4076a0
4091a0:	8b f8                	mov    %eax,%edi
4091a2:	6a 74                	push   $0x74
4091a4:	56                   	push   %esi
4091a5:	89 7d fc             	mov    %edi,-0x4(%ebp)
4091a8:	e8 f3 e4 ff ff       	call   0x4076a0
4091ad:	8b d8                	mov    %eax,%ebx
4091af:	83 c4 24             	add    $0x24,%esp
4091b2:	85 db                	test   %ebx,%ebx
4091b4:	0f 84 56 01 00 00    	je     0x409310
4091ba:	85 ff                	test   %edi,%edi
4091bc:	75 16                	jne    0x4091d4
4091be:	8d 55 b0             	lea    -0x50(%ebp),%edx
4091c1:	52                   	push   %edx
4091c2:	8d 86 8c 0c 00 00    	lea    0xc8c(%esi),%eax
4091c8:	50                   	push   %eax
4091c9:	e8 52 f2 ff ff       	call   0x408420
4091ce:	83 c4 08             	add    $0x8,%esp
4091d1:	89 45 fc             	mov    %eax,-0x4(%ebp)
4091d4:	53                   	push   %ebx
4091d5:	e8 d6 ba ff ff       	call   0x404cb0
4091da:	6a 4b                	push   $0x4b
4091dc:	56                   	push   %esi
4091dd:	89 45 f0             	mov    %eax,-0x10(%ebp)
4091e0:	8d be 8c 0c 00 00    	lea    0xc8c(%esi),%edi
4091e6:	e8 25 90 00 00       	call   0x412210
4091eb:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4091ee:	50                   	push   %eax
4091ef:	6a 00                	push   $0x0
4091f1:	6a 00                	push   $0x0
4091f3:	51                   	push   %ecx
4091f4:	57                   	push   %edi
4091f5:	e8 d6 90 00 00       	call   0x4122d0
4091fa:	6a 49                	push   $0x49
4091fc:	56                   	push   %esi
4091fd:	89 45 f4             	mov    %eax,-0xc(%ebp)
409200:	e8 0b 90 00 00       	call   0x412210
409205:	50                   	push   %eax
409206:	6a 00                	push   $0x0
409208:	6a 00                	push   $0x0
40920a:	53                   	push   %ebx
40920b:	57                   	push   %edi
40920c:	e8 bf 90 00 00       	call   0x4122d0
409211:	6a 4a                	push   $0x4a
409213:	56                   	push   %esi
409214:	89 45 fc             	mov    %eax,-0x4(%ebp)
409217:	e8 f4 8f 00 00       	call   0x412210
40921c:	83 c4 44             	add    $0x44,%esp
40921f:	50                   	push   %eax
409220:	6a 00                	push   $0x0
409222:	6a 00                	push   $0x0
409224:	53                   	push   %ebx
409225:	57                   	push   %edi
409226:	e8 a5 90 00 00       	call   0x4122d0
40922b:	6a 48                	push   $0x48
40922d:	56                   	push   %esi
40922e:	89 45 f8             	mov    %eax,-0x8(%ebp)
409231:	e8 da 8f 00 00       	call   0x412210
409236:	50                   	push   %eax
409237:	6a 00                	push   $0x0
409239:	6a 00                	push   $0x0
40923b:	53                   	push   %ebx
40923c:	57                   	push   %edi
40923d:	e8 8e 90 00 00       	call   0x4122d0
409242:	8b 7d fc             	mov    -0x4(%ebp),%edi
409245:	83 c4 30             	add    $0x30,%esp
409248:	89 86 bc 0c 00 00    	mov    %eax,0xcbc(%esi)
40924e:	85 ff                	test   %edi,%edi
409250:	0f 84 ba 00 00 00    	je     0x409310
409256:	8b 5d f8             	mov    -0x8(%ebp),%ebx
409259:	85 db                	test   %ebx,%ebx
40925b:	0f 84 af 00 00 00    	je     0x409310
409261:	85 c0                	test   %eax,%eax
409263:	0f 84 a7 00 00 00    	je     0x409310
409269:	e8 62 24 01 00       	call   0x41b6d0
40926e:	89 70 03             	mov    %esi,0x3(%eax)
409271:	e8 6c 24 01 00       	call   0x41b6e2
409276:	89 70 03             	mov    %esi,0x3(%eax)
409279:	e8 76 24 01 00       	call   0x41b6f4
40927e:	6a 01                	push   $0x1
409280:	6a 00                	push   $0x0
409282:	89 70 03             	mov    %esi,0x3(%eax)
409285:	e8 46 24 01 00       	call   0x41b6d0
40928a:	83 c0 02             	add    $0x2,%eax
40928d:	50                   	push   %eax
40928e:	8d 96 08 16 00 00    	lea    0x1608(%esi),%edx
409294:	52                   	push   %edx
409295:	57                   	push   %edi
409296:	56                   	push   %esi
409297:	e8 74 9c ff ff       	call   0x402f10
40929c:	83 c4 18             	add    $0x18,%esp
40929f:	6a 01                	push   $0x1
4092a1:	6a 00                	push   $0x0
4092a3:	e8 28 24 01 00       	call   0x41b6d0
4092a8:	83 c0 02             	add    $0x2,%eax
4092ab:	50                   	push   %eax
4092ac:	8d 86 88 16 00 00    	lea    0x1688(%esi),%eax
4092b2:	50                   	push   %eax
4092b3:	53                   	push   %ebx
4092b4:	56                   	push   %esi
4092b5:	e8 56 9c ff ff       	call   0x402f10
4092ba:	8b 7d f4             	mov    -0xc(%ebp),%edi
4092bd:	83 c4 18             	add    $0x18,%esp
4092c0:	85 ff                	test   %edi,%edi
4092c2:	74 1e                	je     0x4092e2
4092c4:	6a 00                	push   $0x0
4092c6:	6a 00                	push   $0x0
4092c8:	e8 15 24 01 00       	call   0x41b6e2
4092cd:	83 c0 02             	add    $0x2,%eax
4092d0:	50                   	push   %eax
4092d1:	8d 8e 08 17 00 00    	lea    0x1708(%esi),%ecx
4092d7:	51                   	push   %ecx
4092d8:	57                   	push   %edi
4092d9:	56                   	push   %esi
4092da:	e8 31 9c ff ff       	call   0x402f10
4092df:	83 c4 18             	add    $0x18,%esp
4092e2:	8b 7d f0             	mov    -0x10(%ebp),%edi
4092e5:	85 ff                	test   %edi,%edi
4092e7:	74 1e                	je     0x409307
4092e9:	6a 00                	push   $0x0
4092eb:	6a 00                	push   $0x0
4092ed:	e8 02 24 01 00       	call   0x41b6f4
4092f2:	83 c0 02             	add    $0x2,%eax
4092f5:	50                   	push   %eax
4092f6:	8d 96 88 17 00 00    	lea    0x1788(%esi),%edx
4092fc:	52                   	push   %edx
4092fd:	57                   	push   %edi
4092fe:	56                   	push   %esi
4092ff:	e8 0c 9c ff ff       	call   0x402f10
409304:	83 c4 18             	add    $0x18,%esp
409307:	56                   	push   %esi
409308:	e8 b3 b6 00 00       	call   0x4149c0
40930d:	83 c4 04             	add    $0x4,%esp
409310:	5f                   	pop    %edi
409311:	5e                   	pop    %esi
409312:	5b                   	pop    %ebx
409313:	8b e5                	mov    %ebp,%esp
409315:	5d                   	pop    %ebp
409316:	c3                   	ret
409317:	16                   	push   %ss
409318:	23 6e 62             	and    0x62(%esi),%ebp
40931b:	7a 0b                	jp     0x409328
40931d:	bb b1 2e 55 8b       	mov    $0x8b552eb1,%ebx
409322:	ec                   	in     (%dx),%al
409323:	81 ec 0c 01 00 00    	sub    $0x10c,%esp
409329:	53                   	push   %ebx
40932a:	56                   	push   %esi
40932b:	33 c0                	xor    %eax,%eax
40932d:	57                   	push   %edi
40932e:	6a 3f                	push   $0x3f
409330:	50                   	push   %eax
409331:	89 45 fc             	mov    %eax,-0x4(%ebp)
409334:	89 45 f4             	mov    %eax,-0xc(%ebp)
409337:	89 45 f8             	mov    %eax,-0x8(%ebp)
40933a:	88 45 b4             	mov    %al,-0x4c(%ebp)
40933d:	8d 45 b5             	lea    -0x4b(%ebp),%eax
409340:	50                   	push   %eax
409341:	e8 9a f0 00 00       	call   0x4183e0
409346:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
409349:	6a 04                	push   $0x4
40934b:	51                   	push   %ecx
40934c:	e8 2f fc 00 00       	call   0x418f80
409351:	8b 75 08             	mov    0x8(%ebp),%esi
409354:	6a 75                	push   $0x75
409356:	56                   	push   %esi
409357:	e8 44 e3 ff ff       	call   0x4076a0
40935c:	8b d8                	mov    %eax,%ebx
40935e:	6a 74                	push   $0x74
409360:	56                   	push   %esi
409361:	89 5d 08             	mov    %ebx,0x8(%ebp)
409364:	e8 37 e3 ff ff       	call   0x4076a0
409369:	83 c4 24             	add    $0x24,%esp
40936c:	8b f8                	mov    %eax,%edi
40936e:	85 db                	test   %ebx,%ebx
409370:	75 18                	jne    0x40938a
409372:	8d 55 b4             	lea    -0x4c(%ebp),%edx
409375:	52                   	push   %edx
409376:	8d 86 8c 0c 00 00    	lea    0xc8c(%esi),%eax
40937c:	50                   	push   %eax
40937d:	e8 9e f0 ff ff       	call   0x408420
409382:	83 c4 08             	add    $0x8,%esp
409385:	89 45 08             	mov    %eax,0x8(%ebp)
409388:	8b d8                	mov    %eax,%ebx
40938a:	85 ff                	test   %edi,%edi
40938c:	74 57                	je     0x4093e5
40938e:	6a 49                	push   $0x49
409390:	56                   	push   %esi
409391:	8d 9e 8c 0c 00 00    	lea    0xc8c(%esi),%ebx
409397:	e8 74 8e 00 00       	call   0x412210
40939c:	50                   	push   %eax
40939d:	6a 00                	push   $0x0
40939f:	6a 00                	push   $0x0
4093a1:	57                   	push   %edi
4093a2:	53                   	push   %ebx
4093a3:	e8 28 8f 00 00       	call   0x4122d0
4093a8:	6a 4a                	push   $0x4a
4093aa:	56                   	push   %esi
4093ab:	89 45 f4             	mov    %eax,-0xc(%ebp)
4093ae:	e8 5d 8e 00 00       	call   0x412210
4093b3:	50                   	push   %eax
4093b4:	6a 00                	push   $0x0
4093b6:	6a 00                	push   $0x0
4093b8:	57                   	push   %edi
4093b9:	53                   	push   %ebx
4093ba:	e8 11 8f 00 00       	call   0x4122d0
4093bf:	6a 48                	push   $0x48
4093c1:	56                   	push   %esi
4093c2:	89 45 f8             	mov    %eax,-0x8(%ebp)
4093c5:	e8 46 8e 00 00       	call   0x412210
4093ca:	83 c4 40             	add    $0x40,%esp
4093cd:	50                   	push   %eax
4093ce:	6a 00                	push   $0x0
4093d0:	6a 00                	push   $0x0
4093d2:	57                   	push   %edi
4093d3:	53                   	push   %ebx
4093d4:	e8 f7 8e 00 00       	call   0x4122d0
4093d9:	8b 5d 08             	mov    0x8(%ebp),%ebx
4093dc:	83 c4 14             	add    $0x14,%esp
4093df:	89 86 bc 0c 00 00    	mov    %eax,0xcbc(%esi)
4093e5:	85 db                	test   %ebx,%ebx
4093e7:	74 20                	je     0x409409
4093e9:	6a 4b                	push   $0x4b
4093eb:	56                   	push   %esi
4093ec:	e8 1f 8e 00 00       	call   0x412210
4093f1:	50                   	push   %eax
4093f2:	6a 00                	push   $0x0
4093f4:	6a 00                	push   $0x0
4093f6:	8d 8e 8c 0c 00 00    	lea    0xc8c(%esi),%ecx
4093fc:	53                   	push   %ebx
4093fd:	51                   	push   %ecx
4093fe:	e8 cd 8e 00 00       	call   0x4122d0
409403:	83 c4 1c             	add    $0x1c,%esp
409406:	89 45 fc             	mov    %eax,-0x4(%ebp)
409409:	e8 c2 22 01 00       	call   0x41b6d0
40940e:	89 70 03             	mov    %esi,0x3(%eax)
409411:	e8 cc 22 01 00       	call   0x41b6e2
409416:	8b 7d f4             	mov    -0xc(%ebp),%edi
409419:	89 70 03             	mov    %esi,0x3(%eax)
40941c:	85 ff                	test   %edi,%edi
40941e:	74 4c                	je     0x40946c
409420:	8b 5d f8             	mov    -0x8(%ebp),%ebx
409423:	85 db                	test   %ebx,%ebx
409425:	74 45                	je     0x40946c
409427:	83 be bc 0c 00 00 00 	cmpl   $0x0,0xcbc(%esi)
40942e:	74 3c                	je     0x40946c
409430:	6a 01                	push   $0x1
409432:	6a 00                	push   $0x0
409434:	e8 97 22 01 00       	call   0x41b6d0
409439:	83 c0 02             	add    $0x2,%eax
40943c:	50                   	push   %eax
40943d:	8d 96 08 16 00 00    	lea    0x1608(%esi),%edx
409443:	52                   	push   %edx
409444:	57                   	push   %edi
409445:	56                   	push   %esi
409446:	e8 c5 9a ff ff       	call   0x402f10
40944b:	83 c4 18             	add    $0x18,%esp
40944e:	6a 01                	push   $0x1
409450:	6a 00                	push   $0x0
409452:	e8 79 22 01 00       	call   0x41b6d0
409457:	83 c0 02             	add    $0x2,%eax
40945a:	50                   	push   %eax
40945b:	8d 86 88 16 00 00    	lea    0x1688(%esi),%eax
409461:	50                   	push   %eax
409462:	53                   	push   %ebx
409463:	56                   	push   %esi
409464:	e8 a7 9a ff ff       	call   0x402f10
409469:	83 c4 18             	add    $0x18,%esp
40946c:	8b 7d fc             	mov    -0x4(%ebp),%edi
40946f:	85 ff                	test   %edi,%edi
409471:	74 1e                	je     0x409491
409473:	6a 00                	push   $0x0
409475:	6a 00                	push   $0x0
409477:	e8 66 22 01 00       	call   0x41b6e2
40947c:	83 c0 02             	add    $0x2,%eax
40947f:	50                   	push   %eax
409480:	8d 8e 08 17 00 00    	lea    0x1708(%esi),%ecx
409486:	51                   	push   %ecx
409487:	57                   	push   %edi
409488:	56                   	push   %esi
409489:	e8 82 9a ff ff       	call   0x402f10
40948e:	83 c4 18             	add    $0x18,%esp
409491:	33 c0                	xor    %eax,%eax
409493:	6a 3f                	push   $0x3f
409495:	50                   	push   %eax
409496:	8d 95 35 ff ff ff    	lea    -0xcb(%ebp),%edx
40949c:	52                   	push   %edx
40949d:	89 45 f8             	mov    %eax,-0x8(%ebp)
4094a0:	89 45 fc             	mov    %eax,-0x4(%ebp)
4094a3:	88 85 34 ff ff ff    	mov    %al,-0xcc(%ebp)
4094a9:	e8 32 ef 00 00       	call   0x4183e0
4094ae:	8d 85 34 ff ff ff    	lea    -0xcc(%ebp),%eax
4094b4:	6a 01                	push   $0x1
4094b6:	50                   	push   %eax
4094b7:	e8 c4 fa 00 00       	call   0x418f80
4094bc:	8d 8d 34 ff ff ff    	lea    -0xcc(%ebp),%ecx
4094c2:	51                   	push   %ecx
4094c3:	8d be 8c 0c 00 00    	lea    0xc8c(%esi),%edi
4094c9:	57                   	push   %edi
4094ca:	e8 51 ef ff ff       	call   0x408420
4094cf:	6a 76                	push   $0x76
4094d1:	56                   	push   %esi
4094d2:	89 45 08             	mov    %eax,0x8(%ebp)
4094d5:	e8 c6 e1 ff ff       	call   0x4076a0
4094da:	8b d8                	mov    %eax,%ebx
4094dc:	83 c4 24             	add    $0x24,%esp
4094df:	85 db                	test   %ebx,%ebx
4094e1:	74 1b                	je     0x4094fe
4094e3:	6a 4c                	push   $0x4c
4094e5:	56                   	push   %esi
4094e6:	e8 25 8d 00 00       	call   0x412210
4094eb:	50                   	push   %eax
4094ec:	6a 00                	push   $0x0
4094ee:	6a 00                	push   $0x0
4094f0:	53                   	push   %ebx
4094f1:	57                   	push   %edi
4094f2:	e8 d9 8d 00 00       	call   0x4122d0
4094f7:	83 c4 1c             	add    $0x1c,%esp
4094fa:	8b d8                	mov    %eax,%ebx
4094fc:	eb 03                	jmp    0x409501
4094fe:	8b 5d f8             	mov    -0x8(%ebp),%ebx
409501:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
409505:	74 1d                	je     0x409524
409507:	6a 4c                	push   $0x4c
409509:	56                   	push   %esi
40950a:	e8 01 8d 00 00       	call   0x412210
40950f:	8b 55 08             	mov    0x8(%ebp),%edx
409512:	50                   	push   %eax
409513:	6a 00                	push   $0x0
409515:	6a 00                	push   $0x0