Function at 0x4ddb40
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2c
call fcn.00628570
mov dword [ebp - 8], edx
mov dword [ebp - 0x1c], ecx
push esi
test edx, edx
jle 0x4ddedd
mov esi, dword [ebp + 0xc]
test esi, esi
jle 0x4ddedd
push edi
mov edi, dword [ebp + 0x10]
cmp esi, edi
jg 0x4ddebb
cmp edi, 0xb
jl 0x4ddebb
push ebx
push edi
mov dword [0x70e32c], 0
call fcn.0063274d
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x4ddbb7
push 0x50
push 0x6e70c0
push 0x41
lea edx, [eax + 0x72]
lea ecx, [eax + 4]
call fcn.004818c0
add esp, 0xc
or eax, 0xffffffff
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 8]
add edx, esi
add ebx, edi
nop
mov eax, esi
mov dword [ebp - 0x18], ebx
not eax
lea ecx, [esi - 1]
shr eax, 0x1f
dec ebx
shr ecx, 0x1f
and ecx, eax
dec ecx
mov eax, ecx
and eax, 1
sub edx, eax
sub esi, eax
mov al, byte [edx]
and al, cl
mov byte [ebx], al
sub edi, 1
jne 0x4ddbc0
movzx ecx, al
or edx, 0xffffffff
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 4], 0
movzx edi, byte [eax]
lea eax, [ecx - 1]
xor edi, 2
shr eax, 0x1f
neg eax
lea edi, [edi - 1]
shr edi, 0x1f
neg edi
and edi, eax
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x14], edi
not edi
mov dword [ebp - 0x18], edi
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp + 0x10]
and eax, 0x6b
mov dword [ebp - 0x28], eax
xor esi, esi
mov eax, 2
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], eax
nop
movzx ecx, byte [ebx + eax]
lea ecx, [ecx - 1]
shr ecx, 0x1f
neg ecx
or dword [ebp - 4], ecx
and edx, ecx
mov dword [ebp - 0x24], edx
not edx
mov dword [ebp - 0x20], edx
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x20]
and eax, esi
mov esi, dword [ebp - 0x24]
and esi, edx
movzx ecx, byte [ebx + edx]
or esi, eax
mov edx, dword [ebp - 4]
xor ecx, 3
not edx
mov eax, edx
and eax, 1
add eax, dword [ebp - 0x10]
lea ecx, [ecx - 1]
shr ecx, 0x1f
neg ecx
or ecx, dword [ebp - 4]
and ecx, eax
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], eax
cmp eax, edi
jl 0x4ddc40
mov edi, dword [ebp - 0x14]
lea eax, [esi - 0xa]
or eax, esi
mov dword [ebp - 0xc], esi
xor eax, esi
mov esi, dword [ebp - 0x10]
shr eax, 0x1f
dec eax
and edi, eax
mov eax, edi
mov ecx, edi
or eax, dword [ebp - 0x18]
not ecx
mov dword [ebp - 0x24], eax
not eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x24]
and eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x20]
and edx, 0x71
or edx, eax
lea eax, [esi - 8]
or eax, esi
xor eax, esi
shr eax, 0x1f
neg eax
and edi, eax
mov eax, edi
or eax, ecx
mov ecx, dword [ebp + 0x10]
sub ecx, dword [ebp - 0xc]
mov dword [ebp - 0x28], eax
dec ecx
not eax
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x28]
mov esi, dword [ebp - 0x24]
and eax, edx
and esi, 0x73
mov edx, edi
or esi, eax
not edx
mov eax, dword [ebp - 4]
sub ecx, eax
xor ecx, eax
xor eax, dword [ebp - 8]
or ecx, eax
xor ecx, dword [ebp - 8]
shr ecx, 0x1f
dec ecx
and edi, ecx
mov eax, edi
mov dword [ebp - 0x14], edi
or eax, edx
mov dword [ebp - 0x28], eax
not eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
and eax, esi
mov esi, dword [ebp - 8]
and ecx, 0x6d
or ecx, eax
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp + 0x10]
add ecx, 0xfffffff5
mov edx, ecx
mov eax, ecx
sub edx, esi
xor eax, esi
xor edx, esi
or edx, eax
xor edx, ecx
shr edx, 0x1f
neg edx
mov dword [ebp - 0x28], edx
not edx
mov dword [ebp - 0x24], edx
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x28]
lea ecx, [edx - 0xb]
and eax, ecx
mov ecx, dword [ebp - 0x24]
and ecx, esi
mov esi, 1
or ecx, eax
lea eax, [edx - 0xb]
mov dword [ebp - 0x18], ecx
cmp eax, esi
jle 0x4dddf4
mov eax, edx
sub eax, dword [ebp - 4]
add eax, 0xfffffff5
mov dword [ebp - 0x10], eax
and eax, esi
mov edi, edx
sub edi, esi
lea ecx, [eax - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
and ecx, eax
dec ecx
cmp edi, 0xb
jle 0x4ddde2
movzx ecx, cl
add edi, 0xfffffff5
mov eax, ecx
mov dword [ebp - 0x20], ecx
not eax
mov dword [ebp - 0x28], eax
lea eax, [ebx + 0xb]
mov ebx, dword [ebp - 0x28]
mov dword [ebp - 0x28], ecx
lea eax, [eax + 1]
mov dword [ebp - 0x24], ebx
mov ecx, dword [ebp - 0x28]
mov dl, byte [eax + esi - 1]
and dl, cl
mov ecx, dword [ebp - 0x24]
and cl, byte [eax - 1]
or cl, dl
mov byte [eax - 1], cl
mov ecx, dword [ebp - 0x20]
sub edi, 1
jne 0x4dddb7
mov ebx, dword [ebp - 0x2c]
mov edx, dword [ebp + 0x10]
lea eax, [edx - 0xb]
add esi, esi
cmp esi, eax
mov eax, dword [ebp - 0x10]
jl 0x4ddd88
mov edi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 4]
xor edx, edx
test ecx, ecx
jle 0x4dde40
nop dword [eax]
mov ecx, edx
mov eax, edx
sub ecx, esi
xor eax, esi
xor ecx, esi
mov esi, dword [ebp - 0x1c]
or ecx, eax
shr ecx, 0x1f
neg ecx
and ecx, edi
movzx eax, cl
mov dword [ebp - 0x2c], eax
not eax
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x2c]
mov cl, byte [ebx + edx + 0xb]
and cl, al
mov eax, dword [ebp - 0x28]
and al, byte [edx + esi]
or al, cl
mov ecx, esi
mov esi, dword [ebp - 4]
mov byte [edx + ecx], al
inc edx
cmp edx, dword [ebp - 0x18]
jl 0x4dde00
push dword [ebp + 0x10]
push ebx
call fcn.00401320
push ebx
call fcn.0062f047
push 0xac
mov edx, 0x72
push 0x6e70c0
push dword [ebp - 0xc]
lea ecx, [edx - 0x6e]
call fcn.004818c0
add esp, 0x18
mov ebx, edi
and ebx, 1
call fcn.00481fd0
mov dword [ebp - 0x24], eax
test eax, eax
je 0x4ddea2
mov edx, dword [eax + 0x180]
lea ecx, [ebx - 1]
shr ecx, 0x1f
neg ecx
mov dword [ebp - 0x2c], ecx
not ecx
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
and eax, 2
or dword [ecx + edx*4], eax
mov dword [ebp - 0x2c], edi
not edi
mov dword [ebp - 0x28], edi
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
and ecx, esi
pop ebx
pop edi
or eax, ecx
pop esi
mov esp, ebp
pop ebp
ret
mov edx, 0x72
push 0x4a
push 0x6e70c0
push 0x6f
lea ecx, [edx - 0x6e]
call fcn.004818c0
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
or eax, 0xffffffff
pop esi
mov esp, ebp
pop ebp
ret