Function at 0x44210d16
Capabilities:
Decrypt data using tea
Encode data using xor

Disassembly:
push 0x40
mov eax, 0x4427f1cc
call fcn.4427cd2b
mov eax, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 0x14]
and dword [ebp - 0x3c], 0
lea ecx, [ebp - 0x2c]
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 edi, edi
inc edi
cmp dword [ebp + 0x10], 8
mov dword [ebp - 4], edi
jge 0x44210d69
push dword [ebp + 0x10]
lea ecx, [ebp - 0x2c]
push ebx
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 - 0x30]
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__]
mov dword [ebp - 0x3c], edi
jmp 0x44210e6e
cmp dword [ebp + 0x18], 0x10
je 0x44210d97
cmp dword [ebp + 0x18], 0x20
je 0x44210d97
cmp dword [ebp + 0x18], 0x40
je 0x44210d97
push dword [ebp + 0x10]
lea ecx, [ebp - 0x2c]
push ebx
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 - 0x30]
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__]
jmp 0x44210d61
and dword [ebp - 0x38], 0
xor eax, eax
lea edi, [ebp - 0x34]
push 8
stosd dword es:[edi], eax
lea eax, [ebp - 0x38]
push ebx
push eax
call sub.MSVCR90.dll_memcpy
and dword [ebp - 0x4c], 0
xor eax, eax
lea edi, [ebp - 0x48]
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 0x44210dc7
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 - 0x4c]
push eax
call sub.MSVCR90.dll_memcpy
mov esi, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
add esp, 0xc
cmp esi, 0x20
jne 0x44210df2
mov edx, 0xc6ef3720
jmp 0x44210e06
cmp esi, 0x10
jne 0x44210dfe
mov edx, 0xe3779b90
jmp 0x44210e06
mov edx, esi
imul edx, edx, 0x9e3779b9
test esi, esi
jle 0x44210e45
mov edi, ecx
shr edi, 5
add edi, dword [ebp - 0x40]
mov ebx, ecx
shl ebx, 4
add ebx, dword [ebp - 0x44]
xor edi, ebx
lea ebx, [edx + ecx]
xor edi, ebx
sub eax, edi
mov edi, eax
shr edi, 5
add edi, dword [ebp - 0x48]
mov ebx, eax
shl ebx, 4
add ebx, dword [ebp - 0x4c]
xor edi, ebx
lea ebx, [edx + eax]
xor edi, ebx
sub ecx, edi
add edx, 0x61c88647
dec esi
jne 0x44210e0a
mov dword [ebp - 0x34], eax
push 8
lea eax, [ebp - 0x38]
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 - 0x30]
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__]
mov dword [ebp - 0x3c], 1
lea ecx, [ebp - 0x2c]
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 - 0x30]
call fcn.4427cdae
ret