Function at 0x4cb690
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x678
mov eax, dword [str.GHiHCH]
mov ecx, dword [0x4ee7d4]
mov dword [ebp - 8], eax
mov dword [ebp - 4], ecx
mov eax, 2
nop
mov dx, word [ebp + eax*2 - 0xa]
xor word [ebp + eax*2 - 8], dx
dec eax
test eax, eax
jg 0x4cb6b0
mov eax, 0x486d
xor word [ebp - 8], ax
push ebx
push esi
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x470]
mov ecx, eax
push edi
mov edx, 0x104
sub esi, ecx
lea ecx, [ecx]
lea ecx, [edx + 0x7ffffefa]
test ecx, ecx
je 0x4cb700
movzx ecx, word [esi + eax]
test cx, cx
je 0x4cb700
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x4cb6e0
jmp 0x4cb704
test edx, edx
jne 0x4cb707
sub eax, 2
xor edx, edx
mov word [eax], dx
mov eax, 0x104
lea ecx, [ebp - 0x470]
cmp word [ecx], 0
je 0x4cb727
add ecx, 2
sub eax, 1
jne 0x4cb717
jmp 0x4cb777
test eax, eax
je 0x4cb777
mov edx, 0x104
sub edx, eax
mov ecx, 0x104
sub ecx, edx
lea eax, [ebp + edx*2 - 0x470]
je 0x4cb76f
lea edi, [ebp - 8]
lea esi, [ecx + edx + 0x7ffffefb]
sub edi, eax
mov edi, edi
test esi, esi
je 0x4cb76b
movzx edx, word [edi + eax]
test dx, dx
je 0x4cb76b
mov word [eax], dx
dec ecx
add eax, 2
dec esi
test ecx, ecx
jne 0x4cb750
jmp 0x4cb76f
test ecx, ecx
jne 0x4cb772
sub eax, 2
xor ecx, ecx
mov word [eax], cx
mov eax, dword [0x4ee7cc]
mov edx, dword [0x4ee7c8]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], edx
mov eax, 2
lea ecx, [ecx]
mov cx, word [ebp + eax*2 - 0x12]
xor word [ebp + eax*2 - 0x10], cx
dec eax
test eax, eax
jg 0x4cb790
mov edx, 0x7eb4
xor word [ebp - 0x10], dx
push 0x19417d31
call fcn.004c8760
push 0x26c17b68
mov esi, eax
call fcn.004c8760
push 0x56efd8b0
mov dword [ebp - 0x18], eax
call fcn.004c8760
push 0xd545c9b3
mov dword [ebp - 4], eax
call fcn.004c8760
add esp, 0x10
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x268]
push eax
lea ecx, [ebp - 0x470]
push ecx
call esi
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x4cb800
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, 0x2e
cmp dx, word [ebp - 0x23c]
jne 0x4cb828
mov eax, edx
cmp ax, word [ebp - 0x23a]
jne 0x4cb828
xor ecx, ecx
cmp cx, word [ebp - 0x238]
je 0x4cb91b
lea edx, [ebp - 0x10]
push edx
lea eax, [ebp - 0x23c]
push eax
call dword [ebp - 0x14]
test eax, eax
jne 0x4cb91b
mov ecx, dword [ebp + 0x10]
test byte [ecx + 0xc], 0x30
je 0x4cb857
test dword [ebp - 0x268], 0x10
jne 0x4cb91b
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x678]
mov ecx, eax
mov edx, 0x104
sub esi, ecx
lea esp, [esp]
lea ecx, [edx + 0x7ffffefa]
test ecx, ecx
je 0x4cb890
movzx ecx, word [esi + eax]
test cx, cx
je 0x4cb890
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x4cb870
jmp 0x4cb894
test edx, edx
jne 0x4cb897
sub eax, 2
xor edx, edx
mov word [eax], dx
mov eax, 0x104
lea ecx, [ebp - 0x678]
cmp word [ecx], 0
je 0x4cb8b7
add ecx, 2
sub eax, 1
jne 0x4cb8a7
jmp 0x4cb908
test eax, eax
je 0x4cb908
mov edx, 0x104
sub edx, eax
mov ecx, 0x104
sub ecx, edx
lea eax, [ebp + edx*2 - 0x678]
je 0x4cb900
lea edi, [ebp - 0x23c]
lea esi, [ecx + edx + 0x7ffffefb]
sub edi, eax
test esi, esi
je 0x4cb8fc
movzx edx, word [edi + eax]
test dx, dx
je 0x4cb8fc
mov word [eax], dx
dec ecx
add eax, 2
dec esi
test ecx, ecx
jne 0x4cb8e1
jmp 0x4cb900
test ecx, ecx
jne 0x4cb903
sub eax, 2
xor ecx, ecx
mov word [eax], cx
mov edx, dword [ebp + 0xc]
push edx
lea eax, [ebp - 0x678]
push eax
call fcn.004c9ec0
add esp, 8
lea ecx, [ebp - 0x268]
push ecx
push ebx
call dword [ebp - 0x18]
test eax, eax
jne 0x4cb800
push ebx
call dword [ebp - 4]
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret