Function at 0x4dc636
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x24
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov ecx, dword [0x6c3630]
mov ax, word [edi + 0xf4]
lea esi, [edi + 0x1a]
mov edx, dword [ecx]
push esi
mov word [esp + 0x14], ax
call dword [edx + 0x1d4]
mov ecx, eax
call fcn.004a4029
mov edx, dword [edi + 0x1e]
mov ecx, dword [0x6c3630]
sar edx, 0xc
mov ebx, eax
mov eax, dword [ecx]
dec edx
push ebx
push edx
mov edx, dword [esi]
sar edx, 0xc
push edx
call dword [eax + 0x1d8]
mov ecx, eax
call fcn.004a405b
mov edx, dword [edi + 0x1e]
mov ecx, dword [0x6c3630]
sar edx, 0xc
push ebx
push edx
mov edx, dword [esi]
mov dword [esp + 0x1c], eax
mov eax, dword [ecx]
sar edx, 0xc
inc edx
push edx
call dword [eax + 0x1d8]
mov ecx, eax
call fcn.004a405b
mov edx, dword [edi + 0x1e]
mov ecx, dword [0x6c3630]
sar edx, 0xc
inc edx
push ebx
push edx
mov edx, dword [esi]
mov ebp, eax
mov eax, dword [ecx]
sar edx, 0xc
push edx
mov dword [esp + 0x28], ebp
call dword [eax + 0x1d8]
mov ecx, eax
call fcn.004a405b
mov edx, dword [edi + 0x1e]
mov ecx, dword [0x6c3630]
sar edx, 0xc
push ebx
push edx
mov edx, dword [esi]
mov dword [esp + 0x2c], eax
mov eax, dword [ecx]
sar edx, 0xc
dec edx
push edx
call dword [eax + 0x1d8]
mov ecx, eax
call fcn.004a405b
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
test ecx, ecx
je 0x4dc736
test ebp, ebp
je 0x4dc736
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x4dc736
test eax, eax
je 0x4dc736
mov eax, dword [esp + 0x38]
mov cx, word [esp + 0x10]
mov word [eax], cx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret 8
mov eax, dword [edi + 0x1e]
mov ecx, dword [0x6c3630]
sar eax, 0xc
mov edx, dword [ecx]
dec eax
push ebx
push eax
mov eax, dword [esi]
sar eax, 0xc
inc eax
push eax
call dword [edx + 0x1d8]
mov ecx, eax
call fcn.004a405b
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x1e]
mov ecx, dword [0x6c3630]
push ebx
sar eax, 0xc
mov edx, dword [ecx]
inc eax
push eax
mov eax, dword [esi]
sar eax, 0xc
inc eax
push eax
call dword [edx + 0x1d8]
mov ecx, eax
call fcn.004a405b
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0x1e]
mov ecx, dword [0x6c3630]
push ebx
sar eax, 0xc
mov edx, dword [ecx]
inc eax
push eax
mov eax, dword [esi]
sar eax, 0xc
dec eax
push eax
call dword [edx + 0x1d8]
mov ecx, eax
call fcn.004a405b
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x1e]
mov ecx, dword [0x6c3630]
push ebx
sar eax, 0xc
mov edx, dword [ecx]
dec eax
push eax
mov eax, dword [esi]
sar eax, 0xc
dec eax
push eax
call dword [edx + 0x1d8]
mov ecx, eax
call fcn.004a405b
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, esi
or ecx, ebp
or edx, ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x20]
or ebp, ecx
or edx, ebp
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x2c]
or ecx, edx
or edx, esi
or ebp, ecx
or eax, edx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x30], eax
mov edx, dword [0x6c3630]
push 0x193d
add edx, 0x15a0
push 0x7a86a0
push edx
push 0x800
call fcn.0059cec2
mov ecx, eax
add esp, 0x10
movsx eax, cx
add eax, 0x20
cdq
xor eax, edx
sub eax, edx
and eax, 0x7ff
xor eax, edx
sub eax, edx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
test al, 1
jne 0x4dc810
movsx eax, ax
cdq
sub eax, edx
sar eax, 1
mov edx, dword [esp + eax*4 + 0x14]
test edx, edx
jne 0x4dc810
mov eax, dword [esp + 0x3c]
and ecx, 0x7ff
test eax, eax
mov word [esp + 0x10], cx
jne 0x4dc89a
mov eax, dword [edi + 0x370]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x766]
shl eax, 8
and eax, 0x7ff
sub ecx, eax
and ecx, 0x7ff
mov eax, dword [esp + 0x38]
pop edi
pop esi
pop ebp
mov word [eax], cx
pop ebx
add esp, 0x24
ret 8