Function at 0x4cd918
Capabilities:
Delete file
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd4
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.0040575c
mov eax, dword [ebp - 8]
call fcn.0040575c
xor eax, eax
push ebp
push 0x4cdcae
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x4dfeec]
mov edx, 0x4cdcc8
call fcn.00405704
jne 0x4cd974
mov eax, 0x4dfe00
mov edx, 0x4cdcd4
call fcn.00405330
mov eax, 0x4dfe04
mov edx, 0x4cdce4
call fcn.00405330
xor edx, edx
push ebp
push 0x4cdc7e
push dword fs:[edx]
mov dword fs:[edx], esp
push 0x40
mov ecx, dword [ebp - 4]
mov dl, 1
mov eax, dword [0x418c14]
call fcn.0041d970
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
call fcn.0040a5c0
test al, al
je 0x4cd9b0
mov eax, dword [ebp - 8]
call fcn.0040576c
push eax
call sub.kernel32.dll_DeleteFileA
push 0
push 0x80
push 2
push 0
push 0
push 0xc0000000
mov eax, dword [ebp - 8]
call fcn.0040576c
push eax
call sub.kernel32.dll_CreateFileA_1
push eax
call sub.kernel32.dll_CloseHandle_1
push 1
mov ecx, dword [ebp - 8]
mov dl, 1
mov eax, dword [0x418c14]
call fcn.0041d970
mov dword [ebp - 0x10], eax
xor edx, edx
push ebp
push 0x4cdc6d
push dword fs:[edx]
mov dword fs:[edx], esp
mov cx, 2
mov edx, 0xfffffffc
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 0x14]
lea edx, [ebp - 0x14]
mov ecx, 4
mov eax, dword [ebp - 0xc]
call fcn.0041d6e8
mov eax, dword [0x4dfe00]
call fcn.0040a1fc
mov edx, eax
mov eax, dword [ebp - 0x14]
add eax, 8
add edx, eax
neg edx
mov cx, 2
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov dword [ebp - 0x24], 0x2710
mov dword [ebp - 0x28], 0x4e20
mov ebx, 0x3caf
mov dl, 1
mov eax, dword [0x418d18]
call fcn.004043ac
mov dword [ebp - 0x1c], eax
mov dl, 1
mov eax, dword [0x418d18]
call fcn.004043ac
mov dword [ebp - 0x20], eax
push 0
push 0
mov eax, dword [ebp - 0x1c]
call fcn.0041d4dc
mov eax, dword [0x4dfe00]
call fcn.0040a1fc
cdq
push edx
push eax
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x1c]
call fcn.0041d758
push 0
push 0
mov eax, dword [ebp - 0x1c]
call fcn.0041d4dc
push 0
push 0
mov eax, dword [ebp - 0x20]
call fcn.0041d4dc
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax]
call dword [edx]
mov esi, eax
dec esi
test esi, esi
jl 0x4cdaf2
inc esi
lea edx, [ebp - 0x29]
mov ecx, 1
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax]
call dword [edi + 0xc]
movzx eax, byte [ebp - 0x29]
mov edx, ebx
shr edx, 8
xor byte [ebp - 0x29], dl
movzx eax, al
add ebx, eax
imul ebx, dword [ebp - 0x24]
add ebx, dword [ebp - 0x28]
lea edx, [ebp - 0x29]
mov ecx, 1
mov eax, dword [ebp - 0x20]
mov edi, dword [eax]
call dword [edi + 0x10]
dec esi
jne 0x4cdab7
push 0
push 0
mov eax, dword [ebp - 0x20]
call fcn.0041d4dc
mov eax, dword [ebp - 0x20]
mov edx, dword [eax]
call dword [edx]
push edx
push eax
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x10]
call fcn.0041d758
mov edx, dword [ebp - 0x14]
add edx, 8
neg edx
mov cx, 2
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 0x14]
lea edx, [ebp - 0x18]
mov ecx, 4
mov eax, dword [ebp - 0xc]
call fcn.0041d6e8
mov eax, dword [0x4dfe90]
call fcn.0040a1fc
imul eax, eax, 0x64
mov ebx, dword [ebp - 0x18]
sub ebx, eax
mov eax, dword [0x4dfe00]
call fcn.0040a1fc
sub ebx, eax
mov eax, dword [0x4dfe04]
call fcn.0040a1fc
sub ebx, eax
sub ebx, dword [0x4dff3c]
mov eax, dword [0x4dfe00]
call fcn.0040a1fc
mov esi, eax
mov eax, dword [ebp - 0x14]
add eax, 8
add esi, eax
mov eax, dword [0x4dfe04]
call fcn.0040a1fc
add esi, eax
mov edx, esi
neg edx
mov cx, 2
mov eax, dword [ebp - 0xc]
mov esi, dword [eax]
call dword [esi + 0x14]
mov eax, dword [0x4dfe04]
call fcn.0040a1fc
cdq
push edx
push eax
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
call fcn.0041d758
mov eax, dword [0x4dfe00]
call fcn.0040a1fc
mov esi, eax
mov eax, dword [ebp - 0x14]
add eax, 8
add esi, eax
mov eax, dword [0x4dfe04]
call fcn.0040a1fc
add esi, eax
mov edx, esi
add edx, dword [0x4dff3c]
neg edx
mov cx, 2
mov eax, dword [ebp - 0xc]
mov esi, dword [eax]
call dword [esi + 0x14]
mov eax, dword [0x4dff3c]
cdq
push edx
push eax
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
call fcn.0041d758
mov eax, dword [0x4dfe00]
call fcn.0040a1fc
mov esi, eax
mov eax, dword [ebp - 0x14]
add eax, 8
add esi, eax
mov eax, dword [0x4dfe04]
call fcn.0040a1fc
add esi, eax
mov edx, esi
add edx, dword [0x4dff3c]
add edx, ebx
neg edx
mov cx, 2
mov eax, dword [ebp - 0xc]
mov esi, dword [eax]
call dword [esi + 0x14]
mov eax, ebx
cdq
push edx
push eax
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
call fcn.0041d758
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4cdc74
mov eax, dword [ebp - 0x10]
call fcn.004043dc
mov eax, dword [ebp - 0xc]
call fcn.004043dc
mov eax, dword [ebp - 0x1c]
call fcn.004043dc
mov eax, dword [ebp - 0x20]
call fcn.004043dc
ret