Function at 0x5a38a6
Capabilities:
Encrypt data using chaskey

Disassembly:
xor eax, eax
xor esi, ebx
rol ebx, 0x17
add ebx, esi
mov edi, ebx
xor ebx, esi
sub esi, ebx
shl ebx, 3
or esi, ebx
and edi, esi
xor esi, 0x22981a99
inc edx
xchg edx, ebx
or edx, esi
jmp 0x5a25e0
mov ecx, dword [esp + 0x4c]
add ebx, edx
sub ebx, esi
bswap edx
rol esi, 0xf
or ebx, edi
and edi, ebx
sub edx, esi
xor edi, 0x22a51b27
and edi, 0x22a58c29
jmp 0x5a39a0
add dword [esp + 0x4c], eax
sub edi, 0x22a62137
or ebx, esi
xchg ebx, edx
add esi, ebx
dec edi
xor ebx, edx
and ebx, 0x22b0dae6
add edx, ebx
sub esi, edx
xor esi, edx
and esi, 0x22b2e700
not esi
inc ebx
add esi, edi
sub ebx, 0x22b4c27a
jmp 0x5a2fc5
mov ecx, dword [ecx]
inc edx
and edi, esi
and ebx, edx
or edx, esi
shl edx, 0x1e
sub esi, edi
xor edi, ebx
add edi, esi
dec edx
xor esi, edx
and edi, 0x22c4220d
or edx, esi
bswap edx
bswap esi
xchg edx, edi
jmp 0x5a2f84
add ecx, 0x18
xor esi, edi
xchg edx, ebx
or edx, esi
add esi, ebx
sub edi, ebx
mov edi, ebx
or edi, esi
ror esi, 0x1c
xchg esi, ebx
mov ebx, esi
add edx, 0x22d0f6f7
jmp 0x5a1dde
add ecx, dword [esp + 0xb8]
ror edi, 0x1b
add edi, esi
inc edx
shr edx, 0xa
add ebx, edi
or esi, edi
or esi, ebx
shl edx, 0xc
and edi, edx
inc esi
bswap esi
xor esi, edi
mov edx, ebx
neg edx
xor ebx, edi
jmp 0x5a2ba4
mov ecx, 0x30
sub edi, 0x22fca740
bswap edx
not esi
add edi, ebx
or edx, ebx
jmp 0x5a19c2
add ecx, dword [esp + 0xb8]
and edi, esi
xor edx, ebx
or edi, ebx
xor edx, edi
shl esi, 0x1e
mov ebx, 0x230c0f06
sub ebx, esi
add ebx, edi
jmp 0x5a287b
mov dword [esp + 0xb8], ecx
or esi, edx
or edi, edx
sub ebx, edi
mov edx, esi
rol ebx, 2
xor esi, 0x232cd3a5
add ebx, esi
inc ebx
or edi, 0x232d8b9d
rol edi, 2
rol edx, 2
jmp 0x5a351f
add ecx, 0xc
sub edx, esi
add esi, edi
mov ebx, esi
xor esi, ebx
and ebx, 0x2342e592
mov edi, edx
add esi, edx
bswap edi
jmp 0x5a16a7
push ecx
sub edx, 0x2390c6a9
or ebx, 0x239136b2
add edi, ebx
shl edx, 0xb
shl esi, 0xf
inc edi
or ebx, esi
sub edx, esi
dec edx
jmp 0x5a0c92
cmp eax, dword [esp + 0x34]
jmp 0x5a16fc
inc ecx
inc esi
or edx, 0x23f32f03
not edi
bswap esi
xor ebx, edx
sub esi, edx
rol esi, 0xc
and ebx, esi
or ebx, esi
rol ebx, 2
add edx, ebx
add edi, ebx
mov edx, esi
sub edx, 0x23ffe806
or edi, 0x24005678
xor esi, 0x2400c33d
jmp 0x5a30dd
mov ecx, dword [ecx]
xor edx, 0x2412b676
dec esi
shr ebx, 0x17
xchg edi, esi
xchg ebx, esi
xor ebx, 0x241508f8
add edx, ebx
sub esi, edx
sub ebx, 0x241b1d47
sub esi, 0x241bad17
xchg esi, edx
xor esi, edi
xor edi, esi
neg esi
xchg edi, ebx
xor edi, 0x241e3f8f
jmp 0x5a34eb
mov ecx, dword [esp + 0x4c]
ror esi, 0x1b
mov ebx, 0x242060c1
add esi, edx
xchg ebx, edx
xchg edi, edx
not esi
xchg ebx, edx
ror edx, 1
jmp 0x5a0dc8
mov ecx, dword [ecx]
or esi, ebx
sub edi, ebx
mov edx, ebx
add edx, 0x24760038
add esi, edx
or esi, edi
or edx, ebx
xchg edi, esi
inc edx
add edx, ebx
mov edi, ebx
neg esi
xor edi, edx
jmp 0x5a0df0
mov dword [esp + 0x4c], ecx
shl ebx, 0x12
xchg edx, edi
or ebx, edi
add edx, 0x24904a61
mov edi, edx
jmp 0x5a272f
mov ecx, dword [ecx]
sub esi, edx
sub edx, ebx
sub ebx, 0x24a30900
mov esi, ebx
and edx, ebx
and ebx, edi
jmp 0x5a18b1
mov ecx, dword [esp + 0x58]
and esi, ebx
shr ebx, 6
dec ebx
jmp 0x5a1953
jne 0x5a230e
or esi, ebx
and esi, edx
and ebx, esi
add edx, ebx
xor edx, esi
dec esi
not esi
or edx, edi
neg esi
jmp 0x5a17f7
mov dword [esp + 0x94], eax
or ebx, edi
and edx, edi
dec esi
sub ebx, 0x24bfc40e
shl ebx, 7
or edi, esi
or esi, ebx
shl edi, 0xd
neg edx
jmp 0x5a2c5f
mov dword [esp + 0x58], ecx
xor edi, ebx
xchg ebx, edi
or edi, 0x24c1dd70
mov ebx, 0x24c21c63
or esi, ebx
xor edx, esi
or edx, 0x24c2db74
jmp 0x5a37d3
add dword [esp + 0x4c], 4
inc edx
xor esi, 0x24c36bf5
mov edi, esi
add edi, 0x24c3ed5e
jmp 0x5a143f
add ecx, dword [esp + 0xb8]
xchg edx, ebx
sub edi, edx
xor edi, 0x24c68063
or edi, ebx
or esi, edx
or edx, edi
mov ebx, esi
jmp 0x5a32aa
mov ecx, dword [ecx]
xchg edx, edi
rol ebx, 2
xchg esi, edi
or edi, ebx
or ebx, 0x24d7510a
add ebx, edi
xchg ebx, edi
xor esi, edx
xchg esi, edx
jmp 0x5a152d
mov ecx, dword [ecx]
add esi, edi
neg edx
xor ebx, edx
or ebx, edi
neg edx
or edi, edx
sub esi, 0x24eedcb5
sub edx, edi
ror esi, 4
sub esi, edi
or edi, 0x24f0a282
xchg esi, edx
jmp 0x5a2df1
mov dword [esp + 0x94], 0
dec ebx
rol edx, 0x15
add esi, edi
or edx, edi
sub edx, esi
mov edi, esi
xor edx, edi
rol esi, 0x11
dec edx
jmp 0x5a1a24
mov ecx, dword fs:[ecx]
xchg edx, esi
mov ebx, 0x24fa8e80
and ebx, 0x24fb2e5d
inc edi
xor ebx, edx
add edx, ebx
xchg ebx, edx
xor ebx, edi
mov ebx, esi
mov esi, edx
jmp 0x5a2b97
mov dword [esp + 0x58], 0
xor esi, edx
and esi, edx
dec edx
add ebx, esi
and edx, 0x250858ba
mov ebx, esi
or esi, 0x25097451
xchg ebx, esi
jmp 0x5a1b66
mov ecx, dword [ecx]
mov edx, esi
mov ebx, edi
rol edx, 0x14
or edx, 0x251945c7
sub ebx, esi
shr edi, 0xa
xchg ebx, edx
add edi, esi
mov edi, edx
and ebx, esi
xor esi, edi
sub esi, ebx
jmp 0x5a0e4c
mov dword [esp + 0xb8], 0
and edi, ebx
mov edi, 0x2524c84d
or ebx, esi
rol edx, 3
sub esi, 0x25277315
xchg edi, edx
xor edi, edx
mov esi, ebx
xor esi, edi
xor esi, ebx
xor ebx, 0x252a2967
jmp 0x5a2be0
mov ecx, dword [ecx]
add ebx, esi
mov esi, edx
mov esi, ebx
or ebx, esi
xor edi, edx
add edi, edx
xor edi, esi
mov edi, edx
sub edi, esi
jmp 0x5a0f90
mov ecx, dword [esp + 0x58]
inc esi
xor esi, 0x2646a517
mov esi, 0x264710c2
and esi, 0x264779c4
or ebx, esi
xchg esi, edx
or esi, ebx
and edi, edx
or edi, esi
mov ebx, edx
add edi, edx
sub esi, ebx
jmp 0x5a2526
mov ecx, dword [esp + 0x4c]
mov esi, ebx
xor edi, 0x26611fff
or ebx, esi
and edx, esi
and edx, esi
jmp 0x5a2e57
mov ecx, dword [esp + 0xb8]
and edx, esi
shr ebx, 0x16
mov ebx, 0x266cfd01
not esi
xor edi, 0x266d7e37
bswap edi
jmp 0x5a22a4
add ecx, dword [esp + 0x4c]
mov esi, 0x26aeb727
xchg edi, edx
add esi, edi
mov edx, esi
jmp 0x5a2605
inc dword [esp + 0x94]
xor edi, 0x26d2a75d
xchg edx, edi
shr esi, 1
add edi, ebx
add edi, esi
add ebx, edx
and edi, esi
add ebx, edx
xor edx, 0x26d6e8b8
add edi, ebx
add ebx, esi
jmp 0x5a27cb
add ecx, dword [esp + 0x94]
mov edx, ebx
shl esi, 1
nop
xchg edi, edx
xchg edi, edx
or edx, ebx
or ebx, edx
shr edx, 0x11
bswap esi
or edx, esi
sub edx, 0x276151ef
jmp 0x5a33e3
xor al, byte [ecx]
and edx, esi
xchg edi, edx
inc esi
or esi, 0x27787df2
xchg ebx, edx
not esi
shr edx, 0xd
add esi, ebx
add edx, edi
or ebx, 0x277ba6cf
mov edx, esi
jmp 0x5a3bf9
mov ecx, dword [ecx]
xchg ebx, edi
and edx, ebx
sub edx, esi
add esi, ebx
xor ebx, edi
or edi, esi
and edx, esi
neg edi
or edx, ebx
dec edi
mov esi, ebx
sub edi, ebx
ror ebx, 0x19
jmp 0x5a1609
mov ecx, dword [esp + 0xb8]
mov esi, ebx
xor edx, edi
or edi, edx
or edx, edi
or esi, ebx
mov edi, ebx
add edx, 0x27e6c1ef
shl edi, 8
and edx, 0x27fa22a2
add edx, esi
add edx, 0x27fb1781
xchg esi, edx
or ebx, edi
mov edx, 0x27fc7f3a
jmp 0x5a29c1
add dword [esp + 0x58], 4
xor ebx, 0x285f0778
xor edx, ebx
dec edi
sub edx, 0x2860cab4
rol edi, 7
add esi, edx
shr edx, 5
and edi, ebx
xchg esi, edi
jmp 0x5a16be
mov dword [esp + 0x58], ecx
xchg esi, ebx
inc ebx
sub ebx, edx
and edi, esi
xchg edx, esi
add edx, ebx
mov esi, edi
add edx, edi
mov edi, esi
jmp 0x5a230e
add dword [esp + 0x4c], ecx
ror edi, 3
or esi, ebx
xor edx, 0x28dfed08
xor edx, 0x28e06b08
neg esi
or esi, edx
or esi, ebx
xor edi, 0x28e26229
add ebx, edi
or ebx, esi
add edx, esi
mov edi, esi
add edi, ebx
jmp 0x5a2b3f
add dword [esp + 0x4c], 0x20
bswap esi
mov edx, edi
sub edx, ebx
mov ebx, 0x2939be74
sub esi, 0x293a4498
mov esi, ebx
mov edi, ebx
ror edi, 0xe
neg edx
jmp 0x5a20ca
add ecx, 0xc
and ebx, edi
bswap ebx
dec esi
jmp 0x5a2d1f
add esp, 0xc8
add ebx, 0x2949e2a1
not ebx
add edi, edx
bswap edi
sub esi, edi
rol edi, 9
and edx, esi
add esi, ebx
xor ebx, esi
neg ebx
xor edi, 0x29647c84
add ebx, esi
sub esi, 0x296591ba
and ebx, 0x296629b6
xor edx, ebx
add edi, ebx
jmp 0x5a3641
mov dword [esp + 0x4c], 0
or edi, edx
or edi, edx
ror esi, 0x11
xchg edi, ebx
jmp 0x5a2c30
mov dword [esp + 0x34], ecx
neg edi
bswap ebx
sub ebx, edx
shr esi, 0x13
sub ebx, edi
mov edx, 0x2977ab4b
xor ebx, esi
inc edx
rol edi, 3
bswap edx
or edx, edi
and edi, 0x297b0869
rol esi, 0x1c
jmp 0x5a0e77
sub dword [esp + 0x4c], 8
mov edx, ebx
add esi, 0x297c85bd
shr edx, 0x13
sub esi, edi
xor edx, 0x297e2d10
add ebx, 0x297eaa14
xchg esi, edx
and esi, edx
xchg edi, ebx
and ebx, edx
mov edi, edx
add ebx, esi
jmp 0x5a0d1d
mov ecx, dword [ecx]
and edx, esi
and esi, 0x29a996e9
or edi, esi
dec esi
mov edi, esi
jmp 0x5a103f
mul ecx
mov esi, edi
and esi, edi
and esi, edx
or esi, edi
and esi, edx
or edi, edx
xchg ebx, esi
shr edx, 0x14
neg edi
mov edx, 0x2a36972d
jmp 0x5a0d44
add ecx, dword [esp + 0xb8]
mov edx, ebx
or ebx, edi
sub ebx, edi
add edi, edx
add esi, edi
dec ebx
not edx
mov edx, 0x2a3a7b54
and edi, 0x2a3ae553
sub edi, 0x2a3b5448
jmp 0x5a1231
pop ecx
xchg edx, esi
xor esi, ebx
or edx, ebx
and ebx, edx
xor ebx, 0x2a47d055
add esi, edx
and edx, esi
shr ebx, 8
shl ebx, 0xe
add ebx, 0x2a4a992f
sub esi, edi
jmp 0x5a1291
mov ecx, dword [ecx]
bswap esi
xchg edi, edx
ror esi, 0x1e
sub esi, edi
jmp 0x5a0e8f
add ecx, dword [esp + 0xb8]
xor edx, ebx
mov edx, 0x2a8c0f63
rol edx, 0xb
xchg edi, esi
xor edx, esi
neg esi
neg edx
and esi, 0x2a8ee047
jmp 0x5a17d2
mov ecx, dword [esp + 0x4c]
ror esi, 3
ror edx, 0x1d
bswap edx
sub ebx, esi
inc edi
and edi, edx
xor ebx, edi
jmp 0x5a1ab9
mov ecx, dword [esp + 0x94]
xor edx, esi
bswap esi
or edx, edi
add ebx, edx
bswap edx
add edi, ebx
shl esi, 0x10
shl edi, 0xc
and edx, 0x2aa4cdcb
add esi, edi
jmp 0x5a30b3
mul ecx
and ebx, esi
ror edx, 0xc
ror esi, 0x18
shr edx, 0x1d
mov edx, 0x2adc601d
xor edx, 0x2add0b91
or edx, ebx
rol ebx, 0x1d
xor esi, 0x2ade75ef
add edi, ebx
jmp 0x5a17af
cmp byte [ecx], 0
jmp 0x5a3950
mov dword [esp + 0x4c], ecx
mov edi, edx
shl ebx, 1
and esi, ebx
add esi, edi
neg ebx
xor edx, 0x2b731cee
and esi, ebx
shr edx, 0x11
or edx, esi
jmp 0x5a1fa6
mov eax, 4
or edi, 0x2bce9511
and edx, esi
rol edx, 0xa
sub ebx, edi
neg edx
or esi, 0x2bd0f3ba
or esi, ebx
mov edx, esi
or esi, 0x2bd25480
jmp 0x5a34b0
movzx ecx, word [ecx]
add edx, 0x2be830cc
sub edx, 0x2be8a452
xchg ebx, edi
and edi, 0x2be98f56
sub ebx, esi
and edi, esi
shr esi, 0x15
and ebx, 0x2beb6ad2
sub edx, 0x2bebdf3b
and edx, ebx
mov ebx, esi
mov edi, 0x2bed4510
rol esi, 5
jmp 0x5a2dd2
mov dword [esp + 0x4c], ecx
sub ebx, edx
shr esi, 0x16
shl esi, 0x10
mov esi, edx
or edi, ebx
sub ebx, 0x2c0018f9
mov edx, 0x2c008b9f
add edi, esi
shl ebx, 0x10
bswap esi
add esi, edx
add ebx, 0x2c030ef6
add esi, edi
jmp 0x5a3593
mov ecx, dword [esp + 0xb8]
and edi, 0x2c0411b2
shl ebx, 0x14
xchg esi, edx
xchg esi, edx
xor edi, esi
shr edi, 0x1e
mov edi, esi
jmp 0x5a353f
add ecx, 0x3c
mov ebx, 0x2c14ae36
add esi, 0x2c153e0d
xor ebx, edi
jmp 0x5a13f6
add dword [esp + 0x4c], 0x78
xor ebx, edx
xchg ebx, esi
xchg esi, edi
ror esi, 4
mov ebx, edi
and esi, ebx
sub esi, edi
or ebx, 0x2c2af004
or esi, edx
xchg edi, ebx
add ebx, edi
and esi, 0x2c2ca1b4
sub esi, edi
xchg esi, edx
mov edx, esi
jmp 0x5a2158
ret
mov eax, 2
inc edi
xor edx, esi
add ebx, edx
or esi, edi
or ebx, esi
bswap ebx
rol esi, 2
add edi, 0x2d03c2e4
sub edx, 0x2d0447b5
neg ebx
mov edi, esi
nop
jmp 0x5a3005
sub esp, 0xc8
dec ebx
mov edx, esi
sub esi, ebx
mov edi, edx
mov esi, 0x2d37f51f
jmp 0x5a19a0
jne 0x5a25e0
dec ebx
and esi, 0x2d590c6c
sub ebx, edi
xor edx, esi
mov edx, ebx
xchg esi, edi
sub ebx, 0x2d5b5217
mov esi, 0x2d5bd202
jmp 0x5a2e1b
mov ecx, dword [ecx]
xor ebx, 0x2d6164c0
mov edx, 0x2d6211cd
mov edx, ebx
not edx
add ebx, edx
sub ebx, edx
jmp 0x5a1829
rol eax, 8
xchg esi, edx
or edx, esi
sub ebx, esi
xor edi, edx
add esi, edi
neg esi
sub esi, edi
neg esi
mov ebx, esi
add esi, edi
jmp 0x5a138b