Function at 0x49b870
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x1c
mov eax, dword [esp + 0x20]
push ebx
push ebp
push esi
push edi
mov edi, ecx
movzx ecx, word [eax]
rol cx, 8
movzx edx, cx
movzx ecx, word [eax + 2]
rol cx, 8
movzx ecx, cx
mov dword [esp + 0x10], ecx
movzx ecx, word [eax + 4]
mov ax, word [eax + 6]
rol cx, 8
movzx ecx, cx
mov dword [esp + 0x30], ecx
mov ecx, dword [edi + 0x24]
rol ax, 8
lea ebp, [ecx + 4]
mov dword [esp + 0x28], edi
movzx esi, ax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], 8
lea ebx, [ebx]
movzx eax, word [ecx]
mov dword [esp + 0x24], eax
movzx eax, ax
xor ebx, ebx
movzx edi, dx
imul eax, edi
test eax, eax
sete bl
dec bx
movzx edi, bx
mov ebx, eax
movzx eax, ax
shr ebx, 0x10
cmp eax, ebx
mov dword [esp + 0x20], eax
sbb eax, eax
neg eax
sub ax, bx
add ax, word [esp + 0x20]
mov ebx, 1
sub ebx, dword [esp + 0x24]
and ax, di
sub ebx, edx
not edi
and ebx, edi
or ax, bx
movzx edx, ax
movzx eax, word [ebp - 2]
add word [esp + 0x10], ax
movzx eax, word [ebp]
add word [esp + 0x30], ax
movzx ebp, word [ebp + 2]
xor ebx, ebx
movzx edi, si
mov eax, ebp
imul eax, edi
test eax, eax
sete bl
dec bx
movzx edi, bx
mov ebx, eax
movzx eax, ax
shr ebx, 0x10
cmp eax, ebx
mov dword [esp + 0x24], eax
sbb eax, eax
neg eax
sub ax, bx
add ax, word [esp + 0x24]
mov ebx, 1
and ax, di
sub ebx, ebp
sub ebx, esi
not edi
and ebx, edi
or ax, bx
movzx edi, word [ecx + 8]
movzx esi, ax
movzx eax, word [esp + 0x30]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x30]
xor eax, edx
movzx ebp, ax
mov eax, ebp
imul eax, edi
xor ebx, ebx
test eax, eax
sete bl
dec bx
movzx edi, bx
mov ebx, eax
movzx eax, ax
shr ebx, 0x10
cmp eax, ebx
mov dword [esp + 0x30], eax
sbb eax, eax
neg eax
sub ax, bx
add ax, word [esp + 0x30]
mov ebx, 1
and ax, di
mov word [esp + 0x30], ax
movzx eax, word [ecx + 8]
movzx ecx, word [ecx + 0xa]
sub ebx, ebp
sub ebx, eax
movzx eax, word [esp + 0x30]
not edi
and ebx, edi
or ax, bx
movzx edi, ax
movzx eax, word [esp + 0x10]
mov dword [esp + 0x20], eax
mov eax, esi
xor eax, dword [esp + 0x10]
add eax, edi
movzx ebp, ax
mov eax, ebp
imul eax, ecx
xor ecx, ecx
test eax, eax
sete cl
dec cx
movzx ebx, cx
mov ecx, eax
movzx eax, ax
shr ecx, 0x10
cmp eax, ecx
mov dword [esp + 0x30], eax
sbb eax, eax
neg eax
sub ax, cx
add ax, word [esp + 0x30]
mov ecx, 1
and ax, bx
sub ecx, ebp
mov ebp, dword [esp + 0x14]
mov word [esp + 0x30], ax
movzx eax, word [ebp + 0xa]
mov ebp, dword [esp + 0x18]
sub ecx, eax
movzx eax, word [esp + 0x30]
not ebx
and ecx, ebx
or ax, cx
mov ecx, dword [esp + 0x14]
movzx eax, ax
add edi, eax
xor edx, eax
xor eax, dword [esp + 0x24]
xor esi, edi
xor edi, dword [esp + 0x20]
add ebp, 0xc
add ecx, 0xc
dec dword [esp + 0x1c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x30], edi
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], ecx
jne 0x49b8d0
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x24]
movzx eax, word [eax + 0x60]
mov dword [esp + 0x24], eax
movzx eax, ax
xor ebx, ebx
movzx edi, dx
imul eax, edi
test eax, eax
sete bl
mov ebp, eax
movzx eax, ax
mov dword [esp + 0x28], eax
mov eax, dword [ecx + 0x24]
mov cx, word [esp + 0x10]
add cx, word [eax + 0x64]
dec bx
movzx edi, bx
mov bx, word [eax + 0x62]
add word [esp + 0x30], bx
movzx eax, word [eax + 0x66]
mov dword [esp + 0x14], eax
movzx eax, ax
movzx ebx, si
imul eax, ebx
xor ebx, ebx
shr ebp, 0x10
test eax, eax
sete bl
dec bx
movzx ebx, bx
mov dword [esp + 0x18], ebx
mov ebx, eax
movzx eax, ax
shr ebx, 0x10
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x28]
cmp eax, ebp
mov dword [esp + 0x1c], ebx
sbb ebx, ebx
neg ebx
sub bx, bp
add bx, ax
and bx, di
not edi
mov eax, 1
sub eax, dword [esp + 0x24]
sub eax, edx
mov edx, dword [esp + 0x34]
and eax, edi
or bx, ax
mov ax, word [esp + 0x30]
rol bx, 8
rol ax, 8
rol cx, 8
mov word [edx + 4], cx
mov ecx, dword [esp + 0x20]
mov word [edx + 2], ax
mov eax, dword [esp + 0x1c]
cmp ecx, eax
sbb edi, edi
neg edi
sub di, ax
mov eax, dword [esp + 0x18]
add di, cx
mov ecx, 1
sub ecx, dword [esp + 0x14]
and di, ax
sub ecx, esi
not eax
and ecx, eax
or di, cx
rol di, 8
mov word [edx + 6], di
pop edi
pop esi
pop ebp
mov word [edx], bx
pop ebx
add esp, 0x1c
ret 8