Function at 0x528b53
Capabilities:
Encrypt data using chaskey

Disassembly:
mov edi, dword [esp + 0x124]
xchg ecx, esi
xchg ebx, ecx
shl ebx, 3
rol ebx, 0x15
neg esi
or ecx, edx
rol esi, 6
and ebx, ecx
add esi, 0xfa28be78
xchg esi, ebx
jmp 0x527f12
mov edi, dword [edi]
rol edx, 0x15
sub ebx, 0xfa4059bd
inc ebx
shr ebx, 2
bswap edx
mov ebx, 0xfa416343
jmp 0x52908a
add esp, 0x140
shl ebx, 0x16
mov edx, 0xfa4487a2
neg edx
add esi, ebx
xor ebx, 0xfa454f5a
jmp 0x528399
mov edi, dword [esp + 0x20]
xchg ebx, esi
sub ebx, edx
or edx, ebx
jmp 0x528449
mul edi
sub edx, esi
add ebx, edx
add esi, edx
mov edx, 0xfa66d177
or esi, ebx
or edx, ecx
add esi, 0xfa679410
sub edx, ebx
bswap ebx
and esi, ecx
xor esi, ebx
xor ebx, 0xfa68c1f6
jmp 0x527ff2
mov dword [esp + 0x124], eax
shr ebx, 0x1a
sub ebx, ecx
mov ecx, esi
mov ecx, 0xfa7780a3
or esi, ebx
rol ebx, 0x1b
rol esi, 0x17
and esi, edx
sub ebx, edx
xor esi, 0xfa79af8c
nop
jmp 0x52965d
add edi, 0x3c
xor edx, ebx
add ecx, esi
not esi
and esi, ecx
not ecx
not ebx
mov ebx, edx
or ebx, esi
mov edx, ebx
shl esi, 0x14
and ebx, edx
add ebx, edx
inc ecx
or ecx, 0xfa9bdf5b
mov edx, ebx
sub esi, edx
jmp 0x52a77d
add edi, dword [esp + 0x20]
mov ecx, edx
neg esi
mov esi, ecx
shl ecx, 0x19
add ebx, ecx
add ecx, edx
sub esi, edx
xor ecx, esi
shl ecx, 0x10
jmp 0x52a07c
inc dword [esp + 0x124]
and esi, 0xfab32a01
and esi, ecx
sub ebx, edx
or edx, ebx
xchg edx, esi
sub ecx, edx
mov ecx, edx
add ecx, edx
or esi, edx
jmp 0x52ad9e
ret
add dword [esp + 0xd4], edi
inc ebx
or edx, 0xfc9732f0
or esi, ebx
xchg edx, esi
or edx, ecx
xor ecx, ebx
and edx, ebx
mov ebx, edx
shl ebx, 0x1b
inc ecx
sub ecx, edx
xor edx, ecx
bswap ebx
shl edx, 6
jmp 0x52aaac
inc edi
xchg ebx, esi
add edx, 0xfc9a9e3f
xchg esi, ebx
inc ebx
add edx, ecx
or edx, esi
add ecx, 0xfc9bd948
ror ebx, 0x1b
mov ebx, ecx
jmp 0x52a1f5
mov eax, 2
add ecx, 0xfcb25b71
ror ebx, 0xf
bswap esi
add ebx, edx
inc ecx
shr edx, 1
or edx, 0xfcb3bcf5
xchg ebx, edx
inc ebx
and esi, 0xfcb4641c
jmp 0x527bd3
add dword [esp + 0xd4], eax
and edx, ebx
add ebx, ecx
mov edx, 0xfccc1f21
shr ebx, 0xe
or esi, edx
add esi, 0xfcccd4db
add ebx, 0xfccd0cea
add esi, ecx
xchg ebx, esi
or esi, ecx
add edx, ebx
shr ecx, 3
jmp 0x52ab00
add dword [esp + 0xd4], 4
sub esi, 0xfcd488af
and ecx, 0xfcd4c5b4
dec esi
rol ecx, 0x1e
mov edx, esi
or esi, 0xfcd5c66e
add esi, ecx
jmp 0x52ac7f
add edi, 0xc
bswap esi
add edx, esi
xchg ebx, ecx
jmp 0x52a3d3
mov edi, dword [edi]
xchg edx, ecx
and ebx, edx
mov ebx, edx
xor ecx, edx
add edx, esi
neg ebx
add ecx, 0xfced4538
neg esi
xchg ebx, edx
add esi, ebx
rol esi, 0x15
dec ecx
nop
jmp 0x52a2a4
mov edi, dword [esp + 0xd4]
add ebx, 0xfcfbb9d4
inc edx
add edx, 0xfcfc2a0f
or ecx, ebx
bswap ebx
ror ecx, 3
mov ebx, edx
shl esi, 1
sub esi, ebx
or ebx, esi
mov ecx, esi
jmp 0x529ed8
add dword [esp + 0xd4], 0x78
ror ecx, 0x19
add ebx, edx
inc edx
mov ebx, 0xfd07e7ba
shl ebx, 8
mov ecx, esi
rol ecx, 0x11
sub edx, ebx
or esi, 0xfd091a5b
xchg ebx, esi
jmp 0x529c0f
sub esp, 0x140
not esi
inc ebx
xchg edx, ebx
or ebx, ecx
mov edx, esi
inc ebx
sub esi, ebx
and esi, ebx
or ebx, ecx
sub edx, ebx
mov esi, ebx
mov ebx, 0xfd183e8b
jmp 0x528c33
jne 0x52834f
mov esi, 0xfd19b601
sub esi, ebx
sub ebx, ecx
shr ecx, 0xd
nop
or ecx, edx
not esi
sub ebx, ecx
mov esi, ecx
sub esi, ebx
add ecx, esi
sub edx, ebx
xor esi, 0xfd1c93f7
inc ecx
xchg ebx, ecx
xchg edx, ebx
jmp 0x5287eb
mov dword [esp + 0x124], 0
sub ecx, esi
and ecx, ebx
sub edx, 0xfd26207b
xchg ebx, edx
jmp 0x5297b7
mov edi, dword [edi]
add ebx, ecx
add edx, ebx
shl ebx, 0xf
or ebx, edx
inc edx
sub ebx, edx
dec ebx
shr edx, 0x1a
sub esi, edx
shl ebx, 0xf
or ebx, edx
bswap ebx
mov ecx, esi
sub esi, 0xfd408f22
xor edx, ebx
rol ebx, 0x13
jmp 0x527d03
mov edi, dword [esp + 0x20]
sub esi, edx
bswap esi
xor edx, 0xfd48cfa6
add ebx, edx
add ebx, 0xfd49452f
xor ecx, 0xfd498246
or esi, ecx
jmp 0x5281fb
add edi, dword [esp + 0x124]
sub edx, ecx
xor ecx, 0xfd51bcd5
or ecx, esi
mov esi, 0xfd5234f6
or ebx, edx
and ebx, 0xfd52bb37
ror esi, 0xd
xor ecx, 0xfd533688
xor ebx, esi
mov edx, esi
jmp 0x52a6fb
add edi, 0x18
sub ebx, esi
shl edx, 0x1a
and ebx, ecx
neg esi
sub ecx, edx
not ecx
xchg ecx, ebx
sub edx, 0xfd55b0b6
dec ecx
jmp 0x52a425
mov edi, dword [esp + 0x110]
mov ecx, esi
and edx, esi
and ebx, esi
xor esi, edx
xchg esi, ebx
xor ecx, edx
xchg edx, esi
jmp 0x528e7a
mov edi, dword [edi]
mov ecx, 0xfd7b1754
neg edx
xor esi, edx
or edx, ebx
xor ebx, edx
xor ecx, ebx
shl ebx, 0x15
or ebx, 0xfd7ccece
sub ecx, esi
xor edx, esi
add esi, ecx
add edx, 0xfd7dbc21
jmp 0x528eaa
mov edi, dword [esp + 0xd4]
and esi, ecx
sub ecx, 0xfd7fa4c3
dec edx
add edx, 0xfd801fea
or ecx, esi
add ecx, 0xfd80a61f
xor edx, ecx
jmp 0x528944
mov edi, dword [edi]
xor ebx, ecx
ror ecx, 1
and edx, ebx
mov edx, 0xfda45fd4
mov ecx, 0xfda49d05
mov esi, edx
xor ebx, edx
shl edx, 3
not esi
or esi, edx
xor ebx, 0xfda61f4a
jmp 0x52a836
mov dword [esp + 0xd4], edi
or esi, edx
or ecx, esi
sub edx, ebx
and ecx, esi
xor ebx, edx
xchg edx, ecx
rol ecx, 8
neg ecx
or edx, ebx
xchg esi, ecx
or ecx, ebx
xchg ecx, esi
and ecx, esi
jmp 0x528f1f
mov edi, dword [edi]
xor ecx, edx
add edx, ebx
and edx, ebx
and esi, ebx
and ebx, ecx
xor edx, 0xfdb7ed24
add ecx, 0xfdb82b74
jmp 0x52abe2
mov dword [esp + 0x20], 0
mov edx, ebx
rol esi, 5
mov edx, esi
and ecx, 0xfdb932a9
xor ecx, esi
neg ecx
sub esi, ecx
jmp 0x529dae
add edi, dword [esp + 0xd4]
nop
and ecx, edx
xor ebx, esi
xchg ecx, esi
sub ebx, edx
add edx, esi
add ebx, edx
add esi, edx
and ecx, ebx
neg ecx
nop
jmp 0x52aa8a
mul edi
sub ebx, ecx
xor esi, edx
xor esi, ebx
add esi, edx
add ebx, ecx
sub ebx, edx
sub esi, ebx
xor edx, 0xfdcb21da
inc ebx
jmp 0x52876b
mov dword [esp + 0x20], edi
add ecx, ebx
xor ebx, esi
neg ebx
xchg ecx, esi
mov ebx, edx
and ecx, edx
and esi, edx
add ecx, edx
jmp 0x528df2
xor eax, eax
add esi, edx
and edx, esi
or esi, edx
mov ebx, esi
add esi, edx
sub esi, ecx
sub edx, ebx
add edx, ecx
sub edx, 0xfdd16092
ror esi, 0xb
mov ecx, 0xfdd1dd68
jmp 0x52ac9a
sub dword [esp + 0xd4], 8
add edx, 0xfdec5055
xchg ecx, esi
neg ebx
and esi, 0xfded0b5a
and edx, 0xfded4a83
mov edx, esi
xchg ecx, esi
and ebx, edx
mov esi, 0xfdee4c0d
and ebx, esi
xchg esi, edx
neg esi
bswap edx
jmp 0x5290ce
mov dword [esp + 0x110], 0
add esi, 0xfe032eeb
or ebx, edx
and edx, esi
xor esi, 0xfe03f5b8
ror esi, 5
mov ecx, edx
xor esi, ecx
or ecx, 0xfe04ea19
jmp 0x5293bd
mov dword [esp + 0x110], edi
inc esi
or ecx, ebx
xchg edx, ebx
sub ecx, 0xfe221fd7
bswap ecx
and ecx, ebx
xchg ecx, ebx
sub ebx, 0xfe232720
jmp 0x5285bb
mov dword [esp + 0x138], edi
and esi, 0xfe4eb05e
bswap ebx
dec esi
and ebx, ecx
sub ecx, esi
or ebx, edx
neg ebx
mov esi, ecx
xchg ebx, edx
jmp 0x529e20
mov edi, dword [esp + 0x20]
or ecx, edx
bswap edx
add ecx, 0xfe514137
shr edx, 0x18
xchg ecx, ebx
jmp 0x5293e0
mov edi, dword fs:[edi]
and ebx, esi
shl ebx, 1
dec ecx
ror ecx, 0x15
add esi, 0xfe6081bf
or ecx, edx
add esi, edx
or ecx, edx
sub ebx, ecx
and esi, edx
or ebx, 0xfe61c6d1
jmp 0x528853
mov dword [esp + 0xd4], 0
dec ecx
ror edx, 0x1c
rol ebx, 0x1c
dec edx
add ecx, ebx
jmp 0x529bee
mov edi, 0x30
sub ecx, 0xfe7268f7
and edx, esi
sub edx, esi
xor ecx, 0xfe732e56
dec esi
not esi
xchg edx, ecx
jmp 0x529d04
mov edi, dword [edi]
mov edx, 0xfe7fb3c9
not ebx
xchg edx, ebx
add esi, ecx
add esi, ebx
xor ecx, ebx
mov ecx, ebx
or ecx, ebx
shr ebx, 3
bswap ebx
and ebx, 0xfe82270a
mov ecx, ebx
xor edx, 0xfe82a0ef
inc ecx
sub ebx, 0xfe831d39
jmp 0x5282ec
push edi
mov ebx, ecx
xor ecx, ebx
dec esi
mov edx, esi
or ecx, ebx
or edx, ebx
xor ebx, edx
nop
bswap ecx
sub ecx, ebx
sub edx, ebx
dec ecx
inc edx
shr ecx, 3
mov ecx, 0xfe897795
or esi, ebx
jmp 0x5294d8
mov dword [esp + 0x110], edi
sub ebx, 0xfea0cc26
shr esi, 9
or esi, edx
rol ebx, 7
jmp 0x52834f
add edi, 0xc
or ecx, esi
not esi
and ecx, edx
mov ecx, esi
xchg edx, ebx
xchg esi, edx
bswap edx
inc ebx
rol edx, 0x12
or ebx, 0xfea6d32e
xchg esi, ebx
ror ebx, 4
or ecx, ebx
and esi, ecx
jmp 0x528d67
cmp byte [edi], 0
jmp 0x52a679
movzx edi, word [edi]
sub ebx, edx
and ebx, ecx
sub ebx, ecx
mov ebx, 0xfec37fb5
xchg ebx, ecx
jmp 0x5294a0
add edi, dword [esp + 0x20]
xchg esi, edx
bswap esi
shr ebx, 0xf
xor ebx, 0xfec68a12
or ebx, esi
and ecx, esi
xor edx, ecx
sub edx, ecx
xor edx, ebx
or esi, ecx
or ecx, ebx
add ebx, edx
jmp 0x5292cc
mov edi, dword [edi]
and ecx, esi
sub esi, ecx
xor esi, 0xfeda589a
sub ecx, esi
sub ecx, esi
and edx, ebx
xchg edx, esi
rol esi, 0x11
and ecx, esi
and ecx, edx
ror edx, 0x1b
jmp 0x52a0b1
mov edi, dword [edi]
sub esi, 0xfedef438
rol ecx, 0x1d
or esi, ebx
and ebx, 0xfedf9c0c
xor edx, ebx
xchg esi, ebx
sub ecx, esi
xor esi, 0xfee0880d
or esi, ebx
jmp 0x5294bc
mov dword [esp + 0xd4], edi
bswap ecx
rol ebx, 0xa
mov edx, ebx
xor edx, 0xfeee5df5
xchg ecx, edx
add ebx, esi
mov edx, ebx
sub edx, ebx
and edx, ebx
sub edx, 0xfeefb21e
sub edx, 0xfeefea5b
mov edx, 0xfef022dd
or esi, ebx
or esi, edx
xor ecx, esi
jmp 0x528a84
rol eax, 8
xchg esi, ebx
shr edx, 0xe
add esi, edx
sub ecx, 0xff03f459
add ecx, edx
add ebx, 0xff046228
shl ebx, 9
sub esi, ebx
mov ecx, edx
xor ebx, 0xff053faf
jmp 0x528475
jne 0x52ac9a
and ecx, ebx
sub ebx, edx
or ebx, 0xff05f6f5
neg ebx
mov edx, 0xff06752d
and esi, edx
mov esi, 0xff06e3e6
or edx, esi
xor edx, esi
sub esi, edx
mov ecx, edx
jmp 0x52aef8
mov dword [esp + 0xd4], edi
shr edx, 0x1d
and ebx, edx
sub ebx, esi
or esi, ecx
add ecx, esi
jmp 0x527e0d
mov eax, 4
neg esi
or ebx, esi
or ebx, 0xff0dd718
ror edx, 1
and edx, ecx
xchg edx, ebx
or ebx, esi
add edx, 0xff0efaa3
inc ebx
bswap ebx
jmp 0x52a274
mov edi, dword [edi]
ror ecx, 9
add esi, 0xff168cba
mov esi, ecx
xor edx, ebx
shl ecx, 0x19
shl esi, 0x1a
add ebx, 0xff17a0ca
add ecx, 0xff17d8fe
mov esi, ebx
or esi, edx
xchg ecx, esi
xor ecx, esi
shr ecx, 0x11
ror esi, 0x13
mov edx, 0xff19686c
jmp 0x52a50d
add edi, dword [esp + 0x20]
dec esi
or esi, ecx
and edx, 0xff21d660
and ebx, edx
xor esi, ebx
xchg edx, esi
or edx, 0xff22c00f
sub ecx, ebx
mov esi, 0xff232e14
jmp 0x529f2d
mov edi, dword [edi]
neg ecx
xor ecx, esi
mov ebx, edx
sub ecx, ebx
neg edx
shr ebx, 0xa
xchg ecx, edx
xor ecx, 0xff4c4bcb
xchg edx, ecx
xchg edx, ebx
sub edx, esi
jmp 0x52a6e4
add dword [esp + 0xd4], 0x20
sub ecx, ebx
add ecx, esi
shl esi, 6
and ebx, edx
neg ebx
xchg edx, ebx
or ecx, ebx
inc esi
xor ecx, 0xff4f40f7
rol esi, 0x11
ror edx, 7
xchg esi, ebx
or ecx, edx
xchg edx, ebx
jmp 0x528a06
mov edi, dword [esp + 0xd4]
shl edx, 9
or esi, ebx
add ebx, esi
add esi, 0xff546f12
dec edx
xor esi, ebx
or ebx, esi
xor esi, 0xff5562b6
and ebx, edx
jmp 0x5293a0
add edi, dword [esp + 0x20]
nop
mov ecx, ebx
rol edx, 4
or edx, ecx
or ecx, edx
xchg ecx, edx
or edx, ebx
add edx, ecx
xor esi, 0xff64f94f
jmp 0x527d44
mov edi, dword [esp + 0x110]
or edx, 0xff68cb46
sub ebx, ecx
sub ecx, ebx
shl edx, 0xd
jmp 0x5292a3
mov edi, dword [esp + 0xd4]
sub ebx, ecx
and ecx, ebx
xor ebx, ecx
add esi, ebx
xchg esi, ecx
or ebx, ecx
nop
or ecx, edx
jmp 0x52afd0
xor al, byte [edi]
sub ecx, edx
xchg ebx, edx
xor ecx, ebx
xchg edx, ebx
or ecx, 0xff705175
xor esi, edx
add ecx, 0xff70c058
jmp 0x52a64f
add dword [esp + 0x110], 4
mov ecx, esi
and esi, 0xff8052be
xor edx, 0xff808a8a
shl ebx, 0xb
mov edx, esi
xchg ecx, edx
inc ecx
and esi, 0xff81a01f
xchg ebx, ecx
or ebx, ecx
xchg ebx, edx
or esi, ebx
and edx, ecx
add edx, 0xff82f846
jmp 0x52ac39
cmp eax, dword [esp + 0x138]
jmp 0x528b89
pop edi
add ebx, esi
and esi, ebx
jmp 0x52ae63
add edi, dword [esp + 0x20]
xchg edx, esi
nop
rol edx, 0x1d
dec ecx
or edx, esi
and ecx, esi
mov ecx, 0xffa51243
and esi, edx
and ecx, 0xffa58aed
and ebx, ecx
bswap ebx
jmp 0x52995f
mov edi, dword [edi]
xchg ecx, esi
rol edx, 4
or ecx, ebx
xchg ecx, ebx
or esi, 0xffa746b8
shr esi, 0x11
and esi, 0xffa7bf9e
sub edx, ecx
dec ebx
or esi, ecx
jmp 0x52afa8