407f4a:	89 85 e8 fd ff ff    	mov    %eax,-0x218(%ebp)
407f50:	33 c0                	xor    %eax,%eax
407f52:	83 8d f0 fd ff ff ff 	orl    $0xffffffff,-0x210(%ebp)
407f59:	8b c8                	mov    %eax,%ecx
407f5b:	8b f8                	mov    %eax,%edi
407f5d:	3b 9d e8 fd ff ff    	cmp    -0x218(%ebp),%ebx
407f63:	0f 84 22 02 00 00    	je     0x40818b
407f69:	0f b6 03             	movzbl (%ebx),%eax
407f6c:	c1 e1 08             	shl    $0x8,%ecx
407f6f:	0b c8                	or     %eax,%ecx
407f71:	43                   	inc    %ebx
407f72:	47                   	inc    %edi
407f73:	89 5d 18             	mov    %ebx,0x18(%ebp)
407f76:	83 ff 05             	cmp    $0x5,%edi
407f79:	7c e2                	jl     0x407f5d
407f7b:	39 75 24             	cmp    %esi,0x24(%ebp)
407f7e:	75 07                	jne    0x407f87
407f80:	33 c0                	xor    %eax,%eax
407f82:	e9 07 02 00 00       	jmp    0x40818e
407f87:	8b bd d8 fd ff ff    	mov    -0x228(%ebp),%edi
407f8d:	8b 45 24             	mov    0x24(%ebp),%eax
407f90:	2b bd ec fd ff ff    	sub    -0x214(%ebp),%edi
407f96:	2b c6                	sub    %esi,%eax
407f98:	3b c7                	cmp    %edi,%eax
407f9a:	73 02                	jae    0x407f9e
407f9c:	8b f8                	mov    %eax,%edi
407f9e:	85 ff                	test   %edi,%edi
407fa0:	0f 84 db 01 00 00    	je     0x408181
407fa6:	8b 85 ec fd ff ff    	mov    -0x214(%ebp),%eax
407fac:	8b 9d e4 fd ff ff    	mov    -0x21c(%ebp),%ebx
407fb2:	8a 24 03             	mov    (%ebx,%eax,1),%ah
407fb5:	8b 9d dc fd ff ff    	mov    -0x224(%ebp),%ebx
407fbb:	8a c4                	mov    %ah,%al
407fbd:	24 fe                	and    $0xfe,%al
407fbf:	88 24 33             	mov    %ah,(%ebx,%esi,1)
407fc2:	46                   	inc    %esi
407fc3:	8b 5d 18             	mov    0x18(%ebp),%ebx
407fc6:	3c e8                	cmp    $0xe8,%al
407fc8:	74 22                	je     0x407fec
407fca:	80 fa 0f             	cmp    $0xf,%dl
407fcd:	75 08                	jne    0x407fd7
407fcf:	8a c4                	mov    %ah,%al
407fd1:	24 f0                	and    $0xf0,%al
407fd3:	3c 80                	cmp    $0x80,%al
407fd5:	74 0d                	je     0x407fe4
407fd7:	ff 85 ec fd ff ff    	incl   -0x214(%ebp)
407fdd:	8a d4                	mov    %ah,%dl
407fdf:	83 ef 01             	sub    $0x1,%edi
407fe2:	75 c2                	jne    0x407fa6
407fe4:	85 ff                	test   %edi,%edi
407fe6:	0f 84 95 01 00 00    	je     0x408181
407fec:	3b 75 24             	cmp    0x24(%ebp),%esi
407fef:	0f 84 8c 01 00 00    	je     0x408181
407ff5:	8b bd ec fd ff ff    	mov    -0x214(%ebp),%edi
407ffb:	8b 85 e4 fd ff ff    	mov    -0x21c(%ebp),%eax
408001:	8a 04 38             	mov    (%eax,%edi,1),%al
408004:	47                   	inc    %edi
408005:	88 85 f7 fd ff ff    	mov    %al,-0x209(%ebp)
40800b:	89 bd ec fd ff ff    	mov    %edi,-0x214(%ebp)
408011:	3c e8                	cmp    $0xe8,%al
408013:	75 0e                	jne    0x408023
408015:	0f b6 c2             	movzbl %dl,%eax
408018:	8d bd f8 fd ff ff    	lea    -0x208(%ebp),%edi
40801e:	8d 3c 47             	lea    (%edi,%eax,2),%edi
408021:	eb 0a                	jmp    0x40802d
408023:	8d 7d f8             	lea    -0x8(%ebp),%edi
408026:	3c e9                	cmp    $0xe9,%al
408028:	74 03                	je     0x40802d
40802a:	8d 7d fa             	lea    -0x6(%ebp),%edi
40802d:	0f b7 07             	movzwl (%edi),%eax
408030:	8b 95 f0 fd ff ff    	mov    -0x210(%ebp),%edx
408036:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
40803c:	0f b7 c0             	movzwl %ax,%eax
40803f:	c1 ea 0b             	shr    $0xb,%edx
408042:	0f af d0             	imul   %eax,%edx
408045:	89 85 d4 fd ff ff    	mov    %eax,-0x22c(%ebp)
40804b:	3b ca                	cmp    %edx,%ecx
40804d:	73 53                	jae    0x4080a2
40804f:	b8 00 08 00 00       	mov    $0x800,%eax
408054:	89 95 f0 fd ff ff    	mov    %edx,-0x210(%ebp)
40805a:	2b 85 d4 fd ff ff    	sub    -0x22c(%ebp),%eax
408060:	c1 e8 05             	shr    $0x5,%eax
408063:	03 85 e0 fd ff ff    	add    -0x220(%ebp),%eax
408069:	66 89 07             	mov    %ax,(%edi)
40806c:	81 fa 00 00 00 01    	cmp    $0x1000000,%edx
408072:	73 23                	jae    0x408097
408074:	3b 9d e8 fd ff ff    	cmp    -0x218(%ebp),%ebx
40807a:	0f 84 0b 01 00 00    	je     0x40818b
408080:	8b c2                	mov    %edx,%eax
408082:	c1 e1 08             	shl    $0x8,%ecx
408085:	c1 e0 08             	shl    $0x8,%eax
408088:	89 85 f0 fd ff ff    	mov    %eax,-0x210(%ebp)
40808e:	0f b6 03             	movzbl (%ebx),%eax
408091:	0b c8                	or     %eax,%ecx
408093:	43                   	inc    %ebx
408094:	89 5d 18             	mov    %ebx,0x18(%ebp)
408097:	8a 95 f7 fd ff ff    	mov    -0x209(%ebp),%dl
40809d:	e9 e5 fe ff ff       	jmp    0x407f87
4080a2:	29 95 f0 fd ff ff    	sub    %edx,-0x210(%ebp)
4080a8:	2b ca                	sub    %edx,%ecx
4080aa:	8b 95 e0 fd ff ff    	mov    -0x220(%ebp),%edx
4080b0:	c1 e8 05             	shr    $0x5,%eax
4080b3:	2b d0                	sub    %eax,%edx
4080b5:	8b 85 f0 fd ff ff    	mov    -0x210(%ebp),%eax
4080bb:	66 89 17             	mov    %dx,(%edi)
4080be:	3d 00 00 00 01       	cmp    $0x1000000,%eax
4080c3:	73 21                	jae    0x4080e6
4080c5:	3b 9d e8 fd ff ff    	cmp    -0x218(%ebp),%ebx
4080cb:	0f 84 ba 00 00 00    	je     0x40818b
4080d1:	c1 e0 08             	shl    $0x8,%eax
4080d4:	89 85 f0 fd ff ff    	mov    %eax,-0x210(%ebp)
4080da:	0f b6 03             	movzbl (%ebx),%eax
4080dd:	c1 e1 08             	shl    $0x8,%ecx
4080e0:	0b c8                	or     %eax,%ecx
4080e2:	43                   	inc    %ebx
4080e3:	89 5d 18             	mov    %ebx,0x18(%ebp)
4080e6:	80 bd f7 fd ff ff e8 	cmpb   $0xe8,-0x209(%ebp)
4080ed:	75 1f                	jne    0x40810e
4080ef:	8b 45 0c             	mov    0xc(%ebp),%eax
4080f2:	8b 55 08             	mov    0x8(%ebp),%edx
4080f5:	8b fa                	mov    %edx,%edi
4080f7:	83 f8 04             	cmp    $0x4,%eax
4080fa:	0f 82 8b 00 00 00    	jb     0x40818b
408100:	83 c2 04             	add    $0x4,%edx
408103:	83 e8 04             	sub    $0x4,%eax
408106:	89 55 08             	mov    %edx,0x8(%ebp)
408109:	89 45 0c             	mov    %eax,0xc(%ebp)
40810c:	eb 19                	jmp    0x408127
40810e:	8b 45 14             	mov    0x14(%ebp),%eax
408111:	8b 55 10             	mov    0x10(%ebp),%edx
408114:	8b fa                	mov    %edx,%edi
408116:	83 f8 04             	cmp    $0x4,%eax
408119:	72 70                	jb     0x40818b
40811b:	83 c2 04             	add    $0x4,%edx
40811e:	83 e8 04             	sub    $0x4,%eax
408121:	89 55 10             	mov    %edx,0x10(%ebp)
408124:	89 45 14             	mov    %eax,0x14(%ebp)
408127:	0f b6 17             	movzbl (%edi),%edx
40812a:	0f b6 47 01          	movzbl 0x1(%edi),%eax
40812e:	c1 e2 08             	shl    $0x8,%edx
408131:	0b d0                	or     %eax,%edx
408133:	0f b6 47 02          	movzbl 0x2(%edi),%eax
408137:	c1 e2 08             	shl    $0x8,%edx
40813a:	0b d0                	or     %eax,%edx
40813c:	0f b6 47 03          	movzbl 0x3(%edi),%eax
408140:	8b bd dc fd ff ff    	mov    -0x224(%ebp),%edi
408146:	c1 e2 08             	shl    $0x8,%edx
408149:	0b d0                	or     %eax,%edx
40814b:	2b d6                	sub    %esi,%edx
40814d:	83 ea 04             	sub    $0x4,%edx
408150:	88 14 37             	mov    %dl,(%edi,%esi,1)
408153:	46                   	inc    %esi
408154:	3b 75 24             	cmp    0x24(%ebp),%esi
408157:	74 28                	je     0x408181
408159:	8b c2                	mov    %edx,%eax
40815b:	c1 e8 08             	shr    $0x8,%eax
40815e:	88 04 37             	mov    %al,(%edi,%esi,1)
408161:	46                   	inc    %esi
408162:	3b 75 24             	cmp    0x24(%ebp),%esi
408165:	74 1a                	je     0x408181
408167:	8b c2                	mov    %edx,%eax
408169:	c1 e8 10             	shr    $0x10,%eax
40816c:	88 04 37             	mov    %al,(%edi,%esi,1)
40816f:	46                   	inc    %esi
408170:	3b 75 24             	cmp    0x24(%ebp),%esi
408173:	74 0c                	je     0x408181
408175:	c1 ea 18             	shr    $0x18,%edx
408178:	88 14 37             	mov    %dl,(%edi,%esi,1)
40817b:	46                   	inc    %esi
40817c:	e9 06 fe ff ff       	jmp    0x407f87
408181:	33 c0                	xor    %eax,%eax
408183:	3b 75 24             	cmp    0x24(%ebp),%esi
408186:	0f 95 c0             	setne  %al
408189:	eb 03                	jmp    0x40818e
40818b:	33 c0                	xor    %eax,%eax
40818d:	40                   	inc    %eax
40818e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408191:	5f                   	pop    %edi
408192:	5e                   	pop    %esi
408193:	33 cd                	xor    %ebp,%ecx
408195:	5b                   	pop    %ebx
408196:	e8 5a 0a 00 00       	call   0x408bf5
40819b:	c9                   	leave
40819c:	c3                   	ret
40819d:	cc                   	int3
40819e:	cc                   	int3
40819f:	cc                   	int3
4081a0:	56                   	push   %esi
4081a1:	6a 02                	push   $0x2
4081a3:	e8 76 30 00 00       	call   0x40b21e
4081a8:	e8 4a 05 00 00       	call   0x4086f7
4081ad:	50                   	push   %eax
4081ae:	e8 cf 39 00 00       	call   0x40bb82
4081b3:	e8 38 05 00 00       	call   0x4086f0
4081b8:	8b f0                	mov    %eax,%esi
4081ba:	e8 60 3b 00 00       	call   0x40bd1f
4081bf:	6a 01                	push   $0x1
4081c1:	89 30                	mov    %esi,(%eax)
4081c3:	e8 e1 02 00 00       	call   0x4084a9
4081c8:	83 c4 0c             	add    $0xc,%esp
4081cb:	5e                   	pop    %esi
4081cc:	84 c0                	test   %al,%al
4081ce:	74 73                	je     0x408243
4081d0:	db e2                	fnclex
4081d2:	e8 97 07 00 00       	call   0x40896e
4081d7:	68 a0 89 40 00       	push   $0x4089a0
4081dc:	e8 55 04 00 00       	call   0x408636
4081e1:	e8 0d 05 00 00       	call   0x4086f3
4081e6:	50                   	push   %eax
4081e7:	e8 d4 33 00 00       	call   0x40b5c0
4081ec:	59                   	pop    %ecx
4081ed:	59                   	pop    %ecx
4081ee:	85 c0                	test   %eax,%eax
4081f0:	75 51                	jne    0x408243
4081f2:	e8 06 05 00 00       	call   0x4086fd
4081f7:	e8 5b 05 00 00       	call   0x408757
4081fc:	85 c0                	test   %eax,%eax
4081fe:	74 0b                	je     0x40820b
408200:	68 f0 86 40 00       	push   $0x4086f0
408205:	e8 a8 30 00 00       	call   0x40b2b2
40820a:	59                   	pop    %ecx
40820b:	e8 f0 d5 ff ff       	call   0x405800
408210:	e8 eb d5 ff ff       	call   0x405800
408215:	e8 f9 04 00 00       	call   0x408713
40821a:	e8 d1 04 00 00       	call   0x4086f0
40821f:	50                   	push   %eax
408220:	e8 62 3a 00 00       	call   0x40bc87
408225:	59                   	pop    %ecx
408226:	e8 e5 04 00 00       	call   0x408710
40822b:	84 c0                	test   %al,%al
40822d:	74 05                	je     0x408234
40822f:	e8 8e 35 00 00       	call   0x40b7c2
408234:	e8 b7 04 00 00       	call   0x4086f0
408239:	e8 7d 06 00 00       	call   0x4088bb
40823e:	85 c0                	test   %eax,%eax
408240:	75 01                	jne    0x408243
408242:	c3                   	ret
408243:	6a 07                	push   $0x7
408245:	e8 25 05 00 00       	call   0x40876f
40824a:	cc                   	int3
40824b:	cc                   	int3
40824c:	cc                   	int3
40824d:	cc                   	int3
40824e:	cc                   	int3
40824f:	cc                   	int3
408250:	e8 e5 04 00 00       	call   0x40873a
408255:	33 c0                	xor    %eax,%eax
408257:	c3                   	ret
408258:	cc                   	int3
408259:	cc                   	int3
40825a:	cc                   	int3
40825b:	cc                   	int3
40825c:	cc                   	int3
40825d:	cc                   	int3
40825e:	cc                   	int3
40825f:	cc                   	int3
408260:	e8 9d 06 00 00       	call   0x408902
408265:	e8 86 04 00 00       	call   0x4086f0
40826a:	50                   	push   %eax
40826b:	e8 80 3a 00 00       	call   0x40bcf0
408270:	59                   	pop    %ecx
408271:	c3                   	ret
408272:	6a 14                	push   $0x14
408274:	68 a8 3c 42 00       	push   $0x423ca8
408279:	e8 52 07 00 00       	call   0x4089d0
40827e:	6a 01                	push   $0x1
408280:	e8 eb 01 00 00       	call   0x408470
408285:	59                   	pop    %ecx
408286:	84 c0                	test   %al,%al
408288:	0f 84 4a 01 00 00    	je     0x4083d8
40828e:	32 db                	xor    %bl,%bl
408290:	88 5d e7             	mov    %bl,-0x19(%ebp)
408293:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
408297:	e8 a2 01 00 00       	call   0x40843e
40829c:	88 45 dc             	mov    %al,-0x24(%ebp)
40829f:	a1 28 69 42 00       	mov    0x426928,%eax
4082a4:	33 c9                	xor    %ecx,%ecx
4082a6:	41                   	inc    %ecx
4082a7:	3b c1                	cmp    %ecx,%eax
4082a9:	0f 84 29 01 00 00    	je     0x4083d8
4082af:	85 c0                	test   %eax,%eax
4082b1:	75 49                	jne    0x4082fc
4082b3:	89 0d 28 69 42 00    	mov    %ecx,0x426928
4082b9:	68 88 c2 41 00       	push   $0x41c288
4082be:	68 68 c2 41 00       	push   $0x41c268
4082c3:	e8 97 35 00 00       	call   0x40b85f
4082c8:	59                   	pop    %ecx
4082c9:	59                   	pop    %ecx
4082ca:	85 c0                	test   %eax,%eax
4082cc:	74 11                	je     0x4082df
4082ce:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4082d5:	b8 ff 00 00 00       	mov    $0xff,%eax
4082da:	e9 e9 00 00 00       	jmp    0x4083c8
4082df:	68 64 c2 41 00       	push   $0x41c264
4082e4:	68 58 c2 41 00       	push   $0x41c258
4082e9:	e8 2c 35 00 00       	call   0x40b81a
4082ee:	59                   	pop    %ecx
4082ef:	59                   	pop    %ecx
4082f0:	c7 05 28 69 42 00 02 	movl   $0x2,0x426928
4082f7:	00 00 00
4082fa:	eb 05                	jmp    0x408301
4082fc:	8a d9                	mov    %cl,%bl
4082fe:	88 5d e7             	mov    %bl,-0x19(%ebp)
408301:	ff 75 dc             	push   -0x24(%ebp)
408304:	e8 bb 02 00 00       	call   0x4085c4
408309:	59                   	pop    %ecx
40830a:	e8 54 04 00 00       	call   0x408763
40830f:	8b f0                	mov    %eax,%esi
408311:	33 ff                	xor    %edi,%edi
408313:	39 3e                	cmp    %edi,(%esi)
408315:	74 1b                	je     0x408332
408317:	56                   	push   %esi
408318:	e8 13 02 00 00       	call   0x408530
40831d:	59                   	pop    %ecx
40831e:	84 c0                	test   %al,%al
408320:	74 10                	je     0x408332
408322:	8b 36                	mov    (%esi),%esi
408324:	57                   	push   %edi
408325:	6a 02                	push   $0x2
408327:	57                   	push   %edi
408328:	8b ce                	mov    %esi,%ecx
40832a:	ff 15 50 c2 41 00    	call   *0x41c250
408330:	ff d6                	call   *%esi
408332:	e8 32 04 00 00       	call   0x408769
408337:	8b f0                	mov    %eax,%esi
408339:	39 3e                	cmp    %edi,(%esi)
40833b:	74 13                	je     0x408350
40833d:	56                   	push   %esi
40833e:	e8 ed 01 00 00       	call   0x408530
408343:	59                   	pop    %ecx
408344:	84 c0                	test   %al,%al
408346:	74 08                	je     0x408350
408348:	ff 36                	push   (%esi)
40834a:	e8 f7 37 00 00       	call   0x40bb46
40834f:	59                   	pop    %ecx
408350:	e8 35 05 00 00       	call   0x40888a
408355:	0f b7 f0             	movzwl %ax,%esi
408358:	e8 6a 34 00 00       	call   0x40b7c7
40835d:	56                   	push   %esi
40835e:	50                   	push   %eax
40835f:	57                   	push   %edi
408360:	68 00 00 40 00       	push   $0x400000
408365:	e8 9f ad ff ff       	call   0x403109
40836a:	8b f0                	mov    %eax,%esi
40836c:	e8 4f 05 00 00       	call   0x4088c0
408371:	84 c0                	test   %al,%al
408373:	74 6a                	je     0x4083df
408375:	84 db                	test   %bl,%bl
408377:	75 05                	jne    0x40837e
408379:	e8 a3 37 00 00       	call   0x40bb21