Function at 0x4cb37c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd4
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4cb580
push dword fs:[eax]
mov dword fs:[eax], esp
mov edi, 0x14
lea eax, [ebp - 0x28]
mov byte [eax], 0
inc eax
dec edi
jne 0x4cb3a6
mov byte [ebp - 5], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
call fcn.00405020
cmp eax, 0x27
jne 0x4cb562
mov al, byte [0x4cb594]
push eax
lea eax, [ebp - 0xc]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
xor ecx, ecx
mov edx, 0x4cb5a0
call fcn.0041005c
xor esi, esi
xor eax, eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0xc]
call fcn.00405020
test eax, eax
jle 0x4cb44f
mov dword [ebp - 0x14], eax
mov edi, 1
lea eax, [ebp - 0x2c]
mov edx, dword [ebp - 0xc]
mov dl, byte [edx + edi - 1]
call fcn.00404f1c
mov eax, dword [ebp - 0x2c]
mov edx, dword [0x4f7fc4]
call fcn.00405364
mov edx, eax
dec edx
xor eax, eax
mov ecx, eax
mov ebx, 1
shl ebx, cl
test ebx, edx
jle 0x4cb438
mov ecx, esi
mov bl, 1
shl bl, cl
mov ecx, dword [ebp - 0x10]
or byte [ebp + ecx - 0x28], bl
inc esi
cmp esi, 7
jle 0x4cb443
xor esi, esi
inc dword [ebp - 0x10]
inc eax
cmp eax, 5
jne 0x4cb41e
inc edi
dec dword [ebp - 0x14]
jne 0x4cb3fc
xor ebx, ebx
xor edi, edi
xor eax, eax
mov al, byte [ebp + edi - 0x28]
shl eax, 0x18
xor edx, edx
mov dl, byte [ebp + edi - 0x27]
shl edx, 0x10
or eax, edx
xor edx, edx
mov dl, byte [ebp + edi - 0x26]
shl edx, 8
or eax, edx
xor edx, edx
mov dl, byte [ebp + edi - 0x25]
or eax, edx
xor ebx, eax
add edi, 4
cmp edi, 0x13
jle 0x4cb453
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
call fcn.0040a568
mov edx, eax
xor edi, edi
lea eax, [ebp - 0x28]
mov ecx, edi
and ecx, 0x80000003
jns 0x4cb4a5
dec ecx
or ecx, 0xfffffffc
inc ecx
sub ecx, 1
jb 0x4cb4b4
je 0x4cb4b9
dec ecx
je 0x4cb4be
dec ecx
je 0x4cb4c3
jmp 0x4cb4c6
xor byte [eax], 0x4f
jmp 0x4cb4c6
xor byte [eax], 0xcd
jmp 0x4cb4c6
xor byte [eax], 0xb5
jmp 0x4cb4c6
xor byte [eax], 0xa9
inc edi
inc eax
cmp edi, 0x14
jne 0x4cb496
mov al, byte [ebp - 0x18]
mov cl, byte [ebp - 0x25]
mov byte [ebp - 0x18], cl
mov byte [ebp - 0x25], al
mov al, byte [ebp - 0x17]
mov cl, byte [ebp - 0x21]
mov byte [ebp - 0x17], cl
mov byte [ebp - 0x21], al
mov al, byte [ebp - 0x16]
mov cl, byte [ebp - 0x1d]
mov byte [ebp - 0x16], cl
mov byte [ebp - 0x1d], al
xor eax, eax
mov edi, 0x13
lea esi, [ebp - 0x28]
add al, byte [esi]
inc esi
dec edi
jne 0x4cb4fb
cmp al, byte [ebp - 0x15]
jne 0x4cb50e
cmp edx, ebx
jne 0x4cb50e
mov byte [ebp - 5], 1
test byte [ebp - 0x18], 0x80
jbe 0x4cb54d
mov eax, dword [ebp - 4]
mov byte [eax + 0x18], 1
mov cl, byte [ebp - 0x16]
and cl, 0x1f
and ecx, 0xff
mov dl, byte [ebp - 0x17]
and dl, 0xf
and edx, 0xff
mov al, byte [ebp - 0x18]
and al, 0x7f
and eax, 0xff
add ax, 0x7d0
call fcn.0040c930
mov eax, dword [ebp - 4]
fstp qword [eax + 0x20]
wait
xor edi, edi
lea eax, [ebp - 0x28]
mov dl, byte [eax]
mov ecx, dword [ebp - 4]
mov byte [ecx + edi + 0x2d], dl
inc edi
inc eax
cmp edi, 0x14
jne 0x4cb552
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4cb587
lea eax, [ebp - 0x2c]
call fcn.00404d34
lea eax, [ebp - 0xc]
call fcn.00404d34
ret