4080e4:	8b 75 0c             	mov    0xc(%ebp),%esi
4080e7:	33 c0                	xor    %eax,%eax
4080e9:	85 f6                	test   %esi,%esi
4080eb:	74 4e                	je     0x40813b
4080ed:	8b 4d 08             	mov    0x8(%ebp),%ecx
4080f0:	8a 14 08             	mov    (%eax,%ecx,1),%dl
4080f3:	80 fa 2b             	cmp    $0x2b,%dl
4080f6:	75 11                	jne    0x408109
4080f8:	8a d0                	mov    %al,%dl
4080fa:	80 e2 01             	and    $0x1,%dl
4080fd:	f6 da                	neg    %dl
4080ff:	1a d2                	sbb    %dl,%dl
408101:	80 e2 af             	and    $0xaf,%dl
408104:	80 c2 7e             	add    $0x7e,%dl
408107:	eb 2a                	jmp    0x408133
408109:	80 fa 2f             	cmp    $0x2f,%dl
40810c:	75 11                	jne    0x40811f
40810e:	8a d0                	mov    %al,%dl
408110:	80 e2 01             	and    $0x1,%dl
408113:	f6 da                	neg    %dl
408115:	1a d2                	sbb    %dl,%dl
408117:	80 e2 37             	and    $0x37,%dl
40811a:	80 c2 28             	add    $0x28,%dl
40811d:	eb 14                	jmp    0x408133
40811f:	80 fa 3d             	cmp    $0x3d,%dl
408122:	75 12                	jne    0x408136
408124:	8a d0                	mov    %al,%dl
408126:	80 e2 01             	and    $0x1,%dl
408129:	f6 da                	neg    %dl
40812b:	1a d2                	sbb    %dl,%dl
40812d:	80 e2 05             	and    $0x5,%dl
408130:	80 c2 29             	add    $0x29,%dl
408133:	88 14 08             	mov    %dl,(%eax,%ecx,1)
408136:	40                   	inc    %eax
408137:	3b c6                	cmp    %esi,%eax
408139:	72 b5                	jb     0x4080f0
40813b:	5e                   	pop    %esi
40813c:	5d                   	pop    %ebp
40813d:	c3                   	ret
40813e:	cc                   	int3
40813f:	cc                   	int3
408140:	55                   	push   %ebp
408141:	8b ec                	mov    %esp,%ebp
408143:	81 ec 08 02 00 00    	sub    $0x208,%esp
408149:	56                   	push   %esi
40814a:	57                   	push   %edi
40814b:	8b 7d 10             	mov    0x10(%ebp),%edi
40814e:	33 f6                	xor    %esi,%esi
408150:	33 c9                	xor    %ecx,%ecx
408152:	b8 67 66 66 66       	mov    $0x66666667,%eax
408157:	f7 e9                	imul   %ecx
408159:	c1 fa 03             	sar    $0x3,%edx
40815c:	8b c2                	mov    %edx,%eax
40815e:	c1 e8 1f             	shr    $0x1f,%eax
408161:	03 c2                	add    %edx,%eax
408163:	8d 04 80             	lea    (%eax,%eax,4),%eax
408166:	03 c0                	add    %eax,%eax
408168:	03 c0                	add    %eax,%eax
40816a:	8b d1                	mov    %ecx,%edx
40816c:	2b d0                	sub    %eax,%edx
40816e:	8a 04 3a             	mov    (%edx,%edi,1),%al
408171:	88 8c 0d fa fe ff ff 	mov    %cl,-0x106(%ebp,%ecx,1)
408178:	88 84 0d f8 fd ff ff 	mov    %al,-0x208(%ebp,%ecx,1)
40817f:	41                   	inc    %ecx
408180:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
408186:	7c ca                	jl     0x408152
408188:	33 c0                	xor    %eax,%eax
40818a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
408190:	0f b6 8c 05 f8 fd ff 	movzbl -0x208(%ebp,%eax,1),%ecx
408197:	ff
408198:	0f b6 94 05 fa fe ff 	movzbl -0x106(%ebp,%eax,1),%edx
40819f:	ff
4081a0:	03 ce                	add    %esi,%ecx
4081a2:	8d 34 11             	lea    (%ecx,%edx,1),%esi
4081a5:	81 e6 ff 00 00 80    	and    $0x800000ff,%esi
4081ab:	79 08                	jns    0x4081b5
4081ad:	4e                   	dec    %esi
4081ae:	81 ce 00 ff ff ff    	or     $0xffffff00,%esi
4081b4:	46                   	inc    %esi
4081b5:	8a 8c 05 fa fe ff ff 	mov    -0x106(%ebp,%eax,1),%cl
4081bc:	8a 94 35 fa fe ff ff 	mov    -0x106(%ebp,%esi,1),%dl
4081c3:	88 94 05 fa fe ff ff 	mov    %dl,-0x106(%ebp,%eax,1)
4081ca:	40                   	inc    %eax
4081cb:	88 8c 35 fa fe ff ff 	mov    %cl,-0x106(%ebp,%esi,1)
4081d2:	3d 00 01 00 00       	cmp    $0x100,%eax
4081d7:	7c b7                	jl     0x408190
4081d9:	33 c0                	xor    %eax,%eax
4081db:	32 c9                	xor    %cl,%cl
4081dd:	c6 85 f9 fe ff ff 00 	movb   $0x0,-0x107(%ebp)
4081e4:	39 45 0c             	cmp    %eax,0xc(%ebp)
4081e7:	76 78                	jbe    0x408261
4081e9:	8b 7d 08             	mov    0x8(%ebp),%edi
4081ec:	53                   	push   %ebx
4081ed:	eb 07                	jmp    0x4081f6
4081ef:	90                   	nop
4081f0:	8a 8d f8 fe ff ff    	mov    -0x108(%ebp),%cl
4081f6:	8a 14 38             	mov    (%eax,%edi,1),%dl
4081f9:	fe c1                	inc    %cl
4081fb:	88 8d f8 fe ff ff    	mov    %cl,-0x108(%ebp)
408201:	0f b6 f1             	movzbl %cl,%esi
408204:	0f b6 9c 35 fa fe ff 	movzbl -0x106(%ebp,%esi,1),%ebx
40820b:	ff
40820c:	0f b6 8d f9 fe ff ff 	movzbl -0x107(%ebp),%ecx
408213:	03 cb                	add    %ebx,%ecx
408215:	88 8d f9 fe ff ff    	mov    %cl,-0x107(%ebp)
40821b:	0f b6 9c 35 fa fe ff 	movzbl -0x106(%ebp,%esi,1),%ebx
408222:	ff
408223:	0f b6 c9             	movzbl %cl,%ecx
408226:	8d 8c 0d fa fe ff ff 	lea    -0x106(%ebp,%ecx,1),%ecx
40822d:	88 5d ff             	mov    %bl,-0x1(%ebp)
408230:	0f b6 19             	movzbl (%ecx),%ebx
408233:	88 9c 35 fa fe ff ff 	mov    %bl,-0x106(%ebp,%esi,1)
40823a:	0f b6 5d ff          	movzbl -0x1(%ebp),%ebx
40823e:	88 19                	mov    %bl,(%ecx)
408240:	0f b6 9c 35 fa fe ff 	movzbl -0x106(%ebp,%esi,1),%ebx
408247:	ff
408248:	02 19                	add    (%ecx),%bl
40824a:	40                   	inc    %eax
40824b:	0f b6 cb             	movzbl %bl,%ecx
40824e:	8a 8c 0d fa fe ff ff 	mov    -0x106(%ebp,%ecx,1),%cl
408255:	32 ca                	xor    %dl,%cl
408257:	88 4c 38 ff          	mov    %cl,-0x1(%eax,%edi,1)
40825b:	3b 45 0c             	cmp    0xc(%ebp),%eax
40825e:	72 90                	jb     0x4081f0
408260:	5b                   	pop    %ebx
408261:	5f                   	pop    %edi
408262:	5e                   	pop    %esi
408263:	8b e5                	mov    %ebp,%esp
408265:	5d                   	pop    %ebp
408266:	c3                   	ret
408267:	ef                   	out    %eax,(%dx)
408268:	09 70 4c             	or     %esi,0x4c(%eax)
40826b:	f2 00 c9             	repnz add %cl,%cl
40826e:	c0 54 55 8b ec       	rclb   $0xec,-0x75(%ebp,%edx,2)
408273:	56                   	push   %esi
408274:	8b 75 08             	mov    0x8(%ebp),%esi
408277:	83 7e 64 00          	cmpl   $0x0,0x64(%esi)
40827b:	74 05                	je     0x408282
40827d:	33 c0                	xor    %eax,%eax
40827f:	5e                   	pop    %esi
408280:	5d                   	pop    %ebp
408281:	c3                   	ret
408282:	83 7e 60 00          	cmpl   $0x0,0x60(%esi)
408286:	75 10                	jne    0x408298
408288:	56                   	push   %esi
408289:	e8 b2 fb ff ff       	call   0x407e40
40828e:	83 c4 04             	add    $0x4,%esp
408291:	c7 46 60 01 00 00 00 	movl   $0x1,0x60(%esi)
408298:	b8 01 00 00 00       	mov    $0x1,%eax
40829d:	5e                   	pop    %esi
40829e:	5d                   	pop    %ebp
40829f:	c3                   	ret
4082a0:	55                   	push   %ebp
4082a1:	8b ec                	mov    %esp,%ebp
4082a3:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
4082a7:	74 59                	je     0x408302
4082a9:	56                   	push   %esi
4082aa:	8b 75 08             	mov    0x8(%ebp),%esi
4082ad:	83 7e 60 00          	cmpl   $0x0,0x60(%esi)
4082b1:	75 51                	jne    0x408304
4082b3:	83 7e 64 00          	cmpl   $0x0,0x64(%esi)
4082b7:	75 4b                	jne    0x408304
4082b9:	53                   	push   %ebx
4082ba:	57                   	push   %edi
4082bb:	8b 7d 0c             	mov    0xc(%ebp),%edi
4082be:	bb 01 00 00 00       	mov    $0x1,%ebx
4082c3:	29 5d 10             	sub    %ebx,0x10(%ebp)
4082c6:	83 7e 64 00          	cmpl   $0x0,0x64(%esi)
4082ca:	75 33                	jne    0x4082ff
4082cc:	8b 46 5c             	mov    0x5c(%esi),%eax
4082cf:	8a 0f                	mov    (%edi),%cl
4082d1:	88 4c 30 1c          	mov    %cl,0x1c(%eax,%esi,1)
4082d5:	01 5e 5c             	add    %ebx,0x5c(%esi)
4082d8:	83 46 14 08          	addl   $0x8,0x14(%esi)
4082dc:	8b 46 5c             	mov    0x5c(%esi),%eax
4082df:	75 08                	jne    0x4082e9
4082e1:	01 5e 18             	add    %ebx,0x18(%esi)
4082e4:	75 03                	jne    0x4082e9
4082e6:	89 5e 64             	mov    %ebx,0x64(%esi)
4082e9:	83 f8 40             	cmp    $0x40,%eax
4082ec:	75 09                	jne    0x4082f7
4082ee:	56                   	push   %esi
4082ef:	e8 fc f5 ff ff       	call   0x4078f0
4082f4:	83 c4 04             	add    $0x4,%esp
4082f7:	03 fb                	add    %ebx,%edi
4082f9:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
4082fd:	75 c4                	jne    0x4082c3
4082ff:	5f                   	pop    %edi
408300:	5b                   	pop    %ebx
408301:	5e                   	pop    %esi
408302:	5d                   	pop    %ebp
408303:	c3                   	ret
408304:	c7 46 64 01 00 00 00 	movl   $0x1,0x64(%esi)
40830b:	5e                   	pop    %esi
40830c:	5d                   	pop    %ebp
40830d:	c3                   	ret
40830e:	cc                   	int3
40830f:	cc                   	int3
408310:	55                   	push   %ebp
408311:	8b ec                	mov    %esp,%ebp
408313:	5d                   	pop    %ebp
408314:	e9 27 fe ff ff       	jmp    0x408140
408319:	de 60 a9             	fisubs -0x57(%eax)
40831c:	d1 01                	roll   $1,(%ecx)
40831e:	69 7a 55 8b ec 56 8b 	imul   $0x8b56ec8b,0x55(%edx),%edi
408325:	75 0c                	jne    0x408333
408327:	57                   	push   %edi
408328:	8b 7d 08             	mov    0x8(%ebp),%edi
40832b:	83 fe 01             	cmp    $0x1,%esi
40832e:	76 29                	jbe    0x408359
408330:	8d 44 37 fe          	lea    -0x2(%edi,%esi,1),%eax
408334:	8d 4e ff             	lea    -0x1(%esi),%ecx
408337:	8a 50 01             	mov    0x1(%eax),%dl
40833a:	28 10                	sub    %dl,(%eax)
40833c:	48                   	dec    %eax
40833d:	49                   	dec    %ecx
40833e:	75 f7                	jne    0x408337
408340:	83 fe 01             	cmp    $0x1,%esi
408343:	76 14                	jbe    0x408359
408345:	8b c7                	mov    %edi,%eax
408347:	8d 4e ff             	lea    -0x1(%esi),%ecx
40834a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
408350:	8a 50 01             	mov    0x1(%eax),%dl
408353:	28 10                	sub    %dl,(%eax)
408355:	40                   	inc    %eax
408356:	49                   	dec    %ecx
408357:	75 f7                	jne    0x408350
408359:	8b 45 10             	mov    0x10(%ebp),%eax
40835c:	50                   	push   %eax
40835d:	56                   	push   %esi
40835e:	57                   	push   %edi
40835f:	e8 dc fd ff ff       	call   0x408140
408364:	83 c4 0c             	add    $0xc,%esp
408367:	83 fe 01             	cmp    $0x1,%esi
40836a:	76 23                	jbe    0x40838f
40836c:	8d 44 37 fe          	lea    -0x2(%edi,%esi,1),%eax
408370:	8d 4e ff             	lea    -0x1(%esi),%ecx
408373:	8a 50 01             	mov    0x1(%eax),%dl
408376:	28 10                	sub    %dl,(%eax)
408378:	48                   	dec    %eax
408379:	49                   	dec    %ecx
40837a:	75 f7                	jne    0x408373
40837c:	83 fe 01             	cmp    $0x1,%esi
40837f:	76 0e                	jbe    0x40838f
408381:	8b c7                	mov    %edi,%eax
408383:	8d 4e ff             	lea    -0x1(%esi),%ecx
408386:	8a 50 01             	mov    0x1(%eax),%dl
408389:	28 10                	sub    %dl,(%eax)
40838b:	40                   	inc    %eax
40838c:	49                   	dec    %ecx
40838d:	75 f7                	jne    0x408386
40838f:	5f                   	pop    %edi
408390:	5e                   	pop    %esi
408391:	5d                   	pop    %ebp
408392:	c3                   	ret
408393:	df 96 ac e6 34 0c    	fists  0xc34e6ac(%esi)
408399:	2e f5                	cs cmc
40839b:	88 c8                	mov    %cl,%al
40839d:	0e                   	push   %cs
40839e:	58                   	pop    %eax
40839f:	9c                   	pushf
4083a0:	55                   	push   %ebp
4083a1:	8b ec                	mov    %esp,%ebp
4083a3:	56                   	push   %esi
4083a4:	8b 75 0c             	mov    0xc(%ebp),%esi
4083a7:	57                   	push   %edi
4083a8:	8b 7d 08             	mov    0x8(%ebp),%edi
4083ab:	83 fe 01             	cmp    $0x1,%esi
4083ae:	76 29                	jbe    0x4083d9
4083b0:	8d 44 37 fe          	lea    -0x2(%edi,%esi,1),%eax
4083b4:	8d 4e ff             	lea    -0x1(%esi),%ecx
4083b7:	8a 50 01             	mov    0x1(%eax),%dl
4083ba:	00 10                	add    %dl,(%eax)
4083bc:	48                   	dec    %eax
4083bd:	49                   	dec    %ecx
4083be:	75 f7                	jne    0x4083b7
4083c0:	83 fe 01             	cmp    $0x1,%esi
4083c3:	76 14                	jbe    0x4083d9
4083c5:	8b c7                	mov    %edi,%eax
4083c7:	8d 4e ff             	lea    -0x1(%esi),%ecx
4083ca:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
4083d0:	8a 50 01             	mov    0x1(%eax),%dl
4083d3:	00 10                	add    %dl,(%eax)
4083d5:	40                   	inc    %eax
4083d6:	49                   	dec    %ecx
4083d7:	75 f7                	jne    0x4083d0
4083d9:	8b 45 10             	mov    0x10(%ebp),%eax
4083dc:	50                   	push   %eax
4083dd:	56                   	push   %esi
4083de:	57                   	push   %edi
4083df:	e8 5c fd ff ff       	call   0x408140
4083e4:	83 c4 0c             	add    $0xc,%esp
4083e7:	83 fe 01             	cmp    $0x1,%esi
4083ea:	76 23                	jbe    0x40840f
4083ec:	8d 44 37 fe          	lea    -0x2(%edi,%esi,1),%eax
4083f0:	8d 4e ff             	lea    -0x1(%esi),%ecx
4083f3:	8a 50 01             	mov    0x1(%eax),%dl
4083f6:	00 10                	add    %dl,(%eax)
4083f8:	48                   	dec    %eax
4083f9:	49                   	dec    %ecx
4083fa:	75 f7                	jne    0x4083f3
4083fc:	83 fe 01             	cmp    $0x1,%esi
4083ff:	76 0e                	jbe    0x40840f
408401:	8b c7                	mov    %edi,%eax
408403:	8d 4e ff             	lea    -0x1(%esi),%ecx
408406:	8a 50 01             	mov    0x1(%eax),%dl
408409:	00 10                	add    %dl,(%eax)
40840b:	40                   	inc    %eax
40840c:	49                   	dec    %ecx
40840d:	75 f7                	jne    0x408406
40840f:	5f                   	pop    %edi
408410:	5e                   	pop    %esi
408411:	5d                   	pop    %ebp
408412:	c3                   	ret
408413:	1b ad fa 7b 71 11    	sbb    0x11717bfa(%ebp),%ebp
408419:	d7                   	xlat   %ds:(%ebx)
40841a:	ff cb                	dec    %ebx
40841c:	8c 11                	mov    %ss,(%ecx)
40841e:	98                   	cwtl
40841f:	6f                   	outsl  %ds:(%esi),(%dx)
408420:	55                   	push   %ebp
408421:	8b ec                	mov    %esp,%ebp
408423:	81 ec 14 02 00 00    	sub    $0x214,%esp
408429:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40842c:	51                   	push   %ecx
40842d:	8d 55 f8             	lea    -0x8(%ebp),%edx
408430:	8d 85 ec fd ff ff    	lea    -0x214(%ebp),%eax
408436:	68 04 01 00 00       	push   $0x104
40843b:	52                   	push   %edx
40843c:	89 45 fc             	mov    %eax,-0x4(%ebp)
40843f:	e8 8c 0d 01 00       	call   0x4191d0
408444:	83 c4 0c             	add    $0xc,%esp
408447:	85 c0                	test   %eax,%eax
408449:	75 04                	jne    0x40844f
40844b:	8b e5                	mov    %ebp,%esp
40844d:	5d                   	pop    %ebp
40844e:	c3                   	ret
40844f:	8b 45 fc             	mov    -0x4(%ebp),%eax
408452:	50                   	push   %eax
408453:	e8 98 11 01 00       	call   0x4195f0
408458:	83 c4 04             	add    $0x4,%esp
40845b:	85 c0                	test   %eax,%eax
40845d:	74 0e                	je     0x40846d
40845f:	8d 4d f8             	lea    -0x8(%ebp),%ecx
408462:	6a 00                	push   $0x0
408464:	51                   	push   %ecx
408465:	e8 06 14 01 00       	call   0x419870
40846a:	83 c4 08             	add    $0x8,%esp
40846d:	8b 55 fc             	mov    -0x4(%ebp),%edx
408470:	52                   	push   %edx