408e99:	8b 40 04             	mov    0x4(%eax),%eax
408e9c:	33 ca                	xor    %edx,%ecx
408e9e:	89 4d f8             	mov    %ecx,-0x8(%ebp)
408ea1:	33 c2                	xor    %edx,%eax
408ea3:	8b ce                	mov    %esi,%ecx
408ea5:	d3 4d f8             	rorl   %cl,-0x8(%ebp)
408ea8:	d3 c8                	ror    %cl,%eax
408eaa:	8b 4d f8             	mov    -0x8(%ebp),%ecx
408ead:	3b 4d f4             	cmp    -0xc(%ebp),%ecx
408eb0:	75 0b                	jne    0x408ebd
408eb2:	6a 20                	push   $0x20
408eb4:	59                   	pop    %ecx
408eb5:	3b 45 f0             	cmp    -0x10(%ebp),%eax
408eb8:	74 a0                	je     0x408e5a
408eba:	8b 4d f8             	mov    -0x8(%ebp),%ecx
408ebd:	89 4d f4             	mov    %ecx,-0xc(%ebp)
408ec0:	8b f9                	mov    %ecx,%edi
408ec2:	89 45 f0             	mov    %eax,-0x10(%ebp)
408ec5:	8b d8                	mov    %eax,%ebx
408ec7:	eb 8e                	jmp    0x408e57
408ec9:	83 ff ff             	cmp    $0xffffffff,%edi
408ecc:	74 0d                	je     0x408edb
408ece:	57                   	push   %edi
408ecf:	e8 50 09 00 00       	call   0x409824
408ed4:	8b 15 0c 30 42 00    	mov    0x42300c,%edx
408eda:	59                   	pop    %ecx
408edb:	8b c2                	mov    %edx,%eax
408edd:	33 d2                	xor    %edx,%edx
408edf:	83 e0 1f             	and    $0x1f,%eax
408ee2:	6a 20                	push   $0x20
408ee4:	59                   	pop    %ecx
408ee5:	2b c8                	sub    %eax,%ecx
408ee7:	d3 ca                	ror    %cl,%edx
408ee9:	8b 4d e8             	mov    -0x18(%ebp),%ecx
408eec:	33 15 0c 30 42 00    	xor    0x42300c,%edx
408ef2:	8b 01                	mov    (%ecx),%eax
408ef4:	8b 00                	mov    (%eax),%eax
408ef6:	89 10                	mov    %edx,(%eax)
408ef8:	8b 01                	mov    (%ecx),%eax
408efa:	8b 00                	mov    (%eax),%eax
408efc:	89 50 04             	mov    %edx,0x4(%eax)
408eff:	8b 01                	mov    (%ecx),%eax
408f01:	8b 00                	mov    (%eax),%eax
408f03:	89 50 08             	mov    %edx,0x8(%eax)
408f06:	5f                   	pop    %edi
408f07:	33 c0                	xor    %eax,%eax
408f09:	5e                   	pop    %esi
408f0a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408f0d:	33 cd                	xor    %ebp,%ecx
408f0f:	5b                   	pop    %ebx
408f10:	e8 41 a0 ff ff       	call   0x402f56
408f15:	8b e5                	mov    %ebp,%esp
408f17:	5d                   	pop    %ebp
408f18:	c3                   	ret
408f19:	8b ff                	mov    %edi,%edi
408f1b:	55                   	push   %ebp
408f1c:	8b ec                	mov    %esp,%ebp
408f1e:	83 ec 0c             	sub    $0xc,%esp
408f21:	8b c1                	mov    %ecx,%eax
408f23:	89 45 f8             	mov    %eax,-0x8(%ebp)
408f26:	56                   	push   %esi
408f27:	8b 00                	mov    (%eax),%eax
408f29:	8b 30                	mov    (%eax),%esi
408f2b:	85 f6                	test   %esi,%esi
408f2d:	75 08                	jne    0x408f37
408f2f:	83 c8 ff             	or     $0xffffffff,%eax
408f32:	e9 1e 01 00 00       	jmp    0x409055
408f37:	a1 0c 30 42 00       	mov    0x42300c,%eax
408f3c:	8b c8                	mov    %eax,%ecx
408f3e:	53                   	push   %ebx
408f3f:	8b 1e                	mov    (%esi),%ebx
408f41:	83 e1 1f             	and    $0x1f,%ecx
408f44:	57                   	push   %edi
408f45:	8b 7e 04             	mov    0x4(%esi),%edi
408f48:	33 d8                	xor    %eax,%ebx
408f4a:	8b 76 08             	mov    0x8(%esi),%esi
408f4d:	33 f8                	xor    %eax,%edi
408f4f:	33 f0                	xor    %eax,%esi
408f51:	d3 cf                	ror    %cl,%edi
408f53:	d3 ce                	ror    %cl,%esi
408f55:	d3 cb                	ror    %cl,%ebx
408f57:	3b fe                	cmp    %esi,%edi
408f59:	0f 85 b4 00 00 00    	jne    0x409013
408f5f:	2b f3                	sub    %ebx,%esi
408f61:	b8 00 02 00 00       	mov    $0x200,%eax
408f66:	c1 fe 02             	sar    $0x2,%esi
408f69:	3b f0                	cmp    %eax,%esi
408f6b:	77 02                	ja     0x408f6f
408f6d:	8b c6                	mov    %esi,%eax
408f6f:	8d 3c 30             	lea    (%eax,%esi,1),%edi
408f72:	85 ff                	test   %edi,%edi
408f74:	75 03                	jne    0x408f79
408f76:	6a 20                	push   $0x20
408f78:	5f                   	pop    %edi
408f79:	3b fe                	cmp    %esi,%edi
408f7b:	72 1d                	jb     0x408f9a
408f7d:	6a 04                	push   $0x4
408f7f:	57                   	push   %edi
408f80:	53                   	push   %ebx
408f81:	e8 89 07 00 00       	call   0x40970f
408f86:	6a 00                	push   $0x0
408f88:	89 45 fc             	mov    %eax,-0x4(%ebp)
408f8b:	e8 94 08 00 00       	call   0x409824
408f90:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408f93:	83 c4 10             	add    $0x10,%esp
408f96:	85 c9                	test   %ecx,%ecx
408f98:	75 28                	jne    0x408fc2
408f9a:	6a 04                	push   $0x4
408f9c:	8d 7e 04             	lea    0x4(%esi),%edi
408f9f:	57                   	push   %edi
408fa0:	53                   	push   %ebx
408fa1:	e8 69 07 00 00       	call   0x40970f
408fa6:	6a 00                	push   $0x0
408fa8:	89 45 fc             	mov    %eax,-0x4(%ebp)
408fab:	e8 74 08 00 00       	call   0x409824
408fb0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408fb3:	83 c4 10             	add    $0x10,%esp
408fb6:	85 c9                	test   %ecx,%ecx
408fb8:	75 08                	jne    0x408fc2
408fba:	83 c8 ff             	or     $0xffffffff,%eax
408fbd:	e9 91 00 00 00       	jmp    0x409053
408fc2:	8d 04 b1             	lea    (%ecx,%esi,4),%eax
408fc5:	8b d9                	mov    %ecx,%ebx
408fc7:	89 45 fc             	mov    %eax,-0x4(%ebp)
408fca:	8d 34 b9             	lea    (%ecx,%edi,4),%esi
408fcd:	a1 0c 30 42 00       	mov    0x42300c,%eax
408fd2:	8b 7d fc             	mov    -0x4(%ebp),%edi
408fd5:	83 e0 1f             	and    $0x1f,%eax
408fd8:	6a 20                	push   $0x20
408fda:	59                   	pop    %ecx
408fdb:	2b c8                	sub    %eax,%ecx
408fdd:	33 c0                	xor    %eax,%eax
408fdf:	d3 c8                	ror    %cl,%eax
408fe1:	8b cf                	mov    %edi,%ecx
408fe3:	33 05 0c 30 42 00    	xor    0x42300c,%eax
408fe9:	89 45 f4             	mov    %eax,-0xc(%ebp)
408fec:	8b c6                	mov    %esi,%eax
408fee:	2b c7                	sub    %edi,%eax
408ff0:	83 c0 03             	add    $0x3,%eax
408ff3:	c1 e8 02             	shr    $0x2,%eax
408ff6:	3b f7                	cmp    %edi,%esi
408ff8:	1b d2                	sbb    %edx,%edx
408ffa:	f7 d2                	not    %edx
408ffc:	23 d0                	and    %eax,%edx
408ffe:	89 55 fc             	mov    %edx,-0x4(%ebp)
409001:	74 10                	je     0x409013
409003:	8b 55 f4             	mov    -0xc(%ebp),%edx
409006:	33 c0                	xor    %eax,%eax
409008:	40                   	inc    %eax
409009:	89 11                	mov    %edx,(%ecx)
40900b:	8d 49 04             	lea    0x4(%ecx),%ecx
40900e:	3b 45 fc             	cmp    -0x4(%ebp),%eax
409011:	75 f5                	jne    0x409008
409013:	8b 45 f8             	mov    -0x8(%ebp),%eax
409016:	8b 40 04             	mov    0x4(%eax),%eax
409019:	ff 30                	push   (%eax)
40901b:	e8 b0 02 00 00       	call   0x4092d0
409020:	53                   	push   %ebx
409021:	89 07                	mov    %eax,(%edi)
409023:	e8 9d a2 ff ff       	call   0x4032c5
409028:	8b 5d f8             	mov    -0x8(%ebp),%ebx
40902b:	8b 0b                	mov    (%ebx),%ecx
40902d:	8b 09                	mov    (%ecx),%ecx
40902f:	89 01                	mov    %eax,(%ecx)
409031:	8d 47 04             	lea    0x4(%edi),%eax
409034:	50                   	push   %eax
409035:	e8 8b a2 ff ff       	call   0x4032c5
40903a:	8b 0b                	mov    (%ebx),%ecx
40903c:	56                   	push   %esi
40903d:	8b 09                	mov    (%ecx),%ecx
40903f:	89 41 04             	mov    %eax,0x4(%ecx)
409042:	e8 7e a2 ff ff       	call   0x4032c5
409047:	8b 0b                	mov    (%ebx),%ecx
409049:	83 c4 10             	add    $0x10,%esp
40904c:	8b 09                	mov    (%ecx),%ecx
40904e:	89 41 08             	mov    %eax,0x8(%ecx)
409051:	33 c0                	xor    %eax,%eax
409053:	5f                   	pop    %edi
409054:	5b                   	pop    %ebx
409055:	5e                   	pop    %esi
409056:	8b e5                	mov    %ebp,%esp
409058:	5d                   	pop    %ebp
409059:	c3                   	ret
40905a:	8b ff                	mov    %edi,%edi
40905c:	55                   	push   %ebp
40905d:	8b ec                	mov    %esp,%ebp
40905f:	ff 75 08             	push   0x8(%ebp)
409062:	68 5c 41 42 00       	push   $0x42415c
409067:	e8 5e 00 00 00       	call   0x4090ca
40906c:	59                   	pop    %ecx
40906d:	59                   	pop    %ecx
40906e:	5d                   	pop    %ebp
40906f:	c3                   	ret
409070:	8b ff                	mov    %edi,%edi
409072:	55                   	push   %ebp
409073:	8b ec                	mov    %esp,%ebp
409075:	51                   	push   %ecx
409076:	8d 45 08             	lea    0x8(%ebp),%eax
409079:	89 45 fc             	mov    %eax,-0x4(%ebp)
40907c:	8d 45 fc             	lea    -0x4(%ebp),%eax
40907f:	50                   	push   %eax
409080:	6a 02                	push   $0x2
409082:	e8 22 fd ff ff       	call   0x408da9
409087:	59                   	pop    %ecx
409088:	59                   	pop    %ecx
409089:	8b e5                	mov    %ebp,%esp
40908b:	5d                   	pop    %ebp
40908c:	c3                   	ret
40908d:	8b ff                	mov    %edi,%edi
40908f:	55                   	push   %ebp
409090:	8b ec                	mov    %esp,%ebp
409092:	56                   	push   %esi
409093:	8b 75 08             	mov    0x8(%ebp),%esi
409096:	85 f6                	test   %esi,%esi
409098:	75 05                	jne    0x40909f
40909a:	83 c8 ff             	or     $0xffffffff,%eax
40909d:	eb 28                	jmp    0x4090c7
40909f:	8b 06                	mov    (%esi),%eax
4090a1:	3b 46 08             	cmp    0x8(%esi),%eax
4090a4:	75 1f                	jne    0x4090c5
4090a6:	a1 0c 30 42 00       	mov    0x42300c,%eax
4090ab:	83 e0 1f             	and    $0x1f,%eax
4090ae:	6a 20                	push   $0x20
4090b0:	59                   	pop    %ecx
4090b1:	2b c8                	sub    %eax,%ecx
4090b3:	33 c0                	xor    %eax,%eax
4090b5:	d3 c8                	ror    %cl,%eax
4090b7:	33 05 0c 30 42 00    	xor    0x42300c,%eax
4090bd:	89 06                	mov    %eax,(%esi)
4090bf:	89 46 04             	mov    %eax,0x4(%esi)
4090c2:	89 46 08             	mov    %eax,0x8(%esi)
4090c5:	33 c0                	xor    %eax,%eax
4090c7:	5e                   	pop    %esi
4090c8:	5d                   	pop    %ebp
4090c9:	c3                   	ret
4090ca:	8b ff                	mov    %edi,%edi
4090cc:	55                   	push   %ebp
4090cd:	8b ec                	mov    %esp,%ebp
4090cf:	51                   	push   %ecx
4090d0:	51                   	push   %ecx
4090d1:	8d 45 08             	lea    0x8(%ebp),%eax
4090d4:	89 45 f8             	mov    %eax,-0x8(%ebp)
4090d7:	8d 45 0c             	lea    0xc(%ebp),%eax
4090da:	89 45 fc             	mov    %eax,-0x4(%ebp)
4090dd:	8d 45 f8             	lea    -0x8(%ebp),%eax
4090e0:	50                   	push   %eax
4090e1:	6a 02                	push   $0x2
4090e3:	e8 e9 fc ff ff       	call   0x408dd1
4090e8:	59                   	pop    %ecx
4090e9:	59                   	pop    %ecx
4090ea:	8b e5                	mov    %ebp,%esp
4090ec:	5d                   	pop    %ebp
4090ed:	c3                   	ret
4090ee:	68 08 31 42 00       	push   $0x423108
4090f3:	b9 bc 41 42 00       	mov    $0x4241bc,%ecx
4090f8:	e8 99 74 00 00       	call   0x410596
4090fd:	b0 01                	mov    $0x1,%al
4090ff:	c3                   	ret
409100:	68 5c 41 42 00       	push   $0x42415c
409105:	e8 83 ff ff ff       	call   0x40908d
40910a:	c7 04 24 68 41 42 00 	movl   $0x424168,(%esp)
409111:	e8 77 ff ff ff       	call   0x40908d
409116:	59                   	pop    %ecx
409117:	b0 01                	mov    $0x1,%al
409119:	c3                   	ret
40911a:	b0 01                	mov    $0x1,%al
40911c:	c3                   	ret
40911d:	e8 95 fb ff ff       	call   0x408cb7
409122:	b0 01                	mov    $0x1,%al
409124:	c3                   	ret
409125:	a1 0c 30 42 00       	mov    0x42300c,%eax
40912a:	56                   	push   %esi
40912b:	6a 20                	push   $0x20
40912d:	83 e0 1f             	and    $0x1f,%eax
409130:	33 f6                	xor    %esi,%esi
409132:	59                   	pop    %ecx
409133:	2b c8                	sub    %eax,%ecx
409135:	d3 ce                	ror    %cl,%esi
409137:	33 35 0c 30 42 00    	xor    0x42300c,%esi
40913d:	56                   	push   %esi
40913e:	e8 5c ea ff ff       	call   0x407b9f
409143:	56                   	push   %esi
409144:	e8 bd 00 00 00       	call   0x409206
409149:	56                   	push   %esi
40914a:	e8 b7 74 00 00       	call   0x410606
40914f:	56                   	push   %esi
409150:	e8 b3 01 00 00       	call   0x409308
409155:	56                   	push   %esi
409156:	e8 49 f3 ff ff       	call   0x4084a4
40915b:	83 c4 14             	add    $0x14,%esp
40915e:	b0 01                	mov    $0x1,%al
409160:	5e                   	pop    %esi
409161:	c3                   	ret
409162:	6a 00                	push   $0x0
409164:	e8 65 b4 ff ff       	call   0x4045ce
409169:	59                   	pop    %ecx
40916a:	c3                   	ret
40916b:	a1 c0 37 42 00       	mov    0x4237c0,%eax
409170:	83 c9 ff             	or     $0xffffffff,%ecx
409173:	56                   	push   %esi
409174:	f0 0f c1 08          	lock xadd %ecx,(%eax)
409178:	75 1b                	jne    0x409195
40917a:	a1 c0 37 42 00       	mov    0x4237c0,%eax
40917f:	be a0 35 42 00       	mov    $0x4235a0,%esi
409184:	3b c6                	cmp    %esi,%eax
409186:	74 0d                	je     0x409195
409188:	50                   	push   %eax
409189:	e8 96 06 00 00       	call   0x409824
40918e:	59                   	pop    %ecx
40918f:	89 35 c0 37 42 00    	mov    %esi,0x4237c0
409195:	ff 35 b4 41 42 00    	push   0x4241b4
40919b:	e8 84 06 00 00       	call   0x409824
4091a0:	ff 35 b8 41 42 00    	push   0x4241b8
4091a6:	33 f6                	xor    %esi,%esi
4091a8:	89 35 b4 41 42 00    	mov    %esi,0x4241b4
4091ae:	e8 71 06 00 00       	call   0x409824
4091b3:	ff 35 84 41 42 00    	push   0x424184
4091b9:	89 35 b8 41 42 00    	mov    %esi,0x4241b8
4091bf:	e8 60 06 00 00       	call   0x409824
4091c4:	ff 35 88 41 42 00    	push   0x424188
4091ca:	89 35 84 41 42 00    	mov    %esi,0x424184
4091d0:	e8 4f 06 00 00       	call   0x409824
4091d5:	83 c4 10             	add    $0x10,%esp
4091d8:	89 35 88 41 42 00    	mov    %esi,0x424188
4091de:	b0 01                	mov    $0x1,%al
4091e0:	5e                   	pop    %esi
4091e1:	c3                   	ret
4091e2:	68 d8 bf 41 00       	push   $0x41bfd8
4091e7:	68 60 bf 41 00       	push   $0x41bf60
4091ec:	e8 11 72 00 00       	call   0x410402
4091f1:	59                   	pop    %ecx
4091f2:	59                   	pop    %ecx
4091f3:	c3                   	ret
4091f4:	68 d8 bf 41 00       	push   $0x41bfd8
4091f9:	68 60 bf 41 00       	push   $0x41bf60
4091fe:	e8 82 72 00 00       	call   0x410485
409203:	59                   	pop    %ecx
409204:	59                   	pop    %ecx
409205:	c3                   	ret
409206:	8b ff                	mov    %edi,%edi
409208:	55                   	push   %ebp
409209:	8b ec                	mov    %esp,%ebp
40920b:	ff 75 08             	push   0x8(%ebp)
40920e:	b9 74 41 42 00       	mov    $0x424174,%ecx
409213:	e8 7e 73 00 00       	call   0x410596
409218:	5d                   	pop    %ebp
409219:	c3                   	ret
40921a:	8b ff                	mov    %edi,%edi
40921c:	55                   	push   %ebp
40921d:	8b ec                	mov    %esp,%ebp