Function at 0x4d99e0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x50
mov ecx, dword [esp + 0x58]
push ebx
push ebp
push esi
mov esi, dword [ecx]
mov eax, dword [ecx + 4]
mov ebp, dword [ecx + 8]
push edi
mov edi, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x20]
mov dword [esp + 0x18], ecx
mov ecx, 0x10
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x64]
xor edx, edx
xor ebx, ebx
mov dl, byte [ecx + 1]
mov bl, byte [ecx + 2]
mov dh, byte [ecx]
add ecx, 4
shl edx, 8
or edx, ebx
xor ebx, ebx
mov bl, byte [ecx - 1]
mov dword [esp + 0x64], ecx
shl edx, 8
or edx, ebx
mov ebx, dword [esp + 0x18]
mov ecx, ebp
mov dword [ebx], edx
mov edx, eax
not edx
mov ebx, edi
and ecx, eax
and ebx, edx
mov edx, esi
or ecx, ebx
mov ebx, esi
shr edx, 0x1b
shl ebx, 5
or edx, ebx
add ecx, edx
mov edx, dword [esp + 0x18]
mov ebx, dword [edx]
add edx, 4
add ecx, ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x10], edi
mov edi, ebp
lea ecx, [ecx + ebx + 0x5a827999]
mov ebx, eax
shl ebx, 0x1e
shr eax, 2
or ebx, eax
mov eax, esi
mov esi, ecx
mov ecx, dword [esp + 0x1c]
dec ecx
mov ebp, ebx
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ecx
jne 0x4d9a12
mov ecx, dword [esp + 0x14]
and ecx, 0xf
lea edx, [esp + ecx*4 + 0x20]
lea ebx, [ecx + 2]
mov dword [esp + 0x64], edx
lea edx, [ecx - 3]
and edx, 0xf
add ecx, 0xfffffff8
and ebx, 0xf
and ecx, 0xf
mov edx, dword [esp + edx*4 + 0x20]
xor edx, dword [esp + ebx*4 + 0x20]
mov ebx, dword [esp + ecx*4 + 0x20]
xor edx, ebx
mov ebx, dword [esp + 0x64]
xor edx, dword [ebx]
lea ecx, [edx + edx]
shr edx, 0x1f
or ecx, edx
mov edx, ebp
mov dword [esp + 0x64], ecx
mov dword [ebx], ecx
mov ecx, eax
mov ebx, edi
not ecx
and edx, eax
and ebx, ecx
or edx, ebx
mov ebx, esi
mov ecx, esi
shr ebx, 0x1b
shl ecx, 5
or ebx, ecx
mov ecx, dword [esp + 0x64]
add ecx, edx
mov edx, dword [esp + 0x10]
add ebx, ecx
mov ecx, eax
shl ecx, 0x1e
shr eax, 2
lea edx, [ebx + edx + 0x5a827999]
mov ebx, edi
or ecx, eax
mov edi, ebp
mov ebp, ecx
mov ecx, dword [esp + 0x14]
inc ecx
mov eax, esi
cmp ecx, 0x14
mov dword [esp + 0x10], ebx
mov esi, edx
mov dword [esp + 0x14], ecx
jl 0x4d9a9d
cmp ecx, 0x28
jge 0x4d9bc2
and ecx, 0xf
lea edx, [esp + ecx*4 + 0x20]
lea ebx, [ecx + 2]
mov dword [esp + 0x64], edx
lea edx, [ecx - 3]
and edx, 0xf
add ecx, 0xfffffff8
and ebx, 0xf
and ecx, 0xf
mov edx, dword [esp + edx*4 + 0x20]
xor edx, dword [esp + ebx*4 + 0x20]
mov ebx, dword [esp + ecx*4 + 0x20]
xor edx, ebx
mov ebx, dword [esp + 0x64]
xor edx, dword [ebx]
lea ecx, [edx + edx]
shr edx, 0x1f
or ecx, edx
mov edx, esi
mov dword [ebx], ecx
mov ebx, esi
shr edx, 0x1b
shl ebx, 5
or edx, ebx
mov ebx, edi
xor ebx, ebp
add ecx, edx
xor ebx, eax
add ebx, ecx
mov ecx, dword [esp + 0x10]
lea edx, [ebx + ecx + 0x6ed9eba1]
mov ecx, eax
shl ecx, 0x1e
shr eax, 2
mov ebx, edi
or ecx, eax
mov edi, ebp
mov ebp, ecx
mov ecx, dword [esp + 0x14]
mov eax, esi
inc ecx
mov dword [esp + 0x10], ebx
cmp ecx, 0x28
mov esi, edx
mov dword [esp + 0x14], ecx
jl 0x4d9b3c
cmp ecx, 0x3c
jge 0x4d9c63
and ecx, 0xf
lea edx, [esp + ecx*4 + 0x20]
lea ebx, [ecx + 2]
mov dword [esp + 0x64], edx
lea edx, [ecx - 3]
and edx, 0xf
add ecx, 0xfffffff8
and ebx, 0xf
and ecx, 0xf
mov edx, dword [esp + edx*4 + 0x20]
xor edx, dword [esp + ebx*4 + 0x20]
mov ebx, dword [esp + ecx*4 + 0x20]
xor edx, ebx
mov ebx, dword [esp + 0x64]
xor edx, dword [ebx]
lea ecx, [edx + edx]
shr edx, 0x1f
or ecx, edx
mov edx, ebp
mov dword [esp + 0x64], ecx
mov dword [ebx], ecx
mov ecx, edi
and edx, eax
and ecx, eax
mov ebx, esi
or edx, ecx
mov ecx, edi
and ecx, ebp
or edx, ecx
mov ecx, esi
shr ebx, 0x1b
shl ecx, 5
or ebx, ecx
mov ecx, dword [esp + 0x64]
add ecx, edx
mov edx, dword [esp + 0x10]
add ebx, ecx
mov ecx, eax
shl ecx, 0x1e
shr eax, 2
lea edx, [ebx + edx - 0x70e44324]
mov ebx, edi
or ecx, eax
mov edi, ebp
mov ebp, ecx
mov ecx, dword [esp + 0x14]
inc ecx
mov eax, esi
cmp ecx, 0x3c
mov dword [esp + 0x10], ebx
mov esi, edx
mov dword [esp + 0x14], ecx
jl 0x4d9bcb
cmp ecx, 0x50
jge 0x4d9cf2
and ecx, 0xf
lea edx, [esp + ecx*4 + 0x20]
lea ebx, [ecx + 2]
mov dword [esp + 0x64], edx
lea edx, [ecx - 3]
and edx, 0xf
add ecx, 0xfffffff8
and ebx, 0xf
and ecx, 0xf
mov edx, dword [esp + edx*4 + 0x20]
xor edx, dword [esp + ebx*4 + 0x20]
mov ebx, dword [esp + ecx*4 + 0x20]
xor edx, ebx
mov ebx, dword [esp + 0x64]
xor edx, dword [ebx]
lea ecx, [edx + edx]
shr edx, 0x1f
or ecx, edx
mov edx, esi
mov dword [ebx], ecx
mov ebx, esi
shr edx, 0x1b
shl ebx, 5
or edx, ebx
mov ebx, edi
xor ebx, ebp
add ecx, edx
xor ebx, eax
add ebx, ecx
mov ecx, dword [esp + 0x10]
lea edx, [ebx + ecx - 0x359d3e2a]
mov ecx, eax
shl ecx, 0x1e
shr eax, 2
mov ebx, edi
or ecx, eax
mov edi, ebp
mov ebp, ecx
mov ecx, dword [esp + 0x14]
mov eax, esi
inc ecx
mov dword [esp + 0x10], ebx
cmp ecx, 0x50
mov esi, edx
mov dword [esp + 0x14], ecx
jl 0x4d9c6c
mov ecx, dword [esp + 0x68]
mov esi, dword [ecx]
add esi, edx
mov edx, dword [ecx + 4]
add edx, eax
mov eax, dword [ecx + 8]
add eax, ebp
mov dword [ecx], esi
mov dword [ecx + 8], eax
mov eax, dword [ecx + 0xc]
add eax, edi
mov dword [ecx + 4], edx
mov dword [ecx + 0xc], eax
mov eax, dword [ecx + 0x10]
add eax, ebx
lea edi, [esp + 0x20]
mov dword [ecx + 0x10], eax
mov ecx, 0x10
xor eax, eax
rep stosd dword es:[edi], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret