Function at 0x41d750
Capabilities:
Encrypt data using chaskey

Disassembly:
sub esp, 0x54
mov eax, dword [0x4538c0]
xor eax, esp
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x58]
push ebx
push ebp
push esi
mov ecx, dword [eax]
lea esi, [esp + 0x1c]
mov ebp, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], ecx
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x68]
push edi
mov dword [esp + 0x14], ecx
add eax, 2
mov edi, 0x10
movzx edx, byte [eax + 1]
lea esi, [esi + 4]
movzx ecx, byte [eax]
lea eax, [eax + 4]
shl edx, 8
or edx, ecx
movzx ecx, byte [eax - 5]
shl edx, 8
or edx, ecx
movzx ecx, byte [eax - 6]
shl edx, 8
or edx, ecx
mov dword [esi - 4], edx
sub edi, 1
jne 0x41d791
mov esi, dword [esp + 0x14]
mov eax, ebp
and eax, esi
mov ecx, esi
not ecx
and ecx, ebx
or ecx, eax
mov eax, dword [esp + 0x10]
add ecx, dword [esp + 0x20]
add eax, ecx
mov edx, eax
shl eax, 3
shr edx, 0x1d
or edx, eax
mov eax, esi
and eax, edx
mov ecx, edx
not ecx
and ecx, ebp
or ecx, eax
add ecx, dword [esp + 0x24]
add ebx, ecx
mov edi, ebx
shl ebx, 7
shr edi, 0x19
or edi, ebx
mov ecx, edi
mov eax, edi
not ecx
and eax, edx
and ecx, esi
or ecx, eax
mov eax, edi
add ecx, dword [esp + 0x28]
add ebp, ecx
mov ebx, ebp
shl ebp, 0xb
shr ebx, 0x15
or ebx, ebp
and eax, ebx
mov ecx, ebx
not ecx
and ecx, edx
or ecx, eax
mov eax, ebx
add ecx, dword [esp + 0x2c]
add esi, ecx
mov ebp, esi
shr esi, 0xd
shl ebp, 0x13
or ebp, esi
and eax, ebp
mov ecx, ebp
not ecx
and ecx, edi
or ecx, eax
add ecx, dword [esp + 0x30]
add edx, ecx
mov esi, edx
shr esi, 0x1d
lea eax, [edx*8]
or esi, eax
mov eax, ebp
mov ecx, esi
and eax, esi
not ecx
and ecx, ebx
or ecx, eax
add ecx, dword [esp + 0x34]
add edi, ecx
mov edx, edi
shl edi, 7
shr edx, 0x19
or edx, edi
mov ecx, edx
mov eax, edx
not ecx
and eax, esi
and ecx, ebp
or ecx, eax
add ecx, dword [esp + 0x38]
add ebx, ecx
mov eax, ebx
shl ebx, 0xb
shr eax, 0x15
or eax, ebx
mov ebx, eax
mov eax, edx
and eax, ebx
mov ecx, ebx
not ecx
and ecx, esi
or ecx, eax
add ecx, dword [esp + 0x3c]
add ebp, ecx
mov eax, ebp
shr ebp, 0xd
shl eax, 0x13
or eax, ebp
mov ebp, eax
mov eax, ebx
and eax, ebp
mov ecx, ebp
not ecx
and ecx, edx
or ecx, eax
add ecx, dword [esp + 0x40]
add esi, ecx
mov edi, esi
shr edi, 0x1d
lea eax, [esi*8]
or edi, eax
mov eax, ebp
and eax, edi
mov ecx, edi
not ecx
and ecx, ebx
or ecx, eax
add ecx, dword [esp + 0x44]
add edx, ecx
mov esi, edx
shl edx, 7
shr esi, 0x19
or esi, edx
mov ecx, esi
mov eax, esi
not ecx
and eax, edi
and ecx, ebp
or ecx, eax
mov eax, esi
add ecx, dword [esp + 0x48]
add ebx, ecx
mov edx, ebx
shl ebx, 0xb
shr edx, 0x15
or edx, ebx
mov ecx, edx
mov dword [esp + 0x10], edx
not ecx
and eax, edx
and ecx, edi
or ecx, eax
mov eax, edx
add ecx, dword [esp + 0x4c]
add ebp, ecx
mov ebx, ebp
shr ebp, 0xd
shl ebx, 0x13
or ebx, ebp
mov ecx, ebx
mov dword [esp + 0x14], ebx
not ecx
and eax, ebx
and ecx, esi
or ecx, eax
add ecx, dword [esp + 0x50]
add edi, ecx
mov edx, edi
shr edx, 0x1d
lea eax, [edi*8]
or edx, eax
mov edi, dword [esp + 0x10]
mov ecx, edx
not ecx
mov eax, ebx
and eax, edx
and ecx, edi
or ecx, eax
add ecx, dword [esp + 0x54]
add esi, ecx
mov ebx, esi
shl esi, 7
shr ebx, 0x19
or ebx, esi
mov ecx, ebx
mov eax, ebx
and eax, edx
not ecx
and ecx, dword [esp + 0x14]
or ecx, eax
mov eax, ebx
add ecx, dword [esp + 0x58]
add edi, ecx
mov ebp, edi
shl edi, 0xb
shr ebp, 0x15
or ebp, edi
and eax, ebp
mov ecx, ebp
not ecx
and ecx, edx
add edx, 0x5a827999
or ecx, eax
mov eax, dword [esp + 0x14]
add ecx, dword [esp + 0x5c]
add eax, ecx
mov ecx, ebp
mov esi, eax
shr eax, 0xd
shl esi, 0x13
or esi, eax
mov eax, ebp
and eax, esi
or ecx, esi
and ecx, ebx
add ebx, 0x5a827999
or eax, ecx
mov ecx, esi
add eax, dword [esp + 0x20]
add eax, edx
mov edx, esi
mov edi, eax
shl eax, 3
shr edi, 0x1d
or edi, eax
or edx, edi
and ecx, edi
mov eax, edx
and eax, ebp
or eax, ecx
add eax, dword [esp + 0x30]
add eax, ebx
mov ebx, eax
shl eax, 5
shr ebx, 0x1b
or ebx, eax
lea eax, [ebp + 0x5a827999]
and edx, ebx
or edx, ecx
add edx, dword [esp + 0x40]
add eax, edx
mov ebp, eax
shl eax, 9
shr ebp, 0x17
or ebp, eax
mov ecx, ebp
mov eax, ebp
or ecx, edi
and eax, edi
and ecx, ebx
or eax, ecx
add eax, dword [esp + 0x50]
add esi, 0x5a827999
mov ecx, ebp
add eax, esi
add edi, 0x5a827999
mov esi, eax
shl eax, 0xd
shr esi, 0x13
or esi, eax
mov eax, ebp
and eax, esi
or ecx, esi
and ecx, ebx
mov edx, esi
or eax, ecx
add ebx, 0x5a827999
add eax, dword [esp + 0x24]
mov ecx, esi
add eax, edi
add esi, 0x5a827999
mov edi, eax
shl eax, 3
shr edi, 0x1d
or edi, eax
or edx, edi
and ecx, edi
mov eax, edx
and eax, ebp
or eax, ecx
add eax, dword [esp + 0x34]
add eax, ebx
mov ebx, eax
shl eax, 5
shr ebx, 0x1b
or ebx, eax
lea eax, [ebp + 0x5a827999]
and edx, ebx
or edx, ecx
add edx, dword [esp + 0x44]
add eax, edx
mov ebp, eax
shl eax, 9
shr ebp, 0x17
or ebp, eax
mov ecx, ebp
mov eax, ebp
and eax, edi
or ecx, edi
and ecx, ebx
add edi, 0x5a827999
or eax, ecx
mov ecx, ebp
add eax, dword [esp + 0x54]
add eax, esi
mov esi, eax
shl eax, 0xd
shr esi, 0x13
or esi, eax
mov eax, ebp
and eax, esi
or ecx, esi
and ecx, ebx
mov edx, esi
or eax, ecx
add ebx, 0x5a827999
add eax, dword [esp + 0x28]
mov ecx, esi
add eax, edi
mov edi, eax
shl eax, 3
shr edi, 0x1d
or edi, eax
or edx, edi
and ecx, edi
mov eax, edx
and eax, ebp
or eax, ecx
add eax, dword [esp + 0x38]
add eax, ebx
mov ebx, eax
shr ebx, 0x1b
shl eax, 5
or ebx, eax
add esi, 0x5a827999
and edx, ebx
lea eax, [ebp + 0x5a827999]
or edx, ecx
add edx, dword [esp + 0x48]
add eax, edx
mov edx, eax
shl eax, 9
shr edx, 0x17
or edx, eax
mov ecx, edx
mov dword [esp + 0x10], edx
or ecx, edi
mov eax, edx
and eax, edi
and ecx, ebx
or eax, ecx
add edi, 0x5a827999
add eax, dword [esp + 0x58]
mov ecx, edx
add eax, esi
mov esi, eax
shl eax, 0xd
shr esi, 0x13
or esi, eax
mov eax, edx
and eax, esi
mov dword [esp + 0x14], esi
or ecx, esi
mov edx, esi
and ecx, ebx
add ebx, 0x5a827999
or eax, ecx
mov ecx, esi
add eax, dword [esp + 0x2c]
add eax, edi
mov edi, dword [esp + 0x10]
mov ebp, eax
shl eax, 3
shr ebp, 0x1d
or ebp, eax
or edx, ebp
and ecx, ebp
mov eax, edx
and eax, edi
or eax, ecx
add eax, dword [esp + 0x3c]
add eax, ebx
mov esi, eax
shl eax, 5
shr esi, 0x1b
or esi, eax
lea eax, [edi + 0x5a827999]
and edx, esi
or edx, ecx
add edx, dword [esp + 0x4c]
add eax, edx
mov edi, eax
shl eax, 9
shr edi, 0x17
or edi, eax
mov ecx, edi
mov eax, edi
and eax, ebp
or ecx, ebp
and ecx, esi
or ecx, eax
mov eax, dword [esp + 0x14]
add ecx, dword [esp + 0x5c]
add eax, 0x5a827999
add eax, ecx
mov ebx, eax
shl eax, 0xd
shr ebx, 0x13
or ebx, eax
mov eax, esi
xor eax, edi
xor eax, ebx
add eax, 0x6ed9eba1
add eax, dword [esp + 0x20]
add eax, ebp
add esi, 0x6ed9eba1
mov edx, eax
shl eax, 3
shr edx, 0x1d
or edx, eax
mov eax, edi
xor eax, ebx
add edi, 0x6ed9eba1
xor eax, edx
add eax, dword [esp + 0x40]
add eax, esi
mov esi, eax
shl eax, 9
shr esi, 0x17
or esi, eax
mov eax, esi
mov ecx, esi
xor eax, ebx
add esi, 0x6ed9eba1
xor eax, edx
add ebx, 0x6ed9eba1
add eax, dword [esp + 0x30]
add eax, edi
mov edi, eax
shl eax, 0xb
shr edi, 0x15
or edi, eax
xor ecx, edi
mov eax, ecx
xor eax, edx
add eax, dword [esp + 0x50]
add eax, ebx
mov ebx, eax
shl eax, 0xf
shr ebx, 0x11
or ebx, eax
xor ecx, ebx
add ecx, dword [esp + 0x28]
lea eax, [ecx + 0x6ed9eba1]
add eax, edx
mov edx, eax
shl eax, 3
shr edx, 0x1d
or edx, eax
mov eax, edi
xor eax, ebx
add edi, 0x6ed9eba1
xor eax, edx
add eax, dword [esp + 0x48]
add eax, esi
mov esi, eax
shl eax, 9
shr esi, 0x17
or esi, eax
mov eax, esi
mov ecx, esi
xor eax, ebx
add ebx, 0x6ed9eba1
xor eax, edx
add eax, dword [esp + 0x38]
add eax, edi
mov edi, eax
shl eax, 0xb
shr edi, 0x15
or edi, eax
xor ecx, edi
mov eax, ecx
xor eax, edx
add eax, dword [esp + 0x58]
add eax, ebx
mov ebx, eax
shl eax, 0xf
shr ebx, 0x11
or ebx, eax
xor ecx, ebx
add ecx, dword [esp + 0x24]
lea eax, [ecx + 0x6ed9eba1]
add eax, edx
mov edx, eax
shr edx, 0x1d
shl eax, 3
add esi, 0x6ed9eba1
or edx, eax
mov eax, edi
xor eax, ebx
add edi, 0x6ed9eba1
xor eax, edx
add eax, dword [esp + 0x44]
add eax, esi
mov ebp, eax
shl eax, 9
shr ebp, 0x17
or ebp, eax
mov eax, ebp
mov ecx, ebp
xor eax, ebx
add ebp, 0x6ed9eba1
xor eax, edx
add ebx, 0x6ed9eba1
add eax, dword [esp + 0x34]
add eax, edi
mov edi, eax
shl eax, 0xb
shr edi, 0x15
or edi, eax
xor ecx, edi
mov eax, ecx
xor eax, edx
add eax, dword [esp + 0x54]
add eax, ebx
mov ebx, eax
shl eax, 0xf
shr ebx, 0x11
or ebx, eax
xor ecx, ebx
add ecx, dword [esp + 0x2c]
lea eax, [ecx + 0x6ed9eba1]
add eax, edx
mov esi, eax
shl eax, 3
shr esi, 0x1d
or esi, eax
mov eax, edi
xor eax, ebx
add edi, 0x6ed9eba1
xor eax, esi
add eax, dword [esp + 0x4c]
add eax, ebp
mov edx, eax
shl eax, 9
shr edx, 0x17
or edx, eax
mov eax, edx
xor eax, ebx
add ebx, 0x6ed9eba1
xor eax, esi
add eax, dword [esp + 0x3c]
add eax, edi
mov edi, dword [esp + 0x1c]
mov ecx, eax
shl eax, 0xb
shr ecx, 0x15
or ecx, eax
mov eax, dword [esp + 0x18]
add dword [edi + 8], ecx
add eax, esi
add dword [edi + 0xc], edx
mov dword [edi], eax
mov eax, edx
xor eax, ecx
mov ecx, dword [esp + 0x60]
xor eax, esi
add eax, dword [esp + 0x5c]
add eax, ebx
ror eax, 0x11
add dword [edi + 4], eax
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0042255f
add esp, 0x54
ret