Function at 0x15d3cc0
Capabilities:
Encrypt data using chaskey

Disassembly:
dec eax
btr eax, edx
neg esi
inc eax
neg ch
call fcn.025723b1
movsx eax, cl
bswap edx
sar cx, 0xcc
ror ecx, 0x22
je 0x17246e6
mov cx, word [ecx + edi - 0x1724]
mov eax, 0x6e0fd60a
lea edi, [edi + eax - 0x6e0fd604]
mov word ss:[edx + eax - 0x6e0fd60a], cx
call fcn.015a7fc8
ror cl, 0x61
adc ebp, eax
mov eax, edx
sar ax, cl
mov eax, dword [esi + edx*2 - 0x66d6770]
sal dl, 0x66
sar edx, cl
mov ecx, dword [esi + edx - 0x336af]
sar dx, 0x8e
rol edx, 0xd
lea esi, [esi + edx - 0x5ffffff8]
or dl, 0x90
mov dword ss:[eax + edx - 0x60000090], ecx
jmp ebp
not eax
neg edx
pop eax
pop ecx
shl ecx, 0xb5
not edx
jns 0x159f2b1
dec ecx
neg esi
sal dx, 0x43
inc edi
mov ecx, dword [edi - 0x3a]
je 0x161203b
inc ebp
xor ecx, edx
inc ecx
sal edi, cl
mul dx
inc ecx
not ecx
jo 0x27f46e5
sub edi, 4
mov edx, 0x9e22533b
mov eax, edx
mov eax, dword [edi]
xor eax, ebx
not edx
shl edx, 0x7a
dec edx
xor eax, 0xd9306e0a
inc eax
lea ecx, [edx + edx - 0x14f70e5a]
neg eax
imul ecx, ecx
and edx, 0x336b3b8
bswap eax
xor ebx, eax
jmp 0x15c3545
inc sp
btc ebp, esi
jae 0x1566f3c
mov eax, 0xc6b34e81
inc esp
movzx esi, al
inc ecx
movzx ecx, si
dec ebx
mov ebp, dword [esi + ebx - 0x81]
inc cx
rol esi, 0x6b
inc esp
movzx eax, al
dec edi
mov edi, dword [esi + ebx - 0x7fc]
inc ebp
mov ebp, esi
inc cx
imul eax, eax
movzx esi, cx
inc ebx
mov cl, byte [ebx + esi*2 - 0xff8]
dec edi
lea ebx, [ebx + esi*2 - 0xffe]
dec esp
shld ebp, edi, cl
mov edi, 0xae246fb2
dec esi
lea edi, [eax*2 - 0x4f606067]
push edi
dec ebx
mov dword [ebx + esi*2 - 0x1008], ebp
dec ecx
xadd ebp, esi
dec edi
lea esp, [esi - 0x808]
inc ecx
push esi
inc esi
sbb byte [esp + eax - 0x7b], al
inc si
cmovns esi, dword [esp + esi*2 - 0x1000]
inc edi
mov edi, dword [esi - 0x6fb2]
inc ecx
add esi, 0x3d0174b3
inc ebp
xor edi, edx
pop ebp
inc ecx
dec edi
inc cx
bts eax, 0xa1
inc ecx
bswap edi
dec esi
and dword [esp + esi - 0x3d01e465], eax
inc cx
sar esi, 0x27
inc ecx
rol edi, 2
inc dx
or dword [esp + esi - 0x3d01ffc3], ebp
mul edi
inc ecx
bswap edi
dec edx
sbb dword [esp + eax*2 - 0x106], 0x79280a5
dec edx
lea ecx, [esi*2 - 0xe4a5d5d]
dec esi
mov dword [esp + esi - 0x3d01ffc8], edx
dec dx
cwde
inc esi
xor dword [esp + eax*4 - 0x20c], edi
dec ecx
ror eax, cl
inc ecx
pop edx
dec ecx
ror esi, cl
inc ecx
imul ebp, esi
inc eax
dec ebp
arpl di, di
dec ecx
add ebx, edi
inc esp
movsx edi, cl
jmp ebx
rol edx, 1
push ecx
neg cx
inc ax
xor ebx, edx
call fcn.01638d1f
mov eax, 0xc10a5090
mov edx, dword [edi]
lea eax, [eax + eax*8 - 0x2678bffa]
movzx ecx, al
not eax
lea edi, [ecx + edi - 0x12]
shl al, 0xe7
js 0x1821173
setne byte [esi + 0xb]
add al, ch
mov al, byte [0x4cb40ac3]
dec esp
add cl, byte [ebp + esi*8 + 0x6c]
mov ebx, 0x3b2f93c6
int 0xae
push esp
add eax, 0xb36c31e1
cli
push esi
or esp, dword [edx + 0xfcff299]
mov bl, 0x98
jmp 0x172474d
dec esp
push edx
enter 0x555, 0x1e
rcl ch, cl
clc
push ebp
add eax, 0xf8d5d21e
bnd ja 0x172478c
loopne 0x172476a
lcall 0x24f5, 0x14b11ff9
mov al, byte [0x20f4eee4]
je 0x17247c2
inc esi
popal
or edi, dword [ebx]
insb byte es:[edi], dx
push ebp
add al, 0x93
xchg ebx, eax
ja 0x172474a
jg 0x172476d
sub al, 0xd6
adc esp, dword [ecx]
aaa
mov bl, byte [ebp - 0x18]
or cl, bh
fisub word [edx + 0x5b39f423]
pop esp
jbe 0x17247fb
insb byte es:[edi], dx
jecxz 0x17247f2
jmp 0x6f606de
add eax, 0x345d71d7
fsubr qword [edx + 0x3924eec2]
inc edi
xchg esi, eax
xchg esi, eax
push ebx
jp 0x17247f8
mov edx, 0x80119fca
std
mov byte [0xa397c404], al
lodsd eax, dword [esi]
retf
sbb eax, 0x72bd13e2
test eax, 0xf125de
pop ecx
sub cl, byte [eax + 0x24e57987]
wait
inc ebx
jne 0x172479a
cmp edi, ecx
xchg dword [0xbb850ed5], eax
add dh, dl
invalid
jp 0x1724829
xor cl, byte [ebx]
ror byte [esi + ecx - 0x5e26ac8f], 1
and dword [esp + ecx - 0x7f01810], esp
push cs
jno 0x172484e
fldenv [ecx - 0xff35bdf]
or al, 0xf0
out 0xf, eax
clc
clc
inc edi
aaa
dec eax
ljmp 0x7ee2
into
scasd eax, dword es:[edi]
adc eax, 0x85789541
ljmp 0xfd51
retf
rcr dword [ebp - 0x232ddd16], 0x30
sbb eax, 0x1aa3b497
push eax
and byte [ebx + 0x5ecc1b2a], 0x40
xchg edi, eax
into
test byte cs:[esi + ecx*4], ch
pushal
imul ecx, dword [esi + esi*2], 0xc1731b46
dec ecx
pop esi
fdivrp st(5)
fst dword [edx + 0x36c072e2]
jbe 0x17247ff
aad 0x1c
lea ebx, [ebx]
out 0x86, eax
jecxz 0x172483e
xor dh, byte [esp + esi*4 - 0x33]
das
push ebx
aas
out 0x1c, al
aam 0xb3
retf 0xfd24
xor edx, ebx
lea edx, [edx + ecx*8 - 0x3238a2cb]
and al, 0x25
rol edx, 3
sar cx, 0x8a
not eax
sbb eax, 0x97936e35
dec edx
bt ecx, ecx
bswap eax
rol edx, 1
or eax, ecx
not edx
bswap edx
lea ecx, [eax*2 - 0x464c6076]
xor ebx, edx
call fcn.0256c77a
dec ecx
sub esp, 4
call fcn.01911c50
bt ecx, esi
inc ecx
dec ecx
cwde
inc ecx
neg ecx
xor al, ah
dec eax
cdq
inc eax
xchg cl, dh
inc ecx
inc ecx
inc ecx
push edx
inc bp
imul edi, esi
inc esp
xor dword [esp + ecx*4 - 0xec], ecx
inc esp
movsx edx, ch
inc ecx
nop
inc ecx
pop edx
inc ebp
mov ebp, eax
btc ecx, 0x96
dec ebp
arpl cx, cx
dec ecx
adc ebx, ecx
jmp fcn.0256c8bf