406e29:	89 7d fc             	mov    %edi,-0x4(%ebp)
406e2c:	03 c1                	add    %ecx,%eax
406e2e:	8b 7d e0             	mov    -0x20(%ebp),%edi
406e31:	33 7d bc             	xor    -0x44(%ebp),%edi
406e34:	33 fb                	xor    %ebx,%edi
406e36:	89 45 f4             	mov    %eax,-0xc(%ebp)
406e39:	33 7d cc             	xor    -0x34(%ebp),%edi
406e3c:	8b d8                	mov    %eax,%ebx
406e3e:	8b 45 ec             	mov    -0x14(%ebp),%eax
406e41:	33 45 fc             	xor    -0x4(%ebp),%eax
406e44:	33 c6                	xor    %esi,%eax
406e46:	d1 c7                	rol    $1,%edi
406e48:	05 d6 c1 62 ca       	add    $0xca62c1d6,%eax
406e4d:	c1 c3 05             	rol    $0x5,%ebx
406e50:	03 c7                	add    %edi,%eax
406e52:	03 45 c4             	add    -0x3c(%ebp),%eax
406e55:	03 d8                	add    %eax,%ebx
406e57:	c1 ce 02             	ror    $0x2,%esi
406e5a:	8b 4d dc             	mov    -0x24(%ebp),%ecx
406e5d:	8b c3                	mov    %ebx,%eax
406e5f:	33 4d c8             	xor    -0x38(%ebp),%ecx
406e62:	33 4d e4             	xor    -0x1c(%ebp),%ecx
406e65:	33 4d d8             	xor    -0x28(%ebp),%ecx
406e68:	31 55 e0             	xor    %edx,-0x20(%ebp)
406e6b:	8b 55 e0             	mov    -0x20(%ebp),%edx
406e6e:	33 55 b0             	xor    -0x50(%ebp),%edx
406e71:	33 55 f8             	xor    -0x8(%ebp),%edx
406e74:	c1 c0 05             	rol    $0x5,%eax
406e77:	d1 c1                	rol    $1,%ecx
406e79:	03 c8                	add    %eax,%ecx
406e7b:	89 75 f0             	mov    %esi,-0x10(%ebp)
406e7e:	8b 45 f4             	mov    -0xc(%ebp),%eax
406e81:	33 45 fc             	xor    -0x4(%ebp),%eax
406e84:	33 f0                	xor    %eax,%esi
406e86:	d1 c2                	rol    $1,%edx
406e88:	81 c6 d6 c1 62 ca    	add    $0xca62c1d6,%esi
406e8e:	03 75 ec             	add    -0x14(%ebp),%esi
406e91:	03 f1                	add    %ecx,%esi
406e93:	8b 4d f4             	mov    -0xc(%ebp),%ecx
406e96:	c1 c9 02             	ror    $0x2,%ecx
406e99:	8b c6                	mov    %esi,%eax
406e9b:	c1 c0 05             	rol    $0x5,%eax
406e9e:	03 d0                	add    %eax,%edx
406ea0:	89 4d f4             	mov    %ecx,-0xc(%ebp)
406ea3:	8b 45 dc             	mov    -0x24(%ebp),%eax
406ea6:	33 cb                	xor    %ebx,%ecx
406ea8:	33 4d f0             	xor    -0x10(%ebp),%ecx
406eab:	33 c7                	xor    %edi,%eax
406ead:	33 45 b4             	xor    -0x4c(%ebp),%eax
406eb0:	81 c1 d6 c1 62 ca    	add    $0xca62c1d6,%ecx
406eb6:	33 45 b8             	xor    -0x48(%ebp),%eax
406eb9:	03 4d fc             	add    -0x4(%ebp),%ecx
406ebc:	8b 7d a4             	mov    -0x5c(%ebp),%edi
406ebf:	03 d1                	add    %ecx,%edx
406ec1:	d1 c0                	rol    $1,%eax
406ec3:	8b ca                	mov    %edx,%ecx
406ec5:	03 45 f0             	add    -0x10(%ebp),%eax
406ec8:	89 45 dc             	mov    %eax,-0x24(%ebp)
406ecb:	8b 45 f4             	mov    -0xc(%ebp),%eax
406ece:	c1 cb 02             	ror    $0x2,%ebx
406ed1:	33 c3                	xor    %ebx,%eax
406ed3:	c1 c1 05             	rol    $0x5,%ecx
406ed6:	33 c6                	xor    %esi,%eax
406ed8:	81 c1 d6 c1 62 ca    	add    $0xca62c1d6,%ecx
406ede:	03 07                	add    (%edi),%eax
406ee0:	03 4d dc             	add    -0x24(%ebp),%ecx
406ee3:	03 c1                	add    %ecx,%eax
406ee5:	c1 ce 02             	ror    $0x2,%esi
406ee8:	8b cf                	mov    %edi,%ecx
406eea:	8b 7d f4             	mov    -0xc(%ebp),%edi
406eed:	01 71 08             	add    %esi,0x8(%ecx)
406ef0:	01 59 0c             	add    %ebx,0xc(%ecx)
406ef3:	01 51 04             	add    %edx,0x4(%ecx)
406ef6:	01 79 10             	add    %edi,0x10(%ecx)
406ef9:	5f                   	pop    %edi
406efa:	5e                   	pop    %esi
406efb:	89 01                	mov    %eax,(%ecx)
406efd:	5b                   	pop    %ebx
406efe:	c9                   	leave
406eff:	c3                   	ret
406f00:	55                   	push   %ebp
406f01:	8b ec                	mov    %esp,%ebp
406f03:	83 ec 5c             	sub    $0x5c,%esp
406f06:	53                   	push   %ebx
406f07:	56                   	push   %esi
406f08:	57                   	push   %edi
406f09:	8b f9                	mov    %ecx,%edi
406f0b:	8b da                	mov    %edx,%ebx
406f0d:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
406f10:	e8 df ee ff ff       	call   0x405df4
406f15:	33 f6                	xor    %esi,%esi
406f17:	39 75 08             	cmp    %esi,0x8(%ebp)
406f1a:	76 14                	jbe    0x406f30
406f1c:	6a 01                	push   $0x1
406f1e:	8d 14 1e             	lea    (%esi,%ebx,1),%edx
406f21:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
406f24:	e8 24 ee ff ff       	call   0x405d4d
406f29:	46                   	inc    %esi
406f2a:	59                   	pop    %ecx
406f2b:	3b 75 08             	cmp    0x8(%ebp),%esi
406f2e:	72 ec                	jb     0x406f1c
406f30:	8d 55 a4             	lea    -0x5c(%ebp),%edx
406f33:	8b cf                	mov    %edi,%ecx
406f35:	e8 6d ed ff ff       	call   0x405ca7
406f3a:	c6 47 14 00          	movb   $0x0,0x14(%edi)
406f3e:	5f                   	pop    %edi
406f3f:	5e                   	pop    %esi
406f40:	5b                   	pop    %ebx
406f41:	c9                   	leave
406f42:	c3                   	ret
406f43:	55                   	push   %ebp
406f44:	8b ec                	mov    %esp,%ebp
406f46:	83 e4 f8             	and    $0xfffffff8,%esp
406f49:	83 ec 7c             	sub    $0x7c,%esp
406f4c:	53                   	push   %ebx
406f4d:	8b 5d 08             	mov    0x8(%ebp),%ebx
406f50:	56                   	push   %esi
406f51:	57                   	push   %edi
406f52:	51                   	push   %ecx
406f53:	51                   	push   %ecx
406f54:	33 f6                	xor    %esi,%esi
406f56:	8d 7b 10             	lea    0x10(%ebx),%edi
406f59:	8b cc                	mov    %esp,%ecx
406f5b:	89 74 24 30          	mov    %esi,0x30(%esp)
406f5f:	57                   	push   %edi
406f60:	89 74 24 38          	mov    %esi,0x38(%esp)
406f64:	e8 f1 c4 ff ff       	call   0x40345a
406f69:	8d 4c 24 5c          	lea    0x5c(%esp),%ecx
406f6d:	e8 aa 04 00 00       	call   0x40741c
406f72:	39 74 24 54          	cmp    %esi,0x54(%esp)
406f76:	0f 84 38 01 00 00    	je     0x4070b4
406f7c:	89 74 24 14          	mov    %esi,0x14(%esp)
406f80:	39 b4 24 84 00 00 00 	cmp    %esi,0x84(%esp)
406f87:	0f 86 90 01 00 00    	jbe    0x40711d
406f8d:	8b 43 04             	mov    0x4(%ebx),%eax
406f90:	33 c9                	xor    %ecx,%ecx
406f92:	39 48 0c             	cmp    %ecx,0xc(%eax)
406f95:	0f 84 82 01 00 00    	je     0x40711d
406f9b:	8d 44 24 18          	lea    0x18(%esp),%eax
406f9f:	89 4c 24 18          	mov    %ecx,0x18(%esp)
406fa3:	50                   	push   %eax
406fa4:	89 4c 24 20          	mov    %ecx,0x20(%esp)
406fa8:	8d 4c 24 58          	lea    0x58(%esp),%ecx
406fac:	56                   	push   %esi
406fad:	e8 01 04 00 00       	call   0x4073b3
406fb2:	57                   	push   %edi
406fb3:	85 c0                	test   %eax,%eax
406fb5:	74 6a                	je     0x407021
406fb7:	8d 4c 24 10          	lea    0x10(%esp),%ecx
406fbb:	e8 9a c4 ff ff       	call   0x40345a
406fc0:	8b 7b 0c             	mov    0xc(%ebx),%edi
406fc3:	8d 44 24 18          	lea    0x18(%esp),%eax
406fc7:	6a 00                	push   $0x0
406fc9:	50                   	push   %eax
406fca:	ff b4 24 88 00 00 00 	push   0x88(%esp)
406fd1:	ff b4 24 90 00 00 00 	push   0x90(%esp)
406fd8:	56                   	push   %esi
406fd9:	ff b4 24 90 00 00 00 	push   0x90(%esp)
406fe0:	51                   	push   %ecx
406fe1:	8b f4                	mov    %esp,%esi
406fe3:	ff 74 24 28          	push   0x28(%esp)
406fe7:	ff 15 74 22 41 00    	call   *0x412274
406fed:	50                   	push   %eax
406fee:	8b ce                	mov    %esi,%ecx
406ff0:	e8 1d c4 ff ff       	call   0x403412
406ff5:	57                   	push   %edi
406ff6:	8d 4c 24 50          	lea    0x50(%esp),%ecx
406ffa:	e8 4b cd ff ff       	call   0x403d4a
406fff:	8b 4b 04             	mov    0x4(%ebx),%ecx
407002:	50                   	push   %eax
407003:	e8 4b db ff ff       	call   0x404b53
407008:	8d 4c 24 30          	lea    0x30(%esp),%ecx
40700c:	e8 9f cc ff ff       	call   0x403cb0
407011:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
407015:	e8 13 ea ff ff       	call   0x405a2d
40701a:	83 64 24 0c 00       	andl   $0x0,0xc(%esp)
40701f:	eb 6f                	jmp    0x407090
407021:	33 f6                	xor    %esi,%esi
407023:	8d 4c 24 14          	lea    0x14(%esp),%ecx
407027:	89 74 24 24          	mov    %esi,0x24(%esp)
40702b:	89 74 24 28          	mov    %esi,0x28(%esp)
40702f:	e8 26 c4 ff ff       	call   0x40345a
407034:	8b 7b 0c             	mov    0xc(%ebx),%edi
407037:	8d 44 24 20          	lea    0x20(%esp),%eax
40703b:	6a 01                	push   $0x1
40703d:	50                   	push   %eax
40703e:	56                   	push   %esi
40703f:	56                   	push   %esi
407040:	56                   	push   %esi
407041:	ff b4 24 90 00 00 00 	push   0x90(%esp)
407048:	51                   	push   %ecx
407049:	8b f4                	mov    %esp,%esi
40704b:	ff 74 24 2c          	push   0x2c(%esp)
40704f:	ff 15 74 22 41 00    	call   *0x412274
407055:	50                   	push   %eax
407056:	8b ce                	mov    %esi,%ecx
407058:	e8 b5 c3 ff ff       	call   0x403412
40705d:	57                   	push   %edi
40705e:	8d 4c 24 50          	lea    0x50(%esp),%ecx
407062:	e8 e3 cc ff ff       	call   0x403d4a
407067:	8b 4b 04             	mov    0x4(%ebx),%ecx
40706a:	50                   	push   %eax
40706b:	e8 e3 da ff ff       	call   0x404b53
407070:	8d 4c 24 30          	lea    0x30(%esp),%ecx
407074:	e8 37 cc ff ff       	call   0x403cb0
407079:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40707d:	e8 ab e9 ff ff       	call   0x405a2d
407082:	83 64 24 10 00       	andl   $0x0,0x10(%esp)
407087:	8d 4c 24 20          	lea    0x20(%esp),%ecx
40708b:	e8 d6 bd ff ff       	call   0x402e66
407090:	8d 4c 24 18          	lea    0x18(%esp),%ecx
407094:	e8 cd bd ff ff       	call   0x402e66
407099:	8b 74 24 14          	mov    0x14(%esp),%esi
40709d:	8d 7b 10             	lea    0x10(%ebx),%edi
4070a0:	46                   	inc    %esi
4070a1:	89 74 24 14          	mov    %esi,0x14(%esp)
4070a5:	3b b4 24 84 00 00 00 	cmp    0x84(%esp),%esi
4070ac:	0f 82 db fe ff ff    	jb     0x406f8d
4070b2:	eb 69                	jmp    0x40711d
4070b4:	57                   	push   %edi
4070b5:	8d 4c 24 18          	lea    0x18(%esp),%ecx
4070b9:	89 74 24 24          	mov    %esi,0x24(%esp)
4070bd:	89 74 24 28          	mov    %esi,0x28(%esp)
4070c1:	e8 94 c3 ff ff       	call   0x40345a
4070c6:	8b 7b 0c             	mov    0xc(%ebx),%edi
4070c9:	8d 44 24 20          	lea    0x20(%esp),%eax
4070cd:	6a 02                	push   $0x2
4070cf:	50                   	push   %eax
4070d0:	56                   	push   %esi
4070d1:	56                   	push   %esi
4070d2:	56                   	push   %esi
4070d3:	ff b4 24 90 00 00 00 	push   0x90(%esp)
4070da:	51                   	push   %ecx
4070db:	8b f4                	mov    %esp,%esi
4070dd:	ff 74 24 30          	push   0x30(%esp)
4070e1:	ff 15 74 22 41 00    	call   *0x412274
4070e7:	50                   	push   %eax
4070e8:	8b ce                	mov    %esi,%ecx
4070ea:	e8 23 c3 ff ff       	call   0x403412
4070ef:	57                   	push   %edi
4070f0:	8d 4c 24 50          	lea    0x50(%esp),%ecx
4070f4:	e8 51 cc ff ff       	call   0x403d4a
4070f9:	8b 4b 04             	mov    0x4(%ebx),%ecx
4070fc:	50                   	push   %eax
4070fd:	e8 51 da ff ff       	call   0x404b53
407102:	8d 4c 24 30          	lea    0x30(%esp),%ecx
407106:	e8 a5 cb ff ff       	call   0x403cb0
40710b:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40710f:	e8 19 e9 ff ff       	call   0x405a2d
407114:	8d 4c 24 20          	lea    0x20(%esp),%ecx
407118:	e8 49 bd ff ff       	call   0x402e66
40711d:	83 7c 24 54 00       	cmpl   $0x0,0x54(%esp)
407122:	74 09                	je     0x40712d
407124:	8d 4c 24 68          	lea    0x68(%esp),%ecx
407128:	e8 96 6f 00 00       	call   0x40e0c3
40712d:	8b 0b                	mov    (%ebx),%ecx
40712f:	6a 00                	push   $0x0
407131:	ff 73 0c             	push   0xc(%ebx)
407134:	ff 73 04             	push   0x4(%ebx)
407137:	e8 1d 00 00 00       	call   0x407159
40713c:	8d 4c 24 54          	lea    0x54(%esp),%ecx
407140:	e8 16 02 00 00       	call   0x40735b
407145:	8d 4c 24 28          	lea    0x28(%esp),%ecx
407149:	e8 18 bd ff ff       	call   0x402e66
40714e:	5f                   	pop    %edi
40714f:	5e                   	pop    %esi
407150:	33 c0                	xor    %eax,%eax
407152:	5b                   	pop    %ebx
407153:	8b e5                	mov    %ebp,%esp
407155:	5d                   	pop    %ebp
407156:	c2 04 00             	ret    $0x4
407159:	55                   	push   %ebp
40715a:	8b ec                	mov    %esp,%ebp
40715c:	83 ec 50             	sub    $0x50,%esp
40715f:	53                   	push   %ebx
407160:	8b d9                	mov    %ecx,%ebx
407162:	56                   	push   %esi
407163:	57                   	push   %edi
407164:	89 5d f4             	mov    %ebx,-0xc(%ebp)
407167:	8d 43 10             	lea    0x10(%ebx),%eax
40716a:	8b c8                	mov    %eax,%ecx
40716c:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40716f:	e8 99 70 00 00       	call   0x40e20d
407174:	8b 4b 08             	mov    0x8(%ebx),%ecx
407177:	33 c0                	xor    %eax,%eax
407179:	89 45 f8             	mov    %eax,-0x8(%ebp)
40717c:	85 c9                	test   %ecx,%ecx
40717e:	74 3d                	je     0x4071bd
407180:	33 ff                	xor    %edi,%edi
407182:	3b c1                	cmp    %ecx,%eax
407184:	89 7d f0             	mov    %edi,-0x10(%ebp)
407187:	0f 92 c1             	setb   %cl
40718a:	e8 9c e6 ff ff       	call   0x40582b
40718f:	8b 33                	mov    (%ebx),%esi
407191:	8b 55 0c             	mov    0xc(%ebp),%edx
407194:	03 f7                	add    %edi,%esi
407196:	8b 4b 08             	mov    0x8(%ebx),%ecx
407199:	8d 7d d8             	lea    -0x28(%ebp),%edi
40719c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40719d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40719e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40719f:	8b 75 f8             	mov    -0x8(%ebp),%esi
4071a2:	8d 46 01             	lea    0x1(%esi),%eax
4071a5:	89 45 ec             	mov    %eax,-0x14(%ebp)
4071a8:	39 55 dc             	cmp    %edx,-0x24(%ebp)
4071ab:	74 26                	je     0x4071d3
4071ad:	8b 7d f0             	mov    -0x10(%ebp),%edi
4071b0:	83 c7 0c             	add    $0xc,%edi
4071b3:	89 45 f8             	mov    %eax,-0x8(%ebp)
4071b6:	89 7d f0             	mov    %edi,-0x10(%ebp)
4071b9:	3b c1                	cmp    %ecx,%eax
4071bb:	72 ca                	jb     0x407187
4071bd:	33 f6                	xor    %esi,%esi
4071bf:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4071c2:	ff 30                	push   (%eax)
4071c4:	ff 15 50 21 41 00    	call   *0x412150
4071ca:	5f                   	pop    %edi
4071cb:	8b c6                	mov    %esi,%eax
4071cd:	5e                   	pop    %esi
4071ce:	5b                   	pop    %ebx
4071cf:	c9                   	leave
4071d0:	c2 0c 00             	ret    $0xc
4071d3:	3b f1                	cmp    %ecx,%esi
4071d5:	0f 92 c1             	setb   %cl
4071d8:	e8 4e e6 ff ff       	call   0x40582b
4071dd:	6b de 0c             	imul   $0xc,%esi,%ebx
4071e0:	8d 7d d8             	lea    -0x28(%ebp),%edi
4071e3:	8b 75 f4             	mov    -0xc(%ebp),%esi
4071e6:	8b 36                	mov    (%esi),%esi
4071e8:	03 f3                	add    %ebx,%esi
4071ea:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4071eb:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4071ec:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4071ed:	8b 4d e0             	mov    -0x20(%ebp),%ecx
4071f0:	e8 38 e8 ff ff       	call   0x405a2d
4071f5:	8b 75 f4             	mov    -0xc(%ebp),%esi
4071f8:	8b 45 f8             	mov    -0x8(%ebp),%eax
4071fb:	3b 46 08             	cmp    0x8(%esi),%eax
4071fe:	0f 92 c1             	setb   %cl
407201:	e8 25 e6 ff ff       	call   0x40582b
407206:	8b 36                	mov    (%esi),%esi
407208:	8d 7d d8             	lea    -0x28(%ebp),%edi
40720b:	03 f3                	add    %ebx,%esi
40720d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40720e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40720f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
407210:	33 ff                	xor    %edi,%edi
407212:	57                   	push   %edi
407213:	ff 75 d8             	push   -0x28(%ebp)
407216:	ff 15 88 20 41 00    	call   *0x412088