40579b:	31 fd                	xor    %edi,%ebp
40579d:	c1 ce 0b             	ror    $0xb,%esi
4057a0:	21 e8                	and    %ebp,%eax
4057a2:	8d 94 13 74 f1 9b c1 	lea    -0x3e640e8c(%ebx,%edx,1),%edx
4057a9:	31 ce                	xor    %ecx,%esi
4057ab:	31 f8                	xor    %edi,%eax
4057ad:	8b 4c 24 24          	mov    0x24(%esp),%ecx
4057b1:	c1 ce 02             	ror    $0x2,%esi
4057b4:	01 d0                	add    %edx,%eax
4057b6:	03 54 24 10          	add    0x10(%esp),%edx
4057ba:	01 f0                	add    %esi,%eax
4057bc:	8b 74 24 58          	mov    0x58(%esp),%esi
4057c0:	89 cb                	mov    %ecx,%ebx
4057c2:	c1 c9 0b             	ror    $0xb,%ecx
4057c5:	89 f7                	mov    %esi,%edi
4057c7:	c1 ce 02             	ror    $0x2,%esi
4057ca:	31 d9                	xor    %ebx,%ecx
4057cc:	c1 eb 03             	shr    $0x3,%ebx
4057cf:	c1 c9 07             	ror    $0x7,%ecx
4057d2:	31 fe                	xor    %edi,%esi
4057d4:	31 cb                	xor    %ecx,%ebx
4057d6:	c1 ce 11             	ror    $0x11,%esi
4057d9:	03 5c 24 20          	add    0x20(%esp),%ebx
4057dd:	c1 ef 0a             	shr    $0xa,%edi
4057e0:	03 5c 24 44          	add    0x44(%esp),%ebx
4057e4:	89 d1                	mov    %edx,%ecx
4057e6:	31 f7                	xor    %esi,%edi
4057e8:	8b 74 24 14          	mov    0x14(%esp),%esi
4057ec:	c1 ca 0e             	ror    $0xe,%edx
4057ef:	01 fb                	add    %edi,%ebx
4057f1:	8b 7c 24 18          	mov    0x18(%esp),%edi
4057f5:	31 ca                	xor    %ecx,%edx
4057f7:	89 5c 24 20          	mov    %ebx,0x20(%esp)
4057fb:	31 fe                	xor    %edi,%esi
4057fd:	c1 ca 05             	ror    $0x5,%edx
405800:	21 ce                	and    %ecx,%esi
405802:	89 4c 24 10          	mov    %ecx,0x10(%esp)
405806:	31 ca                	xor    %ecx,%edx
405808:	03 5c 24 1c          	add    0x1c(%esp),%ebx
40580c:	31 f7                	xor    %esi,%edi
40580e:	c1 ca 06             	ror    $0x6,%edx
405811:	89 c1                	mov    %eax,%ecx
405813:	01 fb                	add    %edi,%ebx
405815:	c1 c9 09             	ror    $0x9,%ecx
405818:	89 c6                	mov    %eax,%esi
40581a:	8b 7c 24 04          	mov    0x4(%esp),%edi
40581e:	31 c1                	xor    %eax,%ecx
405820:	89 04 24             	mov    %eax,(%esp)
405823:	31 f8                	xor    %edi,%eax
405825:	c1 c9 0b             	ror    $0xb,%ecx
405828:	21 c5                	and    %eax,%ebp
40582a:	8d 94 13 c1 69 9b e4 	lea    -0x1b64963f(%ebx,%edx,1),%edx
405831:	31 f1                	xor    %esi,%ecx
405833:	31 fd                	xor    %edi,%ebp
405835:	8b 74 24 28          	mov    0x28(%esp),%esi
405839:	c1 c9 02             	ror    $0x2,%ecx
40583c:	01 d5                	add    %edx,%ebp
40583e:	03 54 24 0c          	add    0xc(%esp),%edx
405842:	01 cd                	add    %ecx,%ebp
405844:	8b 4c 24 5c          	mov    0x5c(%esp),%ecx
405848:	89 f3                	mov    %esi,%ebx
40584a:	c1 ce 0b             	ror    $0xb,%esi
40584d:	89 cf                	mov    %ecx,%edi
40584f:	c1 c9 02             	ror    $0x2,%ecx
405852:	31 de                	xor    %ebx,%esi
405854:	c1 eb 03             	shr    $0x3,%ebx
405857:	c1 ce 07             	ror    $0x7,%esi
40585a:	31 f9                	xor    %edi,%ecx
40585c:	31 f3                	xor    %esi,%ebx
40585e:	c1 c9 11             	ror    $0x11,%ecx
405861:	03 5c 24 24          	add    0x24(%esp),%ebx
405865:	c1 ef 0a             	shr    $0xa,%edi
405868:	03 5c 24 48          	add    0x48(%esp),%ebx
40586c:	89 d6                	mov    %edx,%esi
40586e:	31 cf                	xor    %ecx,%edi
405870:	8b 4c 24 10          	mov    0x10(%esp),%ecx
405874:	c1 ca 0e             	ror    $0xe,%edx
405877:	01 fb                	add    %edi,%ebx
405879:	8b 7c 24 14          	mov    0x14(%esp),%edi
40587d:	31 f2                	xor    %esi,%edx
40587f:	89 5c 24 24          	mov    %ebx,0x24(%esp)
405883:	31 f9                	xor    %edi,%ecx
405885:	c1 ca 05             	ror    $0x5,%edx
405888:	21 f1                	and    %esi,%ecx
40588a:	89 74 24 0c          	mov    %esi,0xc(%esp)
40588e:	31 f2                	xor    %esi,%edx
405890:	03 5c 24 18          	add    0x18(%esp),%ebx
405894:	31 cf                	xor    %ecx,%edi
405896:	c1 ca 06             	ror    $0x6,%edx
405899:	89 ee                	mov    %ebp,%esi
40589b:	01 fb                	add    %edi,%ebx
40589d:	c1 ce 09             	ror    $0x9,%esi
4058a0:	89 e9                	mov    %ebp,%ecx
4058a2:	8b 3c 24             	mov    (%esp),%edi
4058a5:	31 ee                	xor    %ebp,%esi
4058a7:	89 6c 24 1c          	mov    %ebp,0x1c(%esp)
4058ab:	31 fd                	xor    %edi,%ebp
4058ad:	c1 ce 0b             	ror    $0xb,%esi
4058b0:	21 e8                	and    %ebp,%eax
4058b2:	8d 94 13 86 47 be ef 	lea    -0x1041b87a(%ebx,%edx,1),%edx
4058b9:	31 ce                	xor    %ecx,%esi
4058bb:	31 f8                	xor    %edi,%eax
4058bd:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
4058c1:	c1 ce 02             	ror    $0x2,%esi
4058c4:	01 d0                	add    %edx,%eax
4058c6:	03 54 24 08          	add    0x8(%esp),%edx
4058ca:	01 f0                	add    %esi,%eax
4058cc:	8b 74 24 20          	mov    0x20(%esp),%esi
4058d0:	89 cb                	mov    %ecx,%ebx
4058d2:	c1 c9 0b             	ror    $0xb,%ecx
4058d5:	89 f7                	mov    %esi,%edi
4058d7:	c1 ce 02             	ror    $0x2,%esi
4058da:	31 d9                	xor    %ebx,%ecx
4058dc:	c1 eb 03             	shr    $0x3,%ebx
4058df:	c1 c9 07             	ror    $0x7,%ecx
4058e2:	31 fe                	xor    %edi,%esi
4058e4:	31 cb                	xor    %ecx,%ebx
4058e6:	c1 ce 11             	ror    $0x11,%esi
4058e9:	03 5c 24 28          	add    0x28(%esp),%ebx
4058ed:	c1 ef 0a             	shr    $0xa,%edi
4058f0:	03 5c 24 4c          	add    0x4c(%esp),%ebx
4058f4:	89 d1                	mov    %edx,%ecx
4058f6:	31 f7                	xor    %esi,%edi
4058f8:	8b 74 24 0c          	mov    0xc(%esp),%esi
4058fc:	c1 ca 0e             	ror    $0xe,%edx
4058ff:	01 fb                	add    %edi,%ebx
405901:	8b 7c 24 10          	mov    0x10(%esp),%edi
405905:	31 ca                	xor    %ecx,%edx
405907:	89 5c 24 28          	mov    %ebx,0x28(%esp)
40590b:	31 fe                	xor    %edi,%esi
40590d:	c1 ca 05             	ror    $0x5,%edx
405910:	21 ce                	and    %ecx,%esi
405912:	89 4c 24 08          	mov    %ecx,0x8(%esp)
405916:	31 ca                	xor    %ecx,%edx
405918:	03 5c 24 14          	add    0x14(%esp),%ebx
40591c:	31 f7                	xor    %esi,%edi
40591e:	c1 ca 06             	ror    $0x6,%edx
405921:	89 c1                	mov    %eax,%ecx
405923:	01 fb                	add    %edi,%ebx
405925:	c1 c9 09             	ror    $0x9,%ecx
405928:	89 c6                	mov    %eax,%esi
40592a:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
40592e:	31 c1                	xor    %eax,%ecx
405930:	89 44 24 18          	mov    %eax,0x18(%esp)
405934:	31 f8                	xor    %edi,%eax
405936:	c1 c9 0b             	ror    $0xb,%ecx
405939:	21 c5                	and    %eax,%ebp
40593b:	8d 94 13 c6 9d c1 0f 	lea    0xfc19dc6(%ebx,%edx,1),%edx
405942:	31 f1                	xor    %esi,%ecx
405944:	31 fd                	xor    %edi,%ebp
405946:	8b 74 24 30          	mov    0x30(%esp),%esi
40594a:	c1 c9 02             	ror    $0x2,%ecx
40594d:	01 d5                	add    %edx,%ebp
40594f:	03 54 24 04          	add    0x4(%esp),%edx
405953:	01 cd                	add    %ecx,%ebp
405955:	8b 4c 24 24          	mov    0x24(%esp),%ecx
405959:	89 f3                	mov    %esi,%ebx
40595b:	c1 ce 0b             	ror    $0xb,%esi
40595e:	89 cf                	mov    %ecx,%edi
405960:	c1 c9 02             	ror    $0x2,%ecx
405963:	31 de                	xor    %ebx,%esi
405965:	c1 eb 03             	shr    $0x3,%ebx
405968:	c1 ce 07             	ror    $0x7,%esi
40596b:	31 f9                	xor    %edi,%ecx
40596d:	31 f3                	xor    %esi,%ebx
40596f:	c1 c9 11             	ror    $0x11,%ecx
405972:	03 5c 24 2c          	add    0x2c(%esp),%ebx
405976:	c1 ef 0a             	shr    $0xa,%edi
405979:	03 5c 24 50          	add    0x50(%esp),%ebx
40597d:	89 d6                	mov    %edx,%esi
40597f:	31 cf                	xor    %ecx,%edi
405981:	8b 4c 24 08          	mov    0x8(%esp),%ecx
405985:	c1 ca 0e             	ror    $0xe,%edx
405988:	01 fb                	add    %edi,%ebx
40598a:	8b 7c 24 0c          	mov    0xc(%esp),%edi
40598e:	31 f2                	xor    %esi,%edx
405990:	89 5c 24 2c          	mov    %ebx,0x2c(%esp)
405994:	31 f9                	xor    %edi,%ecx
405996:	c1 ca 05             	ror    $0x5,%edx
405999:	21 f1                	and    %esi,%ecx
40599b:	89 74 24 04          	mov    %esi,0x4(%esp)
40599f:	31 f2                	xor    %esi,%edx
4059a1:	03 5c 24 10          	add    0x10(%esp),%ebx
4059a5:	31 cf                	xor    %ecx,%edi
4059a7:	c1 ca 06             	ror    $0x6,%edx
4059aa:	89 ee                	mov    %ebp,%esi
4059ac:	01 fb                	add    %edi,%ebx
4059ae:	c1 ce 09             	ror    $0x9,%esi
4059b1:	89 e9                	mov    %ebp,%ecx
4059b3:	8b 7c 24 18          	mov    0x18(%esp),%edi
4059b7:	31 ee                	xor    %ebp,%esi
4059b9:	89 6c 24 14          	mov    %ebp,0x14(%esp)
4059bd:	31 fd                	xor    %edi,%ebp
4059bf:	c1 ce 0b             	ror    $0xb,%esi
4059c2:	21 e8                	and    %ebp,%eax
4059c4:	8d 94 13 cc a1 0c 24 	lea    0x240ca1cc(%ebx,%edx,1),%edx
4059cb:	31 ce                	xor    %ecx,%esi
4059cd:	31 f8                	xor    %edi,%eax
4059cf:	8b 4c 24 34          	mov    0x34(%esp),%ecx
4059d3:	c1 ce 02             	ror    $0x2,%esi
4059d6:	01 d0                	add    %edx,%eax
4059d8:	03 14 24             	add    (%esp),%edx
4059db:	01 f0                	add    %esi,%eax
4059dd:	8b 74 24 28          	mov    0x28(%esp),%esi
4059e1:	89 cb                	mov    %ecx,%ebx
4059e3:	c1 c9 0b             	ror    $0xb,%ecx
4059e6:	89 f7                	mov    %esi,%edi
4059e8:	c1 ce 02             	ror    $0x2,%esi
4059eb:	31 d9                	xor    %ebx,%ecx
4059ed:	c1 eb 03             	shr    $0x3,%ebx
4059f0:	c1 c9 07             	ror    $0x7,%ecx
4059f3:	31 fe                	xor    %edi,%esi
4059f5:	31 cb                	xor    %ecx,%ebx
4059f7:	c1 ce 11             	ror    $0x11,%esi
4059fa:	03 5c 24 30          	add    0x30(%esp),%ebx
4059fe:	c1 ef 0a             	shr    $0xa,%edi
405a01:	03 5c 24 54          	add    0x54(%esp),%ebx
405a05:	89 d1                	mov    %edx,%ecx
405a07:	31 f7                	xor    %esi,%edi
405a09:	8b 74 24 04          	mov    0x4(%esp),%esi
405a0d:	c1 ca 0e             	ror    $0xe,%edx
405a10:	01 fb                	add    %edi,%ebx
405a12:	8b 7c 24 08          	mov    0x8(%esp),%edi
405a16:	31 ca                	xor    %ecx,%edx
405a18:	89 5c 24 30          	mov    %ebx,0x30(%esp)
405a1c:	31 fe                	xor    %edi,%esi
405a1e:	c1 ca 05             	ror    $0x5,%edx
405a21:	21 ce                	and    %ecx,%esi
405a23:	89 0c 24             	mov    %ecx,(%esp)
405a26:	31 ca                	xor    %ecx,%edx
405a28:	03 5c 24 0c          	add    0xc(%esp),%ebx
405a2c:	31 f7                	xor    %esi,%edi
405a2e:	c1 ca 06             	ror    $0x6,%edx
405a31:	89 c1                	mov    %eax,%ecx
405a33:	01 fb                	add    %edi,%ebx
405a35:	c1 c9 09             	ror    $0x9,%ecx
405a38:	89 c6                	mov    %eax,%esi
405a3a:	8b 7c 24 14          	mov    0x14(%esp),%edi
405a3e:	31 c1                	xor    %eax,%ecx
405a40:	89 44 24 10          	mov    %eax,0x10(%esp)
405a44:	31 f8                	xor    %edi,%eax
405a46:	c1 c9 0b             	ror    $0xb,%ecx
405a49:	21 c5                	and    %eax,%ebp
405a4b:	8d 94 13 6f 2c e9 2d 	lea    0x2de92c6f(%ebx,%edx,1),%edx
405a52:	31 f1                	xor    %esi,%ecx
405a54:	31 fd                	xor    %edi,%ebp
405a56:	8b 74 24 38          	mov    0x38(%esp),%esi
405a5a:	c1 c9 02             	ror    $0x2,%ecx
405a5d:	01 d5                	add    %edx,%ebp
405a5f:	03 54 24 1c          	add    0x1c(%esp),%edx
405a63:	01 cd                	add    %ecx,%ebp
405a65:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
405a69:	89 f3                	mov    %esi,%ebx
405a6b:	c1 ce 0b             	ror    $0xb,%esi
405a6e:	89 cf                	mov    %ecx,%edi
405a70:	c1 c9 02             	ror    $0x2,%ecx
405a73:	31 de                	xor    %ebx,%esi
405a75:	c1 eb 03             	shr    $0x3,%ebx
405a78:	c1 ce 07             	ror    $0x7,%esi
405a7b:	31 f9                	xor    %edi,%ecx
405a7d:	31 f3                	xor    %esi,%ebx
405a7f:	c1 c9 11             	ror    $0x11,%ecx
405a82:	03 5c 24 34          	add    0x34(%esp),%ebx
405a86:	c1 ef 0a             	shr    $0xa,%edi
405a89:	03 5c 24 58          	add    0x58(%esp),%ebx
405a8d:	89 d6                	mov    %edx,%esi
405a8f:	31 cf                	xor    %ecx,%edi
405a91:	8b 0c 24             	mov    (%esp),%ecx
405a94:	c1 ca 0e             	ror    $0xe,%edx
405a97:	01 fb                	add    %edi,%ebx
405a99:	8b 7c 24 04          	mov    0x4(%esp),%edi
405a9d:	31 f2                	xor    %esi,%edx
405a9f:	89 5c 24 34          	mov    %ebx,0x34(%esp)
405aa3:	31 f9                	xor    %edi,%ecx
405aa5:	c1 ca 05             	ror    $0x5,%edx
405aa8:	21 f1                	and    %esi,%ecx
405aaa:	89 74 24 1c          	mov    %esi,0x1c(%esp)
405aae:	31 f2                	xor    %esi,%edx
405ab0:	03 5c 24 08          	add    0x8(%esp),%ebx
405ab4:	31 cf                	xor    %ecx,%edi
405ab6:	c1 ca 06             	ror    $0x6,%edx
405ab9:	89 ee                	mov    %ebp,%esi
405abb:	01 fb                	add    %edi,%ebx
405abd:	c1 ce 09             	ror    $0x9,%esi
405ac0:	89 e9                	mov    %ebp,%ecx
405ac2:	8b 7c 24 10          	mov    0x10(%esp),%edi
405ac6:	31 ee                	xor    %ebp,%esi
405ac8:	89 6c 24 0c          	mov    %ebp,0xc(%esp)
405acc:	31 fd                	xor    %edi,%ebp
405ace:	c1 ce 0b             	ror    $0xb,%esi
405ad1:	21 e8                	and    %ebp,%eax
405ad3:	8d 94 13 aa 84 74 4a 	lea    0x4a7484aa(%ebx,%edx,1),%edx
405ada:	31 ce                	xor    %ecx,%esi
405adc:	31 f8                	xor    %edi,%eax
405ade:	8b 4c 24 3c          	mov    0x3c(%esp),%ecx
405ae2:	c1 ce 02             	ror    $0x2,%esi
405ae5:	01 d0                	add    %edx,%eax
405ae7:	03 54 24 18          	add    0x18(%esp),%edx
405aeb:	01 f0                	add    %esi,%eax
405aed:	8b 74 24 30          	mov    0x30(%esp),%esi
405af1:	89 cb                	mov    %ecx,%ebx
405af3:	c1 c9 0b             	ror    $0xb,%ecx
405af6:	89 f7                	mov    %esi,%edi
405af8:	c1 ce 02             	ror    $0x2,%esi
405afb:	31 d9                	xor    %ebx,%ecx
405afd:	c1 eb 03             	shr    $0x3,%ebx
405b00:	c1 c9 07             	ror    $0x7,%ecx
405b03:	31 fe                	xor    %edi,%esi
405b05:	31 cb                	xor    %ecx,%ebx
405b07:	c1 ce 11             	ror    $0x11,%esi
405b0a:	03 5c 24 38          	add    0x38(%esp),%ebx
405b0e:	c1 ef 0a             	shr    $0xa,%edi
405b11:	03 5c 24 5c          	add    0x5c(%esp),%ebx
405b15:	89 d1                	mov    %edx,%ecx
405b17:	31 f7                	xor    %esi,%edi
405b19:	8b 74 24 1c          	mov    0x1c(%esp),%esi
405b1d:	c1 ca 0e             	ror    $0xe,%edx
405b20:	01 fb                	add    %edi,%ebx
405b22:	8b 3c 24             	mov    (%esp),%edi
405b25:	31 ca                	xor    %ecx,%edx
405b27:	89 5c 24 38          	mov    %ebx,0x38(%esp)
405b2b:	31 fe                	xor    %edi,%esi
405b2d:	c1 ca 05             	ror    $0x5,%edx
405b30:	21 ce                	and    %ecx,%esi
405b32:	89 4c 24 18          	mov    %ecx,0x18(%esp)
405b36:	31 ca                	xor    %ecx,%edx
405b38:	03 5c 24 04          	add    0x4(%esp),%ebx
405b3c:	31 f7                	xor    %esi,%edi
405b3e:	c1 ca 06             	ror    $0x6,%edx
405b41:	89 c1                	mov    %eax,%ecx
405b43:	01 fb                	add    %edi,%ebx
405b45:	c1 c9 09             	ror    $0x9,%ecx
405b48:	89 c6                	mov    %eax,%esi
405b4a:	8b 7c 24 0c          	mov    0xc(%esp),%edi
405b4e:	31 c1                	xor    %eax,%ecx
405b50:	89 44 24 08          	mov    %eax,0x8(%esp)
405b54:	31 f8                	xor    %edi,%eax
405b56:	c1 c9 0b             	ror    $0xb,%ecx
405b59:	21 c5                	and    %eax,%ebp
405b5b:	8d 94 13 dc a9 b0 5c 	lea    0x5cb0a9dc(%ebx,%edx,1),%edx
405b62:	31 f1                	xor    %esi,%ecx
405b64:	31 fd                	xor    %edi,%ebp
405b66:	8b 74 24 40          	mov    0x40(%esp),%esi
405b6a:	c1 c9 02             	ror    $0x2,%ecx
405b6d:	01 d5                	add    %edx,%ebp
405b6f:	03 54 24 14          	add    0x14(%esp),%edx
405b73:	01 cd                	add    %ecx,%ebp
405b75:	8b 4c 24 34          	mov    0x34(%esp),%ecx
405b79:	89 f3                	mov    %esi,%ebx
405b7b:	c1 ce 0b             	ror    $0xb,%esi