Function at 0x5dd7b3
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0x14]
sub esp, 0x20
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x5dd7bf
push ebx
push esi
push edi
sub eax, ecx
lea esi, [eax + 1]
push 1
push esi
mov dword [ebp - 0x20], esi
call fcn.005b58f3
pop ecx
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
pop ecx
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x5dd7e4
sub eax, ecx
mov ecx, eax
mov eax, dword [ebp + 0x10]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x5dd7f5
sub eax, edi
lea eax, [eax + ecx + 5]
imul eax, eax, 3
push 1
push eax
call fcn.005b58f3
push dword [ebp + 0xc]
mov ebx, eax
push dword [ebp + 8]
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x14], ebx
call fcn.005dd751
add esp, 0x10
lea eax, [ebp - 0xc]
push eax
push 0x4bf7c4
push SysReAllocString
call dword [0x491000]
test eax, eax
je 0x5dd843
xor eax, eax
inc eax
jmp 0x5dda15
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 4]
lea eax, [ebp - 0x1c]
push eax
push 0
push ebx
push dword [ebp - 0xc]
mov ebx, dword [fcn.00491028]
mov dword [ebp - 0x10], esi
call ebx
mov dword [ebp - 0x18], eax
test eax, eax
je 0x5dd9a7
cmp eax, 0xea
je 0x5dd9a7
mov esi, dword [ebp + 0x10]
push 4
mov edi, 0x4b8b28
pop ecx
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x5dd9a7
mov esi, dword [ebp - 0x14]
push 0x4bb5f0
push esi
call fcn.00633734
mov edi, dword [ebp - 0x20]
lea esi, [eax + esi + 1]
lea eax, [edi + 0xa]
push 1
push eax
call fcn.005b58f3
add esp, 0x10
lea ecx, [ebp - 0x10]
push ecx
push eax
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x1c]
push eax
push 0
push esi
push dword [ebp - 0xc]
mov dword [ebp - 0x10], edi
call ebx
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x5dd9a7
cmp dword [ebp - 0x1c], 1
jne 0x5dd9a7
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp - 4]
mov dword [ebp - 0x20], 2
push 0x4b8728
mov word [edi], 0x7830
push esi
add edi, 2
call fcn.00633734
pop ecx
pop ecx
mov ecx, eax
cdq
and edx, 3
add eax, edx
sar eax, 2
jmp 0x5dd90f
cmp ecx, 1
jle 0x5dd91d
mov ecx, edx
lea edx, [ecx - 1]
mov ebx, edx
xor ebx, 3
cmp byte [ebx + esi], 0x30
je 0x5dd908
and dword [ebp - 8], 0
test ecx, ecx
jle 0x5dd93d
lea edx, [ecx + edi - 1]
mov ebx, dword [ebp - 8]
xor ebx, 3
mov bl, byte [ebx + esi]
inc dword [ebp - 8]
mov byte [edx], bl
dec edx
cmp dword [ebp - 8], ecx
jl 0x5dd929
lea esi, [esi + eax*4]
add edi, ecx
cmp byte [esi], 0
je 0x5dd94c
inc esi
mov byte [edi], 0x2c
inc edi
dec dword [ebp - 0x20]
mov byte [edi], 0
jne 0x5dd8e6
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp - 4]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x5dd97a
test dl, dl
je 0x5dd976
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x5dd97a
add eax, 2
add ecx, 2
test dl, dl
jne 0x5dd95a
xor eax, eax
jmp 0x5dd97f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x5dd9a7
mov eax, dword [ebp - 4]
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x5dd989
sub eax, ecx
inc eax
push eax
push dword [ebp - 4]
push 1
push 0
push dword [ebp - 0x14]
push dword [ebp - 0xc]
call dword [fcn.00491014]
push dword [ebp - 0xc]
call dword [fcn.00491024]
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp - 4]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x5dd9d6
test dl, dl
je 0x5dd9d2
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x5dd9d6
add eax, 2
add ecx, 2
test dl, dl
jne 0x5dd9b6
xor esi, esi
jmp 0x5dd9db
sbb esi, esi
sbb esi, 0xffffffff
push dword [ebp - 4]
call fcn.005b59cb
push dword [ebp - 0x14]
call fcn.005b59cb
cmp dword [ebp - 0x18], 0xea
pop ecx
pop ecx
je 0x5dda12
cmp dword [ebp - 0x18], 0
jne 0x5dd83b
cmp dword [ebp - 0x1c], 1
jne 0x5dd83b
test esi, esi
jne 0x5dda12
xor eax, eax
jmp 0x5dda15
push 2
pop eax
pop edi
pop esi
pop ebx
leave
ret