Function at 0x478d1a
Capabilities:
Encrypt data using chaskey

Disassembly:
add esi, dword [esp + 0x98]
add edi, ecx
ror edx, 9
not ebx
sub ecx, 0xafa0426
and ecx, edi
or edi, ecx
mov edi, 0xafac9ee
jmp 0x477816
add esi, dword [esp + 0x98]
shr edi, 0x10
dec edi
xchg ecx, ebx
sub edi, edx
mov edx, ebx
sub ecx, ebx
sub edi, edx
xor edi, ecx
sub edx, ecx
xchg ebx, edi
mov edx, edi
neg ebx
mov ecx, ebx
add edi, 0xafe4d05
mov edi, ecx
jmp 0x4782f6
mov esi, dword [esi]
xchg edx, ecx
or ebx, 0xb141bbc
and edi, ecx
xchg edx, ecx
or ecx, edx
xchg edx, ebx
add ebx, edx
add ebx, edi
dec edx
sub ebx, edx
dec edi
xchg ebx, edx
mov ebx, 0xb16ce7f
or edx, ecx
jmp 0x4769d4
xor al, byte [esi]
bswap edi
mov ebx, 0xc2e54fd
xchg edi, ebx
xor ecx, edx
and ecx, ebx
mov ebx, 0xc2f4acf
sub ebx, edi
add edi, ebx
or edx, edi
xor edx, 0xc309ff7
not ebx
shl ecx, 1
and ecx, edi
and ebx, ecx
and edi, edx
jmp 0x477b61
mov dword [esp + 0x2c], esi
mov ecx, edx
xchg ebx, edi
xor edx, 0xc36ef64
or edi, 0xc372eb9
mov ecx, 0xc376c7e
add edi, ecx
add ecx, ebx
add ebx, ecx
neg ebx
jmp 0x475cd6
mul esi
xor edx, 0xc4ca5e8
shr ebx, 0xc
and edi, ecx
or edx, 0xc4e3da6
xchg edx, ebx
sub edx, ecx
or ebx, edi
or ecx, edi
jmp 0x47620c
mov esi, dword [esp + 0x98]
rol edx, 0x1c
xor ecx, edi
sub ebx, edi
add edx, ecx
or ecx, edi
add edi, ecx
xor ecx, 0xc85bafb
mov ecx, edx
xor edi, ebx
rol ecx, 0x12
jmp 0x47730c
mov esi, 0x30
and edi, ecx
xor ecx, 0xc882358
ror ebx, 3
xor edx, edi
mov ecx, edi
xchg ebx, ecx
sub ecx, edi
or edi, ecx
add edi, ecx
bswap edx
shl ebx, 0x1a
jmp 0x475d50
mov esi, dword fs:[esi]
inc edx
xor ebx, 0xc99d137
or edi, ecx
mov ecx, 0xc9a9f77
or edi, ecx
and ecx, ebx
shl ebx, 0x11
jmp 0x475f49
add esi, dword [esp + 0x98]
xor edi, edx
or edx, edi
add ebx, edi
mov ebx, edi
or edi, edx
shl edi, 5
xor ebx, edx
add ebx, ecx
mov ebx, 0xca2d5a1
sub ebx, ecx
and ebx, 0xca3c4d2
jmp 0x478218
add dword [esp + 0x108], 0x20
xchg ecx, edx
xchg edx, edi
bswap ecx
ror ecx, 0xb
add ecx, edi
xor ebx, edx
xor edi, ebx
ror ecx, 0x1c
not edx
jmp 0x47771e
add esi, 0xc
xor ecx, edi
rol ecx, 7
and ecx, edi
and ebx, ecx
ror ecx, 9
nop
neg ebx
bswap edx
inc edx
dec edx
jmp 0x47604f
add dword [esp + 0x134], 4
neg ecx
or edx, ebx
sub ecx, ebx
xor edi, ecx
jmp 0x4776cc
mul esi
mov ecx, edx
or ecx, ebx
or edi, ecx
add edx, 0xcea77a2
xor edx, edi
sub edx, ecx
not edx
sub ecx, ebx
mov ebx, edi
add edi, ebx
jmp 0x477ff0
pop esi
xor ecx, ebx
or edi, edx
add ecx, edx
xchg edi, ecx
shr edi, 0x12
xor ebx, 0xcf2a548
add ebx, edi
ror edx, 0x15
add ecx, edx
jmp 0x476c7f
mov esi, dword [esi]
and ecx, edx
or ecx, 0xcfd2132
or edi, ebx
mov edx, 0xcfe0ec2
xor ecx, 0xcfe8ace
sub edi, edx
xor edx, ebx
xchg ecx, ebx
sub edx, ecx
or edi, 0xd00ddc0
xchg edi, ebx
mov edx, edi
ror ebx, 6
not ecx
and ecx, 0xd02f27d
jmp 0x476252
mov esi, dword [esi]
shr ebx, 6
or ebx, edx
mov edi, edx
and ebx, edx
rol ecx, 0x12
xor ebx, edi
or ebx, edx
or ebx, edi
or ecx, edi
jmp 0x475748
add dword [esp + 0x108], eax
or ecx, edx
xchg ebx, edx
and edi, edx
and edi, 0xd311416
not edi
and ebx, edi
xor ebx, ecx
or ecx, edx
sub ecx, edi
and edx, ecx
jmp 0x4775d7
add esi, 0xc
rol ecx, 0x12
mov edi, edx
xor ecx, ebx
rol ebx, 9
or edx, ebx
or ecx, edx
or edi, ecx
bswap edx
bswap edi
and ecx, edi
sub edi, edx
or ebx, edx
and edi, ebx
shr ebx, 5
jmp 0x4764f3
mov esi, dword [esi]
xchg ebx, ecx
inc ecx
mov ebx, edx
xor edi, edx
shl edx, 4
xchg ecx, ebx
mov ecx, 0xd52a274
sub edx, edi
xor ebx, ecx
rol edx, 1
mov edi, edx
add ecx, 0xd54d8a9
jmp 0x477a0b
mov eax, 4
sub ebx, ecx
xor edi, 0xd61cf8a
xor edi, 0xd62388f
or ebx, edx
and edx, 0xd631542
add edx, edi
inc edi
not edi
mov edx, edi
add edx, ebx
shr edx, 8
jmp 0x4779d8
mov dword [esp + 0x134], esi
or edx, ebx
mov edi, ecx
xor edx, edi
not ebx
neg ebx
add ebx, 0xd87b076
inc ecx
not ebx
jmp 0x477f95
mov esi, dword [esi]
or edx, 0xd94ed56
not edx
inc ecx
mov ecx, ebx
sub ecx, ebx
mov edx, 0xd971a26
add edi, ebx
add ebx, edi
jmp 0x476706
inc dword [esp + 0xc]
rol edi, 0x12
shl edx, 0x17
add ecx, edi
shr edx, 0x1d
neg ebx
sub ecx, ebx
xor ebx, edx
add ebx, ecx
ror edx, 0xb
xor edx, ebx
jmp 0x475f88
mov esi, dword [esi]
xchg edx, ecx
add edi, edx
and ebx, ecx
mov ecx, ebx
xor ecx, edx
shl edx, 3
xchg ebx, edx
mov ebx, edi
and edi, 0xdc1c632
or ecx, edx
add ecx, 0xdc23fed
shl ecx, 0x11
xor ecx, 0xdc2bbd6
neg ebx
not ebx
jmp 0x4758c0
mov esi, dword [esi]
rol ebx, 0x19
or edi, ebx
sub edi, ebx
sub ecx, 0xded59b9
sub edx, ebx
sub ebx, edi
add ebx, ecx
jmp 0x475d86
add esi, 0x18
xor edi, edx
sub edi, ecx
and ebx, edx
bswap ecx
and ebx, 0xdf797ec
neg ebx
dec edx
dec edi
xor ebx, edx
jmp 0x476b1f
add esi, dword [esp + 0xc]
add ebx, edx
xchg ecx, ebx
and edi, 0xe0c4590
ror edi, 5
and ebx, edi
and ebx, 0xe0d003d
bswap edi
neg edi
xor edx, ebx
bswap edx
shl edi, 0x12
and edi, ecx
xor ecx, edx
jmp 0x476371
mov esi, dword [esi]
or ecx, 0xe0f13b7
and ebx, ecx
nop
mov edx, ebx
xchg edi, edx
and ecx, 0xe10588b
xor edi, ebx
sub ecx, ebx
or ecx, 0xe111393
sub edx, ebx
xchg ecx, ebx
jmp 0x476d49
xor eax, eax
neg ecx
shl edi, 6
or edx, ecx
add edi, 0xe1418d8
and edx, 0xe145535
not ebx
sub edi, edx
jmp 0x4759ae
cmp eax, dword [esp + 0x2c]
jmp 0x477d2b
mov dword [esp + 0x108], esi
sub edi, edx
mov ebx, ecx
sub ecx, ebx
xor ebx, ecx
add edi, ebx
and edx, ebx
jmp 0x47758d
mov dword [esp + 0x98], esi
shl ebx, 4
rol edi, 0x1e
add ebx, edi
ror ebx, 0x1b
and ebx, edx
jmp 0x476d7f
mov esi, dword [esp + 0x98]
add ebx, edx
xor ebx, 0xe38e944
xor edx, 0xe3928e0
dec edx
add edi, ecx
bswap edx
add edi, edx
shr ecx, 0xa
add edx, edi
mov ecx, edi
jmp 0x476ef1
add dword [esp + 0x108], 4
xchg edx, edi
rol edi, 0x1e
mov ebx, edx
xor edi, edx
sub ebx, 0xe4b2b4e
xchg edi, edx
or edi, edx
bswap edi
jmp 0x477d5f
add esi, 0x3c
not edx
and ebx, edi
add edi, 0xe641f82
or edx, ecx
mov ebx, edx
and edi, ebx
dec edi
add edx, 0xe668e90
sub edx, 0xe670b67
add ebx, edx
jmp 0x478d46
mov esi, dword [esp + 0xc]
and ebx, ecx
add edx, 0xe8f9354
mov ecx, edi
sub edi, edx
and ebx, edx
rol edx, 0x16
and ebx, ecx
or ecx, ebx
sub edi, 0xe92fcbc
or edi, 0xe9382b4
rol ebx, 0xa
mov ebx, edx
xor edi, edx
and ecx, ebx
shr ecx, 0xa
jmp 0x475fb5
mov dword [esp + 0x108], 0
xchg edi, edx
neg edx
xor ebx, 0xe9c1250
and edi, 0xe9c812c
xchg edi, ebx
and ebx, edi
sub ecx, 0xe9e566c
add ecx, edx
neg edx
or ecx, 0xea01038
mov edi, edx
ror ebx, 0xe
dec ebx
xchg ecx, ebx
jmp 0x475a13
mov dword [esp + 0x108], esi
not edx
neg edx
dec ebx
neg ebx
mov edx, edi
and edi, edx
mov edi, edx
sub ecx, edx
or ecx, edx
add edi, edx
add edx, ecx
and edx, ebx
jmp 0x477220
add dword [esp + 0x108], 0x78
sub edx, edi
xchg edi, edx
xor ecx, 0xec74726
add ebx, 0xec7b366
not ecx
mov edx, ecx
sub ecx, edx
sub edi, 0xec951be
xchg edi, ecx
rol edx, 8
add edx, edi
xor ebx, ecx
xchg ebx, edi
shr ecx, 0xb
jmp 0x475cb0
add esi, dword [esp + 0x108]
xchg edi, edx
xchg ecx, ebx
add ebx, 0xeda7d51
xor ebx, ecx
add edi, ebx
and ebx, 0xedb358f
or ecx, edx
jmp 0x477439
mov esi, dword [esi]
inc ebx
and edx, 0xef0c71d
not edx
rol edx, 0xd
or ebx, edi
or edi, ecx
neg edx
jmp 0x476d1d
cmp byte [esi], 0
jmp 0x477bfa
mov esi, dword [esp + 0x98]
dec edx
not ebx
or ecx, ebx
bswap edx
and edi, 0xf0c4aa7
add ecx, 0xf0c8a42
sub ecx, 0xf0ccb6b
or ebx, ecx
or edx, edi
neg ebx
or edx, edi
add ebx, 0xf0e1df4
jmp 0x477697
mov esi, dword [esp + 0x108]
neg ecx
dec ecx
rol ecx, 0xb
and ecx, edx
sub edi, ecx
ror ebx, 0xd
mov edx, ebx
add edi, ecx
mov edi, ebx
add edi, ecx
and edi, ecx
sub ebx, 0xf14f50c
jmp 0x476948
add dword [esp + 0x108], esi
sub ebx, ecx
or ebx, edx
shr edi, 0x1c
add ecx, edi
xor ecx, ebx
sub ecx, edi
sub ebx, edx
or edi, 0xf2fb450
jmp 0x475e06
mov esi, dword [esp + 0x134]
mov edx, edi
or ebx, edx
sub ecx, 0xf33f5fe
add edi, edx
sub edx, edi
jmp 0x4762f8
mov esi, dword [esp + 0x108]
sub ebx, edi
inc edx
mov ebx, edi
mov edi, edx
xor edi, edx
xchg edx, edi
and ebx, 0xf3d14d9
shl edx, 0xa
dec ebx
not edx
add ecx, edi
jmp 0x476088
mov dword [esp + 0x134], esi
shl ebx, 6
xchg edx, ecx
sub ecx, 0xf519437
mov edx, 0xf51d33c
bswap edi
mov edi, 0xf5255a3
mov edx, ebx
shl ebx, 5
add edi, ecx
and ebx, edx
jmp 0x476676
movzx esi, word [esi]
xchg ecx, edi
inc ebx
shl ecx, 7
xor ebx, edx
and ecx, edx
xor edx, ebx
and edi, ecx
sub ecx, edi
jmp 0x475b1a
add esi, dword [esp + 0x98]
shr edi, 0x1b
mov edi, ebx
add edx, ecx
not ebx
or edi, edx
rol ebx, 8
and ecx, ebx
jmp 0x477ac0
inc esi
mov ebx, 0xf7e188d
or edx, 0xf7e563f
and ecx, ebx
add edi, ebx
or ecx, 0xf7f1d56
and edx, 0xf7f5cc6
jmp 0x477566
push esi
add ecx, edx
mov edi, ebx
add edx, edi
xor ebx, ecx
shr ecx, 1
or edx, 0xf840ad3
xchg edi, ebx
or ecx, ebx
add ebx, ecx
mov ecx, ebx
mov edi, edx
add ebx, edi
shl ecx, 8
jmp 0x476b5a
rol eax, 8
xor ebx, 0xf90e329
or edx, ecx
xor ebx, 0xf915e21
rol edi, 0x10
and ecx, edx
or ecx, edx
add ecx, edx
or edi, 0xf929a16
jmp 0x477a7e
jne 0x4759ae
rol edi, 9
xchg edx, ebx
sub ecx, ebx
and ecx, edi
add ecx, edi
and ecx, edi
xor edi, edx
xchg edx, edi
sub ebx, ecx
sub ecx, ebx
jmp 0x475fef
mov esi, dword [esi]
inc edx
inc ebx
xor ecx, 0xfb06012
mov ebx, 0xfb10759
shl edx, 6
or edi, 0xfb18449
add ecx, 0xfb1d3f4
add ebx, 0xfb21001
xchg edx, edi
jmp 0x47576a
jne 0x476676
xor edi, ecx
shr ebx, 0x1b
xor edi, ebx
xor ecx, 0xfb3595c
not ecx
or ecx, 0xfb3e435
mov edx, ebx
xor edx, ebx
bswap edx
mov ecx, edx
add ebx, 0xfb513d4
xor ecx, 0xfb550c7
jmp 0x476e19
mov esi, dword [esp + 0x108]
inc ecx
sub ecx, ebx
xchg ecx, ebx
shl ebx, 7
xor edi, edx
and ecx, edi
rol edi, 0x16
sub ecx, edx
inc ebx
rol ecx, 1
jmp 0x477df2
mov esi, dword [esi]
xor ecx, edi
xchg ecx, ebx
mov ebx, edi
xor ebx, edi
mov ebx, ecx
sub ebx, edi
or edx, edi
xor edx, ebx
xor edx, 0xfc37e46
mov edx, ecx
xor ebx, ecx
xor edx, ecx
jmp 0x477efc
add esi, dword [esp + 0x98]
add ebx, edi
or ebx, 0xfd4ba85
or ebx, edi
neg ecx
inc edi
add edx, 0xfd62577
sub edi, edx
xor ecx, ebx
and edx, edi
xor ecx, edi
and edi, edx
add ecx, ebx
inc ecx
and edx, ebx
jmp 0x476472
mov eax, 2
add ecx, edi
inc edx
shr ebx, 7
sub edi, ecx
sub ecx, edi
or edx, ecx
dec ecx
xor edi, 0xfe4dec5
mov edx, 0xfe51a0a
and edi, ebx
inc edi
rol edx, 8
jmp 0x477011
mov dword [esp + 0xc], eax
not ecx
rol ecx, 0x1e
sub edx, 0xfeb2030
bswap edi
xchg ecx, ebx
jmp 0x478078
sub dword [esp + 0x108], 8
and edx, edi
inc edi
ror edi, 0x16
and edx, edi
and ebx, 0xff5428d
neg ecx
shr ebx, 1
and edi, edx
jmp 0x4781f2
mov esi, dword [esp + 0x108]
mov edx, ecx
sub ecx, edx
shl ebx, 0x13
xchg edx, edi
ror ebx, 0x18
inc edx
xor ecx, edi
and edx, ebx
or edx, 0x1012d6f2
ror ecx, 0x17
jmp 0x477d00
add esp, 0x15c
sub ebx, edi
and ebx, 0x1013a673
or edx, edi
or edx, edi
xchg edi, ecx
or ebx, 0x1014a704
xchg ecx, edi
mov edi, ebx
shl ebx, 0x1c
add edi, 0x10159b6d
sub ecx, edi
jmp 0x478410
mov dword [esp + 0x108], esi
dec ecx
or ebx, ecx
xor edi, 0x102545c1
mov edi, ecx
xor edi, edx
and ecx, 0x1025fb0f
xor ecx, ebx
or ebx, edi
and edx, ecx
xchg edx, edi
xchg ebx, edx
or edi, 0x10277a3b
mov ebx, ecx
add ecx, ebx
ror ecx, 0x1b
jmp 0x478393
mov esi, dword [esp + 0x134]
xchg edx, ecx
or edx, ebx
neg edi
mov ebx, ecx
and ebx, edi
inc edx
xor ebx, edx
or edx, edi
shr edx, 0x1a
jmp 0x476aef
ret
mov dword [esp + 0x134], 0
bswap ecx
sub ebx, edi
xor ebx, 0x10784883
xchg edi, ebx
xor edx, 0x1079207a
sub ecx, edx
add edi, 0x107a1289
xchg edi, ebx
dec ebx
jmp 0x478b41
mov dword [esp + 0x98], 0
xor edx, 0x111c59e9
xor edi, 0x111cd76a
or ebx, edx
mov edx, ebx
xor edx, 0x111e7455
jmp 0x477061
sub esp, 0x15c
mov edx, 0x1143f625
xor ebx, edx
or ebx, ecx
add ebx, 0x1144afbf
xor ecx, 0x1144ee44
sub edx, ebx
sub edi, ebx
xchg edx, ecx
xchg edx, edi
add edx, ebx
sub ecx, ebx
jmp 0x478db5
mov esi, dword [esi]
or edx, ecx
mov ebx, edi
ror ebx, 0x16
bswap ebx
and edi, 0x1147b849
xchg edi, ecx
add ebx, edi
neg ecx
jmp 0x4770ee
mov dword [esp + 0xc], 0
xor edx, ebx
rol edx, 0x1b
or edx, ecx
add edx, ebx
and ebx, edi
add ecx, ebx
sub ecx, ebx
xchg ebx, ecx
add ecx, ebx
jmp 0x478654