Function at 0x58c520
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x5c
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
shr edx, 6
shl edx, 6
lea edi, [esi + edx]
mov eax, dword [ebp]
mov ebx, dword [ebp + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov ebp, dword [ebp + 0x10]
cmp esi, edi
je 0x58d43a
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], esi
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], ebp
mov esi, dword [esp + 0x58]
mov edi, dword [esi]
bswap edi
mov dword [esp], edi
add ebp, edi
mov edi, edx
xor edi, ecx
and edi, ebx
xor edi, edx
rol ebx, 0x1e
add ebp, edi
mov esi, eax
rol esi, 5
lea ebp, [ebp + esi + 0x5a827999]
mov esi, dword [esp + 0x58]
mov edi, dword [esi + 4]
bswap edi
mov dword [esp + 4], edi
add edx, edi
mov edi, ecx
xor edi, ebx
and edi, eax
xor edi, ecx
rol eax, 0x1e
add edx, edi
mov esi, ebp
rol esi, 5
lea edx, [edx + esi + 0x5a827999]
mov esi, dword [esp + 0x58]
mov edi, dword [esi + 8]
bswap edi
mov dword [esp + 8], edi
add ecx, edi
mov edi, ebx
xor edi, eax
and edi, ebp
xor edi, ebx
rol ebp, 0x1e
add ecx, edi
mov esi, edx
rol esi, 5
lea ecx, [ecx + esi + 0x5a827999]
mov esi, dword [esp + 0x58]
mov edi, dword [esi + 0xc]
bswap edi
mov dword [esp + 0xc], edi
add ebx, edi
mov edi, eax
xor edi, ebp
and edi, edx
xor edi, eax
rol edx, 0x1e
add ebx, edi
mov esi, ecx
rol esi, 5
lea ebx, [ebx + esi + 0x5a827999]
mov esi, dword [esp + 0x58]
mov edi, dword [esi + 0x10]
bswap edi
mov dword [esp + 0x10], edi
add eax, edi
mov edi, ebp
xor edi, edx
and edi, ecx
xor edi, ebp
rol ecx, 0x1e
add eax, edi
mov esi, ebx
rol esi, 5
lea eax, [eax + esi + 0x5a827999]
mov esi, dword [esp + 0x58]
mov edi, dword [esi + 0x14]
bswap edi
mov dword [esp + 0x14], edi
add ebp, edi
mov edi, edx
xor edi, ecx
and edi, ebx
xor edi, edx
rol ebx, 0x1e
add ebp, edi
mov esi, eax
rol esi, 5
lea ebp, [ebp + esi + 0x5a827999]
mov esi, dword [esp + 0x58]
mov edi, dword [esi + 0x18]
bswap edi
mov dword [esp + 0x18], edi
add edx, edi
mov edi, ecx
xor edi, ebx
and edi, eax
xor edi, ecx
rol eax, 0x1e
add edx, edi
mov esi, ebp
rol esi, 5
lea edx, [edx + esi + 0x5a827999]
mov esi, dword [esp + 0x58]
mov edi, dword [esi + 0x1c]
bswap edi
mov dword [esp + 0x1c], edi
add ecx, edi
mov edi, ebx
xor edi, eax
and edi, ebp
xor edi, ebx
rol ebp, 0x1e
add ecx, edi
mov esi, edx
rol esi, 5
lea ecx, [ecx + esi + 0x5a827999]
mov esi, dword [esp + 0x58]
mov edi, dword [esi + 0x20]
bswap edi
mov dword [esp + 0x20], edi
add ebx, edi
mov edi, eax
xor edi, ebp
and edi, edx
xor edi, eax
rol edx, 0x1e
add ebx, edi
mov esi, ecx
rol esi, 5
lea ebx, [ebx + esi + 0x5a827999]
mov esi, dword [esp + 0x58]
mov edi, dword [esi + 0x24]
bswap edi
mov dword [esp + 0x24], edi
add eax, edi
mov edi, ebp
xor edi, edx
and edi, ecx
xor edi, ebp
rol ecx, 0x1e
add eax, edi
mov esi, ebx
rol esi, 5
lea eax, [eax + esi + 0x5a827999]
mov esi, dword [esp + 0x58]
mov edi, dword [esi + 0x28]
bswap edi
mov dword [esp + 0x28], edi
add ebp, edi
mov edi, edx
xor edi, ecx
and edi, ebx
xor edi, edx
rol ebx, 0x1e
add ebp, edi
mov esi, eax
rol esi, 5
lea ebp, [ebp + esi + 0x5a827999]
mov esi, dword [esp + 0x58]
mov edi, dword [esi + 0x2c]
bswap edi
mov dword [esp + 0x2c], edi
add edx, edi
mov edi, ecx
xor edi, ebx
and edi, eax
xor edi, ecx
rol eax, 0x1e
add edx, edi
mov esi, ebp
rol esi, 5
lea edx, [edx + esi + 0x5a827999]
mov esi, dword [esp + 0x58]
mov edi, dword [esi + 0x30]
bswap edi
mov dword [esp + 0x30], edi
add ecx, edi
mov edi, ebx
xor edi, eax
and edi, ebp
xor edi, ebx
rol ebp, 0x1e
add ecx, edi
mov esi, edx
rol esi, 5
lea ecx, [ecx + esi + 0x5a827999]
mov esi, dword [esp + 0x58]
mov edi, dword [esi + 0x34]
bswap edi
mov dword [esp + 0x34], edi
add ebx, edi
mov edi, eax
xor edi, ebp
and edi, edx
xor edi, eax
rol edx, 0x1e
add ebx, edi
mov esi, ecx
rol esi, 5
lea ebx, [ebx + esi + 0x5a827999]
mov esi, dword [esp + 0x58]
mov edi, dword [esi + 0x38]
bswap edi
mov dword [esp + 0x38], edi
add eax, edi
mov edi, ebp
xor edi, edx
and edi, ecx
xor edi, ebp
rol ecx, 0x1e
add eax, edi
mov esi, ebx
rol esi, 5
lea eax, [eax + esi + 0x5a827999]
mov esi, dword [esp + 0x58]
mov edi, dword [esi + 0x3c]
bswap edi
mov dword [esp + 0x3c], edi
add ebp, edi
mov edi, edx
xor edi, ecx
and edi, ebx
xor edi, edx
rol ebx, 0x1e
add ebp, edi
mov esi, eax
rol esi, 5
lea ebp, [ebp + esi + 0x5a827999]
mov edi, dword [esp]
xor edi, dword [esp + 0x34]
xor edi, dword [esp + 0x20]
xor edi, dword [esp + 8]
rol edi, 1
mov dword [esp], edi
add edx, edi
mov edi, ecx
xor edi, ebx
and edi, eax
xor edi, ecx
rol eax, 0x1e
add edx, edi
mov esi, ebp
rol esi, 5
lea edx, [edx + esi + 0x5a827999]
mov edi, dword [esp + 4]
xor edi, dword [esp + 0x38]
xor edi, dword [esp + 0x24]
xor edi, dword [esp + 0xc]
rol edi, 1
mov dword [esp + 4], edi
add ecx, edi
mov edi, ebx
xor edi, eax
and edi, ebp
xor edi, ebx
rol ebp, 0x1e
add ecx, edi
mov esi, edx
rol esi, 5
lea ecx, [ecx + esi + 0x5a827999]
mov edi, dword [esp + 8]
xor edi, dword [esp + 0x3c]
xor edi, dword [esp + 0x28]
xor edi, dword [esp + 0x10]
rol edi, 1
mov dword [esp + 8], edi
add ebx, edi
mov edi, eax
xor edi, ebp
and edi, edx
xor edi, eax
rol edx, 0x1e
add ebx, edi
mov esi, ecx
rol esi, 5
lea ebx, [ebx + esi + 0x5a827999]
mov edi, dword [esp + 0xc]
xor edi, dword [esp]
xor edi, dword [esp + 0x2c]
xor edi, dword [esp + 0x14]
rol edi, 1
mov dword [esp + 0xc], edi
add eax, edi
mov edi, ebp
xor edi, edx
and edi, ecx
xor edi, ebp
rol ecx, 0x1e
add eax, edi
mov esi, ebx
rol esi, 5
lea eax, [eax + esi + 0x5a827999]
mov edi, dword [esp + 0x10]
xor edi, dword [esp + 4]
xor edi, dword [esp + 0x30]
xor edi, dword [esp + 0x18]
rol edi, 1
mov dword [esp + 0x10], edi
add ebp, edi
mov edi, ebx
xor edi, ecx
xor edi, edx
rol ebx, 0x1e
add ebp, edi
mov esi, eax
rol esi, 5
lea ebp, [ebp + esi + 0x6ed9eba1]
mov edi, dword [esp + 0x14]
xor edi, dword [esp + 8]
xor edi, dword [esp + 0x34]
xor edi, dword [esp + 0x1c]
rol edi, 1
mov dword [esp + 0x14], edi
add edx, edi
mov edi, eax
xor edi, ebx
xor edi, ecx
rol eax, 0x1e
add edx, edi
mov esi, ebp
rol esi, 5
lea edx, [edx + esi + 0x6ed9eba1]
mov edi, dword [esp + 0x18]
xor edi, dword [esp + 0xc]
xor edi, dword [esp + 0x38]
xor edi, dword [esp + 0x20]
rol edi, 1
mov dword [esp + 0x18], edi
add ecx, edi
mov edi, ebp
xor edi, eax
xor edi, ebx
rol ebp, 0x1e
add ecx, edi
mov esi, edx
rol esi, 5
lea ecx, [ecx + esi + 0x6ed9eba1]
mov edi, dword [esp + 0x1c]
xor edi, dword [esp + 0x10]
xor edi, dword [esp + 0x3c]
xor edi, dword [esp + 0x24]
rol edi, 1
mov dword [esp + 0x1c], edi
add ebx, edi
mov edi, edx
xor edi, ebp
xor edi, eax
rol edx, 0x1e
add ebx, edi
mov esi, ecx
rol esi, 5
lea ebx, [ebx + esi + 0x6ed9eba1]
mov edi, dword [esp + 0x20]
xor edi, dword [esp + 0x14]
xor edi, dword [esp]
xor edi, dword [esp + 0x28]
rol edi, 1
mov dword [esp + 0x20], edi
add eax, edi
mov edi, ecx
xor edi, edx
xor edi, ebp
rol ecx, 0x1e
add eax, edi
mov esi, ebx
rol esi, 5
lea eax, [eax + esi + 0x6ed9eba1]
mov edi, dword [esp + 0x24]
xor edi, dword [esp + 0x18]
xor edi, dword [esp + 4]
xor edi, dword [esp + 0x2c]
rol edi, 1
mov dword [esp + 0x24], edi
add ebp, edi
mov edi, ebx
xor edi, ecx
xor edi, edx
rol ebx, 0x1e
add ebp, edi
mov esi, eax
rol esi, 5
lea ebp, [ebp + esi + 0x6ed9eba1]
mov edi, dword [esp + 0x28]
xor edi, dword [esp + 0x1c]
xor edi, dword [esp + 8]
xor edi, dword [esp + 0x30]
rol edi, 1
mov dword [esp + 0x28], edi
add edx, edi
mov edi, eax
xor edi, ebx
xor edi, ecx
rol eax, 0x1e
add edx, edi
mov esi, ebp
rol esi, 5
lea edx, [edx + esi + 0x6ed9eba1]
mov edi, dword [esp + 0x2c]
xor edi, dword [esp + 0x20]
xor edi, dword [esp + 0xc]
xor edi, dword [esp + 0x34]
rol edi, 1
mov dword [esp + 0x2c], edi
add ecx, edi
mov edi, ebp
xor edi, eax
xor edi, ebx
rol ebp, 0x1e
add ecx, edi
mov esi, edx
rol esi, 5
lea ecx, [ecx + esi + 0x6ed9eba1]
mov edi, dword [esp + 0x30]
xor edi, dword [esp + 0x24]
xor edi, dword [esp + 0x10]
xor edi, dword [esp + 0x38]
rol edi, 1
mov dword [esp + 0x30], edi
add ebx, edi
mov edi, edx
xor edi, ebp
xor edi, eax
rol edx, 0x1e
add ebx, edi
mov esi, ecx
rol esi, 5
lea ebx, [ebx + esi + 0x6ed9eba1]
mov edi, dword [esp + 0x34]
xor edi, dword [esp + 0x28]
xor edi, dword [esp + 0x14]
xor edi, dword [esp + 0x3c]
rol edi, 1
mov dword [esp + 0x34], edi
add eax, edi
mov edi, ecx
xor edi, edx
xor edi, ebp
rol ecx, 0x1e
add eax, edi
mov esi, ebx
rol esi, 5
lea eax, [eax + esi + 0x6ed9eba1]
mov edi, dword [esp + 0x38]
xor edi, dword [esp + 0x2c]
xor edi, dword [esp + 0x18]
xor edi, dword [esp]
rol edi, 1
mov dword [esp + 0x38], edi
add ebp, edi
mov edi, ebx
xor edi, ecx
xor edi, edx
rol ebx, 0x1e
add ebp, edi
mov esi, eax
rol esi, 5
lea ebp, [ebp + esi + 0x6ed9eba1]
mov edi, dword [esp + 0x3c]
xor edi, dword [esp + 0x30]
xor edi, dword [esp + 0x1c]
xor edi, dword [esp + 4]
rol edi, 1
mov dword [esp + 0x3c], edi
add edx, edi
mov edi, eax
xor edi, ebx
xor edi, ecx
rol eax, 0x1e
add edx, edi
mov esi, ebp
rol esi, 5
lea edx, [edx + esi + 0x6ed9eba1]
mov edi, dword [esp]
xor edi, dword [esp + 0x34]
xor edi, dword [esp + 0x20]
xor edi, dword [esp + 8]
rol edi, 1
mov dword [esp], edi
add ecx, edi
mov edi, ebp
xor edi, eax
xor edi, ebx
rol ebp, 0x1e
add ecx, edi
mov esi, edx
rol esi, 5
lea ecx, [ecx + esi + 0x6ed9eba1]
mov edi, dword [esp + 4]
xor edi, dword [esp + 0x38]
xor edi, dword [esp + 0x24]
xor edi, dword [esp + 0xc]
rol edi, 1
mov dword [esp + 4], edi
add ebx, edi
mov edi, edx
xor edi, ebp
xor edi, eax
rol edx, 0x1e
add ebx, edi
mov esi, ecx
rol esi, 5
lea ebx, [ebx + esi + 0x6ed9eba1]
mov edi, dword [esp + 8]
xor edi, dword [esp + 0x3c]
xor edi, dword [esp + 0x28]
xor edi, dword [esp + 0x10]
rol edi, 1
mov dword [esp + 8], edi
add eax, edi
mov edi, ecx
xor edi, edx
xor edi, ebp
rol ecx, 0x1e
add eax, edi
mov esi, ebx
rol esi, 5
lea eax, [eax + esi + 0x6ed9eba1]
mov edi, dword [esp + 0xc]
xor edi, dword [esp]
xor edi, dword [esp + 0x2c]
xor edi, dword [esp + 0x14]
rol edi, 1
mov dword [esp + 0xc], edi
add ebp, edi
mov edi, ebx
xor edi, ecx
xor edi, edx
rol ebx, 0x1e
add ebp, edi
mov esi, eax
rol esi, 5
lea ebp, [ebp + esi + 0x6ed9eba1]
mov edi, dword [esp + 0x10]
xor edi, dword [esp + 4]
xor edi, dword [esp + 0x30]
xor edi, dword [esp + 0x18]
rol edi, 1
mov dword [esp + 0x10], edi
add edx, edi
mov edi, eax
xor edi, ebx
xor edi, ecx
rol eax, 0x1e
add edx, edi
mov esi, ebp
rol esi, 5
lea edx, [edx + esi + 0x6ed9eba1]
mov edi, dword [esp + 0x14]
xor edi, dword [esp + 8]
xor edi, dword [esp + 0x34]
xor edi, dword [esp + 0x1c]
rol edi, 1
mov dword [esp + 0x14], edi
add ecx, edi
mov edi, ebp
xor edi, eax
xor edi, ebx
rol ebp, 0x1e
add ecx, edi
mov esi, edx
rol esi, 5
lea ecx, [ecx + esi + 0x6ed9eba1]
mov edi, dword [esp + 0x18]
xor edi, dword [esp + 0xc]
xor edi, dword [esp + 0x38]
xor edi, dword [esp + 0x20]
rol edi, 1
mov dword [esp + 0x18], edi
add ebx, edi
mov edi, edx
xor edi, ebp
xor edi, eax
rol edx, 0x1e
add ebx, edi
mov esi, ecx
rol esi, 5
lea ebx, [ebx + esi + 0x6ed9eba1]
mov edi, dword [esp + 0x1c]
xor edi, dword [esp + 0x10]
xor edi, dword [esp + 0x3c]
xor edi, dword [esp + 0x24]
rol edi, 1
mov dword [esp + 0x1c], edi
add eax, edi
mov edi, ecx
xor edi, edx
xor edi, ebp
rol ecx, 0x1e
add eax, edi
mov esi, ebx
rol esi, 5
lea eax, [eax + esi + 0x6ed9eba1]
mov edi, dword [esp + 0x20]
xor edi, dword [esp + 0x14]
xor edi, dword [esp]
xor edi, dword [esp + 0x28]
rol edi, 1
mov dword [esp + 0x20], edi
add ebp, edi
mov esi, ebx
or esi, ecx
and esi, edx
mov edi, ebx
and edi, ecx
or edi, esi
rol ebx, 0x1e
add ebp, edi
mov esi, eax
rol esi, 5
lea ebp, [ebp + esi - 0x70e44324]
mov edi, dword [esp + 0x24]
xor edi, dword [esp + 0x18]
xor edi, dword [esp + 4]
xor edi, dword [esp + 0x2c]
rol edi, 1
mov dword [esp + 0x24], edi
add edx, edi
mov esi, eax
or esi, ebx
and esi, ecx
mov edi, eax
and edi, ebx
or edi, esi
rol eax, 0x1e
add edx, edi
mov esi, ebp
rol esi, 5
lea edx, [edx + esi - 0x70e44324]
mov edi, dword [esp + 0x28]
xor edi, dword [esp + 0x1c]
xor edi, dword [esp + 8]
xor edi, dword [esp + 0x30]
rol edi, 1
mov dword [esp + 0x28], edi
add ecx, edi
mov esi, ebp
or esi, eax
and esi, ebx
mov edi, ebp
and edi, eax
or edi, esi
rol ebp, 0x1e
add ecx, edi
mov esi, edx
rol esi, 5
lea ecx, [ecx + esi - 0x70e44324]
mov edi, dword [esp + 0x2c]
xor edi, dword [esp + 0x20]
xor edi, dword [esp + 0xc]
xor edi, dword [esp + 0x34]
rol edi, 1
mov dword [esp + 0x2c], edi
add ebx, edi
mov esi, edx
or esi, ebp
and esi, eax
mov edi, edx
and edi, ebp
or edi, esi
rol edx, 0x1e
add ebx, edi
mov esi, ecx
rol esi, 5
lea ebx, [ebx + esi - 0x70e44324]
mov edi, dword [esp + 0x30]
xor edi, dword [esp + 0x24]
xor edi, dword [esp + 0x10]
xor edi, dword [esp + 0x38]
rol edi, 1
mov dword [esp + 0x30], edi
add eax, edi
mov esi, ecx
or esi, edx
and esi, ebp
mov edi, ecx
and edi, edx
or edi, esi
rol ecx, 0x1e
add eax, edi
mov esi, ebx
rol esi, 5
lea eax, [eax + esi - 0x70e44324]
mov edi, dword [esp + 0x34]
xor edi, dword [esp + 0x28]
xor edi, dword [esp + 0x14]
xor edi, dword [esp + 0x3c]
rol edi, 1
mov dword [esp + 0x34], edi
add ebp, edi
mov esi, ebx
or esi, ecx
and esi, edx
mov edi, ebx
and edi, ecx
or edi, esi
rol ebx, 0x1e
add ebp, edi
mov esi, eax
rol esi, 5
lea ebp, [ebp + esi - 0x70e44324]
mov edi, dword [esp + 0x38]
xor edi, dword [esp + 0x2c]
xor edi, dword [esp + 0x18]
xor edi, dword [esp]
rol edi, 1
mov dword [esp + 0x38], edi
add edx, edi
mov esi, eax
or esi, ebx
and esi, ecx
mov edi, eax
and edi, ebx
or edi, esi
rol eax, 0x1e
add edx, edi
mov esi, ebp
rol esi, 5
lea edx, [edx + esi - 0x70e44324]
mov edi, dword [esp + 0x3c]
xor edi, dword [esp + 0x30]
xor edi, dword [esp + 0x1c]
xor edi, dword [esp + 4]
rol edi, 1
mov dword [esp + 0x3c], edi
add ecx, edi
mov esi, ebp
or esi, eax
and esi, ebx
mov edi, ebp
and edi, eax
or edi, esi
rol ebp, 0x1e
add ecx, edi
mov esi, edx
rol esi, 5
lea ecx, [ecx + esi - 0x70e44324]
mov edi, dword [esp]
xor edi, dword [esp + 0x34]
xor edi, dword [esp + 0x20]
xor edi, dword [esp + 8]
rol edi, 1
mov dword [esp], edi
add ebx, edi
mov esi, edx
or esi, ebp
and esi, eax
mov edi, edx
and edi, ebp
or edi, esi
rol edx, 0x1e
add ebx, edi
mov esi, ecx
rol esi, 5
lea ebx, [ebx + esi - 0x70e44324]
mov edi, dword [esp + 4]
xor edi, dword [esp + 0x38]
xor edi, dword [esp + 0x24]
xor edi, dword [esp + 0xc]
rol edi, 1
mov dword [esp + 4], edi
add eax, edi
mov esi, ecx
or esi, edx
and esi, ebp
mov edi, ecx
and edi, edx
or edi, esi
rol ecx, 0x1e
add eax, edi
mov esi, ebx
rol esi, 5
lea eax, [eax + esi - 0x70e44324]
mov edi, dword [esp + 8]
xor edi, dword [esp + 0x3c]
xor edi, dword [esp + 0x28]
xor edi, dword [esp + 0x10]
rol edi, 1
mov dword [esp + 8], edi
add ebp, edi
mov esi, ebx
or esi, ecx
and esi, edx
mov edi, ebx
and edi, ecx
or edi, esi
rol ebx, 0x1e
add ebp, edi
mov esi, eax
rol esi, 5
lea ebp, [ebp + esi - 0x70e44324]
mov edi, dword [esp + 0xc]
xor edi, dword [esp]
xor edi, dword [esp + 0x2c]
xor edi, dword [esp + 0x14]
rol edi, 1
mov dword [esp + 0xc], edi
add edx, edi
mov esi, eax
or esi, ebx
and esi, ecx
mov edi, eax
and edi, ebx
or edi, esi
rol eax, 0x1e
add edx, edi
mov esi, ebp
rol esi, 5
lea edx, [edx + esi - 0x70e44324]
mov edi, dword [esp + 0x10]
xor edi, dword [esp + 4]
xor edi, dword [esp + 0x30]
xor edi, dword [esp + 0x18]
rol edi, 1
mov dword [esp + 0x10], edi
add ecx, edi
mov esi, ebp
or esi, eax
and esi, ebx
mov edi, ebp
and edi, eax
or edi, esi
rol ebp, 0x1e
add ecx, edi
mov esi, edx
rol esi, 5
lea ecx, [ecx + esi - 0x70e44324]
mov edi, dword [esp + 0x14]
xor edi, dword [esp + 8]
xor edi, dword [esp + 0x34]
xor edi, dword [esp + 0x1c]
rol edi, 1
mov dword [esp + 0x14], edi
add ebx, edi
mov esi, edx
or esi, ebp
and esi, eax
mov edi, edx
and edi, ebp
or edi, esi
rol edx, 0x1e
add ebx, edi
mov esi, ecx
rol esi, 5
lea ebx, [ebx + esi - 0x70e44324]
mov edi, dword [esp + 0x18]
xor edi, dword [esp + 0xc]
xor edi, dword [esp + 0x38]
xor edi, dword [esp + 0x20]
rol edi, 1
mov dword [esp + 0x18], edi
add eax, edi
mov esi, ecx
or esi, edx
and esi, ebp
mov edi, ecx
and edi, edx
or edi, esi
rol ecx, 0x1e
add eax, edi
mov esi, ebx
rol esi, 5
lea eax, [eax + esi - 0x70e44324]
mov edi, dword [esp + 0x1c]
xor edi, dword [esp + 0x10]
xor edi, dword [esp + 0x3c]
xor edi, dword [esp + 0x24]
rol edi, 1
mov dword [esp + 0x1c], edi
add ebp, edi
mov esi, ebx
or esi, ecx
and esi, edx
mov edi, ebx
and edi, ecx
or edi, esi
rol ebx, 0x1e
add ebp, edi
mov esi, eax
rol esi, 5
lea ebp, [ebp + esi - 0x70e44324]
mov edi, dword [esp + 0x20]
xor edi, dword [esp + 0x14]
xor edi, dword [esp]
xor edi, dword [esp + 0x28]
rol edi, 1
mov dword [esp + 0x20], edi
add edx, edi
mov esi, eax
or esi, ebx
and esi, ecx
mov edi, eax
and edi, ebx
or edi, esi
rol eax, 0x1e
add edx, edi
mov esi, ebp
rol esi, 5
lea edx, [edx + esi - 0x70e44324]
mov edi, dword [esp + 0x24]
xor edi, dword [esp + 0x18]
xor edi, dword [esp + 4]
xor edi, dword [esp + 0x2c]
rol edi, 1
mov dword [esp + 0x24], edi
add ecx, edi
mov esi, ebp
or esi, eax
and esi, ebx
mov edi, ebp
and edi, eax
or edi, esi
rol ebp, 0x1e
add ecx, edi
mov esi, edx
rol esi, 5
lea ecx, [ecx + esi - 0x70e44324]
mov edi, dword [esp + 0x28]
xor edi, dword [esp + 0x1c]
xor edi, dword [esp + 8]
xor edi, dword [esp + 0x30]
rol edi, 1
mov dword [esp + 0x28], edi
add ebx, edi
mov esi, edx
or esi, ebp
and esi, eax
mov edi, edx
and edi, ebp
or edi, esi
rol edx, 0x1e
add ebx, edi
mov esi, ecx
rol esi, 5
lea ebx, [ebx + esi - 0x70e44324]
mov edi, dword [esp + 0x2c]
xor edi, dword [esp + 0x20]
xor edi, dword [esp + 0xc]
xor edi, dword [esp + 0x34]
rol edi, 1
mov dword [esp + 0x2c], edi
add eax, edi
mov esi, ecx
or esi, edx
and esi, ebp
mov edi, ecx
and edi, edx
or edi, esi
rol ecx, 0x1e
add eax, edi
mov esi, ebx
rol esi, 5
lea eax, [eax + esi - 0x70e44324]
mov edi, dword [esp + 0x30]
xor edi, dword [esp + 0x24]
xor edi, dword [esp + 0x10]
xor edi, dword [esp + 0x38]
rol edi, 1
mov dword [esp + 0x30], edi
add ebp, edi
mov edi, ebx
xor edi, ecx
xor edi, edx
rol ebx, 0x1e
add ebp, edi
mov esi, eax
rol esi, 5
lea ebp, [ebp + esi - 0x359d3e2a]
mov edi, dword [esp + 0x34]
xor edi, dword [esp + 0x28]
xor edi, dword [esp + 0x14]
xor edi, dword [esp + 0x3c]
rol edi, 1
mov dword [esp + 0x34], edi
add edx, edi
mov edi, eax
xor edi, ebx
xor edi, ecx
rol eax, 0x1e
add edx, edi
mov esi, ebp
rol esi, 5
lea edx, [edx + esi - 0x359d3e2a]
mov edi, dword [esp + 0x38]
xor edi, dword [esp + 0x2c]
xor edi, dword [esp + 0x18]
xor edi, dword [esp]
rol edi, 1
mov dword [esp + 0x38], edi
add ecx, edi
mov edi, ebp
xor edi, eax
xor edi, ebx
rol ebp, 0x1e
add ecx, edi
mov esi, edx
rol esi, 5
lea ecx, [ecx + esi - 0x359d3e2a]
mov edi, dword [esp + 0x3c]
xor edi, dword [esp + 0x30]
xor edi, dword [esp + 0x1c]
xor edi, dword [esp + 4]
rol edi, 1
mov dword [esp + 0x3c], edi
add ebx, edi
mov edi, edx
xor edi, ebp
xor edi, eax
rol edx, 0x1e
add ebx, edi
mov esi, ecx
rol esi, 5
lea ebx, [ebx + esi - 0x359d3e2a]
mov edi, dword [esp]
xor edi, dword [esp + 0x34]
xor edi, dword [esp + 0x20]
xor edi, dword [esp + 8]
rol edi, 1
mov dword [esp], edi
add eax, edi
mov edi, ecx
xor edi, edx
xor edi, ebp
rol ecx, 0x1e
add eax, edi
mov esi, ebx
rol esi, 5
lea eax, [eax + esi - 0x359d3e2a]
mov edi, dword [esp + 4]
xor edi, dword [esp + 0x38]
xor edi, dword [esp + 0x24]
xor edi, dword [esp + 0xc]
rol edi, 1
mov dword [esp + 4], edi
add ebp, edi
mov edi, ebx
xor edi, ecx
xor edi, edx
rol ebx, 0x1e
add ebp, edi
mov esi, eax
rol esi, 5
lea ebp, [ebp + esi - 0x359d3e2a]
mov edi, dword [esp + 8]
xor edi, dword [esp + 0x3c]
xor edi, dword [esp + 0x28]
xor edi, dword [esp + 0x10]
rol edi, 1
mov dword [esp + 8], edi
add edx, edi
mov edi, eax
xor edi, ebx
xor edi, ecx
rol eax, 0x1e
add edx, edi
mov esi, ebp
rol esi, 5
lea edx, [edx + esi - 0x359d3e2a]
mov edi, dword [esp + 0xc]
xor edi, dword [esp]
xor edi, dword [esp + 0x2c]
xor edi, dword [esp + 0x14]
rol edi, 1
mov dword [esp + 0xc], edi
add ecx, edi
mov edi, ebp
xor edi, eax
xor edi, ebx
rol ebp, 0x1e
add ecx, edi
mov esi, edx
rol esi, 5
lea ecx, [ecx + esi - 0x359d3e2a]
mov edi, dword [esp + 0x10]
xor edi, dword [esp + 4]
xor edi, dword [esp + 0x30]
xor edi, dword [esp + 0x18]
rol edi, 1
mov dword [esp + 0x10], edi
add ebx, edi
mov edi, edx
xor edi, ebp
xor edi, eax
rol edx, 0x1e
add ebx, edi
mov esi, ecx
rol esi, 5
lea ebx, [ebx + esi - 0x359d3e2a]
mov edi, dword [esp + 0x14]
xor edi, dword [esp + 8]
xor edi, dword [esp + 0x34]
xor edi, dword [esp + 0x1c]
rol edi, 1
mov dword [esp + 0x14], edi
add eax, edi
mov edi, ecx
xor edi, edx
xor edi, ebp
rol ecx, 0x1e
add eax, edi
mov esi, ebx
rol esi, 5
lea eax, [eax + esi - 0x359d3e2a]
mov edi, dword [esp + 0x18]
xor edi, dword [esp + 0xc]
xor edi, dword [esp + 0x38]
xor edi, dword [esp + 0x20]
rol edi, 1
mov dword [esp + 0x18], edi
add ebp, edi
mov edi, ebx
xor edi, ecx
xor edi, edx
rol ebx, 0x1e
add ebp, edi
mov esi, eax
rol esi, 5
lea ebp, [ebp + esi - 0x359d3e2a]
mov edi, dword [esp + 0x1c]
xor edi, dword [esp + 0x10]
xor edi, dword [esp + 0x3c]
xor edi, dword [esp + 0x24]
rol edi, 1
mov dword [esp + 0x1c], edi
add edx, edi
mov edi, eax
xor edi, ebx
xor edi, ecx
rol eax, 0x1e
add edx, edi
mov esi, ebp
rol esi, 5
lea edx, [edx + esi - 0x359d3e2a]
mov edi, dword [esp + 0x20]
xor edi, dword [esp + 0x14]
xor edi, dword [esp]
xor edi, dword [esp + 0x28]
rol edi, 1
mov dword [esp + 0x20], edi
add ecx, edi
mov edi, ebp
xor edi, eax
xor edi, ebx
rol ebp, 0x1e
add ecx, edi
mov esi, edx
rol esi, 5
lea ecx, [ecx + esi - 0x359d3e2a]
mov edi, dword [esp + 0x24]
xor edi, dword [esp + 0x18]
xor edi, dword [esp + 4]
xor edi, dword [esp + 0x2c]
rol edi, 1
mov dword [esp + 0x24], edi
add ebx, edi
mov edi, edx
xor edi, ebp
xor edi, eax
rol edx, 0x1e
add ebx, edi
mov esi, ecx
rol esi, 5
lea ebx, [ebx + esi - 0x359d3e2a]
mov edi, dword [esp + 0x28]
xor edi, dword [esp + 0x1c]
xor edi, dword [esp + 8]
xor edi, dword [esp + 0x30]
rol edi, 1
mov dword [esp + 0x28], edi
add eax, edi
mov edi, ecx
xor edi, edx
xor edi, ebp
rol ecx, 0x1e
add eax, edi
mov esi, ebx
rol esi, 5
lea eax, [eax + esi - 0x359d3e2a]
mov edi, dword [esp + 0x2c]
xor edi, dword [esp + 0x20]
xor edi, dword [esp + 0xc]
xor edi, dword [esp + 0x34]
rol edi, 1
mov dword [esp + 0x2c], edi
add ebp, edi
mov edi, ebx
xor edi, ecx
xor edi, edx
rol ebx, 0x1e
add ebp, edi
mov esi, eax
rol esi, 5
lea ebp, [ebp + esi - 0x359d3e2a]
mov edi, dword [esp + 0x30]
xor edi, dword [esp + 0x24]
xor edi, dword [esp + 0x10]
xor edi, dword [esp + 0x38]
rol edi, 1
mov dword [esp + 0x30], edi
add edx, edi
mov edi, eax
xor edi, ebx
xor edi, ecx
rol eax, 0x1e
add edx, edi
mov esi, ebp
rol esi, 5
lea edx, [edx + esi - 0x359d3e2a]
mov edi, dword [esp + 0x34]
xor edi, dword [esp + 0x28]
xor edi, dword [esp + 0x14]
xor edi, dword [esp + 0x3c]
rol edi, 1
mov dword [esp + 0x34], edi
add ecx, edi
mov edi, ebp
xor edi, eax
xor edi, ebx
rol ebp, 0x1e
add ecx, edi
mov esi, edx
rol esi, 5
lea ecx, [ecx + esi - 0x359d3e2a]
mov edi, dword [esp + 0x38]
xor edi, dword [esp + 0x2c]
xor edi, dword [esp + 0x18]
xor edi, dword [esp]
rol edi, 1
mov dword [esp + 0x38], edi
add ebx, edi
mov edi, edx
xor edi, ebp
xor edi, eax
rol edx, 0x1e
add ebx, edi
mov esi, ecx
rol esi, 5
lea ebx, [ebx + esi - 0x359d3e2a]
mov edi, dword [esp + 0x3c]
xor edi, dword [esp + 0x30]
xor edi, dword [esp + 0x1c]
xor edi, dword [esp + 4]
rol edi, 1
mov dword [esp + 0x3c], edi
add eax, edi
mov edi, ecx
xor edi, edx
xor edi, ebp
rol ecx, 0x1e
add eax, edi
mov esi, ebx
rol esi, 5
lea eax, [eax + esi - 0x359d3e2a]
add eax, dword [esp + 0x40]
add ebx, dword [esp + 0x44]
add ecx, dword [esp + 0x48]
add edx, dword [esp + 0x4c]
add ebp, dword [esp + 0x50]
mov esi, dword [esp + 0x58]
add esi, 0x40
cmp esi, dword [esp + 0x54]
jb 0x58c553
mov edi, dword [esp + 0x60]
mov dword [edi], eax
mov dword [edi + 4], ebx
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
mov dword [edi + 0x10], ebp
add esp, 0x5c
ret