405ed7:	23 4d f8             	and    -0x8(%ebp),%ecx
405eda:	6a 20                	push   $0x20
405edc:	5f                   	pop    %edi
405edd:	eb 03                	jmp    0x405ee2
405edf:	03 c9                	add    %ecx,%ecx
405ee1:	47                   	inc    %edi
405ee2:	85 c9                	test   %ecx,%ecx
405ee4:	7d f9                	jge    0x405edf
405ee6:	8b 4d f4             	mov    -0xc(%ebp),%ecx
405ee9:	8b 54 f9 04          	mov    0x4(%ecx,%edi,8),%edx
405eed:	8b 0a                	mov    (%edx),%ecx
405eef:	2b 4d f0             	sub    -0x10(%ebp),%ecx
405ef2:	8b f1                	mov    %ecx,%esi
405ef4:	c1 fe 04             	sar    $0x4,%esi
405ef7:	4e                   	dec    %esi
405ef8:	83 fe 3f             	cmp    $0x3f,%esi
405efb:	89 4d f8             	mov    %ecx,-0x8(%ebp)
405efe:	7e 03                	jle    0x405f03
405f00:	6a 3f                	push   $0x3f
405f02:	5e                   	pop    %esi
405f03:	3b f7                	cmp    %edi,%esi
405f05:	0f 84 01 01 00 00    	je     0x40600c
405f0b:	8b 4a 04             	mov    0x4(%edx),%ecx
405f0e:	3b 4a 08             	cmp    0x8(%edx),%ecx
405f11:	75 5c                	jne    0x405f6f
405f13:	83 ff 20             	cmp    $0x20,%edi
405f16:	bb 00 00 00 80       	mov    $0x80000000,%ebx
405f1b:	7d 26                	jge    0x405f43
405f1d:	8b cf                	mov    %edi,%ecx
405f1f:	d3 eb                	shr    %cl,%ebx
405f21:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405f24:	8d 7c 38 04          	lea    0x4(%eax,%edi,1),%edi
405f28:	f7 d3                	not    %ebx
405f2a:	89 5d ec             	mov    %ebx,-0x14(%ebp)
405f2d:	23 5c 88 44          	and    0x44(%eax,%ecx,4),%ebx
405f31:	89 5c 88 44          	mov    %ebx,0x44(%eax,%ecx,4)
405f35:	fe 0f                	decb   (%edi)
405f37:	75 33                	jne    0x405f6c
405f39:	8b 4d ec             	mov    -0x14(%ebp),%ecx
405f3c:	8b 5d 08             	mov    0x8(%ebp),%ebx
405f3f:	21 0b                	and    %ecx,(%ebx)
405f41:	eb 2c                	jmp    0x405f6f
405f43:	8d 4f e0             	lea    -0x20(%edi),%ecx
405f46:	d3 eb                	shr    %cl,%ebx
405f48:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405f4b:	8d 8c 88 c4 00 00 00 	lea    0xc4(%eax,%ecx,4),%ecx
405f52:	8d 7c 38 04          	lea    0x4(%eax,%edi,1),%edi
405f56:	f7 d3                	not    %ebx
405f58:	21 19                	and    %ebx,(%ecx)
405f5a:	fe 0f                	decb   (%edi)
405f5c:	89 5d ec             	mov    %ebx,-0x14(%ebp)
405f5f:	75 0b                	jne    0x405f6c
405f61:	8b 5d 08             	mov    0x8(%ebp),%ebx
405f64:	8b 4d ec             	mov    -0x14(%ebp),%ecx
405f67:	21 4b 04             	and    %ecx,0x4(%ebx)
405f6a:	eb 03                	jmp    0x405f6f
405f6c:	8b 5d 08             	mov    0x8(%ebp),%ebx
405f6f:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
405f73:	8b 4a 08             	mov    0x8(%edx),%ecx
405f76:	8b 7a 04             	mov    0x4(%edx),%edi
405f79:	89 79 04             	mov    %edi,0x4(%ecx)
405f7c:	8b 4a 04             	mov    0x4(%edx),%ecx
405f7f:	8b 7a 08             	mov    0x8(%edx),%edi
405f82:	89 79 08             	mov    %edi,0x8(%ecx)
405f85:	0f 84 8d 00 00 00    	je     0x406018
405f8b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
405f8e:	8d 0c f1             	lea    (%ecx,%esi,8),%ecx
405f91:	8b 79 04             	mov    0x4(%ecx),%edi
405f94:	89 4a 08             	mov    %ecx,0x8(%edx)
405f97:	89 7a 04             	mov    %edi,0x4(%edx)
405f9a:	89 51 04             	mov    %edx,0x4(%ecx)
405f9d:	8b 4a 04             	mov    0x4(%edx),%ecx
405fa0:	89 51 08             	mov    %edx,0x8(%ecx)
405fa3:	8b 4a 04             	mov    0x4(%edx),%ecx
405fa6:	3b 4a 08             	cmp    0x8(%edx),%ecx
405fa9:	75 5e                	jne    0x406009
405fab:	8a 4c 06 04          	mov    0x4(%esi,%eax,1),%cl
405faf:	88 4d 0b             	mov    %cl,0xb(%ebp)
405fb2:	fe c1                	inc    %cl
405fb4:	83 fe 20             	cmp    $0x20,%esi
405fb7:	88 4c 06 04          	mov    %cl,0x4(%esi,%eax,1)
405fbb:	7d 23                	jge    0x405fe0
405fbd:	80 7d 0b 00          	cmpb   $0x0,0xb(%ebp)
405fc1:	75 0b                	jne    0x405fce
405fc3:	bf 00 00 00 80       	mov    $0x80000000,%edi
405fc8:	8b ce                	mov    %esi,%ecx
405fca:	d3 ef                	shr    %cl,%edi
405fcc:	09 3b                	or     %edi,(%ebx)
405fce:	8b ce                	mov    %esi,%ecx
405fd0:	bf 00 00 00 80       	mov    $0x80000000,%edi
405fd5:	d3 ef                	shr    %cl,%edi
405fd7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405fda:	09 7c 88 44          	or     %edi,0x44(%eax,%ecx,4)
405fde:	eb 29                	jmp    0x406009
405fe0:	80 7d 0b 00          	cmpb   $0x0,0xb(%ebp)
405fe4:	75 0d                	jne    0x405ff3
405fe6:	8d 4e e0             	lea    -0x20(%esi),%ecx
405fe9:	bf 00 00 00 80       	mov    $0x80000000,%edi
405fee:	d3 ef                	shr    %cl,%edi
405ff0:	09 7b 04             	or     %edi,0x4(%ebx)
405ff3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405ff6:	8d bc 88 c4 00 00 00 	lea    0xc4(%eax,%ecx,4),%edi
405ffd:	8d 4e e0             	lea    -0x20(%esi),%ecx
406000:	be 00 00 00 80       	mov    $0x80000000,%esi
406005:	d3 ee                	shr    %cl,%esi
406007:	09 37                	or     %esi,(%edi)
406009:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40600c:	85 c9                	test   %ecx,%ecx
40600e:	74 0b                	je     0x40601b
406010:	89 0a                	mov    %ecx,(%edx)
406012:	89 4c 11 fc          	mov    %ecx,-0x4(%ecx,%edx,1)
406016:	eb 03                	jmp    0x40601b
406018:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40601b:	8b 75 f0             	mov    -0x10(%ebp),%esi
40601e:	03 d1                	add    %ecx,%edx
406020:	8d 4e 01             	lea    0x1(%esi),%ecx
406023:	89 0a                	mov    %ecx,(%edx)
406025:	89 4c 32 fc          	mov    %ecx,-0x4(%edx,%esi,1)
406029:	8b 75 f4             	mov    -0xc(%ebp),%esi
40602c:	8b 0e                	mov    (%esi),%ecx
40602e:	8d 79 01             	lea    0x1(%ecx),%edi
406031:	89 3e                	mov    %edi,(%esi)
406033:	85 c9                	test   %ecx,%ecx
406035:	75 1a                	jne    0x406051
406037:	3b 1d 10 10 43 00    	cmp    0x431010,%ebx
40603d:	75 12                	jne    0x406051
40603f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406042:	3b 0d 8c 2d de 02    	cmp    0x2de2d8c,%ecx
406048:	75 07                	jne    0x406051
40604a:	83 25 10 10 43 00 00 	andl   $0x0,0x431010
406051:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406054:	89 08                	mov    %ecx,(%eax)
406056:	8d 42 04             	lea    0x4(%edx),%eax
406059:	5f                   	pop    %edi
40605a:	5e                   	pop    %esi
40605b:	5b                   	pop    %ebx
40605c:	c9                   	leave
40605d:	c3                   	ret
40605e:	cc                   	int3
40605f:	cc                   	int3
406060:	53                   	push   %ebx
406061:	56                   	push   %esi
406062:	57                   	push   %edi
406063:	8b 54 24 10          	mov    0x10(%esp),%edx
406067:	8b 44 24 14          	mov    0x14(%esp),%eax
40606b:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40606f:	55                   	push   %ebp
406070:	52                   	push   %edx
406071:	50                   	push   %eax
406072:	51                   	push   %ecx
406073:	51                   	push   %ecx
406074:	68 f0 60 40 00       	push   $0x4060f0
406079:	64 ff 35 00 00 00 00 	push   %fs:0x0
406080:	a1 04 f0 41 00       	mov    0x41f004,%eax
406085:	33 c4                	xor    %esp,%eax
406087:	89 44 24 08          	mov    %eax,0x8(%esp)
40608b:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
406092:	8b 44 24 30          	mov    0x30(%esp),%eax
406096:	8b 58 08             	mov    0x8(%eax),%ebx
406099:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
40609d:	33 19                	xor    (%ecx),%ebx
40609f:	8b 70 0c             	mov    0xc(%eax),%esi
4060a2:	83 fe fe             	cmp    $0xfffffffe,%esi
4060a5:	74 3b                	je     0x4060e2
4060a7:	8b 54 24 34          	mov    0x34(%esp),%edx
4060ab:	83 fa fe             	cmp    $0xfffffffe,%edx
4060ae:	74 04                	je     0x4060b4
4060b0:	3b f2                	cmp    %edx,%esi
4060b2:	76 2e                	jbe    0x4060e2
4060b4:	8d 34 76             	lea    (%esi,%esi,2),%esi
4060b7:	8d 5c b3 10          	lea    0x10(%ebx,%esi,4),%ebx
4060bb:	8b 0b                	mov    (%ebx),%ecx
4060bd:	89 48 0c             	mov    %ecx,0xc(%eax)
4060c0:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
4060c4:	75 cc                	jne    0x406092
4060c6:	68 01 01 00 00       	push   $0x101
4060cb:	8b 43 08             	mov    0x8(%ebx),%eax
4060ce:	e8 da 22 00 00       	call   0x4083ad
4060d3:	b9 01 00 00 00       	mov    $0x1,%ecx
4060d8:	8b 43 08             	mov    0x8(%ebx),%eax
4060db:	e8 ec 22 00 00       	call   0x4083cc
4060e0:	eb b0                	jmp    0x406092
4060e2:	64 8f 05 00 00 00 00 	pop    %fs:0x0
4060e9:	83 c4 18             	add    $0x18,%esp
4060ec:	5f                   	pop    %edi
4060ed:	5e                   	pop    %esi
4060ee:	5b                   	pop    %ebx
4060ef:	c3                   	ret
4060f0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4060f4:	f7 41 04 06 00 00 00 	testl  $0x6,0x4(%ecx)
4060fb:	b8 01 00 00 00       	mov    $0x1,%eax
406100:	74 33                	je     0x406135
406102:	8b 44 24 08          	mov    0x8(%esp),%eax
406106:	8b 48 08             	mov    0x8(%eax),%ecx
406109:	33 c8                	xor    %eax,%ecx
40610b:	e8 f0 ae ff ff       	call   0x401000
406110:	55                   	push   %ebp
406111:	8b 68 18             	mov    0x18(%eax),%ebp
406114:	ff 70 0c             	push   0xc(%eax)
406117:	ff 70 10             	push   0x10(%eax)
40611a:	ff 70 14             	push   0x14(%eax)
40611d:	e8 3e ff ff ff       	call   0x406060
406122:	83 c4 0c             	add    $0xc,%esp
406125:	5d                   	pop    %ebp
406126:	8b 44 24 08          	mov    0x8(%esp),%eax
40612a:	8b 54 24 10          	mov    0x10(%esp),%edx
40612e:	89 02                	mov    %eax,(%edx)
406130:	b8 03 00 00 00       	mov    $0x3,%eax
406135:	c3                   	ret
406136:	55                   	push   %ebp
406137:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40613b:	8b 29                	mov    (%ecx),%ebp
40613d:	ff 71 1c             	push   0x1c(%ecx)
406140:	ff 71 18             	push   0x18(%ecx)
406143:	ff 71 28             	push   0x28(%ecx)
406146:	e8 15 ff ff ff       	call   0x406060
40614b:	83 c4 0c             	add    $0xc,%esp
40614e:	5d                   	pop    %ebp
40614f:	c2 04 00             	ret    $0x4
406152:	55                   	push   %ebp
406153:	56                   	push   %esi
406154:	57                   	push   %edi
406155:	53                   	push   %ebx
406156:	8b ea                	mov    %edx,%ebp
406158:	33 c0                	xor    %eax,%eax
40615a:	33 db                	xor    %ebx,%ebx
40615c:	33 d2                	xor    %edx,%edx
40615e:	33 f6                	xor    %esi,%esi
406160:	33 ff                	xor    %edi,%edi
406162:	ff d1                	call   *%ecx
406164:	5b                   	pop    %ebx
406165:	5f                   	pop    %edi
406166:	5e                   	pop    %esi
406167:	5d                   	pop    %ebp
406168:	c3                   	ret
406169:	8b ea                	mov    %edx,%ebp
40616b:	8b f1                	mov    %ecx,%esi
40616d:	8b c1                	mov    %ecx,%eax
40616f:	6a 01                	push   $0x1
406171:	e8 37 22 00 00       	call   0x4083ad
406176:	33 c0                	xor    %eax,%eax
406178:	33 db                	xor    %ebx,%ebx
40617a:	33 c9                	xor    %ecx,%ecx
40617c:	33 d2                	xor    %edx,%edx
40617e:	33 ff                	xor    %edi,%edi
406180:	ff e6                	jmp    *%esi
406182:	55                   	push   %ebp
406183:	8b ec                	mov    %esp,%ebp
406185:	53                   	push   %ebx
406186:	56                   	push   %esi
406187:	57                   	push   %edi
406188:	6a 00                	push   $0x0
40618a:	6a 00                	push   $0x0
40618c:	68 97 61 40 00       	push   $0x406197
406191:	51                   	push   %ecx
406192:	e8 f7 51 00 00       	call   0x40b38e
406197:	5f                   	pop    %edi
406198:	5e                   	pop    %esi
406199:	5b                   	pop    %ebx
40619a:	5d                   	pop    %ebp
40619b:	c3                   	ret
40619c:	55                   	push   %ebp
40619d:	8b 6c 24 08          	mov    0x8(%esp),%ebp
4061a1:	52                   	push   %edx
4061a2:	51                   	push   %ecx
4061a3:	ff 74 24 14          	push   0x14(%esp)
4061a7:	e8 b4 fe ff ff       	call   0x406060
4061ac:	83 c4 0c             	add    $0xc,%esp
4061af:	5d                   	pop    %ebp
4061b0:	c2 08 00             	ret    $0x8
4061b3:	8b ff                	mov    %edi,%edi
4061b5:	55                   	push   %ebp
4061b6:	8b ec                	mov    %esp,%ebp
4061b8:	83 ec 10             	sub    $0x10,%esp
4061bb:	56                   	push   %esi
4061bc:	ff 75 0c             	push   0xc(%ebp)
4061bf:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4061c2:	e8 07 e4 ff ff       	call   0x4045ce
4061c7:	8b 75 08             	mov    0x8(%ebp),%esi
4061ca:	0f be 06             	movsbl (%esi),%eax
4061cd:	50                   	push   %eax
4061ce:	e8 3f 23 00 00       	call   0x408512
4061d3:	83 f8 65             	cmp    $0x65,%eax
4061d6:	eb 0c                	jmp    0x4061e4
4061d8:	46                   	inc    %esi
4061d9:	0f b6 06             	movzbl (%esi),%eax
4061dc:	50                   	push   %eax
4061dd:	e8 d5 0d 00 00       	call   0x406fb7
4061e2:	85 c0                	test   %eax,%eax
4061e4:	59                   	pop    %ecx
4061e5:	75 f1                	jne    0x4061d8
4061e7:	0f be 06             	movsbl (%esi),%eax
4061ea:	50                   	push   %eax
4061eb:	e8 22 23 00 00       	call   0x408512
4061f0:	59                   	pop    %ecx
4061f1:	83 f8 78             	cmp    $0x78,%eax
4061f4:	75 02                	jne    0x4061f8
4061f6:	46                   	inc    %esi
4061f7:	46                   	inc    %esi
4061f8:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4061fb:	8b 89 bc 00 00 00    	mov    0xbc(%ecx),%ecx
406201:	8b 09                	mov    (%ecx),%ecx
406203:	8a 06                	mov    (%esi),%al
406205:	8a 09                	mov    (%ecx),%cl
406207:	88 0e                	mov    %cl,(%esi)
406209:	46                   	inc    %esi
40620a:	8a 0e                	mov    (%esi),%cl
40620c:	88 06                	mov    %al,(%esi)
40620e:	8a c1                	mov    %cl,%al
406210:	8a 0e                	mov    (%esi),%cl
406212:	46                   	inc    %esi
406213:	84 c9                	test   %cl,%cl
406215:	75 f3                	jne    0x40620a
406217:	5e                   	pop    %esi
406218:	38 4d fc             	cmp    %cl,-0x4(%ebp)
40621b:	74 07                	je     0x406224
40621d:	8b 45 f8             	mov    -0x8(%ebp),%eax
406220:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
406224:	c9                   	leave
406225:	c3                   	ret
406226:	8b ff                	mov    %edi,%edi
406228:	55                   	push   %ebp
406229:	8b ec                	mov    %esp,%ebp
40622b:	83 ec 10             	sub    $0x10,%esp
40622e:	56                   	push   %esi
40622f:	ff 75 0c             	push   0xc(%ebp)
406232:	8d 4d f0             	lea    -0x10(%ebp),%ecx
406235:	e8 94 e3 ff ff       	call   0x4045ce
40623a:	8b 45 08             	mov    0x8(%ebp),%eax
40623d:	8a 08                	mov    (%eax),%cl
40623f:	8b 75 f0             	mov    -0x10(%ebp),%esi
406242:	84 c9                	test   %cl,%cl
406244:	74 15                	je     0x40625b
406246:	8b 96 bc 00 00 00    	mov    0xbc(%esi),%edx
40624c:	8b 12                	mov    (%edx),%edx
40624e:	8a 12                	mov    (%edx),%dl
406250:	3a ca                	cmp    %dl,%cl
406252:	74 07                	je     0x40625b
406254:	40                   	inc    %eax
406255:	8a 08                	mov    (%eax),%cl
406257:	84 c9                	test   %cl,%cl
406259:	75 f5                	jne    0x406250
40625b:	8a 08                	mov    (%eax),%cl
40625d:	40                   	inc    %eax
40625e:	84 c9                	test   %cl,%cl
406260:	74 36                	je     0x406298
406262:	eb 0b                	jmp    0x40626f
406264:	80 f9 65             	cmp    $0x65,%cl
406267:	74 0c                	je     0x406275
406269:	80 f9 45             	cmp    $0x45,%cl