Function at 0x4d1fc0
Capabilities:
Encode data using xor
Set file attributes

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff7cc
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x834], ecx
mov dword [ebp - 0x82c], ecx
mov dword [ebp - 0x830], ecx
mov dword [ebp - 0x828], ecx
mov dword [ebp - 0xc], ecx
mov ebx, edx
mov esi, eax
xor eax, eax
push ebp
push 0x4d22ad
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x828]
mov edx, ebx
call fcn.00404c74
mov eax, dword [ebp - 0x828]
call fcn.00409e80
test al, al
jne 0x4d2022
mov word [ebp - 2], 0
jmp 0x4d2287
lea eax, [ebp - 0x830]
mov edx, esi
call fcn.00404c74
mov eax, dword [ebp - 0x830]
lea edx, [ebp - 0x82c]
call fcn.00409528
cmp dword [ebp - 0x82c], 0
jne 0x4d2054
mov word [ebp - 2], 0
jmp 0x4d2287
xor edx, edx
push ebp
push 0x4d226b
push dword fs:[edx]
mov dword fs:[edx], esp
push 0x80
push ebx
call sub.kernel32.dll_SetFileAttributesA
lea edx, [ebp - 0xc]
mov eax, esi
call fcn.0040a8f4
push 0x42
lea edx, [ebp - 0x834]
mov eax, ebx
call fcn.0040a8f4
mov ecx, dword [ebp - 0x834]
mov dl, 1
mov eax, dword [0x417d88]
call fcn.0041bfc0
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
xor edx, edx
push ebp
push 0x4d225a
push dword fs:[edx]
mov dword fs:[edx], esp
push 0
push 0
mov eax, dword [ebp - 8]
call fcn.0041bb2c
cmp dword [ebp - 0x14], 0
jne 0x4d20d3
cmp dword [ebp - 0x18], 0x400
ja 0x4d20dd
jmp 0x4d20d5
jg 0x4d20dd
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
jmp 0x4d20e4
mov dword [ebp - 0x1c], 0x400
lea edx, [ebp - 0x424]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov ebx, 1
mov esi, dword [ebp - 0x1c]
dec esi
test esi, esi
jl 0x4d213c
inc esi
lea edi, [ebp - 0x424]
lea eax, [ebp - 0x824]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0xc]
mov al, byte [eax + ebx - 1]
xor al, byte [edi]
mov edx, dword [ebp - 0x20]
mov byte [edx], al
mov eax, dword [ebp - 0xc]
call fcn.00404d3c
push eax
mov eax, ebx
dec eax
pop edx
mov ecx, edx
cdq
idiv ecx
inc edx
mov ebx, edx
inc dword [ebp - 0x20]
inc edi
dec esi
jne 0x4d2112
push 0
push 0
mov eax, dword [ebp - 8]
call fcn.0041bb2c
lea edx, [ebp - 0x824]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
sub eax, 0x400
sbb edx, 0
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], 0
jne 0x4d217b
cmp dword [ebp - 0x18], 0
jae 0x4d218f
jmp 0x4d217d
jge 0x4d218f
call fcn.0040451c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4d2287
cmp dword [ebp - 0x14], 0
jne 0x4d21a0
cmp dword [ebp - 0x18], 0x400
ja 0x4d21aa
jmp 0x4d21a2
jg 0x4d21aa
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
jmp 0x4d21b1
mov dword [ebp - 0x1c], 0x400
mov eax, dword [ebp - 0x1c]
neg eax
cdq
push edx
push eax
mov dl, 2
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx + 0x18]
lea edx, [ebp - 0x424]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov ebx, 1
mov esi, dword [ebp - 0x1c]
dec esi
test esi, esi
jl 0x4d221b
inc esi
lea edi, [ebp - 0x424]
lea eax, [ebp - 0x824]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0xc]
mov al, byte [eax + ebx - 1]
xor al, byte [edi]
mov edx, dword [ebp - 0x24]
mov byte [edx], al
mov eax, dword [ebp - 0xc]
call fcn.00404d3c
push eax
mov eax, ebx
dec eax
pop edx
mov ecx, edx
cdq
idiv ecx
inc edx
mov ebx, edx
inc dword [ebp - 0x24]
inc edi
dec esi
jne 0x4d21f1
mov eax, dword [ebp - 0x1c]
neg eax
cdq
push edx
push eax
mov dl, 2
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx + 0x18]
lea edx, [ebp - 0x824]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov word [ebp - 2], 0xffff
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4d2261
mov eax, dword [ebp - 8]
call fcn.00403cd0
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4d22b4
lea eax, [ebp - 0x834]
mov edx, 4
call fcn.00404aa0
lea eax, [ebp - 0xc]
call fcn.00404a7c
ret