100401a00:	41 8b 40 0c          	mov    0xc(%r8),%eax
100401a04:	41 89 48 10          	mov    %ecx,0x10(%r8)
100401a08:	89 44 24 24          	mov    %eax,0x24(%rsp)
100401a0c:	0f 92 c0             	setb   %al
100401a0f:	48 c1 ea 20          	shr    $0x20,%rdx
100401a13:	41 03 50 14          	add    0x14(%r8),%edx
100401a17:	0f b6 c0             	movzbl %al,%eax
100401a1a:	01 c2                	add    %eax,%edx
100401a1c:	41 89 50 14          	mov    %edx,0x14(%r8)
100401a20:	4c 39 f7             	cmp    %r14,%rdi
100401a23:	0f 83 c9 07 00 00    	jae    1004021f2 <.text+0x11f2>
100401a29:	89 5c 24 28          	mov    %ebx,0x28(%rsp)
100401a2d:	0f 1f 00             	nopl   (%rax)
100401a30:	44 8b 37             	mov    (%rdi),%r14d
100401a33:	8b 5c 24 24          	mov    0x24(%rsp),%ebx
100401a37:	8b 44 24 34          	mov    0x34(%rsp),%eax
100401a3b:	44 8b 5c 24 28       	mov    0x28(%rsp),%r11d
100401a40:	8b 4f 04             	mov    0x4(%rdi),%ecx
100401a43:	44 8b 57 08          	mov    0x8(%rdi),%r10d
100401a47:	41 8d 94 06 78 a4 6a 	lea    -0x28955b88(%r14,%rax,1),%edx
100401a4e:	d7
100401a4f:	89 d8                	mov    %ebx,%eax
100401a51:	8b 6f 10             	mov    0x10(%rdi),%ebp
100401a54:	44 8b 67 14          	mov    0x14(%rdi),%r12d
100401a58:	44 31 d8             	xor    %r11d,%eax
100401a5b:	89 4c 24 08          	mov    %ecx,0x8(%rsp)
100401a5f:	8d 8c 19 56 b7 c7 e8 	lea    -0x173848aa(%rcx,%rbx,1),%ecx
100401a66:	47 8d 84 1a db 70 20 	lea    0x242070db(%r10,%r11,1),%r8d
100401a6d:	24
100401a6e:	21 f0                	and    %esi,%eax
100401a70:	44 8b 7f 18          	mov    0x18(%rdi),%r15d
100401a74:	44 89 54 24 0c       	mov    %r10d,0xc(%rsp)
100401a79:	31 d8                	xor    %ebx,%eax
100401a7b:	44 8b 57 20          	mov    0x20(%rdi),%r10d
100401a7f:	8b 5f 28             	mov    0x28(%rdi),%ebx
100401a82:	44 89 64 24 2c       	mov    %r12d,0x2c(%rsp)
100401a87:	01 d0                	add    %edx,%eax
100401a89:	89 f2                	mov    %esi,%edx
100401a8b:	89 6c 24 14          	mov    %ebp,0x14(%rsp)
100401a8f:	c1 c0 07             	rol    $0x7,%eax
100401a92:	44 31 da             	xor    %r11d,%edx
100401a95:	44 89 54 24 18       	mov    %r10d,0x18(%rsp)
100401a9a:	01 f0                	add    %esi,%eax
100401a9c:	44 89 7c 24 30       	mov    %r15d,0x30(%rsp)
100401aa1:	21 c2                	and    %eax,%edx
100401aa3:	44 31 da             	xor    %r11d,%edx
100401aa6:	41 89 c3             	mov    %eax,%r11d
100401aa9:	01 ca                	add    %ecx,%edx
100401aab:	41 31 f3             	xor    %esi,%r11d
100401aae:	c1 c2 0c             	rol    $0xc,%edx
100401ab1:	44 89 d9             	mov    %r11d,%ecx
100401ab4:	44 8b 5f 0c          	mov    0xc(%rdi),%r11d
100401ab8:	01 c2                	add    %eax,%edx
100401aba:	21 d1                	and    %edx,%ecx
100401abc:	45 8d 8c 33 ee ce bd 	lea    -0x3e423112(%r11,%rsi,1),%r9d
100401ac3:	c1
100401ac4:	44 89 5c 24 10       	mov    %r11d,0x10(%rsp)
100401ac9:	44 8b 5f 24          	mov    0x24(%rdi),%r11d
100401acd:	31 f1                	xor    %esi,%ecx
100401acf:	44 01 c1             	add    %r8d,%ecx
100401ad2:	41 89 c0             	mov    %eax,%r8d
100401ad5:	44 89 5c 24 1c       	mov    %r11d,0x1c(%rsp)
100401ada:	c1 c9 0f             	ror    $0xf,%ecx
100401add:	41 31 d0             	xor    %edx,%r8d
100401ae0:	01 d1                	add    %edx,%ecx
100401ae2:	41 21 c8             	and    %ecx,%r8d
100401ae5:	41 31 c0             	xor    %eax,%r8d
100401ae8:	45 01 c8             	add    %r9d,%r8d
100401aeb:	44 8d 8c 05 af 0f 7c 	lea    -0xa83f051(%rbp,%rax,1),%r9d
100401af2:	f5
100401af3:	89 d0                	mov    %edx,%eax
100401af5:	8b 6f 30             	mov    0x30(%rdi),%ebp
100401af8:	41 c1 c8 0a          	ror    $0xa,%r8d
100401afc:	31 c8                	xor    %ecx,%eax
100401afe:	41 01 c8             	add    %ecx,%r8d
100401b01:	44 21 c0             	and    %r8d,%eax
100401b04:	45 89 c5             	mov    %r8d,%r13d
100401b07:	31 d0                	xor    %edx,%eax
100401b09:	44 01 c8             	add    %r9d,%eax
100401b0c:	45 8d 8c 14 2a c6 87 	lea    0x4787c62a(%r12,%rdx,1),%r9d
100401b13:	47
100401b14:	89 ca                	mov    %ecx,%edx
100401b16:	44 8b 67 2c          	mov    0x2c(%rdi),%r12d
100401b1a:	c1 c0 07             	rol    $0x7,%eax
100401b1d:	44 31 c2             	xor    %r8d,%edx
100401b20:	44 01 c0             	add    %r8d,%eax
100401b23:	44 89 64 24 20       	mov    %r12d,0x20(%rsp)
100401b28:	21 c2                	and    %eax,%edx
100401b2a:	31 ca                	xor    %ecx,%edx
100401b2c:	41 31 c5             	xor    %eax,%r13d
100401b2f:	44 01 ca             	add    %r9d,%edx
100401b32:	45 8d 8c 0f 13 46 30 	lea    -0x57cfb9ed(%r15,%rcx,1),%r9d
100401b39:	a8
100401b3a:	44 89 e9             	mov    %r13d,%ecx
100401b3d:	44 8b 6f 1c          	mov    0x1c(%rdi),%r13d
100401b41:	c1 c2 0c             	rol    $0xc,%edx
100401b44:	01 c2                	add    %eax,%edx
100401b46:	21 d1                	and    %edx,%ecx
100401b48:	44 31 c1             	xor    %r8d,%ecx
100401b4b:	44 01 c9             	add    %r9d,%ecx
100401b4e:	47 8d 8c 05 01 95 46 	lea    -0x2b96aff(%r13,%r8,1),%r9d
100401b55:	fd
100401b56:	41 89 c0             	mov    %eax,%r8d
100401b59:	c1 c9 0f             	ror    $0xf,%ecx
100401b5c:	41 31 d0             	xor    %edx,%r8d
100401b5f:	01 d1                	add    %edx,%ecx
100401b61:	41 21 c8             	and    %ecx,%r8d
100401b64:	41 31 c0             	xor    %eax,%r8d
100401b67:	45 01 c8             	add    %r9d,%r8d
100401b6a:	45 8d 8c 02 d8 98 80 	lea    0x698098d8(%r10,%rax,1),%r9d
100401b71:	69
100401b72:	89 d0                	mov    %edx,%eax
100401b74:	44 8b 57 34          	mov    0x34(%rdi),%r10d
100401b78:	41 c1 c8 0a          	ror    $0xa,%r8d
100401b7c:	31 c8                	xor    %ecx,%eax
100401b7e:	41 01 c8             	add    %ecx,%r8d
100401b81:	44 21 c0             	and    %r8d,%eax
100401b84:	31 d0                	xor    %edx,%eax
100401b86:	44 01 c8             	add    %r9d,%eax
100401b89:	45 8d 8c 13 af f7 44 	lea    -0x74bb0851(%r11,%rdx,1),%r9d
100401b90:	8b
100401b91:	89 ca                	mov    %ecx,%edx
100401b93:	44 8b 5f 3c          	mov    0x3c(%rdi),%r11d
100401b97:	c1 c0 07             	rol    $0x7,%eax
100401b9a:	44 31 c2             	xor    %r8d,%edx
100401b9d:	44 01 c0             	add    %r8d,%eax
100401ba0:	21 c2                	and    %eax,%edx
100401ba2:	31 ca                	xor    %ecx,%edx
100401ba4:	44 01 ca             	add    %r9d,%edx
100401ba7:	44 8d 8c 0b b1 5b ff 	lea    -0xa44f(%rbx,%rcx,1),%r9d
100401bae:	ff
100401baf:	44 89 c1             	mov    %r8d,%ecx
100401bb2:	c1 c2 0c             	rol    $0xc,%edx
100401bb5:	31 c1                	xor    %eax,%ecx
100401bb7:	01 c2                	add    %eax,%edx
100401bb9:	21 d1                	and    %edx,%ecx
100401bbb:	44 31 c1             	xor    %r8d,%ecx
100401bbe:	44 01 c9             	add    %r9d,%ecx
100401bc1:	47 8d 8c 04 be d7 5c 	lea    -0x76a32842(%r12,%r8,1),%r9d
100401bc8:	89
100401bc9:	41 89 c0             	mov    %eax,%r8d
100401bcc:	44 8b 67 38          	mov    0x38(%rdi),%r12d
100401bd0:	c1 c9 0f             	ror    $0xf,%ecx
100401bd3:	41 31 d0             	xor    %edx,%r8d
100401bd6:	48 83 c7 40          	add    $0x40,%rdi
100401bda:	01 d1                	add    %edx,%ecx
100401bdc:	41 21 c8             	and    %ecx,%r8d
100401bdf:	41 31 c0             	xor    %eax,%r8d
100401be2:	45 01 c8             	add    %r9d,%r8d
100401be5:	44 8d 8c 05 22 11 90 	lea    0x6b901122(%rbp,%rax,1),%r9d
100401bec:	6b
100401bed:	89 d0                	mov    %edx,%eax
100401bef:	41 c1 c8 0a          	ror    $0xa,%r8d
100401bf3:	31 c8                	xor    %ecx,%eax
100401bf5:	41 01 c8             	add    %ecx,%r8d
100401bf8:	44 21 c0             	and    %r8d,%eax
100401bfb:	31 d0                	xor    %edx,%eax
100401bfd:	44 01 c8             	add    %r9d,%eax
100401c00:	45 8d 8c 12 93 71 98 	lea    -0x2678e6d(%r10,%rdx,1),%r9d
100401c07:	fd
100401c08:	89 ca                	mov    %ecx,%edx
100401c0a:	c1 c0 07             	rol    $0x7,%eax
100401c0d:	44 31 c2             	xor    %r8d,%edx
100401c10:	44 01 c0             	add    %r8d,%eax
100401c13:	21 c2                	and    %eax,%edx
100401c15:	31 ca                	xor    %ecx,%edx
100401c17:	44 01 ca             	add    %r9d,%edx
100401c1a:	45 8d 8c 0c 8e 43 79 	lea    -0x5986bc72(%r12,%rcx,1),%r9d
100401c21:	a6
100401c22:	44 89 c1             	mov    %r8d,%ecx
100401c25:	c1 c2 0c             	rol    $0xc,%edx
100401c28:	31 c1                	xor    %eax,%ecx
100401c2a:	01 c2                	add    %eax,%edx
100401c2c:	21 d1                	and    %edx,%ecx
100401c2e:	44 31 c1             	xor    %r8d,%ecx
100401c31:	44 01 c9             	add    %r9d,%ecx
100401c34:	47 8d 8c 03 21 08 b4 	lea    0x49b40821(%r11,%r8,1),%r9d
100401c3b:	49
100401c3c:	41 89 c0             	mov    %eax,%r8d
100401c3f:	c1 c9 0f             	ror    $0xf,%ecx
100401c42:	41 31 d0             	xor    %edx,%r8d
100401c45:	01 d1                	add    %edx,%ecx
100401c47:	41 21 c8             	and    %ecx,%r8d
100401c4a:	41 31 c0             	xor    %eax,%r8d
100401c4d:	45 01 c8             	add    %r9d,%r8d
100401c50:	44 8b 4c 24 08       	mov    0x8(%rsp),%r9d
100401c55:	41 c1 c8 0a          	ror    $0xa,%r8d
100401c59:	41 01 c8             	add    %ecx,%r8d
100401c5c:	45 8d 8c 01 62 25 1e 	lea    -0x9e1da9e(%r9,%rax,1),%r9d
100401c63:	f6
100401c64:	89 c8                	mov    %ecx,%eax
100401c66:	44 31 c0             	xor    %r8d,%eax
100401c69:	21 d0                	and    %edx,%eax
100401c6b:	31 c8                	xor    %ecx,%eax
100401c6d:	44 01 c8             	add    %r9d,%eax
100401c70:	45 8d 8c 17 40 b3 40 	lea    -0x3fbf4cc0(%r15,%rdx,1),%r9d
100401c77:	c0
100401c78:	44 89 c2             	mov    %r8d,%edx
100401c7b:	44 8b 7c 24 20       	mov    0x20(%rsp),%r15d
100401c80:	c1 c0 05             	rol    $0x5,%eax
100401c83:	44 01 c0             	add    %r8d,%eax
100401c86:	31 c2                	xor    %eax,%edx
100401c88:	21 ca                	and    %ecx,%edx
100401c8a:	44 31 c2             	xor    %r8d,%edx
100401c8d:	44 01 ca             	add    %r9d,%edx
100401c90:	45 8d 8c 0f 51 5a 5e 	lea    0x265e5a51(%r15,%rcx,1),%r9d
100401c97:	26
100401c98:	89 c1                	mov    %eax,%ecx
100401c9a:	c1 c2 09             	rol    $0x9,%edx
100401c9d:	01 c2                	add    %eax,%edx
100401c9f:	31 d1                	xor    %edx,%ecx
100401ca1:	44 21 c1             	and    %r8d,%ecx
100401ca4:	31 c1                	xor    %eax,%ecx
100401ca6:	44 01 c9             	add    %r9d,%ecx
100401ca9:	47 8d 8c 06 aa c7 b6 	lea    -0x16493856(%r14,%r8,1),%r9d
100401cb0:	e9
100401cb1:	41 89 d0             	mov    %edx,%r8d
100401cb4:	c1 c1 0e             	rol    $0xe,%ecx
100401cb7:	01 d1                	add    %edx,%ecx
100401cb9:	41 31 c8             	xor    %ecx,%r8d
100401cbc:	41 21 c0             	and    %eax,%r8d
100401cbf:	41 31 d0             	xor    %edx,%r8d
100401cc2:	45 01 c8             	add    %r9d,%r8d
100401cc5:	44 8b 4c 24 2c       	mov    0x2c(%rsp),%r9d
100401cca:	41 c1 c8 0c          	ror    $0xc,%r8d
100401cce:	41 01 c8             	add    %ecx,%r8d
100401cd1:	45 8d 8c 01 5d 10 2f 	lea    -0x29d0efa3(%r9,%rax,1),%r9d
100401cd8:	d6
100401cd9:	89 c8                	mov    %ecx,%eax
100401cdb:	44 31 c0             	xor    %r8d,%eax
100401cde:	21 d0                	and    %edx,%eax
100401ce0:	31 c8                	xor    %ecx,%eax
100401ce2:	44 01 c8             	add    %r9d,%eax
100401ce5:	44 8d 8c 13 53 14 44 	lea    0x2441453(%rbx,%rdx,1),%r9d
100401cec:	02
100401ced:	44 89 c2             	mov    %r8d,%edx
100401cf0:	c1 c0 05             	rol    $0x5,%eax
100401cf3:	44 01 c0             	add    %r8d,%eax
100401cf6:	31 c2                	xor    %eax,%edx
100401cf8:	21 ca                	and    %ecx,%edx
100401cfa:	44 31 c2             	xor    %r8d,%edx
100401cfd:	44 01 ca             	add    %r9d,%edx
100401d00:	45 8d 8c 0b 81 e6 a1 	lea    -0x275e197f(%r11,%rcx,1),%r9d
100401d07:	d8
100401d08:	89 c1                	mov    %eax,%ecx
100401d0a:	c1 c2 09             	rol    $0x9,%edx
100401d0d:	01 c2                	add    %eax,%edx
100401d0f:	31 d1                	xor    %edx,%ecx
100401d11:	44 21 c1             	and    %r8d,%ecx
100401d14:	31 c1                	xor    %eax,%ecx
100401d16:	44 01 c9             	add    %r9d,%ecx
100401d19:	44 8b 4c 24 14       	mov    0x14(%rsp),%r9d
100401d1e:	44 8b 7c 24 1c       	mov    0x1c(%rsp),%r15d
100401d23:	c1 c1 0e             	rol    $0xe,%ecx
100401d26:	01 d1                	add    %edx,%ecx
100401d28:	47 8d 8c 01 c8 fb d3 	lea    -0x182c0438(%r9,%r8,1),%r9d
100401d2f:	e7
100401d30:	41 89 d0             	mov    %edx,%r8d
100401d33:	41 31 c8             	xor    %ecx,%r8d
100401d36:	41 21 c0             	and    %eax,%r8d
100401d39:	41 31 d0             	xor    %edx,%r8d
100401d3c:	45 01 c8             	add    %r9d,%r8d
100401d3f:	45 8d 8c 07 e6 cd e1 	lea    0x21e1cde6(%r15,%rax,1),%r9d
100401d46:	21
100401d47:	89 c8                	mov    %ecx,%eax
100401d49:	44 8b 7c 24 18       	mov    0x18(%rsp),%r15d
100401d4e:	41 c1 c8 0c          	ror    $0xc,%r8d
100401d52:	41 01 c8             	add    %ecx,%r8d
100401d55:	44 31 c0             	xor    %r8d,%eax
100401d58:	21 d0                	and    %edx,%eax
100401d5a:	31 c8                	xor    %ecx,%eax
100401d5c:	44 01 c8             	add    %r9d,%eax
100401d5f:	45 8d 8c 14 d6 07 37 	lea    -0x3cc8f82a(%r12,%rdx,1),%r9d
100401d66:	c3
100401d67:	44 89 c2             	mov    %r8d,%edx
100401d6a:	c1 c0 05             	rol    $0x5,%eax
100401d6d:	44 01 c0             	add    %r8d,%eax
100401d70:	31 c2                	xor    %eax,%edx
100401d72:	21 ca                	and    %ecx,%edx
100401d74:	44 31 c2             	xor    %r8d,%edx
100401d77:	44 01 ca             	add    %r9d,%edx
100401d7a:	44 8b 4c 24 10       	mov    0x10(%rsp),%r9d
100401d7f:	c1 c2 09             	rol    $0x9,%edx
100401d82:	01 c2                	add    %eax,%edx
100401d84:	45 8d 8c 09 87 0d d5 	lea    -0xb2af279(%r9,%rcx,1),%r9d
100401d8b:	f4
100401d8c:	89 c1                	mov    %eax,%ecx
100401d8e:	31 d1                	xor    %edx,%ecx
100401d90:	44 21 c1             	and    %r8d,%ecx
100401d93:	47 8d 84 07 ed 14 5a 	lea    0x455a14ed(%r15,%r8,1),%r8d
100401d9a:	45
100401d9b:	31 c1                	xor    %eax,%ecx
100401d9d:	44 01 c9             	add    %r9d,%ecx
100401da0:	41 89 d1             	mov    %edx,%r9d
100401da3:	c1 c1 0e             	rol    $0xe,%ecx
100401da6:	01 d1                	add    %edx,%ecx
100401da8:	41 31 c9             	xor    %ecx,%r9d
100401dab:	41 21 c1             	and    %eax,%r9d
100401dae:	41 31 d1             	xor    %edx,%r9d
100401db1:	45 01 c1             	add    %r8d,%r9d
100401db4:	45 8d 84 02 05 e9 e3 	lea    -0x561c16fb(%r10,%rax,1),%r8d
100401dbb:	a9
100401dbc:	89 c8                	mov    %ecx,%eax
100401dbe:	41 c1 c9 0c          	ror    $0xc,%r9d
100401dc2:	41 01 c9             	add    %ecx,%r9d
100401dc5:	44 31 c8             	xor    %r9d,%eax
100401dc8:	46 8d bc 0d 8a 4c 2a 	lea    -0x72d5b376(%rbp,%r9,1),%r15d
100401dcf:	8d
100401dd0:	21 d0                	and    %edx,%eax
100401dd2:	31 c8                	xor    %ecx,%eax
100401dd4:	44 01 c0             	add    %r8d,%eax
100401dd7:	44 8b 44 24 0c       	mov    0xc(%rsp),%r8d
100401ddc:	c1 c0 05             	rol    $0x5,%eax
100401ddf:	44 01 c8             	add    %r9d,%eax
100401de2:	45 8d 84 10 f8 a3 ef 	lea    -0x3105c08(%r8,%rdx,1),%r8d
100401de9:	fc
100401dea:	44 89 ca             	mov    %r9d,%edx
100401ded:	31 c2                	xor    %eax,%edx
100401def:	21 ca                	and    %ecx,%edx
100401df1:	41 8d 8c 0d d9 02 6f 	lea    0x676f02d9(%r13,%rcx,1),%ecx
100401df8:	67
100401df9:	44 31 ca             	xor    %r9d,%edx
100401dfc:	44 01 c2             	add    %r8d,%edx
100401dff:	41 89 c0             	mov    %eax,%r8d
100401e02:	c1 c2 09             	rol    $0x9,%edx
100401e05:	01 c2                	add    %eax,%edx
100401e07:	41 31 d0             	xor    %edx,%r8d
100401e0a:	45 21 c8             	and    %r9d,%r8d
100401e0d:	41 31 c0             	xor    %eax,%r8d
100401e10:	41 01 c8             	add    %ecx,%r8d
100401e13:	89 d1                	mov    %edx,%ecx
100401e15:	41 c1 c0 0e          	rol    $0xe,%r8d
100401e19:	41 01 d0             	add    %edx,%r8d
100401e1c:	44 31 c1             	xor    %r8d,%ecx
100401e1f:	41 89 c9             	mov    %ecx,%r9d
100401e22:	41 21 c1             	and    %eax,%r9d
100401e25:	41 31 d1             	xor    %edx,%r9d
100401e28:	45 01 f9             	add    %r15d,%r9d
100401e2b:	44 8b 7c 24 2c       	mov    0x2c(%rsp),%r15d
100401e30:	41 c1 c9 0c          	ror    $0xc,%r9d
100401e34:	45 01 c1             	add    %r8d,%r9d
100401e37:	41 8d 84 07 42 39 fa 	lea    -0x5c6be(%r15,%rax,1),%eax
100401e3e:	ff
100401e3f:	44 31 c9             	xor    %r9d,%ecx
100401e42:	01 c1                	add    %eax,%ecx
100401e44:	8b 44 24 18          	mov    0x18(%rsp),%eax
100401e48:	c1 c1 04             	rol    $0x4,%ecx
100401e4b:	8d 84 10 81 f6 71 87 	lea    -0x788e097f(%rax,%rdx,1),%eax
100401e52:	44 89 c2             	mov    %r8d,%edx
100401e55:	44 01 c9             	add    %r9d,%ecx