Function at 0x442850
Capabilities:
Encode data using xor

Disassembly:
sub esp, 8
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
push ebx
push ebp
lea ebx, [eax + edx - 0x21524111]
mov eax, dword [esp + 0x18]
push esi
push edi
mov esi, ebx
mov edi, ebx
add ebx, dword [eax]
test cl, 3
mov dword [esp + 0x10], edx
jne 0x4429a6
cmp edx, 0xc
mov ebp, ecx
jbe switch.0x00442911
add edx, 0xfffffff3
mov eax, 0xaaaaaaab
mul edx
shr edx, 3
add edx, 1
mov dword [esp + 0x14], edx
lea ebx, [ebx]
add ebx, dword [ebp + 8]
add esi, dword [ebp + 4]
mov ecx, dword [ebp]
sub ecx, ebx
add ecx, edi
mov eax, ebx
rol eax, 4
xor eax, ecx
add ebx, esi
sub esi, eax
mov ecx, eax
rol ecx, 6
xor ecx, esi
add eax, ebx
sub ebx, ecx
sub dword [esp + 0x10], 0xc
mov edx, ecx
rol edx, 8
xor edx, ebx
add ecx, eax
sub eax, edx
mov esi, edx
rol esi, 0x10
xor esi, eax
mov edi, esi
add edx, ecx
sub ecx, edi
mov eax, edi
ror eax, 0xd
xor eax, ecx
mov esi, eax
add edi, edx
mov ecx, esi
sub edx, esi
rol ecx, 4
xor ecx, edx
add esi, edi
add ebp, 0xc
sub dword [esp + 0x14], 1
mov ebx, ecx
jne 0x4428a0
cmp dword [esp + 0x10], 0xc
ja case.default.0x442c16
mov edx, dword [esp + 0x10]
jmp dword [edx*4 + 0x442cd8]
add ebx, dword [ebp + 8]
add esi, dword [ebp + 4]
add edi, dword [ebp]
jmp case.default.0x442c16
mov edx, dword [ebp + 8]
add esi, dword [ebp + 4]
and edx, 0xffffff
add ebx, edx
add edi, dword [ebp]
jmp case.default.0x442c16
movzx eax, word [ebp + 8]
add esi, dword [ebp + 4]
add ebx, eax
add edi, dword [ebp]
jmp case.default.0x442c16
movzx ecx, byte [ebp + 8]
add esi, dword [ebp + 4]
add ebx, ecx
add edi, dword [ebp]
jmp case.default.0x442c16
mov edx, dword [ebp + 4]
and edx, 0xffffff
add esi, edx
add edi, dword [ebp]
jmp case.default.0x442c16
movzx eax, word [ebp + 4]
add esi, eax
add edi, dword [ebp]
jmp case.default.0x442c16
movzx ecx, byte [ebp + 4]
add esi, ecx
add edi, dword [ebp]
jmp case.default.0x442c16
mov edx, dword [ebp]
and edx, 0xffffff
add edi, edx
jmp case.default.0x442c16
movzx ecx, byte [ebp]
jmp 0x442c7d
test cl, 1
jne 0x442b34
cmp edx, 0xc
mov ebp, ecx
jbe switch.0x00442a66
add edx, 0xfffffff3
mov eax, 0xaaaaaaab
mul edx
shr edx, 3
add edx, 1
mov dword [esp + 0x14], edx
mov edi, edi
movzx ecx, word [ebp + 6]
movzx edx, word [ebp + 4]
movzx eax, word [ebp + 0xa]
shl ecx, 0x10
add edx, esi
add edx, ecx
movzx ecx, word [ebp + 8]
add ecx, ebx
movzx ebx, word [ebp]
shl eax, 0x10
lea esi, [ecx + eax]
movzx ecx, word [ebp + 2]
shl ecx, 0x10
add ecx, ebx
sub ecx, esi
add ecx, edi
mov eax, esi
rol eax, 4
xor eax, ecx
add esi, edx
sub edx, eax
mov ecx, eax
rol ecx, 6
xor ecx, edx
add eax, esi
sub esi, ecx
sub dword [esp + 0x10], 0xc
mov ebx, ecx
rol ebx, 8
xor ebx, esi
add ecx, eax
sub eax, ebx
mov edx, ebx
rol edx, 0x10
xor edx, eax
add ebx, ecx
mov edi, edx
sub ecx, edi
mov eax, edi
ror eax, 0xd
xor eax, ecx
mov esi, eax
add edi, ebx
mov ecx, esi
sub ebx, esi
rol ecx, 4
xor ebx, ecx
add esi, edi
add ebp, 0xc
sub dword [esp + 0x14], 1
jne 0x4429d0
cmp dword [esp + 0x10], 0xc
ja case.default.0x442c16
mov edx, dword [esp + 0x10]
jmp dword [edx*4 + 0x442d0c]
movzx edx, word [ebp + 0xa]
movzx eax, word [ebp + 8]
movzx ecx, word [ebp + 6]
shl edx, 0x10
add eax, ebx
lea ebx, [eax + edx]
movzx edx, word [ebp + 4]
shl ecx, 0x10
add edx, esi
lea esi, [edx + ecx]
movzx eax, word [ebp + 2]
movzx ecx, word [ebp]
shl eax, 0x10
add ecx, edi
lea edi, [ecx + eax]
jmp case.default.0x442c16
movzx edx, byte [ebp + 0xa]
shl edx, 0x10
add ebx, edx
movzx eax, word [ebp + 8]
movzx ecx, word [ebp + 6]
movzx edx, word [ebp + 4]
shl ecx, 0x10
add ebx, eax
movzx eax, word [ebp + 2]
add edx, esi
lea esi, [edx + ecx]
movzx ecx, word [ebp]
shl eax, 0x10
add ecx, edi
lea edi, [ecx + eax]
jmp case.default.0x442c16
movzx edx, byte [ebp + 8]
add ebx, edx
movzx eax, word [ebp + 6]
movzx ecx, word [ebp + 4]
movzx edx, word [ebp + 2]
shl eax, 0x10
add ecx, esi
lea esi, [ecx + eax]
movzx eax, word [ebp]
shl edx, 0x10
add eax, edi
lea edi, [eax + edx]
jmp case.default.0x442c16
movzx ecx, byte [ebp + 6]
shl ecx, 0x10
add esi, ecx
movzx edx, word [ebp + 4]
add esi, edx
jmp case.0x442a66.4
movzx edx, byte [ebp + 4]
add esi, edx
jmp case.0x442a66.4
movzx edx, byte [ebp + 2]
shl edx, 0x10
add edi, edx
movzx eax, word [ebp]
add edi, eax
jmp case.default.0x442c16
cmp edx, 0xc
jbe switch.0x00442c16
add edx, 0xfffffff3
mov eax, 0xaaaaaaab
mul edx
shr edx, 3
add edx, 1
mov dword [esp + 0x14], edx
movzx edx, byte [ecx + 7]
movzx eax, byte [ecx + 6]
shl edx, 8
add edx, eax
movzx eax, byte [ecx + 5]
shl edx, 8
add edx, eax
movzx eax, byte [ecx + 4]
add eax, esi
movzx esi, byte [ecx + 0xa]
shl edx, 8
add edx, eax
movzx eax, byte [ecx + 0xb]
shl eax, 8
add eax, esi
movzx esi, byte [ecx + 9]
shl eax, 8
add eax, esi
movzx esi, byte [ecx + 8]
add esi, ebx
movzx ebx, byte [ecx + 2]
shl eax, 8
lea ebp, [esi + eax]
movzx esi, byte [ecx + 3]
shl esi, 8
add esi, ebx
movzx ebx, byte [ecx + 1]
shl esi, 8
add esi, ebx
movzx ebx, byte [ecx]
shl esi, 8
add esi, ebx
sub esi, ebp
add esi, edi
mov eax, ebp
rol eax, 4
xor eax, esi
add ebp, edx
sub edx, eax
mov esi, eax
rol esi, 6
xor esi, edx
sub dword [esp + 0x10], 0xc
add eax, ebp
sub ebp, esi
mov ebx, esi
rol ebx, 8
xor ebx, ebp
add esi, eax
sub eax, ebx
mov edx, ebx
rol edx, 0x10
xor edx, eax
add ebx, esi
mov edi, edx
sub esi, edi
mov eax, edi
ror eax, 0xd
xor esi, eax
add edi, ebx
mov edx, esi
sub ebx, esi
rol edx, 4
xor ebx, edx
add esi, edi
add ecx, 0xc
sub dword [esp + 0x14], 1
jne 0x442b51
cmp dword [esp + 0x10], 0xc
ja case.default.0x442c16
mov edx, dword [esp + 0x10]
jmp dword [edx*4 + 0x442d40]
movzx eax, byte [ecx + 0xb]
shl eax, 0x18
add ebx, eax
movzx edx, byte [ecx + 0xa]
shl edx, 0x10
add ebx, edx
movzx eax, byte [ecx + 9]
shl eax, 8
add ebx, eax
movzx edx, byte [ecx + 8]
add ebx, edx
movzx eax, byte [ecx + 7]
shl eax, 0x18
add esi, eax
movzx edx, byte [ecx + 6]
shl edx, 0x10
add esi, edx
movzx eax, byte [ecx + 5]
shl eax, 8
add esi, eax
movzx edx, byte [ecx + 4]
add esi, edx
movzx eax, byte [ecx + 3]
shl eax, 0x18
add edi, eax
movzx edx, byte [ecx + 2]
shl edx, 0x10
add edi, edx
movzx eax, byte [ecx + 1]
shl eax, 8
add edi, eax
movzx ecx, byte [ecx]
add edi, ecx
xor ebx, esi
mov ecx, esi
rol ecx, 0xe
sub ebx, ecx
mov edx, ebx
rol edx, 0xb
mov eax, ebx
xor eax, edi
sub eax, edx
xor esi, eax
mov ecx, eax
ror ecx, 7
sub esi, ecx
xor ebx, esi
mov edx, esi
rol edx, 0x10
sub ebx, edx
mov edx, ebx
mov ecx, ebx
xor ecx, eax
rol edx, 4
sub ecx, edx
mov eax, ecx
xor esi, ecx
rol eax, 0xe
sub esi, eax
mov ecx, esi
ror ecx, 8
xor ebx, esi
sub ebx, ecx
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
pop edi
mov dword [edx], ebx
mov dword [eax], esi
pop esi
pop ebp
pop ebx
add esp, 8
ret 8