407edf:	88 4e 57             	mov    %cl,0x57(%esi)
407ee2:	0f b6 4e 15          	movzbl 0x15(%esi),%ecx
407ee6:	88 56 58             	mov    %dl,0x58(%esi)
407ee9:	0f b6 56 14          	movzbl 0x14(%esi),%edx
407eed:	56                   	push   %esi
407eee:	88 46 59             	mov    %al,0x59(%esi)
407ef1:	88 4e 5a             	mov    %cl,0x5a(%esi)
407ef4:	88 56 5b             	mov    %dl,0x5b(%esi)
407ef7:	e8 f4 f9 ff ff       	call   0x4078f0
407efc:	83 c4 04             	add    $0x4,%esp
407eff:	5f                   	pop    %edi
407f00:	5e                   	pop    %esi
407f01:	5b                   	pop    %ebx
407f02:	5d                   	pop    %ebp
407f03:	c3                   	ret
407f04:	77 c3                	ja     0x407ec9
407f06:	c9                   	leave
407f07:	26 34 48             	es xor $0x48,%al
407f0a:	40                   	inc    %eax
407f0b:	ef                   	out    %eax,(%dx)
407f0c:	8d 61 cb             	lea    -0x35(%ecx),%esp
407f0f:	0b 55 8b             	or     -0x75(%ebp),%edx
407f12:	ec                   	in     (%dx),%al
407f13:	56                   	push   %esi
407f14:	57                   	push   %edi
407f15:	6a 00                	push   $0x0
407f17:	e8 54 0a 01 00       	call   0x418970
407f1c:	8b 7d 0c             	mov    0xc(%ebp),%edi
407f1f:	8b 75 08             	mov    0x8(%ebp),%esi
407f22:	0f b6 c8             	movzbl %al,%ecx
407f25:	83 c4 04             	add    $0x4,%esp
407f28:	3b ce                	cmp    %esi,%ecx
407f2a:	72 04                	jb     0x407f30
407f2c:	3b cf                	cmp    %edi,%ecx
407f2e:	76 08                	jbe    0x407f38
407f30:	51                   	push   %ecx
407f31:	e8 3a 0a 01 00       	call   0x418970
407f36:	eb ea                	jmp    0x407f22
407f38:	5f                   	pop    %edi
407f39:	5e                   	pop    %esi
407f3a:	5d                   	pop    %ebp
407f3b:	c3                   	ret
407f3c:	47                   	inc    %edi
407f3d:	4b                   	dec    %ebx
407f3e:	04 b6                	add    $0xb6,%al
407f40:	55                   	push   %ebp
407f41:	8b ec                	mov    %esp,%ebp
407f43:	56                   	push   %esi
407f44:	57                   	push   %edi
407f45:	e8 76 0a 01 00       	call   0x4189c0
407f4a:	8b 75 0c             	mov    0xc(%ebp),%esi
407f4d:	8b 7d 08             	mov    0x8(%ebp),%edi
407f50:	c1 e8 0c             	shr    $0xc,%eax
407f53:	3b c7                	cmp    %edi,%eax
407f55:	72 04                	jb     0x407f5b
407f57:	3b c6                	cmp    %esi,%eax
407f59:	76 07                	jbe    0x407f62
407f5b:	e8 60 0a 01 00       	call   0x4189c0
407f60:	eb ee                	jmp    0x407f50
407f62:	5f                   	pop    %edi
407f63:	5e                   	pop    %esi
407f64:	5d                   	pop    %ebp
407f65:	c3                   	ret
407f66:	7c 48                	jl     0x407fb0
407f68:	77 65                	ja     0x407fcf
407f6a:	9e                   	sahf
407f6b:	95                   	xchg   %eax,%ebp
407f6c:	bb 5a b9 9b 55       	mov    $0x559bb95a,%ebx
407f71:	8b ec                	mov    %esp,%ebp
407f73:	83 ec 40             	sub    $0x40,%esp
407f76:	8b 55 10             	mov    0x10(%ebp),%edx
407f79:	8b 45 08             	mov    0x8(%ebp),%eax
407f7c:	53                   	push   %ebx
407f7d:	56                   	push   %esi
407f7e:	8b 75 0c             	mov    0xc(%ebp),%esi
407f81:	57                   	push   %edi
407f82:	8d 7a fe             	lea    -0x2(%edx),%edi
407f85:	33 c9                	xor    %ecx,%ecx
407f87:	c7 45 c0 41 42 43 44 	movl   $0x44434241,-0x40(%ebp)
407f8e:	c7 45 c4 45 46 47 48 	movl   $0x48474645,-0x3c(%ebp)
407f95:	c7 45 c8 49 4a 4b 4c 	movl   $0x4c4b4a49,-0x38(%ebp)
407f9c:	c7 45 cc 4d 4e 4f 50 	movl   $0x504f4e4d,-0x34(%ebp)
407fa3:	c7 45 d0 51 52 53 54 	movl   $0x54535251,-0x30(%ebp)
407faa:	c7 45 d4 55 56 57 58 	movl   $0x58575655,-0x2c(%ebp)
407fb1:	c7 45 d8 59 5a 61 62 	movl   $0x62615a59,-0x28(%ebp)
407fb8:	c7 45 dc 63 64 65 66 	movl   $0x66656463,-0x24(%ebp)
407fbf:	c7 45 e0 67 68 69 6a 	movl   $0x6a696867,-0x20(%ebp)
407fc6:	c7 45 e4 6b 6c 6d 6e 	movl   $0x6e6d6c6b,-0x1c(%ebp)
407fcd:	c7 45 e8 6f 70 71 72 	movl   $0x7271706f,-0x18(%ebp)
407fd4:	c7 45 ec 73 74 75 76 	movl   $0x76757473,-0x14(%ebp)
407fdb:	c7 45 f0 77 78 79 7a 	movl   $0x7a797877,-0x10(%ebp)
407fe2:	c7 45 f4 30 31 32 33 	movl   $0x33323130,-0xc(%ebp)
407fe9:	c7 45 f8 34 35 36 37 	movl   $0x37363534,-0x8(%ebp)
407ff0:	c7 45 fc 38 39 2b 2f 	movl   $0x2f2b3938,-0x4(%ebp)
407ff7:	85 ff                	test   %edi,%edi
407ff9:	7e 6a                	jle    0x408065
407ffb:	eb 03                	jmp    0x408000
407ffd:	8d 49 00             	lea    0x0(%ecx),%ecx
408000:	0f b6 14 0e          	movzbl (%esi,%ecx,1),%edx
408004:	c1 ea 02             	shr    $0x2,%edx
408007:	0f b6 54 15 c0       	movzbl -0x40(%ebp,%edx,1),%edx
40800c:	88 10                	mov    %dl,(%eax)
40800e:	0f be 14 0e          	movsbl (%esi,%ecx,1),%edx
408012:	0f b6 5c 0e 01       	movzbl 0x1(%esi,%ecx,1),%ebx
408017:	83 e2 03             	and    $0x3,%edx
40801a:	c1 e2 04             	shl    $0x4,%edx
40801d:	c1 eb 04             	shr    $0x4,%ebx
408020:	0b d3                	or     %ebx,%edx
408022:	0f b6 54 15 c0       	movzbl -0x40(%ebp,%edx,1),%edx
408027:	88 50 01             	mov    %dl,0x1(%eax)
40802a:	0f be 5c 0e 01       	movsbl 0x1(%esi,%ecx,1),%ebx
40802f:	0f b6 54 0e 02       	movzbl 0x2(%esi,%ecx,1),%edx
408034:	83 e3 0f             	and    $0xf,%ebx
408037:	c1 ea 06             	shr    $0x6,%edx
40803a:	03 db                	add    %ebx,%ebx
40803c:	03 db                	add    %ebx,%ebx
40803e:	0b d3                	or     %ebx,%edx
408040:	0f b6 54 15 c0       	movzbl -0x40(%ebp,%edx,1),%edx
408045:	88 50 02             	mov    %dl,0x2(%eax)
408048:	0f be 54 0e 02       	movsbl 0x2(%esi,%ecx,1),%edx
40804d:	83 e2 3f             	and    $0x3f,%edx
408050:	0f b6 54 15 c0       	movzbl -0x40(%ebp,%edx,1),%edx
408055:	88 50 03             	mov    %dl,0x3(%eax)
408058:	83 c1 03             	add    $0x3,%ecx
40805b:	83 c0 04             	add    $0x4,%eax
40805e:	3b cf                	cmp    %edi,%ecx
408060:	7c 9e                	jl     0x408000
408062:	8b 55 10             	mov    0x10(%ebp),%edx
408065:	3b ca                	cmp    %edx,%ecx
408067:	7d 5b                	jge    0x4080c4
408069:	0f b6 3c 31          	movzbl (%ecx,%esi,1),%edi
40806d:	c1 ef 02             	shr    $0x2,%edi
408070:	8a 5c 3d c0          	mov    -0x40(%ebp,%edi,1),%bl
408074:	4a                   	dec    %edx
408075:	88 18                	mov    %bl,(%eax)
408077:	3b ca                	cmp    %edx,%ecx
408079:	75 16                	jne    0x408091
40807b:	0f be 0c 31          	movsbl (%ecx,%esi,1),%ecx
40807f:	83 e1 03             	and    $0x3,%ecx
408082:	03 c9                	add    %ecx,%ecx
408084:	8a 54 cd c0          	mov    -0x40(%ebp,%ecx,8),%dl
408088:	88 50 01             	mov    %dl,0x1(%eax)
40808b:	c6 40 02 3d          	movb   $0x3d,0x2(%eax)
40808f:	eb 2c                	jmp    0x4080bd
408091:	0f be 14 31          	movsbl (%ecx,%esi,1),%edx
408095:	0f b6 7c 31 01       	movzbl 0x1(%ecx,%esi,1),%edi
40809a:	83 e2 03             	and    $0x3,%edx
40809d:	c1 e2 04             	shl    $0x4,%edx
4080a0:	c1 ef 04             	shr    $0x4,%edi
4080a3:	0b d7                	or     %edi,%edx
4080a5:	0f b6 54 15 c0       	movzbl -0x40(%ebp,%edx,1),%edx
4080aa:	88 50 01             	mov    %dl,0x1(%eax)
4080ad:	0f be 4c 31 01       	movsbl 0x1(%ecx,%esi,1),%ecx
4080b2:	83 e1 0f             	and    $0xf,%ecx
4080b5:	0f b6 54 8d c0       	movzbl -0x40(%ebp,%ecx,4),%edx
4080ba:	88 50 02             	mov    %dl,0x2(%eax)
4080bd:	83 c0 03             	add    $0x3,%eax
4080c0:	c6 00 3d             	movb   $0x3d,(%eax)
4080c3:	40                   	inc    %eax
4080c4:	c6 00 00             	movb   $0x0,(%eax)
4080c7:	2b 45 08             	sub    0x8(%ebp),%eax
4080ca:	5f                   	pop    %edi
4080cb:	5e                   	pop    %esi
4080cc:	40                   	inc    %eax
4080cd:	5b                   	pop    %ebx
4080ce:	8b e5                	mov    %ebp,%esp
4080d0:	5d                   	pop    %ebp
4080d1:	c3                   	ret
4080d2:	e2 75                	loop   0x408149
4080d4:	f8                   	clc
4080d5:	69 14 4d 6b 62 76 7f 	imul   $0x46503307,0x7f76626b(,%ecx,2),%edx
4080dc:	07 33 50 46
4080e0:	55                   	push   %ebp
4080e1:	8b ec                	mov    %esp,%ebp
4080e3:	56                   	push   %esi
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