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

Disassembly:
mov eax, dword [0x425ca8]
sub esp, 0x38
test eax, eax
jne 0x40240e
push 0x1040
call fcn.00414766
add esp, 4
mov dword [0x425ca8], eax
push ebx
push ebp
push esi
mov esi, 0x98badcfe
push edi
mov dword [esp + 0x14], eax
mov edi, 0x67452301
mov ebx, 0xefcdab89
mov dword [esp + 0x40], esi
mov ebp, 0x10325476
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x14]
push eax
push 0x1000
push 1
push ecx
call fcn.00404f74
mov edx, dword [esp + 0x20]
add esp, 0x10
add edx, eax
cmp eax, 0x1000
mov dword [esp + 0x34], eax
mov dword [esp + 0x10], edx
jne 0x40246e
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], eax
jmp 0x4024b8
mov edx, dword [esp + 0x14]
inc eax
mov ecx, eax
mov byte [eax + edx - 1], 0x80
and ecx, 0x3f
cmp cl, 0x38
je 0x402491
mov byte [eax + edx], 0
inc eax
mov ecx, eax
and ecx, 0x3f
cmp cl, 0x38
jne 0x402482
mov ecx, dword [esp + 0x10]
add eax, 4
shl ecx, 3
mov dword [eax + edx - 4], ecx
mov ecx, dword [esp + 0x10]
shr ecx, 0x1d
mov dword [eax + edx], ecx
add eax, 4
test eax, eax
mov dword [esp + 0x18], eax
jbe 0x402db0
mov eax, 0xffffffc8
lea ecx, [edx + 0x38]
sub eax, edx
mov dword [esp + 0x30], eax
mov edx, ebx
mov eax, esi
not edx
and edx, ebp
and eax, ebx
or edx, eax
mov eax, dword [ecx - 0x38]
add edx, eax
mov dword [esp + 0x20], edi
mov eax, dword [ecx - 0x34]
mov dword [esp + 0x28], esi
lea edi, [edi + edx - 0x28955b88]
mov dword [esp + 0x2c], ebp
mov edx, edi
mov dword [esp + 0x24], ebx
shr edx, 0x19
shl edi, 7
or edx, edi
add edx, ebx
mov edi, edx
not edi
and edi, esi
mov esi, ebx
and esi, edx
or edi, esi
add edi, eax
mov eax, dword [ecx - 0x30]
lea ebp, [edi + ebp - 0x173848aa]
mov esi, ebp
shr esi, 0x14
shl ebp, 0xc
or esi, ebp
add esi, edx
mov edi, esi
mov ebp, esi
not edi
and edi, ebx
and ebp, edx
or edi, ebp
mov ebp, esi
add edi, eax
mov eax, dword [esp + 0x40]
lea eax, [eax + edi + 0x242070db]
mov edi, eax
shr edi, 0xf
shl eax, 0x11
or edi, eax
add edi, esi
mov eax, edi
and ebp, edi
not eax
and eax, edx
or eax, ebp
mov ebp, dword [ecx - 0x2c]
add eax, ebp
mov ebp, edi
lea ebx, [ebx + eax - 0x3e423112]
mov eax, ebx
shl eax, 0x16
shr ebx, 0xa
or eax, ebx
mov ebx, dword [ecx - 0x28]
add eax, edi
mov dword [esp + 0x3c], eax
and ebp, dword [esp + 0x3c]
not eax
and eax, esi
or eax, ebp
add eax, ebx
lea edx, [edx + eax - 0xa83f051]
mov eax, dword [esp + 0x3c]
mov ebx, edx
mov ebp, eax
shr ebx, 0x19
shl edx, 7
or ebx, edx
add ebx, eax
mov edx, ebx
not edx
and edx, edi
and ebp, ebx
or edx, ebp
mov ebp, dword [ecx - 0x24]
add edx, ebp
lea esi, [esi + edx + 0x4787c62a]
mov edx, esi
shr edx, 0x14
shl esi, 0xc
or edx, esi
add edx, ebx
mov esi, edx
mov ebp, edx
not esi
and esi, eax
and ebp, ebx
or esi, ebp
mov ebp, dword [ecx - 0x20]
add esi, ebp
mov ebp, edx
lea edi, [edi + esi - 0x57cfb9ed]
mov esi, edi
shr esi, 0xf
shl edi, 0x11
or esi, edi
add esi, edx
mov edi, esi
and ebp, esi
not edi
and edi, ebx
or edi, ebp
mov ebp, dword [ecx - 0x1c]
add edi, ebp
mov ebp, esi
lea edi, [eax + edi - 0x2b96aff]
mov eax, edi
shl eax, 0x16
shr edi, 0xa
or eax, edi
mov edi, dword [ecx - 0x18]
add eax, esi
mov dword [esp + 0x3c], eax
and ebp, dword [esp + 0x3c]
not eax
and eax, edx
or eax, ebp
add eax, edi
lea ebx, [ebx + eax + 0x698098d8]
mov eax, dword [esp + 0x3c]
mov edi, ebx
mov ebp, eax
shr edi, 0x19
shl ebx, 7
or edi, ebx
add edi, eax
mov ebx, edi
and ebp, edi
not ebx
and ebx, esi
or ebx, ebp
mov ebp, dword [ecx - 0x14]
add ebx, ebp
lea edx, [edx + ebx - 0x74bb0851]
mov ebx, edx
shr ebx, 0x14
shl edx, 0xc
or ebx, edx
add ebx, edi
mov edx, ebx
mov ebp, ebx
not edx
and edx, eax
and ebp, edi
or edx, ebp
mov ebp, dword [ecx - 0x10]
add edx, ebp
lea esi, [esi + edx - 0xa44f]
mov edx, esi
shr edx, 0xf
shl esi, 0x11
or edx, esi
add edx, ebx
mov esi, edx
not esi
mov ebp, ebx
and esi, edi
and ebp, edx
or esi, ebp
mov ebp, dword [ecx - 0xc]
add esi, ebp
mov ebp, edx
lea esi, [eax + esi - 0x76a32842]
mov eax, esi
shl eax, 0x16
shr esi, 0xa
or eax, esi
mov esi, dword [ecx - 8]
add eax, edx
mov dword [esp + 0x3c], eax
and ebp, dword [esp + 0x3c]
not eax
and eax, ebx
or eax, ebp
mov ebp, dword [esp + 0x3c]
add eax, esi
lea edi, [edi + eax + 0x6b901122]
mov esi, edi
shr esi, 0x19
shl edi, 7
or esi, edi
mov edi, ebp
add esi, ebp
mov eax, esi
and edi, esi
not eax
and eax, edx
or eax, edi
mov edi, dword [ecx - 4]
add eax, edi
lea ebx, [ebx + eax - 0x2678e6d]
mov edi, ebx
shr edi, 0x14
shl ebx, 0xc
or edi, ebx
add edi, esi
mov eax, edi
not eax
mov ebx, eax
and ebx, ebp
mov ebp, edi
and ebp, esi
or ebx, ebp
mov ebp, dword [ecx]
add ebx, ebp
mov ebp, edi
lea edx, [edx + ebx - 0x5986bc72]
mov ebx, edx
shr ebx, 0xf
shl edx, 0x11
or ebx, edx
add ebx, edi
mov edx, ebx
and ebp, ebx
not edx
mov dword [esp + 0x1c], edx
and edx, esi
or ebp, edx
mov edx, dword [ecx + 4]
add ebp, edx
mov edx, dword [esp + 0x3c]
and eax, ebx
lea ebp, [edx + ebp + 0x49b40821]
mov edx, ebp
shl edx, 0x16
shr ebp, 0xa
or edx, ebp
mov ebp, edi
add edx, ebx
and ebp, edx
or eax, ebp
mov ebp, dword [ecx - 0x34]
add eax, ebp
lea esi, [esi + eax - 0x9e1da9e]
mov eax, esi
shr eax, 0x1b
shl esi, 5
or eax, esi
mov esi, dword [esp + 0x1c]
add eax, edx
mov ebp, ebx
and ebp, eax
and esi, edx
or ebp, esi
mov esi, dword [ecx - 0x20]
add ebp, esi
lea edi, [edi + ebp - 0x3fbf4cc0]
mov esi, edi
shr esi, 0x17
shl edi, 9
or esi, edi
mov edi, edx
add esi, eax
not edi
mov ebp, esi
and edi, eax
and ebp, edx
or edi, ebp
mov ebp, dword [ecx - 0xc]
add edi, ebp
lea ebx, [ebx + edi + 0x265e5a51]
mov edi, ebx
shr edi, 0x12
shl ebx, 0xe
or edi, ebx
mov ebx, eax
add edi, esi
not ebx
mov ebp, edi
and ebx, esi
and ebp, eax
or ebx, ebp
mov ebp, dword [ecx - 0x38]
add ebx, ebp
mov ebp, esi
lea edx, [edx + ebx - 0x16493856]
mov ebx, edx
shl ebx, 0x14
shr edx, 0xc
or ebx, edx
mov edx, esi
add ebx, edi
not edx
and edx, edi
and ebp, ebx
or edx, ebp
mov ebp, dword [ecx - 0x24]
add edx, ebp
lea eax, [eax + edx - 0x29d0efa3]
mov edx, eax
shr edx, 0x1b
shl eax, 5
or edx, eax
mov eax, edi
add edx, ebx
mov dword [esp + 0x38], edx
mov edx, edi
and edx, dword [esp + 0x38]
not eax
and eax, ebx
or eax, edx
mov edx, dword [ecx - 0x10]
add eax, edx
mov edx, dword [esp + 0x38]
lea esi, [esi + eax + 0x2441453]
mov eax, esi
shr eax, 0x17
shl esi, 9
or eax, esi
mov esi, ebx
not esi
add eax, edx
and esi, edx
mov edx, eax
and edx, ebx
or esi, edx
add esi, dword [ecx + 4]
lea edi, [edi + esi - 0x275e197f]
mov esi, dword [esp + 0x38]
mov edx, edi
shr edx, 0x12
shl edi, 0xe
or edx, edi
add edx, eax
mov edi, edx
and edi, dword [esp + 0x38]
not esi
and esi, eax
or esi, edi
mov edi, dword [ecx - 0x28]
add esi, edi
mov edi, eax
not edi
lea ebx, [ebx + esi - 0x182c0438]
and edi, edx
mov esi, ebx
shl esi, 0x14
shr ebx, 0xc
or esi, ebx
mov ebx, eax
add esi, edx
and ebx, esi
or edi, ebx
mov ebx, dword [ecx - 0x14]
add edi, ebx
mov ebx, dword [esp + 0x38]
lea ebx, [ebx + edi + 0x21e1cde6]
mov edi, ebx
shr edi, 0x1b
shl ebx, 5
or edi, ebx
mov ebx, edx
add edi, esi
mov dword [esp + 0x38], edi
and ebx, dword [esp + 0x38]
mov edi, edx
not edi
and edi, esi
or edi, ebx
mov ebx, dword [ecx]
add edi, ebx
mov ebx, esi
not ebx
lea eax, [eax + edi - 0x3cc8f82a]
mov edi, eax
shr edi, 0x17
shl eax, 9
or edi, eax
mov eax, dword [esp + 0x38]
add edi, eax
and ebx, eax
mov eax, edi
and eax, esi
or ebx, eax
mov eax, dword [ecx - 0x2c]
add ebx, eax
lea edx, [edx + ebx - 0xb2af279]
mov eax, edx
shr eax, 0x12
shl edx, 0xe
or eax, edx
mov edx, dword [esp + 0x38]
add eax, edi
mov ebx, eax
and ebx, dword [esp + 0x38]
not edx
and edx, edi
or edx, ebx
mov ebx, dword [ecx - 0x18]
add edx, ebx
lea esi, [esi + edx + 0x455a14ed]
mov edx, esi
shl edx, 0x14
shr esi, 0xc
or edx, esi
add edx, eax
mov esi, edi
mov ebx, edi
not esi
and esi, eax
and ebx, edx
or esi, ebx
mov ebx, dword [ecx - 4]
add esi, ebx
mov ebx, dword [esp + 0x38]
lea ebx, [ebx + esi - 0x561c16fb]
mov esi, ebx
shr esi, 0x1b
shl ebx, 5
or esi, ebx
mov ebx, eax
add esi, edx
mov dword [esp + 0x38], esi
and ebx, dword [esp + 0x38]
mov esi, eax
not esi
and esi, edx
or esi, ebx
mov ebx, dword [ecx - 0x30]
add esi, ebx
mov ebx, edx
not ebx
lea edi, [edi + esi - 0x3105c08]
mov esi, edi
shr esi, 0x17
shl edi, 9
or esi, edi
mov edi, dword [esp + 0x38]
add esi, edi
and ebx, edi
mov edi, esi
and edi, edx
or ebx, edi
mov edi, dword [ecx - 0x1c]
add ebx, edi
lea eax, [eax + ebx + 0x676f02d9]
mov edi, eax
shr edi, 0x12
shl eax, 0xe
or edi, eax
mov eax, dword [esp + 0x38]
add edi, esi
mov ebx, edi
and ebx, dword [esp + 0x38]
not eax
and eax, esi
or eax, ebx
mov ebx, dword [ecx - 8]
add eax, ebx
lea edx, [edx + eax - 0x72d5b376]
mov ebx, edx
shl ebx, 0x14
shr edx, 0xc
or ebx, edx
mov edx, edi
add ebx, edi
xor edx, ebx
mov eax, edx
xor eax, esi
add eax, ebp
mov ebp, dword [esp + 0x38]
lea ebp, [eax + ebp - 0x5c6be]
mov eax, ebp
shr eax, 0x1c
shl ebp, 4
or eax, ebp
mov ebp, dword [ecx - 0x18]
add eax, ebx
xor edx, eax
add edx, ebp
lea esi, [esi + edx - 0x788e097f]
mov edx, esi
shr edx, 0x15
shl esi, 0xb
or edx, esi
add edx, eax
mov esi, edx
mov ebp, dword [ecx - 0xc]
xor esi, ebx
xor esi, eax
add esi, ebp
mov ebp, dword [ecx]
lea edi, [edi + esi + 0x6d9d6122]
mov esi, edi
shr esi, 0x10
shl edi, 0x10
or esi, edi
mov edi, edx
add esi, edx
xor edi, esi
xor edi, eax
add edi, ebp
lea ebx, [ebx + edi - 0x21ac7f4]
mov edi, ebx
shl edi, 0x17
shr ebx, 9
or edi, ebx
mov ebx, esi
add edi, esi
xor ebx, edi
mov ebp, ebx
xor ebp, edx
add ebp, dword [ecx - 0x34]
lea ebp, [eax + ebp - 0x5b4115bc]
mov eax, ebp
shr eax, 0x1c
shl ebp, 4
or eax, ebp
mov ebp, dword [ecx - 0x28]
add eax, edi
xor ebx, eax
add ebx, ebp
mov ebp, dword [ecx - 0x1c]
lea ebx, [edx + ebx + 0x4bdecfa9]
mov edx, ebx
shr edx, 0x15
shl ebx, 0xb
or edx, ebx
add edx, eax
mov ebx, edx
xor ebx, edi
xor ebx, eax
add ebx, ebp
mov ebp, dword [ecx - 0x10]
lea ebx, [esi + ebx - 0x944b4a0]
mov esi, ebx
shr esi, 0x10
shl ebx, 0x10
or esi, ebx
mov ebx, edx
add esi, edx
xor ebx, esi
xor ebx, eax
add ebx, ebp
lea ebx, [edi + ebx - 0x41404390]
mov edi, ebx
shl edi, 0x17
shr ebx, 9
or edi, ebx
mov ebx, esi
add edi, esi
xor ebx, edi
mov ebp, ebx
xor ebp, edx
add ebp, dword [ecx - 4]
lea ebp, [eax + ebp + 0x289b7ec6]
mov eax, ebp
shr eax, 0x1c
shl ebp, 4
or eax, ebp
mov ebp, dword [ecx - 0x38]
add eax, edi
xor ebx, eax
add ebx, ebp
lea ebx, [edx + ebx - 0x155ed806]
mov edx, ebx
shr edx, 0x15
shl ebx, 0xb
or edx, ebx
mov ebp, dword [ecx - 0x2c]
add edx, eax
mov ebx, edx
xor ebx, edi
xor ebx, eax
add ebx, ebp
mov ebp, dword [ecx - 0x20]
lea ebx, [esi + ebx - 0x2b10cf7b]
mov esi, ebx
shl ebx, 0x10
shr esi, 0x10
or esi, ebx
mov ebx, edx
add esi, edx
xor ebx, esi
xor ebx, eax
add ebx, ebp
lea ebx, [edi + ebx + 0x4881d05]
mov edi, ebx
shl edi, 0x17
shr ebx, 9
or edi, ebx
mov ebx, esi
add edi, esi
xor ebx, edi
mov ebp, ebx
xor ebp, edx
add ebp, dword [ecx - 0x14]
lea ebp, [eax + ebp - 0x262b2fc7]
mov eax, ebp
shr eax, 0x1c
shl ebp, 4
or eax, ebp
mov ebp, dword [ecx - 8]
add eax, edi
xor ebx, eax
add ebx, ebp
mov ebp, dword [ecx + 4]
lea ebx, [edx + ebx - 0x1924661b]
mov edx, ebx
shr edx, 0x15
shl ebx, 0xb
or edx, ebx
add edx, eax
mov ebx, edx
xor ebx, edi
xor ebx, eax
add ebx, ebp
mov ebp, dword [ecx - 0x30]
lea ebx, [esi + ebx + 0x1fa27cf8]
mov esi, ebx
shr esi, 0x10
shl ebx, 0x10
or esi, ebx
mov ebx, edx
add esi, edx
xor ebx, esi
xor ebx, eax
add ebx, ebp
mov ebp, dword [ecx - 0x38]
lea ebx, [edi + ebx - 0x3b53a99b]
mov edi, ebx
shl edi, 0x17
shr ebx, 9
or edi, ebx
mov ebx, edx
add edi, esi
not ebx
or ebx, edi
xor ebx, esi
add ebx, ebp
lea eax, [eax + ebx - 0xbd6ddbc]
mov ebx, eax
shr ebx, 0x1a
shl eax, 6
or ebx, eax
mov eax, esi
add ebx, edi
not eax
or eax, ebx
mov ebp, dword [ecx - 0x1c]
xor eax, edi
add eax, ebp
mov ebp, dword [ecx]
lea edx, [edx + eax + 0x432aff97]
mov eax, edx
shr eax, 0x16
shl edx, 0xa
or eax, edx
mov edx, edi
add eax, ebx
not edx
or edx, eax
xor edx, ebx
add edx, ebp
mov ebp, dword [ecx - 0x24]
lea esi, [esi + edx - 0x546bdc59]
mov edx, esi
shr edx, 0x11
shl esi, 0xf
or edx, esi
mov esi, ebx
add edx, eax
not esi
or esi, edx
xor esi, eax
add esi, ebp
mov ebp, dword [ecx - 8]
lea edi, [edi + esi - 0x36c5fc7]
mov esi, edi
shl esi, 0x15
shr edi, 0xb
or esi, edi
mov edi, eax
add esi, edx
not edi
or edi, esi
xor edi, edx
add edi, ebp
mov ebp, dword [ecx - 0x2c]
lea ebx, [ebx + edi + 0x655b59c3]
mov edi, ebx
shr edi, 0x1a
shl ebx, 6
or edi, ebx
mov ebx, edx
add edi, esi
not ebx
or ebx, edi
xor ebx, esi
add ebx, ebp
mov ebp, dword [ecx - 0x10]
lea ebx, [eax + ebx - 0x70f3336e]
mov eax, ebx
shr eax, 0x16
shl ebx, 0xa
or eax, ebx
mov ebx, esi
add eax, edi
not ebx
or ebx, eax
xor ebx, edi
add ebx, ebp
mov ebp, dword [ecx - 0x34]
lea ebx, [edx + ebx - 0x100b83]
mov edx, ebx
shr edx, 0x11
shl ebx, 0xf
or edx, ebx
mov ebx, edi
add edx, eax
not ebx
or ebx, edx
xor ebx, eax
add ebx, ebp
lea ebx, [esi + ebx - 0x7a7ba22f]
mov esi, ebx
shl esi, 0x15
shr ebx, 0xb
or esi, ebx
add esi, edx
mov ebp, dword [ecx - 0x18]
mov ebx, eax
not ebx
or ebx, esi
xor ebx, edx
add ebx, ebp
mov ebp, dword [ecx + 4]
lea ebx, [edi + ebx + 0x6fa87e4f]
mov edi, ebx
shl ebx, 6
shr edi, 0x1a
or edi, ebx
mov ebx, edx
not ebx
add edi, esi
or ebx, edi
xor ebx, esi
add ebx, ebp
mov ebp, dword [ecx - 0x20]
lea ebx, [eax + ebx - 0x1d31920]
mov eax, ebx
shl ebx, 0xa
shr eax, 0x16
or eax, ebx
mov ebx, esi
add eax, edi
not ebx
or ebx, eax
xor ebx, edi
add ebx, ebp
mov ebp, dword [ecx - 4]
lea ebx, [edx + ebx - 0x5cfebcec]
mov edx, ebx
shr edx, 0x11
shl ebx, 0xf
or edx, ebx
mov ebx, edi
add edx, eax
not ebx
or ebx, edx
xor ebx, eax
add ebx, ebp
mov ebp, dword [ecx - 0x28]
lea ebx, [esi + ebx + 0x4e0811a1]
mov esi, ebx
shl esi, 0x15
shr ebx, 0xb
or esi, ebx
mov ebx, eax
add esi, edx
not ebx
or ebx, esi
xor ebx, edx
add ebx, ebp
mov ebp, dword [ecx - 0xc]
lea edi, [edi + ebx - 0x8ac817e]
mov ebx, edi
shr ebx, 0x1a
shl edi, 6
or edi, ebx
mov ebx, edx
add edi, esi
not ebx
or ebx, edi
xor ebx, esi
add ebx, ebp
lea eax, [eax + ebx - 0x42c50dcb]
mov ebx, eax
shr ebx, 0x16
shl eax, 0xa
or ebx, eax
mov eax, esi
mov ebp, ebx
mov ebx, dword [ecx - 0x30]
add ebp, edi
not eax
or eax, ebp
xor eax, edi
add eax, ebx
lea edx, [edx + eax + 0x2ad7d2bb]
mov eax, edx
shr eax, 0x11
shl edx, 0xf
mov ebx, dword [ecx - 0x14]
or eax, edx
mov edx, edi
add eax, ebp
not edx
or edx, eax
add ecx, 0x40
xor edx, ebp
add edx, ebx
lea esi, [esi + edx - 0x14792c6f]
mov edx, esi
shl edx, 0x15
shr esi, 0xb
or edx, esi
mov esi, dword [esp + 0x24]
mov ebx, edx
mov edx, dword [esp + 0x20]
add edi, edx
mov edx, dword [esp + 0x28]
add ebx, eax
add eax, edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x2c]
add ebx, esi
mov esi, dword [esp + 0x40]
add ebp, eax
mov eax, dword [esp + 0x30]
add eax, ecx
cmp eax, edx
jb 0x4024c6
cmp dword [esp + 0x34], 0x1000
je 0x402436
mov eax, dword [esp + 0x4c]
mov ecx, eax
mov dword [ecx], edi
pop edi
mov dword [ecx + 4], ebx
mov dword [ecx + 8], esi
pop esi
mov dword [ecx + 0xc], ebp
pop ebp
pop ebx
add esp, 0x38
ret 8