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