Function at 0x404b50
Capabilities:
Encode data using xor
Hash data with md5
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
mov ebx, dword [0x5de4d8]
push esi
push edi
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], ebx
test ebx, ebx
jne 0x404b84
push 0x1040
call fcn.00426df8
mov ecx, dword [ebp - 0x10]
mov ebx, eax
add esp, 4
mov dword [ebp - 0xc], ebx
mov dword [0x5de4d8], ebx
mov eax, dword [ebp + 8]
xor esi, esi
mov dword [eax], 0x67452301
mov dword [eax + 4], 0xefcdab89
mov dword [eax + 8], 0x98badcfe
mov dword [eax + 0xc], 0x10325476
push ecx
push 0x1000
push 1
push ebx
call fcn.0054a85e
add esi, eax
add esp, 0x10
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], esi
cmp eax, 0x1000
jne 0x404bc6
jmp 0x404c03
mov byte [eax + ebx], 0x80
inc eax
mov ecx, eax
and ecx, 0x3f
cmp cl, 0x38
je 0x404be4
mov byte [eax + ebx], 0
inc eax
mov ecx, eax
and ecx, 0x3f
cmp cl, 0x38
jne 0x404bd5
lea ecx, [esi*8]
mov dword [eax + ebx], ecx
add eax, 4
mov ecx, esi
shr ecx, 0x1d
add eax, 4
mov dword [eax + ebx - 4], ecx
je 0x405601
mov edx, dword [ebp + 8]
dec eax
shr eax, 6
lea ecx, [ebx + 0x38]
inc eax
mov dword [ebp - 4], ecx
mov dword [ebp - 8], eax
mov edx, dword [edx]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x14], edx
mov ebx, dword [eax + 4]
mov esi, dword [eax + 0xc]
mov edi, dword [eax + 8]
mov ecx, ebx
not ecx
and ecx, esi
mov eax, edi
and eax, ebx
or ecx, eax
add ecx, edx
mov dword [ebp - 0x18], esi
mov esi, dword [ebp - 4]
mov eax, dword [esi - 0x38]
add eax, 0xd76aa478
add ecx, eax
rol ecx, 7
mov eax, dword [ebp + 8]
mov dword [eax], ecx
mov eax, dword [eax + 4]
add ecx, eax
mov eax, dword [ebp + 8]
mov edx, ecx
mov dword [eax], ecx
not edx
and edx, dword [eax + 8]
mov eax, dword [eax + 4]
and eax, ecx
or edx, eax
add edx, dword [esi - 0x34]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
add ecx, 0xe8c7b756
add ecx, edx
rol ecx, 0xc
mov dword [eax + 0xc], ecx
mov eax, dword [eax]
add ecx, eax
mov eax, dword [ebp + 8]
mov edx, ecx
mov dword [eax + 0xc], ecx
not edx
and edx, dword [eax + 4]
mov eax, dword [eax]
and eax, ecx
or edx, eax
add edx, dword [esi - 0x30]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
add ecx, 0x242070db
add ecx, edx
ror ecx, 0xf
mov edx, eax
mov dword [edx + 8], ecx
mov eax, dword [edx + 0xc]
add eax, ecx
mov dword [edx + 8], eax
mov ecx, eax
and eax, dword [edx + 0xc]
not ecx
and ecx, dword [edx]
or ecx, eax
add ecx, dword [edx + 4]
mov eax, dword [esi - 0x2c]
add eax, 0xc1bdceee
add ecx, eax
ror ecx, 0xa
mov dword [edx + 4], ecx
mov eax, dword [edx + 8]
add eax, ecx
mov ecx, eax
mov dword [edx + 4], eax
and eax, dword [edx + 8]
not ecx
and ecx, dword [edx + 0xc]
or ecx, eax
mov eax, dword [esi - 0x28]
add ecx, dword [edx]
add eax, 0xf57c0faf
add ecx, eax
rol ecx, 7
mov dword [edx], ecx
add ecx, dword [edx + 4]
mov eax, dword [ebp + 8]
mov dword [edx], ecx
mov edx, ecx
not edx
and edx, dword [eax + 8]
mov eax, dword [eax + 4]
and eax, ecx
or edx, eax
add edx, dword [esi - 0x24]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
add ecx, 0x4787c62a
add ecx, edx
rol ecx, 0xc
mov dword [eax + 0xc], ecx
mov eax, dword [eax]
add ecx, eax
mov eax, dword [ebp + 8]
mov edx, ecx
mov dword [eax + 0xc], ecx
not edx
and edx, dword [eax + 4]
mov eax, dword [eax]
and eax, ecx
or edx, eax
add edx, dword [esi - 0x20]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
add ecx, 0xa8304613
add ecx, edx
ror ecx, 0xf
mov edx, eax
mov dword [edx + 8], ecx
mov eax, dword [edx + 0xc]
add eax, ecx
mov dword [edx + 8], eax
mov ecx, eax
and eax, dword [edx + 0xc]
not ecx
and ecx, dword [edx]
or ecx, eax
add ecx, dword [edx + 4]
mov eax, dword [esi - 0x1c]
add eax, 0xfd469501
add ecx, eax
ror ecx, 0xa
mov dword [edx + 4], ecx
mov eax, dword [edx + 8]
add eax, ecx
mov dword [edx + 4], eax
mov ecx, eax
and eax, dword [edx + 8]
not ecx
and ecx, dword [edx + 0xc]
or ecx, eax
add ecx, dword [edx]
mov eax, dword [esi - 0x18]
add eax, 0x698098d8
add ecx, eax
rol ecx, 7
mov eax, dword [ebp + 8]
mov dword [edx], ecx
add ecx, dword [edx + 4]
mov dword [edx], ecx
mov edx, ecx
not edx
and edx, dword [eax + 8]
mov eax, dword [eax + 4]
and eax, ecx
mov ecx, dword [esi - 0x14]
or edx, eax
mov eax, dword [ebp + 8]
add ecx, 0x8b44f7af
add edx, dword [eax + 0xc]
add ecx, edx
rol ecx, 0xc
mov edx, eax
mov dword [edx + 0xc], ecx
mov eax, dword [edx]
add eax, ecx
mov dword [edx + 0xc], eax
mov ecx, eax
and eax, dword [edx]
not ecx
and ecx, dword [edx + 4]
or ecx, eax
add ecx, dword [esi - 0x10]
mov eax, dword [edx + 8]
add eax, 0xffff5bb1
add ecx, eax
ror ecx, 0xf
mov dword [edx + 8], ecx
mov eax, dword [edx + 0xc]
add eax, ecx
mov dword [edx + 8], eax
mov ecx, eax
and eax, dword [edx + 0xc]
not ecx
and ecx, dword [edx]
or ecx, eax
add ecx, dword [edx + 4]
mov eax, dword [esi - 0xc]
add eax, 0x895cd7be
add ecx, eax
ror ecx, 0xa
mov dword [edx + 4], ecx
mov eax, dword [edx + 8]
add eax, ecx
mov dword [edx + 4], eax
mov ecx, eax
and eax, dword [edx + 8]
not ecx
and ecx, dword [edx + 0xc]
or ecx, eax
add ecx, dword [esi - 8]
mov eax, dword [edx]
add eax, 0x6b901122
add ecx, eax
rol ecx, 7
mov dword [edx], ecx
add ecx, dword [edx + 4]
mov eax, dword [ebp + 8]
mov dword [edx], ecx
mov edx, ecx
not edx
and edx, dword [eax + 8]
mov eax, dword [eax + 4]
and eax, ecx
or edx, eax
add edx, dword [esi - 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
add ecx, 0xfd987193
add ecx, edx
rol ecx, 0xc
mov edx, eax
mov dword [edx + 0xc], ecx
mov eax, dword [edx]
add eax, ecx
mov dword [edx + 0xc], eax
mov ecx, eax
and eax, dword [edx]
not ecx
and ecx, dword [edx + 4]
or ecx, eax
add ecx, dword [esi]
mov eax, dword [edx + 8]
add eax, 0xa679438e
add ecx, eax
ror ecx, 0xf
mov dword [edx + 8], ecx
mov eax, dword [edx + 0xc]
add eax, ecx
mov ecx, eax
mov dword [edx + 8], eax
not ecx
and ecx, dword [edx]
and eax, dword [edx + 0xc]
or ecx, eax
add ecx, dword [edx + 4]
mov eax, dword [esi + 4]
mov esi, dword [ebp + 8]
add eax, 0x49b40821
add ecx, eax
ror ecx, 0xa
mov dword [edx + 4], ecx
add ecx, dword [edx + 8]
mov dword [edx + 4], ecx
mov eax, dword [edx + 0xc]
mov edx, eax
and eax, ecx
not edx
and edx, dword [esi + 8]
or edx, eax
mov eax, esi
add edx, dword [eax]
mov eax, dword [ebp - 4]
mov ecx, dword [eax - 0x34]
add ecx, 0xf61e2562
add ecx, edx
rol ecx, 5
mov edx, esi
mov dword [edx], ecx
add ecx, dword [edx + 4]
mov dword [edx], ecx
mov eax, dword [edx + 8]
mov edx, eax
and eax, ecx
not edx
and edx, dword [esi + 4]
or edx, eax
mov eax, dword [ebp - 4]
add edx, dword [eax - 0x20]
mov eax, esi
mov ecx, dword [eax + 0xc]
add ecx, 0xc040b340
add ecx, edx
rol ecx, 9
mov edx, eax
mov dword [edx + 0xc], ecx
add ecx, dword [edx]
mov dword [edx + 0xc], ecx
mov eax, dword [edx + 4]
mov edx, eax
and eax, ecx
not edx
and edx, dword [esi]
or edx, eax
mov eax, dword [ebp - 4]
add edx, dword [eax - 0xc]
mov eax, esi
mov ecx, dword [eax + 8]
add ecx, 0x265e5a51
add ecx, edx
rol ecx, 0xe
mov dword [eax + 8], ecx
mov edx, dword [eax + 0xc]
add edx, ecx
mov dword [eax + 8], edx
mov eax, dword [eax]
mov ecx, eax
not ecx
and ecx, dword [esi + 0xc]
and edx, eax
mov eax, dword [ebp - 4]
or ecx, edx
mov eax, dword [eax - 0x38]
mov edx, esi
add eax, 0xe9b6c7aa
add ecx, dword [edx + 4]
add ecx, eax
ror ecx, 0xc
mov dword [edx + 4], ecx
add ecx, dword [edx + 8]
mov dword [edx + 4], ecx
mov eax, dword [edx + 0xc]
mov edx, eax
not edx
and edx, dword [esi + 8]
and eax, ecx
or edx, eax
mov eax, dword [ebp - 4]
add edx, dword [eax - 0x24]
mov eax, esi
mov ecx, dword [eax]
add ecx, 0xd62f105d
add ecx, edx
rol ecx, 5
mov edx, eax
mov dword [edx], ecx
add ecx, dword [edx + 4]
mov dword [edx], ecx
mov eax, dword [edx + 8]
mov edx, eax
and eax, ecx
not edx
and edx, dword [esi + 4]
or edx, eax
mov eax, dword [ebp - 4]
add edx, dword [eax - 0x10]
mov eax, esi
mov ecx, dword [eax + 0xc]
add ecx, 0x2441453
add ecx, edx
rol ecx, 9
mov edx, eax
mov dword [edx + 0xc], ecx
add ecx, dword [edx]
mov dword [edx + 0xc], ecx
mov eax, dword [edx + 4]
mov edx, eax
and eax, ecx
not edx
and edx, dword [esi]
or edx, eax
mov eax, dword [ebp - 4]
add edx, dword [eax + 4]
mov eax, esi
mov ecx, dword [eax + 8]
add ecx, 0xd8a1e681
add ecx, edx
rol ecx, 0xe
mov dword [eax + 8], ecx
mov edx, dword [eax + 0xc]
add edx, ecx
mov dword [eax + 8], edx
mov eax, dword [eax]
and edx, eax
mov ecx, eax
mov eax, dword [ebp - 4]
not ecx
and ecx, dword [esi + 0xc]
mov eax, dword [eax - 0x28]
or ecx, edx
mov edx, esi
add eax, 0xe7d3fbc8
add ecx, dword [edx + 4]
add ecx, eax
ror ecx, 0xc
mov dword [edx + 4], ecx
add ecx, dword [edx + 8]
mov dword [edx + 4], ecx
mov eax, dword [edx + 0xc]
mov edx, eax
and eax, ecx
not edx
and edx, dword [esi + 8]
or edx, eax
mov eax, esi
add edx, dword [eax]
mov eax, dword [ebp - 4]
mov ecx, dword [eax - 0x14]
add ecx, 0x21e1cde6
add ecx, edx
rol ecx, 5
mov edx, esi
mov dword [edx], ecx
add ecx, dword [edx + 4]
mov dword [edx], ecx
mov eax, dword [edx + 8]
mov edx, eax
and eax, ecx
not edx
and edx, dword [esi + 4]
or edx, eax
mov eax, dword [ebp - 4]
add edx, dword [eax]
mov eax, esi
mov ecx, dword [eax + 0xc]
add ecx, 0xc33707d6
add ecx, edx
rol ecx, 9
mov edx, eax
mov dword [edx + 0xc], ecx
add ecx, dword [edx]
mov dword [edx + 0xc], ecx
mov eax, dword [edx + 4]
mov edx, eax
and eax, ecx
not edx
and edx, dword [esi]
or edx, eax
mov eax, dword [ebp - 4]
add edx, dword [eax - 0x2c]
mov eax, esi
mov ecx, dword [eax + 8]
add ecx, 0xf4d50d87
add ecx, edx
rol ecx, 0xe
mov dword [eax + 8], ecx
mov edx, dword [eax + 0xc]
add edx, ecx
mov dword [eax + 8], edx
mov eax, dword [eax]
and edx, eax
mov ecx, eax
mov eax, dword [ebp - 4]
not ecx
and ecx, dword [esi + 0xc]
mov eax, dword [eax - 0x18]
or ecx, edx
add eax, 0x455a14ed
mov edx, esi
add ecx, dword [edx + 4]
add ecx, eax
ror ecx, 0xc
mov dword [edx + 4], ecx
mov edx, dword [edx + 8]
add edx, ecx
mov eax, esi
mov dword [eax + 4], edx
mov eax, dword [eax + 0xc]
and edx, eax
mov ecx, eax
mov eax, dword [ebp - 4]
not ecx
and ecx, dword [esi + 8]
mov eax, dword [eax - 4]
or ecx, edx
mov edx, esi
add eax, 0xa9e3e905
add ecx, dword [edx]
add ecx, eax
rol ecx, 5
mov dword [edx], ecx
mov edx, dword [edx + 4]
add edx, ecx
mov eax, esi
mov dword [eax], edx
mov eax, dword [eax + 8]
mov ecx, eax
not ecx
and ecx, dword [esi + 4]
and edx, eax
mov eax, dword [ebp - 4]
or ecx, edx
mov eax, dword [eax - 0x30]
mov edx, esi
add eax, 0xfcefa3f8
add ecx, dword [edx + 0xc]
add ecx, eax
rol ecx, 9
mov dword [edx + 0xc], ecx
add ecx, dword [edx]
mov dword [edx + 0xc], ecx
mov eax, dword [edx + 4]
mov edx, eax
and eax, ecx
not edx
and edx, dword [esi]
or edx, eax
mov eax, dword [ebp - 4]
add edx, dword [eax - 0x1c]
mov eax, esi
mov ecx, dword [eax + 8]
add ecx, 0x676f02d9
add ecx, edx
rol ecx, 0xe
mov dword [eax + 8], ecx
mov edx, dword [eax + 0xc]
add edx, ecx
mov dword [eax + 8], edx
mov eax, dword [eax]
mov ecx, eax
not ecx
and ecx, dword [esi + 0xc]
and edx, eax
or ecx, edx
mov edx, esi
mov esi, dword [ebp - 4]
add ecx, dword [edx + 4]
mov eax, dword [esi - 8]
add eax, 0x8d2a4c8a
add ecx, eax
ror ecx, 0xc
mov dword [edx + 4], ecx
mov eax, dword [edx + 8]
add eax, ecx
mov dword [edx + 4], eax
mov ecx, dword [edx + 0xc]
xor ecx, eax
xor ecx, dword [edx + 8]
mov eax, dword [edx]
add ecx, dword [esi - 0x24]
add eax, 0xfffa3942
add ecx, eax
rol ecx, 4
mov dword [edx], ecx
mov eax, dword [edx + 4]
add eax, ecx
mov dword [edx], eax
mov ecx, dword [edx + 4]
xor ecx, eax
xor ecx, dword [edx + 8]
mov eax, dword [edx + 0xc]
add ecx, dword [esi - 0x18]
add eax, 0x8771f681
add ecx, eax
rol ecx, 0xb
mov dword [edx + 0xc], ecx
mov eax, dword [edx]
add eax, ecx
mov dword [edx + 0xc], eax
mov ecx, dword [edx + 4]
xor ecx, eax
xor ecx, dword [edx]
mov eax, dword [edx + 8]
add ecx, dword [esi - 0xc]
add eax, 0x6d9d6122
add ecx, eax
rol ecx, 0x10
mov dword [edx + 8], ecx
mov eax, dword [edx + 0xc]
add eax, ecx
mov dword [edx + 8], eax
mov ecx, dword [edx]
xor ecx, eax
xor ecx, dword [edx + 0xc]
mov eax, dword [esi]
add ecx, dword [edx + 4]
add eax, 0xfde5380c
add ecx, eax
ror ecx, 9
mov dword [edx + 4], ecx
mov eax, dword [edx + 8]
add eax, ecx
mov dword [edx + 4], eax
mov ecx, dword [edx + 0xc]
xor ecx, eax
xor ecx, dword [edx + 8]
mov eax, dword [esi - 0x34]
add ecx, dword [edx]
add eax, 0xa4beea44
add ecx, eax
rol ecx, 4
mov dword [edx], ecx
mov eax, dword [edx + 4]
add eax, ecx
mov dword [edx], eax
mov ecx, dword [edx + 4]
xor ecx, eax
xor ecx, dword [edx + 8]
mov eax, dword [edx + 0xc]
add ecx, dword [esi - 0x28]
add eax, 0x4bdecfa9
add ecx, eax
rol ecx, 0xb
mov dword [edx + 0xc], ecx
mov eax, dword [edx]
add eax, ecx
mov dword [edx + 0xc], eax
mov ecx, dword [edx + 4]
xor ecx, eax
xor ecx, dword [edx]
mov eax, dword [edx + 8]
add ecx, dword [esi - 0x1c]
add eax, 0xf6bb4b60
add ecx, eax
rol ecx, 0x10
mov dword [edx + 8], ecx
mov eax, dword [edx + 0xc]
add eax, ecx
mov dword [edx + 8], eax
mov ecx, dword [edx]
xor ecx, eax
xor ecx, dword [edx + 0xc]
mov eax, dword [esi - 0x10]
add ecx, dword [edx + 4]
add eax, 0xbebfbc70
add ecx, eax
ror ecx, 9
mov dword [edx + 4], ecx
mov eax, dword [edx + 8]
add eax, ecx
mov dword [edx + 4], eax
mov ecx, dword [edx + 0xc]
xor ecx, eax
xor ecx, dword [edx + 8]
mov eax, dword [esi - 4]
add ecx, dword [edx]
add eax, 0x289b7ec6
add ecx, eax
rol ecx, 4
mov dword [edx], ecx
mov eax, dword [edx + 4]
add eax, ecx
mov dword [edx], eax
mov ecx, dword [edx + 4]
xor ecx, eax
xor ecx, dword [edx + 8]
mov eax, dword [esi - 0x38]
add ecx, dword [edx + 0xc]
add eax, 0xeaa127fa
add ecx, eax
rol ecx, 0xb
mov dword [edx + 0xc], ecx
mov eax, dword [edx]
add eax, ecx
mov dword [edx + 0xc], eax
mov ecx, dword [edx + 4]
xor ecx, eax
xor ecx, dword [edx]
add ecx, dword [esi - 0x2c]
mov eax, dword [edx + 8]
add eax, 0xd4ef3085
add ecx, eax
rol ecx, 0x10
mov dword [edx + 8], ecx
mov eax, dword [edx + 0xc]
add eax, ecx
mov dword [edx + 8], eax
mov ecx, dword [edx]
xor ecx, dword [edx + 0xc]
xor ecx, eax
add ecx, dword [edx + 4]
mov eax, dword [esi - 0x20]
add eax, 0x4881d05
add ecx, eax
ror ecx, 9
mov dword [edx + 4], ecx
mov eax, dword [edx + 8]
add eax, ecx
mov dword [edx + 4], eax
mov ecx, dword [edx + 0xc]
xor ecx, eax
xor ecx, dword [edx + 8]
mov eax, dword [esi - 0x14]
add ecx, dword [edx]
add eax, 0xd9d4d039
add ecx, eax
rol ecx, 4
mov dword [edx], ecx
mov eax, dword [edx + 4]
add eax, ecx
mov dword [edx], eax
mov ecx, dword [edx + 4]
xor ecx, eax
xor ecx, dword [edx + 8]
mov eax, dword [edx + 0xc]
add ecx, dword [esi - 8]
add eax, 0xe6db99e5
add ecx, eax
rol ecx, 0xb
mov dword [edx + 0xc], ecx
mov eax, dword [edx]
add eax, ecx
mov dword [edx + 0xc], eax
mov ecx, dword [edx + 4]
xor ecx, eax
xor ecx, dword [edx]
mov eax, dword [edx + 8]
add ecx, dword [esi + 4]
add eax, 0x1fa27cf8
add ecx, eax
rol ecx, 0x10
mov dword [edx + 8], ecx
mov eax, dword [edx + 0xc]
add eax, ecx
mov dword [edx + 8], eax
mov ecx, dword [edx]
xor ecx, dword [edx + 0xc]
xor ecx, eax
add ecx, dword [edx + 4]
mov eax, dword [esi - 0x30]
add eax, 0xc4ac5665
add ecx, eax
ror ecx, 9
mov dword [edx + 4], ecx
mov eax, dword [edx + 8]
add eax, ecx
mov dword [edx + 4], eax
mov ecx, dword [edx + 0xc]
not ecx
or ecx, eax
xor ecx, dword [edx + 8]
mov eax, dword [esi - 0x38]
add ecx, dword [edx]
add eax, 0xf4292244
add ecx, eax
rol ecx, 6
mov dword [edx], ecx
mov eax, dword [edx + 4]
add eax, ecx
mov dword [edx], eax
mov ecx, dword [edx + 8]
not ecx
or ecx, eax
xor ecx, dword [edx + 4]
mov eax, dword [edx + 0xc]
add ecx, dword [esi - 0x1c]
add eax, 0x432aff97
add ecx, eax
rol ecx, 0xa
mov dword [edx + 0xc], ecx
mov eax, dword [edx]
add eax, ecx
mov dword [edx + 0xc], eax
mov ecx, dword [edx + 4]
not ecx
or ecx, eax
xor ecx, dword [edx]
mov eax, dword [edx + 8]
add ecx, dword [esi]
add eax, 0xab9423a7
add ecx, eax
rol ecx, 0xf
mov dword [edx + 8], ecx
mov eax, dword [edx + 0xc]
add eax, ecx
mov dword [edx + 8], eax
mov ecx, dword [edx]
not ecx
or ecx, eax
xor ecx, dword [edx + 0xc]
mov eax, dword [esi - 0x24]
add ecx, dword [edx + 4]
add eax, 0xfc93a039
add ecx, eax
ror ecx, 0xb
mov dword [edx + 4], ecx
mov eax, dword [edx + 8]
add eax, ecx
mov dword [edx + 4], eax
mov ecx, dword [edx + 0xc]
not ecx
or ecx, eax
xor ecx, dword [edx + 8]
mov eax, dword [edx]
add ecx, dword [esi - 8]
add eax, 0x655b59c3
add ecx, eax
rol ecx, 6
mov dword [edx], ecx
mov eax, dword [edx + 4]
add eax, ecx
mov dword [edx], eax
mov ecx, dword [edx + 8]
not ecx
or ecx, eax
xor ecx, dword [edx + 4]
mov eax, dword [edx + 0xc]
add ecx, dword [esi - 0x2c]
add eax, 0x8f0ccc92
add ecx, eax
rol ecx, 0xa
mov dword [edx + 0xc], ecx
mov eax, dword [edx]
add eax, ecx
mov dword [edx + 0xc], eax
mov ecx, dword [edx + 4]
not ecx
or ecx, eax
xor ecx, dword [edx]
mov eax, dword [edx + 8]
add ecx, dword [esi - 0x10]
add eax, 0xffeff47d
add ecx, eax
rol ecx, 0xf
mov dword [edx + 8], ecx
mov eax, dword [edx + 0xc]
add eax, ecx
mov dword [edx + 8], eax
mov ecx, dword [edx]
not ecx
or ecx, eax
xor ecx, dword [edx + 0xc]
mov eax, dword [esi - 0x34]
add ecx, dword [edx + 4]
add eax, 0x85845dd1
add ecx, eax
ror ecx, 0xb
mov dword [edx + 4], ecx
mov eax, dword [edx + 8]
add eax, ecx
mov dword [edx + 4], eax
mov ecx, dword [edx + 0xc]
not ecx
or ecx, eax
xor ecx, dword [edx + 8]
mov eax, dword [esi - 0x18]
add ecx, dword [edx]
add eax, 0x6fa87e4f
add ecx, eax
rol ecx, 6
mov dword [edx], ecx
mov eax, dword [edx + 4]
add eax, ecx
mov dword [edx], eax
mov ecx, dword [edx + 8]
not ecx
or ecx, eax
xor ecx, dword [edx + 4]
mov eax, dword [edx + 0xc]
add ecx, dword [esi + 4]
add eax, 0xfe2ce6e0
add ecx, eax
rol ecx, 0xa
mov dword [edx + 0xc], ecx
mov eax, dword [edx]
add eax, ecx
mov dword [edx + 0xc], eax
mov ecx, dword [edx + 4]
not ecx
or ecx, eax
xor ecx, dword [edx]
mov eax, dword [edx + 8]
add ecx, dword [esi - 0x20]
add eax, 0xa3014314
add ecx, eax
rol ecx, 0xf
mov dword [edx + 8], ecx
mov eax, dword [edx + 0xc]
add eax, ecx
mov dword [edx + 8], eax
mov ecx, dword [edx]
not ecx
or ecx, eax
xor ecx, dword [edx + 0xc]
mov eax, dword [esi - 4]
add ecx, dword [edx + 4]
add eax, 0x4e0811a1
add ecx, eax
ror ecx, 0xb
mov dword [edx + 4], ecx
mov eax, dword [edx + 8]
add eax, ecx
mov dword [edx + 4], eax
mov ecx, dword [edx + 0xc]
not ecx
or ecx, eax
xor ecx, dword [edx + 8]
mov eax, dword [esi - 0x28]
add ecx, dword [edx]
add eax, 0xf7537e82
add ecx, eax
rol ecx, 6
mov dword [edx], ecx
mov eax, dword [edx + 4]
add eax, ecx
mov dword [edx], eax
mov ecx, dword [edx + 8]
not ecx
or ecx, eax
xor ecx, dword [edx + 4]
mov eax, dword [edx + 0xc]
add ecx, dword [esi - 0xc]
add eax, 0xbd3af235
add ecx, eax
rol ecx, 0xa
mov dword [edx + 0xc], ecx
mov eax, dword [edx]
add eax, ecx
mov dword [edx + 0xc], eax
mov ecx, dword [edx + 4]
not ecx
or ecx, eax
xor ecx, dword [edx]
mov eax, dword [edx + 8]
add ecx, dword [esi - 0x30]
add eax, 0x2ad7d2bb
add ecx, eax
add dword [ebp - 4], 0x40
rol ecx, 0xf
mov dword [edx + 8], ecx
mov eax, dword [edx + 0xc]
add eax, ecx
mov dword [edx + 8], eax
mov ecx, dword [edx]
not ecx
or ecx, eax
xor ecx, dword [edx + 0xc]
mov eax, dword [esi - 0x14]
add ecx, dword [edx + 4]
mov esi, dword [ebp - 0x18]
add eax, 0xeb86d391
add ecx, eax
ror ecx, 0xb
mov dword [edx + 4], ecx
mov eax, dword [edx + 8]
add eax, ecx
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x14]
add dword [edx], eax
add dword [edx + 4], ebx
add dword [edx + 8], edi
add dword [edx + 0xc], esi
dec dword [ebp - 8]
jne 0x404c14
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x1c]
jmp 0x405604
mov edx, dword [ebp + 8]
cmp dword [ebp - 0x20], 0x1000
mov ecx, dword [ebp - 0x10]
je 0x404ba4
pop edi
pop esi
mov eax, edx
pop ebx
mov esp, ebp
pop ebp
ret