40602a:	57                   	push   %edi
40602b:	ff 15 20 f1 40 00    	call   *0x40f120
406031:	85 c0                	test   %eax,%eax
406033:	75 07                	jne    0x40603c
406035:	66 89 85 78 ff ff ff 	mov    %ax,-0x88(%ebp)
40603c:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
406042:	89 85 6c fe ff ff    	mov    %eax,-0x194(%ebp)
406048:	c7 85 68 fe ff ff e0 	movl   $0x4019e0,-0x198(%ebp)
40604f:	19 40 00
406052:	66 39 3e             	cmp    %di,(%esi)
406055:	74 06                	je     0x40605d
406057:	89 b5 68 fe ff ff    	mov    %esi,-0x198(%ebp)
40605d:	6a 20                	push   $0x20
40605f:	8d 85 38 ff ff ff    	lea    -0xc8(%ebp),%eax
406065:	50                   	push   %eax
406066:	68 54 04 00 00       	push   $0x454
40606b:	57                   	push   %edi
40606c:	ff 15 20 f1 40 00    	call   *0x40f120
406072:	85 c0                	test   %eax,%eax
406074:	75 07                	jne    0x40607d
406076:	66 89 85 38 ff ff ff 	mov    %ax,-0xc8(%ebp)
40607d:	6a 20                	push   $0x20
40607f:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
406085:	50                   	push   %eax
406086:	68 68 04 00 00       	push   $0x468
40608b:	57                   	push   %edi
40608c:	ff 15 20 f1 40 00    	call   *0x40f120
406092:	85 c0                	test   %eax,%eax
406094:	75 07                	jne    0x40609d
406096:	66 89 85 f8 fe ff ff 	mov    %ax,-0x108(%ebp)
40609d:	6a 20                	push   $0x20
40609f:	8d 85 b8 fe ff ff    	lea    -0x148(%ebp),%eax
4060a5:	50                   	push   %eax
4060a6:	68 67 04 00 00       	push   $0x467
4060ab:	57                   	push   %edi
4060ac:	ff 15 20 f1 40 00    	call   *0x40f120
4060b2:	85 c0                	test   %eax,%eax
4060b4:	75 07                	jne    0x4060bd
4060b6:	66 89 85 b8 fe ff ff 	mov    %ax,-0x148(%ebp)
4060bd:	6a 20                	push   $0x20
4060bf:	8d 85 78 fe ff ff    	lea    -0x188(%ebp),%eax
4060c5:	50                   	push   %eax
4060c6:	68 25 04 00 00       	push   $0x425
4060cb:	57                   	push   %edi
4060cc:	ff 15 20 f1 40 00    	call   *0x40f120
4060d2:	85 c0                	test   %eax,%eax
4060d4:	75 07                	jne    0x4060dd
4060d6:	66 89 85 78 fe ff ff 	mov    %ax,-0x188(%ebp)
4060dd:	8d 86 fa fb ff ff    	lea    -0x406(%esi),%eax
4060e3:	50                   	push   %eax
4060e4:	8d 85 38 ff ff ff    	lea    -0xc8(%ebp),%eax
4060ea:	50                   	push   %eax
4060eb:	ff b5 6c fe ff ff    	push   -0x194(%ebp)
4060f1:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
4060f7:	50                   	push   %eax
4060f8:	0f b7 86 00 02 00 00 	movzwl 0x200(%esi),%eax
4060ff:	50                   	push   %eax
406100:	ff b5 68 fe ff ff    	push   -0x198(%ebp)
406106:	8d 85 b8 fe ff ff    	lea    -0x148(%ebp),%eax
40610c:	50                   	push   %eax
40610d:	8d 86 38 fa ff ff    	lea    -0x5c8(%esi),%eax
406113:	50                   	push   %eax
406114:	8d 85 78 fe ff ff    	lea    -0x188(%ebp),%eax
40611a:	50                   	push   %eax
40611b:	68 e8 19 40 00       	push   $0x4019e8
406120:	e8 95 c7 ff ff       	call   0x4028ba
406125:	83 c4 28             	add    $0x28,%esp
406128:	83 be fc fd ff ff ff 	cmpl   $0xffffffff,-0x204(%esi)
40612f:	6a 20                	push   $0x20
406131:	75 4a                	jne    0x40617d
406133:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
406139:	50                   	push   %eax
40613a:	68 6c 04 00 00       	push   $0x46c
40613f:	57                   	push   %edi
406140:	ff 15 20 f1 40 00    	call   *0x40f120
406146:	85 c0                	test   %eax,%eax
406148:	75 07                	jne    0x406151
40614a:	66 89 85 78 ff ff ff 	mov    %ax,-0x88(%ebp)
406151:	6a 20                	push   $0x20
406153:	8d 45 b8             	lea    -0x48(%ebp),%eax
406156:	50                   	push   %eax
406157:	68 6b 04 00 00       	push   $0x46b
40615c:	57                   	push   %edi
40615d:	ff 15 20 f1 40 00    	call   *0x40f120
406163:	85 c0                	test   %eax,%eax
406165:	75 04                	jne    0x40616b
406167:	66 89 45 b8          	mov    %ax,-0x48(%ebp)
40616b:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
406171:	50                   	push   %eax
406172:	8d 45 b8             	lea    -0x48(%ebp),%eax
406175:	50                   	push   %eax
406176:	68 9c 1a 40 00       	push   $0x401a9c
40617b:	eb 27                	jmp    0x4061a4
40617d:	8d 45 b8             	lea    -0x48(%ebp),%eax
406180:	50                   	push   %eax
406181:	68 6b 04 00 00       	push   $0x46b
406186:	57                   	push   %edi
406187:	ff 15 20 f1 40 00    	call   *0x40f120
40618d:	85 c0                	test   %eax,%eax
40618f:	75 04                	jne    0x406195
406191:	66 89 45 b8          	mov    %ax,-0x48(%ebp)
406195:	ff b6 fc fd ff ff    	push   -0x204(%esi)
40619b:	8d 45 b8             	lea    -0x48(%ebp),%eax
40619e:	50                   	push   %eax
40619f:	68 d4 1a 40 00       	push   $0x401ad4
4061a4:	e8 11 c7 ff ff       	call   0x4028ba
4061a9:	83 c4 0c             	add    $0xc,%esp
4061ac:	ff b6 0c 02 00 00    	push   0x20c(%esi)
4061b2:	ff b6 08 02 00 00    	push   0x208(%esi)
4061b8:	e8 ce ce ff ff       	call   0x40308b
4061bd:	8d 96 14 02 00 00    	lea    0x214(%esi),%edx
4061c3:	e8 3c d4 ff ff       	call   0x403604
4061c8:	8b 8e 10 02 00 00    	mov    0x210(%esi),%ecx
4061ce:	85 c9                	test   %ecx,%ecx
4061d0:	74 05                	je     0x4061d7
4061d2:	e8 b9 d0 ff ff       	call   0x403290
4061d7:	68 c4 13 40 00       	push   $0x4013c4
4061dc:	e8 d9 c6 ff ff       	call   0x4028ba
4061e1:	8b 85 64 fe ff ff    	mov    -0x19c(%ebp),%eax
4061e7:	81 c6 10 08 00 00    	add    $0x810,%esi
4061ed:	40                   	inc    %eax
4061ee:	59                   	pop    %ecx
4061ef:	89 85 64 fe ff ff    	mov    %eax,-0x19c(%ebp)
4061f5:	3b 85 74 fe ff ff    	cmp    -0x18c(%ebp),%eax
4061fb:	0f 82 f5 fd ff ff    	jb     0x405ff6
406201:	8b bd 60 fe ff ff    	mov    -0x1a0(%ebp),%edi
406207:	57                   	push   %edi
406208:	ff 15 b0 f0 40 00    	call   *0x40f0b0
40620e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406211:	8b c3                	mov    %ebx,%eax
406213:	5f                   	pop    %edi
406214:	5e                   	pop    %esi
406215:	33 cd                	xor    %ebp,%ecx
406217:	5b                   	pop    %ebx
406218:	e8 b3 28 00 00       	call   0x408ad0
40621d:	c9                   	leave
40621e:	c3                   	ret
40621f:	8b ff                	mov    %edi,%edi
406221:	55                   	push   %ebp
406222:	8b ec                	mov    %esp,%ebp
406224:	51                   	push   %ecx
406225:	51                   	push   %ecx
406226:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40622a:	8b c1                	mov    %ecx,%eax
40622c:	53                   	push   %ebx
40622d:	56                   	push   %esi
40622e:	57                   	push   %edi
40622f:	6a 00                	push   $0x0
406231:	8d 4d fc             	lea    -0x4(%ebp),%ecx
406234:	89 45 f8             	mov    %eax,-0x8(%ebp)
406237:	51                   	push   %ecx
406238:	ff 75 08             	push   0x8(%ebp)
40623b:	8b da                	mov    %edx,%ebx
40623d:	53                   	push   %ebx
40623e:	50                   	push   %eax
40623f:	ff 15 88 f0 40 00    	call   *0x40f088
406245:	8b f8                	mov    %eax,%edi
406247:	83 ff 7a             	cmp    $0x7a,%edi
40624a:	75 42                	jne    0x40628e
40624c:	ff 75 fc             	push   -0x4(%ebp)
40624f:	ff 15 a4 f0 40 00    	call   *0x40f0a4
406255:	8b f0                	mov    %eax,%esi
406257:	85 f6                	test   %esi,%esi
406259:	75 05                	jne    0x406260
40625b:	6a 08                	push   $0x8
40625d:	58                   	pop    %eax
40625e:	eb 30                	jmp    0x406290
406260:	56                   	push   %esi
406261:	8d 45 fc             	lea    -0x4(%ebp),%eax
406264:	50                   	push   %eax
406265:	ff 75 08             	push   0x8(%ebp)
406268:	53                   	push   %ebx
406269:	ff 75 f8             	push   -0x8(%ebp)
40626c:	ff 15 88 f0 40 00    	call   *0x40f088
406272:	8b f8                	mov    %eax,%edi
406274:	85 ff                	test   %edi,%edi
406276:	75 0f                	jne    0x406287
406278:	8b 45 10             	mov    0x10(%ebp),%eax
40627b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40627e:	89 30                	mov    %esi,(%eax)
406280:	8b 45 fc             	mov    -0x4(%ebp),%eax
406283:	89 01                	mov    %eax,(%ecx)
406285:	eb 07                	jmp    0x40628e
406287:	56                   	push   %esi
406288:	ff 15 b0 f0 40 00    	call   *0x40f0b0
40628e:	8b c7                	mov    %edi,%eax
406290:	5f                   	pop    %edi
406291:	5e                   	pop    %esi
406292:	5b                   	pop    %ebx
406293:	c9                   	leave
406294:	c2 0c 00             	ret    $0xc
406297:	8b ff                	mov    %edi,%edi
406299:	55                   	push   %ebp
40629a:	8b ec                	mov    %esp,%ebp
40629c:	81 ec 94 00 00 00    	sub    $0x94,%esp
4062a2:	a1 04 a0 40 00       	mov    0x40a004,%eax
4062a7:	33 c5                	xor    %ebp,%eax
4062a9:	89 45 fc             	mov    %eax,-0x4(%ebp)
4062ac:	53                   	push   %ebx
4062ad:	56                   	push   %esi
4062ae:	57                   	push   %edi
4062af:	6a 40                	push   $0x40
4062b1:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
4062b7:	8b f1                	mov    %ecx,%esi
4062b9:	6a 00                	push   $0x0
4062bb:	50                   	push   %eax
4062bc:	8b fa                	mov    %edx,%edi
4062be:	89 b5 6c ff ff ff    	mov    %esi,-0x94(%ebp)
4062c4:	e8 1b 2e 00 00       	call   0x4090e4
4062c9:	6a 40                	push   $0x40
4062cb:	8d 45 bc             	lea    -0x44(%ebp),%eax
4062ce:	6a 00                	push   $0x0
4062d0:	50                   	push   %eax
4062d1:	e8 0e 2e 00 00       	call   0x4090e4
4062d6:	33 db                	xor    %ebx,%ebx
4062d8:	83 c4 18             	add    $0x18,%esp
4062db:	89 9d 74 ff ff ff    	mov    %ebx,-0x8c(%ebp)
4062e1:	85 f6                	test   %esi,%esi
4062e3:	0f 84 f0 00 00 00    	je     0x4063d9
4062e9:	ff 37                	push   (%edi)
4062eb:	53                   	push   %ebx
4062ec:	68 6e 04 00 00       	push   $0x46e
4062f1:	e8 99 c6 ff ff       	call   0x40298f
4062f6:	68 c4 13 40 00       	push   $0x4013c4
4062fb:	e8 ba c5 ff ff       	call   0x4028ba
406300:	8b 07                	mov    (%edi),%eax
406302:	83 c4 10             	add    $0x10,%esp
406305:	85 c0                	test   %eax,%eax
406307:	75 05                	jne    0x40630e
406309:	6a 04                	push   $0x4
40630b:	5e                   	pop    %esi
40630c:	eb 0c                	jmp    0x40631a
40630e:	69 f0 02 04 00 00    	imul   $0x402,%eax,%esi
406314:	83 c6 09             	add    $0x9,%esi
406317:	83 e6 fc             	and    $0xfffffffc,%esi
40631a:	89 b5 78 ff ff ff    	mov    %esi,-0x88(%ebp)
406320:	3b 75 08             	cmp    0x8(%ebp),%esi
406323:	0f 87 b0 00 00 00    	ja     0x4063d9
406329:	83 a5 70 ff ff ff 00 	andl   $0x0,-0x90(%ebp)
406330:	85 c0                	test   %eax,%eax
406332:	0f 84 89 00 00 00    	je     0x4063c1
406338:	8b b5 70 ff ff ff    	mov    -0x90(%ebp),%esi
40633e:	8d 9f 04 04 00 00    	lea    0x404(%edi),%ebx
406344:	6a 20                	push   $0x20
406346:	8d 45 bc             	lea    -0x44(%ebp),%eax
406349:	50                   	push   %eax
40634a:	68 6f 04 00 00       	push   $0x46f
40634f:	6a 00                	push   $0x0
406351:	ff 15 20 f1 40 00    	call   *0x40f120
406357:	85 c0                	test   %eax,%eax
406359:	75 04                	jne    0x40635f
40635b:	66 89 45 bc          	mov    %ax,-0x44(%ebp)
40635f:	6a 20                	push   $0x20
406361:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
406367:	50                   	push   %eax
406368:	68 67 04 00 00       	push   $0x467
40636d:	6a 00                	push   $0x0
40636f:	ff 15 20 f1 40 00    	call   *0x40f120
406375:	85 c0                	test   %eax,%eax
406377:	75 07                	jne    0x406380
406379:	66 89 85 7c ff ff ff 	mov    %ax,-0x84(%ebp)
406380:	8d 83 00 fc ff ff    	lea    -0x400(%ebx),%eax
406386:	50                   	push   %eax
406387:	8d 45 bc             	lea    -0x44(%ebp),%eax
40638a:	50                   	push   %eax
40638b:	0f b7 03             	movzwl (%ebx),%eax
40638e:	50                   	push   %eax
40638f:	8d 83 00 fe ff ff    	lea    -0x200(%ebx),%eax
406395:	50                   	push   %eax
406396:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
40639c:	50                   	push   %eax
40639d:	68 08 1b 40 00       	push   $0x401b08
4063a2:	e8 13 c5 ff ff       	call   0x4028ba
4063a7:	83 c4 18             	add    $0x18,%esp
4063aa:	81 c3 02 04 00 00    	add    $0x402,%ebx
4063b0:	46                   	inc    %esi
4063b1:	3b 37                	cmp    (%edi),%esi
4063b3:	72 8f                	jb     0x406344
4063b5:	8b b5 78 ff ff ff    	mov    -0x88(%ebp),%esi
4063bb:	8b 9d 74 ff ff ff    	mov    -0x8c(%ebp),%ebx
4063c1:	29 75 08             	sub    %esi,0x8(%ebp)
4063c4:	03 fe                	add    %esi,%edi
4063c6:	43                   	inc    %ebx
4063c7:	89 9d 74 ff ff ff    	mov    %ebx,-0x8c(%ebp)
4063cd:	3b 9d 6c ff ff ff    	cmp    -0x94(%ebp),%ebx
4063d3:	0f 82 10 ff ff ff    	jb     0x4062e9
4063d9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4063dc:	5f                   	pop    %edi
4063dd:	5e                   	pop    %esi
4063de:	33 cd                	xor    %ebp,%ecx
4063e0:	5b                   	pop    %ebx
4063e1:	e8 ea 26 00 00       	call   0x408ad0
4063e6:	c9                   	leave
4063e7:	c2 04 00             	ret    $0x4
4063ea:	8b ff                	mov    %edi,%edi
4063ec:	55                   	push   %ebp
4063ed:	8b ec                	mov    %esp,%ebp
4063ef:	81 ec e4 02 00 00    	sub    $0x2e4,%esp
4063f5:	a1 04 a0 40 00       	mov    0x40a004,%eax
4063fa:	33 c5                	xor    %ebp,%eax
4063fc:	89 45 fc             	mov    %eax,-0x4(%ebp)
4063ff:	53                   	push   %ebx
406400:	56                   	push   %esi
406401:	57                   	push   %edi
406402:	6a 40                	push   $0x40
406404:	33 ff                	xor    %edi,%edi
406406:	8d 45 b8             	lea    -0x48(%ebp),%eax
406409:	8b da                	mov    %edx,%ebx
40640b:	8b f1                	mov    %ecx,%esi
40640d:	57                   	push   %edi
40640e:	50                   	push   %eax
40640f:	89 9d 24 fd ff ff    	mov    %ebx,-0x2dc(%ebp)
406415:	e8 ca 2c 00 00       	call   0x4090e4
40641a:	83 c4 0c             	add    $0xc,%esp
40641d:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
406423:	6a 40                	push   $0x40
406425:	57                   	push   %edi
406426:	50                   	push   %eax
406427:	e8 b8 2c 00 00       	call   0x4090e4
40642c:	83 c4 0c             	add    $0xc,%esp
40642f:	8d 85 38 ff ff ff    	lea    -0xc8(%ebp),%eax
406435:	6a 40                	push   $0x40
406437:	57                   	push   %edi
406438:	50                   	push   %eax
406439:	e8 a6 2c 00 00       	call   0x4090e4
40643e:	83 c4 0c             	add    $0xc,%esp
406441:	83 fe 03             	cmp    $0x3,%esi
406444:	74 1f                	je     0x406465
406446:	83 fe 04             	cmp    $0x4,%esi
406449:	74 0f                	je     0x40645a
40644b:	6a 08                	push   $0x8
40644d:	59                   	pop    %ecx
40644e:	e8 0c c6 ff ff       	call   0x402a5f
406453:	33 c0                	xor    %eax,%eax
406455:	e9 11 06 00 00       	jmp    0x406a6b
40645a:	8b 7b 0c             	mov    0xc(%ebx),%edi
40645d:	66 83 3f 2a          	cmpw   $0x2a,(%edi)
406461:	75 02                	jne    0x406465
406463:	33 ff                	xor    %edi,%edi
406465:	8b 4b 08             	mov    0x8(%ebx),%ecx
406468:	8d 85 2c fd ff ff    	lea    -0x2d4(%ebp),%eax
40646e:	50                   	push   %eax
40646f:	8d 85 28 fd ff ff    	lea    -0x2d8(%ebp),%eax
406475:	8b d7                	mov    %edi,%edx
406477:	50                   	push   %eax
406478:	6a 02                	push   $0x2
40647a:	e8 a0 fd ff ff       	call   0x40621f
40647f:	8b f0                	mov    %eax,%esi
406481:	85 f6                	test   %esi,%esi
406483:	75 54                	jne    0x4064d9