Function at 0x470979
Capabilities:
Encrypt data using chaskey

Disassembly:
movzx ecx, word [ecx]
mov edx, edi
mov edi, ebx
and edi, 0x2a16db5b
sub edi, edx
xor ebx, esi
add ebx, esi
jmp 0x46f0c3
mov ecx, dword [ecx]
and edx, esi
sub edx, ebx
xor edi, esi
or esi, edx
xchg esi, edi
dec ebx
add esi, 0x2a1d7ce9
xor esi, edx
jmp 0x46ec66
add ecx, 0x18
xor esi, edi
add edi, 0x2a1f671f
ror edi, 6
sub edi, esi
mov edx, ebx
xor esi, edx
add esi, ebx
add edi, edx
xchg edi, edx
sub ebx, esi
jmp 0x46f1ce
mov dword [esp + 0x2c], ecx
sub edx, 0x2a25ed9f
add edx, 0x2a26085b
mov edx, 0x2a262307
shr esi, 0xc
mov edx, esi
and edi, esi
mov edi, edx
add ebx, edi
sub edi, 0x2a26c327
add esi, edi
sub edx, edi
mov edx, ebx
jmp 0x46f43d
mov ecx, dword [esp + 0x2c]
xchg esi, edi
dec ebx
sub esi, edi
sub esi, 0x2a278565
add edi, esi
add edx, 0x2a27beb9
rol esi, 0x1c
and esi, ebx
jmp 0x470171
add dword [esp + 0xc8], eax
mov esi, ebx
add edi, ebx
or ebx, edx
xor ebx, edi
inc ebx
and esi, edx
xor esi, 0x2a28b805
ror edx, 0x17
jmp 0x46dac3
mov dword [esp + 0xb0], 0
xchg esi, ebx
add edi, edx
xchg edx, ebx
xor esi, ebx
or ebx, esi
or edi, 0x2a2efde7
xchg edx, edi
mov edx, edi
or edx, edi
xchg ebx, edi
jmp 0x46eb7b
mov ecx, dword [esp + 0xc8]
and esi, ebx
ror esi, 0x1d
and ebx, 0x2a2fc80d
neg edx
sub esi, edx
or ebx, esi
neg edx
add edi, ebx
jmp 0x46be64
mov ecx, 0x30
add edi, edx
or edx, 0x2a4803b7
or edi, 0x2a481fc7
add edx, esi
add esi, edi
sub edi, 0x2a486c6d
sub esi, ebx
add esi, edi
jmp 0x46f418
mov ecx, dword [esp + 0xb0]
mov edi, edx
ror ebx, 0xe
sub ebx, edx
and edx, ebx
sub ebx, edx
add esi, edx
add edi, ebx
and ebx, esi
and edx, edi
sub edx, esi
jmp 0x46f6b0
mov dword [esp + 0x58], ecx
xchg edi, esi
shl edx, 0x10
shl esi, 0x1c
or esi, 0x2a4e7b43
jmp 0x46c26e
mov eax, 4
xchg esi, edi
bswap ebx
mov edx, 0x2a4edc9f
xor esi, edi
add esi, edi
and ebx, edx
xchg edx, edi
neg edi
jmp 0x46bdb0
add ecx, dword [esp + 0x54]
add esi, 0x2a63d7a3
sub edi, 0x2a63f205
sub edi, edx
sub edi, ebx
xchg esi, ebx
add edi, 0x2a6461a9
ror ebx, 0xe
and esi, edi
xchg edx, edi
xor edx, edi
inc esi
sub edx, 0x2a650305
jmp 0x46d6f3
mov ecx, dword [ecx]
neg edx
or esi, 0x2a76e923
add ebx, edx
shr esi, 0xc
xchg edx, edi
sub esi, edi
add edi, edx
xchg edi, esi
jmp 0x46d270
add ecx, 0xc
xor edx, ebx
sub esi, edi
sub esi, edx
add edi, ebx
sub esi, edx
add edi, ebx
xchg edx, esi
add esi, edi
xchg edx, ebx
dec ebx
and edi, esi
shr ebx, 0xd
xchg esi, edx
add esi, edi
mov esi, edx
not esi
jmp 0x46e5bb
mov dword [esp + 0x54], 0
mov edx, esi
shr ebx, 0x1d
add edx, ebx
and esi, ebx
mov esi, ebx
add edi, ebx
and edx, edi
not esi
jmp 0x46fa66
mov dword [esp + 0x2c], ecx
shr edx, 0x17
and edx, 0x2a8bdff5
xchg esi, edx
rol ebx, 0x11
mov esi, ebx
add esi, edi
and ebx, edx
xchg edi, ebx
xchg edi, esi
mov esi, edx
jmp 0x46cfac
add dword [esp + 0xc8], 0x78
not edx
bswap ebx
shr edx, 0x1f
xchg edi, edx
jmp 0x46e3c8
sub dword [esp + 0xc8], 8
add esi, edi
xor edi, edx
or esi, ebx
add ebx, esi
add edi, 0x2a989451
ror ebx, 4
xchg edi, ebx
add edx, ebx
jmp 0x46c0c5
mov ecx, dword [ecx]
ror edx, 5
add edi, edx
sub edi, edx
and esi, 0x2aa1e991
ror edi, 4
or edi, edx
xor edi, esi
or ebx, esi
and ebx, edi
mov ebx, edx
jmp 0x46d79e
add ecx, dword [esp + 0x54]
and ebx, edx
xor ebx, edx
or edx, 0x2aa4d59b
sub edx, esi
or edx, esi
nop
and edi, 0x2aa59119
inc ebx
add edx, ebx
sub ebx, esi
mov esi, edi
xchg esi, edi
mov ebx, edi
shr edi, 0x11
and edx, edi
xchg esi, ebx
jmp 0x46bf7c
mov dword [esp + 0xb0], eax
or ebx, edx
rol ebx, 0xe
shr ebx, 5
dec edi
and ebx, edi
not edx
mov esi, ebx
not ebx
or ebx, edx
or edi, 0x2ac93e4d
jmp 0x46cb8a
mov eax, 2
rol edi, 0x1c
or edx, edi
ror edx, 6
add edi, edx
or edi, esi
sub ebx, 0x2ad2f471
and ebx, edx
or edi, 0x2ad3589b
sub esi, ebx
or ebx, 0x2ad3b561
add esi, edx
xchg edx, edi
jmp 0x46c294
add ecx, dword [esp + 0x54]
mov ebx, edx
xor edx, 0x2b0dfa45
or edx, esi
and edx, edi
ror esi, 0x10
rol esi, 0x13
not ebx
or edx, 0x2b0f4821
mov esi, edx
not edx
jmp 0x46c9f7
add ecx, 0xc
not ebx
shl edx, 0x16
shr edx, 0x16
mov ebx, 0x2b310449
or esi, 0x2b314367
mov ebx, edx
sub esi, ebx
shr esi, 0x14
xor edi, 0x2b32183f
xchg ebx, edx
neg edi
xchg edx, ebx
jmp 0x46fded
push ecx
sub ebx, esi
or esi, ebx
shl edi, 0xd
xor esi, edx
mov edi, edx
and edi, ebx
and edx, esi
mov edx, esi
inc ebx
and ebx, esi
jmp 0x46d7ba
add ecx, dword [esp + 0x54]
and edx, edi
xor edx, edi
xor esi, ebx
not edi
not ebx
sub edx, 0x2b91f815
jmp 0x46fbdb
xor eax, eax
xor ebx, 0x2b9238c3
add edx, 0x2b9267b9
and edx, 0x2b929e2d
sub edi, esi
and edi, 0x2b92fca1
add esi, ebx
jmp 0x46f680
add dword [esp + 0xc8], 0x20
or ebx, esi
sub esi, ebx
xchg edi, ebx
sub edx, edi
or edx, edi
and ebx, esi
inc edi
or edi, edx
xor edi, 0x2bc310c5
xchg edx, esi
jmp 0x46f7df
mov ecx, dword [ecx]
sub esi, 0x2bccd15f
inc esi
sub esi, edi
mov edx, edi
xor ebx, 0x2bcdb249
mov esi, 0x2bcdea81
and esi, edi
mov edi, esi
jmp 0x46beb1
mov ecx, dword [esp + 0xc8]
dec ebx
or esi, ebx
shr ebx, 0x13
and edi, edx
xor ebx, 0x2be7e931
xchg ebx, esi
and edi, ebx
mov esi, edx
inc ebx
shl esi, 0xb
or ebx, edi
sub esi, 0x2be9396d
jmp 0x46cc64
jne 0x46f680
sub edi, esi
dec ebx
xor edx, edi
mov esi, edi
mov ebx, esi
mov edx, edi
not edi
ror ebx, 0xb
or esi, ebx
shl ebx, 0x19
and ebx, 0x2c1ba847
or edx, esi
inc edx
or edi, esi
not edi
mov esi, edi
jmp 0x46fe07
mov dword [esp + 0xc8], ecx
neg edi
or edi, edx
or edx, ebx
sub esi, 0x2c5a3f47
bswap esi
not edx
neg esi
sub edx, esi
shl edi, 3
or edx, ebx
add esi, edi
and esi, edi
jmp 0x46ca67
mov ecx, dword [esp + 0x54]
xchg edx, ebx
add edx, esi
rol esi, 2
inc esi
sub edx, 0x2c5cfca7
or edx, ebx
xor edx, 0x2c5d61e3
xor edi, 0x2c5d91af
and ebx, edx
ror ebx, 0x12
mov edi, edx
sub ebx, 0x2c5e48b7
xor edx, 0x2c5e78af
ror edi, 9
jmp 0x46e596
mov ecx, dword [esp + 0x54]
mov edi, 0x2ca173f3
sub edx, edi
sub ebx, esi
add edx, ebx
add esi, edx
xor edx, 0x2ca1f44b
add esi, 0x2ca20f77
rol edi, 0x17
xchg ebx, edi
xor edx, esi
jmp 0x46f37b
add ecx, 0x3c
or edi, 0x2cc053d3
shr edi, 0x13
and edi, 0x2cc0b3ad
bswap ebx
sub edx, edi
sub edx, 0x2cc10979
xor edx, esi
xor edx, ebx
jmp 0x46e91a
mov ecx, dword [ecx]
rol ebx, 0xe
sub edx, 0x2cc17df9
or edi, edx
add edx, edi
bswap esi
sub edi, esi
and ebx, esi
and edi, edx
sub esi, edx
xchg esi, edi
jmp 0x47041c
mov dword [esp + 0x54], ecx
sub edi, 0x2ccaa6ef
add esi, edi
rol esi, 9
or esi, 0x2ccafab3
add esi, edi
or esi, 0x2ccb2e6f
inc edi
xor edx, ebx
jmp 0x46ded0
mov ecx, dword [ecx]
sub edx, ebx
add edi, edx
sub edx, edi
or esi, 0x2cf4c073
xor edx, esi
xor ebx, edx
or esi, ebx
not esi
xor ebx, 0x2cf5492b
mov edx, esi
not esi
xor edi, edx
neg edx
xor edx, edi
jmp 0x46dea7
mov dword [esp + 0x2c], 0
mov esi, edx
xor edi, esi
add edx, ebx
add esi, edx
sub ebx, edi
xor esi, 0x2d09a95d
and edx, ebx
and edx, esi
and esi, edi
xor edi, ebx
jmp 0x46c95a
add ecx, dword [esp + 0x54]
rol edi, 8
shl esi, 1
neg edi
and edx, edi
dec edi
add esi, ebx
dec edi
not edx
shl edi, 7
inc ebx
xchg edx, esi
and edi, edx
shr ebx, 0xd
xor esi, edx
jmp 0x46fc9a
add dword [esp + 0x2c], 4
inc ebx
and edi, esi
xor edi, ebx
neg edi
shl edx, 4
xor edi, edx
xor edx, ebx
sub edi, esi
xchg edi, esi
or esi, 0x2d28fe51
xor edx, esi
dec edi
jmp 0x46f767
mov ecx, dword [esp + 0xc8]
xchg ebx, edx
bswap esi
xchg ebx, edi
add edi, edx
and ebx, edi
or ebx, 0x2d335b19
mov esi, ebx
and esi, 0x2d33938d
jmp 0x46c773
mul ecx
mov edx, esi
dec edi
mov ebx, 0x2d368c4d
and esi, 0x2d36a753
xor esi, edi
neg esi
xchg ebx, esi
or ebx, 0x2d371885
jmp 0x46bfd4
mov ecx, dword [ecx]
and edx, esi
add edx, ebx
add edi, 0x2d3c7619
dec edi
sub edi, esi
or edx, edi
bswap edx
rol ebx, 1
sub edx, 0x2d3d19df
xor ebx, edi
jmp 0x47065e
mov ecx, dword [ecx]
shr ebx, 8
mov esi, edx
or esi, edx
or ebx, esi
and ebx, 0x2d3f7cc7
and esi, edx
mov esi, ebx
add esi, edi
xor esi, edi
add esi, edi
neg edi
or edx, 0x2d403403
jmp 0x46e678
add ecx, dword [esp + 0xc8]
add esi, edi
xor esi, 0x2d4d2153
not edi
shl esi, 0x13
or edi, 0x2d4d7847
xor edx, edi
not ebx
xor edi, 0x2d4dca8b
mov ebx, edi
xchg edx, edi
neg edi
and esi, edx
jmp 0x46f17e
mov ecx, dword fs:[ecx]
add ebx, edi
bswap edx
dec edi
xor esi, edx
jmp 0x46d37b
inc dword [esp + 0xb0]
xchg edi, edx
mov ebx, 0x2d533647
and edx, esi
and esi, edi
add esi, edx
sub edx, ebx
add edi, edx
sub edx, edi
or edi, esi
and edi, 0x2d540675
inc ebx
bswap esi
rol edx, 0x1e
or edx, 0x2d54756d
xor edx, ebx
dec esi
jmp 0x46eef5
ret
xor al, byte [ecx]
not edx
xor edi, ebx
and ebx, esi
xchg edi, esi
xor esi, 0x2d6535d3
shr esi, 0x13
or edi, 0x2d656b2f
dec ebx
add edx, esi
xor edi, ebx
mov esi, edi
shr edx, 0x15
and esi, ebx
and edi, edx
neg edi
add edi, esi
jmp 0x46fb8d
mul ecx
inc edx
add edx, ebx
or esi, edx
xor edi, ebx
and edx, esi
not edx
jmp 0x46ceff
mov ecx, dword [esp + 0x2c]
not esi
mov edx, 0x2d70b00f
and ebx, edi
add ebx, esi
xchg edi, edx
mov edi, 0x2d71173d
sub ebx, edi
xor esi, 0x2d714dd5
xor esi, 0x2d716d8d
xor esi, 0x2d718867
sub edx, esi
mov ebx, edi
xchg edx, edi
and ebx, edi
and esi, ebx
and edi, edx
jmp 0x46fd26
mov ecx, dword [esp + 0xc8]
not edi
bswap esi
mov ebx, edx
or edx, 0x2d743e63
jmp 0x46f928
mov ecx, dword [ecx]
add ebx, edi
xchg ebx, esi
and edx, edi
not esi
xor ebx, edi
dec edx
jmp 0x46cca1
add dword [esp + 0xc8], 4
mov ebx, edi
and edi, ebx
sub esi, ebx
mov edi, 0x2d7f46c9
nop
add edi, esi
and edx, ebx
shr edx, 0x13
shr edx, 0x15
or esi, 0x2d7fea2f
sub edi, esi
sub esi, edx
sub edi, esi
xor ebx, 0x2d80547d
jmp 0x46f04d
mov dword [esp + 0xc8], 0
and ebx, edx
and edx, esi
or esi, 0x2d894001
shl edi, 0x10
jmp 0x46c34b
mov ecx, dword [esp + 0x54]
dec ebx
xchg ebx, edi
ror edx, 0x1c
and edx, ebx
and esi, edx
neg ebx
shl edx, 5
and esi, 0x2d8f9c39
xor ebx, edx
sub edi, esi
inc esi
xchg edx, esi
rol edi, 0xb
xor ebx, 0x2d903f95
jmp 0x46ffed
rol eax, 8
add edi, edx
and ebx, edi
xchg ebx, edi
neg esi
or edi, 0x2d921db9
nop
and edi, esi
or edx, ebx
mov ebx, 0x2d928b79
and edx, esi
and esi, edi
sub edi, edx
jmp 0x46fe43
add esp, 0x17c
sub edx, esi
inc ebx
or ebx, edx
sub edi, 0x2d94c461
and ebx, esi
not edi
shl esi, 4
bswap esi
add edx, edi
or esi, ebx
jmp 0x46f5c0
mov dword [esp + 0xc8], ecx
or esi, edx
xor edi, ebx
or ebx, edx
xor ebx, edi
dec edx
xor edx, edi
not ebx
xor ebx, edx
sub edi, esi
inc esi
jmp 0x46bfb0
cmp byte [ecx], 0
jmp 0x46dc45
mov ecx, dword [ecx]
mov edi, edx
or ebx, edi
xor edi, ebx
dec edi
or esi, edx
xor esi, ebx
rol edi, 0x13
add edi, edx
sub edx, esi
add edi, esi
and edx, ebx
and esi, edx
xchg ebx, edi
and ebx, edi
mov ebx, 0x2da03ad1
bswap edx
jmp 0x46c516
mov ecx, dword [ecx]
shr esi, 3
or edi, 0x2da5e423
xchg edx, edi
ror esi, 1
ror esi, 3
or edx, ebx
jmp 0x46c932
pop ecx
nop
rol edi, 3
bswap edx
xchg edi, esi
or esi, edx
xor edi, ebx
neg ebx
or esi, edx
jmp 0x4707ff
inc ecx
shl ebx, 4
dec edi
mov edx, edi
add esi, edx
xchg edx, ebx
and edx, ebx
or esi, edx
add esi, edi
ror esi, 0x1e
mov edi, ebx
sub ebx, 0x2da9b897
dec edx
or edx, edi
xor edx, esi
jmp 0x46fd1e
add dword [esp + 0xc8], ecx
and esi, 0x2db66abb
neg edi
shr esi, 0x14
mov ebx, esi
bswap ebx
mov ebx, 0x2db6f571
inc ebx
and esi, ebx
jmp 0x46d88c
add ecx, dword [esp + 0xb0]
xchg edx, esi
add ebx, edx
mov edx, edi
add esi, edx
xor esi, edx
not esi
mov esi, edx
not esi
mov esi, ebx
rol edi, 4
xor ebx, 0x2dc416c5
xor edx, edi
jmp 0x46c365
mov ecx, dword [ecx]
xor ebx, esi
xor edx, edi
not ebx
not esi
mov esi, edi
xchg edx, ebx
not esi
bswap edx
and esi, edx
add esi, ebx
jmp 0x46d934
jne 0x46f43d
add esi, edi
sub edi, 0x2de476cb
dec esi
and esi, 0x2de4b1af
jmp 0x46f93a
mov dword [esp + 0xc8], ecx
add ebx, edx
add edi, ebx
xor ebx, 0x2dedc51f
not edx
xchg edi, edx
add edx, esi
add ebx, esi
xchg edi, ebx
jmp 0x46fb35
cmp eax, dword [esp + 0x58]
jmp 0x470539
sub esp, 0x17c
mov edi, ebx
sub edx, ebx
add ebx, esi
xor ebx, edi
ror ebx, 0x1b
and edi, esi
add esi, 0x2e0849d3
xor edx, 0x2e086b2b
add ebx, esi
or edi, esi
jmp 0x46c09d