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

Disassembly:
sub esp, 0x14
push ebx
push ebp
mov ebp, dword [esp + 0x24]
push edi
test ebp, ebp
jne 0x41ce8f
mov ebp, dword [esp + 0x24]
lea ecx, [ebp + 1]
mov al, byte [ebp]
inc ebp
test al, al
jne 0x41ce85
sub ebp, ecx
mov eax, ebp
and eax, 0x3f
mov ecx, ebp
sub ecx, eax
cmp eax, 0x38
jae 0x41cea2
add ecx, 0x40
jmp 0x41cea5
sub ecx, 0xffffff80
mov eax, ecx
push eax
mov dword [esp + 0x2c], ecx
call fcn.00424725
add esp, 4
mov ebx, eax
xor edi, edi
mov dword [esp + 0x1c], ebx
test ebp, ebp
jbe 0x41cedd
mov ecx, dword [esp + 0x24]
sub ecx, ebx
mov dword [esp + 0xc], ebp
mov edi, ebp
lea esp, [esp]
mov dl, byte [ecx + eax]
mov byte [eax], dl
inc eax
sub dword [esp + 0xc], 1
jne 0x41ced0
mov ecx, dword [esp + 0x28]
mov byte [edi + ebx], 0x80
inc edi
lea eax, [ecx - 8]
cmp edi, eax
jae 0x41cf0a
sub eax, edi
push eax
lea ecx, [edi + ebx]
push 0
push ecx
mov dword [esp + 0x18], eax
call fcn.00426020
mov ecx, dword [esp + 0x34]
add esp, 0xc
add edi, dword [esp + 0xc]
lea eax, [ebp*8]
mov dword [edi + ebx], eax
shr ebp, 0x1d
mov dword [edi + ebx + 4], ebp
mov dword [esi], 0x67452301
mov dword [esi + 4], 0xefcdab89
mov dword [esi + 8], 0x98badcfe
mov dword [esi + 0xc], 0x10325476
test ecx, ecx
jbe 0x41d8c0
dec ecx
shr ecx, 6
inc ecx
lea eax, [ebx + 0x38]
mov dword [esp + 0x28], ecx
lea ebx, [ebx]
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 + 0x14], ecx
and ecx, edx
mov dword [esp + 0x10], 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 + 0x10]
add dword [esi + 4], edx
mov ecx, dword [esp + 0x14]
add dword [esi + 8], ecx
mov edx, ebx
add dword [esi + 0xc], edx
add eax, 0x40
sub dword [esp + 0x28], 1
jne 0x41cf50
mov ebx, dword [esp + 0x1c]
push ebx
call fcn.00424e5d
add esp, 4
pop edi
pop ebp
mov eax, esi
pop ebx
add esp, 0x14
ret