405cca:	8b 44 30 14          	mov    0x14(%eax,%esi,1),%eax
405cce:	d3 e8                	shr    %cl,%eax
405cd0:	88 44 15 f4          	mov    %al,-0xc(%ebp,%edx,1)
405cd4:	42                   	inc    %edx
405cd5:	83 fa 08             	cmp    $0x8,%edx
405cd8:	72 db                	jb     0x405cb5
405cda:	c6 45 ff 80          	movb   $0x80,-0x1(%ebp)
405cde:	eb 04                	jmp    0x405ce4
405ce0:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
405ce4:	6a 01                	push   $0x1
405ce6:	8d 55 ff             	lea    -0x1(%ebp),%edx
405ce9:	8b ce                	mov    %esi,%ecx
405ceb:	e8 5d 00 00 00       	call   0x405d4d
405cf0:	8b 46 14             	mov    0x14(%esi),%eax
405cf3:	25 f8 01 00 00       	and    $0x1f8,%eax
405cf8:	59                   	pop    %ecx
405cf9:	3d c0 01 00 00       	cmp    $0x1c0,%eax
405cfe:	75 e0                	jne    0x405ce0
405d00:	6a 08                	push   $0x8
405d02:	8d 55 f4             	lea    -0xc(%ebp),%edx
405d05:	8b ce                	mov    %esi,%ecx
405d07:	e8 41 00 00 00       	call   0x405d4d
405d0c:	59                   	pop    %ecx
405d0d:	33 d2                	xor    %edx,%edx
405d0f:	8b c2                	mov    %edx,%eax
405d11:	83 e0 03             	and    $0x3,%eax
405d14:	6a 03                	push   $0x3
405d16:	59                   	pop    %ecx
405d17:	2b c8                	sub    %eax,%ecx
405d19:	8b c2                	mov    %edx,%eax
405d1b:	c1 e8 02             	shr    $0x2,%eax
405d1e:	c1 e1 03             	shl    $0x3,%ecx
405d21:	8b 04 86             	mov    (%esi,%eax,4),%eax
405d24:	d3 e8                	shr    %cl,%eax
405d26:	88 04 3a             	mov    %al,(%edx,%edi,1)
405d29:	42                   	inc    %edx
405d2a:	83 fa 14             	cmp    $0x14,%edx
405d2d:	72 e0                	jb     0x405d0f
405d2f:	6a 5c                	push   $0x5c
405d31:	6a 00                	push   $0x0
405d33:	56                   	push   %esi
405d34:	e8 19 b3 ff ff       	call   0x401052
405d39:	6a 08                	push   $0x8
405d3b:	8d 45 f4             	lea    -0xc(%ebp),%eax
405d3e:	6a 00                	push   $0x0
405d40:	50                   	push   %eax
405d41:	e8 0c b3 ff ff       	call   0x401052
405d46:	83 c4 18             	add    $0x18,%esp
405d49:	5f                   	pop    %edi
405d4a:	5e                   	pop    %esi
405d4b:	c9                   	leave
405d4c:	c3                   	ret
405d4d:	55                   	push   %ebp
405d4e:	8b ec                	mov    %esp,%ebp
405d50:	51                   	push   %ecx
405d51:	51                   	push   %ecx
405d52:	53                   	push   %ebx
405d53:	8b 5d 08             	mov    0x8(%ebp),%ebx
405d56:	56                   	push   %esi
405d57:	8b 71 14             	mov    0x14(%ecx),%esi
405d5a:	89 55 fc             	mov    %edx,-0x4(%ebp)
405d5d:	8b 51 18             	mov    0x18(%ecx),%edx
405d60:	57                   	push   %edi
405d61:	8d 04 de             	lea    (%esi,%ebx,8),%eax
405d64:	89 4d f8             	mov    %ecx,-0x8(%ebp)
405d67:	89 41 14             	mov    %eax,0x14(%ecx)
405d6a:	3b c6                	cmp    %esi,%eax
405d6c:	73 01                	jae    0x405d6f
405d6e:	42                   	inc    %edx
405d6f:	c1 ee 03             	shr    $0x3,%esi
405d72:	8b c3                	mov    %ebx,%eax
405d74:	c1 e8 1d             	shr    $0x1d,%eax
405d77:	83 e6 3f             	and    $0x3f,%esi
405d7a:	03 c2                	add    %edx,%eax
405d7c:	89 41 18             	mov    %eax,0x18(%ecx)
405d7f:	8d 04 1e             	lea    (%esi,%ebx,1),%eax
405d82:	83 f8 3f             	cmp    $0x3f,%eax
405d85:	76 4f                	jbe    0x405dd6
405d87:	6a 40                	push   $0x40
405d89:	5f                   	pop    %edi
405d8a:	2b fe                	sub    %esi,%edi
405d8c:	8d 41 1c             	lea    0x1c(%ecx),%eax
405d8f:	57                   	push   %edi
405d90:	ff 75 fc             	push   -0x4(%ebp)
405d93:	03 c6                	add    %esi,%eax
405d95:	50                   	push   %eax
405d96:	e8 91 b2 ff ff       	call   0x40102c
405d9b:	8b 75 f8             	mov    -0x8(%ebp),%esi
405d9e:	83 c4 0c             	add    $0xc,%esp
405da1:	8b ce                	mov    %esi,%ecx
405da3:	8d 56 1c             	lea    0x1c(%esi),%edx
405da6:	e8 74 00 00 00       	call   0x405e1f
405dab:	8d 47 3f             	lea    0x3f(%edi),%eax
405dae:	eb 18                	jmp    0x405dc8
405db0:	8b 55 fc             	mov    -0x4(%ebp),%edx
405db3:	8b ce                	mov    %esi,%ecx
405db5:	83 c2 c1             	add    $0xffffffc1,%edx
405db8:	03 d0                	add    %eax,%edx
405dba:	e8 60 00 00 00       	call   0x405e1f
405dbf:	8b 45 08             	mov    0x8(%ebp),%eax
405dc2:	83 c7 40             	add    $0x40,%edi
405dc5:	83 c0 40             	add    $0x40,%eax
405dc8:	89 45 08             	mov    %eax,0x8(%ebp)
405dcb:	3b c3                	cmp    %ebx,%eax
405dcd:	72 e1                	jb     0x405db0
405dcf:	8b 4d f8             	mov    -0x8(%ebp),%ecx
405dd2:	33 f6                	xor    %esi,%esi
405dd4:	eb 02                	jmp    0x405dd8
405dd6:	33 ff                	xor    %edi,%edi
405dd8:	8b 45 fc             	mov    -0x4(%ebp),%eax
405ddb:	2b df                	sub    %edi,%ebx
405ddd:	03 c7                	add    %edi,%eax
405ddf:	53                   	push   %ebx
405de0:	50                   	push   %eax
405de1:	8d 41 1c             	lea    0x1c(%ecx),%eax
405de4:	03 c6                	add    %esi,%eax
405de6:	50                   	push   %eax
405de7:	e8 40 b2 ff ff       	call   0x40102c
405dec:	83 c4 0c             	add    $0xc,%esp
405def:	5f                   	pop    %edi
405df0:	5e                   	pop    %esi
405df1:	5b                   	pop    %ebx
405df2:	c9                   	leave
405df3:	c3                   	ret
405df4:	83 61 18 00          	andl   $0x0,0x18(%ecx)
405df8:	83 61 14 00          	andl   $0x0,0x14(%ecx)
405dfc:	c7 01 01 23 45 67    	movl   $0x67452301,(%ecx)
405e02:	c7 41 04 89 ab cd ef 	movl   $0xefcdab89,0x4(%ecx)
405e09:	c7 41 08 fe dc ba 98 	movl   $0x98badcfe,0x8(%ecx)
405e10:	c7 41 0c 76 54 32 10 	movl   $0x10325476,0xc(%ecx)
405e17:	c7 41 10 f0 e1 d2 c3 	movl   $0xc3d2e1f0,0x10(%ecx)
405e1e:	c3                   	ret
405e1f:	55                   	push   %ebp
405e20:	8b ec                	mov    %esp,%ebp
405e22:	81 ec 9c 00 00 00    	sub    $0x9c,%esp
405e28:	53                   	push   %ebx
405e29:	56                   	push   %esi
405e2a:	57                   	push   %edi
405e2b:	6a 40                	push   $0x40
405e2d:	52                   	push   %edx
405e2e:	8d 85 64 ff ff ff    	lea    -0x9c(%ebp),%eax
405e34:	8b f1                	mov    %ecx,%esi
405e36:	50                   	push   %eax
405e37:	89 75 a4             	mov    %esi,-0x5c(%ebp)
405e3a:	e8 ed b1 ff ff       	call   0x40102c
405e3f:	8b 85 64 ff ff ff    	mov    -0x9c(%ebp),%eax
405e45:	83 c4 0c             	add    $0xc,%esp
405e48:	8b 3e                	mov    (%esi),%edi
405e4a:	8b d8                	mov    %eax,%ebx
405e4c:	8b 56 04             	mov    0x4(%esi),%edx
405e4f:	8b cf                	mov    %edi,%ecx
405e51:	c1 c0 08             	rol    $0x8,%eax
405e54:	8b 76 10             	mov    0x10(%esi),%esi
405e57:	25 ff 00 ff 00       	and    $0xff00ff,%eax
405e5c:	c1 cb 08             	ror    $0x8,%ebx
405e5f:	81 e3 00 ff 00 ff    	and    $0xff00ff00,%ebx
405e65:	c1 c1 05             	rol    $0x5,%ecx
405e68:	0b d8                	or     %eax,%ebx
405e6a:	03 ce                	add    %esi,%ecx
405e6c:	89 5d cc             	mov    %ebx,-0x34(%ebp)
405e6f:	8b 5d a4             	mov    -0x5c(%ebp),%ebx
405e72:	8b 43 0c             	mov    0xc(%ebx),%eax
405e75:	33 43 08             	xor    0x8(%ebx),%eax
405e78:	23 c2                	and    %edx,%eax
405e7a:	c1 ca 02             	ror    $0x2,%edx
405e7d:	33 43 0c             	xor    0xc(%ebx),%eax
405e80:	8b 5d cc             	mov    -0x34(%ebp),%ebx
405e83:	03 c1                	add    %ecx,%eax
405e85:	81 c3 99 79 82 5a    	add    $0x5a827999,%ebx
405e8b:	03 d8                	add    %eax,%ebx
405e8d:	8b 85 68 ff ff ff    	mov    -0x98(%ebp),%eax
405e93:	8b f0                	mov    %eax,%esi
405e95:	8b cb                	mov    %ebx,%ecx
405e97:	c1 c0 08             	rol    $0x8,%eax
405e9a:	25 ff 00 ff 00       	and    $0xff00ff,%eax
405e9f:	c1 ce 08             	ror    $0x8,%esi
405ea2:	81 e6 00 ff 00 ff    	and    $0xff00ff00,%esi
405ea8:	c1 c1 05             	rol    $0x5,%ecx
405eab:	0b f0                	or     %eax,%esi
405ead:	89 75 d0             	mov    %esi,-0x30(%ebp)
405eb0:	8b 75 a4             	mov    -0x5c(%ebp),%esi
405eb3:	03 4d d0             	add    -0x30(%ebp),%ecx
405eb6:	8b 46 08             	mov    0x8(%esi),%eax
405eb9:	33 c2                	xor    %edx,%eax
405ebb:	23 c7                	and    %edi,%eax
405ebd:	c1 cf 02             	ror    $0x2,%edi
405ec0:	33 46 08             	xor    0x8(%esi),%eax
405ec3:	8b 76 0c             	mov    0xc(%esi),%esi
405ec6:	03 c1                	add    %ecx,%eax
405ec8:	81 c6 99 79 82 5a    	add    $0x5a827999,%esi
405ece:	89 7d f8             	mov    %edi,-0x8(%ebp)
405ed1:	03 f0                	add    %eax,%esi
405ed3:	8b 85 6c ff ff ff    	mov    -0x94(%ebp),%eax
405ed9:	8b c8                	mov    %eax,%ecx
405edb:	c1 c0 08             	rol    $0x8,%eax
405ede:	c1 c9 08             	ror    $0x8,%ecx
405ee1:	25 ff 00 ff 00       	and    $0xff00ff,%eax
405ee6:	81 e1 00 ff 00 ff    	and    $0xff00ff00,%ecx
405eec:	0b c8                	or     %eax,%ecx
405eee:	8b c2                	mov    %edx,%eax
405ef0:	33 c7                	xor    %edi,%eax
405ef2:	89 4d a8             	mov    %ecx,-0x58(%ebp)
405ef5:	8b 7d a4             	mov    -0x5c(%ebp),%edi
405ef8:	23 c3                	and    %ebx,%eax
405efa:	8b ce                	mov    %esi,%ecx
405efc:	33 c2                	xor    %edx,%eax
405efe:	c1 c1 05             	rol    $0x5,%ecx
405f01:	03 4d a8             	add    -0x58(%ebp),%ecx
405f04:	8b 7f 08             	mov    0x8(%edi),%edi
405f07:	03 c1                	add    %ecx,%eax
405f09:	81 c7 99 79 82 5a    	add    $0x5a827999,%edi
405f0f:	03 f8                	add    %eax,%edi
405f11:	8b 85 70 ff ff ff    	mov    -0x90(%ebp),%eax
405f17:	c1 cb 02             	ror    $0x2,%ebx
405f1a:	8b c8                	mov    %eax,%ecx
405f1c:	89 5d fc             	mov    %ebx,-0x4(%ebp)
405f1f:	c1 c9 08             	ror    $0x8,%ecx
405f22:	81 c2 99 79 82 5a    	add    $0x5a827999,%edx
405f28:	c1 c0 08             	rol    $0x8,%eax
405f2b:	81 e1 00 ff 00 ff    	and    $0xff00ff00,%ecx
405f31:	25 ff 00 ff 00       	and    $0xff00ff,%eax
405f36:	0b c8                	or     %eax,%ecx
405f38:	8b c3                	mov    %ebx,%eax
405f3a:	33 45 f8             	xor    -0x8(%ebp),%eax
405f3d:	23 c6                	and    %esi,%eax
405f3f:	89 4d ac             	mov    %ecx,-0x54(%ebp)
405f42:	33 45 f8             	xor    -0x8(%ebp),%eax
405f45:	8b cf                	mov    %edi,%ecx
405f47:	c1 c1 05             	rol    $0x5,%ecx
405f4a:	03 4d ac             	add    -0x54(%ebp),%ecx
405f4d:	03 c1                	add    %ecx,%eax
405f4f:	c1 ce 02             	ror    $0x2,%esi
405f52:	03 d0                	add    %eax,%edx
405f54:	8b 85 74 ff ff ff    	mov    -0x8c(%ebp),%eax
405f5a:	8b c8                	mov    %eax,%ecx
405f5c:	c1 c0 08             	rol    $0x8,%eax
405f5f:	c1 c9 08             	ror    $0x8,%ecx
405f62:	25 ff 00 ff 00       	and    $0xff00ff,%eax
405f67:	81 e1 00 ff 00 ff    	and    $0xff00ff00,%ecx
405f6d:	0b c8                	or     %eax,%ecx
405f6f:	8b c3                	mov    %ebx,%eax
405f71:	33 c6                	xor    %esi,%eax
405f73:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
405f76:	23 c7                	and    %edi,%eax
405f78:	8b ca                	mov    %edx,%ecx
405f7a:	c1 c1 05             	rol    $0x5,%ecx
405f7d:	33 d8                	xor    %eax,%ebx
405f7f:	03 4d d4             	add    -0x2c(%ebp),%ecx
405f82:	8b 85 78 ff ff ff    	mov    -0x88(%ebp),%eax
405f88:	03 d9                	add    %ecx,%ebx
405f8a:	8b 4d f8             	mov    -0x8(%ebp),%ecx
405f8d:	81 c1 99 79 82 5a    	add    $0x5a827999,%ecx
405f93:	c1 cf 02             	ror    $0x2,%edi
405f96:	03 d9                	add    %ecx,%ebx
405f98:	8b c8                	mov    %eax,%ecx
405f9a:	c1 c0 08             	rol    $0x8,%eax
405f9d:	c1 c9 08             	ror    $0x8,%ecx
405fa0:	25 ff 00 ff 00       	and    $0xff00ff,%eax
405fa5:	81 e1 00 ff 00 ff    	and    $0xff00ff00,%ecx
405fab:	0b c8                	or     %eax,%ecx
405fad:	8b c6                	mov    %esi,%eax
405faf:	33 c7                	xor    %edi,%eax
405fb1:	89 4d d8             	mov    %ecx,-0x28(%ebp)
405fb4:	23 c2                	and    %edx,%eax
405fb6:	8b cb                	mov    %ebx,%ecx
405fb8:	33 c6                	xor    %esi,%eax
405fba:	c1 c1 05             	rol    $0x5,%ecx
405fbd:	03 4d d8             	add    -0x28(%ebp),%ecx
405fc0:	81 c6 99 79 82 5a    	add    $0x5a827999,%esi
405fc6:	03 c1                	add    %ecx,%eax
405fc8:	c1 ca 02             	ror    $0x2,%edx
405fcb:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405fce:	81 c1 99 79 82 5a    	add    $0x5a827999,%ecx
405fd4:	03 c8                	add    %eax,%ecx
405fd6:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
405fdc:	89 45 e8             	mov    %eax,-0x18(%ebp)
405fdf:	c1 4d e8 08          	rorl   $0x8,-0x18(%ebp)
405fe3:	81 65 e8 00 ff 00 ff 	andl   $0xff00ff00,-0x18(%ebp)
405fea:	c1 c0 08             	rol    $0x8,%eax
405fed:	25 ff 00 ff 00       	and    $0xff00ff,%eax
405ff2:	89 4d f8             	mov    %ecx,-0x8(%ebp)
405ff5:	09 45 e8             	or     %eax,-0x18(%ebp)
405ff8:	8b c7                	mov    %edi,%eax
405ffa:	33 c2                	xor    %edx,%eax
405ffc:	c1 c1 05             	rol    $0x5,%ecx
405fff:	03 4d e8             	add    -0x18(%ebp),%ecx
406002:	23 c3                	and    %ebx,%eax
406004:	33 c7                	xor    %edi,%eax
406006:	c1 cb 02             	ror    $0x2,%ebx
406009:	03 c8                	add    %eax,%ecx
40600b:	8b 45 80             	mov    -0x80(%ebp),%eax
40600e:	03 ce                	add    %esi,%ecx
406010:	8b f0                	mov    %eax,%esi
406012:	c1 ce 08             	ror    $0x8,%esi
406015:	81 e6 00 ff 00 ff    	and    $0xff00ff00,%esi
40601b:	89 4d b8             	mov    %ecx,-0x48(%ebp)
40601e:	c1 c0 08             	rol    $0x8,%eax
406021:	25 ff 00 ff 00       	and    $0xff00ff,%eax
406026:	c1 c1 05             	rol    $0x5,%ecx
406029:	0b f0                	or     %eax,%esi
40602b:	81 c7 99 79 82 5a    	add    $0x5a827999,%edi
406031:	8b c2                	mov    %edx,%eax
406033:	89 75 fc             	mov    %esi,-0x4(%ebp)
406036:	03 4d fc             	add    -0x4(%ebp),%ecx
406039:	33 c3                	xor    %ebx,%eax
40603b:	8b 75 f8             	mov    -0x8(%ebp),%esi
40603e:	23 c6                	and    %esi,%eax
406040:	33 c2                	xor    %edx,%eax
406042:	c1 ce 02             	ror    $0x2,%esi
406045:	03 c8                	add    %eax,%ecx
406047:	81 c2 99 79 82 5a    	add    $0x5a827999,%edx
40604d:	8b 45 84             	mov    -0x7c(%ebp),%eax
406050:	03 cf                	add    %edi,%ecx
406052:	8b f8                	mov    %eax,%edi
406054:	89 4d f0             	mov    %ecx,-0x10(%ebp)
406057:	c1 c0 08             	rol    $0x8,%eax
40605a:	25 ff 00 ff 00       	and    $0xff00ff,%eax
40605f:	c1 cf 08             	ror    $0x8,%edi
406062:	c1 c1 05             	rol    $0x5,%ecx
406065:	81 e7 00 ff 00 ff    	and    $0xff00ff00,%edi
40606b:	0b f8                	or     %eax,%edi
40606d:	8b c6                	mov    %esi,%eax
40606f:	33 c3                	xor    %ebx,%eax
406071:	89 7d c4             	mov    %edi,-0x3c(%ebp)
406074:	03 4d c4             	add    -0x3c(%ebp),%ecx
406077:	8b 7d b8             	mov    -0x48(%ebp),%edi
40607a:	23 c7                	and    %edi,%eax
40607c:	33 c3                	xor    %ebx,%eax
40607e:	c1 cf 02             	ror    $0x2,%edi
406081:	03 c8                	add    %eax,%ecx
406083:	81 c3 99 79 82 5a    	add    $0x5a827999,%ebx
406089:	8b 45 88             	mov    -0x78(%ebp),%eax
40608c:	03 ca                	add    %edx,%ecx
40608e:	8b d0                	mov    %eax,%edx
406090:	89 4d f8             	mov    %ecx,-0x8(%ebp)
406093:	c1 c0 08             	rol    $0x8,%eax
406096:	25 ff 00 ff 00       	and    $0xff00ff,%eax
40609b:	c1 ca 08             	ror    $0x8,%edx
40609e:	81 e2 00 ff 00 ff    	and    $0xff00ff00,%edx
4060a4:	c1 c1 05             	rol    $0x5,%ecx
4060a7:	0b d0                	or     %eax,%edx
4060a9:	8b c6                	mov    %esi,%eax
4060ab:	33 c7                	xor    %edi,%eax
4060ad:	89 55 bc             	mov    %edx,-0x44(%ebp)
4060b0:	03 4d bc             	add    -0x44(%ebp),%ecx
4060b3:	8b 55 f0             	mov    -0x10(%ebp),%edx
4060b6:	23 c2                	and    %edx,%eax
4060b8:	33 c6                	xor    %esi,%eax
4060ba:	c1 ca 02             	ror    $0x2,%edx
4060bd:	03 c8                	add    %eax,%ecx