Function at 0x49bb80
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]
push ebx
rol dx, 8
push ebp
push esi
movzx esi, dx
movzx edx, word [eax + 4]
mov ax, word [eax + 6]
rol dx, 8
movzx edx, dx
rol ax, 8
mov dword [esp + 0xc], edx
movzx edx, ax
mov eax, dword [ecx + 0x14]
mov cx, word [esp + 0x24]
push edi
mov dword [esp + 0x14], esi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], 4
mov bp, dx
lea esp, [esp]
mov dx, cx
rol dx, 1
and dx, word [eax]
mov dword [esp + 0x20], eax
xor dx, si
movzx edi, dx
movzx esi, word [eax + 6]
mov dx, di
rol dx, 1
or dx, word [eax + 2]
xor dx, word [eax + 4]
xor dx, cx
movzx edx, dx
mov cl, dl
and cl, 0x7f
movzx ebx, cl
movzx ecx, cl
shr edx, 7
xor bx, word [edx*2 + 0x4f8f88]
movzx edx, bx
mov bx, si
shr bx, 9
xor bl, byte [ecx + 0x4f8f08]
mov cl, dl
and cl, 0x7f
xor cl, bl
and esi, 0x1ff
xor esi, edx
movzx edx, cl
xor dx, word [esi*2 + 0x4f8f88]
movzx ecx, cl
movzx edx, dx
movzx esi, word [eax + 0xa]
mov bl, dl
and bl, 0x7f
xor bl, byte [ecx + 0x4f8f08]
movzx ecx, bl
shl cx, 9
or cx, dx
xor cx, di
movzx edx, cx
movzx ecx, word [eax + 8]
xor cx, di
movzx ebx, cx
mov cl, bl
and cl, 0x7f
mov edi, ebx
movzx ebx, cl
shr edi, 7
xor bx, word [edi*2 + 0x4f8f88]
movzx ecx, cl
mov ax, si
shr ax, 9
xor al, byte [ecx + 0x4f8f08]
movzx ebx, bx
mov dword [esp + 0x1c], ebx
movzx edi, word [esp + 0x1c]
and bl, 0x7f
xor al, bl
mov cl, al
and esi, 0x1ff
xor esi, edi
movzx edi, cl
xor di, word [esi*2 + 0x4f8f88]
movzx ecx, cl
movzx ebx, di
mov al, bl
and al, 0x7f
xor al, byte [ecx + 0x4f8f08]
movzx ecx, al
mov eax, dword [esp + 0x20]
movzx esi, word [eax + 0xe]
shl cx, 9
or cx, bx
xor cx, dx
movzx edi, cx
movzx ecx, word [eax + 0xc]
xor cx, dx
movzx edx, cx
mov cl, dl
and cl, 0x7f
movzx ebx, cl
movzx ecx, cl
shr edx, 7
xor bx, word [edx*2 + 0x4f8f88]
mov dword [esp + 0x1c], eax
movzx edx, bx
mov bx, si
shr bx, 9
xor bl, byte [ecx + 0x4f8f08]
mov cl, dl
and cl, 0x7f
xor cl, bl
mov ebx, dword [esp + 0x10]
xor ebx, edi
and esi, 0x1ff
xor esi, edx
movzx edx, cl
xor dx, word [esi*2 + 0x4f8f88]
movzx ecx, cl
mov dword [esp + 0x20], ebx
mov dword [esp + 0x10], ebx
movzx edx, dx
mov bl, dl
and bl, 0x7f
xor bl, byte [ecx + 0x4f8f08]
movzx esi, word [eax + 0x16]
movzx ecx, bl
mov ebx, dword [esp + 0x20]
shl cx, 9
or cx, dx
mov dx, word [eax + 0x14]
xor cx, di
xor dx, bx
xor bp, cx
movzx edx, dx
mov cl, dl
and cl, 0x7f
movzx edi, cl
movzx ecx, cl
shr edx, 7
xor di, word [edx*2 + 0x4f8f88]
mov bx, si
shr bx, 9
xor bl, byte [ecx + 0x4f8f08]
movzx edx, di
mov cl, dl
and cl, 0x7f
xor cl, bl
and esi, 0x1ff
xor esi, edx
movzx edx, cl
xor dx, word [esi*2 + 0x4f8f88]
movzx ecx, cl
movzx edx, dx
mov bl, dl
and bl, 0x7f
xor bl, byte [ecx + 0x4f8f08]
movzx esi, word [eax + 0x1a]
movzx ecx, bl
shl cx, 9
or cx, dx
xor cx, bp
movzx edx, cx
movzx ecx, word [eax + 0x18]
xor cx, bp
movzx ebx, cx
mov cl, bl
and cl, 0x7f
mov edi, ebx
movzx ebx, cl
shr edi, 7
xor bx, word [edi*2 + 0x4f8f88]
movzx ecx, cl
movzx ebx, bx
mov ax, si
shr ax, 9
xor al, byte [ecx + 0x4f8f08]
mov dword [esp + 0x20], ebx
and bl, 0x7f
xor al, bl
mov cl, al
movzx edi, word [esp + 0x20]
and esi, 0x1ff
xor esi, edi
movzx edi, cl
xor di, word [esi*2 + 0x4f8f88]
movzx ecx, cl
movzx ebx, di
mov al, bl
and al, 0x7f
xor al, byte [ecx + 0x4f8f08]
movzx ecx, al
mov eax, dword [esp + 0x1c]
shl cx, 9
or cx, bx
xor cx, dx
movzx edi, cx
movzx ecx, word [eax + 0x1c]
xor cx, dx
movzx esi, word [eax + 0x1e]
movzx edx, cx
mov cl, dl
and cl, 0x7f
movzx ebx, cl
shr edx, 7
xor bx, word [edx*2 + 0x4f8f88]
movzx ecx, cl
movzx edx, bx
mov bx, si
shr bx, 9
xor bl, byte [ecx + 0x4f8f08]
and esi, 0x1ff
xor esi, edx
mov cl, dl
and cl, 0x7f
xor cl, bl
movzx edx, cl
xor dx, word [esi*2 + 0x4f8f88]
movzx ecx, cl
movzx edx, dx
mov bl, dl
and bl, 0x7f
xor bl, byte [ecx + 0x4f8f08]
mov si, di
rol si, 1
and si, word [eax + 0x10]
movzx ecx, bl
shl cx, 9
or cx, dx
xor si, cx
mov cx, word [esp + 0x28]
xor si, di
movzx edx, si
mov si, dx
rol si, 1
or si, word [eax + 0x12]
add eax, 0x20
xor si, di
xor cx, si
mov esi, dword [esp + 0x14]
xor esi, edx
dec dword [esp + 0x18]
mov word [esp + 0x28], cx
mov dword [esp + 0x14], esi
jne 0x49bbe0
mov eax, dword [esp + 0x2c]
rol cx, 8
mov word [eax], cx
mov ecx, dword [esp + 0x10]
rol si, 8
pop edi
rol cx, 8
rol bp, 8
mov word [eax + 2], si
pop esi
mov word [eax + 6], bp
pop ebp
mov word [eax + 4], cx
pop ebx
add esp, 0x14
ret 8