Function at 0x4df6750
Capabilities:
Encode data using xor

Disassembly:
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov eax, dword [edi + 0x14]
xor ebp, ebp
cmp eax, ebp
je 0x4df6866
cmp byte [edi + 0x2c], 0
je 0x4df6843
mov eax, dword [edi + 4]
push eax
call fcn.04df7695
mov ecx, dword [edi + 0x14]
mov edx, dword [edi + 4]
push ecx
push edx
mov ebx, eax
push 1
push ebx
nop
call 0x7c225db3
add esp, 0x14
cmp eax, 0x200
mov dword [edi + 8], eax
ja 0x4df67d4
mov eax, dword [edi + 4]
mov ecx, dword [edi]
push eax
push ebp
push ecx
call fcn.04df7dbc
add esp, 0xc
xor ecx, ecx
cmp dword [edi + 4], ebp
jbe 0x4df682c
xor edx, edx
mov eax, ecx
div dword [edi + 4]
mov eax, ecx
and eax, 0xf
add ecx, 1
mov dl, byte [edx + ebx]
xor dl, byte [eax + edi + 0x1c]
mov eax, dword [edi]
mov byte [ecx + eax - 1], dl
cmp ecx, dword [edi + 4]
jb 0x4df67b1
jmp 0x4df682c
xor esi, esi
test esi, esi
je 0x4df67e7
mov esi, dword [edi + 4]
sub esi, ebp
cmp esi, 0x200
jle 0x4df67ec
mov esi, 0x200
mov ecx, dword [edi]
push esi
add ecx, ebp
push 0
push ecx
call fcn.04df7dbc
add esp, 0xc
xor ecx, ecx
test esi, esi
jle 0x4df6823
mov eax, ecx
cdq
idiv esi
mov eax, ecx
and eax, 0xf
add edx, ebp
mov dl, byte [edx + ebx]
xor dl, byte [eax + edi + 0x1c]
mov eax, dword [edi]
add eax, ecx
add ecx, 1
cmp ecx, esi
mov byte [eax + ebp], dl
jl 0x4df6802
add ebp, esi
cmp ebp, dword [edi + 4]
jl 0x4df67d6
xor ebp, ebp
push ebx
mov dword [edi + 0xc], ebp
call fcn.04df810c
add esp, 4
cmp dword [edi + 8], ebp
pop edi
pop esi
pop ebp
seta al
pop ebx
ret
mov ecx, dword [edi + 4]
mov edx, dword [edi]
push eax
push ecx
push 1
push edx
nop
call 0x7c225db3
add esp, 0x10
mov dword [edi + 8], eax
mov dword [edi + 0xc], ebp
pop edi
pop esi
cmp eax, ebp
pop ebp
seta al
pop ebx
ret
mov esi, dword [edi + 0x18]
cmp esi, ebp
je 0x4df696d
cmp byte [edi + 0x2c], 0
mov eax, dword [edi + 4]
je 0x4df6952
push eax
call fcn.04df7695
mov esi, dword [edi + 0x18]
mov ebx, eax
mov eax, dword [edi + 4]
push ebx
call fcn.04ca09e0
add esp, 8
cmp eax, 0x200
mov dword [edi + 8], eax
ja 0x4df68e3
mov ecx, dword [edi + 4]
mov edx, dword [edi]
push ecx
push ebp
push edx
call fcn.04df7dbc
add esp, 0xc
xor ecx, ecx
cmp dword [edi + 4], ebp
jbe 0x4df693b
lea ebx, [ebx]
xor edx, edx
mov eax, ecx
div dword [edi + 4]
mov eax, ecx
and eax, 0xf
add ecx, 1
mov dl, byte [edx + ebx]
xor dl, byte [eax + edi + 0x1c]
mov eax, dword [edi]
mov byte [ecx + eax - 1], dl
cmp ecx, dword [edi + 4]
jb 0x4df68c0
jmp 0x4df693b
xor esi, esi
test esi, esi
je 0x4df68f6
mov esi, dword [edi + 4]
sub esi, ebp
cmp esi, 0x200
jle 0x4df68fb
mov esi, 0x200
mov ecx, dword [edi]
push esi
add ecx, ebp
push 0
push ecx
call fcn.04df7dbc
add esp, 0xc
xor ecx, ecx
test esi, esi
jle 0x4df6932
mov eax, ecx
cdq
idiv esi
mov eax, ecx
and eax, 0xf
add edx, ebp
mov dl, byte [edx + ebx]
xor dl, byte [eax + edi + 0x1c]
mov eax, dword [edi]
add eax, ecx
add ecx, 1
cmp ecx, esi
mov byte [eax + ebp], dl
jl 0x4df6911
add ebp, esi
cmp ebp, dword [edi + 4]
jl 0x4df68e5
xor ebp, ebp
push ebx
mov dword [edi + 0xc], ebp
call fcn.04df810c
add esp, 4
cmp dword [edi + 8], ebp
pop edi
pop esi
pop ebp
seta al
pop ebx
ret
mov ecx, dword [edi]
push ecx
call fcn.04ca09e0
add esp, 4
mov dword [edi + 8], eax
mov dword [edi + 0xc], ebp
pop edi
pop esi
cmp eax, ebp
pop ebp
seta al
pop ebx
ret
pop edi
pop esi
pop ebp
xor al, al
pop ebx
ret