Function at 0x48d9b0
Capabilities:
Encode data using xor

Disassembly:
push ecx
mov eax, dword [esp + 8]
push ebx
push ebp
push esi
lea ebx, [eax - 0xe1a8c93]
push edi
mov ecx, ebx
mov esi, ebx
test dl, 3
jne 0x48daf7
mov ebp, edx
cmp eax, 0xc
jbe switch.0x0048da52
lea edx, [eax - 0xd]
mov eax, 0xaaaaaaab
mul edx
shr edx, 3
inc edx
mov dword [esp + 0x10], edx
add ebx, dword [ebp + 8]
add ecx, dword [ebp + 4]
sub esi, ebx
add esi, dword [ebp]
mov eax, ebx
rol eax, 4
xor eax, esi
add ebx, ecx
sub ecx, eax
mov edi, eax
rol edi, 6
xor edi, ecx
add eax, ebx
sub dword [esp + 0x18], 0xc
sub ebx, edi
mov edx, edi
rol edx, 8
xor edx, ebx
add edi, eax
sub eax, edx
mov ecx, edx
rol ecx, 0x10
xor ecx, eax
mov esi, ecx
add edx, edi
mov eax, esi
ror eax, 0xd
sub edi, esi
xor eax, edi
mov ecx, eax
add esi, edx
sub edx, ecx
rol eax, 4
xor eax, edx
add ecx, esi
add ebp, 0xc
sub dword [esp + 0x10], 1
mov ebx, eax
jne 0x48d9e5
cmp dword [esp + 0x18], 0xc
ja case.default.0x48dd75
mov eax, dword [esp + 0x18]
jmp dword [eax*4 + 0x48de2c]
add ebx, dword [ebp + 8]
add ecx, dword [ebp + 4]
add esi, dword [ebp]
jmp case.default.0x48dd75
mov edx, dword [ebp + 8]
add ecx, dword [ebp + 4]
and edx, 0xffffff
add ebx, edx
add esi, dword [ebp]
jmp case.default.0x48dd75
movzx eax, word [ebp + 8]
add ecx, dword [ebp + 4]
add ebx, eax
add esi, dword [ebp]
jmp case.default.0x48dd75
movzx edx, byte [ebp + 8]
add ecx, dword [ebp + 4]
add ebx, edx
add esi, dword [ebp]
jmp case.default.0x48dd75
mov eax, dword [ebp + 4]
and eax, 0xffffff
add ecx, eax
add esi, dword [ebp]
jmp case.default.0x48dd75
movzx edx, word [ebp + 4]
add ecx, edx
add esi, dword [ebp]
jmp case.default.0x48dd75
movzx eax, byte [ebp + 4]
add ecx, eax
add esi, dword [ebp]
jmp case.default.0x48dd75
mov edx, dword [ebp]
and edx, 0xffffff
jmp 0x48dddc
movzx eax, word [ebp]
add esi, eax
jmp case.default.0x48dd75
movzx edx, byte [ebp]
jmp 0x48dddc
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
pop ecx
ret
test dl, 1
jne 0x48dc8b
mov ebp, edx
cmp eax, 0xc
jbe switch.0x0048dbb7
lea edx, [eax - 0xd]
mov eax, 0xaaaaaaab
mul edx
shr edx, 3
inc edx
mov dword [esp + 0x10], edx
lea ecx, [ecx]
movzx eax, word [ebp + 6]
movzx edx, word [ebp + 4]
add edx, ecx
movzx ecx, word [ebp + 8]
shl eax, 0x10
lea edi, [edx + eax]
movzx eax, word [ebp + 0xa]
movzx edx, word [ebp + 2]
add ecx, ebx
shl eax, 0x10
lea ebx, [ecx + eax]
movzx ecx, word [ebp]
shl edx, 0x10
add edx, ecx
sub edx, ebx
add edx, esi
mov eax, ebx
rol eax, 4
xor eax, edx
add ebx, edi
sub edi, eax
mov ecx, eax
rol ecx, 6
xor ecx, edi
add eax, ebx
sub dword [esp + 0x18], 0xc
sub ebx, ecx
mov edi, ecx
rol edi, 8
xor edi, ebx
add ecx, eax
sub eax, edi
mov edx, edi
rol edx, 0x10
xor edx, eax
mov esi, edx
add edi, ecx
sub ecx, esi
mov eax, esi
ror eax, 0xd
xor ecx, eax
add esi, edi
mov edx, ecx
sub edi, ecx
rol edx, 4
xor edx, edi
add ecx, esi
add ebp, 0xc
sub dword [esp + 0x10], 1
mov ebx, edx
jne 0x48db20
cmp dword [esp + 0x18], 0xc
ja case.default.0x48dd75
mov eax, dword [esp + 0x18]
jmp dword [eax*4 + 0x48de60]
movzx eax, word [ebp + 0xa]
movzx edx, word [ebp + 8]
shl eax, 0x10
add edx, ebx
lea ebx, [edx + eax]
movzx eax, word [ebp + 6]
movzx edx, word [ebp + 4]
shl eax, 0x10
add edx, ecx
lea ecx, [edx + eax]
movzx eax, word [ebp + 2]
movzx edx, word [ebp]
shl eax, 0x10
add edx, esi
lea esi, [edx + eax]
jmp case.default.0x48dd75
movzx eax, byte [ebp + 0xa]
shl eax, 0x10
add ebx, eax
movzx edx, word [ebp + 8]
movzx eax, word [ebp + 6]
add ebx, edx
movzx edx, word [ebp + 4]
shl eax, 0x10
add edx, ecx
lea ecx, [edx + eax]
movzx eax, word [ebp + 2]
movzx edx, word [ebp]
shl eax, 0x10
add edx, esi
lea esi, [edx + eax]
jmp case.default.0x48dd75
movzx eax, byte [ebp + 8]
add ebx, eax
movzx edx, word [ebp + 6]
movzx eax, word [ebp + 4]
shl edx, 0x10
add eax, ecx
lea ecx, [eax + edx]
movzx edx, word [ebp + 2]
movzx eax, word [ebp]
shl edx, 0x10
add eax, esi
lea esi, [eax + edx]
jmp case.default.0x48dd75
movzx edx, byte [ebp + 6]
shl edx, 0x10
add ecx, edx
movzx eax, word [ebp + 4]
add ecx, eax
jmp 0x48dc3d
movzx edx, byte [ebp + 4]
add ecx, edx
jmp case.0x48dbb7.4
movzx eax, byte [ebp + 2]
shl eax, 0x10
add esi, eax
movzx edx, word [ebp]
jmp 0x48dddc
movzx eax, byte [ebp]
add esi, eax
jmp case.default.0x48dd75
mov edi, edx
cmp eax, 0xc
jbe switch.0x0048dd75
lea edx, [eax - 0xd]
mov eax, 0xaaaaaaab
mul edx
shr edx, 3
inc edx
mov dword [esp + 0x10], edx
jmp 0x48dcb0
movzx eax, byte [edi + 7]
movzx edx, byte [edi + 6]
shl eax, 8
add eax, edx
movzx edx, byte [edi + 5]
shl eax, 8
add eax, edx
movzx edx, byte [edi + 4]
add edx, ecx
movzx ecx, byte [edi + 0xa]
shl eax, 8
add edx, eax
movzx eax, byte [edi + 0xb]
shl eax, 8
add eax, ecx
movzx ecx, byte [edi + 9]
shl eax, 8
add eax, ecx
movzx ecx, byte [edi + 8]
add ecx, ebx
movzx ebx, byte [edi + 2]
shl eax, 8
lea ebp, [ecx + eax]
movzx ecx, byte [edi + 3]
shl ecx, 8
add ecx, ebx
movzx ebx, byte [edi + 1]
shl ecx, 8
add ecx, ebx
movzx ebx, byte [edi]
shl ecx, 8
add ecx, ebx
sub ecx, ebp
add ecx, esi
mov eax, ebp
rol eax, 4
xor eax, ecx
add ebp, edx
sub edx, eax
mov ecx, eax
rol ecx, 6
xor ecx, edx
sub dword [esp + 0x18], 0xc
add eax, ebp
sub ebp, ecx
mov ebx, ecx
rol ebx, 8
xor ebx, ebp
add ecx, eax
sub eax, ebx
mov edx, ebx
rol edx, 0x10
xor edx, eax
add ebx, ecx
mov esi, edx
sub ecx, esi
mov eax, esi
ror eax, 0xd
xor ecx, eax
add esi, ebx
mov edx, ecx
sub ebx, ecx
rol edx, 4
xor ebx, edx
add ecx, esi
add edi, 0xc
sub dword [esp + 0x10], 1
jne 0x48dcb0
cmp dword [esp + 0x18], 0xc
ja case.default.0x48dd75
mov eax, dword [esp + 0x18]
jmp dword [eax*4 + 0x48de94]
movzx eax, byte [edi + 0xb]
shl eax, 0x18
add ebx, eax
movzx edx, byte [edi + 0xa]
shl edx, 0x10
add ebx, edx
movzx eax, byte [edi + 9]
shl eax, 8
add ebx, eax
movzx edx, byte [edi + 8]
add ebx, edx
movzx eax, byte [edi + 7]
shl eax, 0x18
add ecx, eax
movzx edx, byte [edi + 6]
shl edx, 0x10
add ecx, edx
movzx eax, byte [edi + 5]
shl eax, 8
add ecx, eax
movzx edx, byte [edi + 4]
add ecx, edx
movzx eax, byte [edi + 3]
shl eax, 0x18
add esi, eax
movzx edx, byte [edi + 2]
shl edx, 0x10
add esi, edx
movzx eax, byte [edi + 1]
shl eax, 8
add esi, eax
movzx edx, byte [edi]
add esi, edx
xor ebx, ecx
mov eax, ecx
rol eax, 0xe
sub ebx, eax
mov eax, ebx
rol eax, 0xb
mov edx, ebx
xor edx, esi
sub edx, eax
xor ecx, edx
mov eax, edx
ror eax, 7
sub ecx, eax
xor ebx, ecx
mov eax, ecx
rol eax, 0x10
sub ebx, eax
mov eax, ebx
mov edi, eax
rol edi, 4
mov esi, eax
xor esi, edx
sub esi, edi
mov edx, esi
rol edx, 0xe
xor ecx, esi
sub ecx, edx
pop edi
pop esi
mov edx, ecx
ror edx, 8
xor eax, ecx
pop ebp
sub eax, edx
pop ebx
pop ecx
ret