Function at 0x4c0e13
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x98
mov eax, dword [0x4dd52c]
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 0x10]
push 0x2bc
mov dword [ebp - 4], eax
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x3c], edi
call dword [sym.imp.msvcrt.dll_malloc]
test eax, eax
pop ecx
mov dword [ebp - 0x30], eax
jne 0x4c0e55
mov eax, 0xfffff447
jmp 0x4c1080
test ebx, ebx
je 0x4c106f
test esi, esi
je 0x4c106f
test edi, edi
je 0x4c106f
push 0x15
pop esi
push esi
push eax
call fcn.004cefd7
mov dword [ebp - 0x20], eax
push esi
add eax, 0x64
push eax
call fcn.004cefd7
mov dword [ebp - 0x38], eax
push esi
add eax, 0x64
push eax
call fcn.004cefd7
mov dword [ebp - 0x2c], eax
push esi
add eax, 0x64
push eax
call fcn.004cefd7
mov dword [ebp - 0x1c], eax
push esi
add eax, 0x64
push eax
call fcn.004cefd7
mov dword [ebp - 0x28], eax
push esi
add eax, 0x64
push eax
call fcn.004cefd7
mov dword [ebp - 0x48], eax
push esi
add eax, 0x64
push eax
call fcn.004cefd7
mov dword [ebp - 0x34], eax
call fcn.004c7a43
mov esi, eax
test esi, esi
jne 0x4c0edd
mov esi, 0xfffff447
jmp 0x4c1074
and dword [ebp - 0x24], 0
mov edi, dword [sym.imp.msvcrt.dll_rand]
call edi
shl eax, 0x10
mov dword [ebp - 0x44], eax
call edi
mov ecx, dword [ebp - 0x44]
xor ecx, eax
mov eax, dword [ebp - 0x24]
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
mov dword [ebp + eax*4 - 0x98], ecx
jl 0x4c0ee1
push dword [0x4dfb5c]
push dword [ebx + 0x10]
push dword [ebp - 0x20]
call fcn.004cf52a
lea eax, [ebp - 0x18]
push eax
push 0xa0
lea eax, [ebp - 0x98]
push eax
call fcn.004bf81a
push dword [ebp - 0x1c]
lea eax, [ebp - 0x18]
push 0x14
push eax
call fcn.004d01b5
push dword [0x4dfb5c]
push dword [ebp - 0x1c]
call fcn.004cf060
test eax, eax
jl 0x4c0f1a
push dword [ebp - 0x20]
push dword [ebp - 0x1c]
call fcn.004cf060
test eax, eax
jg 0x4c0f1a
xor eax, eax
push 0x15
mov ecx, 0x83
mov edi, esi
rep stosd dword es:[edi], eax
and dword [esi], eax
pop edi
push edi
lea eax, [esi + 0x18]
push eax
call fcn.004cefd7
mov dword [esi + 4], eax
push edi
add eax, 0x64
push eax
call fcn.004cefd7
mov dword [esi + 8], eax
push edi
add eax, 0x64
push eax
call fcn.004cefd7
mov dword [esi + 0xc], eax
push edi
add eax, 0x64
push eax
call fcn.004cefd7
mov dword [esi + 0x10], eax
push edi
add eax, 0x64
push eax
call fcn.004cefd7
push dword [ebp - 0x1c]
mov dword [esi + 0x14], eax
push dword [ebx + 0x14]
push esi
push ebx
call fcn.004c8628
mov edi, eax
test edi, edi
jne 0x4c105c
push dword [ebx + 0x10]
mov edi, dword [ebp - 0x28]
push dword [esi + 4]
push edi
call fcn.004cf923
cmp dword [edi + 4], 0
jbe 0x4c0f09
push dword [ebx + 0x10]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
call fcn.004cfb26
push dword [ebp - 0x34]
push 0x14
push dword [ebp - 0x3c]
call fcn.004d01b5
push dword [ebx + 0x10]
push edi
push dword [ebx + 0x18]
push dword [ebp - 0x38]
call fcn.004cfa04
push dword [ebx + 0x10]
push dword [ebp - 0x38]
push dword [ebp - 0x34]
push dword [ebp - 0x2c]
call fcn.004d021a
push dword [ebx + 0x10]
mov edi, dword [ebp - 0x48]
push dword [ebp - 0x2c]
push dword [ebp - 0x20]
push edi
call fcn.004cfa04
cmp dword [edi + 4], 0
jbe 0x4c0f09
mov ebx, dword [ebp - 0x40]
push ebx
push 0x14
push dword [ebp - 0x28]
call fcn.004ced98
add ebx, 0x14
push ebx
push 0x14
push edi
call fcn.004ced98
push esi
call dword [sym.imp.msvcrt.dll_free]
pop ecx
xor esi, esi
jmp 0x4c1074
push dword [ebp - 0x30]
mov ebx, dword [sym.imp.msvcrt.dll_free]
call ebx
push esi
call ebx
pop ecx
mov eax, edi
jmp 0x4c107f
mov esi, 0xfffff446
push dword [ebp - 0x30]
call dword [sym.imp.msvcrt.dll_free]
mov eax, esi
pop ecx
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.004a9585
leave
ret 0xc