407f7c:	e8 3c 00 01 00       	call   0x417fbd
407f81:	33 c0                	xor    %eax,%eax
407f83:	8d 8d d8 fd ff ff    	lea    -0x228(%ebp),%ecx
407f89:	83 c4 0c             	add    $0xc,%esp
407f8c:	38 45 e4             	cmp    %al,-0x1c(%ebp)
407f8f:	0f 94 c0             	sete   %al
407f92:	48                   	dec    %eax
407f93:	25 e3 7e 00 00       	and    $0x7ee3,%eax
407f98:	03 c7                	add    %edi,%eax
407f9a:	50                   	push   %eax
407f9b:	e8 50 64 00 00       	call   0x40e3f0
407fa0:	85 c0                	test   %eax,%eax
407fa2:	78 5d                	js     0x408001
407fa4:	6a 3a                	push   $0x3a
407fa6:	58                   	pop    %eax
407fa7:	66 89 45 f2          	mov    %ax,-0xe(%ebp)
407fab:	6a 5c                	push   $0x5c
407fad:	58                   	pop    %eax
407fae:	66 89 45 f4          	mov    %ax,-0xc(%ebp)
407fb2:	33 c0                	xor    %eax,%eax
407fb4:	66 89 45 f6          	mov    %ax,-0xa(%ebp)
407fb8:	8d 45 f0             	lea    -0x10(%ebp),%eax
407fbb:	50                   	push   %eax
407fbc:	66 89 75 f0          	mov    %si,-0x10(%ebp)
407fc0:	ff 15 f4 a0 44 00    	call   *0x44a0f4
407fc6:	83 f8 01             	cmp    $0x1,%eax
407fc9:	0f 86 64 30 01 00    	jbe    0x41b033
407fcf:	83 f8 02             	cmp    $0x2,%eax
407fd2:	74 2d                	je     0x408001
407fd4:	83 f8 05             	cmp    $0x5,%eax
407fd7:	74 28                	je     0x408001
407fd9:	8b 45 e0             	mov    -0x20(%ebp),%eax
407fdc:	85 c0                	test   %eax,%eax
407fde:	74 44                	je     0x408024
407fe0:	53                   	push   %ebx
407fe1:	53                   	push   %ebx
407fe2:	53                   	push   %ebx
407fe3:	53                   	push   %ebx
407fe4:	8d 8d d0 fd ff ff    	lea    -0x230(%ebp),%ecx
407fea:	51                   	push   %ecx
407feb:	ff 75 e8             	push   -0x18(%ebp)
407fee:	50                   	push   %eax
407fef:	8d 45 f0             	lea    -0x10(%ebp),%eax
407ff2:	50                   	push   %eax
407ff3:	ff 15 dc a0 44 00    	call   *0x44a0dc
407ff9:	85 c0                	test   %eax,%eax
407ffb:	0f 84 3f 30 01 00    	je     0x41b040
408001:	8b 45 e0             	mov    -0x20(%ebp),%eax
408004:	89 5d e0             	mov    %ebx,-0x20(%ebp)
408007:	85 c0                	test   %eax,%eax
408009:	74 08                	je     0x408013
40800b:	50                   	push   %eax
40800c:	ff 15 e0 a3 44 00    	call   *0x44a3e0
408012:	59                   	pop    %ecx
408013:	33 c0                	xor    %eax,%eax
408015:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408018:	5f                   	pop    %edi
408019:	5e                   	pop    %esi
40801a:	33 cd                	xor    %ebp,%ecx
40801c:	5b                   	pop    %ebx
40801d:	e8 0e eb 00 00       	call   0x416b30
408022:	c9                   	leave
408023:	c3                   	ret
408024:	8d 85 d8 fd ff ff    	lea    -0x228(%ebp),%eax
40802a:	eb b4                	jmp    0x407fe0
40802c:	8b ff                	mov    %edi,%edi
40802e:	55                   	push   %ebp
40802f:	8b ec                	mov    %esp,%ebp
408031:	81 ec 2c 02 00 00    	sub    $0x22c,%esp
408037:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
40803c:	33 c5                	xor    %ebp,%eax
40803e:	89 45 fc             	mov    %eax,-0x4(%ebp)
408041:	53                   	push   %ebx
408042:	56                   	push   %esi
408043:	57                   	push   %edi
408044:	33 c0                	xor    %eax,%eax
408046:	c6 45 ec 01          	movb   $0x1,-0x14(%ebp)
40804a:	be 04 01 00 00       	mov    $0x104,%esi
40804f:	89 45 e8             	mov    %eax,-0x18(%ebp)
408052:	56                   	push   %esi
408053:	50                   	push   %eax
408054:	8d 85 e0 fd ff ff    	lea    -0x220(%ebp),%eax
40805a:	89 75 f0             	mov    %esi,-0x10(%ebp)
40805d:	50                   	push   %eax
40805e:	8b f9                	mov    %ecx,%edi
408060:	e8 58 ff 00 00       	call   0x417fbd
408065:	33 c0                	xor    %eax,%eax
408067:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
40806d:	83 c4 0c             	add    $0xc,%esp
408070:	38 45 ec             	cmp    %al,-0x14(%ebp)
408073:	0f 94 c0             	sete   %al
408076:	48                   	dec    %eax
408077:	25 e3 7e 00 00       	and    $0x7ee3,%eax
40807c:	03 c6                	add    %esi,%eax
40807e:	50                   	push   %eax
40807f:	e8 6c 63 00 00       	call   0x40e3f0
408084:	85 c0                	test   %eax,%eax
408086:	0f 88 22 01 00 00    	js     0x4081ae
40808c:	6a 24                	push   $0x24
40808e:	59                   	pop    %ecx
40808f:	e8 3c 5c 00 00       	call   0x40dcd0
408094:	8b f0                	mov    %eax,%esi
408096:	85 f6                	test   %esi,%esi
408098:	0f 84 f4 2f 01 00    	je     0x41b092
40809e:	8b ce                	mov    %esi,%ecx
4080a0:	89 3e                	mov    %edi,(%esi)
4080a2:	e8 7a 0e 00 00       	call   0x408f21
4080a7:	8b 46 18             	mov    0x18(%esi),%eax
4080aa:	b9 ce ff 00 00       	mov    $0xffce,%ecx
4080af:	8b 1e                	mov    (%esi),%ebx
4080b1:	8b 7e 0c             	mov    0xc(%esi),%edi
4080b4:	89 85 d8 fd ff ff    	mov    %eax,-0x228(%ebp)
4080ba:	89 9d dc fd ff ff    	mov    %ebx,-0x224(%ebp)
4080c0:	e8 0b 5c 00 00       	call   0x40dcd0
4080c5:	85 c0                	test   %eax,%eax
4080c7:	0f 84 c5 2f 01 00    	je     0x41b092
4080cd:	6a 00                	push   $0x0
4080cf:	ba e7 7f 00 00       	mov    $0x7fe7,%edx
4080d4:	a3 a4 67 43 00       	mov    %eax,0x4367a4
4080d9:	8b c8                	mov    %eax,%ecx
4080db:	e8 be 0d 00 00       	call   0x408e9e
4080e0:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4080e3:	85 c9                	test   %ecx,%ecx
4080e5:	0f 84 7e 2f 01 00    	je     0x41b069
4080eb:	8b 55 f0             	mov    -0x10(%ebp),%edx
4080ee:	53                   	push   %ebx
4080ef:	e8 e1 9b 00 00       	call   0x411cd5
4080f4:	85 c0                	test   %eax,%eax
4080f6:	0f 85 b2 00 00 00    	jne    0x4081ae
4080fc:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4080ff:	85 c9                	test   %ecx,%ecx
408101:	0f 84 6d 2f 01 00    	je     0x41b074
408107:	6a 5c                	push   $0x5c
408109:	58                   	pop    %eax
40810a:	8b d0                	mov    %eax,%edx
40810c:	e8 e4 80 00 00       	call   0x4101f5
408111:	33 c9                	xor    %ecx,%ecx
408113:	66 89 48 02          	mov    %cx,0x2(%eax)
408117:	8b 45 e8             	mov    -0x18(%ebp),%eax
40811a:	85 c0                	test   %eax,%eax
40811c:	0f 84 5d 2f 01 00    	je     0x41b07f
408122:	50                   	push   %eax
408123:	b9 f0 8b 44 00       	mov    $0x448bf0,%ecx
408128:	e8 14 25 00 00       	call   0x40a641
40812d:	85 ff                	test   %edi,%edi
40812f:	0f 84 a5 00 00 00    	je     0x4081da
408135:	0f b7 07             	movzwl (%edi),%eax
408138:	6a 3a                	push   $0x3a
40813a:	5a                   	pop    %edx
40813b:	66 3b c2             	cmp    %dx,%ax
40813e:	0f 84 96 00 00 00    	je     0x4081da
408144:	6a 5c                	push   $0x5c
408146:	59                   	pop    %ecx
408147:	66 3b c1             	cmp    %cx,%ax
40814a:	75 32                	jne    0x40817e
40814c:	3b fb                	cmp    %ebx,%edi
40814e:	0f 84 36 2f 01 00    	je     0x41b08a
408154:	8b c3                	mov    %ebx,%eax
408156:	33 c9                	xor    %ecx,%ecx
408158:	66 39 08             	cmp    %cx,(%eax)
40815b:	74 09                	je     0x408166
40815d:	8b c8                	mov    %eax,%ecx
40815f:	83 c0 02             	add    $0x2,%eax
408162:	3b c7                	cmp    %edi,%eax
408164:	75 f0                	jne    0x408156
408166:	0f b7 01             	movzwl (%ecx),%eax
408169:	66 3b c2             	cmp    %dx,%ax
40816c:	0f 84 18 2f 01 00    	je     0x41b08a
408172:	6a 5c                	push   $0x5c
408174:	59                   	pop    %ecx
408175:	66 3b c1             	cmp    %cx,%ax
408178:	0f 84 0c 2f 01 00    	je     0x41b08a
40817e:	0f b7 1f             	movzwl (%edi),%ebx
408181:	33 c0                	xor    %eax,%eax
408183:	ff b5 dc fd ff ff    	push   -0x224(%ebp)
408189:	66 89 07             	mov    %ax,(%edi)
40818c:	ff 15 98 a0 44 00    	call   *0x44a098
408192:	83 f8 ff             	cmp    $0xffffffff,%eax
408195:	75 3f                	jne    0x4081d6
408197:	ff 15 80 a0 44 00    	call   *0x44a080
40819d:	a3 a8 67 43 00       	mov    %eax,0x4367a8
4081a2:	66 89 1f             	mov    %bx,(%edi)
4081a5:	83 3d a8 67 43 00 00 	cmpl   $0x0,0x4367a8
4081ac:	74 2c                	je     0x4081da
4081ae:	33 f6                	xor    %esi,%esi
4081b0:	46                   	inc    %esi
4081b1:	8b 45 e8             	mov    -0x18(%ebp),%eax
4081b4:	33 c9                	xor    %ecx,%ecx
4081b6:	89 4d e8             	mov    %ecx,-0x18(%ebp)
4081b9:	85 c0                	test   %eax,%eax
4081bb:	74 08                	je     0x4081c5
4081bd:	50                   	push   %eax
4081be:	ff 15 e0 a3 44 00    	call   *0x44a3e0
4081c4:	59                   	pop    %ecx
4081c5:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4081c8:	8b c6                	mov    %esi,%eax
4081ca:	5f                   	pop    %edi
4081cb:	5e                   	pop    %esi
4081cc:	33 cd                	xor    %ebp,%ecx
4081ce:	5b                   	pop    %ebx
4081cf:	e8 5c e9 00 00       	call   0x416b30
4081d4:	c9                   	leave
4081d5:	c3                   	ret
4081d6:	33 c0                	xor    %eax,%eax
4081d8:	eb c3                	jmp    0x40819d
4081da:	8b ce                	mov    %esi,%ecx
4081dc:	e8 40 0d 00 00       	call   0x408f21
4081e1:	8b 85 d8 fd ff ff    	mov    -0x228(%ebp),%eax
4081e7:	89 46 18             	mov    %eax,0x18(%esi)
4081ea:	eb c5                	jmp    0x4081b1
4081ec:	8b ff                	mov    %edi,%edi
4081ee:	55                   	push   %ebp
4081ef:	8b ec                	mov    %esp,%ebp
4081f1:	51                   	push   %ecx
4081f2:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4081f6:	56                   	push   %esi
4081f7:	8b f1                	mov    %ecx,%esi
4081f9:	c6 05 d3 e0 42 00 00 	movb   $0x0,0x42e0d3
408200:	6a ff                	push   $0xffffffff
408202:	56                   	push   %esi
408203:	ff 15 7c a2 44 00    	call   *0x44a27c
408209:	8d 45 fc             	lea    -0x4(%ebp),%eax
40820c:	50                   	push   %eax
40820d:	56                   	push   %esi
40820e:	ff 15 08 a2 44 00    	call   *0x44a208
408214:	81 7d fc 3a 01 00 c0 	cmpl   $0xc000013a,-0x4(%ebp)
40821b:	0f 84 84 2e 01 00    	je     0x41b0a5
408221:	56                   	push   %esi
408222:	c6 05 d3 e0 42 00 01 	movb   $0x1,0x42e0d3
408229:	ff 15 1c a1 44 00    	call   *0x44a11c
40822f:	8b 45 fc             	mov    -0x4(%ebp),%eax
408232:	5e                   	pop    %esi
408233:	c9                   	leave
408234:	c3                   	ret
408235:	8b 0d 20 ca 43 00    	mov    0x43ca20,%ecx
40823b:	a1 1c ca 43 00       	mov    0x43ca1c,%eax
408240:	51                   	push   %ecx
408241:	6a 01                	push   $0x1
408243:	89 0d ac 25 43 00    	mov    %ecx,0x4325ac
408249:	a3 b0 25 43 00       	mov    %eax,0x4325b0
40824e:	ff 15 2c a4 44 00    	call   *0x44a42c
408254:	59                   	pop    %ecx
408255:	50                   	push   %eax
408256:	ff 15 14 a0 44 00    	call   *0x44a014
40825c:	ff 35 b0 25 43 00    	push   0x4325b0
408262:	6a 00                	push   $0x0
408264:	ff 15 2c a4 44 00    	call   *0x44a42c
40826a:	59                   	pop    %ecx
40826b:	50                   	push   %eax
40826c:	ff 15 14 a0 44 00    	call   *0x44a014
408272:	c3                   	ret
408273:	8b ff                	mov    %edi,%edi
408275:	55                   	push   %ebp
408276:	8b ec                	mov    %esp,%ebp
408278:	b8 1c 10 00 00       	mov    $0x101c,%eax
40827d:	e8 fe fc 00 00       	call   0x417f80
408282:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
408287:	33 c5                	xor    %ebp,%eax
408289:	89 45 fc             	mov    %eax,-0x4(%ebp)
40828c:	53                   	push   %ebx
40828d:	56                   	push   %esi
40828e:	57                   	push   %edi
40828f:	6a 02                	push   $0x2
408291:	8b f9                	mov    %ecx,%edi
408293:	c7 85 e4 ef ff ff 02 	movl   $0x80000002,-0x101c(%ebp)
40829a:	00 00 80
40829d:	8d 9d e4 ef ff ff    	lea    -0x101c(%ebp),%ebx
4082a3:	c7 85 e8 ef ff ff 01 	movl   $0x80000001,-0x1018(%ebp)
4082aa:	00 00 80
4082ad:	5e                   	pop    %esi
4082ae:	c6 05 55 67 43 00 01 	movb   $0x1,0x436755
4082b5:	2b df                	sub    %edi,%ebx
4082b7:	89 b5 ec ef ff ff    	mov    %esi,-0x1014(%ebp)
4082bd:	8d 85 f0 ef ff ff    	lea    -0x1010(%ebp),%eax
4082c3:	50                   	push   %eax
4082c4:	68 00 00 00 02       	push   $0x2000000
4082c9:	6a 00                	push   $0x0
4082cb:	68 b0 21 40 00       	push   $0x4021b0
4082d0:	ff 34 3b             	push   (%ebx,%edi,1)
4082d3:	ff 15 48 a2 44 00    	call   *0x44a248
4082d9:	85 c0                	test   %eax,%eax
4082db:	0f 85 5f 02 00 00    	jne    0x408540
4082e1:	21 85 f8 ef ff ff    	and    %eax,-0x1008(%ebp)
4082e7:	8d 85 f4 ef ff ff    	lea    -0x100c(%ebp),%eax
4082ed:	50                   	push   %eax
4082ee:	8d 85 fc ef ff ff    	lea    -0x1004(%ebp),%eax
4082f4:	c7 85 f4 ef ff ff 00 	movl   $0x1000,-0x100c(%ebp)
4082fb:	10 00 00
4082fe:	50                   	push   %eax
4082ff:	8d 85 f8 ef ff ff    	lea    -0x1008(%ebp),%eax
408305:	50                   	push   %eax
408306:	6a 00                	push   $0x0
408308:	68 d4 20 40 00       	push   $0x4020d4
40830d:	ff b5 f0 ef ff ff    	push   -0x1010(%ebp)
408313:	ff 15 4c a2 44 00    	call   *0x44a24c
408319:	85 c0                	test   %eax,%eax
40831b:	0f 84 d0 2d 01 00    	je     0x41b0f1
408321:	8d 85 f4 ef ff ff    	lea    -0x100c(%ebp),%eax
408327:	c7 85 f4 ef ff ff 00 	movl   $0x1000,-0x100c(%ebp)
40832e:	10 00 00
408331:	50                   	push   %eax
408332:	8d 85 fc ef ff ff    	lea    -0x1004(%ebp),%eax
408338:	50                   	push   %eax
408339:	8d 85 f8 ef ff ff    	lea    -0x1008(%ebp),%eax
40833f:	50                   	push   %eax
408340:	6a 00                	push   $0x0
408342:	68 f4 20 40 00       	push   $0x4020f4
408347:	ff b5 f0 ef ff ff    	push   -0x1010(%ebp)
40834d:	ff 15 4c a2 44 00    	call   *0x44a24c
408353:	85 c0                	test   %eax,%eax
408355:	75 1a                	jne    0x408371
408357:	83 bd f8 ef ff ff 04 	cmpl   $0x4,-0x1008(%ebp)
40835e:	0f 85 d5 2d 01 00    	jne    0x41b139
408364:	39 85 fc ef ff ff    	cmp    %eax,-0x1004(%ebp)
40836a:	0f 95 05 55 67 43 00 	setne  0x436755
408371:	8d 85 f4 ef ff ff    	lea    -0x100c(%ebp),%eax
408377:	c7 85 f4 ef ff ff 00 	movl   $0x1000,-0x100c(%ebp)
40837e:	10 00 00
408381:	50                   	push   %eax
408382:	8d 85 fc ef ff ff    	lea    -0x1004(%ebp),%eax
408388:	50                   	push   %eax
408389:	8d 85 f8 ef ff ff    	lea    -0x1008(%ebp),%eax
40838f:	50                   	push   %eax
408390:	6a 00                	push   $0x0
408392:	68 18 21 40 00       	push   $0x402118
408397:	ff b5 f0 ef ff ff    	push   -0x1010(%ebp)
40839d:	ff 15 4c a2 44 00    	call   *0x44a24c
4083a3:	85 c0                	test   %eax,%eax
4083a5:	0f 84 ba 2d 01 00    	je     0x41b165
4083ab:	8d 85 f4 ef ff ff    	lea    -0x100c(%ebp),%eax
4083b1:	c7 85 f4 ef ff ff 00 	movl   $0x1000,-0x100c(%ebp)
4083b8:	10 00 00
4083bb:	50                   	push   %eax
4083bc:	8d 85 fc ef ff ff    	lea    -0x1004(%ebp),%eax
4083c2:	50                   	push   %eax
4083c3:	8d 85 f8 ef ff ff    	lea    -0x1008(%ebp),%eax
4083c9:	50                   	push   %eax
4083ca:	6a 00                	push   $0x0
4083cc:	68 3c 21 40 00       	push   $0x40213c
4083d1:	ff b5 f0 ef ff ff    	push   -0x1010(%ebp)
4083d7:	ff 15 4c a2 44 00    	call   *0x44a24c
4083dd:	85 c0                	test   %eax,%eax
4083df:	75 1a                	jne    0x4083fb
4083e1:	83 bd f8 ef ff ff 04 	cmpl   $0x4,-0x1008(%ebp)
4083e8:	0f 85 bf 2d 01 00    	jne    0x41b1ad
4083ee:	66 8b 85 fc ef ff ff 	mov    -0x1004(%ebp),%ax
4083f5:	66 a3 64 67 43 00    	mov    %ax,0x436764
4083fb:	8d 85 f4 ef ff ff    	lea    -0x100c(%ebp),%eax
408401:	c7 85 f4 ef ff ff 00 	movl   $0x1000,-0x100c(%ebp)
408408:	10 00 00