Function at 0x428940
Capabilities:
Encrypt data using chaskey

Disassembly:
sub esp, 0x44
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx]
mov edx, dword [ecx + 8]
push ebx
push ebp
mov ebp, dword [ecx + 0xc]
push esi
push edi
mov edi, dword [ecx + 4]
mov ecx, dword [esp + 0x5c]
lea ebx, [esp + 0x14]
mov dword [esp + 0x5c], ebx
mov ebx, 0xfffffffe
sub ebx, ecx
lea esi, [ecx + 2]
mov dword [esp + 0x10], ebx
xor ebx, ebx
mov bh, byte [esi + 1]
xor ecx, ecx
mov cl, byte [esi - 1]
add esi, 4
mov bl, byte [esi - 4]
shl ebx, 8
or ebx, ecx
xor ecx, ecx
mov cl, byte [esi - 6]
shl ebx, 8
or ebx, ecx
mov ecx, dword [esp + 0x5c]
mov dword [ecx], ebx
add ecx, 4
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x10]
add ecx, esi
cmp ecx, 0x40
jb 0x428970
mov ebx, dword [esp + 0x14]
mov ecx, edi
not ecx
and ecx, ebp
mov esi, edx
and esi, edi
or ecx, esi
add ecx, ebx
add eax, ecx
mov esi, eax
shr esi, 0x1d
shl eax, 3
or esi, eax
mov ecx, esi
not ecx
and ecx, edx
mov eax, edi
and eax, esi
or ecx, eax
add ecx, dword [esp + 0x18]
add ebp, ecx
mov eax, ebp
shr eax, 0x19
shl ebp, 7
or eax, ebp
mov ecx, eax
not ecx
and ecx, edi
mov ebx, eax
and ebx, esi
or ecx, ebx
add ecx, dword [esp + 0x1c]
add edx, ecx
mov ecx, edx
shl edx, 0xb
mov ebp, dword [esp + 0x24]
shr ecx, 0x15
or ecx, edx
mov ebx, eax
and ebx, ecx
mov edx, ecx
not edx
and edx, esi
or edx, ebx
add edx, dword [esp + 0x20]
add edi, edx
mov edx, edi
shr edi, 0xd
shl edx, 0x13
or edx, edi
mov edi, edx
not edi
and edi, eax
mov ebx, ecx
and ebx, edx
or edi, ebx
add edi, ebp
add esi, edi
mov edi, esi
shl esi, 3
shr edi, 0x1d
or edi, esi
mov esi, edi
not esi
and esi, ecx
mov ebx, edx
and ebx, edi
or esi, ebx
add esi, dword [esp + 0x28]
add eax, esi
mov esi, eax
shl eax, 7
shr esi, 0x19
or esi, eax
mov eax, esi
not eax
and eax, edx
mov ebx, esi
and ebx, edi
or eax, ebx
add eax, dword [esp + 0x2c]
add ecx, eax
mov eax, ecx
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
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x34]
add ecx, ebx
add edx, ecx
mov ecx, edx
shr edx, 0xd
shl ecx, 0x13
or ecx, edx
mov ebx, eax
mov edx, ecx
not edx
and edx, esi
and ebx, ecx
or edx, ebx
add edx, ebp
add edi, edx
mov ebx, edi
lea edx, [edi*8]
shr ebx, 0x1d
or ebx, edx
mov edi, ecx
and edi, ebx
mov edx, ebx
not edx
and edx, eax
or edx, edi
add edx, dword [esp + 0x38]
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, ebx
or esi, edi
add esi, dword [esp + 0x3c]
add eax, esi
mov esi, eax
shl eax, 0xb
shr esi, 0x15
or esi, eax
mov eax, esi
not eax
and eax, ebx
mov edi, edx
and edi, esi
or eax, edi
add eax, dword [esp + 0x40]
add ecx, eax
mov eax, ecx
shr ecx, 0xd
shl eax, 0x13
or eax, ecx
mov ecx, eax
not ecx
mov edi, esi
and ecx, edx
and edi, eax
or ecx, edi
add ecx, dword [esp + 0x44]
add ebx, ecx
mov ebp, dword [esp + 0x48]
mov edi, ebx
lea ecx, [ebx*8]
shr edi, 0x1d
or edi, ecx
mov ebx, eax
and ebx, edi
mov ecx, edi
not ecx
and ecx, esi
or ecx, ebx
add ecx, ebp
add edx, ecx
mov ebx, edx
shl edx, 7
shr ebx, 0x19
or ebx, edx
mov edx, ebx
not edx
and edx, eax
mov ecx, ebx
and ecx, edi
or edx, ecx
add edx, dword [esp + 0x4c]
add esi, edx
mov ecx, esi
shl esi, 0xb
shr ecx, 0x15
or ecx, esi
mov edx, ecx
not edx
and edx, edi
mov esi, ebx
and esi, ecx
or edx, esi
add edx, dword [esp + 0x50]
add eax, edx
mov edx, eax
shr eax, 0xd
shl edx, 0x13
or edx, eax
mov eax, ecx
or eax, edx
and eax, ebx
mov esi, ecx
and esi, edx
or eax, esi
add eax, dword [esp + 0x14]
lea edi, [edi + eax + 0x5a827999]
mov esi, edi
lea eax, [edi*8]
shr esi, 0x1d
or esi, eax
mov eax, edx
or eax, esi
mov ebp, eax
and ebp, ecx
mov edi, edx
and edi, esi
or ebp, edi
mov dword [esp + 0x5c], edi
add ebp, dword [esp + 0x24]
lea ebx, [ebx + ebp + 0x5a827999]
mov ebp, dword [esp + 0x34]
mov edi, ebx
shl ebx, 5
shr edi, 0x1b
or edi, ebx
mov ebx, dword [esp + 0x5c]
and eax, edi
or eax, ebx
add eax, ebp
lea ecx, [ecx + eax + 0x5a827999]
mov eax, ecx
mov ebp, dword [esp + 0x44]
shl ecx, 9
shr eax, 0x17
or eax, ecx
mov ecx, eax
or ecx, esi
and ecx, edi
mov ebx, eax
and ebx, esi
or ecx, ebx
add ecx, ebp
mov ebp, dword [esp + 0x18]
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, edi
mov ebx, eax
and ebx, ecx
or edx, ebx
add edx, ebp
lea esi, [esi + edx + 0x5a827999]
mov edx, esi
shl esi, 3
shr edx, 0x1d
or edx, esi
mov esi, ecx
or esi, edx
mov ebp, esi
and ebp, eax
mov ebx, ecx
and ebx, edx
or ebp, ebx
mov dword [esp + 0x5c], ebx
add ebp, dword [esp + 0x28]
lea edi, [edi + ebp + 0x5a827999]
mov ebp, dword [esp + 0x38]
mov ebx, edi
shl edi, 5
shr ebx, 0x1b
or ebx, edi
mov edi, dword [esp + 0x5c]
and esi, ebx
or esi, edi
add esi, ebp
mov ebp, dword [esp + 0x48]
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, ebx
mov edi, eax
and edi, edx
or esi, edi
add esi, ebp
mov ebp, dword [esp + 0x1c]
lea esi, [ecx + esi + 0x5a827999]
mov ecx, esi
shl esi, 0xd
shr ecx, 0x13
or ecx, esi
mov esi, eax
or esi, ecx
and esi, ebx
mov edi, eax
and edi, ecx
or esi, edi
add esi, ebp
lea esi, [edx + esi + 0x5a827999]
mov edx, esi
shl esi, 3
shr edx, 0x1d
or edx, esi
mov esi, ecx
or esi, edx
mov ebp, esi
and ebp, eax
mov edi, ecx
and edi, edx
or ebp, edi
mov dword [esp + 0x5c], edi
add ebp, dword [esp + 0x2c]
lea ebx, [ebx + ebp + 0x5a827999]
mov ebp, dword [esp + 0x3c]
mov edi, ebx
shl ebx, 5
shr edi, 0x1b
or edi, ebx
mov ebx, dword [esp + 0x5c]
and esi, edi
or esi, ebx
add esi, ebp
lea esi, [eax + esi + 0x5a827999]
mov eax, esi
shl esi, 9
mov ebp, dword [esp + 0x4c]
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, ebp
lea esi, [ecx + esi + 0x5a827999]
mov ebp, dword [esp + 0x20]
mov ecx, esi
shl esi, 0xd
shr ecx, 0x13
or ecx, esi
mov esi, eax
or esi, ecx
and esi, edi
mov ebx, eax
and ebx, ecx
or esi, ebx
add esi, ebp
lea esi, [edx + esi + 0x5a827999]
mov edx, esi
shl esi, 3
shr edx, 0x1d
or edx, esi
mov esi, ecx
or esi, edx
mov ebp, esi
and ebp, eax
mov ebx, ecx
and ebx, edx
or ebp, ebx
mov dword [esp + 0x5c], ebx
mov ebx, ebp
mov ebp, dword [esp + 0x30]
add ebx, ebp
lea edi, [edi + ebx + 0x5a827999]
mov ebx, edi
shl edi, 5
shr ebx, 0x1b
or ebx, edi
mov edi, dword [esp + 0x5c]
and esi, ebx
or esi, edi
add esi, dword [esp + 0x40]
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, ebx
mov edi, eax
and edi, edx
or esi, edi
add esi, dword [esp + 0x50]
lea ecx, [ecx + esi + 0x5a827999]
mov edi, dword [esp + 0x14]
mov esi, ecx
shr esi, 0x13
shl ecx, 0xd
or esi, ecx
mov ecx, ebx
xor ecx, eax
xor ecx, esi
add ecx, edi
mov edi, dword [esp + 0x34]
lea edx, [edx + ecx + 0x6ed9eba1]
mov ecx, edx
shl edx, 3
shr ecx, 0x1d
or ecx, edx
mov edx, eax
xor edx, esi
xor edx, ecx
add edx, edi
lea edi, [ebx + edx + 0x6ed9eba1]
mov ebx, dword [esp + 0x24]
mov edx, edi
shl edi, 9
shr edx, 0x17
or edx, edi
mov edi, edx
xor edi, esi
xor edi, ecx
add edi, ebx
lea eax, [eax + edi + 0x6ed9eba1]
mov edi, eax
shl eax, 0xb
shr edi, 0x15
or edi, eax
mov ebx, edx
xor ebx, edi
mov eax, ebx
xor eax, ecx
add eax, dword [esp + 0x44]
lea esi, [esi + eax + 0x6ed9eba1]
mov eax, esi
shl esi, 0xf
shr eax, 0x11
or eax, esi
mov esi, dword [esp + 0x1c]
xor ebx, eax
add ebx, esi
lea esi, [ecx + ebx + 0x6ed9eba1]
mov ebx, dword [esp + 0x3c]
mov ecx, esi
shl esi, 3
shr ecx, 0x1d
or ecx, esi
mov esi, edi
xor esi, eax
xor esi, ecx
add esi, ebx
mov ebx, dword [esp + 0x2c]
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, ebx
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 [esp + 0x4c]
lea ebx, [eax + ebx + 0x6ed9eba1]
mov eax, ebx
shl ebx, 0xf
shr eax, 0x11
or eax, ebx
xor edi, eax
add edi, dword [esp + 0x18]
lea edi, [ecx + edi + 0x6ed9eba1]
mov ecx, edi
shl edi, 3
mov ebx, dword [esp + 0x38]
shr ecx, 0x1d
or ecx, edi
mov edi, esi
xor edi, eax
xor edi, ecx
add edi, ebx
lea edi, [edx + edi + 0x6ed9eba1]
mov edx, edi
shl edi, 9
mov ebx, dword [esp + 0x28]
shr edx, 0x17
or edx, edi
mov edi, edx
xor edi, eax
xor edi, ecx
add edi, ebx
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 [esp + 0x48]
lea ebx, [eax + ebx + 0x6ed9eba1]
mov eax, ebx
shl ebx, 0xf
shr eax, 0x11
or eax, ebx
mov ebx, dword [esp + 0x20]
xor edi, eax
add edi, ebx
mov ebx, dword [esp + 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, ebx
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, ebp
mov ebp, dword [esp + 0x50]
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, ebp
lea edi, [eax + edi + 0x6ed9eba1]
mov eax, dword [esp + 0x58]
mov ebx, dword [eax]
add ebx, ecx
mov dword [eax], ebx
mov ecx, edi
shr ecx, 0x11
shl edi, 0xf
or ecx, edi
add ecx, dword [eax + 4]
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
push 0x40
lea edx, [esp + 0x18]
push 0
push edx
mov dword [eax + 0xc], ecx
call fcn.00420650
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret