Function at 0x477d79
Capabilities:
Encrypt data using chaskey

Disassembly:
add esp, 0x114
ror edi, 0xe
and edi, 0xc131b12d
mov ecx, ebx
or ecx, 0xc1322c75
dec ecx
neg esi
add edi, 0xc132fcf5
mov edi, esi
jmp 0x4774fe
mov edx, dword [edx]
or ebx, esi
xor edi, esi
ror edi, 0xd
bswap esi
mov ebx, ecx
xchg edi, ecx
and ebx, edi
mov ecx, ebx
jmp 0x476454
mov edx, dword [edx]
sub ebx, esi
mov esi, edi
and esi, ecx
or edi, 0xc13e3fd9
shl esi, 0xb
sub ebx, edi
shr edi, 0xb
or ecx, ebx
xor edi, 0xc13f87b9
shr ecx, 0x10
and esi, ecx
xchg edi, ecx
mov ecx, ebx
bswap ecx
jmp 0x476cb5
add edx, 0x18
or esi, ecx
and edi, 0xc144d4ab
or ebx, 0xc145146d
or edi, ebx
ror ecx, 0x15
mov ecx, 0xc145cf39
xor ecx, edi
mov ebx, edi
shl esi, 0x1e
dec ebx
add ecx, esi
rol edi, 2
xor ecx, edi
bswap esi
jmp 0x47666b
jne 0x477275
and edi, 0xc1559d5d
and esi, ecx
sub ecx, 0xc15618a3
xchg ecx, ebx
sub ebx, esi
ror ebx, 0x16
mov edi, ecx
xor ebx, ecx
jmp 0x4763c1
mov edx, dword [edx]
shl edi, 0x1c
mov esi, edi
dec esi
sub ebx, edi
xor ecx, 0xc1775fc1
sub ecx, ebx
shr esi, 4
xor ebx, edi
add ecx, esi
inc edi
inc ebx
rol esi, 0x17
jmp 0x475c49
mov dword [esp + 0xec], edx
sub esi, ecx
xor ebx, edi
or edi, 0xc1891f03
ror ebx, 0x15
ror edi, 0x1b
mov edi, esi
rol edi, 0x12
bswap esi
mov ebx, ecx
sub ebx, ecx
jmp 0x4762b2
mov edx, dword [edx]
and edi, ecx
dec esi
rol edi, 0xa
neg esi
and ebx, edi
dec edi
and ecx, edi
or esi, 0xc19206b7
add ecx, ebx
mov esi, ecx
or edi, ebx
inc esi
jmp 0x476640
mov edx, dword [esp + 0xb0]
and ecx, edi
xor ecx, 0xc1953dbd
xchg ebx, ecx
xor edi, ecx
dec edi
mov ecx, ebx
jmp 0x476d5f
jne 0x476a00
add esi, ebx
mov ecx, edi
add ebx, edi
or esi, ecx
and ebx, esi
dec ecx
bswap ecx
xor esi, 0xc1b2e933
add ebx, edi
not edi
xor edi, 0xc1b3a405
add ebx, edi
or ecx, ebx
add edi, ebx
jmp 0x4771d4
add dword [esp + 0xec], eax
or esi, 0xc1d5bf57
ror ecx, 0x13
mov ecx, 0xc1d64df9
xchg esi, ebx
jmp 0x477857
add dword [esp + 0xec], edx
or ecx, ebx
or ecx, 0xc1e95fed
xor ebx, 0xc1e99ea9
or ebx, esi
add edi, ebx
not ebx
mov ebx, 0xc1ea964b
and ecx, esi
rol esi, 3
mov ecx, esi
jmp 0x4771e4
mov edx, dword [esp + 0xa4]
nop
mov edi, 0xc1f21131
or edi, ebx
xor ebx, 0xc1f28def
rol ecx, 0x1e
add edi, esi
or ecx, ebx
xor esi, ecx
add ecx, ebx
and edi, esi
jmp 0x477a43
add dword [esp + 0xec], 0x78
sub ebx, edi
xchg esi, ebx
add edi, esi
mov edi, esi
sub ecx, edi
mov edi, ebx
mov edi, ecx
not ebx
sub esi, ebx
mov edi, 0xc204b489
jmp 0x47648c
mov edx, dword [esp + 0xa4]
xchg ebx, edi
inc ecx
dec ecx
add edi, ebx
and esi, edi
or esi, ecx
or ecx, ebx
xchg esi, ebx
mov esi, ecx
and edi, ecx
mov ecx, edi
mov esi, ebx
jmp 0x475cb3
push edx
bswap ecx
bswap ebx
mov ebx, ecx
mov ecx, edi
xchg ebx, edi
sub esi, ebx
or esi, ecx
sub ecx, ebx
xchg edi, ebx
rol ecx, 0xe
sub ebx, esi
add esi, 0xc2128dbb
add ebx, edi
sub esi, 0xc21308db
jmp 0x4763e2
add dword [esp + 0xec], 4
mov esi, edi
mov ebx, 0xc2184bf9
sub ebx, edi
not edi
xor ecx, edi
ror esi, 3
or ebx, ecx
not ecx
jmp 0x477016
xor eax, eax
and ecx, ebx
xor esi, 0xc21a61d3
xchg ecx, edi
xor edi, ebx
xor ebx, ecx
dec ebx
jmp 0x476a00
add edx, dword [esp + 0x104]
sub edi, esi
sub esi, ebx
add esi, ecx
mov ecx, ebx
and esi, edi
sub ecx, edi
add ecx, 0xc224a53f
sub ecx, 0xc224e42d
or esi, edi
and edi, ecx
neg ebx
or esi, 0xc225dc19
and ebx, edi
sub ecx, 0xc22657c7
jmp 0x477873
mov edx, dword [esp + 0x104]
mov edi, ebx
inc edi
not edi
xchg ecx, edi
xor ecx, ebx
mov edi, ecx
xchg edi, esi
ror edi, 8
sub ecx, ebx
mov ebx, 0xc228e8e3
jmp 0x477514
mov eax, 2
and ebx, 0xc233fd11
and ecx, edi
xor ebx, edi
or esi, edi
ror edi, 0xf
mov edi, ecx
and ecx, 0xc23580f5
dec esi
xchg ebx, edi
xor ebx, esi
add ecx, 0xc2367a6d
xchg ebx, ecx
jmp 0x475cec
mov edx, dword [edx]
dec esi
mov edi, ecx
neg ebx
bswap ecx
add edi, ebx
shl esi, 8
add ebx, esi
add ecx, edi
bswap ebx
ror edi, 0x1f
and ecx, ebx
sub edi, esi
jmp 0x4765b2
add edx, dword [esp + 0x104]
xor ecx, 0xc23de531
xchg ecx, esi
mov ecx, esi
neg ebx
dec edi
mov edi, 0xc23f2d8f
or edi, ebx
add ecx, ebx
jmp 0x476c60
add edx, dword [esp + 0x104]
and ebx, 0xc248218b
shl ecx, 6
and ecx, ebx
and ebx, ecx
and esi, ecx
bswap edi
ror ebx, 0x1f
add ecx, 0xc249e42b
and ebx, esi
ror ebx, 8
jmp 0x476353
mov edx, dword [edx]
xor ebx, 0xc24ab49b
sub edi, ebx
or ecx, ebx
add ecx, 0xc24b7e21
inc ebx
shl ebx, 0xa
rol ebx, 0xe
sub edi, ecx
xor edi, ebx
and esi, ecx
jmp 0x477893
add edx, 0xc
sub ebx, ecx
rol esi, 0x19
mov ecx, esi
xchg ecx, esi
xchg edi, esi
xor edi, ebx
or edi, esi
xchg edi, ebx
xor ecx, edi
add edi, ecx
jmp 0x476b5c
rol eax, 8
or edi, esi
xchg edi, esi
rol esi, 0x10
mov ecx, 0xc25b4997
bswap esi
xor esi, ecx
xchg ebx, esi
xchg ebx, edi
or ecx, ebx
sub ecx, edi
jmp 0x4769a6
sub dword [esp + 0xec], 8
add ecx, 0xc26162b5
add ebx, edi
xor edi, ecx
xor ebx, edi
bswap edi
mov ebx, 0xc2629921
sub ebx, ecx
or esi, 0xc2631543
add ecx, ebx
add ecx, edi
not edi
nop
rol edi, 0x19
and ecx, edi
neg ebx
mov esi, edi
jmp 0x476f75
inc edx
sub edi, 0xc2896d3d
neg ebx
xor edi, esi
shr ebx, 0x1f
sub ebx, ecx
xor edi, ecx
jmp 0x476cf1
mov dword [esp + 0xec], edx
mov esi, ebx
shr esi, 0x1f
ror ebx, 0x17
not edi
and edi, ecx
nop
inc ebx
inc esi
or ecx, esi
mov esi, ebx
xor ecx, 0xc28d8d59
dec ecx
ror esi, 0xa
not esi
xchg ebx, esi
and ebx, esi
jmp 0x4777a0
xor al, byte [edx]
or esi, ebx
dec ecx
add esi, ebx
mov ebx, esi
and ebx, 0xc291c26b
sub esi, ecx
jmp 0x476739
mov edx, dword [edx]
xor edi, 0xc2a6d03f
xor edi, esi
or esi, ecx
xor esi, 0xc2a79a61
and ecx, edi
sub edi, esi
xchg esi, ebx
or ebx, 0xc2a891ff
jmp 0x4758bd
add edx, 0x3c
ror ecx, 9
or edi, ebx
neg ebx
neg ecx
inc ebx
sub ebx, 0xc2aa32dd
not esi
dec edi
xor ebx, ecx
or esi, 0xc2ab2f71
jmp 0x475b5d
mov edx, dword [edx]
mov ecx, ebx
mov ecx, esi
sub ecx, esi
xor ecx, 0xc2ac4739
jmp 0x477000
mov dword [esp + 0xa4], edx
bswap ebx
neg edi
shr ebx, 8
or esi, ebx
mov ebx, edi
xchg ecx, esi
xor edi, 0xc2c0ee73
xor ebx, 0xc2c12cf3
xor ebx, 0xc2c16bfd
sub ebx, esi
jmp 0x477275
add dword [esp + 0xa4], 4
and ecx, 0xc2c1fdaf
and ebx, 0xc2c23c81
and ecx, esi
sub esi, 0xc2c2b8d9
xor ecx, esi
inc edi
or ecx, ebx
sub esi, edi
jmp 0x476331
mov edx, dword [edx]
neg edi
xor ecx, ebx
add edi, esi
sub esi, edi
mov esi, ecx
and esi, ecx
jmp 0x476b16
cmp byte [edx], 0
jmp 0x475e78
mul edx
sub edi, ebx
sub esi, 0xc2c98821
add edi, esi
add ebx, edi
or ecx, esi
xor edi, ecx
dec esi
sub ebx, edi
inc ecx
mov esi, edi
jmp 0x476054
mul edx
add edi, esi
xor ebx, edi
shr esi, 0x1d
and ecx, 0xc2d151df
dec esi
and edi, 0xc2d1d099
or edi, ecx
dec ecx
and ecx, edi
xor ebx, ecx
xor ebx, ecx
and ebx, esi
sub ecx, 0xc2d3912d
not edi
jmp 0x477951
mov edx, dword [edx]
mov edi, ecx
add esi, edi
or edi, ecx
sub ecx, 0xc2e01fc1
jmp 0x476fbf
mov edx, dword [esp + 0xec]
shl ebx, 0xc
rol esi, 0xd
and edi, ecx
add edi, ecx
xor ebx, ecx
xor esi, ecx
xor ebx, edi
and ebx, ecx
jmp 0x476564
mov edx, dword [esp + 0xec]
shl ecx, 0xe
add edi, esi
rol ebx, 0x12
xor esi, ebx
or esi, ebx
mov esi, ebx
shr esi, 6
shr esi, 7
rol esi, 0x18
mov edi, ecx
dec esi
neg edi
neg ebx
inc ecx
jmp 0x4757f4
add edx, dword [esp + 0x104]
or ebx, 0xc2fd6187
sub ebx, esi
and ebx, ecx
xor edi, ebx
neg ebx
xchg esi, edi
not edi
ror ebx, 5
xor ebx, esi
and edi, 0xc2ffa513
ror esi, 0x15
xor esi, ebx
jmp 0x4757cd
add edx, 0xc
bswap edi
ror ecx, 0x1b
rol esi, 7
and ecx, ebx
shr edi, 0xa
inc esi
jmp 0x47586d
mov edx, dword [esp + 0xec]
xor edi, ecx
not edi
add edi, esi
sub ecx, ebx
xchg esi, edi
xor edi, esi
or esi, ecx
bswap esi
xchg ecx, esi
and esi, edi
and ebx, esi
mov ebx, edi
jmp 0x477c39
movzx edx, word [edx]
and ecx, esi
or ebx, esi
and edi, ecx
shl esi, 3
mov edi, ebx
shr edi, 0x13
mov edi, 0xc316f4d3
or edi, esi
or esi, ebx
and ebx, ecx
or esi, ecx
mov edi, 0xc3182595
neg ebx
and ecx, edi
jmp 0x476cf9
mov eax, 4
xchg ebx, edi
and ebx, edi
sub ecx, 0xc3214763
add esi, edi
sub edi, ecx
mov ebx, ecx
dec esi
shr edi, 3
and esi, edi
xor esi, 0xc323060d
jmp 0x477108
pop edx
or esi, ecx
xchg edi, ebx
dec edi
mov edi, ebx
dec ebx
neg esi
jmp 0x477cd3
add dword [esp + 0xec], 0x20
sub esi, ecx
xor edi, ebx
sub ebx, edi
sub ebx, esi
mov esi, edi
and edi, 0xc3263af9
jmp 0x476f0d
mov dword [esp + 0xa4], edx
or ebx, edi
mov ebx, esi
rol ebx, 0xe
xchg ecx, ebx
not edi
ror ecx, 4
xor esi, edi
mov esi, edi
sub esi, edi
shl ebx, 0x1a
jmp 0x476536
inc dword [esp + 0xb0]
xchg esi, ecx
xor edi, 0xc330b2a1
xchg esi, ebx
sub esi, 0xc331305d
rol ecx, 9
rol esi, 0xd
xchg esi, edi
sub ecx, ebx
or ecx, esi
neg ebx
jmp 0x476c8d
mov edx, dword [edx]
mov ebx, esi
xor edi, 0xc334ea15
bswap ebx
rol ecx, 0xe
and edi, 0xc335a95d
and ecx, edi
add ecx, 0xc33624f5
xor edi, esi
or ebx, edi
add ebx, 0xc336ee11
or ebx, edi
sub esi, 0xc3376a15
mov edi, esi
xchg ebx, ecx
jmp 0x4769bd
mov dword [esp + 0x104], 0
add ebx, edi
mov ebx, ecx
xor esi, 0xc35570a7
xor ecx, esi
ror ebx, 0x1d
or ecx, edi
xchg esi, ebx
mov ecx, 0xc356ba15
and edi, 0xc356f90d
shl esi, 0x1a
add esi, edi
not ecx
jmp 0x477903
add edx, dword [esp + 0x104]
or esi, 0xc35a26df
xor ecx, 0xc35a6593
and ebx, ecx
not edi
add ebx, esi
xor esi, ecx
xor edi, esi
or ebx, esi
or esi, 0xc35c25cb
xor edi, esi
jmp 0x477201
ret
add edx, dword [esp + 0xec]
shl edi, 0x14
ror ecx, 0xa
shl edi, 0xa
neg edi
jmp 0x4772bf
mov edx, dword [esp + 0x104]
or ebx, edi
add ebx, ecx
or esi, 0xc3806a45
xchg esi, ebx
jmp 0x476b39
mov edx, dword [esp + 0x104]
and ecx, ebx
add esi, 0xc3b96a3b
or ebx, esi
shl ecx, 0x15
or ebx, esi
sub ecx, ebx
sub ecx, ebx
add edi, 0xc3c0a221
xchg esi, edi
add ebx, edi
mov ecx, esi
mov ebx, edi
jmp 0x47615b
mov edx, dword [esp + 0xec]
and esi, ebx
mov ebx, ecx
add ebx, edi
xchg esi, edi
xor ecx, ebx
mov edi, ebx
ror edi, 0xf
dec ecx
jmp 0x476e29
mov dword [esp + 0xec], edx
sub edi, 0xc3f8b6bd
mov ecx, ebx
mov ecx, edi
neg ebx
or edi, 0xc3fb6777
and edi, esi
jmp 0x4761cc
mov dword [esp + 0x104], edx
add edi, esi
xor ebx, 0xc3fd81cf
inc edi
ror esi, 0x14
inc edi
rol edi, 0x1b
add edi, ebx
xor edi, esi
sub ebx, edi
neg ecx
add edi, ebx
add ebx, 0xc4040a1f
add ecx, ebx
sub ecx, esi
jmp 0x477646
mov dword [esp + 0xec], 0
xor esi, edi
xor ecx, esi
xor ecx, ebx
or ebx, edi
sub ecx, ebx
xchg esi, ebx
xchg esi, ecx
nop
or edi, esi
or edi, esi
ror ecx, 0x1c
mov ecx, ebx
jmp 0x477bfe
mov dword [esp + 0xb0], eax
rol ebx, 0x18
add ecx, esi
and ecx, 0xc424d351
and edi, ebx
xchg edi, esi
shl ecx, 0xd
xchg edi, ebx
mov ebx, 0xc4282a11
add esi, 0xc428cd89
rol esi, 0x1e
jmp 0x476783
add edx, dword [esp + 0xb0]
ror ebx, 0x17
or edi, esi
mov ebx, ecx
rol ebx, 0x15
and ebx, ecx
and ebx, ecx
xchg ebx, edi
shr ebx, 0x11
mov ebx, 0xc456c0cd
nop
or esi, ecx
xchg ecx, ebx
add ebx, 0xc45a2a11
xchg ecx, edi
sub esi, ecx
neg ecx
jmp 0x4771ae
mov edx, dword fs:[edx]
ror edi, 0x1b
bswap esi
and ebx, 0xc46f8c7f
or ecx, 0xc47030d5
sub ebx, ecx
xor ecx, esi
jmp 0x47671c
mov dword [esp + 0xa0], edx
add ecx, 0xc4af5895
and edi, ecx
xchg ebx, edi
xchg edi, ebx
add esi, ebx
mov ebx, 0xc4b25a75
or ecx, 0xc4b2ef85
shr ebx, 0x1a
jmp 0x477c83
mov edx, dword [edx]
or ecx, ebx
add ecx, edi
xchg esi, ecx
and edi, esi
add esi, 0xc4b94921
or esi, ecx
or esi, ecx
mov esi, ebx
neg esi
or edi, ebx
mov esi, ebx
xor ebx, esi
jmp 0x477437
mov edx, 0x30
mov ebx, ecx
xor ecx, edi
not esi
add ecx, 0xc4c747d9
jmp 0x477ac7
cmp eax, dword [esp + 0xa0]
jmp 0x47599b
mov dword [esp + 0xb0], 0
rol edi, 0x1e
rol ecx, 5
ror ebx, 0x12
add ebx, ecx
inc esi
xor edi, 0xc4df1861
inc ebx
ror edi, 0x1e
jmp 0x477d61
mov dword [esp + 0xa4], 0
sub edi, ecx
xor esi, edi
xchg esi, ebx
add ebx, ecx
jmp 0x4773ec
sub esp, 0x114
add esi, ebx
or edi, ecx
xor ebx, 0xc4e8a661
and ebx, 0xc4e93b41
inc ebx
mov ecx, 0xc4ea6685
ror edi, 0xd
xchg ebx, ecx
xor ecx, 0xc4ec506d
xor ebx, 0xc4ece581
or edi, esi
xchg esi, edi
jmp 0x477d2c