Function at 0x29abae
Capabilities:
Encrypt data using chaskey

Disassembly:
sub esp, 0x6c
mov dword [esp + 0x60], 0x3cc89e
mov dword [esp + 0x64], 0x60c65f
mov dword [esp + 0x4c], ecx
xor ecx, ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x18], 0xad33
xor dword [esp + 0x18], 0xe2c0cac5
or dword [esp + 0x18], 0x6f2cdc03
xor dword [esp + 0x18], 0xefecfb9a
mov dword [esp + 0x34], 0x981a
or dword [esp + 0x34], 0x95e16630
xor dword [esp + 0x34], 0x95e1ce64
mov dword [esp + 0x14], 0x6196
shl dword [esp + 0x14], 8
mov eax, dword [esp + 0x14]
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x68], edx
mov esi, 0x3b55a647
push 0x7d
xor edx, edx
mov dword [esp + 0x5c], ecx
pop ecx
div ecx
push 0x3a
mov dword [esp + 0x28], eax
xor edx, edx
xor dword [esp + 0x28], 0x9d23
mov dword [esp + 0x30], 0x1cd5
add dword [esp + 0x30], 0xffffd68e
shr dword [esp + 0x30], 7
xor dword [esp + 0x30], 0x1ffc033
mov dword [esp + 0x14], 0x4d51
add dword [esp + 0x14], 0xffffd8a8
mov eax, dword [esp + 0x14]
pop ecx
div ecx
push 0x43
mov dword [esp + 0x14], eax
xor edx, edx
mov eax, dword [esp + 0x14]
pop ecx
div ecx
mov dword [esp + 0x10], eax
xor dword [esp + 0x10], 0x628b
mov dword [esp + 0x48], 0xc0ea
shl dword [esp + 0x48], 4
xor dword [esp + 0x48], 0xc4b44
mov dword [esp + 0x4c], 0xad18
add dword [esp + 0x4c], 0xffff8db7
xor dword [esp + 0x4c], 0x65b3
mov dword [esp + 0x14], 0x27e4
add dword [esp + 0x14], 0xffff2682
xor dword [esp + 0x14], 0xc7367d5
or dword [esp + 0x14], 0xca6f1c1d
xor dword [esp + 0x14], 0xfbef3771
mov dword [esp + 0x30], 0xffd7
add dword [esp + 0x30], 0xe210
imul eax, dword [esp + 0x30], 0x33
mov dword [esp + 0x30], eax
xor dword [esp + 0x30], 0x6039a8
mov dword [esp + 0x1c], 0x2439
add dword [esp + 0x1c], 0x97ec
imul eax, dword [esp + 0x1c], 6
mov dword [esp + 0x1c], eax
shl dword [esp + 0x1c], 0xd
xor dword [esp + 0x1c], 0x8d1bc98c
mov dword [esp + 0x38], 0x7fdf
shl dword [esp + 0x38], 7
or dword [esp + 0x38], 0xc7e18698
xor dword [esp + 0x38], 0xc7ff8435
mov dword [esp + 0x18], 0xcb45
shl dword [esp + 0x18], 0xa
shr dword [esp + 0x18], 6
or dword [esp + 0x18], 0x83360795
xor dword [esp + 0x18], 0x833ea3e3
mov dword [esp + 0x34], 0x4ffc
or dword [esp + 0x34], 0xea9c4b52
shl dword [esp + 0x34], 5
xor dword [esp + 0x34], 0x53899578
mov dword [esp + 0x50], 0xd006
add dword [esp + 0x50], 0xca9c
xor dword [esp + 0x50], 0x19bbd
mov dword [esp + 0x20], 0xb0ea
add dword [esp + 0x20], 0x2931
xor dword [esp + 0x20], 0x981a0525
xor dword [esp + 0x20], 0x5c964c49
xor dword [esp + 0x20], 0xc48cf13b
mov ebp, dword [esp + 0x68]
mov edi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x68]
mov eax, dword [esp + 0x54]
mov dword [esp + 0x40], 0xe814
shr dword [esp + 0x40], 5
xor dword [esp + 0x40], 0xec3aba0f
xor dword [esp + 0x40], 0xec3ab738
mov dword [esp + 0x3c], 0x71f5
xor dword [esp + 0x3c], 0xaf33afac
add dword [esp + 0x3c], 0x6c2
xor dword [esp + 0x3c], 0xaf338532
cmp esi, 0x129e6fa5
je 0x29ae66
cmp esi, 0x23a157fc
je 0x29ae33
cmp esi, 0x3b55a647
jne 0x29af0e
mov esi, 0x23a157fc
jmp 0x29ae10
mov eax, dword [esp + 0x24]
mov edi, 0x10000
mov eax, dword [esp + 0x44]
mov edx, edi
mov eax, dword [esp + 0x28]
push ecx
push ecx
call fcn.00287d07
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
je 0x29af1e
mov dword [esp + 0x54], eax
mov ebp, edi
mov esi, 0x129e6fa5
jmp 0x29ae10
lea ecx, [esp + 0x60]
push ecx
push dword [esp + 0x4c]
mov ecx, dword [esp + 0x64]
push eax
push ebp
push dword [esp + 0x20]
mov edx, dword [esp + 0x40]
call fcn.0028ca51
add esp, 0x14
mov dword [esp + 0x58], eax
test eax, eax
je 0x29af09
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x29af09
mov eax, dword [esp + 0x54]
add eax, ecx
mov dword [esp + 0x54], eax
sub ebp, ecx
jne 0x29ae5f
mov eax, dword [esp + 0x30]
lea ecx, [edi + edi]
mov eax, dword [esp + 0x14]
mov edx, ecx
mov eax, dword [esp + 0x4c]
push ecx
push ecx
mov dword [esp + 0x6c], ecx
call fcn.00287d07
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x29af1e
push dword [esp + 0x34]
mov edx, edi
push dword [esp + 0x1c]
push dword [esp + 0x40]
mov ecx, dword [esp + 0x28]
push ebx
push esi
call fcn.0028ba12
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x64]
push ebx
call fcn.00299b59
mov ebp, edi
lea eax, [esi + edi]
mov edi, dword [esp + 0x7c]
add esp, 0x18
mov dword [esp + 0x54], eax
mov ebx, esi
test ebp, ebp
je 0x29af1e
jmp 0x29ae5f
mov esi, 0xd40fc34
mov eax, dword [esp + 0x54]
cmp esi, 0xd40fc34
jne 0x29ae10
mov esi, dword [esp + 0x58]
test esi, esi
jne 0x29af37
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
push ebx
call fcn.00299b59
pop ecx
jmp 0x29af42
mov eax, dword [esp + 0x68]
sub edi, ebp
mov dword [eax], ebx
mov dword [eax + 4], edi
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret