Function at 0x43ffe0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
push ebx
mov ebx, ecx
mov eax, edx
mov dword [ebp - 8], eax
mov dword [ebp - 0x24], ebx
push esi
mov esi, dword [ebx + 8]
mov dword [ebp - 0x10], esi
push edi
test eax, eax
jne 0x44008c
mov ecx, dword [ebp + 0xc]
mov ebx, 1
mov edx, dword [ecx]
mov eax, edx
and eax, 0xff00
add eax, 0xff
xor eax, edx
and edx, 0xff00ff00
and eax, 0xff00ff
sub edx, 0xffff01
xor eax, edx
mov dword [ecx], eax
cmp esi, ebx
jle 0x44007d
mov esi, dword [ecx + ebx*4]
mov edx, esi
mov edi, dword [ecx + ebx*4 - 4]
and edx, 0xff00
movzx eax, di
mov ecx, edi
add edx, eax
and ecx, 0xffff00ff
mov eax, esi
and edi, 0xff00ffff
and eax, 0xffff00ff
and esi, 0xff00ff00
add ecx, eax
add esi, edi
xor edx, ecx
mov ecx, dword [ebp + 0xc]
and edx, 0xff00ff
xor edx, esi
mov esi, dword [ebp - 0x10]
mov dword [ecx + ebx*4], edx
inc ebx
cmp ebx, esi
jl 0x440032
mov ebx, dword [ebp - 0x24]
lea edi, [ecx + esi*4]
mov dword [ebp - 8], 1
jmp 0x44008f
mov edi, dword [ebp + 0xc]
mov ecx, dword [ebx + 4]
mov eax, 1
mov edx, eax
mov dword [ebp - 4], edi
shl edx, cl
mov dword [ebp - 0x18], edx
dec edx
mov dword [ebp - 0x30], edx
not edx
shl eax, cl
and edx, esi
dec eax
mov dword [ebp - 0x24], edx
mov edx, dword [ebp - 8]
add eax, esi
shr eax, cl
sar edx, cl
imul edx, eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebx + 0x10]
lea ecx, [eax + edx*4]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 8], eax
jge 0x44029c
lea edx, [esi*4]
mov dword [ebp - 0x2c], edx
lea ecx, [ecx]
mov eax, edi
mov dword [ebp - 0xc], ecx
mov edi, dword [edi]
sub eax, edx
mov edx, edi
mov ecx, edi
and edx, 0xff00
and ecx, 0xffff00ff
and edi, 0xff00ff00
mov esi, 1
mov ebx, dword [eax]
movzx eax, bx
add edx, eax
mov eax, ebx
and eax, 0xffff00ff
and ebx, 0xff00ffff
add ecx, eax
add edi, ebx
xor edx, ecx
and edx, 0xff00ff
xor edx, edi
mov edi, dword [ebp - 4]
mov dword [edi], edx
cmp dword [ebp - 0x24], esi
jle 0x4401dd
mov ecx, dword [ebp - 0xc]
mov edx, esi
lea esp, [esp]
mov eax, dword [ecx]
add ecx, 4
shr eax, 8
and eax, 0xf
mov dword [ebp - 0xc], ecx
mov ebx, dword [eax*4 + 0x5d2280]
mov dword [ebp - 0x28], ebx
cmp edx, dword [ebp - 0x18]
jge 0x4401d2
mov eax, esi
sub eax, dword [ebp - 0x10]
lea ecx, [edi + eax*4]
mov eax, dword [ebp - 0x18]
sub eax, edx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x20], eax
push ecx
push dword [edi + esi*4 - 4]
call ebx
mov ebx, eax
add esp, 8
mov eax, dword [edi + esi*4]
mov edi, eax
and edi, 0xff00
movzx ecx, bx
add edi, ecx
mov edx, eax
mov ecx, ebx
and edx, 0xffff00ff
and ecx, 0xffff00ff
and eax, 0xff00ff00
add edx, ecx
and ebx, 0xff00ffff
mov ecx, dword [ebp - 0x1c]
xor edi, edx
add eax, ebx
and edi, 0xff00ff
mov ebx, dword [ebp - 0x28]
xor edi, eax
mov eax, dword [ebp - 4]
add ecx, 4
mov dword [ebp - 0x1c], ecx
mov dword [eax + esi*4], edi
inc esi
dec dword [ebp - 0x20]
mov edi, eax
jne 0x440170
mov ecx, dword [ebp - 0xc]
xor edx, edx
cmp esi, dword [ebp - 0x24]
jl 0x440140
mov ecx, dword [ebp - 0x10]
cmp esi, ecx
jge 0x440270
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
shr eax, 8
and eax, 0xf
mov edx, dword [eax*4 + 0x5d2280]
mov eax, esi
sub eax, ecx
mov dword [ebp - 0x28], edx
lea eax, [edi + eax*4]
mov dword [ebp - 0x20], eax
jmp 0x440213
mov edi, dword [ebp - 4]
push eax
push dword [edi + esi*4 - 4]
call edx
mov ebx, eax
add esp, 8
mov eax, dword [edi + esi*4]
mov edi, eax
and edi, 0xff00
movzx ecx, bx
add edi, ecx
mov edx, eax
mov ecx, ebx
and edx, 0xffff00ff
and ecx, 0xffff00ff
and eax, 0xff00ff00
add edx, ecx
and ebx, 0xff00ffff
xor edi, edx
add eax, ebx
mov edx, dword [ebp - 0x28]
and edi, 0xff00ff
xor edi, eax
mov eax, dword [ebp - 4]
mov dword [eax + esi*4], edi
inc esi
mov eax, dword [ebp - 0x20]
add eax, 4
mov dword [ebp - 0x20], eax
cmp esi, dword [ebp - 0x10]
jl 0x440210
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 4]
inc eax
mov edx, dword [ebp - 0x2c]
add edi, edx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 4], edi
mov dword [ebp - 8], eax
test dword [ebp - 0x30], eax
jne 0x440293
mov ebx, dword [ebp - 0x34]
lea ecx, [ecx + ebx*4]
mov dword [ebp - 0x14], ecx
cmp eax, dword [ebp + 8]
jl 0x4400e0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret