Function at 0x42fd34
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
sub esp, 0x30
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
mov edx, dword [edi + 3]
mov dword [ebp - 0xc], esi
mov ecx, dword [ebp + 0x10]
lea eax, [esi + eax - 1]
mov dword [ebp - 0x10], eax
movsx eax, dl
shr ecx, 1
mov dword [ebp + 0x10], ecx
sub eax, 9
cmp eax, 0x17
ja case.0x42fd65.16
jmp dword [eax*4 + 0x51b214]
mov ecx, 0xe82
mov dword [esp + 4], ecx
mov dword [esp], str.c:_usr_work_edrive_w32texsrc_clisp249_clisp_2.49_src_array.d
call fcn.00420a64
test ecx, ecx
je 0x42fdc0
mov eax, dword [ebp - 0x10]
lea esi, [edi + esi*4 + 7]
lea ecx, [edi + eax*4 + 7]
lea esi, [esi]
lea edi, [edi]
mov edx, dword [esi]
mov eax, dword [ecx]
mov dword [esi], eax
add esi, 4
mov dword [ecx], edx
sub ecx, 4
dec dword [ebp + 0x10]
jne 0x42fda0
lea esi, [esi]
lea edi, [edi]
add esp, 0x30
pop esi
pop edi
pop ebp
ret
test ecx, ecx
je 0x42fdc0
mov eax, dword [ebp - 0x10]
shr esi, 3
lea esi, [esi + edi + 7]
mov dword [ebp - 0x14], esi
shr eax, 3
lea edi, [eax + edi + 7]
mov dword [ebp - 0x18], edi
lea esi, [esi]
lea edi, [edi]
mov edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x14]
not edi
movzx edx, byte [ecx]
and edi, 7
mov ecx, edi
mov dword [ebp - 0x2c], edi
mov edi, dword [ebp - 0x18]
movzx esi, dl
sar esi, cl
and esi, 1
movzx eax, byte [edi]
mov edi, dword [ebp - 0x10]
not edi
and edi, 7
mov ecx, edi
sar eax, cl
movzx ecx, byte [ebp - 0x2c]
and eax, 1
shl eax, cl
xor al, dl
mov byte [ebp - 0x2d], al
mov eax, 1
shl eax, cl
and byte [ebp - 0x2d], al
mov ecx, dword [ebp - 0x14]
xor dl, byte [ebp - 0x2d]
mov byte [ecx], dl
mov eax, dword [ebp - 0x18]
mov ecx, edi
shl esi, cl
movzx edx, byte [eax]
mov al, dl
xor eax, esi
mov esi, 1
shl esi, cl
mov ecx, dword [ebp - 0x18]
and eax, esi
xor dl, al
xor eax, eax
mov byte [ecx], dl
inc dword [ebp - 0xc]
test byte [ebp - 0xc], 7
sete al
add dword [ebp - 0x14], eax
xor eax, eax
test byte [ebp - 0x10], 7
sete al
sub ecx, eax
dec dword [ebp - 0x10]
dec dword [ebp + 0x10]
mov dword [ebp - 0x18], ecx
jne 0x42fdf0
jmp 0x42fdc0
test ecx, ecx
je 0x42fdc0
mov eax, dword [ebp - 0x10]
shr esi, 2
lea esi, [esi + edi + 7]
mov dword [ebp - 0x1c], esi
shr eax, 2
lea edi, [eax + edi + 7]
mov dword [ebp - 0x20], edi
nop
lea esi, [esi]
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
movzx edx, byte [edi]
not ecx
mov edi, dword [ebp - 0x10]
and ecx, 3
add ecx, ecx
movzx esi, dl
mov dword [ebp - 0x2c], ecx
sar esi, cl
mov ecx, dword [ebp - 0x20]
not edi
and esi, 3
and edi, 3
movzx eax, byte [ecx]
add edi, edi
mov ecx, edi
sar eax, cl
and eax, 3
movzx ecx, byte [ebp - 0x2c]
shl eax, cl
xor al, dl
mov byte [ebp - 0x2d], al
mov eax, 3
shl eax, cl
and byte [ebp - 0x2d], al
mov ecx, dword [ebp - 0x1c]
xor dl, byte [ebp - 0x2d]
mov byte [ecx], dl
mov eax, dword [ebp - 0x20]
mov ecx, edi
shl esi, cl
movzx edx, byte [eax]
mov al, dl
xor eax, esi
mov esi, 3
shl esi, cl
mov ecx, dword [ebp - 0x20]
and eax, esi
xor dl, al
xor eax, eax
mov byte [ecx], dl
inc dword [ebp - 0xc]
test byte [ebp - 0xc], 3
sete al
add dword [ebp - 0x1c], eax
xor eax, eax
test byte [ebp - 0x10], 3
sete al
sub ecx, eax
dec dword [ebp - 0x10]
dec dword [ebp + 0x10]
mov dword [ebp - 0x20], ecx
jne 0x42feb0
jmp 0x42fdc0
test ecx, ecx
je 0x42fdc0
mov eax, dword [ebp - 0x10]
shr esi, 1
lea esi, [esi + edi + 7]
mov dword [ebp - 0x24], esi
shr eax, 1
lea edi, [eax + edi + 7]
mov dword [ebp - 0x28], edi
nop
lea esi, [esi]
mov edi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0xc]
movzx edx, byte [edi]
not ecx
mov edi, dword [ebp - 0x10]
and ecx, 1
shl ecx, 2
movzx esi, dl
mov dword [ebp - 0x2c], ecx
sar esi, cl
mov ecx, dword [ebp - 0x28]
not edi
and esi, 0xf
and edi, 1
movzx eax, byte [ecx]
shl edi, 2
mov ecx, edi
sar eax, cl
and eax, 0xf
movzx ecx, byte [ebp - 0x2c]
shl eax, cl
xor al, dl
mov byte [ebp - 0x2d], al
mov eax, 0xf
shl eax, cl
and byte [ebp - 0x2d], al
mov ecx, dword [ebp - 0x24]
xor dl, byte [ebp - 0x2d]
mov byte [ecx], dl
mov eax, dword [ebp - 0x28]
mov ecx, edi
shl esi, cl
movzx edx, byte [eax]
mov al, dl
xor eax, esi
mov esi, 0xf
shl esi, cl
mov ecx, dword [ebp - 0x28]
and eax, esi
xor dl, al
xor eax, eax
mov byte [ecx], dl
inc dword [ebp - 0xc]
test byte [ebp - 0xc], 1
sete al
add dword [ebp - 0x24], eax
xor eax, eax
test byte [ebp - 0x10], 1
sete al
sub ecx, eax
dec dword [ebp - 0x10]
dec dword [ebp + 0x10]
mov dword [ebp - 0x28], ecx
jne 0x42ff70
jmp 0x42fdc0
test ecx, ecx
je 0x42fdc0
mov eax, dword [ebp - 0x10]
lea esi, [edi + esi + 7]
lea ecx, [edi + eax + 7]
movzx edx, byte [esi]
movzx eax, byte [ecx]
mov byte [esi], al
inc esi
mov byte [ecx], dl
dec ecx
dec dword [ebp + 0x10]
jne 0x430020
jmp 0x42fdc0
test ecx, ecx
je 0x42fdc0
mov eax, dword [ebp - 0x10]
lea esi, [edi + esi*2 + 7]
lea ecx, [edi + eax*2 + 7]
lea esi, [esi]
movzx edx, word [esi]
movzx eax, word [ecx]
mov word [esi], ax
add esi, 2
mov word [ecx], dx
sub ecx, 2
dec dword [ebp + 0x10]
jne 0x430050
jmp 0x42fdc0
test ecx, ecx
je 0x42fdc0
mov eax, dword [ebp - 0x10]
lea esi, [edi + esi*4 + 7]
lea ecx, [edi + eax*4 + 7]
nop
mov edx, dword [esi]
mov eax, dword [ecx]
mov dword [esi], eax
add esi, 4
mov dword [ecx], edx
sub ecx, 4
dec dword [ebp + 0x10]
jne 0x430080
jmp 0x42fdc0
movsx eax, dl
sub eax, 0x11
test al, 1
jne 0x43013f
test ecx, ecx
je 0x42fdc0
cmp dl, 0x20
je 0x430147
sar eax, 1
jne 0x4300eb
mov eax, dword [ebp - 0x10]
lea esi, [edi + esi + 7]
lea ecx, [edi + eax + 7]
lea esi, [esi]
lea edi, [edi]
movzx edx, byte [esi]
movzx eax, byte [ecx]
mov byte [esi], al
inc esi
mov byte [ecx], dl
dec ecx
dec dword [ebp + 0x10]
jne 0x4300d0
jmp 0x42fdc0
call fcn.0042a998
cmp eax, 1
je 0x430118
cmp eax, 2
jne 0x43014c
mov eax, dword [ebp - 0x10]
lea esi, [edi + esi*4 + 7]
lea ecx, [edi + eax*4 + 7]
mov edx, dword [esi]
mov eax, dword [ecx]
mov dword [esi], eax
add esi, 4
mov dword [ecx], edx
sub ecx, 4
dec dword [ebp + 0x10]
jne 0x430100
jmp 0x42fdc0
mov eax, dword [ebp - 0x10]
lea esi, [edi + esi*2 + 7]
lea ecx, [edi + eax*2 + 7]
movzx edx, word [esi]
movzx eax, word [ecx]
mov word [esi], ax
add esi, 2
mov word [ecx], dx
sub ecx, 2
dec dword [ebp + 0x10]
jne 0x430123
jmp 0x42fdc0
mov dword [esp], edi
call fcn.0043aa6c
call fcn.0042a3f0
mov esi, 0xe7d
mov dword [esp + 4], esi
jmp 0x42fd79