Function at 0x44e508
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x1bc
mov eax, dword [0x485118]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x20
mov ebx, ecx
call fcn.0043565b
push 0x20
mov dword [ebp - 0x1b8], eax
call fcn.0043565b
mov dword [ebp - 0x1bc], eax
mov eax, dword [ebx + 0x20]
test eax, eax
lea ecx, [ebp - 0x1b8]
push ecx
jbe 0x44e54f
lea ecx, [ebx + 0x18]
jmp 0x44e555
mov eax, dword [ebx + 0x10]
lea ecx, [ebx + 8]
push eax
call dword [sym.imp.msvcp60.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::data_void_const]
push eax
mov ecx, ebx
call fcn.0044e296
lea ecx, [ebp - 0xa8]
call fcn.0045a102
push 0x20
push dword [ebp - 0x1b8]
lea ecx, [ebp - 0xa8]
call fcn.0045a12b
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0xa8]
call fcn.0045a1cb
cmp dword [ebx + 4], 2
jne 0x44e5f8
mov dword [ebp - 0x1b4], 0x32
lea esi, [ebp - 0x18]
lea edi, [ebp - 0x2c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0x58
movsd dword es:[edi], dword [esi]
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
mov esi, eax
test esi, esi
pop ecx
je 0x44e5c8
push 0x58
push 0
push esi
call sub.msvcrt.dll_memset
add esp, 0xc
jmp 0x44e5ca
xor esi, esi
mov ecx, esi
call fcn.0045a102
push 0x10
lea eax, [ebp - 0x2c]
push eax
mov ecx, esi
call fcn.0045a12b
lea eax, [ebp - 0x18]
push eax
mov ecx, esi
call fcn.0045a1cb
push esi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
dec dword [ebp - 0x1b4]
pop ecx
jne 0x44e5a1
mov eax, dword [ebx + 4]
cmp eax, 1
jne 0x44e604
push 5
jmp 0x44e60b
cmp eax, 2
jne 0x44e61a
push 0x10
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x1ac]
call fcn.0045a2b9
mov eax, dword [ebx + 0x10]
lea ecx, [ebp - 0x1bc]
push ecx
push eax
lea ecx, [ebx + 8]
call dword [sym.imp.msvcp60.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::data_void_const]
push eax
mov ecx, ebx
call fcn.0044e296
lea eax, [ebx + 0x4c]
push 0x20
push eax
push dword [ebp - 0x1bc]
lea ecx, [ebp - 0x1ac]
mov dword [ebp - 0x1b4], eax
call fcn.0045a331
cmp dword [ebx + 4], 2
mov byte [ebx + 0x6c], 0
jne 0x44e6e5
mov byte [ebp - 0x1ad], 1
mov ebx, 0x102
push 0x10
xor eax, eax
pop esi
mov cl, byte [ebp + eax - 0x18]
xor cl, byte [ebp - 0x1ad]
inc eax
dec esi
mov byte [ebp + eax - 0x2d], cl
jne 0x44e672
mov esi, dword [ebp - 0x1b4]
push 8
pop ecx
lea edi, [ebp - 0x50]
push ebx
rep movsd dword es:[edi], dword [esi]
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
mov esi, eax
test esi, esi
pop ecx
je 0x44e6ad
push ebx
push 0
push esi
call sub.msvcrt.dll_memset
add esp, 0xc
jmp 0x44e6af
xor esi, esi
push 0x10
lea eax, [ebp - 0x2c]
push eax
mov ecx, esi
call fcn.0045a2b9
push 0x20
push dword [ebp - 0x1b4]
lea eax, [ebp - 0x50]
push eax
mov ecx, esi
call fcn.0045a331
push esi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
inc byte [ebp - 0x1ad]
cmp byte [ebp - 0x1ad], 0x13
pop ecx
jbe 0x44e66d
push dword [ebp - 0x1b8]
call fcn.0043567b
push dword [ebp - 0x1bc]
call fcn.0043567b
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004347dd
leave
ret