Function at 0x44ca60
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x7c
mov esi, dword [esp + 0xa8]
mov ebp, dword [esp + 0x94]
mov edi, dword [esp + 0xac]
test esi, esi
je 0x44cd00
test edi, edi
mov dword [esp], esi
cmove edi, esi
call fcn.00464180
lea ecx, [eax + 1]
mov edx, eax
lea eax, [ecx + ecx]
cmp eax, ebp
ja 0x44cb56
lea ebx, [ebp - 1]
sub ebp, eax
cmp ebp, dword [esp + 0x9c]
mov dword [esp + 0x24], ebx
lea ebx, [eax - 2]
mov dword [esp + 0x28], ebx
jb 0x44ccc3
sub eax, 1
cmp dword [esp + 0x24], eax
jb 0x44cb20
mov eax, dword [esp + 0x90]
mov dword [esp + 0x2c], edx
mov byte [eax], 0
add ecx, eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x14], 0
mov ebp, ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 8], ecx
mov dword [esp], eax
call fcn.004646f0
mov edx, dword [esp + 0x2c]
test eax, eax
jne 0x44cb60
xor eax, eax
add esp, 0x7c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x10], 0x195
mov dword [esp + 0xc], 0x532f00
mov dword [esp + 8], 0x7a
mov dword [esp + 4], 0x6b
mov dword [esp], 4
call fcn.00435290
xor eax, eax
add esp, 0x7c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x10], 0x188
jmp 0x44cb28
mov eax, dword [esp + 0x90]
lea ecx, [ebp + edx]
mov esi, dword [esp + 0x24]
sub esi, dword [esp + 0x9c]
mov dword [esp], ecx
add eax, 1
mov ebx, eax
lea eax, [esi - 1]
sub eax, dword [esp + 0x28]
mov dword [esp + 4], 0
mov dword [esp + 0x28], edx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memset
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x9c]
sub esi, edx
mov byte [ebp + esi - 1], 1
add esi, ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x98]
mov dword [esp], esi
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
mov edx, dword [esp + 0x28]
mov dword [esp], ebx
mov dword [esp + 4], edx
call fcn.0045d530
mov edx, dword [esp + 0x28]
test eax, eax
je 0x44cb13
mov esi, dword [esp + 0x24]
mov dword [esp + 0x24], edx
sub esi, edx
mov dword [esp], esi
call sub.msvcrt.dll_malloc
mov edx, dword [esp + 0x24]
test eax, eax
mov ecx, eax
je 0x44cd14
mov dword [esp + 0xc], edx
mov dword [esp], ecx
mov dword [esp + 0x10], edi
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], ecx
call fcn.0044c8f0
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
test eax, eax
js 0x44cd10
xor eax, eax
test esi, esi
je 0x44cc5c
mov ebx, dword [esp + 0x90]
mov dword [esp + 0x24], edx
movzx edx, byte [ecx + eax]
xor byte [ebp + eax], dl
add eax, 1
cmp eax, esi
jne 0x44cc42
mov edx, dword [esp + 0x24]
mov dword [esp + 0x90], ebx
mov dword [esp + 0x10], edi
lea edi, [esp + 0x30]
mov dword [esp + 4], edx
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebp
mov dword [esp], edi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], edx
call fcn.0044c8f0
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
test eax, eax
js 0x44cd10
test edx, edx
je 0x44ccaf
mov ebx, dword [esp + 0x90]
xor esi, esi
lea esi, [esi]
movzx eax, byte [edi + esi]
xor byte [ebx + esi + 1], al
add esi, 1
cmp esi, edx
jne 0x44cca0
mov ebx, 1
mov dword [esp], ecx
call fcn.004ae080
mov eax, ebx
jmp 0x44cb4e
mov dword [esp + 0x10], 0x18f
mov dword [esp + 0xc], 0x532f00
mov dword [esp + 8], 0x6f
mov dword [esp + 4], 0x6b
mov dword [esp], 4
call fcn.00435290
add esp, 0x7c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
call fcn.00459a20
mov esi, eax
jmp 0x44ca84
xor ebx, ebx
jmp 0x44ccb4
mov dword [esp + 0x10], 0x1aa
mov dword [esp + 0xc], 0x532f00
mov dword [esp + 8], 0x41
mov dword [esp + 4], 0x6b
mov dword [esp], 4
call fcn.00435290
xor eax, eax
jmp 0x44cb15