Function at 0x4a6910
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x14
mov eax, dword [esp + 0x18]
movzx edx, word [eax]
rol dx, 8
movzx edx, dx
mov dword [esp + 0x18], edx
movzx edx, word [eax + 2]
rol dx, 8
movzx edx, dx
mov dword [esp + 0xc], edx
movzx edx, word [eax + 4]
mov ax, word [eax + 6]
rol dx, 8
push ebx
movzx edx, dx
rol ax, 8
push ebp
mov dword [esp + 8], edx
movzx edx, ax
mov eax, dword [ecx + 0x14]
push esi
push edi
mov di, word [esp + 0x1c]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], 4
mov bx, dx
lea ecx, [ecx]
mov cx, word [esp + 0x28]
movzx edx, word [eax]
and dx, cx
xor di, dx
movzx edx, word [eax + 2]
or dx, di
xor cx, dx
movzx edx, word [eax + 4]
and dx, word [esp + 0x10]
mov word [esp + 0x28], cx
xor bx, dx
movzx edx, word [eax + 8]
xor dx, cx
movzx ecx, dx
mov edx, ecx
shr ecx, 7
movzx ecx, word [ecx*2 + 0x4f9780]
and edx, 0x7f
xor cx, dx
movzx edx, byte [edx + 0x4f9700]
xor dx, word [eax + 0xa]
movzx ecx, cx
xor dx, cx
and dx, 0x7f
movzx esi, dx
movzx edx, word [eax + 0xc]
xor edx, ecx
movzx edx, word [edx*2 + 0x4f9780]
xor edx, esi
shl esi, 9
movzx ecx, si
or edx, ecx
movzx ecx, di
xor edx, ecx
movzx ecx, word [eax + 0xe]
xor cx, di
movzx ecx, cx
mov esi, ecx
shr ecx, 7
movzx ecx, word [ecx*2 + 0x4f9780]
and esi, 0x7f
xor cx, si
movzx esi, byte [esi + 0x4f9700]
xor si, word [eax + 0x10]
movzx ecx, cx
xor si, cx
and si, 0x7f
movzx ebp, si
movzx esi, word [eax + 0x12]
xor esi, ecx
movzx esi, word [esi*2 + 0x4f9780]
xor esi, ebp
shl ebp, 9
movzx ecx, bp
or esi, ecx
movzx ecx, word [eax + 0x14]
xor cx, dx
xor esi, edx
movzx ecx, cx
mov edx, ecx
and edx, 0x7f
shr ecx, 7
movzx ecx, word [ecx*2 + 0x4f9780]
xor cx, dx
movzx edx, byte [edx + 0x4f9700]
xor dx, word [eax + 0x16]
movzx ecx, cx
xor dx, cx
and dx, 0x7f
mov dword [esp + 0x1c], ecx
movzx ebp, word [esp + 0x1c]
movzx ecx, dx
movzx edx, word [eax + 6]
or dx, bx
xor dx, word [eax + 0x1a]
xor dx, si
xor word [esp + 0x10], dx
movzx edx, word [eax + 0x18]
xor edx, ebp
movzx edx, word [edx*2 + 0x4f9780]
xor dx, cx
shl ecx, 9
or dx, cx
movzx ecx, word [eax + 0x1c]
xor cx, word [esp + 0x10]
xor dx, si
movzx ecx, cx
xor bx, dx
mov edx, ecx
shr ecx, 7
movzx ecx, word [ecx*2 + 0x4f9780]
and edx, 0x7f
xor cx, dx
movzx esi, cx
movzx ecx, byte [edx + 0x4f9700]
xor cx, word [eax + 0x1e]
movzx edx, word [eax + 0x20]
xor cx, si
and cx, 0x7f
xor edx, esi
movzx edx, word [edx*2 + 0x4f9780]
movzx ecx, cx
xor edx, ecx
shl ecx, 9
movzx ecx, cx
or edx, ecx
movzx ecx, bx
xor edx, ecx
movzx ecx, word [eax + 0x22]
xor cx, bx
movzx ecx, cx
mov esi, ecx
shr ecx, 7
movzx ecx, word [ecx*2 + 0x4f9780]
and esi, 0x7f
xor cx, si
movzx ebp, cx
movzx ecx, byte [esi + 0x4f9700]
xor cx, word [eax + 0x24]
movzx esi, word [eax + 0x26]
xor cx, bp
and cx, 0x7f
movzx ecx, cx
xor esi, ebp
movzx esi, word [esi*2 + 0x4f9780]
xor esi, ecx
shl ecx, 9
movzx ecx, cx
or esi, ecx
movzx ecx, word [eax + 0x28]
xor cx, dx
xor esi, edx
movzx ecx, cx
mov edx, ecx
and edx, 0x7f
shr ecx, 7
movzx ecx, word [ecx*2 + 0x4f9780]
xor cx, dx
movzx edx, byte [edx + 0x4f9700]
xor dx, word [eax + 0x2a]
movzx ecx, cx
xor dx, cx
and dx, 0x7f
mov dword [esp + 0x1c], ecx
movzx ebp, word [esp + 0x1c]
movzx ecx, dx
movzx edx, word [eax + 0x2e]
xor dx, si
xor word [esp + 0x28], dx
movzx edx, word [eax + 0x2c]
xor edx, ebp
movzx edx, word [edx*2 + 0x4f9780]
xor dx, cx
shl ecx, 9
or dx, cx
xor dx, si
xor di, dx
add eax, 0x30
dec dword [esp + 0x14]
jne 0x4a6970
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x14]
movzx edx, word [eax + 0xc0]
mov cx, word [esp + 0x28]
movzx esi, word [eax + 0xc4]
and dx, cx
xor di, dx
movzx edx, word [eax + 0xc2]
or dx, di
xor cx, dx
mov dx, word [esp + 0x10]
and si, dx
xor bx, si
movzx esi, word [eax + 0xc6]
mov eax, dword [esp + 0x2c]
or si, bx
xor si, dx
rol si, 8
rol bx, 8
rol cx, 8
rol di, 8
mov word [eax + 6], di
pop edi
mov word [eax], si
pop esi
pop ebp
mov word [eax + 2], bx
mov word [eax + 4], cx
pop ebx
add esp, 0x14
ret 8