Function at 0x523ad9
Capabilities:
Encrypt data using chaskey

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x523aa7
sub eax, dword [ebp + 8]
sar eax, 1
dec eax
pop ebp
or eax, 0xd7838d24
enter 0xffffffffffff8d24, 0xffffffffffffff83
xlatb
call fcn.00413671
or edx, eax
shr edi, 0x12
sub eax, 0xd406e600
shr edi, 1
xchg ebx, edx
test dword [0x59e265], edx
add byte [esi + 5], dh
call fcn.004de1c4
or dword [0x5a7da8], ebx
rol edi, 8
neg esi
dec ecx
call fcn.0051f4e2
sub ebx, 0x6139a7e1
or edi, ebx
dec esi
mov ecx, 0x7c10ff8c
add eax, ecx
sub edx, ecx
or esi, 0x2b147c18
and eax, 0xf44ce523
call fcn.004fc7cf
neg esi
shl esi, 9
rol ebx, 0x17
test ebp, esi
jge 0x523b24
rol edx, 3
mov esi, esi
add edx, esp
and dword [0x5a7cf4], edi
sub edi, ebp
dec ecx
jne 0x523b00
mov ecx, 0x5d5f13a0
neg eax
sub edi, 0xc3a5b7b3
inc edx
and esi, dword [0x59a003]
call fcn.004475ca
rol esi, 7
test esp, 0x434e8b8f
jle 0x523b5a
xchg ebx, eax
xor eax, edx
or edx, dword [0x59a649]
dec ebx
dec ecx
jne 0x523b39
mov ecx, 0x609898d2
shl edi, 0x1e
dec edi
not esi
or edx, ebp
mov edx, esp
call fcn.0047828f
mov ebx, eax
xchg edi, edx
add edx, 0x6a271c80
mov edi, dword [0x59e622]
inc esi
dec ecx
jne 0x523b6c
sub dword [0x5a7c94], edx
mov eax, 0x79e09929
add ebx, dword [0x5a7e7e]
xor ebx, 0x77a2efd5
or edi, dword [0x5a7e5e]
sub eax, dword [0x5a7fbd]
neg ebx
sub esi, edx
xchg edi, esi
inc edi
ror esi, 7
xor edi, dword [0x5a7ec0]
and dword [0x5a7d63], esi
call fcn.0050a3b1
inc eax
xor eax, edi
xor edx, eax
add ebx, eax
xchg ebx, edx
call fcn.00406cf7
sub esi, 0xae2b8421
add esi, 0xae2b8421
xchg ebx, edx
sub ebx, eax
xor edx, eax
xor eax, edi
dec eax
call fcn.0049f2a5
add dword [0x5a7e12], esi
rol esi, 7
dec edi
xchg edi, esi
add esi, edx
neg ebx
xor ebx, 0x77a2efd5
and eax, 0x2452e94
add ecx, 0xf7247027
neg ebx
sub dword [0x5a7e0b], esi
call fcn.00483b21
not edi
or edx, dword [0x5a7e35]
call fcn.004a07cf
rol edx, 0x19
call fcn.004fb9ef
rol ebx, 0x11
add eax, 0xd510b7d
xor edx, dword [0x5a7e8c]
call fcn.005129e2
xor edx, 0xf157e4bb
xchg esi, eax
add eax, dword [0x5a7fbf]
neg esi
add ebx, dword [0x5a7f48]
add dword [0x5a7d3c], ebx
xor ebx, dword [0x5a7fb5]
sub esi, 0x4b1dc7c7
call fcn.00487539
call fcn.004cc8d6
add esi, 0x4b1dc7c7
or dword [0x5a7d18], edx
neg esi
xchg esi, eax
xor edx, 0xf157e4bb
sub eax, 0xd510b7d
ror ebx, 0x11
ror edx, 0x19
call fcn.004772df
not edi
call fcn.00480eb7
and dword [0x5a7cb2], ebx
neg ebx
sub ecx, 0xf7247027
sub eax, 0x4007c0
xchg edi, esi
call fcn.0044b69a
xor dword [0x5a7d47], ebx
add edx, ecx
call fcn.004a3bdd
not edi
ror eax, 0x10
xchg ebx, edx
sub edi, dword [0x5a7f5c]
add edx, dword [0x5a7f8d]
neg esi
xor edi, dword [0x5a7e93]
xchg esi, edx
xchg esi, edx
neg esi
xchg ebx, edx
rol eax, 0x10
not edi
sub edx, ecx
call fcn.004b515f
xchg edi, esi
push eax
inc ecx
sub ecx, edi
ror edi, 0x10
xchg ebx, esi
or dword [0x5a7d92], ebx
xor eax, 0x49966a8e
xor dword [0x5a7cda], ecx
call fcn.004db3b4
not edi
call fcn.004deb71
not ecx
or dword [0x5a7cc3], 0x7b46d96e
rol edi, 0x15
add edx, dword [0x5a7fb9]
or dword [0x5a7d71], edi
xor dword [0x5a7d4e], ecx
ror edi, 0x15
and dword [0x5a7d03], 0x9ac3b82c
not ecx
call fcn.004fb80f
not edi
call fcn.00517887
invalid
invalid