Function at 0x478055
Capabilities:
Encrypt data using chaskey

Disassembly:
mov dword [esp + 0x10c], 0
xchg edx, ecx
sub edx, esi
mov esi, ecx
sub esi, ecx
and ecx, 0xe892a0f7
xchg esi, ebx
jmp 0x475a2a
mov edi, dword [edi]
add ebx, ecx
xor edx, 0xe8ec9dc1
shl edx, 1
or edx, ecx
mov esi, edx
xor ebx, edx
inc ecx
neg esi
bswap edx
and ecx, esi
jmp 0x4761bf
mov dword [esp + 0x60], eax
add esi, ebx
add ebx, edx
or edx, esi
or ebx, 0xe914dbad
sub esi, ebx
add esi, 0xe9159edc
or ebx, esi
jmp 0x475962
add dword [esp + 0xc4], 0x20
add edx, ecx
mov ecx, 0xe9183fc5
or ecx, esi
add esi, ecx
add esi, ebx
shl ebx, 0x11
rol ecx, 0x1c
xchg edx, ebx
xor ecx, esi
or edx, ebx
jmp 0x476e12
inc dword [esp + 0x60]
not ebx
and ebx, esi
and ecx, edx
ror ecx, 3
mov edx, 0xe94fe0f4
shr ecx, 0xf
mov esi, ecx
shl edx, 0x18
xor ecx, edx
or ecx, esi
xchg edx, esi
or esi, ecx
ror ecx, 8
jmp 0x476cec
add esp, 0x110
inc ecx
rol edx, 0xd
add ebx, 0xe962cd72
xor ecx, ebx
neg ecx
or ecx, edx
mov ecx, ebx
bswap ebx
jmp 0x475e0b
mov edi, dword [esp + 0xc4]
add ebx, 0xe97426fc
dec esi
rol esi, 0x1e
sub edx, ecx
or ebx, esi
add edx, esi
and esi, ecx
add esi, ecx
xchg esi, ecx
jmp 0x4786e4
mov dword [esp + 0xe4], edi
or edx, ecx
or ecx, edx
sub edx, ecx
add ebx, edx
not ebx
sub ecx, esi
xor ebx, esi
xor ebx, esi
sub esi, ebx
sub ebx, esi
and ecx, ebx
dec edx
jmp 0x4785db
sub dword [esp + 0xc4], 8
xor edx, ecx
add ebx, ecx
rol edx, 0xc
rol ebx, 0x18
xor ebx, 0xe9cf0dfb
and esi, edx
mov ecx, 0xe9cfceaf
jmp 0x475d42
mov dword [esp + 0x54], 0
xor esi, ecx
ror ebx, 0x11
mov ebx, 0xea111af5
or esi, edx
xchg esi, edx
or edx, ebx
xchg edx, esi
jmp 0x476b13
mov edi, dword [edi]
sub ecx, esi
xchg esi, ecx
shl esi, 2
add ebx, esi
add ecx, ebx
dec ecx
or esi, 0xea5a76c6
xchg edx, esi
not esi
add ecx, 0xea5b9e58
jmp 0x475f61
add dword [esp + 0xc4], eax
or ebx, esi
or esi, ecx
sub esi, ebx
xchg edx, ecx
or edx, ecx
not esi
not esi
inc edx
jmp 0x47812b
mov edi, dword [esp + 0xc4]
and ebx, 0xeac07cef
or esi, 0xeac0dead
rol esi, 7
and ecx, ebx
rol esi, 0x15
xchg esi, ebx
xor ecx, 0xeac506ba
and edx, ecx
rol esi, 8
add esi, ecx
jmp 0x475dd3
mov edi, dword [edi]
and ebx, esi
xor edx, ebx
add ecx, 0xeadd324b
sub ebx, edx
xor ecx, esi
jmp 0x475edd
ret
add edi, dword [esp + 0x54]
mov edx, esi
xor ecx, ebx
add ebx, ecx
mov ebx, ecx
add ebx, 0xeb1737ba
and ebx, edx
rol esi, 0xc
and edx, 0xeb18608e
add ecx, edx
jmp 0x47880e
add edi, dword [esp + 0x54]
or ecx, ebx
shl edx, 0x1e
sub edx, ebx
or ecx, esi
add ebx, edx
sub edx, ecx
shl edx, 8
xor edx, ebx
mov esi, ecx
bswap ecx
xor edx, 0xeb38b819
xor edx, esi
add ecx, edx
jmp 0x4776c0
add edi, 0x3c
ror ebx, 9
xchg ebx, edx
xchg esi, ebx
sub ebx, ecx
jmp 0x4754fa
mov dword [esp + 0x10c], edi
shl ecx, 1
xor ecx, esi
add ecx, esi
sub esi, ebx
mov ebx, 0xeb5c609e
or edx, ecx
sub edx, esi
sub edx, 0xeb5da3aa
add edx, ecx
xchg ebx, edx
and esi, ebx
and ecx, 0xeb5f205d
jmp 0x477d7a
mov dword [esp + 0x10c], edi
dec esi
sub ecx, edx
mov ebx, edx
bswap ebx
jmp 0x47568c
mov edi, dword [esp + 0x54]
and ecx, ebx
xor ecx, esi
xchg esi, edx
ror ecx, 0x1e
or ecx, edx
and esi, ebx
neg esi
mov esi, edx
xor ecx, 0xeb7b04c3
sub edx, ebx
or ecx, edx
or ecx, edx
ror edx, 0x10
jmp 0x476021
mov dword [esp + 0xc4], edi
add esi, edx
mov esi, 0xeba3ca8d
shl ebx, 0x1b
add ecx, ebx
xor ebx, 0xeba8bdb3
ror ecx, 0x19
sub ebx, edx
xchg edx, esi
jmp 0x476863
mov dword [esp + 0xc4], edi
or edx, ebx
and edx, esi
bswap ecx
ror ebx, 0x13
add esi, ebx
bswap edx
sub edx, ecx
xor ecx, esi
jmp 0x478549
cmp byte [edi], 0
jmp 0x476c25
add dword [esp + 0xc4], 0x78
sub ebx, 0xec8fdf21
inc edx
xor edx, ebx
or ebx, esi
xchg edx, esi
jmp 0x47824b
mov eax, 4
xor esi, 0xece0d1d9
rol ebx, 0x14
not esi
not esi
or edx, ecx
or edx, ebx
jmp 0x477152
mov dword [esp + 0xc4], 0
or ecx, 0xece8210b
sub ecx, esi
dec esi
shl ebx, 0x1d
or edx, esi
and ebx, ecx
dec ebx
or ecx, 0xeceb0085
add ebx, esi
xor edx, esi
jmp 0x47582f
cmp eax, dword [esp + 0xe4]
jmp 0x4773a1
mov edi, dword [edi]
mov edx, 0xecef3363
add edx, 0xecef99b6
shr ecx, 0x16
sub esi, 0xecf065c0
shl ebx, 6
mov ebx, 0xecf13960
xchg ecx, ebx
mov esi, ecx
sub edx, ecx
add ecx, 0xecf2d6ea
sub esi, 0xecf33421
jmp 0x4762b8
add edi, dword [esp + 0xc4]
add ecx, edx
dec ebx
add edx, esi
or ebx, edx
mov ebx, ecx
inc edx
jmp 0x476b66
jne 0x47896d
or ecx, edx
xchg ecx, ebx
add ecx, edx
xchg esi, edx
xor ecx, edx
xor esi, 0xed04d18c
and edx, esi
sub edx, ebx
mov ebx, esi
add ebx, edx
xchg ecx, ebx
and ecx, esi
xor esi, edx
mov esi, ecx
jmp 0x476e67
mov dword [esp + 0x60], 0
xchg edx, ebx
xchg ecx, ebx
and ecx, 0xed097ef6
or edx, ebx
and ebx, edx
mov ecx, edx
shl esi, 0x18
xchg edx, ecx
and ecx, 0xed0c3b6d
mov ecx, ebx
and esi, ecx
jmp 0x4752eb
add dword [esp + 0x10c], 4
mov ecx, edx
ror esi, 0xa
xor edx, esi
add edx, ecx
and ecx, ebx
add ebx, 0xed1ca654
rol ebx, 0x15
and ebx, edx
mov esi, edx
mov edx, ecx
jmp 0x477658
mov edi, dword [esp + 0xc4]
add ebx, ecx
and edx, ebx
or ecx, esi
shr ebx, 6
xchg ebx, ecx
and ecx, esi
xor edx, ebx
xchg edx, ebx
mov ebx, 0xed49cf6a
or ecx, edx
xchg edx, ecx
jmp 0x47897c
pop edi
add ebx, ecx
mov edx, ebx
mov ecx, ebx
add ecx, esi
add ecx, 0xed55f891
mov ecx, ebx
and esi, ebx
add ebx, esi
ror esi, 0x18
ror ebx, 0x13
or esi, 0xed59b8a2
jmp 0x476b5a
mov edi, dword fs:[edi]
xchg ebx, edx
ror ecx, 0x18
not ebx
xor edx, 0xed7fb3f7
jmp 0x4772c5
xor eax, eax
mov edx, ebx
or ebx, ecx
sub esi, edx
ror edx, 3
add ebx, esi
add edx, ebx
and ecx, esi
not ebx
jmp 0x47896d
mov edi, dword [esp + 0x60]
xor ebx, ecx
and ecx, 0xedb3b8b7
and ebx, ecx
xor ecx, esi
or edx, esi
or ecx, esi
or esi, ecx
inc esi
add ecx, edx
and ebx, ecx
sub edx, ebx
neg esi
jmp 0x4779c2
movzx edi, word [edi]
add ebx, 0xedc0cbf7
mov edx, 0xedc13b74
shl esi, 8
xor edx, 0xedc1febe
add edx, ebx
rol ebx, 0x13
jmp 0x4789c8
add edi, 0xc
and esi, 0xedf6b72e
add ecx, edx
mov ebx, esi
add esi, ecx
xor ebx, edx
mov ebx, edx
sub ebx, ecx
xchg edx, esi
add edx, ebx
sub ebx, ecx
jmp 0x477ba2
jne 0x47568c
sub esi, ecx
add edx, ecx
add esi, ebx
add edx, ebx
dec edx
xor edx, ecx
or edx, 0xee177e1c
xchg ebx, edx
jmp 0x477a27
add edi, 0xc
bswap ebx
rol ecx, 0xb
mov edx, ebx
or edx, ebx
or esi, edx
xchg ebx, esi
neg ebx
xor ebx, ecx
or ebx, edx
ror esi, 0xf
jmp 0x477dc5
add edi, dword [esp + 0x54]
and ecx, esi
ror ebx, 0x1c
sub ebx, edx
dec esi
or edx, esi
and ebx, edx
dec edx
and esi, edx
bswap esi
jmp 0x47570f
mov edi, dword [esp + 0x10c]
add edx, ecx
sub edx, esi
mov esi, edx
xchg ecx, ebx
and ebx, edx
mov esi, 0xee72614b
sub edx, esi
shl ebx, 0xf
sub ecx, edx
or esi, edx
jmp 0x475b74
push edi
not ecx
mov esi, 0xee83b129
neg edx
or edx, ecx
sub edx, esi
xchg ecx, edx
mov ecx, esi
and ecx, edx
add ebx, edx
not edx
rol edx, 0x1e
jmp 0x477096
rol eax, 8
add edx, ecx
xor edx, ecx
add esi, ebx
neg esi
add ebx, edx
sub ebx, edx
dec ecx
xor ebx, esi
add ebx, edx
dec ebx
mov esi, ecx
add esi, ebx
xchg esi, edx
xor ecx, 0xee921dae
jmp 0x477daa
add edi, dword [esp + 0x54]
rol ebx, 0x10
neg ebx
shl ecx, 7
jmp 0x476032
add dword [esp + 0xc4], edi
xor edx, ebx
xor edx, ebx
or edx, ebx
sub ebx, esi
or ecx, esi
or ecx, edx
xor ecx, ebx
sub esi, edx
sub edx, 0xeeb58d14
sub ebx, ecx
add edx, esi
jmp 0x475610
mul edi
bswap esi
inc ebx
mov esi, 0xeef3fd97
add edx, esi
sub edx, ecx
jmp 0x4755de
add dword [esp + 0xc4], 4
mov ecx, edx
sub ebx, edx
sub edx, esi
rol ecx, 0xb
sub edx, ecx
not esi
add edx, 0xef052178
not ebx
bswap esi
jmp 0x4757a5
mov edi, dword [edi]
sub ebx, ecx
and ecx, ebx
not ebx
bswap esi
xchg edx, ecx
and ecx, edx
not ebx
sub edx, ebx
add ebx, esi
ror ebx, 0x14
ror edx, 0xc
mov esi, 0xef3df2e9
dec edx
mov edx, ecx
jmp 0x4774fb
mov eax, 2
or ebx, 0xef85c446
add ecx, 0xef863050
add ecx, edx
or edx, esi
jmp 0x477102
inc edi
xchg ebx, edx
sub ebx, 0xef8ce1ed
mov esi, edx
shr edx, 2
mov ecx, ebx
xor ebx, 0xef8ea1b3
jmp 0x4765db
mov edi, dword [edi]
sub ecx, esi
or ebx, ecx
nop
bswap ecx
or ebx, 0xef90c3db
or ebx, edx
shr ecx, 6
bswap esi
jmp 0x477f57
mov edi, dword [edi]
sub ebx, esi
ror ebx, 0x17
ror ebx, 2
xchg ebx, ecx
add edx, ecx
jmp 0x47758f
mov edi, dword [edi]
xchg ebx, esi
mov ebx, ecx
xor esi, 0xefc64866
add ebx, edx
inc edx
rol ebx, 0x1b
xor esi, ecx
sub ebx, ecx
jmp 0x4787de
sub esp, 0x110
ror esi, 9
xor edx, esi
add edx, ecx
or edx, ecx
inc ebx
and esi, ecx
xor ebx, ecx
jmp 0x476c50
mov edi, dword [edi]
xor edx, 0xeff0ff55
and esi, ecx
or edx, 0xeff1bfd1
add esi, ecx
xchg esi, ebx
or ebx, edx
mov edx, esi
xor ebx, ecx
xchg ecx, esi
sub ecx, 0xeff47110
inc edx
xchg ecx, esi
rol ebx, 0x10
jmp 0x478482
mov edi, dword [esp + 0xc4]
add ebx, esi
xor ecx, 0xf0020d69
rol ebx, 0xc
sub ebx, edx
inc esi
neg ecx
jmp 0x477e3f
mov edi, dword [esp + 0x54]
and esi, ecx
xor ebx, 0xf0269c95
and ebx, esi
jmp 0x476bbd
add edi, 0x18
mov ecx, 0xf044e666
mov ecx, edx
xchg ecx, esi
xor edx, 0xf0460739
ror edx, 0x12
add ebx, 0xf046f1c1
and esi, 0xf0476da5
add esi, ebx
or esi, ecx
sub esi, 0xf0489b54
xor ecx, ebx
xchg edx, esi
sub ecx, 0xf049c8e2
or ecx, 0xf04a30c9
jmp 0x4780a3
mov edi, dword [esp + 0x10c]
xchg ecx, ebx
mov ecx, 0xf04b1548
xchg ecx, esi
xor edx, ebx
xor esi, ecx
jmp 0x4787f4
mov dword [esp + 0x54], edi
sub edx, ecx
or esi, ebx
and esi, edx
sub ecx, edx
xor esi, ecx
ror esi, 5
sub esi, ecx
mov edx, ecx
mov ecx, edx
xor ecx, ebx
jmp 0x4760f8
mov edi, dword [esp + 0x54]
mov ebx, esi
dec esi
mov ebx, esi
mov edx, 0xf07f9e69
or ecx, edx
or ebx, ecx
nop
shl ebx, 0x1b
shl ebx, 0x11
xor ecx, 0xf0820525
xor edx, esi
xchg ecx, edx
jmp 0x4777e7
mov edi, 0x30
not esi
mov edx, ebx
inc ebx
xchg ebx, edx
xor esi, ebx
jmp 0x476fa4
mov edi, dword [edi]
not ebx
add ebx, esi
and ebx, edx
add ecx, 0xf16315f0
neg esi
rol ebx, 5
xchg ebx, edx
add ebx, 0xf17474d9
dec edx
jmp 0x477749
add edi, dword [esp + 0x54]
xchg ecx, edx
or esi, ebx
xor edx, ebx
shr esi, 4
xchg edx, ecx
add ebx, esi
ror ecx, 0x16
neg ebx
jmp 0x4760a8
mov edi, dword [edi]
shl esi, 0xe
mov edx, 0xf1b043ba
sub edx, ebx
xor ecx, esi
shr edx, 0x1c
jmp 0x47836e
add edi, dword [esp + 0x60]
and ecx, ebx
and edx, ecx
and ebx, ecx
xchg ecx, esi
inc edx
dec ecx
neg edx
sub ecx, ebx
jmp 0x476ae0
mov dword [esp + 0xc4], edi
xor esi, edx
rol edx, 0x18
sub ebx, 0xf1b36169
xor esi, 0xf1b394a2
add ecx, ebx
and ecx, ebx
and esi, ebx
jmp 0x4783ae
xor al, byte [edi]
or esi, ebx
or ecx, edx
shl esi, 0x11
dec edx
jmp 0x4776e0
mov edi, dword [edi]
shr ebx, 0xe
xchg edx, ebx
sub ebx, esi
neg ecx
or ebx, edx
inc ecx
shl ebx, 3
mov ebx, edx
and edx, esi
jmp 0x4787a6
mul edi
neg ecx
add edx, 0xf233c57b
add edx, ebx
or esi, ecx
xor edx, esi
add ecx, esi
jmp 0x475c61