Function at 0x5a3539
Capabilities:
Encrypt data using chaskey

Disassembly:
mov dword [esp + 0x2c], edx
shl ebx, 0x1f
or edi, ecx
neg esi
rol edi, 0x19
shr ecx, 0x16
add esi, edi
xchg ebx, ecx
jmp 0x5a3295
mov edx, dword [edx]
add esi, edi
or ecx, edi
sub ecx, 0x4051633d
sub ecx, edi
sub edi, ebx
add esi, edi
and esi, ecx
or ebx, 0x4052c5c2
mov ebx, edi
dec edi
xchg esi, ebx
or esi, ebx
jmp 0x5a2447
mov edx, dword [edx]
or ebx, edi
dec ebx
neg ebx
mov ebx, edi
sub esi, edi
and ebx, edi
and ebx, 0x4059faea
ror ebx, 2
shl ecx, 6
nop
xchg ecx, ebx
sub esi, ebx
sub ecx, edi
ror ebx, 0x1e
jmp 0x5a14aa
add edx, dword [esp + 0x74]
add edi, ebx
shr ecx, 0xd
or ebx, 0x40668175
xor edi, ebx
add ebx, edi
sub edi, esi
or ebx, ecx
or esi, ecx
not ebx
xchg ecx, ebx
jmp 0x5a2dd0
mov edx, dword [esp + 0x48]
mov edi, ebx
mov ecx, 0x406f1a0b
sub ecx, edi
xor esi, ecx
dec edi
mov ebx, esi
bswap ebx
xor ecx, esi
mov ebx, edi
xchg ebx, esi
jmp 0x5a2eef
ret
mov edx, dword [esp + 0x74]
or ecx, ebx
xchg edi, ebx
dec ebx
or ebx, ecx
add ebx, esi
xor ebx, esi
add ebx, esi
xor esi, edi
mov esi, 0x40855c48
add ecx, esi
jmp 0x5a0fe8
add edx, dword [esp + 0x60]
and esi, ecx
xor ebx, 0x40a05137
nop
xor esi, ecx
dec ecx
add ecx, edi
mov edi, esi
jmp 0x5a123b
mov edx, dword [edx]
mov esi, ecx
sub esi, 0x40a2cf82
add esi, edi
xor ecx, 0x40a345bb
rol ecx, 0x10
xor esi, 0x40a3c7e5
rol ebx, 0x1b
xor ecx, edi
xor ecx, edi
bswap ebx
jmp 0x5a31ef
mul edx
mov ecx, edi
bswap ebx
mov esi, ecx
xchg ebx, edi
and ebx, edi
mov edi, ebx
or edi, 0x4103d0ef
and ebx, ecx
add ebx, edi
xor esi, ecx
jmp 0x5a2063
mov edx, dword [edx]
xor esi, edi
and esi, ecx
xchg edi, ebx
inc ebx
mov esi, edi
neg ecx
xor ebx, ecx
xchg ebx, ecx
mov edi, 0x4108e12c
jmp 0x5a13b1
mov dword [esp + 0x60], edx
rol edi, 0x15
add ecx, 0x4129324e
mov edi, ecx
add edi, ebx
add ebx, ecx
dec esi
neg ebx
sub ecx, 0x412a9d85
inc ebx
and esi, edi
add ebx, ecx
jmp 0x5a159a
xor eax, eax
xor ebx, esi
and ecx, ebx
or esi, edi
sub ecx, 0x4136e9d0
or ebx, ecx
and ebx, ecx
jmp 0x5a1eb9
add edx, dword [esp + 0x74]
xor esi, 0x413bc679
mov ecx, esi
dec ebx
xchg ecx, esi
shl ecx, 0xa
ror ebx, 0xa
nop
sub esi, ebx
xor ecx, ebx
and esi, edi
jmp 0x5a27d9
mov edx, dword [esp + 0x60]
dec esi
add esi, ecx
and esi, ecx
sub esi, edi
or esi, 0x41415507
or edi, 0x414197ba
or ebx, edi
or ecx, esi
and ebx, 0x41424ea3
and ecx, edi
jmp 0x5a248d
mov edx, dword [esp + 0x74]
or esi, 0x414b6c7e
xor edi, ebx
shl esi, 9
and esi, edi
add esi, 0x414c7317
dec edi
mov ecx, esi
add ebx, esi
mov ecx, 0x414d668c
jmp 0x5a28d9
rol eax, 8
ror edi, 0x1b
or esi, ebx
mov edi, ebx
add ecx, esi
xor ecx, esi
ror ecx, 8
xor ebx, edi
xor esi, ebx
add ecx, edi
mov edi, ecx
ror esi, 0x17
or edi, 0x416b7050
jmp 0x5a1935
mov edx, dword [esp + 0x2c]
mov esi, 0x41711b57
and ebx, esi
rol ebx, 3
or ecx, esi
and ecx, ebx
sub ecx, esi
dec ebx
and esi, edi
jmp 0x5a3483
add edx, 0xc
and ecx, ebx
xchg ecx, ebx
sub ecx, 0x4174b7bf
and ecx, ebx
mov esi, edi
xor ebx, esi
and ecx, edi
shr esi, 0xc
xor ecx, 0x41762f74
sub esi, 0x41766e89
and edi, ecx
sub esi, ebx
jmp 0x5a2b23
add dword [esp + 0x60], 0x20
sub ecx, esi
add ecx, 0x4191320d
or ecx, esi
xor ecx, ebx
sub ecx, edi
jmp 0x5a1960
jne 0x5a1eb9
xor ecx, edi
and esi, ecx
add edi, esi
sub edi, esi
nop
add ebx, ecx
mov esi, 0x41b24b4a
mov esi, ecx
and edi, ebx
add ecx, ebx
jmp 0x5a1fd6
inc edx
and ebx, ecx
shr esi, 0x17
xor esi, 0x41c90681
or ecx, 0x41c97cda
shr edi, 0xd
mov edi, esi
shl ebx, 0x14
add ebx, esi
xor esi, ebx
or edi, 0x41ce4556
or esi, ecx
jmp 0x5a23b3
mov edx, dword [esp + 0x60]
and ecx, ebx
shl ecx, 0xc
or edi, 0x41cfe0d5
or edi, esi
xor ebx, ecx
mov ecx, edi
xor esi, edi
sub esi, ebx
neg esi
dec edi
jmp 0x5a0dd1
mov edx, dword [edx]
and ebx, edi
ror ebx, 0xc
xchg esi, edi
not edi
or esi, ebx
add edi, ecx
inc ebx
add esi, ecx
sub ebx, 0x41d556f0
sub edi, ecx
shl edi, 0x1a
add edi, ebx
sub ebx, edi
sub ebx, edi
jmp 0x5a2e8c
mov dword [esp + 0x2c], 0
xor esi, ebx
xor ecx, edi
sub esi, ecx
or ebx, esi
mov ebx, 0x41f980da
and ecx, 0x41f9fe57
or esi, edi
bswap esi
and edi, ecx
add edi, ebx
jmp 0x5a1be2
mov dword [esp + 0x74], 0
neg ebx
and esi, ebx
xor edi, ebx
shl edi, 7
and ebx, ecx
jmp 0x5a20bd
mov edx, dword [esp + 0x2c]
or edi, ecx
mov ecx, esi
add edi, ebx
xor esi, edi
add edi, ecx
and edi, ebx
and esi, 0x422eae7e
add esi, ecx
jmp 0x5a1004
sub dword [esp + 0x60], 8
mov esi, ebx
xchg ecx, edi
add ecx, esi
inc edi
jmp 0x5a14f0
mov dword [esp + 0x2c], edx
or esi, 0x424d9780
xchg edi, ecx
add esi, ecx
ror esi, 0xa
shl edi, 6
sub ebx, 0x424ec9dd
xor ebx, esi
add esi, 0x424f59e0
jmp 0x5a1d86
mov edx, dword [edx]
mov ebx, ecx
or ecx, ebx
bswap esi
xchg esi, ebx
jmp 0x5a32b8
mov eax, 2
sub esi, ecx
ror esi, 0x11
add esi, 0x426fa290
add edi, esi
mov ecx, ebx
shl edi, 0x19
add esi, ecx
add esi, 0x4271d67e
not esi
inc ecx
or esi, edi
sub edi, ecx
xchg ecx, esi
and ecx, ebx
jmp 0x5a0eb3
push edx
and ebx, edi
shl ecx, 6
or ecx, ebx
mov ecx, ebx
xchg edi, ebx
dec esi
xor edi, ebx
jmp 0x5a144c
mov dword [esp + 0x48], eax
or edi, esi
and ebx, ecx
or edi, esi
or esi, 0x42ab1a13
not ecx
sub esi, ebx
xchg ecx, esi
xor ecx, ebx
xchg ebx, esi
xor ecx, 0x42acd3cf
sub esi, edi
rol esi, 0xe
jmp 0x5a1c6c
xor al, byte [edx]
or esi, edi
shl edi, 0x1c
and esi, ebx
add ebx, 0x42b13a71
jmp 0x5a168e
mov edx, dword [esp + 0x74]
sub ebx, esi
rol ebx, 0x1d
shl esi, 0xc
and edi, ecx
mov ebx, edi
sub edi, esi
sub esi, ebx
and edi, ecx
xchg ebx, ecx
xchg edi, ecx
jmp 0x5a21b4
pop edx
bswap edi
shl ebx, 1
xchg ebx, esi
add esi, ecx
sub esi, 0x42d2255f
neg ebx
xor ebx, esi
and esi, ebx
xor edi, ebx
rol ecx, 8
or esi, ebx
or esi, 0x42d44ff0
and ecx, esi
or edi, 0x42d4ca45
and ebx, 0x42d504c7
jmp 0x5a2b3a
add dword [esp + 0x60], eax
xchg esi, ecx
xchg edi, ebx
and esi, 0x42de821e
jmp 0x5a2a52
mov dword [esp + 0x60], 0
add esi, ebx
sub esi, 0x42e65508
or esi, 0x42e7399d
sub esi, 0x42e7c76a
mov esi, ecx
mov ebx, esi
shl ebx, 1
not ecx
and esi, ebx
mov edi, 0x42ea13a3
mov edi, 0x42ea4dc1
jmp 0x5a27c4
movzx edx, word [edx]
and ecx, 0x42f19dff
and ecx, 0x42f1ea28
ror ebx, 0x11
shr edi, 0xb
ror esi, 0x19
or ecx, edi
or ecx, 0x42f3238e
sub esi, ebx
xor ebx, edi
jmp 0x5a121c
add edx, 0x3c
xchg edi, ecx
not edi
inc edi
or ecx, ebx
rol ecx, 4
xor esi, edi
or edi, esi
jmp 0x5a1984
add dword [esp + 0x60], 4
xchg esi, ecx
xchg ecx, edi
and esi, 0x430aa253
xor edi, ecx
add esi, ecx
mov esi, 0x430b5549
add esi, 0x430b9412
or ebx, esi
jmp 0x5a22bb
mov edx, dword [esp + 0x60]
add edi, esi
and esi, ebx
neg edi
neg edi
add esi, ebx
sub edi, ebx
xchg ecx, esi
mov esi, 0x431342f6
bswap ecx
jmp 0x5a274e
cmp byte [edx], 0
jmp 0x5a18a9
add edx, dword [esp + 0x74]
xchg ecx, ebx
sub ecx, ebx
and esi, ebx
neg ebx
xchg ebx, esi
xor ebx, 0x432a9a35
and ebx, edi
and edi, ecx
neg edi
xor edi, ebx
dec edi
jmp 0x5a1ca7
add edx, dword [esp + 0x74]
sub edi, ebx
rol ecx, 0x1c
rol edi, 0x1f
shl esi, 0xb
shl ebx, 0x1c
inc ebx
add edi, 0x4331ad7e
and edi, esi
ror esi, 0xb
jmp 0x5a0d33
mov edx, dword [edx]
add ecx, esi
or ebx, 0x4335025a
or ebx, esi
xchg ecx, esi
rol edi, 0xf
and ecx, edi
bswap ecx
add edi, 0x43367445
or ebx, ecx
jmp 0x5a0e72
mov edx, dword fs:[edx]
shl esi, 3
shl ecx, 0x1e
not ecx
nop
shl edi, 4
mov ebx, ecx
xor edi, 0x4354964b
xor edi, esi
xor ebx, ecx
jmp 0x5a1728
mov edx, dword [edx]
sub esi, edi
mov ecx, 0x436ad62c
rol ecx, 0x18
rol esi, 4
shr ecx, 0x1e
neg edi
and ecx, esi
xor esi, ecx
mov ecx, ebx
add esi, ebx
jmp 0x5a3008
mov edx, dword [edx]
dec ecx
bswap esi
sub esi, 0x437effc1
xchg ebx, edi
sub esi, ecx
and ebx, 0x437fb5e8
and esi, ebx
and ebx, esi
nop
jmp 0x5a23e1
mov dword [esp + 0x70], edx
xchg ebx, edi
xchg ebx, esi
shr esi, 0x19
and esi, ecx
jmp 0x5a2af5
add esp, 0xb8
xchg edi, ebx
add edi, ebx
and ebx, edi
and ebx, edi
inc edi
jmp 0x5a0ed5
add dword [esp + 0x60], edx
rol esi, 0xb
xor edi, ebx
mov ebx, edi
add esi, ecx
or edi, ecx
neg esi
or ebx, ecx
not edi
mov esi, edi
ror ecx, 9
sub ecx, 0x43aaea96
jmp 0x5a1812
mov edx, dword [esp + 0x60]
mov edi, 0x43d5cee6
xchg ecx, edi
add edi, esi
and ebx, 0x43d76a12
xor ebx, edi
add ebx, ecx
mov ecx, ebx
sub ebx, 0x43d99aa2
mov ebx, esi
ror ebx, 0x1b
xor ecx, 0x43daeab5
jmp 0x5a0e16
mov edx, 0x30
xchg esi, ebx
shr edi, 0x13
bswap ebx
xor ecx, 0x43edca57
shl edi, 6
dec ebx
jmp 0x5a25bc
mov edx, dword [edx]
sub edi, esi
ror ecx, 0x1a
shl ecx, 0xe
xor edi, esi
xor esi, edi
and ebx, ecx
add ebx, ecx
jmp 0x5a301d
cmp eax, dword [esp + 0x70]
jmp 0x5a3314
mov edx, dword [edx]
or ebx, edi
add ebx, esi
add ebx, ecx
ror ebx, 1
sub ecx, 0x4450867b
xor edi, 0x4450f377
mov ebx, 0x44517f38
shr esi, 0x1e
rol ebx, 0xb
xor ebx, edi
add ebx, edi
not edi
and ecx, 0x445ae24c
or ecx, edi
mov ecx, 0x445bc411
add esi, edi
jmp 0x5a2649
mov dword [esp + 0x60], edx
xchg ecx, ebx
or esi, edi
mov ecx, 0x44826819
xor ecx, esi
bswap ecx
xchg edi, esi
mov edi, 0x44860723
xchg edi, ebx
jmp 0x5a1709
mov dword [esp + 0x60], edx
xchg ebx, esi
mov esi, ecx
xchg edi, ebx
and ebx, 0x44a16925
add ebx, edi
sub ecx, ebx
xchg ebx, ecx
rol esi, 5
and edi, esi
jmp 0x5a334c
mul edx
or ecx, 0x44ad101b
not esi
mov ebx, ecx
not ecx
add edi, 0x44af3443
mov esi, 0x44afd566
xchg ebx, edi
add esi, 0x44b0d187
xor ebx, esi
neg ecx
and edi, ebx
shr ebx, 0x11
add esi, 0x44b36269
jmp 0x5a1e80
add edx, 0x18
sub ebx, edi
add ebx, edi
xor ecx, esi
xor ebx, ecx
sub esi, ecx
mov ecx, edi
dec ebx
jmp 0x5a1cf6
add edx, 0xc
bswap ecx
mov esi, 0x44e50665
mov edi, 0x44e598ef
or ecx, 0x44e628d5
inc esi
rol esi, 8
not edi
ror esi, 0x13
jmp 0x5a3040
mov edx, dword [edx]
sub esi, 0x44e8ec3e
mov edi, esi
add esi, 0x44e9ddf3
dec edi
dec ebx
xor esi, ebx
or esi, ebx
mov esi, 0x44ec2c91
or ecx, ebx
jmp 0x5a2d14
add edx, dword [esp + 0x74]
xor ecx, ebx
add esi, ecx
add edi, ecx
ror edi, 0x1a
ror esi, 4
rol ecx, 0x19
xor ebx, esi
add ebx, edi
mov ebx, edi
and esi, 0x4554771f
or ebx, 0x4554e46d
dec edi
add edi, ecx
jmp 0x5a1ddf
mov eax, 4
sub edi, esi
and esi, ecx
neg ecx
add ecx, esi
xchg ebx, ecx
jmp 0x5a214f
inc dword [esp + 0x48]
mov esi, ecx
add edi, ecx
shr ecx, 0x1e
xor edi, esi
dec ebx
mov edi, ebx
and esi, ecx
xchg ebx, edi
dec ebx
sub edi, esi
add ebx, esi
bswap ebx
jmp 0x5a3428
mov dword [esp + 0x74], edx
add esi, 0x456e94e8
or edi, esi
and edi, ebx
sub edi, ebx
sub edi, ebx
bswap ecx
xor ebx, ecx
and esi, ebx
xor esi, ecx
ror esi, 9
sub ebx, edi
shl esi, 0x19
mov ecx, 0x457b9d6f
shl edi, 0x15
sub ebx, 0x457c1f3e
mov ebx, esi
jmp 0x5a1fb4
jne 0x5a3295
xchg esi, ecx
and ebx, ecx
ror ecx, 0xd
or ebx, edi
xchg ecx, ebx
xchg ecx, edi
and ecx, esi
or edi, 0x458613f5
jmp 0x5a2256
add dword [esp + 0x60], 0x78
bswap ebx
mov ebx, ecx
or ecx, ebx
xchg ecx, edi
add edi, ecx
add esi, ecx
add ecx, ebx
xor esi, edi
xor ecx, edi
ror esi, 9
add edi, 0x458a1776
xor ecx, esi
jmp 0x5a0f26
add dword [esp + 0x2c], 4
add ecx, esi
xor ecx, edi
or ebx, edi
shr edi, 7
or ebx, edi
bswap ecx
not esi
xor ebx, ecx
or ebx, esi
rol ecx, 0x15
xor edi, 0x45a39474
add esi, 0x45a3d78c
add edi, esi
sub edi, esi
jmp 0x5a1bfd
add edx, dword [esp + 0x48]
xchg ecx, edi
shl ebx, 0xd
and esi, edi
jmp 0x5a3281
mov dword [esp + 0x48], 0
xor esi, 0x45b261d9
shl esi, 0xf
and ecx, ebx
mov ecx, esi
xor ebx, esi
jmp 0x5a1a4a
sub esp, 0xb8
shr edi, 8
mov esi, edi
bswap edi
shl ecx, 0x17
mov ebx, esi
or esi, ecx
jmp 0x5a351a