404f21:	0f af 45 f0          	imul   -0x10(%ebp),%eax
404f25:	03 c3                	add    %ebx,%eax
404f27:	33 c9                	xor    %ecx,%ecx
404f29:	e8 5a dd ff ff       	call   0x402c88
404f2e:	83 7d f8 01          	cmpl   $0x1,-0x8(%ebp)
404f32:	7e 2e                	jle    0x404f62
404f34:	83 45 08 04          	addl   $0x4,0x8(%ebp)
404f38:	ff 4d f8             	decl   -0x8(%ebp)
404f3b:	4f                   	dec    %edi
404f3c:	85 ff                	test   %edi,%edi
404f3e:	7c 22                	jl     0x404f62
404f40:	47                   	inc    %edi
404f41:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
404f48:	8b 45 08             	mov    0x8(%ebp),%eax
404f4b:	50                   	push   %eax
404f4c:	8b 45 f4             	mov    -0xc(%ebp),%eax
404f4f:	8d 04 83             	lea    (%ebx,%eax,4),%eax
404f52:	8b 4d f8             	mov    -0x8(%ebp),%ecx
404f55:	8b d6                	mov    %esi,%edx
404f57:	e8 88 fe ff ff       	call   0x404de4
404f5c:	ff 45 f4             	incl   -0xc(%ebp)
404f5f:	4f                   	dec    %edi
404f60:	75 e6                	jne    0x404f48
404f62:	8b 45 fc             	mov    -0x4(%ebp),%eax
404f65:	89 18                	mov    %ebx,(%eax)
404f67:	5f                   	pop    %edi
404f68:	5e                   	pop    %esi
404f69:	5b                   	pop    %ebx
404f6a:	8b e5                	mov    %ebp,%esp
404f6c:	5d                   	pop    %ebp
404f6d:	c2 04 00             	ret    $0x4
404f70:	54                   	push   %esp
404f71:	83 04 24 04          	addl   $0x4,(%esp)
404f75:	e8 6a fe ff ff       	call   0x404de4
404f7a:	c3                   	ret
404f7b:	90                   	nop
404f7c:	8b 08                	mov    (%eax),%ecx
404f7e:	85 c9                	test   %ecx,%ecx
404f80:	74 33                	je     0x404fb5
404f82:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
404f88:	f0 ff 49 f8          	lock decl -0x8(%ecx)
404f8c:	75 27                	jne    0x404fb5
404f8e:	50                   	push   %eax
404f8f:	89 c8                	mov    %ecx,%eax
404f91:	31 c9                	xor    %ecx,%ecx
404f93:	8a 4a 01             	mov    0x1(%edx),%cl
404f96:	8b 54 11 06          	mov    0x6(%ecx,%edx,1),%edx
404f9a:	85 d2                	test   %edx,%edx
404f9c:	74 0e                	je     0x404fac
404f9e:	8b 48 fc             	mov    -0x4(%eax),%ecx
404fa1:	85 c9                	test   %ecx,%ecx
404fa3:	74 07                	je     0x404fac
404fa5:	8b 12                	mov    (%edx),%edx
404fa7:	e8 98 fa ff ff       	call   0x404a44
404fac:	83 e8 08             	sub    $0x8,%eax
404faf:	e8 28 d7 ff ff       	call   0x4026dc
404fb4:	58                   	pop    %eax
404fb5:	c3                   	ret
404fb6:	8b c0                	mov    %eax,%eax
404fb8:	53                   	push   %ebx
404fb9:	8b 18                	mov    (%eax),%ebx
404fbb:	85 d2                	test   %edx,%edx
404fbd:	74 04                	je     0x404fc3
404fbf:	f0 ff 42 f8          	lock incl -0x8(%edx)
404fc3:	85 db                	test   %ebx,%ebx
404fc5:	74 14                	je     0x404fdb
404fc7:	f0 ff 4b f8          	lock decl -0x8(%ebx)
404fcb:	75 0e                	jne    0x404fdb
404fcd:	50                   	push   %eax
404fce:	52                   	push   %edx
404fcf:	89 ca                	mov    %ecx,%edx
404fd1:	ff 43 f8             	incl   -0x8(%ebx)
404fd4:	e8 a3 ff ff ff       	call   0x404f7c
404fd9:	5a                   	pop    %edx
404fda:	58                   	pop    %eax
404fdb:	89 10                	mov    %edx,(%eax)
404fdd:	5b                   	pop    %ebx
404fde:	c3                   	ret
404fdf:	90                   	nop
404fe0:	83 c4 e4             	add    $0xffffffe4,%esp
404fe3:	6a 1c                	push   $0x1c
404fe5:	8d 54 24 04          	lea    0x4(%esp),%edx
404fe9:	52                   	push   %edx
404fea:	50                   	push   %eax
404feb:	e8 dc c2 ff ff       	call   0x4012cc
404ff0:	81 7c 24 10 00 10 00 	cmpl   $0x1000,0x10(%esp)
404ff7:	00
404ff8:	75 06                	jne    0x405000
404ffa:	8b 44 24 04          	mov    0x4(%esp),%eax
404ffe:	eb 02                	jmp    0x405002
405000:	33 c0                	xor    %eax,%eax
405002:	83 c4 1c             	add    $0x1c,%esp
405005:	c3                   	ret
405006:	8b c0                	mov    %eax,%eax
405008:	e8 d3 ff ff ff       	call   0x404fe0
40500d:	c3                   	ret
40500e:	8b c0                	mov    %eax,%eax
405010:	53                   	push   %ebx
405011:	56                   	push   %esi
405012:	81 c4 f8 fe ff ff    	add    $0xfffffef8,%esp
405018:	8b d8                	mov    %eax,%ebx
40501a:	83 7b 10 00          	cmpl   $0x0,0x10(%ebx)
40501e:	75 2b                	jne    0x40504b
405020:	68 05 01 00 00       	push   $0x105
405025:	8d 44 24 04          	lea    0x4(%esp),%eax
405029:	50                   	push   %eax
40502a:	8b 43 04             	mov    0x4(%ebx),%eax
40502d:	50                   	push   %eax
40502e:	e8 29 c2 ff ff       	call   0x40125c
405033:	8b c4                	mov    %esp,%eax
405035:	b2 01                	mov    $0x1,%dl
405037:	e8 10 02 00 00       	call   0x40524c
40503c:	8b f0                	mov    %eax,%esi
40503e:	89 73 10             	mov    %esi,0x10(%ebx)
405041:	85 f6                	test   %esi,%esi
405043:	75 06                	jne    0x40504b
405045:	8b 43 04             	mov    0x4(%ebx),%eax
405048:	89 43 10             	mov    %eax,0x10(%ebx)
40504b:	8b 43 10             	mov    0x10(%ebx),%eax
40504e:	81 c4 08 01 00 00    	add    $0x108,%esp
405054:	5e                   	pop    %esi
405055:	5b                   	pop    %ebx
405056:	c3                   	ret
405057:	90                   	nop
405058:	8b 15 34 d0 45 00    	mov    0x45d034,%edx
40505e:	85 d2                	test   %edx,%edx
405060:	74 1d                	je     0x40507f
405062:	3b 42 04             	cmp    0x4(%edx),%eax
405065:	74 0a                	je     0x405071
405067:	3b 42 08             	cmp    0x8(%edx),%eax
40506a:	74 05                	je     0x405071
40506c:	3b 42 0c             	cmp    0xc(%edx),%eax
40506f:	75 08                	jne    0x405079
405071:	8b c2                	mov    %edx,%eax
405073:	e8 98 ff ff ff       	call   0x405010
405078:	c3                   	ret
405079:	8b 12                	mov    (%edx),%edx
40507b:	85 d2                	test   %edx,%edx
40507d:	75 e3                	jne    0x405062
40507f:	c3                   	ret
405080:	eb 06                	jmp    0x405088
405082:	50                   	push   %eax
405083:	e8 94 c1 ff ff       	call   0x40121c
405088:	8a 10                	mov    (%eax),%dl
40508a:	84 d2                	test   %dl,%dl
40508c:	74 05                	je     0x405093
40508e:	80 fa 5c             	cmp    $0x5c,%dl
405091:	75 ef                	jne    0x405082
405093:	c3                   	ret
405094:	55                   	push   %ebp
405095:	8b ec                	mov    %esp,%ebp
405097:	81 c4 b0 fd ff ff    	add    $0xfffffdb0,%esp
40509d:	53                   	push   %ebx
40509e:	56                   	push   %esi
40509f:	57                   	push   %edi
4050a0:	89 55 f8             	mov    %edx,-0x8(%ebp)
4050a3:	89 45 fc             	mov    %eax,-0x4(%ebp)
4050a6:	8b 45 fc             	mov    -0x4(%ebp),%eax
4050a9:	89 45 f4             	mov    %eax,-0xc(%ebp)
4050ac:	68 28 52 40 00       	push   $0x405228
4050b1:	e8 ae c1 ff ff       	call   0x401264
4050b6:	8b f0                	mov    %eax,%esi
4050b8:	85 f6                	test   %esi,%esi
4050ba:	74 40                	je     0x4050fc
4050bc:	68 38 52 40 00       	push   $0x405238
4050c1:	56                   	push   %esi
4050c2:	e8 a5 c1 ff ff       	call   0x40126c
4050c7:	89 c3                	mov    %eax,%ebx
4050c9:	85 db                	test   %ebx,%ebx
4050cb:	74 2f                	je     0x4050fc
4050cd:	68 05 01 00 00       	push   $0x105
4050d2:	8d 85 b1 fd ff ff    	lea    -0x24f(%ebp),%eax
4050d8:	50                   	push   %eax
4050d9:	8b 45 fc             	mov    -0x4(%ebp),%eax
4050dc:	50                   	push   %eax
4050dd:	ff d3                	call   *%ebx
4050df:	85 c0                	test   %eax,%eax
4050e1:	74 19                	je     0x4050fc
4050e3:	8b 45 f8             	mov    -0x8(%ebp),%eax
4050e6:	50                   	push   %eax
4050e7:	8d 85 b1 fd ff ff    	lea    -0x24f(%ebp),%eax
4050ed:	50                   	push   %eax
4050ee:	8b 45 fc             	mov    -0x4(%ebp),%eax
4050f1:	50                   	push   %eax
4050f2:	e8 9d c1 ff ff       	call   0x401294
4050f7:	e9 22 01 00 00       	jmp    0x40521e
4050fc:	8b 45 fc             	mov    -0x4(%ebp),%eax
4050ff:	80 38 5c             	cmpb   $0x5c,(%eax)
405102:	75 38                	jne    0x40513c
405104:	8b 45 fc             	mov    -0x4(%ebp),%eax
405107:	80 78 01 5c          	cmpb   $0x5c,0x1(%eax)
40510b:	0f 85 0d 01 00 00    	jne    0x40521e
405111:	8b 45 fc             	mov    -0x4(%ebp),%eax
405114:	83 c0 02             	add    $0x2,%eax
405117:	e8 64 ff ff ff       	call   0x405080
40511c:	8b f0                	mov    %eax,%esi
40511e:	80 3e 00             	cmpb   $0x0,(%esi)
405121:	0f 84 f7 00 00 00    	je     0x40521e
405127:	8d 46 01             	lea    0x1(%esi),%eax
40512a:	e8 51 ff ff ff       	call   0x405080
40512f:	8b f0                	mov    %eax,%esi
405131:	80 3e 00             	cmpb   $0x0,(%esi)
405134:	0f 84 e4 00 00 00    	je     0x40521e
40513a:	eb 06                	jmp    0x405142
40513c:	8b 75 fc             	mov    -0x4(%ebp),%esi
40513f:	83 c6 02             	add    $0x2,%esi
405142:	8b de                	mov    %esi,%ebx
405144:	2b 5d fc             	sub    -0x4(%ebp),%ebx
405147:	8d 43 01             	lea    0x1(%ebx),%eax
40514a:	50                   	push   %eax
40514b:	8b 45 fc             	mov    -0x4(%ebp),%eax
40514e:	50                   	push   %eax
40514f:	8d 85 b1 fd ff ff    	lea    -0x24f(%ebp),%eax
405155:	50                   	push   %eax
405156:	e8 39 c1 ff ff       	call   0x401294
40515b:	e9 a1 00 00 00       	jmp    0x405201
405160:	8d 46 01             	lea    0x1(%esi),%eax
405163:	e8 18 ff ff ff       	call   0x405080
405168:	8b f8                	mov    %eax,%edi
40516a:	8b c7                	mov    %edi,%eax
40516c:	2b c6                	sub    %esi,%eax
40516e:	8b d0                	mov    %eax,%edx
405170:	03 d3                	add    %ebx,%edx
405172:	42                   	inc    %edx
405173:	81 fa 05 01 00 00    	cmp    $0x105,%edx
405179:	0f 8f 9f 00 00 00    	jg     0x40521e
40517f:	40                   	inc    %eax
405180:	50                   	push   %eax
405181:	56                   	push   %esi
405182:	8d 85 b1 fd ff ff    	lea    -0x24f(%ebp),%eax
405188:	03 c3                	add    %ebx,%eax
40518a:	50                   	push   %eax
40518b:	e8 04 c1 ff ff       	call   0x401294
405190:	8d 85 b6 fe ff ff    	lea    -0x14a(%ebp),%eax
405196:	50                   	push   %eax
405197:	8d 85 b1 fd ff ff    	lea    -0x24f(%ebp),%eax
40519d:	50                   	push   %eax
40519e:	e8 99 c0 ff ff       	call   0x40123c
4051a3:	8b f0                	mov    %eax,%esi
4051a5:	83 fe ff             	cmp    $0xffffffff,%esi
4051a8:	74 74                	je     0x40521e
4051aa:	56                   	push   %esi
4051ab:	e8 84 c0 ff ff       	call   0x401234
4051b0:	8d 85 e2 fe ff ff    	lea    -0x11e(%ebp),%eax
4051b6:	50                   	push   %eax
4051b7:	e8 e0 c0 ff ff       	call   0x40129c
4051bc:	8d 53 01             	lea    0x1(%ebx),%edx
4051bf:	03 c2                	add    %edx,%eax
4051c1:	40                   	inc    %eax
4051c2:	3d 05 01 00 00       	cmp    $0x105,%eax
4051c7:	7f 55                	jg     0x40521e
4051c9:	c6 84 1d b1 fd ff ff 	movb   $0x5c,-0x24f(%ebp,%ebx,1)
4051d0:	5c
4051d1:	b8 05 01 00 00       	mov    $0x105,%eax
4051d6:	2b c3                	sub    %ebx,%eax
4051d8:	48                   	dec    %eax
4051d9:	50                   	push   %eax
4051da:	8d 85 e2 fe ff ff    	lea    -0x11e(%ebp),%eax
4051e0:	50                   	push   %eax
4051e1:	8d 85 b1 fd ff ff    	lea    -0x24f(%ebp),%eax
4051e7:	03 c3                	add    %ebx,%eax
4051e9:	40                   	inc    %eax
4051ea:	50                   	push   %eax
4051eb:	e8 a4 c0 ff ff       	call   0x401294
4051f0:	8d 85 e2 fe ff ff    	lea    -0x11e(%ebp),%eax
4051f6:	50                   	push   %eax
4051f7:	e8 a0 c0 ff ff       	call   0x40129c
4051fc:	40                   	inc    %eax
4051fd:	03 d8                	add    %eax,%ebx
4051ff:	8b f7                	mov    %edi,%esi
405201:	80 3e 00             	cmpb   $0x0,(%esi)
405204:	0f 85 56 ff ff ff    	jne    0x405160
40520a:	8b 45 f8             	mov    -0x8(%ebp),%eax
40520d:	50                   	push   %eax
40520e:	8d 85 b1 fd ff ff    	lea    -0x24f(%ebp),%eax
405214:	50                   	push   %eax
405215:	8b 45 fc             	mov    -0x4(%ebp),%eax
405218:	50                   	push   %eax
405219:	e8 76 c0 ff ff       	call   0x401294
40521e:	8b 45 f4             	mov    -0xc(%ebp),%eax
405221:	5f                   	pop    %edi
405222:	5e                   	pop    %esi
405223:	5b                   	pop    %ebx
405224:	8b e5                	mov    %ebp,%esp
405226:	5d                   	pop    %ebp
405227:	c3                   	ret
405228:	6b 65 72 6e          	imul   $0x6e,0x72(%ebp),%esp
40522c:	65 6c                	gs insb (%dx),%es:(%edi)
40522e:	33 32                	xor    (%edx),%esi
405230:	2e 64 6c             	cs fs insb (%dx),%es:(%edi)
405233:	6c                   	insb   (%dx),%es:(%edi)
405234:	00 00                	add    %al,(%eax)
405236:	00 00                	add    %al,(%eax)
405238:	47                   	inc    %edi
405239:	65 74 4c             	gs je  0x405288
40523c:	6f                   	outsl  %ds:(%esi),(%dx)
40523d:	6e                   	outsb  %ds:(%esi),(%dx)
40523e:	67 50                	addr16 push %eax
405240:	61                   	popa
405241:	74 68                	je     0x4052ab
405243:	4e                   	dec    %esi
405244:	61                   	popa
405245:	6d                   	insl   (%dx),%es:(%edi)
405246:	65 41                	gs inc %ecx
405248:	00 00                	add    %al,(%eax)
40524a:	00 00                	add    %al,(%eax)
40524c:	55                   	push   %ebp
40524d:	8b ec                	mov    %esp,%ebp
40524f:	81 c4 e0 fe ff ff    	add    $0xfffffee0,%esp
405255:	53                   	push   %ebx
405256:	56                   	push   %esi
405257:	89 45 fc             	mov    %eax,-0x4(%ebp)
40525a:	68 05 01 00 00       	push   $0x105
40525f:	8d 85 e3 fe ff ff    	lea    -0x11d(%ebp),%eax
405265:	50                   	push   %eax
405266:	6a 00                	push   $0x0
405268:	e8 ef bf ff ff       	call   0x40125c
40526d:	c6 45 ee 00          	movb   $0x0,-0x12(%ebp)
405271:	8d 45 f8             	lea    -0x8(%ebp),%eax
405274:	50                   	push   %eax
405275:	68 19 00 0f 00       	push   $0xf0019
40527a:	6a 00                	push   $0x0
40527c:	68 7c 54 40 00       	push   $0x40547c
405281:	68 01 00 00 80       	push   $0x80000001
405286:	e8 29 c0 ff ff       	call   0x4012b4
40528b:	85 c0                	test   %eax,%eax
40528d:	74 40                	je     0x4052cf
40528f:	8d 45 f8             	lea    -0x8(%ebp),%eax
405292:	50                   	push   %eax
405293:	68 19 00 0f 00       	push   $0xf0019
405298:	6a 00                	push   $0x0
40529a:	68 7c 54 40 00       	push   $0x40547c
40529f:	68 02 00 00 80       	push   $0x80000002
4052a4:	e8 0b c0 ff ff       	call   0x4012b4
4052a9:	85 c0                	test   %eax,%eax
4052ab:	74 22                	je     0x4052cf
4052ad:	8d 45 f8             	lea    -0x8(%ebp),%eax
4052b0:	50                   	push   %eax
4052b1:	68 19 00 0f 00       	push   $0xf0019
4052b6:	6a 00                	push   $0x0
4052b8:	68 98 54 40 00       	push   $0x405498
4052bd:	68 01 00 00 80       	push   $0x80000001
4052c2:	e8 ed bf ff ff       	call   0x4012b4
4052c7:	85 c0                	test   %eax,%eax
4052c9:	0f 85 89 00 00 00    	jne    0x405358
4052cf:	33 c0                	xor    %eax,%eax
4052d1:	55                   	push   %ebp
4052d2:	68 51 53 40 00       	push   $0x405351
4052d7:	64 ff 30             	push   %fs:(%eax)
4052da:	64 89 20             	mov    %esp,%fs:(%eax)