Function at 0x4deb40
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 4], ecx
push esi
push edi
cmp ebx, 0x10
ja 0x4deb5b
mov ebx, 0x10
jmp 0x4deb71
cmp ebx, 0x20
jb 0x4deb67
mov ebx, 0x20
jmp 0x4deb71
mov eax, 0x18
cmp ebx, eax
cmovne ebx, eax
mov edi, ebx
shr edi, 2
push ebx
push dword [ebp + 8]
lea eax, [edi + 6]
mov dword [ecx + 0x38], eax
lea eax, [ecx + 0x3c]
mov esi, eax
mov dword [ebp - 8], eax
push esi
call sub.VCRUNTIME140.dll_memcpy
lea eax, [edi*4]
sub eax, ebx
push eax
lea eax, [esi + ebx]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
lea eax, [ebx + 3]
and eax, 0xfffffffc
push eax
push esi
push esi
call fcn.004c5c20
add esp, 0x24
cmp ebx, 0x10
je 0x4dee6a
cmp ebx, 0x18
je 0x4ded4d
cmp ebx, 0x20
jne 0x4def6a
mov edx, dword [esi + 0x1c]
mov ebx, 4
mov eax, dword [0x8303dc]
mov ecx, edx
shr ecx, 0x18
movzx edi, byte [eax + ecx*4]
mov eax, edx
shr eax, 8
movzx ecx, al
mov eax, dword [0x8303e4]
mov eax, dword [eax + ecx*4]
and eax, 0xff0000
xor edi, eax
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, dword [0x8303e0]
mov eax, dword [eax + ecx*4]
and eax, 0xff000000
movzx ecx, dl
xor edi, eax
mov eax, dword [0x8303d8]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esi + 8]
and eax, 0xff00
xor edi, eax
lea eax, [esi + 0x20]
xor edi, dword [esi]
xor edi, dword [0x7b8a68]
mov dword [ebp + 0xc], eax
mov dword [eax], edi
mov eax, dword [esi + 4]
xor eax, edi
xor ecx, eax
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0xc]
xor eax, ecx
mov dword [esi + 0x28], ecx
mov dword [esi + 0x2c], eax
nop dword [eax]
mov edx, dword [esi + 0x2c]
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, dword [0x8303e4]
mov edi, dword [eax + ecx*4]
mov eax, edx
shr eax, 8
and edi, 0xff0000
movzx ecx, al
mov eax, dword [0x8303d8]
mov eax, dword [eax + ecx*4]
mov ecx, edx
and eax, 0xff00
shr ecx, 0x18
xor edi, eax
mov eax, dword [0x8303e0]
mov eax, dword [eax + ecx*4]
and eax, 0xff000000
movzx ecx, dl
xor edi, eax
mov eax, dword [0x8303dc]
movzx eax, byte [eax + ecx*4]
mov ecx, dword [esi + 0x18]
xor edi, eax
xor edi, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
xor eax, edi
mov dword [esi + 0x30], edi
mov dword [esi + 0x34], eax
xor ecx, eax
mov eax, dword [esi + 0x1c]
xor eax, ecx
mov dword [esi + 0x38], ecx
mov dword [esi + 0x3c], eax
mov esi, dword [ebp + 0xc]
mov eax, dword [0x8303dc]
mov edx, dword [esi + 0x1c]
mov ecx, edx
shr ecx, 0x18
movzx edi, byte [eax + ecx*4]
mov eax, edx
shr eax, 8
movzx ecx, al
mov eax, dword [0x8303e4]
mov eax, dword [eax + ecx*4]
and eax, 0xff0000
xor edi, eax
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, dword [0x8303e0]
mov eax, dword [eax + ecx*4]
and eax, 0xff000000
movzx ecx, dl
xor edi, eax
mov eax, dword [0x8303d8]
mov eax, dword [eax + ecx*4]
and eax, 0xff00
xor edi, eax
lea eax, [esi + 0x20]
xor edi, dword [ebx + 0x7b8a68]
add ebx, 4
xor edi, dword [esi]
mov dword [eax], edi
mov dword [ebp + 0xc], eax
mov eax, dword [esi + 4]
xor eax, edi
mov dword [esi + 0x24], eax
mov ecx, dword [esi + 8]
xor ecx, eax
mov dword [esi + 0x28], ecx
mov eax, dword [esi + 0xc]
xor eax, ecx
mov dword [esi + 0x2c], eax
cmp ebx, 0x1c
jne 0x4dec50
jmp 0x4def6a
mov edx, dword [esi + 0x14]
mov ebx, 4
mov eax, dword [0x8303dc]
mov ecx, edx
shr ecx, 0x18
movzx edi, byte [eax + ecx*4]
mov eax, edx
shr eax, 8
movzx ecx, al
mov eax, dword [0x8303e4]
mov eax, dword [eax + ecx*4]
and eax, 0xff0000
xor edi, eax
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, dword [0x8303e0]
mov eax, dword [eax + ecx*4]
and eax, 0xff000000
movzx ecx, dl
xor edi, eax
lea edx, [esi + 0x18]
mov eax, dword [0x8303d8]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esi + 8]
and eax, 0xff00
xor edi, eax
mov eax, dword [esi + 4]
xor edi, dword [esi]
xor edi, dword [0x7b8a68]
xor eax, edi
mov dword [edx], edi
xor ecx, eax
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0xc]
xor eax, ecx
mov dword [esi + 0x20], ecx
mov dword [esi + 0x24], eax
nop dword [eax + eax]
mov ecx, dword [esi + 0x10]
xor ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x14]
xor eax, ecx
mov dword [esi + 0x28], ecx
mov dword [esi + 0x2c], eax
lea esi, [edx]
mov edx, dword [esi + 0x14]
mov ecx, edx
mov eax, dword [0x8303dc]
shr ecx, 0x18
movzx edi, byte [eax + ecx*4]
mov eax, edx
shr eax, 8
movzx ecx, al
mov eax, dword [0x8303e4]
mov eax, dword [eax + ecx*4]
and eax, 0xff0000
xor edi, eax
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, dword [0x8303e0]
mov eax, dword [eax + ecx*4]
and eax, 0xff000000
movzx ecx, dl
xor edi, eax
lea edx, [esi + 0x18]
mov eax, dword [0x8303d8]
mov eax, dword [eax + ecx*4]
and eax, 0xff00
xor edi, eax
xor edi, dword [ebx + 0x7b8a68]
add ebx, 4
xor edi, dword [esi]
mov dword [edx], edi
mov eax, dword [esi + 4]
xor eax, edi
mov dword [esi + 0x1c], eax
mov ecx, dword [esi + 8]
xor ecx, eax
mov dword [esi + 0x20], ecx
mov eax, dword [esi + 0xc]
xor eax, ecx
mov dword [esi + 0x24], eax
cmp ebx, 0x20
jne 0x4dedd0
jmp 0x4def6a
mov ebx, dword [esi + 0xc]
lea edi, [esi + 0x10]
mov eax, dword [0x8303dc]
mov ecx, ebx
shr ecx, 0x18
movzx edx, byte [eax + ecx*4]
mov eax, ebx
shr eax, 8
movzx ecx, al
mov eax, dword [0x8303e4]
mov eax, dword [eax + ecx*4]
and eax, 0xff0000
xor edx, eax
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, dword [0x8303e0]
mov eax, dword [eax + ecx*4]
and eax, 0xff000000
movzx ecx, bl
xor edx, eax
mov eax, dword [0x8303d8]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esi + 8]
and eax, 0xff00
xor edx, eax
mov eax, dword [esi + 4]
xor edx, dword [esi]
xor edx, dword [0x7b8a68]
xor eax, edx
mov dword [edi], edx
xor ecx, eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], ecx
xor ecx, ebx
mov dword [esi + 0x1c], ecx
mov ebx, 4
mov edx, dword [edi + 0xc]
mov ecx, edx
mov eax, dword [0x8303dc]
shr ecx, 0x18
movzx esi, byte [eax + ecx*4]
mov eax, edx
shr eax, 8
movzx ecx, al
mov eax, dword [0x8303e4]
mov eax, dword [eax + ecx*4]
and eax, 0xff0000
xor esi, eax
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, dword [0x8303e0]
mov eax, dword [eax + ecx*4]
and eax, 0xff000000
movzx ecx, dl
xor esi, eax
mov eax, dword [0x8303d8]
mov eax, dword [eax + ecx*4]
and eax, 0xff00
xor esi, eax
lea eax, [edi + 0x10]
xor esi, dword [ebx + 0x7b8a68]
add ebx, 4
xor esi, dword [edi]
mov dword [eax], esi
mov dword [ebp + 0xc], eax
mov eax, dword [edi + 4]
xor eax, esi
mov dword [edi + 0x14], eax
mov ecx, dword [edi + 8]
xor ecx, eax
mov dword [edi + 0x18], ecx
mov eax, dword [edi + 0xc]
xor eax, ecx
mov dword [edi + 0x1c], eax
mov edi, dword [ebp + 0xc]
cmp ebx, 0x28
jne 0x4deee2
mov eax, dword [ebp - 4]
cmp dword [eax + 0x30], 1
jne 0x4df150
mov edi, dword [eax + 0x38]
xor ebx, ebx
shl edi, 2
test edi, edi
je 0x4defd3
mov esi, dword [ebp - 8]
lea edx, [esi + 8]
add esi, 8
lea edx, [edx + edi*4]
nop
mov ecx, dword [esi - 8]
lea esi, [esi + 0x10]
mov eax, dword [edx - 8]
lea edx, [edx - 0x10]
mov dword [esi - 0x18], eax
add ebx, 4
mov eax, dword [edx + 0xc]
sub edi, 4
mov dword [edx + 8], ecx
mov ecx, dword [esi - 0x14]
mov dword [esi - 0x14], eax
mov eax, dword [edx + 0x10]
mov dword [edx + 0xc], ecx
mov ecx, dword [esi - 0x10]
mov dword [esi - 0x10], eax
mov eax, dword [edx + 0x14]
mov dword [edx + 0x10], ecx
mov ecx, dword [esi - 0xc]
mov dword [esi - 0xc], eax
mov dword [edx + 0x14], ecx
cmp ebx, edi
jb 0x4def90
mov eax, dword [ebp - 4]
cmp dword [eax + 0x38], 1
mov dword [ebp + 0xc], 1
jbe 0x4df150
mov ebx, dword [ebp - 8]
nop word [eax + eax]
mov edi, dword [ebx + 0x10]
lea ebx, [ebx + 0x10]
mov esi, dword [0x8303dc]
mov eax, edi
shr eax, 8
movzx eax, al
movzx edx, byte [esi + eax*4]
mov eax, edi
shr eax, 0x10
movzx eax, al
shr edi, 0x18
movzx ecx, byte [esi + eax*4]
mov eax, dword [0x8303f0]
mov edx, dword [eax + edx*4]
mov eax, dword [0x8303ec]
xor edx, dword [eax + ecx*4]
movzx ecx, byte [esi + edi*4]
mov eax, dword [0x8303e8]
mov edi, dword [ebx + 4]
xor edx, dword [eax + ecx*4]
movzx eax, byte [ebx]
movzx ecx, byte [esi + eax*4]
mov eax, dword [0x8303f4]
xor edx, dword [eax + ecx*4]
mov eax, edi
mov dword [ebx], edx
mov esi, dword [0x8303dc]
shr eax, 8
movzx eax, al
movzx edx, byte [esi + eax*4]
mov eax, edi
shr eax, 0x10
movzx eax, al
shr edi, 0x18
movzx ecx, byte [esi + eax*4]
mov eax, dword [0x8303f0]
mov edx, dword [eax + edx*4]
mov eax, dword [0x8303ec]
xor edx, dword [eax + ecx*4]
movzx ecx, byte [esi + edi*4]
mov eax, dword [0x8303e8]
mov edi, dword [ebx + 8]
xor edx, dword [eax + ecx*4]
movzx eax, byte [ebx + 4]
movzx ecx, byte [esi + eax*4]
mov eax, dword [0x8303f4]
xor edx, dword [eax + ecx*4]
mov eax, edi
mov dword [ebx + 4], edx
mov esi, dword [0x8303dc]
shr eax, 8
movzx eax, al
movzx edx, byte [esi + eax*4]
mov eax, edi
shr eax, 0x10
movzx eax, al
shr edi, 0x18
movzx ecx, byte [esi + eax*4]
mov eax, dword [0x8303f0]
mov edx, dword [eax + edx*4]
mov eax, dword [0x8303ec]
xor edx, dword [eax + ecx*4]
movzx ecx, byte [esi + edi*4]
mov eax, dword [0x8303e8]
mov edi, dword [ebx + 0xc]
xor edx, dword [eax + ecx*4]
movzx eax, byte [ebx + 8]
movzx ecx, byte [esi + eax*4]
mov eax, dword [0x8303f4]
xor edx, dword [eax + ecx*4]
mov eax, edi
shr eax, 8
mov dword [ebx + 8], edx
mov esi, dword [0x8303dc]
movzx eax, al
movzx edx, byte [esi + eax*4]
mov eax, edi
shr eax, 0x10
movzx eax, al
movzx ecx, byte [esi + eax*4]
mov eax, dword [0x8303f0]
mov edx, dword [eax + edx*4]
mov eax, dword [0x8303ec]
shr edi, 0x18
xor edx, dword [eax + ecx*4]
movzx ecx, byte [esi + edi*4]
mov eax, dword [0x8303e8]
xor edx, dword [eax + ecx*4]
movzx eax, byte [ebx + 0xc]
movzx ecx, byte [esi + eax*4]
mov eax, dword [0x8303f4]
xor edx, dword [eax + ecx*4]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 4]
inc ecx
mov dword [ebx + 0xc], edx
mov dword [ebp + 0xc], ecx
cmp ecx, dword [eax + 0x38]
jb 0x4deff0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc