Function at 0x488690
Capabilities:
Encode data using add xor sub operations
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov edx, dword [ebp + 8]
mov dword [esp - 0x30], 0x2a2ea08c
push ebx
push esi
mov esi, ecx
xchg ebp, ebp
movzx ebx, byte [edx]
movzx eax, byte [edx + 1]
movzx ecx, byte [edx + 5]
mov dword [esp - 0x18], ebp
shl ebx, 8
or ebx, eax
movzx eax, byte [edx + 2]
shl ebx, 8
mov ebp, ebp
or ebx, eax
movzx eax, byte [edx + 3]
shl ebx, 8
or ebx, eax
mov esi, esi
movzx eax, byte [edx + 4]
shl eax, 8
or eax, ecx
mov dword [ebp - 4], ebx
xchg ebx, ebx
movzx ecx, byte [edx + 6]
shl eax, 8
or eax, ecx
movzx ecx, byte [edx + 7]
mov esi, esi
mov edx, dword [esi + 4]
shl eax, 8
or eax, ecx
test edx, edx
xchg ebp, ebp
jle 0x4888cb
push edi
mov edi, dword [esi + 8]
lea ecx, [edx - 1]
mov dword [esp - 0x24], esi
add edi, 0x10
shr ecx, 1
inc ecx
mov dword [esp - 0x38], edi
mov dword [ebp + 8], edi
mov dword [ebp - 8], ecx
jmp 0x488720
mov ebx, eax
mov ecx, eax
mov esp, esp
shr ecx, 0x10
mov edx, eax
and ecx, 0x3ff
ror ebx, 0xe
xchg ebx, ebx
and edx, 0x3ff00
and ebx, 0xffc00
or ebx, ecx
shl edx, 2
mov dword [esp - 0x10], 0x7376630b
mov ecx, eax
and ecx, 0x3ff
or edx, ecx
mov ecx, edx
mov dword [esp - 0x3c], ebp
xor ecx, ebx
and ecx, dword [edi - 8]
mov edi, dword [edi - 0x10]
mov esi, ecx
xchg ebx, ebx
xor edi, ecx
xor esi, edx
mov ecx, dword [ebp + 8]
mov dword [esp - 0x1c], 0x2e5f7996
xor edi, ebx
xor esi, dword [ecx - 0xc]
mov ecx, esi
and esi, 0x3ff
mov edx, edx
shr ecx, 0xa
mov edx, dword [ecx*4 + 0x4bd5a8]
mov ecx, edi
xchg ebp, ebp
shr ecx, 0xa
xor edx, 0x44ea390e
and edi, 0x3ff
mov dword [esp - 0x10], ebp
mov ecx, dword [ecx*4 + 0x4bb5a8]
xor ecx, 0x44ea390e
or edx, ecx
mov ecx, dword [esi*4 + 0x4be5a8]
mov dword [esp - 0x24], esp
mov esi, dword [ebp - 4]
xor ecx, 0x44ea390e
or edx, ecx
mov ecx, ecx
mov ecx, dword [edi*4 + 0x4bc5a8]
xor ecx, 0x44ea390e
or edx, ecx
xor esi, edx
xchg esp, esp
mov ebx, esi
mov dword [ebp - 4], esi
mov ecx, esi
xchg edx, edx
ror ebx, 0xe
shr ecx, 0x10
mov edx, esi
and ecx, 0x3ff
mov ebx, ebx
and edx, 0x3ff00
and ebx, 0xffc00
shl edx, 2
mov dword [esp - 0x24], esi
or ebx, ecx
mov ecx, esi
mov esi, dword [ebp + 8]
and ecx, 0x3ff
mov dword [esp - 0x18], edi
or edx, ecx
mov ecx, edx
xor ecx, ebx
mov dword [esp - 0x20], 0x57509203
and ecx, dword [esi + 4]
mov esi, ecx
xor esi, edx
mov edx, dword [ebp + 8]
mov dword [esp - 0x44], 0xcff2afe
xor esi, dword [edx]
mov edi, dword [edx - 4]
xor edi, ecx
mov dword [esp - 0x40], ebp
mov ecx, esi
shr ecx, 0xa
xor edi, ebx
and esi, 0x3ff
mov edi, edi
mov edx, dword [ecx*4 + 0x4bd5a8]
mov ecx, edi
shr ecx, 0xa
mov dword [esp - 0x34], ebx
xor edx, 0x44ea390e
mov ecx, dword [ecx*4 + 0x4bb5a8]
xor ecx, 0x44ea390e
mov ecx, ecx
or edx, ecx
mov ecx, dword [esi*4 + 0x4be5a8]
xor ecx, 0x44ea390e
mov dword [esp - 0x10], ebx
or edx, ecx
and edi, 0x3ff
mov ecx, dword [edi*4 + 0x4bc5a8]
mov edi, dword [ebp + 8]
mov edi, edi
xor ecx, 0x44ea390e
or edx, ecx
add edi, 0x18
xor eax, edx
xchg ebx, ebx
mov dword [ebp + 8], edi
sub dword [ebp - 8], 1
jne 0x488720
mov ebx, dword [ebp - 4]
mov dword [esp - 0x2c], esp
pop edi
mov ecx, dword [ebp + 0xc]
pop esi
mov ecx, ecx
mov byte [ecx + 3], al
mov byte [ecx + 7], bl
shr eax, 8
mov byte [ecx + 2], al
xchg edi, edi
shr ebx, 8
mov byte [ecx + 6], bl
shr eax, 8
mov ecx, ecx
shr ebx, 8
mov byte [ecx + 1], al
mov byte [ecx + 5], bl
shr eax, 8
mov dword [esp - 0xc], 0x1a86d2e2
shr ebx, 8
mov byte [ecx], al
mov byte [ecx + 4], bl
pop ebx
mov dword [esp - 0x1c], esp
mov esp, ebp
pop ebp
ret 8