Function at 0x44210baf
Capabilities:
Encode data using xor
Encrypt data using tea

Disassembly:
push 0x44
mov eax, 0x4427f184
call fcn.4427cd2b
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0x14]
and dword [ebp - 0x34], 0
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x30], eax
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
xor ebx, ebx
inc ebx
cmp dword [ebp + 0x10], 8
mov dword [ebp - 4], ebx
jge 0x44210c15
push dword [ebp + 0x10]
lea ecx, [ebp - 0x2c]
push dword [ebp - 0x30]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
lea eax, [ebp - 0x2c]
push eax
mov ecx, edi
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x34], ebx
mov byte [ebp - 4], 0
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov eax, edi
jmp 0x44210d10
cmp dword [ebp + 0x18], 0x10
je 0x44210c44
cmp dword [ebp + 0x18], 0x20
je 0x44210c44
cmp dword [ebp + 0x18], 0x40
je 0x44210c44
push dword [ebp + 0x10]
lea ecx, [ebp - 0x2c]
push dword [ebp - 0x30]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
lea eax, [ebp - 0x2c]
push eax
mov ecx, edi
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
jmp 0x44210bfe
and dword [ebp - 0x3c], 0
xor eax, eax
push 8
push dword [ebp - 0x30]
lea edi, [ebp - 0x38]
stosd dword es:[edi], eax
lea eax, [ebp - 0x3c]
push eax
call sub.MSVCR90.dll_memcpy
and dword [ebp - 0x50], 0
xor eax, eax
lea edi, [ebp - 0x4c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, dword [esi + 0x14]
add esp, 0xc
cmp eax, 0x10
jb 0x44210c76
push 0x10
pop eax
push eax
mov ecx, esi
call dword [sym.imp.MSVCP90.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::data_void_const]
push eax
lea eax, [ebp - 0x50]
push eax
call sub.MSVCR90.dll_memcpy
mov esi, dword [ebp + 0x18]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
add esp, 0xc
xor edx, edx
test esi, esi
jle 0x44210cdb
mov dword [ebp - 0x30], esi
mov esi, ecx
shr esi, 5
add esi, dword [ebp - 0x4c]
mov edi, ecx
shl edi, 4
add edi, dword [ebp - 0x50]
sub edx, 0x61c88647
xor esi, edi
lea edi, [edx + ecx]
xor esi, edi
add eax, esi
mov esi, eax
shr esi, 5
add esi, dword [ebp - 0x44]
mov edi, eax
shl edi, 4
add edi, dword [ebp - 0x48]
xor esi, edi
lea edi, [edx + eax]
xor esi, edi
add ecx, esi
dec dword [ebp - 0x30]
jne 0x44210c9e
mov dword [ebp - 0x3c], eax
push 8
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x38], ecx
push eax
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
mov ecx, dword [ebp - 0x40]
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x34], ebx
mov byte [ebp - 4], 0
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov eax, dword [ebp - 0x40]
call fcn.4427cdae
ret