Function at 0x5087b6
Capabilities:
Encrypt data using chaskey

Disassembly:
mov edx, dword [esp + 0x74]
neg ebx
sub ecx, 0x1f40f63b
or ebx, esi
xchg edi, esi
xor edi, ecx
and edi, ebx
add ebx, esi
dec edi
jmp 0x509675
mov edx, dword [edx]
and esi, ebx
xor ecx, ebx
xor ecx, edi
or ebx, esi
xchg ecx, esi
sub ebx, ecx
add ecx, ebx
jmp 0x509586
mov edx, dword [edx]
xchg esi, ecx
or edi, ebx
and ebx, esi
add ecx, 0x203a6caa
xchg esi, ecx
xchg esi, edi
xchg esi, ebx
jmp 0x50840a
pop edx
sub esi, edi
sub ecx, 0x20505428
xchg esi, edi
shr edi, 1
or edi, ecx
sub ebx, ecx
and ebx, ecx
add ecx, 0x205a0fdb
or edi, 0x205bbb4b
jmp 0x5084e5
add edx, dword [esp + 0x138]
or ebx, esi
mov ecx, esi
dec edi
neg ebx
sub edi, ebx
ror ebx, 2
shr ebx, 0xe
xor edi, ecx
xchg edi, ecx
xchg ecx, edi
xor ecx, ebx
shr esi, 0x17
xor esi, ebx
dec edi
and ebx, edi
or edi, ecx
jmp 0x508516
movzx edx, word [edx]
add ebx, edi
shr ecx, 0x10
or edi, ecx
sub ebx, 0x2158a56e
not esi
mov ebx, esi
sub esi, ecx
and ebx, 0x215e3a28
sub edi, ebx
jmp 0x50831d
jne 0x509242
mov ecx, edi
neg edi
or esi, ebx
mov edi, esi
and ebx, esi
xor edi, ebx
and ebx, esi
and ecx, esi
sub edi, 0x216fc649
jmp 0x507c89
mov dword [esp + 0x110], edx
xor edi, ebx
inc esi
and esi, ecx
xor ebx, 0x2197b6be
sub ecx, esi
shl ebx, 0x16
xchg edi, esi
or esi, ebx
dec ebx
sub edi, esi
shr ebx, 1
or edi, 0x21a23430
ror ebx, 0x18
xchg ebx, esi
sub edi, 0x21a6684e
sub edi, esi
jmp 0x5079ac
mov edx, dword [edx]
and ecx, 0x2233eafc
sub ebx, edi
and esi, edi
sub ecx, ebx
sub edi, ecx
mov ebx, edi
ror ebx, 0x14
xor ecx, edi
jmp 0x50ab63
jne 0x50a833
xor esi, ecx
xor esi, ecx
sub ecx, ebx
mov ebx, esi
xchg ecx, ebx
xchg ecx, ebx
or ebx, 0x2254ebce
jmp 0x509e73
mov dword [esp + 0x110], edx
and edi, ecx
shl ecx, 0xd
and ecx, 0x2259b1a5
xchg edi, esi
xchg ebx, ecx
jmp 0x509350
sub dword [esp + 0x110], 8
shl esi, 8
neg ecx
add esi, edi
bswap ebx
add esi, ebx
sub edi, ecx
jmp 0x509e38
mul edx
add edi, 0x2299956c
xchg ecx, edi
xchg esi, ecx
mov esi, 0x229ade5c
sub ecx, 0x229b4b45
not ecx
xor edi, esi
neg esi
or edi, 0x229d1edb
mov edi, 0x229d8ade
add edi, ecx
sub ecx, edi
shl ecx, 0x1d
jmp 0x508ce2
add edx, dword [esp + 0x138]
inc esi
mov ebx, 0x22b84bd9
add esi, edi
sub ebx, edi
sub ecx, edi
inc edi
mov ebx, edi
or ecx, edi
xchg edi, ecx
or edi, ecx
jmp 0x508b63
mov dword [esp + 0x74], 0
xor ebx, ecx
or ebx, 0x22cd11a3
rol ecx, 5
bswap esi
rol edi, 0xd
sub esi, ebx
xchg edi, esi
add esi, 0x22cf9c50
or edi, ebx
xor ebx, ecx
add esi, ebx
xor ebx, esi
sub edi, ecx
or ecx, 0x22d234cb
or esi, edi
mov ecx, ebx
jmp 0x509069
cmp eax, dword [esp + 0x114]
jmp 0x508187
mov dword [esp + 0x74], edx
xor ebx, edi
shr edi, 0x10
rol ebx, 0x1f
xor edi, 0x22d95409
neg ecx
add ebx, esi
or ecx, 0x22da9a3d
add ebx, esi
xchg edi, ecx
jmp 0x508749
mov edx, dword [esp + 0x74]
bswap esi
xor ecx, 0x22dc8a32
add ecx, ebx
xor edi, esi
sub ecx, ebx
sub ebx, edi
add ebx, ecx
shr esi, 4
or edi, 0x22df8da8
xor ebx, 0x22dffac8
mov ecx, ebx
jmp 0x507c0c
xor eax, eax
or ebx, esi
mov edi, 0x231929fd
xchg edi, ebx
mov ebx, esi
sub edi, ebx
xchg edi, ecx
shl edi, 7
not ecx
shr ebx, 0xd
ror ecx, 0x1f
xor edi, ecx
ror ebx, 0x1f
jmp 0x509242
mov eax, 2
neg esi
bswap ecx
and ecx, edi
inc edi
xchg edi, ebx
xor esi, ebx
mov edi, ecx
and ebx, 0x23211b4c
shl ebx, 0x1a
sub esi, ecx
or ecx, ebx
dec edi
ror ebx, 0x14
mov edi, ecx
nop
jmp 0x508f7c
sub esp, 0x144
or edi, ebx
sub ecx, ebx
or esi, ebx
or edi, ecx
sub ebx, 0x23339d41
rol edi, 7
sub edi, ebx
mov ebx, esi
add esi, ebx
mov ecx, edi
sub esi, ebx
xchg ebx, edi
and edi, ebx
or ecx, edi
jmp 0x509a49
mov edx, dword [edx]
sub ebx, esi
neg edi
add edi, ecx
or ebx, 0x23678d07
ror edi, 0x19
xor ecx, ebx
xor esi, 0x2368d389
inc edi
xor edi, ecx
shr edi, 8
and edi, ebx
not edi
add ecx, esi
or ecx, 0x236be248
dec ebx
jmp 0x508b06
add edx, dword [esp + 0x138]
shl ecx, 0x14
sub esi, ebx
shl esi, 0x19
not ebx
shr ecx, 0x11
mov esi, edi
ror esi, 0x12
xor edi, esi
add ebx, 0x238a28c4
and ecx, ebx
jmp 0x50a9bf
mov dword [esp + 0x138], edx
xor esi, ebx
mov ebx, ecx
xor edi, esi
mov ebx, esi
jmp 0x50a1f1
mov dword [esp + 0x74], edx
not ebx
add ecx, ebx
shr edi, 0x10
dec esi
xor edi, 0x23bd6902
and esi, ecx
mov esi, ebx
add esi, 0x23bea5f6
add ecx, esi
or edi, ebx
mov edi, 0x23bffc4c
sub esi, edi
jmp 0x50a833
add edx, 0xc
dec ebx
xor ecx, esi
mov ebx, ecx
add ebx, ecx
mov ebx, esi
bswap esi
jmp 0x50ac21
add dword [esp + 0x110], eax
or ecx, esi
xchg ebx, esi
or esi, edi
dec ecx
xchg edi, ebx
rol esi, 0x10
shr ecx, 0xf
jmp 0x508e48
mov dword [esp + 0x4c], eax
add ecx, 0x23f0293d
mov ebx, esi
shr edi, 6
and esi, edi
jmp 0x5082c2
rol eax, 8
bswap ebx
mov ecx, 0x23f28330
or ecx, ebx
mov esi, edi
add ebx, edi
or ecx, edi
add ebx, 0x23f4ac3f
and ecx, 0x23f51981
sub esi, ebx
xchg esi, ecx
shr ecx, 0xc
inc ebx
jmp 0x50908e
add dword [esp + 0x110], 0x20
xor edi, ebx
add edi, ecx
jmp 0x509a06
mov edx, dword [esp + 0x110]
xor esi, ebx
shr ebx, 4
mov esi, 0x24178c12
rol esi, 0x1a
xor edi, esi
xor ecx, edi
xor edi, ebx
inc esi
neg ebx
and edi, ebx
add ecx, esi
jmp 0x5092d1
cmp byte [edx], 0
jmp 0x507f22
add dword [esp + 0x110], 0x78
sub esi, ecx
inc ebx
xor esi, 0x241c6fba
shr ebx, 5
sub edi, ecx
shr ebx, 0x17
and ecx, 0x241e3c1c
sub ecx, ebx
xchg ebx, ecx
jmp 0x509510
mov edx, dword [esp + 0x4c]
and ebx, ecx
xchg edi, ebx
shl ebx, 2
and ebx, ecx
mov edi, 0x24360336
shl ebx, 0x13
not esi
ror esi, 0x14
not ebx
jmp 0x509acc
mov dword [esp + 0x110], edx
not ebx
xor ecx, ebx
xor edi, esi
rol ebx, 0x1f
add esi, 0x243bf611
mov ecx, esi
or esi, edi
add edi, ecx
xor ecx, edi
mov ecx, ebx
jmp 0x508e76
mov dword [esp + 0x138], 0
neg edi
mov ebx, esi
neg edi
or esi, ecx
neg esi
shl edi, 0x1d
or edi, ecx
add ecx, 0x244c1d76
jmp 0x50a083
inc edx
and ebx, ecx
not edi
rol edi, 0x17
xchg esi, ebx
sub edi, esi
xor edi, ebx
bswap edi
jmp 0x508e6e
mov edx, dword [edx]
and esi, ecx
mov ebx, ecx
sub ebx, esi
dec ebx
and ecx, 0x244fe1d5
and esi, edi
mov esi, ebx
xchg esi, ecx
add esi, ebx
jmp 0x508fbf
mov edx, dword [edx]
xor edi, esi
and esi, edi
or esi, 0x2452229a
ror ebx, 0xd
inc ebx
add ecx, 0x245306f2
xchg ecx, ebx
add edi, ecx
and ecx, 0x2453e377
jmp 0x5081a4
xor al, byte [edx]
or edi, ecx
mov ebx, 0x24755a49
shl ecx, 0x15
sub ebx, ecx
sub esi, edi
jmp 0x508d16
mov edx, dword [edx]
shl esi, 0x15
rol ebx, 0xd
sub edi, esi
shr esi, 0xf
not ebx
add ecx, esi
and ebx, ecx
shr edi, 0x15
neg edi
mov ebx, edi
jmp 0x5089e1
mov edx, dword [esp + 0x138]
xor esi, edi
shr ebx, 0x12
and ecx, 0x248bc007
or ebx, edi
ror edi, 0x1e
shl ecx, 0x17
shr edi, 0x14
xor esi, edi
add ecx, 0x248d9426
jmp 0x50975c
mov edx, dword [esp + 0x138]
xor edi, ecx
xchg esi, edi
xchg edi, ebx
mov ebx, ecx
or ebx, ecx
jmp 0x50aab1
add edx, dword [esp + 0x138]
dec ecx
ror ebx, 0x14
mov ebx, ecx
or edi, ecx
jmp 0x50ad1c
add edx, 0x18
and edi, esi
xor esi, edi
xor ecx, ebx
mov ebx, 0x24c34b48
sub edi, 0x24c3978a
add esi, ecx
bswap ecx
or ebx, 0x24c47600
sub edi, ecx
nop
mov edi, ebx
or ecx, edi
nop
shr ebx, 1
jmp 0x5088f3
add edx, dword [esp + 0x4c]
and ecx, ebx
or ebx, edi
shr edi, 0x13
and esi, ecx
shr esi, 0x14
sub esi, edi
xor esi, ebx
bswap edi
dec ecx
xor ebx, ecx
jmp 0x50a1a0
add dword [esp + 0x110], edx
or ecx, esi
and edi, 0x2530cebe
mov ebx, ecx
bswap edi
xchg ebx, esi
jmp 0x508d51
mov edx, dword [esp + 0x110]
add edi, esi
and esi, 0x2565c734
or ecx, 0x256613d8
ror ebx, 0x11
shl esi, 0x13
bswap ecx
mov edi, ecx
xor esi, ebx
add edi, esi
jmp 0x507c4c
mov dword [esp + 0x4c], 0
xchg ecx, esi
shr ebx, 0x15
mov ecx, 0x256b452c
inc esi
mov ecx, 0x256bdcc7
xor edi, esi
sub ebx, 0x256c7232
shr edi, 0x17
xor edi, ecx
jmp 0x5084a7
mul edx
add edi, esi
sub ebx, esi
bswap edi
xor esi, ebx
inc edi
xchg edi, ebx
sub ecx, 0x2577b8d7
jmp 0x508cfd
add dword [esp + 0x74], 4
mov ecx, 0x258ec132
add edi, ebx
jmp 0x50853e
mov edx, dword [edx]
add esi, edi
sub ecx, 0x25978c0e
add ebx, esi
xor esi, ecx
add esi, ecx
sub ebx, esi
inc esi
mov ebx, 0x25995941
dec edi
jmp 0x50814a
mov edx, dword [esp + 0x110]
or ebx, edi
shr edi, 0xd
and ebx, 0x259aa1db
or esi, ecx
shr esi, 0x19
or esi, 0x259b95eb
jmp 0x50a5cf
mov edx, dword [esp + 0x110]
and ecx, edi
xchg ebx, esi
mov esi, edi
xchg ebx, ecx
add ebx, 0x25c00c1e
bswap edi
and edi, ecx
add ecx, esi
xor ecx, 0x25c147c0
dec esi
mov ebx, esi
mov edi, esi
jmp 0x50a0f6
add dword [esp + 0x110], 4
shl ecx, 4
xchg esi, ecx
ror ecx, 0x1a
or esi, edi
add ebx, ecx
dec ebx
sub esi, edi
not edi
inc edi
xchg ecx, ebx
not ecx
jmp 0x509c7c
add edx, dword [esp + 0x138]
inc esi
xchg esi, ebx
mov esi, ebx
xor ecx, ebx
and edi, 0x25c9f04c
xchg edi, ebx
shr esi, 5
add esi, ebx
sub ebx, edi
jmp 0x507fad
mov dword [esp + 0x110], 0
or ebx, 0x25f0526f
neg ecx
shl ecx, 0xa
add ebx, edi
add ecx, edi
shl edi, 0x1f
or edi, ecx
xor edi, esi
or ebx, ecx
jmp 0x50a78a
mov edx, dword [edx]
or edi, ebx
not ecx
xor edi, ebx
jmp 0x509ea8
mov eax, 4
mov edi, esi
inc ebx
xchg ebx, edi
nop
ror ebx, 0xf
mov esi, ecx
add ecx, ebx
or ebx, esi
not esi
xor esi, edi
xchg esi, ebx
sub esi, ebx
jmp 0x507ef0
mov edx, dword [esp + 0x138]
xor ecx, ebx
xor edi, 0x260c548c
xor esi, ecx
dec ebx
not ecx
jmp 0x50a4f7
ret
add edx, 0x3c
and ebx, edi
nop
or ecx, esi
and ecx, edi
sub edi, 0x2644ef22
add edi, ecx
rol ebx, 0x1c
mov esi, ebx
or edi, 0x2645f8a0
not ecx
or esi, ecx
xor ebx, ecx
and ebx, 0x2646f17e
mov ebx, esi
sub esi, ebx
jmp 0x5090a3
mov edx, dword [edx]
xor ebx, edi
inc ebx
inc esi
add ecx, edi
mov ebx, ecx
xor edi, 0x265509c2
sub edi, ebx
shl esi, 0x13
xor ecx, 0x2655d6bd
sub edi, 0x26561413
add esi, ebx
jmp 0x507de3
mov dword [esp + 0x114], edx
sub edi, 0x267230c2
xchg edi, esi
neg esi
mov ebx, edi
xchg edi, ebx
rol edi, 0x14
mov ebx, ecx
or edi, esi
and esi, edi
and esi, edi
jmp 0x50a890
inc dword [esp + 0x4c]
sub edi, ecx
add esi, ecx
xor ecx, ebx
sub ebx, ecx
shr ecx, 5
add edi, ecx
or edi, ebx
or edi, ecx
rol esi, 3
or ecx, ebx
and edi, ecx
and esi, 0x2680b42d
sub ebx, ecx
xchg ebx, edi
jmp 0x509be8
mov edx, 0x30
or ecx, 0x26840c9f
mov edi, ebx
sub ebx, ecx
sub esi, ecx
bswap edi
add ecx, ebx
sub ebx, edi
inc ebx
mov ebx, 0x2685fb64
and ebx, 0x268638de
jmp 0x50ab55
add esp, 0x144
or ecx, ebx
add edi, esi
mov ecx, 0x2699ad66
not esi
mov edi, esi
or ebx, edi
and edi, ebx
mov edi, esi
mov edi, esi
jmp 0x50a3d0
add edx, dword [esp + 0x110]
xchg edi, ecx
xor esi, edi
xchg ebx, esi
neg edi
shr ebx, 6
add ecx, esi
xor esi, ebx
mov ebx, ecx
or ebx, 0x26ab1131
sub esi, edi
sub edi, esi
sub edi, ecx
jmp 0x5090bf
mov edx, dword fs:[edx]
not edi
or ebx, ecx
and edi, esi
jmp 0x508bd5
mov edx, dword [edx]
or esi, ebx
shr ebx, 0x1c
or edi, ebx
xor ebx, ecx
sub edi, esi
xor ebx, 0x26b7567f
xor esi, ecx
jmp 0x5095c1
mov edx, dword [edx]
dec edi
not ecx
xor esi, edi
dec ebx
neg ecx
add esi, 0x26c537e0
mov ecx, esi
xchg ebx, edi
mov ebx, 0x26c5eaef
jmp 0x50ad05
add edx, 0xc
add esi, ecx
add esi, ebx
sub ebx, 0x26d503b2
sub esi, ebx
shl ebx, 4
jmp 0x509c5e
push edx
or ecx, ebx
sub ebx, esi
and esi, 0x26d65c8e
ror edi, 0x19
add ecx, 0x26d6dd29
xor ecx, ebx
rol edi, 0x1e
xchg edi, ebx
mov esi, ebx
dec ecx
jmp 0x508723