Function at 0x48f433
Capabilities:
Encrypt data using chaskey

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
mov edx, dword [ecx + 8]
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [ecx + 4]
mov ecx, dword [ecx + 0xc]
add esi, 2
lea ebx, [ebp - 0x4c]
mov dword [ebp - 8], esi
mov dword [ebp - 4], ebx
mov dword [ebp - 0xc], 0x10
xor ebx, ebx
mov bh, byte [esi + 1]
mov bl, byte [esi]
movzx esi, byte [esi - 1]
shl ebx, 8
or ebx, esi
mov esi, dword [ebp - 8]
movzx esi, byte [esi - 2]
shl ebx, 8
or ebx, esi
mov esi, dword [ebp - 4]
add dword [ebp - 4], 4
mov dword [esi], ebx
mov esi, dword [ebp - 8]
add esi, 4
dec dword [ebp - 0xc]
mov dword [ebp - 8], esi
jne 0x48f460
mov esi, edi
not esi
and esi, ecx
mov ebx, edx
and ebx, edi
or esi, ebx
add esi, dword [ebp - 0x4c]
mov ebx, edi
add eax, esi
mov esi, eax
shl eax, 3
shr esi, 0x1d
or esi, eax
and ebx, esi
mov eax, esi
not eax
and eax, edx
or eax, ebx
add eax, dword [ebp - 0x48]
add ecx, eax
mov eax, ecx
shr eax, 0x19
shl ecx, 7
or eax, ecx
mov ecx, eax
mov ebx, eax
and ebx, esi
not ecx
and ecx, edi
or ecx, ebx
add ecx, dword [ebp - 0x44]
mov ebx, eax
add edx, ecx
mov ecx, edx
shl edx, 0xb
shr ecx, 0x15
or ecx, edx
mov edx, ecx
not edx
and edx, esi
and ebx, ecx
or edx, ebx
add edx, dword [ebp - 0x40]
mov ebx, ecx
add edi, edx
mov edx, edi
shr edi, 0xd
shl edx, 0x13
or edx, edi
mov edi, edx
not edi
and edi, eax
and ebx, edx
or edi, ebx
add edi, dword [ebp - 0x3c]
add esi, edi
mov edi, esi
shr edi, 0x1d
shl esi, 3
or edi, esi
mov dword [ebp - 4], edi
not edi
and edi, ecx
mov esi, edx
and esi, dword [ebp - 4]
or edi, esi
add edi, dword [ebp - 0x38]
add eax, edi
mov esi, eax
shl eax, 7
shr esi, 0x19
or esi, eax
mov eax, esi
not eax
and eax, edx
mov edi, esi
and edi, dword [ebp - 4]
or eax, edi
add eax, dword [ebp - 0x34]
add ecx, eax
mov eax, ecx
mov edi, dword [ebp - 4]
shl ecx, 0xb
shr eax, 0x15
or eax, ecx
mov ecx, eax
not ecx
and ecx, edi
mov ebx, esi
and ebx, eax
or ecx, ebx
add ecx, dword [ebp - 0x30]
mov ebx, eax
add edx, ecx
mov ecx, edx
shr edx, 0xd
shl ecx, 0x13
or ecx, edx
mov edx, ecx
and ebx, ecx
not edx
and edx, esi
or edx, ebx
add edx, dword [ebp - 0x2c]
add edi, edx
mov edx, edi
shl edi, 3
shr edx, 0x1d
or edx, edi
mov edi, ecx
mov dword [ebp - 4], edx
and edi, dword [ebp - 4]
not edx
and edx, eax
or edx, edi
add edx, dword [ebp - 0x28]
add esi, edx
mov edx, esi
shl esi, 7
shr edx, 0x19
or edx, esi
mov esi, edx
not esi
and esi, ecx
mov edi, edx
and edi, dword [ebp - 4]
mov ebx, edx
or esi, edi
add esi, dword [ebp - 0x24]
mov edi, dword [ebp - 4]
add eax, esi
mov esi, eax
shl eax, 0xb
shr esi, 0x15
or esi, eax
mov eax, esi
not eax
and eax, edi
and ebx, esi
or eax, ebx
add eax, dword [ebp - 0x20]
mov ebx, esi
add ecx, eax
mov eax, ecx
shr ecx, 0xd
shl eax, 0x13
or eax, ecx
mov ecx, eax
not ecx
and ecx, edx
and ebx, eax
or ecx, ebx
add ecx, dword [ebp - 0x1c]
add edi, ecx
mov ecx, edi
shr ecx, 0x1d
shl edi, 3
or ecx, edi
mov dword [ebp - 4], ecx
not ecx
and ecx, esi
mov edi, eax
and edi, dword [ebp - 4]
mov ebx, dword [ebp - 4]
or ecx, edi
add ecx, dword [ebp - 0x18]
add edx, ecx
mov edi, edx
shl edx, 7
shr edi, 0x19
or edi, edx
mov ecx, edi
not ecx
and ecx, eax
mov edx, edi
and edx, ebx
or ecx, edx
add ecx, dword [ebp - 0x14]
add esi, ecx
mov ecx, esi
shr ecx, 0x15
shl esi, 0xb
or ecx, esi
mov edx, ecx
not edx
and edx, ebx
mov esi, edi
and esi, ecx
or edx, esi
add edx, dword [ebp - 0x10]
mov esi, ecx
add eax, edx
mov edx, eax
shr eax, 0xd
shl edx, 0x13
or edx, eax
mov eax, ecx
or eax, edx
and eax, edi
and esi, edx
or eax, esi
add eax, dword [ebp - 0x4c]
mov dword [ebp - 4], edx
lea eax, [ebx + eax + 0x5a827999]
mov esi, eax
shl eax, 3
shr esi, 0x1d
or esi, eax
or dword [ebp - 4], esi
mov ebx, dword [ebp - 4]
and ebx, ecx
mov eax, edx
and eax, esi
or ebx, eax
add ebx, dword [ebp - 0x3c]
lea edi, [edi + ebx + 0x5a827999]
mov ebx, edi
shl edi, 5
shr ebx, 0x1b
or ebx, edi
mov edi, dword [ebp - 4]
and edi, ebx
or edi, eax
add edi, dword [ebp - 0x2c]
lea ecx, [ecx + edi + 0x5a827999]
mov eax, ecx
shl ecx, 9
shr eax, 0x17
or eax, ecx
mov ecx, eax
or ecx, esi
and ecx, ebx
mov edi, eax
and edi, esi
or ecx, edi
add ecx, dword [ebp - 0x1c]
lea edx, [edx + ecx + 0x5a827999]
mov ecx, edx
shl edx, 0xd
shr ecx, 0x13
or ecx, edx
mov edx, eax
or edx, ecx
and edx, ebx
mov edi, eax
and edi, ecx
or edx, edi
add edx, dword [ebp - 0x48]
mov dword [ebp - 4], ecx
lea esi, [esi + edx + 0x5a827999]
mov edx, esi
shl esi, 3
shr edx, 0x1d
or edx, esi
or dword [ebp - 4], edx
mov esi, dword [ebp - 4]
and esi, eax
mov edi, ecx
and edi, edx
or esi, edi
add esi, dword [ebp - 0x38]
lea ebx, [ebx + esi + 0x5a827999]
mov esi, ebx
shr esi, 0x1b
shl ebx, 5
or esi, ebx
mov ebx, dword [ebp - 4]
and ebx, esi
or ebx, edi
add ebx, dword [ebp - 0x28]
lea edi, [eax + ebx + 0x5a827999]
mov eax, edi
shl edi, 9
shr eax, 0x17
or eax, edi
mov edi, eax
or edi, edx
and edi, esi
mov ebx, eax
and ebx, edx
or edi, ebx
add edi, dword [ebp - 0x18]
mov ebx, eax
lea edi, [ecx + edi + 0x5a827999]
mov ecx, edi
shl edi, 0xd
shr ecx, 0x13
or ecx, edi
mov edi, eax
or edi, ecx
and edi, esi
and ebx, ecx
or edi, ebx
add edi, dword [ebp - 0x44]
mov dword [ebp - 4], ecx
lea edi, [edx + edi + 0x5a827999]
mov edx, edi
shl edi, 3
shr edx, 0x1d
or edx, edi
or dword [ebp - 4], edx
mov edi, dword [ebp - 4]
and edi, eax
mov ebx, ecx
and ebx, edx
or edi, ebx
add edi, dword [ebp - 0x34]
lea esi, [esi + edi + 0x5a827999]
mov edi, esi
shl esi, 5
shr edi, 0x1b
or edi, esi
mov esi, dword [ebp - 4]
and esi, edi
or esi, ebx
add esi, dword [ebp - 0x24]
lea esi, [eax + esi + 0x5a827999]
mov eax, esi
shl esi, 9
shr eax, 0x17
or eax, esi
mov esi, eax
or esi, edx
and esi, edi
mov ebx, eax
and ebx, edx
or esi, ebx
add esi, dword [ebp - 0x14]
mov ebx, eax
lea esi, [ecx + esi + 0x5a827999]
mov ecx, esi
shl esi, 0xd
shr ecx, 0x13
or ecx, esi
and ebx, ecx
mov esi, eax
or esi, ecx
and esi, edi
or esi, ebx
add esi, dword [ebp - 0x40]
mov dword [ebp - 4], ecx
lea esi, [edx + esi + 0x5a827999]
mov edx, esi
shr edx, 0x1d
shl esi, 3
or edx, esi
or dword [ebp - 4], edx
mov ebx, dword [ebp - 4]
and ebx, eax
mov esi, ecx
and esi, edx
or ebx, esi
add ebx, dword [ebp - 0x30]
lea edi, [edi + ebx + 0x5a827999]
mov ebx, edi
shl edi, 5
shr ebx, 0x1b
or ebx, edi
mov edi, dword [ebp - 4]
and edi, ebx
or edi, esi
add edi, dword [ebp - 0x20]
lea eax, [eax + edi + 0x5a827999]
mov esi, eax
shl eax, 9
shr esi, 0x17
or esi, eax
mov eax, esi
or eax, edx
and eax, ebx
mov edi, esi
and edi, edx
or eax, edi
add eax, dword [ebp - 0x10]
lea ecx, [ecx + eax + 0x5a827999]
mov eax, ecx
shl ecx, 0xd
shr eax, 0x13
or eax, ecx
mov ecx, ebx
xor ecx, esi
xor ecx, eax
add ecx, dword [ebp - 0x4c]
lea edx, [edx + ecx + 0x6ed9eba1]
mov ecx, edx
shl edx, 3
shr ecx, 0x1d
or ecx, edx
mov edx, esi
xor edx, eax
xor edx, ecx
add edx, dword [ebp - 0x2c]
lea ebx, [ebx + edx + 0x6ed9eba1]
mov edx, ebx
shr edx, 0x17
shl ebx, 9
or edx, ebx
mov edi, edx
xor edi, eax
xor edi, ecx
add edi, dword [ebp - 0x3c]
lea esi, [esi + edi + 0x6ed9eba1]
mov edi, esi
shr edi, 0x15
shl esi, 0xb
or edi, esi
mov esi, edx
xor esi, edi
mov ebx, esi
xor ebx, ecx
add ebx, dword [ebp - 0x1c]
lea ebx, [eax + ebx + 0x6ed9eba1]
mov eax, ebx
shl ebx, 0xf
shr eax, 0x11
or eax, ebx
xor esi, eax
add esi, dword [ebp - 0x44]
lea esi, [ecx + esi + 0x6ed9eba1]
mov ecx, esi
shl esi, 3
shr ecx, 0x1d
or ecx, esi
mov esi, edi
xor esi, eax
xor esi, ecx
add esi, dword [ebp - 0x24]
lea esi, [edx + esi + 0x6ed9eba1]
mov edx, esi
shl esi, 9
shr edx, 0x17
or edx, esi
mov esi, edx
xor esi, eax
xor esi, ecx
add esi, dword [ebp - 0x34]
lea edi, [edi + esi + 0x6ed9eba1]
mov esi, edi
shl edi, 0xb
shr esi, 0x15
or esi, edi
mov edi, edx
xor edi, esi
mov ebx, edi
xor ebx, ecx
add ebx, dword [ebp - 0x14]
lea ebx, [eax + ebx + 0x6ed9eba1]
mov eax, ebx
shl ebx, 0xf
shr eax, 0x11
or eax, ebx
xor edi, eax
add edi, dword [ebp - 0x48]
lea edi, [ecx + edi + 0x6ed9eba1]
mov ecx, edi
shl edi, 3
shr ecx, 0x1d
or ecx, edi
mov edi, esi
xor edi, eax
xor edi, ecx
add edi, dword [ebp - 0x28]
lea edi, [edx + edi + 0x6ed9eba1]
mov edx, edi
shl edi, 9
shr edx, 0x17
or edx, edi
mov edi, edx
xor edi, eax
xor edi, ecx
add edi, dword [ebp - 0x38]
lea edi, [esi + edi + 0x6ed9eba1]
mov esi, edi
shl edi, 0xb
shr esi, 0x15
or esi, edi
mov edi, edx
xor edi, esi
mov ebx, edi
xor ebx, ecx
add ebx, dword [ebp - 0x18]
lea ebx, [eax + ebx + 0x6ed9eba1]
mov eax, ebx
shr eax, 0x11
shl ebx, 0xf
or eax, ebx
xor edi, eax
add edi, dword [ebp - 0x40]
push 0x40
lea edi, [ecx + edi + 0x6ed9eba1]
mov ecx, edi
shl edi, 3
shr ecx, 0x1d
or ecx, edi
mov edi, esi
xor edi, eax
xor edi, ecx
add edi, dword [ebp - 0x20]
push 0
lea edi, [edx + edi + 0x6ed9eba1]
mov edx, edi
shl edi, 9
shr edx, 0x17
or edx, edi
mov edi, edx
xor edi, eax
xor edi, ecx
add edi, dword [ebp - 0x30]
lea edi, [esi + edi + 0x6ed9eba1]
mov esi, edi
shl edi, 0xb
shr esi, 0x15
or esi, edi
mov edi, edx
xor edi, esi
xor edi, ecx
add edi, dword [ebp - 0x10]
lea edi, [eax + edi + 0x6ed9eba1]
mov eax, dword [ebp + 8]
mov ebx, dword [eax]
add ebx, ecx
mov ecx, edi
shr ecx, 0x11
shl edi, 0xf
or ecx, edi
add ecx, dword [eax + 4]
mov dword [eax], ebx
mov dword [eax + 4], ecx
mov ecx, dword [eax + 8]
add ecx, esi
mov dword [eax + 8], ecx
mov ecx, dword [eax + 0xc]
add ecx, edx
mov dword [eax + 0xc], ecx
lea eax, [ebp - 0x4c]
push eax
call sub.MSVCR71.dll_memset
add esp, 0xc
pop edi
pop esi
pop ebx
leave
ret