Function at 0x407b00
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 0x407b10
sub ebx, ecx
mov eax, ebx
and eax, 0x3f
mov ecx, ebx
sub ecx, eax
cmp eax, 0x38
jae 0x407b2c
add ecx, 0x40
jmp 0x407b2f
sub ecx, 0xffffff80
mov eax, ecx
push eax
mov dword [esp + 0x10], ecx
call fcn.00438e92
add esp, 4
mov ebp, eax
xor edi, edi
mov dword [esp + 0x20], ebp
test ebx, ebx
jbe 0x407b63
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 0x407b56
mov ecx, dword [esp + 0xc]
mov byte [edi + ebp], 0x80
inc edi
lea eax, [ecx - 8]
cmp edi, eax
jae 0x407b90
sub eax, edi
push eax
lea ecx, [edi + ebp]
push 0
push ecx
mov dword [esp + 0x1c], eax
call fcn.0045c9f0
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 0x408540
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 0x407bd0
mov ebp, dword [esp + 0x20]
push ebp
call fcn.00438e87
add esp, 4
pop edi
pop ebp
mov eax, esi
pop ebx
add esp, 0x18
ret