Function at 0x40e4a0
Capabilities:
Encode data using xor
Hash data with md5

Disassembly:
sub esp, 0x18
push ebx
mov ebx, dword [esp + 0x20]
push ebp
push edi
lea ecx, [ebx + 1]
lea ecx, [ecx]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x40e4b0
sub ebx, ecx
mov eax, ebx
and eax, 0x3f
mov ecx, ebx
sub ecx, eax
cmp eax, 0x38
jae 0x40e4cc
add ecx, 0x40
jmp 0x40e4cf
sub ecx, 0xffffff80
mov eax, ecx
push eax
mov dword [esp + 0x10], ecx
call fcn.0040f80a
add esp, 4
mov ebp, eax
xor edi, edi
mov dword [esp + 0x20], ebp
test ebx, ebx
jbe 0x40e503
mov ecx, dword [esp + 0x28]
sub ecx, ebp
mov dword [esp + 0x10], ebx
mov edi, ebx
mov dl, byte [ecx + eax]
mov byte [eax], dl
inc eax
sub dword [esp + 0x10], 1
jne 0x40e4f6
mov ecx, dword [esp + 0xc]
mov byte [edi + ebp], 0x80
inc edi
lea eax, [ecx - 8]
cmp edi, eax
jae 0x40e530
sub eax, edi
push eax
lea ecx, [edi + ebp]
push 0
push ecx
mov dword [esp + 0x1c], eax
call fcn.00430280
mov ecx, dword [esp + 0x18]
add esp, 0xc
add edi, dword [esp + 0x10]
lea eax, [ebx*8]
mov dword [edi + ebp], eax
shr ebx, 0x1d
mov dword [edi + ebp + 4], ebx
mov dword [esi], 0x67452301
mov dword [esi + 4], 0xefcdab89
mov dword [esi + 8], 0x98badcfe
mov dword [esi + 0xc], 0x10325476
test ecx, ecx
jbe 0x40eee0
dec ecx
shr ecx, 6
inc ecx
lea eax, [ebp + 0x38]
mov dword [esp + 0x10], ecx
mov edx, dword [esi + 4]
mov ecx, dword [esi + 8]
mov ebx, dword [esi + 0xc]
mov edi, dword [esi]
mov ebp, edx
mov dword [esp + 0x18], ecx
and ecx, edx
mov dword [esp + 0x14], edx
not ebp
and ebp, ebx
or ebp, ecx
mov ecx, dword [eax - 0x38]
add ebp, edi
lea ecx, [ecx + ebp - 0x28955b88]
rol ecx, 7
mov dword [esi], ecx
mov edx, dword [esi + 4]
add ecx, edx
mov dword [esi], ecx
mov edx, ecx
and ecx, dword [esi + 4]
not edx
and edx, dword [esi + 8]
mov dword [esp + 0xc], edi
or edx, ecx
add edx, dword [esi + 0xc]
mov ecx, dword [eax - 0x34]
lea ecx, [edx + ecx - 0x173848aa]
rol ecx, 0xc
mov dword [esi + 0xc], ecx
mov edx, dword [esi]
add ecx, edx
mov dword [esi + 0xc], ecx
mov edx, ecx
and ecx, dword [esi]
not edx
and edx, dword [esi + 4]
or edx, ecx
add edx, dword [eax - 0x30]
mov ecx, dword [esi + 8]
lea ecx, [edx + ecx + 0x242070db]
ror ecx, 0xf
mov dword [esi + 8], ecx
mov edx, dword [esi + 0xc]
add ecx, edx
mov dword [esi + 8], ecx
mov edx, ecx
and ecx, dword [esi + 0xc]
not edx
and edx, dword [esi]
or edx, ecx
add edx, dword [esi + 4]
mov ecx, dword [eax - 0x2c]
lea ecx, [edx + ecx - 0x3e423112]
ror ecx, 0xa
mov dword [esi + 4], ecx
mov edx, dword [esi + 8]
add ecx, edx
mov dword [esi + 4], ecx
mov edx, ecx
and ecx, dword [esi + 8]
not edx
and edx, dword [esi + 0xc]
or edx, ecx
add edx, dword [eax - 0x28]
mov ecx, dword [esi]
lea ecx, [edx + ecx - 0xa83f051]
rol ecx, 7
mov dword [esi], ecx
mov edx, dword [esi + 4]
add ecx, edx
mov edx, ecx
mov dword [esi], ecx
and ecx, dword [esi + 4]
not edx
and edx, dword [esi + 8]
or edx, ecx
add edx, dword [esi + 0xc]
mov ecx, dword [eax - 0x24]
lea ecx, [edx + ecx + 0x4787c62a]
rol ecx, 0xc
mov dword [esi + 0xc], ecx
mov edx, dword [esi]
add ecx, edx
mov dword [esi + 0xc], ecx
mov edi, dword [esi]
and edi, ecx
mov edx, ecx
mov ecx, dword [esi + 8]
not edx
and edx, dword [esi + 4]
or edx, edi
add edx, dword [eax - 0x20]
lea ecx, [edx + ecx - 0x57cfb9ed]
ror ecx, 0xf
mov dword [esi + 8], ecx
mov edx, dword [esi + 0xc]
add ecx, edx
mov dword [esi + 8], ecx
mov edi, dword [esi + 0xc]
and edi, ecx
mov edx, ecx
mov ecx, dword [eax - 0x1c]
not edx
and edx, dword [esi]
or edx, edi
add edx, dword [esi + 4]
lea ecx, [edx + ecx - 0x2b96aff]
ror ecx, 0xa
mov dword [esi + 4], ecx
mov edx, dword [esi + 8]
add ecx, edx
mov dword [esi + 4], ecx
mov edi, dword [esi + 8]
and edi, ecx
mov edx, ecx
mov ecx, dword [eax - 0x18]
not edx
and edx, dword [esi + 0xc]
or edx, edi
add edx, dword [esi]
lea ecx, [edx + ecx + 0x698098d8]
rol ecx, 7
mov dword [esi], ecx
mov edx, dword [esi + 4]
add ecx, edx
mov dword [esi], ecx
mov edi, dword [esi + 4]
mov edx, ecx
not edx
and edx, dword [esi + 8]
and edi, ecx
mov ecx, dword [eax - 0x14]
or edx, edi
add edx, dword [esi + 0xc]
lea ecx, [edx + ecx - 0x74bb0851]
rol ecx, 0xc
mov dword [esi + 0xc], ecx
mov edx, dword [esi]
add ecx, edx
mov dword [esi + 0xc], ecx
mov edi, dword [esi]
mov edx, ecx
not edx
and edx, dword [esi + 4]
and edi, ecx
mov ecx, dword [eax - 0x10]
or edx, edi
add edx, dword [esi + 8]
lea ecx, [edx + ecx - 0xa44f]
ror ecx, 0xf
mov dword [esi + 8], ecx
mov edx, dword [esi + 0xc]
add ecx, edx
mov dword [esi + 8], ecx
mov edi, dword [esi + 0xc]
mov edx, ecx
not edx
and edx, dword [esi]
and edi, ecx
or edx, edi
add edx, dword [eax - 0xc]
mov ecx, dword [esi + 4]
lea ecx, [edx + ecx - 0x76a32842]
ror ecx, 0xa
mov dword [esi + 4], ecx
mov edx, dword [esi + 8]
add ecx, edx
mov dword [esi + 4], ecx
mov edi, dword [esi + 8]
and edi, ecx
mov edx, ecx
mov ecx, dword [eax - 8]
not edx
and edx, dword [esi + 0xc]
or edx, edi
add edx, dword [esi]
lea ecx, [edx + ecx + 0x6b901122]
rol ecx, 7
mov dword [esi], ecx
mov edx, dword [esi + 4]
add ecx, edx
mov dword [esi], ecx
mov edi, dword [esi + 4]
and edi, ecx
mov edx, ecx
mov ecx, dword [esi + 0xc]
not edx
and edx, dword [esi + 8]
or edx, edi
add edx, dword [eax - 4]
lea ecx, [edx + ecx - 0x2678e6d]
rol ecx, 0xc
mov dword [esi + 0xc], ecx
mov edx, dword [esi]
add ecx, edx
mov dword [esi + 0xc], ecx
mov edi, dword [esi]
and edi, ecx
mov edx, ecx
mov ecx, dword [eax]
not edx
and edx, dword [esi + 4]
or edx, edi
add edx, dword [esi + 8]
lea ecx, [edx + ecx - 0x5986bc72]
ror ecx, 0xf
mov dword [esi + 8], ecx
mov edx, dword [esi + 0xc]
add ecx, edx
mov dword [esi + 8], ecx
mov edi, dword [esi + 0xc]
and edi, ecx
mov edx, ecx
mov ecx, dword [eax + 4]
not edx
and edx, dword [esi]
or edx, edi
add edx, dword [esi + 4]
lea ecx, [edx + ecx + 0x49b40821]
ror ecx, 0xa
mov dword [esi + 4], ecx
mov edx, dword [esi + 8]
add edx, ecx
mov dword [esi + 4], edx
mov ecx, dword [esi + 0xc]
mov edi, ecx
not edi
and edi, dword [esi + 8]
and ecx, edx
or edi, ecx
add edi, dword [esi]
mov ecx, dword [eax - 0x34]
lea ecx, [edi + ecx - 0x9e1da9e]
rol ecx, 5
mov dword [esi], ecx
mov edx, dword [esi + 4]
add edx, ecx
mov dword [esi], edx
mov ecx, dword [esi + 8]
mov edi, ecx
not edi
and edi, dword [esi + 4]
and ecx, edx
or edi, ecx
add edi, dword [eax - 0x20]
mov ecx, dword [esi + 0xc]
lea ecx, [edi + ecx - 0x3fbf4cc0]
rol ecx, 9
mov dword [esi + 0xc], ecx
mov edx, dword [esi]
add edx, ecx
mov dword [esi + 0xc], edx
mov ecx, dword [esi + 4]
mov edi, ecx
and ecx, edx
not edi
and edi, dword [esi]
or edi, ecx
add edi, dword [eax - 0xc]
mov ecx, dword [esi + 8]
lea ecx, [edi + ecx + 0x265e5a51]
rol ecx, 0xe
mov dword [esi + 8], ecx
mov edx, dword [esi + 0xc]
add edx, ecx
mov dword [esi + 8], edx
mov ecx, dword [esi]
mov edi, ecx
and ecx, edx
not edi
and edi, dword [esi + 0xc]
or edi, ecx
add edi, dword [eax - 0x38]
mov ecx, dword [esi + 4]
lea ecx, [edi + ecx - 0x16493856]
ror ecx, 0xc
mov dword [esi + 4], ecx
mov edx, dword [esi + 8]
add edx, ecx
mov dword [esi + 4], edx
mov ecx, dword [esi + 0xc]
mov edi, ecx
and ecx, edx
not edi
and edi, dword [esi + 8]
or edi, ecx
add edi, dword [esi]
mov ecx, dword [eax - 0x24]
lea ecx, [edi + ecx - 0x29d0efa3]
rol ecx, 5
mov dword [esi], ecx
mov edx, dword [esi + 4]
add edx, ecx
mov dword [esi], edx
mov ecx, dword [esi + 8]
mov edi, ecx
and ecx, edx
not edi
and edi, dword [esi + 4]
or edi, ecx
add edi, dword [esi + 0xc]
mov ecx, dword [eax - 0x10]
lea ecx, [edi + ecx + 0x2441453]
rol ecx, 9
mov dword [esi + 0xc], ecx
mov edx, dword [esi]
add ecx, edx
mov dword [esi + 0xc], ecx
mov edx, dword [esi + 4]
mov edi, edx
and ecx, edx
not edi
and edi, dword [esi]
or edi, ecx
add edi, dword [esi + 8]
mov ecx, dword [eax + 4]
lea ecx, [edi + ecx - 0x275e197f]
rol ecx, 0xe
mov dword [esi + 8], ecx
mov edx, dword [esi + 0xc]
add edx, ecx
mov dword [esi + 8], edx
mov ecx, dword [esi]
mov edi, ecx
and ecx, edx
not edi
and edi, dword [esi + 0xc]
or edi, ecx
add edi, dword [eax - 0x28]
mov ecx, dword [esi + 4]
lea ecx, [edi + ecx - 0x182c0438]
ror ecx, 0xc
mov dword [esi + 4], ecx
mov edx, dword [esi + 8]
add edx, ecx
mov dword [esi + 4], edx
mov ecx, dword [esi + 0xc]
mov edi, ecx
and ecx, edx
not edi
and edi, dword [esi + 8]
or edi, ecx
add edi, dword [eax - 0x14]
mov ecx, dword [esi]
lea ecx, [edi + ecx + 0x21e1cde6]
rol ecx, 5
mov dword [esi], ecx
mov edx, dword [esi + 4]
add edx, ecx
mov dword [esi], edx
mov ecx, dword [esi + 8]
mov edi, ecx
and ecx, edx
not edi
and edi, dword [esi + 4]
or edi, ecx
add edi, dword [esi + 0xc]
mov ecx, dword [eax]
lea ecx, [edi + ecx - 0x3cc8f82a]
rol ecx, 9
mov dword [esi + 0xc], ecx
mov edx, dword [esi]
add ecx, edx
mov dword [esi + 0xc], ecx
mov edx, dword [esi + 4]
and ecx, edx
mov edi, edx
not edi
and edi, dword [esi]
or edi, ecx
add edi, dword [esi + 8]
mov ecx, dword [eax - 0x2c]
lea ecx, [edi + ecx - 0xb2af279]
rol ecx, 0xe
mov dword [esi + 8], ecx
mov edx, dword [esi + 0xc]
add edx, ecx
mov dword [esi + 8], edx
mov ecx, dword [esi]
mov edi, ecx
and ecx, edx
not edi
and edi, dword [esi + 0xc]
or edi, ecx
add edi, dword [esi + 4]
mov ecx, dword [eax - 0x18]
lea ecx, [edi + ecx + 0x455a14ed]
ror ecx, 0xc
mov dword [esi + 4], ecx
mov edx, dword [esi + 8]
add ecx, edx
mov dword [esi + 4], ecx
mov edx, dword [esi + 0xc]
mov edi, edx
not edi
and edi, dword [esi + 8]
and ecx, edx
or edi, ecx
add edi, dword [eax - 4]
mov ecx, dword [esi]
lea ecx, [edi + ecx - 0x561c16fb]
rol ecx, 5
mov dword [esi], ecx
mov edx, dword [esi + 4]
add ecx, edx
mov dword [esi], ecx
mov edx, dword [esi + 8]
and ecx, edx
mov edi, edx
not edi
and edi, dword [esi + 4]
or edi, ecx
add edi, dword [esi + 0xc]
mov ecx, dword [eax - 0x30]
lea ecx, [edi + ecx - 0x3105c08]
rol ecx, 9
mov dword [esi + 0xc], ecx
mov edx, dword [esi]
add ecx, edx
mov dword [esi + 0xc], ecx
mov edx, dword [esi + 4]
and ecx, edx
mov edi, edx
not edi
and edi, dword [esi]
or edi, ecx
add edi, dword [esi + 8]
mov ecx, dword [eax - 0x1c]
lea ecx, [edi + ecx + 0x676f02d9]
rol ecx, 0xe
mov dword [esi + 8], ecx
mov edx, dword [esi + 0xc]
add edx, ecx
mov dword [esi + 8], edx
mov ecx, dword [esi]
mov edi, ecx
and ecx, edx
not edi
and edi, dword [esi + 0xc]
or edi, ecx
add edi, dword [esi + 4]
mov ecx, dword [eax - 8]
lea ecx, [edi + ecx - 0x72d5b376]
ror ecx, 0xc
mov dword [esi + 4], ecx
mov edx, dword [esi + 8]
add ecx, edx
mov dword [esi + 4], ecx
mov edx, dword [esi + 0xc]
xor edx, ecx
xor edx, dword [esi + 8]
mov ecx, dword [eax - 0x24]
add edx, dword [esi]
lea ecx, [edx + ecx - 0x5c6be]
rol ecx, 4
mov dword [esi], ecx
mov edx, dword [esi + 4]
add ecx, edx
mov dword [esi], ecx
mov edx, dword [esi + 8]
xor edx, ecx
xor edx, dword [esi + 4]
mov ecx, dword [eax - 0x18]
add edx, dword [esi + 0xc]
lea ecx, [edx + ecx - 0x788e097f]
rol ecx, 0xb
mov dword [esi + 0xc], ecx
mov edx, dword [esi]
add ecx, edx
mov dword [esi + 0xc], ecx
mov edx, dword [esi + 4]
xor edx, ecx
xor edx, dword [esi]
mov ecx, dword [esi + 8]
add edx, dword [eax - 0xc]
lea ecx, [edx + ecx + 0x6d9d6122]
rol ecx, 0x10
mov dword [esi + 8], ecx
mov edx, dword [esi + 0xc]
add ecx, edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 0xc]
xor edx, ecx
xor edx, dword [esi]
add edx, dword [esi + 4]
mov ecx, dword [eax]
lea ecx, [edx + ecx - 0x21ac7f4]
ror ecx, 9
mov dword [esi + 4], ecx
mov edx, dword [esi + 8]
add ecx, edx
mov dword [esi + 4], ecx
mov edx, dword [esi + 0xc]
xor edx, ecx
xor edx, dword [esi + 8]
mov ecx, dword [eax - 0x34]
add edx, dword [esi]
lea ecx, [edx + ecx - 0x5b4115bc]
rol ecx, 4
mov dword [esi], ecx
mov edx, dword [esi + 4]
add ecx, edx
mov dword [esi], ecx
mov edx, dword [esi + 8]
xor edx, ecx
xor edx, dword [esi + 4]
mov ecx, dword [esi + 0xc]
add edx, dword [eax - 0x28]
lea ecx, [edx + ecx + 0x4bdecfa9]
rol ecx, 0xb
mov dword [esi + 0xc], ecx
mov edx, dword [esi]
add ecx, edx
mov dword [esi + 0xc], ecx
mov edx, dword [esi + 4]
xor edx, ecx
xor edx, dword [esi]
mov ecx, dword [eax - 0x1c]
add edx, dword [esi + 8]
lea ecx, [edx + ecx - 0x944b4a0]
rol ecx, 0x10
mov dword [esi + 8], ecx
mov edx, dword [esi + 0xc]
add ecx, edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 0xc]
xor edx, ecx
xor edx, dword [esi]
mov ecx, dword [eax - 0x10]
add edx, dword [esi + 4]
lea ecx, [edx + ecx - 0x41404390]
ror ecx, 9
mov dword [esi + 4], ecx
mov edx, dword [esi + 8]
add ecx, edx
mov dword [esi + 4], ecx
mov edx, dword [esi + 0xc]
xor edx, ecx
xor edx, dword [esi + 8]
mov ecx, dword [esi]
add edx, dword [eax - 4]
lea ecx, [edx + ecx + 0x289b7ec6]
rol ecx, 4
mov dword [esi], ecx
mov edx, dword [esi + 4]
add ecx, edx
mov dword [esi], ecx
mov edx, dword [esi + 8]
xor edx, ecx
xor edx, dword [esi + 4]
mov ecx, dword [eax - 0x38]
add edx, dword [esi + 0xc]
lea ecx, [edx + ecx - 0x155ed806]
rol ecx, 0xb
mov dword [esi + 0xc], ecx
mov edx, dword [esi]
add ecx, edx
mov dword [esi + 0xc], ecx
mov edx, dword [esi + 4]
xor edx, ecx
xor edx, dword [esi]
mov ecx, dword [eax - 0x2c]
add edx, dword [esi + 8]
lea ecx, [edx + ecx - 0x2b10cf7b]
rol ecx, 0x10
mov dword [esi + 8], ecx
mov edx, dword [esi + 0xc]
add ecx, edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 0xc]
xor edx, ecx
xor edx, dword [esi]
mov ecx, dword [esi + 4]
add edx, dword [eax - 0x20]
lea ecx, [edx + ecx + 0x4881d05]
ror ecx, 9
mov dword [esi + 4], ecx
mov edx, dword [esi + 8]
add ecx, edx
mov dword [esi + 4], ecx
mov edx, dword [esi + 0xc]
xor edx, ecx
xor edx, dword [esi + 8]
mov ecx, dword [esi]
add edx, dword [eax - 0x14]
lea ecx, [edx + ecx - 0x262b2fc7]
rol ecx, 4
mov dword [esi], ecx
mov edx, dword [esi + 4]
add ecx, edx
mov dword [esi], ecx
mov edx, dword [esi + 8]
xor edx, ecx
xor edx, dword [esi + 4]
mov ecx, dword [eax - 8]
add edx, dword [esi + 0xc]
lea ecx, [edx + ecx - 0x1924661b]
rol ecx, 0xb
mov dword [esi + 0xc], ecx
mov edx, dword [esi]
add ecx, edx
mov dword [esi + 0xc], ecx
mov edx, dword [esi + 4]
xor edx, ecx
xor edx, dword [esi]
mov ecx, dword [eax + 4]
add edx, dword [esi + 8]
lea ecx, [edx + ecx + 0x1fa27cf8]
rol ecx, 0x10
mov dword [esi + 8], ecx
mov edx, dword [esi + 0xc]
add ecx, edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 0xc]
xor edx, ecx
xor edx, dword [esi]
mov ecx, dword [esi + 4]
add edx, dword [eax - 0x30]
lea ecx, [edx + ecx - 0x3b53a99b]
ror ecx, 9
mov dword [esi + 4], ecx
mov edx, dword [esi + 8]
add ecx, edx
mov dword [esi + 4], ecx
mov edx, dword [esi + 0xc]
not edx
or edx, ecx
xor edx, dword [esi + 8]
mov ecx, dword [esi]
add edx, dword [eax - 0x38]
lea ecx, [edx + ecx - 0xbd6ddbc]
rol ecx, 6
mov dword [esi], ecx
mov edx, dword [esi + 4]
add ecx, edx
mov dword [esi], ecx
mov edx, dword [esi + 8]
not edx
or edx, ecx
xor edx, dword [esi + 4]
mov ecx, dword [eax - 0x1c]
add edx, dword [esi + 0xc]
lea ecx, [edx + ecx + 0x432aff97]
rol ecx, 0xa
mov dword [esi + 0xc], ecx
mov edx, dword [esi]
add ecx, edx
mov dword [esi + 0xc], ecx
mov edx, dword [esi + 4]
not edx
or edx, ecx
xor edx, dword [esi]
mov ecx, dword [eax]
add edx, dword [esi + 8]
lea ecx, [edx + ecx - 0x546bdc59]
rol ecx, 0xf
mov dword [esi + 8], ecx
mov edx, dword [esi + 0xc]
add ecx, edx
mov dword [esi + 8], ecx
mov edx, dword [esi]
not edx
or edx, ecx
xor edx, dword [esi + 0xc]
mov ecx, dword [eax - 0x24]
add edx, dword [esi + 4]
lea ecx, [edx + ecx - 0x36c5fc7]
ror ecx, 0xb
mov dword [esi + 4], ecx
mov edx, dword [esi + 8]
add ecx, edx
mov dword [esi + 4], ecx
mov edx, dword [esi + 0xc]
not edx
or edx, ecx
xor edx, dword [esi + 8]
mov ecx, dword [eax - 8]
add edx, dword [esi]
lea ecx, [edx + ecx + 0x655b59c3]
rol ecx, 6
mov dword [esi], ecx
mov edx, dword [esi + 4]
add ecx, edx
mov dword [esi], ecx
mov edx, dword [esi + 8]
not edx
or edx, ecx
xor edx, dword [esi + 4]
mov ecx, dword [eax - 0x2c]
add edx, dword [esi + 0xc]
lea ecx, [edx + ecx - 0x70f3336e]
rol ecx, 0xa
mov dword [esi + 0xc], ecx
mov edx, dword [esi]
add ecx, edx
mov dword [esi + 0xc], ecx
mov edx, dword [esi + 4]
not edx
or edx, ecx
xor edx, dword [esi]
mov ecx, dword [eax - 0x10]
add edx, dword [esi + 8]
lea ecx, [edx + ecx - 0x100b83]
rol ecx, 0xf
mov dword [esi + 8], ecx
mov edx, dword [esi + 0xc]
add ecx, edx
mov dword [esi + 8], ecx
mov edx, dword [esi]
not edx
or edx, ecx
xor edx, dword [esi + 0xc]
mov ecx, dword [eax - 0x34]
add edx, dword [esi + 4]
lea ecx, [edx + ecx - 0x7a7ba22f]
ror ecx, 0xb
mov dword [esi + 4], ecx
mov edx, dword [esi + 8]
add ecx, edx
mov dword [esi + 4], ecx
mov edx, dword [esi + 0xc]
not edx
or edx, ecx
xor edx, dword [esi + 8]
mov ecx, dword [eax - 0x18]
add edx, dword [esi]
lea ecx, [edx + ecx + 0x6fa87e4f]
rol ecx, 6
mov dword [esi], ecx
mov edx, dword [esi + 4]
add ecx, edx
mov dword [esi], ecx
mov edx, dword [esi + 8]
not edx
or edx, ecx
xor edx, dword [esi + 4]
mov ecx, dword [eax + 4]
add edx, dword [esi + 0xc]
lea ecx, [edx + ecx - 0x1d31920]
rol ecx, 0xa
mov dword [esi + 0xc], ecx
mov edx, dword [esi]
add ecx, edx
mov dword [esi + 0xc], ecx
mov edx, dword [esi + 4]
not edx
or edx, ecx
xor edx, dword [esi]
mov ecx, dword [esi + 8]
add edx, dword [eax - 0x20]
lea ecx, [edx + ecx - 0x5cfebcec]
rol ecx, 0xf
mov dword [esi + 8], ecx
mov edx, dword [esi + 0xc]
add ecx, edx
mov dword [esi + 8], ecx
mov edx, dword [esi]
not edx
or edx, ecx
xor edx, dword [esi + 0xc]
mov ecx, dword [esi + 4]
add edx, dword [eax - 4]
lea ecx, [edx + ecx + 0x4e0811a1]
ror ecx, 0xb
mov dword [esi + 4], ecx
mov edx, dword [esi + 8]
add ecx, edx
mov dword [esi + 4], ecx
mov edx, dword [esi + 0xc]
not edx
or edx, ecx
xor edx, dword [esi + 8]
mov ecx, dword [esi]
add edx, dword [eax - 0x28]
lea ecx, [edx + ecx - 0x8ac817e]
rol ecx, 6
mov dword [esi], ecx
mov edx, dword [esi + 4]
add ecx, edx
mov dword [esi], ecx
mov edx, dword [esi + 8]
not edx
or edx, ecx
xor edx, dword [esi + 4]
mov ecx, dword [esi + 0xc]
add edx, dword [eax - 0xc]
lea ecx, [edx + ecx - 0x42c50dcb]
rol ecx, 0xa
mov dword [esi + 0xc], ecx
mov edx, dword [esi]
add ecx, edx
mov dword [esi + 0xc], ecx
mov edx, dword [esi + 4]
not edx
or edx, ecx
xor edx, dword [esi]
mov ecx, dword [esi + 8]
add edx, dword [eax - 0x30]
lea ecx, [edx + ecx + 0x2ad7d2bb]
rol ecx, 0xf
mov dword [esi + 8], ecx
mov edx, dword [esi + 0xc]
add ecx, edx
mov dword [esi + 8], ecx
mov edx, dword [esi]
not edx
or edx, ecx
xor edx, dword [esi + 0xc]
add edx, dword [eax - 0x14]
mov ecx, dword [esi + 4]
lea ecx, [edx + ecx - 0x14792c6f]
ror ecx, 0xb
mov dword [esi + 4], ecx
mov edx, dword [esi + 8]
add edx, ecx
mov ecx, dword [esp + 0xc]
mov dword [esi + 4], edx
add dword [esi], ecx
mov edx, dword [esp + 0x14]
add dword [esi + 4], edx
mov ecx, dword [esp + 0x18]
add dword [esi + 8], ecx
mov edx, ebx
add dword [esi + 0xc], edx
add eax, 0x40
sub dword [esp + 0x10], 1
jne 0x40e570
mov ebp, dword [esp + 0x20]
push ebp
call fcn.0040f815
add esp, 4
pop edi
pop ebp
mov eax, esi
pop ebx
add esp, 0x18
ret