Function at 0x401cb2
Capabilities:
Encrypt data using chaskey

Disassembly:
push ebx
push esi
push edi
push ebp
push 5
pop ecx
push 0
loop 0x401cb9
mov dword [esp], eax
mov eax, dword [esp]
mov ecx, dword [eax + 0x58]
mov eax, dword [esp]
mov ebx, dword [eax + 0x5c]
mov eax, dword [esp]
mov esi, dword [eax + 0x60]
mov eax, dword [esp]
mov eax, dword [eax + 0x64]
mov edi, dword [esp]
mov edi, dword [edi + 0x68]
mov dword [esp + 4], edi
mov edi, dword [esp]
mov edi, dword [edi + 0x6c]
mov dword [esp + 8], edi
mov edi, dword [esp]
mov edi, dword [edi + 0x70]
mov dword [esp + 0xc], edi
mov edi, dword [esp]
mov edi, dword [edi + 0x74]
mov dword [esp + 0x10], edi
mov edi, esi
xor edi, ebx
xor edi, eax
add edi, dword [edx]
add ecx, edi
mov edi, ecx
shl edi, 0xb
shr ecx, 0x15
or edi, ecx
mov ecx, edi
mov edi, ebx
xor edi, ecx
xor edi, esi
add edi, dword [edx + 4]
add eax, edi
mov edi, eax
shl edi, 0xe
shr eax, 0x12
or edi, eax
mov eax, edi
mov edi, ecx
xor edi, eax
xor edi, ebx
add edi, dword [edx + 8]
add esi, edi
mov edi, esi
shl edi, 0xf
shr esi, 0x11
or edi, esi
mov esi, edi
mov edi, eax
xor edi, esi
xor edi, ecx
add edi, dword [edx + 0xc]
add ebx, edi
mov edi, ebx
shl edi, 0xc
shr ebx, 0x14
or edi, ebx
mov ebx, edi
mov edi, esi
xor edi, ebx
xor edi, eax
add edi, dword [edx + 0x10]
add ecx, edi
mov edi, ecx
shl edi, 5
shr ecx, 0x1b
or edi, ecx
mov ecx, edi
mov edi, ebx
xor edi, ecx
xor edi, esi
add edi, dword [edx + 0x14]
add eax, edi
mov edi, eax
shl edi, 8
shr eax, 0x18
or edi, eax
mov eax, edi
mov edi, ecx
xor edi, eax
xor edi, ebx
add edi, dword [edx + 0x18]
add esi, edi
mov edi, esi
shl edi, 7
shr esi, 0x19
or edi, esi
mov esi, edi
mov edi, eax
xor edi, esi
xor edi, ecx
add edi, dword [edx + 0x1c]
add ebx, edi
mov edi, ebx
shl edi, 9
shr ebx, 0x17
or edi, ebx
mov ebx, edi
mov edi, esi
xor edi, ebx
xor edi, eax
add edi, dword [edx + 0x20]
add ecx, edi
mov edi, ecx
shl edi, 0xb
shr ecx, 0x15
or edi, ecx
mov ecx, edi
mov edi, ebx
xor edi, ecx
xor edi, esi
add edi, dword [edx + 0x24]
add eax, edi
mov edi, eax
shl edi, 0xd
shr eax, 0x13
or edi, eax
mov eax, edi
mov edi, ecx
xor edi, eax
xor edi, ebx
add edi, dword [edx + 0x28]
add esi, edi
mov edi, esi
shl edi, 0xe
shr esi, 0x12
or edi, esi
mov esi, edi
mov edi, eax
xor edi, esi
xor edi, ecx
add edi, dword [edx + 0x2c]
add ebx, edi
mov edi, ebx
shl edi, 0xf
shr ebx, 0x11
or edi, ebx
mov ebx, edi
mov edi, esi
xor edi, ebx
xor edi, eax
add edi, dword [edx + 0x30]
add ecx, edi
mov edi, ecx
shl edi, 6
shr ecx, 0x1a
or edi, ecx
mov ecx, edi
mov edi, ebx
xor edi, ecx
xor edi, esi
add edi, dword [edx + 0x34]
add eax, edi
mov edi, eax
shl edi, 7
shr eax, 0x19
or edi, eax
mov eax, edi
mov edi, ecx
xor edi, eax
xor edi, ebx
add edi, dword [edx + 0x38]
add esi, edi
mov edi, esi
shl edi, 9
shr esi, 0x17
or edi, esi
mov esi, edi
mov edi, eax
xor edi, esi
xor edi, ecx
add edi, dword [edx + 0x3c]
add ebx, edi
mov edi, ebx
shl edi, 8
shr ebx, 0x18
or edi, ebx
mov ebx, edi
mov edi, dword [esp + 8]
and edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x10]
not ebp
and ebp, dword [esp + 0xc]
or edi, ebp
add edi, dword [edx + 0x14]
add edi, 0x50a28be6
add dword [esp + 4], edi
mov edi, dword [esp + 4]
shl edi, 8
mov ebp, dword [esp + 4]
shr ebp, 0x18
or edi, ebp
mov dword [esp + 4], edi
mov edi, dword [esp + 4]
and edi, dword [esp + 0xc]
mov ebp, dword [esp + 0xc]
not ebp
and ebp, dword [esp + 8]
or edi, ebp
add edi, dword [edx + 0x38]
add edi, 0x50a28be6
add dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
shl edi, 9
mov ebp, dword [esp + 0x10]
shr ebp, 0x17
or edi, ebp
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
and edi, dword [esp + 8]
mov ebp, dword [esp + 8]
not ebp
and ebp, dword [esp + 4]
or edi, ebp
add edi, dword [edx + 0x1c]
add edi, 0x50a28be6
add dword [esp + 0xc], edi
mov edi, dword [esp + 0xc]
shl edi, 9
mov ebp, dword [esp + 0xc]
shr ebp, 0x17
or edi, ebp
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xc]
and edi, dword [esp + 4]
mov ebp, dword [esp + 4]
not ebp
and ebp, dword [esp + 0x10]
or edi, ebp
add edi, dword [edx]
add edi, 0x50a28be6
add dword [esp + 8], edi
mov edi, dword [esp + 8]
shl edi, 0xb
mov ebp, dword [esp + 8]
shr ebp, 0x15
or edi, ebp
mov dword [esp + 8], edi
mov edi, dword [esp + 8]
and edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x10]
not ebp
and ebp, dword [esp + 0xc]
or edi, ebp
add edi, dword [edx + 0x24]
add edi, 0x50a28be6
add dword [esp + 4], edi
mov edi, dword [esp + 4]
shl edi, 0xd
mov ebp, dword [esp + 4]
shr ebp, 0x13
or edi, ebp
mov dword [esp + 4], edi
mov edi, dword [esp + 4]
and edi, dword [esp + 0xc]
mov ebp, dword [esp + 0xc]
not ebp
and ebp, dword [esp + 8]
or edi, ebp
add edi, dword [edx + 8]
add edi, 0x50a28be6
add dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
shl edi, 0xf
mov ebp, dword [esp + 0x10]
shr ebp, 0x11
or edi, ebp
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
and edi, dword [esp + 8]
mov ebp, dword [esp + 8]
not ebp
and ebp, dword [esp + 4]
or edi, ebp
add edi, dword [edx + 0x2c]
add edi, 0x50a28be6
add dword [esp + 0xc], edi
mov edi, dword [esp + 0xc]
shl edi, 0xf
mov ebp, dword [esp + 0xc]
shr ebp, 0x11
or edi, ebp
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xc]
and edi, dword [esp + 4]
mov ebp, dword [esp + 4]
not ebp
and ebp, dword [esp + 0x10]
or edi, ebp
add edi, dword [edx + 0x10]
add edi, 0x50a28be6
add dword [esp + 8], edi
mov edi, dword [esp + 8]
shl edi, 5
mov ebp, dword [esp + 8]
shr ebp, 0x1b
or edi, ebp
mov dword [esp + 8], edi
mov edi, dword [esp + 8]
and edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x10]
not ebp
and ebp, dword [esp + 0xc]
or edi, ebp
add edi, dword [edx + 0x34]
add edi, 0x50a28be6
add dword [esp + 4], edi
mov edi, dword [esp + 4]
shl edi, 7
mov ebp, dword [esp + 4]
shr ebp, 0x19
or edi, ebp
mov dword [esp + 4], edi
mov edi, dword [esp + 4]
and edi, dword [esp + 0xc]
mov ebp, dword [esp + 0xc]
not ebp
and ebp, dword [esp + 8]
or edi, ebp
add edi, dword [edx + 0x18]
add edi, 0x50a28be6
add dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
shl edi, 7
mov ebp, dword [esp + 0x10]
shr ebp, 0x19
or edi, ebp
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
and edi, dword [esp + 8]
mov ebp, dword [esp + 8]
not ebp
and ebp, dword [esp + 4]
or edi, ebp
add edi, dword [edx + 0x3c]
add edi, 0x50a28be6
add dword [esp + 0xc], edi
mov edi, dword [esp + 0xc]
shl edi, 8
mov ebp, dword [esp + 0xc]
shr ebp, 0x18
or edi, ebp
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xc]
and edi, dword [esp + 4]
mov ebp, dword [esp + 4]
not ebp
and ebp, dword [esp + 0x10]
or edi, ebp
add edi, dword [edx + 0x20]
add edi, 0x50a28be6
add dword [esp + 8], edi
mov edi, dword [esp + 8]
shl edi, 0xb
mov ebp, dword [esp + 8]
shr ebp, 0x15
or edi, ebp
mov dword [esp + 8], edi
mov edi, dword [esp + 8]
and edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x10]
not ebp
and ebp, dword [esp + 0xc]
or edi, ebp
add edi, dword [edx + 4]
add edi, 0x50a28be6
add dword [esp + 4], edi
mov edi, dword [esp + 4]
shl edi, 0xe
mov ebp, dword [esp + 4]
shr ebp, 0x12
or edi, ebp
mov dword [esp + 4], edi
mov edi, dword [esp + 4]
and edi, dword [esp + 0xc]
mov ebp, dword [esp + 0xc]
not ebp
and ebp, dword [esp + 8]
or edi, ebp
add edi, dword [edx + 0x28]
add edi, 0x50a28be6
add dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
shl edi, 0xe
mov ebp, dword [esp + 0x10]
shr ebp, 0x12
or edi, ebp
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
and edi, dword [esp + 8]
mov ebp, dword [esp + 8]
not ebp
and ebp, dword [esp + 4]
or edi, ebp
add edi, dword [edx + 0xc]
add edi, 0x50a28be6
add dword [esp + 0xc], edi
mov edi, dword [esp + 0xc]
shl edi, 0xc
mov ebp, dword [esp + 0xc]
shr ebp, 0x14
or edi, ebp
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xc]
and edi, dword [esp + 4]
mov ebp, dword [esp + 4]
not ebp
and ebp, dword [esp + 0x10]
or edi, ebp
add edi, dword [edx + 0x30]
add edi, 0x50a28be6
add dword [esp + 8], edi
mov edi, dword [esp + 8]
shl edi, 6
mov ebp, dword [esp + 8]
shr ebp, 0x1a
or edi, ebp
mov dword [esp + 8], edi
mov edi, ecx
mov ecx, dword [esp + 4]
mov dword [esp + 4], edi
mov edi, esi
and edi, ebx
mov ebp, ebx
not ebp
and ebp, eax
or edi, ebp
add edi, dword [edx + 0x1c]
add edi, 0x5a827999
add ecx, edi
mov edi, ecx
shl edi, 7
shr ecx, 0x19
or edi, ecx
mov ecx, edi
mov edi, ebx
and edi, ecx
mov ebp, ecx
not ebp
and ebp, esi
or edi, ebp
add edi, dword [edx + 0x10]
add edi, 0x5a827999
add eax, edi
mov edi, eax
shl edi, 6
shr eax, 0x1a
or edi, eax
mov eax, edi
mov edi, ecx
and edi, eax
mov ebp, eax
not ebp
and ebp, ebx
or edi, ebp
add edi, dword [edx + 0x34]
add edi, 0x5a827999
add esi, edi
mov edi, esi
shl edi, 8
shr esi, 0x18
or edi, esi
mov esi, edi
mov edi, eax
and edi, esi
mov ebp, esi
not ebp
and ebp, ecx
or edi, ebp
add edi, dword [edx + 4]
add edi, 0x5a827999
add ebx, edi
mov edi, ebx
shl edi, 0xd
shr ebx, 0x13
or edi, ebx
mov ebx, edi
mov edi, esi
and edi, ebx
mov ebp, ebx
not ebp
and ebp, eax
or edi, ebp
add edi, dword [edx + 0x28]
add edi, 0x5a827999
add ecx, edi
mov edi, ecx
shl edi, 0xb
shr ecx, 0x15
or edi, ecx
mov ecx, edi
mov edi, ebx
and edi, ecx
mov ebp, ecx
not ebp
and ebp, esi
or edi, ebp
add edi, dword [edx + 0x18]
add edi, 0x5a827999
add eax, edi
mov edi, eax
shl edi, 9
shr eax, 0x17
or edi, eax
mov eax, edi
mov edi, ecx
and edi, eax
mov ebp, eax
not ebp
and ebp, ebx
or edi, ebp
add edi, dword [edx + 0x3c]
add edi, 0x5a827999
add esi, edi
mov edi, esi
shl edi, 7
shr esi, 0x19
or edi, esi
mov esi, edi
mov edi, eax
and edi, esi
mov ebp, esi
not ebp
and ebp, ecx
or edi, ebp
add edi, dword [edx + 0xc]
add edi, 0x5a827999
add ebx, edi
mov edi, ebx
shl edi, 0xf
shr ebx, 0x11
or edi, ebx
mov ebx, edi
mov edi, esi
and edi, ebx
mov ebp, ebx
not ebp
and ebp, eax
or edi, ebp
add edi, dword [edx + 0x30]
add edi, 0x5a827999
add ecx, edi
mov edi, ecx
shl edi, 7
shr ecx, 0x19
or edi, ecx
mov ecx, edi
mov edi, ebx
and edi, ecx
mov ebp, ecx
not ebp
and ebp, esi
or edi, ebp
add edi, dword [edx]
add edi, 0x5a827999
add eax, edi
mov edi, eax
shl edi, 0xc
shr eax, 0x14
or edi, eax
mov eax, edi
mov edi, ecx
and edi, eax
mov ebp, eax
not ebp
and ebp, ebx
or edi, ebp
add edi, dword [edx + 0x24]
add edi, 0x5a827999
add esi, edi
mov edi, esi
shl edi, 0xf
shr esi, 0x11
or edi, esi
mov esi, edi
mov edi, eax
and edi, esi
mov ebp, esi
not ebp
and ebp, ecx
or edi, ebp
add edi, dword [edx + 0x14]
add edi, 0x5a827999
add ebx, edi
mov edi, ebx
shl edi, 9
shr ebx, 0x17
or edi, ebx
mov ebx, edi
mov edi, esi
and edi, ebx
mov ebp, ebx
not ebp
and ebp, eax
or edi, ebp
add edi, dword [edx + 8]
add edi, 0x5a827999
add ecx, edi
mov edi, ecx
shl edi, 0xb
shr ecx, 0x15
or edi, ecx
mov ecx, edi
mov edi, ebx
and edi, ecx
mov ebp, ecx
not ebp
and ebp, esi
or edi, ebp
add edi, dword [edx + 0x38]
add edi, 0x5a827999
add eax, edi
mov edi, eax
shl edi, 7
shr eax, 0x19
or edi, eax
mov eax, edi
mov edi, ecx
and edi, eax
mov ebp, eax
not ebp
and ebp, ebx
or edi, ebp
add edi, dword [edx + 0x2c]
add edi, 0x5a827999
add esi, edi
mov edi, esi
shl edi, 0xd
shr esi, 0x13
or edi, esi
mov esi, edi
mov edi, eax
and edi, esi
mov ebp, esi
not ebp
and ebp, ecx
or edi, ebp
add edi, dword [edx + 0x20]
add edi, 0x5a827999
add ebx, edi
mov edi, ebx
shl edi, 0xc
shr ebx, 0x14
or edi, ebx
mov ebx, edi
mov edi, dword [esp + 0xc]
not edi
or edi, dword [esp + 8]
xor edi, dword [esp + 0x10]
add edi, dword [edx + 0x18]
add edi, 0x5c4dd124
add dword [esp + 4], edi
mov edi, dword [esp + 4]
shl edi, 9
mov ebp, dword [esp + 4]
shr ebp, 0x17
or edi, ebp
mov dword [esp + 4], edi
mov edi, dword [esp + 8]
not edi
or edi, dword [esp + 4]
xor edi, dword [esp + 0xc]
add edi, dword [edx + 0x2c]
add edi, 0x5c4dd124
add dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
shl edi, 0xd
mov ebp, dword [esp + 0x10]
shr ebp, 0x13
or edi, ebp
mov dword [esp + 0x10], edi
mov edi, dword [esp + 4]
not edi
or edi, dword [esp + 0x10]
xor edi, dword [esp + 8]
add edi, dword [edx + 0xc]
add edi, 0x5c4dd124
add dword [esp + 0xc], edi
mov edi, dword [esp + 0xc]
shl edi, 0xf
mov ebp, dword [esp + 0xc]
shr ebp, 0x11
or edi, ebp
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x10]
not edi
or edi, dword [esp + 0xc]
xor edi, dword [esp + 4]
add edi, dword [edx + 0x1c]
add edi, 0x5c4dd124
add dword [esp + 8], edi
mov edi, dword [esp + 8]
shl edi, 7
mov ebp, dword [esp + 8]
shr ebp, 0x19
or edi, ebp
mov dword [esp + 8], edi
mov edi, dword [esp + 0xc]
not edi
or edi, dword [esp + 8]
xor edi, dword [esp + 0x10]
add edi, dword [edx]
add edi, 0x5c4dd124
add dword [esp + 4], edi
mov edi, dword [esp + 4]
shl edi, 0xc
mov ebp, dword [esp + 4]
shr ebp, 0x14
or edi, ebp
mov dword [esp + 4], edi
mov edi, dword [esp + 8]
not edi
or edi, dword [esp + 4]
xor edi, dword [esp + 0xc]
add edi, dword [edx + 0x34]
add edi, 0x5c4dd124
add dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
shl edi, 8
mov ebp, dword [esp + 0x10]
shr ebp, 0x18
or edi, ebp
mov dword [esp + 0x10], edi
mov edi, dword [esp + 4]
not edi
or edi, dword [esp + 0x10]
xor edi, dword [esp + 8]
add edi, dword [edx + 0x14]
add edi, 0x5c4dd124
add dword [esp + 0xc], edi
mov edi, dword [esp + 0xc]
shl edi, 9
mov ebp, dword [esp + 0xc]
shr ebp, 0x17
or edi, ebp
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x10]
not edi
or edi, dword [esp + 0xc]
xor edi, dword [esp + 4]
add edi, dword [edx + 0x28]
add edi, 0x5c4dd124
add dword [esp + 8], edi
mov edi, dword [esp + 8]
shl edi, 0xb
mov ebp, dword [esp + 8]
shr ebp, 0x15
or edi, ebp
mov dword [esp + 8], edi
mov edi, dword [esp + 0xc]
not edi
or edi, dword [esp + 8]
xor edi, dword [esp + 0x10]
add edi, dword [edx + 0x38]
add edi, 0x5c4dd124
add dword [esp + 4], edi
mov edi, dword [esp + 4]
shl edi, 7
mov ebp, dword [esp + 4]
shr ebp, 0x19
or edi, ebp
mov dword [esp + 4], edi
mov edi, dword [esp + 8]
not edi
or edi, dword [esp + 4]
xor edi, dword [esp + 0xc]
add edi, dword [edx + 0x3c]
add edi, 0x5c4dd124
add dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
shl edi, 7
mov ebp, dword [esp + 0x10]
shr ebp, 0x19
or edi, ebp
mov dword [esp + 0x10], edi
mov edi, dword [esp + 4]
not edi
or edi, dword [esp + 0x10]
xor edi, dword [esp + 8]
add edi, dword [edx + 0x20]
add edi, 0x5c4dd124
add dword [esp + 0xc], edi
mov edi, dword [esp + 0xc]
shl edi, 0xc
mov ebp, dword [esp + 0xc]
shr ebp, 0x14
or edi, ebp
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x10]
not edi
or edi, dword [esp + 0xc]
xor edi, dword [esp + 4]
add edi, dword [edx + 0x30]
add edi, 0x5c4dd124
add dword [esp + 8], edi
mov edi, dword [esp + 8]
shl edi, 7
mov ebp, dword [esp + 8]
shr ebp, 0x19
or edi, ebp
mov dword [esp + 8], edi
mov edi, dword [esp + 0xc]
not edi
or edi, dword [esp + 8]
xor edi, dword [esp + 0x10]
add edi, dword [edx + 0x10]
add edi, 0x5c4dd124
add dword [esp + 4], edi
mov edi, dword [esp + 4]
shl edi, 6
mov ebp, dword [esp + 4]
shr ebp, 0x1a
or edi, ebp
mov dword [esp + 4], edi
mov edi, dword [esp + 8]
not edi
or edi, dword [esp + 4]
xor edi, dword [esp + 0xc]
add edi, dword [edx + 0x24]
add edi, 0x5c4dd124
add dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
shl edi, 0xf
mov ebp, dword [esp + 0x10]
shr ebp, 0x11
or edi, ebp
mov dword [esp + 0x10], edi
mov edi, dword [esp + 4]
not edi
or edi, dword [esp + 0x10]
xor edi, dword [esp + 8]
add edi, dword [edx + 4]
add edi, 0x5c4dd124
add dword [esp + 0xc], edi
mov edi, dword [esp + 0xc]
shl edi, 0xd
mov ebp, dword [esp + 0xc]
shr ebp, 0x13
or edi, ebp
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x10]
not edi
or edi, dword [esp + 0xc]
xor edi, dword [esp + 4]
add edi, dword [edx + 8]
add edi, 0x5c4dd124
add dword [esp + 8], edi
mov edi, dword [esp + 8]
shl edi, 0xb
mov ebp, dword [esp + 8]
shr ebp, 0x15
or edi, ebp
mov dword [esp + 8], edi
mov edi, ebx
mov ebx, dword [esp + 8]
mov dword [esp + 8], edi
mov edi, esi
not edi
or edi, ebx
xor edi, eax
add edi, dword [edx + 0xc]
add edi, 0x6ed9eba1
add ecx, edi
mov edi, ecx
shl edi, 0xb
shr ecx, 0x15
or edi, ecx
mov ecx, edi
mov edi, ebx
not edi
or edi, ecx
xor edi, esi
add edi, dword [edx + 0x28]
add edi, 0x6ed9eba1
add eax, edi
mov edi, eax
shl edi, 0xd
shr eax, 0x13
or edi, eax
mov eax, edi
mov edi, ecx
not edi
or edi, eax
xor edi, ebx
add edi, dword [edx + 0x38]
add edi, 0x6ed9eba1
add esi, edi
mov edi, esi
shl edi, 6
shr esi, 0x1a
or edi, esi
mov esi, edi
mov edi, eax
not edi
or edi, esi
xor edi, ecx
add edi, dword [edx + 0x10]
add edi, 0x6ed9eba1
add ebx, edi
mov edi, ebx
shl edi, 7
shr ebx, 0x19
or edi, ebx
mov ebx, edi
mov edi, esi
not edi
or edi, ebx
xor edi, eax
add edi, dword [edx + 0x24]
add edi, 0x6ed9eba1
add ecx, edi
mov edi, ecx
shl edi, 0xe
shr ecx, 0x12
or edi, ecx
mov ecx, edi
mov edi, ebx
not edi
or edi, ecx
xor edi, esi
add edi, dword [edx + 0x3c]
add edi, 0x6ed9eba1
add eax, edi
mov edi, eax
shl edi, 9
shr eax, 0x17
or edi, eax
mov eax, edi
mov edi, ecx
not edi
or edi, eax
xor edi, ebx
add edi, dword [edx + 0x20]
add edi, 0x6ed9eba1
add esi, edi
mov edi, esi
shl edi, 0xd
shr esi, 0x13
or edi, esi
mov esi, edi
mov edi, eax
not edi
or edi, esi
xor edi, ecx
add edi, dword [edx + 4]
add edi, 0x6ed9eba1
add ebx, edi
mov edi, ebx
shl edi, 0xf
shr ebx, 0x11
or edi, ebx
mov ebx, edi
mov edi, esi
not edi
or edi, ebx
xor edi, eax
add edi, dword [edx + 8]
add edi, 0x6ed9eba1
add ecx, edi
mov edi, ecx
shl edi, 0xe
shr ecx, 0x12
or edi, ecx
mov ecx, edi
mov edi, ebx
not edi
or edi, ecx
xor edi, esi
add edi, dword [edx + 0x1c]
add edi, 0x6ed9eba1
add eax, edi
mov edi, eax
shl edi, 8
shr eax, 0x18
or edi, eax
mov eax, edi
mov edi, ecx
not edi
or edi, eax
xor edi, ebx
add edi, dword [edx]
add edi, 0x6ed9eba1
add esi, edi
mov edi, esi
shl edi, 0xd
shr esi, 0x13
or edi, esi
mov esi, edi
mov edi, eax
not edi
or edi, esi
xor edi, ecx
add edi, dword [edx + 0x18]
add edi, 0x6ed9eba1
add ebx, edi
mov edi, ebx
shl edi, 6
shr ebx, 0x1a
or edi, ebx
mov ebx, edi
mov edi, esi
not edi
or edi, ebx
xor edi, eax
add edi, dword [edx + 0x34]
add edi, 0x6ed9eba1
add ecx, edi
mov edi, ecx
shl edi, 5
shr ecx, 0x1b
or edi, ecx
mov ecx, edi
mov edi, ebx
not edi
or edi, ecx
xor edi, esi
add edi, dword [edx + 0x2c]
add edi, 0x6ed9eba1
add eax, edi
mov edi, eax
shl edi, 0xc
shr eax, 0x14
or edi, eax
mov eax, edi
mov edi, ecx
not edi
or edi, eax
xor edi, ebx
add edi, dword [edx + 0x14]
add edi, 0x6ed9eba1
add esi, edi
mov edi, esi
shl edi, 7
shr esi, 0x19
or edi, esi
mov esi, edi
mov edi, eax
not edi
or edi, esi
xor edi, ecx
add edi, dword [edx + 0x30]
add edi, 0x6ed9eba1
add ebx, edi
mov edi, ebx
shl edi, 5
shr ebx, 0x1b
or edi, ebx
mov ebx, edi
mov edi, dword [esp + 8]
and edi, dword [esp + 0xc]
mov ebp, dword [esp + 8]
not ebp
and ebp, dword [esp + 0x10]
or edi, ebp
add edi, dword [edx + 0x3c]
add edi, 0x6d703ef3
add dword [esp + 4], edi
mov edi, dword [esp + 4]
shl edi, 9
mov ebp, dword [esp + 4]
shr ebp, 0x17
or edi, ebp
mov dword [esp + 4], edi
mov edi, dword [esp + 4]
and edi, dword [esp + 8]
mov ebp, dword [esp + 4]
not ebp
and ebp, dword [esp + 0xc]
or edi, ebp
add edi, dword [edx + 0x14]
add edi, 0x6d703ef3
add dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
shl edi, 7
mov ebp, dword [esp + 0x10]
shr ebp, 0x19
or edi, ebp
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
and edi, dword [esp + 4]
mov ebp, dword [esp + 0x10]
not ebp
and ebp, dword [esp + 8]
or edi, ebp
add edi, dword [edx + 4]
add edi, 0x6d703ef3
add dword [esp + 0xc], edi
mov edi, dword [esp + 0xc]
shl edi, 0xf
mov ebp, dword [esp + 0xc]
shr ebp, 0x11
or edi, ebp
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xc]
and edi, dword [esp + 0x10]
mov ebp, dword [esp + 0xc]
not ebp
and ebp, dword [esp + 4]
or edi, ebp
add edi, dword [edx + 0xc]
add edi, 0x6d703ef3
add dword [esp + 8], edi
mov edi, dword [esp + 8]
shl edi, 0xb
mov ebp, dword [esp + 8]
shr ebp, 0x15
or edi, ebp
mov dword [esp + 8], edi
mov edi, dword [esp + 8]
and edi, dword [esp + 0xc]
mov ebp, dword [esp + 8]
not ebp
and ebp, dword [esp + 0x10]
or edi, ebp
add edi, dword [edx + 0x1c]
add edi, 0x6d703ef3
add dword [esp + 4], edi
mov edi, dword [esp + 4]
shl edi, 8
mov ebp, dword [esp + 4]
shr ebp, 0x18
or edi, ebp
mov dword [esp + 4], edi
mov edi, dword [esp + 4]
and edi, dword [esp + 8]
mov ebp, dword [esp + 4]
not ebp
and ebp, dword [esp + 0xc]
or edi, ebp
add edi, dword [edx + 0x38]
add edi, 0x6d703ef3
add dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
shl edi, 6
mov ebp, dword [esp + 0x10]
shr ebp, 0x1a
or edi, ebp
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
and edi, dword [esp + 4]
mov ebp, dword [esp + 0x10]
not ebp
and ebp, dword [esp + 8]
or edi, ebp
add edi, dword [edx + 0x18]
add edi, 0x6d703ef3
add dword [esp + 0xc], edi
mov edi, dword [esp + 0xc]
shl edi, 6
mov ebp, dword [esp + 0xc]
shr ebp, 0x1a
or edi, ebp
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xc]
and edi, dword [esp + 0x10]
mov ebp, dword [esp + 0xc]
not ebp
and ebp, dword [esp + 4]
or edi, ebp
add edi, dword [edx + 0x24]
add edi, 0x6d703ef3
add dword [esp + 8], edi
mov edi, dword [esp + 8]
shl edi, 0xe
mov ebp, dword [esp + 8]
shr ebp, 0x12
or edi, ebp
mov dword [esp + 8], edi
mov edi, dword [esp + 8]
and edi, dword [esp + 0xc]
mov ebp, dword [esp + 8]
not ebp
and ebp, dword [esp + 0x10]
or edi, ebp
add edi, dword [edx + 0x2c]
add edi, 0x6d703ef3
add dword [esp + 4], edi
mov edi, dword [esp + 4]
shl edi, 0xc
mov ebp, dword [esp + 4]
shr ebp, 0x14
or edi, ebp
mov dword [esp + 4], edi
mov edi, dword [esp + 4]
and edi, dword [esp + 8]
mov ebp, dword [esp + 4]
not ebp
and ebp, dword [esp + 0xc]
or edi, ebp
add edi, dword [edx + 0x20]
add edi, 0x6d703ef3
add dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
shl edi, 0xd
mov ebp, dword [esp + 0x10]
shr ebp, 0x13
or edi, ebp
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
and edi, dword [esp + 4]
mov ebp, dword [esp + 0x10]
not ebp
and ebp, dword [esp + 8]
or edi, ebp
add edi, dword [edx + 0x30]
add edi, 0x6d703ef3
add dword [esp + 0xc], edi
mov edi, dword [esp + 0xc]
shl edi, 5
mov ebp, dword [esp + 0xc]
shr ebp, 0x1b
or edi, ebp
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xc]
and edi, dword [esp + 0x10]
mov ebp, dword [esp + 0xc]
not ebp
and ebp, dword [esp + 4]
or edi, ebp
add edi, dword [edx + 8]
add edi, 0x6d703ef3
add dword [esp + 8], edi
mov edi, dword [esp + 8]
shl edi, 0xe
mov ebp, dword [esp + 8]
shr ebp, 0x12
or edi, ebp
mov dword [esp + 8], edi
mov edi, dword [esp + 8]
and edi, dword [esp + 0xc]
mov ebp, dword [esp + 8]
not ebp
and ebp, dword [esp + 0x10]
or edi, ebp
add edi, dword [edx + 0x28]
add edi, 0x6d703ef3
add dword [esp + 4], edi
mov edi, dword [esp + 4]
shl edi, 0xd
mov ebp, dword [esp + 4]
shr ebp, 0x13
or edi, ebp
mov dword [esp + 4], edi
mov edi, dword [esp + 4]
and edi, dword [esp + 8]
mov ebp, dword [esp + 4]
not ebp
and ebp, dword [esp + 0xc]
or edi, ebp
add edi, dword [edx]
add edi, 0x6d703ef3
add dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
shl edi, 0xd
mov ebp, dword [esp + 0x10]
shr ebp, 0x13
or edi, ebp
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
and edi, dword [esp + 4]
mov ebp, dword [esp + 0x10]
not ebp
and ebp, dword [esp + 8]
or edi, ebp
add edi, dword [edx + 0x10]
add edi, 0x6d703ef3
add dword [esp + 0xc], edi
mov edi, dword [esp + 0xc]
shl edi, 7
mov ebp, dword [esp + 0xc]
shr ebp, 0x19
or edi, ebp
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xc]
and edi, dword [esp + 0x10]
mov ebp, dword [esp + 0xc]
not ebp
and ebp, dword [esp + 4]
or edi, ebp
add edi, dword [edx + 0x34]
add edi, 0x6d703ef3
add dword [esp + 8], edi
mov edi, dword [esp + 8]
shl edi, 5
mov ebp, dword [esp + 8]
shr ebp, 0x1b
or edi, ebp
mov dword [esp + 8], edi
mov edi, esi
mov esi, dword [esp + 0xc]
mov dword [esp + 0xc], edi
mov edi, eax
and edi, ebx
mov ebp, eax
not ebp
and ebp, esi
or edi, ebp
add edi, dword [edx + 4]
add edi, 0x8f1bbcdc
add ecx, edi
mov edi, ecx
shl edi, 0xb
shr ecx, 0x15
or edi, ecx
mov ecx, edi
mov edi, esi
and edi, ecx
mov ebp, esi
not ebp
and ebp, ebx
or edi, ebp
add edi, dword [edx + 0x24]
add edi, 0x8f1bbcdc
add eax, edi
mov edi, eax
shl edi, 0xc
shr eax, 0x14
or edi, eax
mov eax, edi
mov edi, ebx
and edi, eax
mov ebp, ebx
not ebp
and ebp, ecx
or edi, ebp
add edi, dword [edx + 0x2c]
add edi, 0x8f1bbcdc
add esi, edi
mov edi, esi
shl edi, 0xe
shr esi, 0x12
or edi, esi
mov esi, edi
mov edi, ecx
and edi, esi
mov ebp, ecx
not ebp
and ebp, eax
or edi, ebp
add edi, dword [edx + 0x28]
add edi, 0x8f1bbcdc
add ebx, edi
mov edi, ebx
shl edi, 0xf
shr ebx, 0x11
or edi, ebx
mov ebx, edi
mov edi, eax
and edi, ebx
mov ebp, eax
not ebp
and ebp, esi
or edi, ebp
add edi, dword [edx]
add edi, 0x8f1bbcdc
add ecx, edi
mov edi, ecx
shl edi, 0xe
shr ecx, 0x12
or edi, ecx
mov ecx, edi
mov edi, esi
and edi, ecx
mov ebp, esi
not ebp
and ebp, ebx
or edi, ebp
add edi, dword [edx + 0x20]
add edi, 0x8f1bbcdc
add eax, edi
mov edi, eax
shl edi, 0xf
shr eax, 0x11
or edi, eax
mov eax, edi
mov edi, ebx
and edi, eax
mov ebp, ebx
not ebp
and ebp, ecx
or edi, ebp
add edi, dword [edx + 0x30]
add edi, 0x8f1bbcdc
add esi, edi
mov edi, esi
shl edi, 9
shr esi, 0x17
or edi, esi
mov esi, edi
mov edi, ecx
and edi, esi
mov ebp, ecx
not ebp
and ebp, eax
or edi, ebp
add edi, dword [edx + 0x10]
add edi, 0x8f1bbcdc
add ebx, edi
mov edi, ebx
shl edi, 8
shr ebx, 0x18
or edi, ebx
mov ebx, edi
mov edi, eax
and edi, ebx
mov ebp, eax
not ebp
and ebp, esi
or edi, ebp
add edi, dword [edx + 0x34]
add edi, 0x8f1bbcdc
add ecx, edi
mov edi, ecx
shl edi, 9
shr ecx, 0x17
or edi, ecx
mov ecx, edi
mov edi, esi
and edi, ecx
mov ebp, esi
not ebp
and ebp, ebx
or edi, ebp
add edi, dword [edx + 0xc]
add edi, 0x8f1bbcdc
add eax, edi
mov edi, eax
shl edi, 0xe
shr eax, 0x12
or edi, eax
mov eax, edi
mov edi, ebx
and edi, eax
mov ebp, ebx
not ebp
and ebp, ecx
or edi, ebp
add edi, dword [edx + 0x1c]
add edi, 0x8f1bbcdc
add esi, edi
mov edi, esi
shl edi, 5
shr esi, 0x1b
or edi, esi
mov esi, edi
mov edi, ecx
and edi, esi
mov ebp, ecx
not ebp
and ebp, eax
or edi, ebp
add edi, dword [edx + 0x3c]
add edi, 0x8f1bbcdc
add ebx, edi
mov edi, ebx
shl edi, 6
shr ebx, 0x1a
or edi, ebx
mov ebx, edi
mov edi, eax
and edi, ebx
mov ebp, eax
not ebp
and ebp, esi
or edi, ebp
add edi, dword [edx + 0x38]
add edi, 0x8f1bbcdc
add ecx, edi
mov edi, ecx
shl edi, 8
shr ecx, 0x18
or edi, ecx
mov ecx, edi
mov edi, esi
and edi, ecx
mov ebp, esi
not ebp
and ebp, ebx
or edi, ebp
add edi, dword [edx + 0x14]
add edi, 0x8f1bbcdc
add eax, edi
mov edi, eax
shl edi, 6
shr eax, 0x1a
or edi, eax
mov eax, edi
mov edi, ebx
and edi, eax
mov ebp, ebx
not ebp
and ebp, ecx
or edi, ebp
add edi, dword [edx + 0x18]
add edi, 0x8f1bbcdc
add esi, edi
mov edi, esi
shl edi, 5
shr esi, 0x1b
or edi, esi
mov esi, edi
mov edi, ecx
and edi, esi
mov ebp, ecx
not ebp
and ebp, eax
or edi, ebp
add edi, dword [edx + 8]
add edi, 0x8f1bbcdc
add ebx, edi
mov edi, ebx
shl edi, 0xc
shr ebx, 0x14
or edi, ebx
mov ebx, edi
mov edi, dword [esp + 8]
xor edi, dword [esp + 0xc]
xor edi, dword [esp + 0x10]
add edi, dword [edx + 0x20]
add dword [esp + 4], edi
mov edi, dword [esp + 4]
shl edi, 0xf
mov ebp, dword [esp + 4]
shr ebp, 0x11
or edi, ebp
mov dword [esp + 4], edi
mov edi, dword [esp + 4]
xor edi, dword [esp + 8]
xor edi, dword [esp + 0xc]
add edi, dword [edx + 0x18]
add dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
shl edi, 5
mov ebp, dword [esp + 0x10]
shr ebp, 0x1b
or edi, ebp
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
xor edi, dword [esp + 4]
xor edi, dword [esp + 8]
add edi, dword [edx + 0x10]
add dword [esp + 0xc], edi
mov edi, dword [esp + 0xc]
shl edi, 8
mov ebp, dword [esp + 0xc]
shr ebp, 0x18
or edi, ebp
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xc]
xor edi, dword [esp + 0x10]
xor edi, dword [esp + 4]
add edi, dword [edx + 4]
add dword [esp + 8], edi
mov edi, dword [esp + 8]
shl edi, 0xb
mov ebp, dword [esp + 8]
shr ebp, 0x15
or edi, ebp
mov dword [esp + 8], edi
mov edi, dword [esp + 8]
xor edi, dword [esp + 0xc]
xor edi, dword [esp + 0x10]
add edi, dword [edx + 0xc]
add dword [esp + 4], edi
mov edi, dword [esp + 4]
shl edi, 0xe
mov ebp, dword [esp + 4]
shr ebp, 0x12
or edi, ebp
mov dword [esp + 4], edi
mov edi, dword [esp + 4]
xor edi, dword [esp + 8]
xor edi, dword [esp + 0xc]
add edi, dword [edx + 0x2c]
add dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
shl edi, 0xe
mov ebp, dword [esp + 0x10]
shr ebp, 0x12
or edi, ebp
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
xor edi, dword [esp + 4]
xor edi, dword [esp + 8]
add edi, dword [edx + 0x3c]
add dword [esp + 0xc], edi
mov edi, dword [esp + 0xc]
shl edi, 6
mov ebp, dword [esp + 0xc]
shr ebp, 0x1a
or edi, ebp
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xc]
xor edi, dword [esp + 0x10]
xor edi, dword [esp + 4]
add edi, dword [edx]
add dword [esp + 8], edi
mov edi, dword [esp + 8]
shl edi, 0xe
mov ebp, dword [esp + 8]
shr ebp, 0x12
or edi, ebp
mov dword [esp + 8], edi
mov edi, dword [esp + 8]
xor edi, dword [esp + 0xc]
xor edi, dword [esp + 0x10]
add edi, dword [edx + 0x14]
add dword [esp + 4], edi
mov edi, dword [esp + 4]
shl edi, 6
mov ebp, dword [esp + 4]
shr ebp, 0x1a
or edi, ebp
mov dword [esp + 4], edi
mov edi, dword [esp + 4]
xor edi, dword [esp + 8]
xor edi, dword [esp + 0xc]
add edi, dword [edx + 0x30]
add dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
shl edi, 9
mov ebp, dword [esp + 0x10]
shr ebp, 0x17
or edi, ebp
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
xor edi, dword [esp + 4]
xor edi, dword [esp + 8]
add edi, dword [edx + 8]
add dword [esp + 0xc], edi
mov edi, dword [esp + 0xc]
shl edi, 0xc
mov ebp, dword [esp + 0xc]
shr ebp, 0x14
or edi, ebp
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xc]
xor edi, dword [esp + 0x10]
xor edi, dword [esp + 4]
add edi, dword [edx + 0x34]
add dword [esp + 8], edi
mov edi, dword [esp + 8]
shl edi, 9
mov ebp, dword [esp + 8]
shr ebp, 0x17
or edi, ebp
mov dword [esp + 8], edi
mov edi, dword [esp + 8]
xor edi, dword [esp + 0xc]
xor edi, dword [esp + 0x10]
add edi, dword [edx + 0x24]
add dword [esp + 4], edi
mov edi, dword [esp + 4]
shl edi, 0xc
mov ebp, dword [esp + 4]
shr ebp, 0x14
or edi, ebp
mov dword [esp + 4], edi
mov edi, dword [esp + 4]
xor edi, dword [esp + 8]
xor edi, dword [esp + 0xc]
add edi, dword [edx + 0x1c]
add dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
shl edi, 5
mov ebp, dword [esp + 0x10]
shr ebp, 0x1b
or edi, ebp
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x10]
xor edi, dword [esp + 4]
xor edi, dword [esp + 8]
add edi, dword [edx + 0x28]
add dword [esp + 0xc], edi
mov edi, dword [esp + 0xc]
shl edi, 0xf
mov ebp, dword [esp + 0xc]
shr ebp, 0x11
or edi, ebp
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xc]
xor edi, dword [esp + 0x10]
xor edi, dword [esp + 4]
add edi, dword [edx + 0x38]
add dword [esp + 8], edi
mov edx, dword [esp + 8]
shl edx, 8
mov edi, dword [esp + 8]
shr edi, 0x18
or edx, edi
mov dword [esp + 8], edx
mov edi, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], edi
mov edx, dword [esp]
add dword [edx + 0x58], ecx
mov edx, dword [esp]
add dword [edx + 0x5c], ebx
mov edx, dword [esp]
add dword [edx + 0x60], esi
mov edx, dword [esp]
add dword [edx + 0x64], eax
mov eax, dword [esp]
mov edx, dword [esp + 4]
add dword [eax + 0x68], edx
mov eax, dword [esp]
mov edx, dword [esp + 8]
add dword [eax + 0x6c], edx
mov eax, dword [esp]
mov edx, dword [esp + 0xc]
add dword [eax + 0x70], edx
mov eax, dword [esp]
mov edx, dword [esp + 0x10]
add dword [eax + 0x74], edx
add esp, 0x14
pop ebp
pop edi
pop esi
pop ebx
ret