Function at 0x43ec83
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [ebp + 8]
push ebx
mov ebx, ecx
mov dword [ebp - 8], edx
mov ecx, edx
mov eax, dword [eax]
push esi
push edi
lea edi, [ecx - 0x21524111]
add edi, eax
mov eax, dword [ebp + 0xc]
mov edx, edi
mov esi, edi
mov dword [ebp - 4], edx
add edi, dword [eax]
test bl, 3
jne 0x43ed86
cmp ecx, 0xc
jbe switch.0x0043ed36
lea eax, [ecx - 0xd]
xor edx, edx
push 0xc
pop ecx
div ecx
inc eax
mov dword [ebp - 0xc], eax
add edi, dword [ebx + 8]
add esi, dword [ebx + 4]
mov edx, edi
mov eax, dword [ebx]
sub eax, edi
rol edx, 4
add eax, dword [ebp - 4]
add edi, esi
xor edx, eax
sub esi, edx
mov eax, edx
rol eax, 6
add edx, edi
xor eax, esi
sub edi, eax
mov ecx, eax
rol ecx, 8
add eax, edx
xor ecx, edi
sub edx, ecx
mov esi, ecx
rol esi, 0x10
add ecx, eax
xor esi, edx
mov edx, esi
mov dword [ebp - 4], esi
sub eax, edx
ror esi, 0xd
xor esi, eax
add edx, ecx
sub ecx, esi
mov dword [ebp - 4], edx
mov edi, esi
add esi, edx
rol edi, 4
xor edi, ecx
mov ecx, dword [ebp - 8]
push 0xc
pop eax
sub ecx, eax
add ebx, eax
sub dword [ebp - 0xc], 1
mov dword [ebp - 8], ecx
jne 0x43ecc8
cmp ecx, eax
ja 0x43f017
jmp dword [ecx*4 + 0x43f06f]
add edi, dword [ebx + 8]
add esi, dword [ebx + 4]
add edx, dword [ebx]
jmp 0x43f014
mov eax, dword [ebx + 8]
and eax, 0xffffff
add edi, eax
jmp case.0x43ed36.8
movzx eax, word [ebx + 8]
jmp 0x43ed52
movzx eax, byte [ebx + 8]
jmp 0x43ed52
mov eax, dword [ebx + 4]
and eax, 0xffffff
add esi, eax
jmp case.0x43ed36.4
movzx eax, word [ebx + 4]
jmp 0x43ed6a
movzx eax, byte [ebx + 4]
jmp 0x43ed6a
mov eax, dword [ebx]
and eax, 0xffffff
jmp 0x43f012
test bl, 1
jne 0x43eed1
cmp ecx, 0xc
jbe switch.0x0043ee37
lea eax, [ecx - 0xd]
xor edx, edx
push 0xc
pop ecx
div ecx
inc eax
mov dword [ebp - 0xc], eax
movzx edx, word [ebx + 6]
movzx ecx, word [ebx + 4]
add ecx, esi
movzx eax, word [ebx]
movzx esi, word [ebx + 8]
add esi, edi
shl edx, 0x10
add edx, ecx
movzx ecx, word [ebx + 0xa]
shl ecx, 0x10
add esi, ecx
movzx ecx, word [ebx + 2]
shl ecx, 0x10
mov edi, esi
add ecx, eax
rol edi, 4
sub ecx, esi
add esi, edx
add ecx, dword [ebp - 4]
xor edi, ecx
sub edx, edi
mov eax, edi
add edi, esi
rol eax, 6
xor eax, edx
sub esi, eax
mov ecx, eax
rol ecx, 8
add eax, edi
xor ecx, esi
sub edi, ecx
mov edx, ecx
rol edx, 0x10
add ecx, eax
xor edx, edi
mov esi, edx
sub eax, edx
ror esi, 0xd
add edx, ecx
xor esi, eax
mov dword [ebp - 4], edx
sub ecx, esi
mov edi, esi
rol edi, 4
add esi, edx
xor edi, ecx
mov ecx, dword [ebp - 8]
push 0xc
pop eax
sub ecx, eax
add ebx, eax
sub dword [ebp - 0xc], 1
mov dword [ebp - 8], ecx
jne 0x43eda6
cmp ecx, eax
ja 0x43f017
jmp dword [ecx*4 + 0x43f0a3]
movzx eax, word [ebx + 8]
movzx ecx, word [ebx + 0xa]
add edi, eax
movzx eax, word [ebx + 4]
shl ecx, 0x10
add esi, eax
movzx eax, word [ebx]
add edi, ecx
movzx ecx, word [ebx + 6]
add edx, eax
shl ecx, 0x10
add esi, ecx
movzx ecx, word [ebx + 2]
shl ecx, 0x10
add edx, ecx
jmp 0x43f014
movzx eax, byte [ebx + 0xa]
shl eax, 0x10
add edi, eax
movzx eax, word [ebx + 8]
add edi, eax
movzx ecx, word [ebx + 6]
movzx eax, word [ebx + 4]
shl ecx, 0x10
add esi, eax
add esi, ecx
movzx ecx, word [ebx + 2]
movzx eax, word [ebx]
shl ecx, 0x10
add eax, edx
add eax, ecx
mov dword [ebp - 4], eax
jmp 0x43f017
movzx eax, byte [ebx + 8]
jmp 0x43ee7c
movzx eax, byte [ebx + 6]
shl eax, 0x10
add esi, eax
movzx eax, word [ebx + 4]
add esi, eax
jmp case.0x43ee37.4
movzx eax, byte [ebx + 4]
jmp 0x43eeb6
movzx eax, byte [ebx + 2]
shl eax, 0x10
add edx, eax
movzx eax, word [ebx]
jmp 0x43f012
cmp ecx, 0xc
jbe switch.0x0043efab
lea eax, [ecx - 0xd]
xor edx, edx
push 0xc
pop ecx
div ecx
inc eax
mov dword [ebp - 0xc], eax
movzx edx, byte [ebx + 7]
movzx ecx, byte [ebx + 6]
movzx eax, byte [ebx + 5]
shl edx, 8
add edx, ecx
movzx ecx, byte [ebx + 0xb]
shl ecx, 8
shl edx, 8
add edx, eax
movzx eax, byte [ebx + 4]
add esi, eax
shl edx, 8
movzx eax, byte [ebx + 0xa]
add esi, edx
add ecx, eax
movzx edx, byte [ebx + 8]
movzx eax, byte [ebx + 9]
add edx, edi
shl ecx, 8
add ecx, eax
movzx eax, byte [ebx + 2]
shl ecx, 8
add edx, ecx
movzx ecx, byte [ebx + 3]
shl ecx, 8
mov edi, edx
add ecx, eax
rol edi, 4
movzx eax, byte [ebx + 1]
shl ecx, 8
add ecx, eax
movzx eax, byte [ebx]
shl ecx, 8
add ecx, eax
sub ecx, edx
add edx, esi
add ecx, dword [ebp - 4]
xor edi, ecx
sub esi, edi
mov eax, edi
add edi, edx
rol eax, 6
xor eax, esi
sub edx, eax
mov ecx, eax
rol ecx, 8
add eax, edi
xor ecx, edx
sub edi, ecx
mov edx, ecx
rol edx, 0x10
add ecx, eax
xor edx, edi
mov esi, edx
sub eax, edx
ror esi, 0xd
add edx, ecx
xor esi, eax
mov dword [ebp - 4], edx
sub ecx, esi
mov edi, esi
rol edi, 4
add esi, edx
xor edi, ecx
mov ecx, dword [ebp - 8]
push 0xc
pop eax
sub ecx, eax
add ebx, eax
sub dword [ebp - 0xc], 1
mov dword [ebp - 8], ecx
jne 0x43eee8
cmp ecx, eax
ja 0x43f017
jmp dword [ecx*4 + 0x43f0d7]
movzx eax, byte [ebx + 0xb]
shl eax, 0x18
add edi, eax
movzx eax, byte [ebx + 0xa]
shl eax, 0x10
add edi, eax
movzx eax, byte [ebx + 9]
shl eax, 8
add edi, eax
movzx eax, byte [ebx + 8]
add edi, eax
movzx eax, byte [ebx + 7]
shl eax, 0x18
add esi, eax
movzx eax, byte [ebx + 6]
shl eax, 0x10
add esi, eax
movzx eax, byte [ebx + 5]
shl eax, 8
add esi, eax
movzx eax, byte [ebx + 4]
add esi, eax
movzx eax, byte [ebx + 3]
shl eax, 0x18
add edx, eax
movzx eax, byte [ebx + 2]
shl eax, 0x10
add edx, eax
movzx eax, byte [ebx + 1]
shl eax, 8
add edx, eax
movzx eax, byte [ebx]
add edx, eax
mov dword [ebp - 4], edx
xor edi, esi
mov eax, esi
rol eax, 0xe
sub edi, eax
mov eax, edi
mov edx, edi
xor edx, dword [ebp - 4]
rol eax, 0xb
sub edx, eax
xor esi, edx
mov eax, edx
ror eax, 7
sub esi, eax
mov eax, esi
xor edi, esi
rol eax, 0x10
sub edi, eax
mov eax, edi
mov ecx, edi
rol eax, 4
xor ecx, edx
sub ecx, eax
mov eax, ecx
xor esi, ecx
rol eax, 0xe
sub esi, eax
mov eax, esi
xor edi, esi
ror eax, 8
sub edi, eax
mov eax, dword [ebp + 8]
mov dword [eax], edi
mov eax, dword [ebp + 0xc]
pop edi
mov dword [eax], esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret