Function at 0x42be54
Capabilities:
Encode data using xor

Disassembly:
push ebp
lea ebp, [esp - 0x74]
sub esp, 0xc4
mov eax, dword [0x5e5710]
xor eax, ebp
mov dword [ebp + 0x70], eax
mov eax, dword [ebp + 0x7c]
push ebx
push esi
push edi
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x30], eax
call fcn.004289d7
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP80.dll_public:_wchar_t_const____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::c_str_void_const]
push eax
lea ecx, [ebp - 0x10]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__]
push 7
xor eax, eax
xor ebx, ebx
pop ecx
mov dword [ebp - 0x50], ebx
lea edi, [ebp - 0x4c]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x50]
push eax
call fcn.00428b76
pop ecx
push ebx
lea ecx, [ebp - 0x10]
call dword [sym.imp.MSVCP80.dll_public:_wchar_t____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator___unsigned_int_]
push ebx
lea ecx, [ebp - 0x10]
mov esi, eax
call dword [sym.imp.MSVCP80.dll_public:_wchar_t____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator___unsigned_int_]
push eax
call fcn.00429a4b
pop ecx
lea ecx, [ebp - 0x10]
call dword [sym.imp.MSVCP80.dll_public:_unsigned_int___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::size_void_const]
mov ebx, eax
xor eax, eax
test ebx, ebx
jbe 0x42bee7
mov ecx, eax
and ecx, 3
mov cx, word [ebp + ecx*2 - 0x50]
xor word [esi + eax*2], cx
inc eax
cmp eax, ebx
jb 0x42bed4
and word [ebp + 0x58], 0
xor eax, eax
lea edi, [ebp + 0x5a]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
lea edi, [ebx + ebx]
cmp edi, 0x10
jae 0x42bf0e
push edi
lea eax, [ebp + 0x58]
push esi
push eax
call sub.MSVCR80.dll_memcpy
add esp, 0xc
jmp 0x42bf58
shr edi, 3
and dword [ebp + 0x6c], 0
cmp dword [ebp + 0x6c], 7
jne 0x42bf36
mov eax, edi
imul eax, eax, 7
lea ecx, [ebx + ebx]
sub ecx, eax
push ecx
add eax, esi
push eax
call fcn.00428b1a
pop ecx
pop ecx
mov word [ebp + 0x66], ax
jmp 0x42bf4f
mov eax, dword [ebp + 0x6c]
imul eax, edi
add eax, esi
push edi
push eax
call fcn.00428b1a
pop ecx
pop ecx
mov ecx, dword [ebp + 0x6c]
mov word [ebp + ecx*2 + 0x58], ax
inc dword [ebp + 0x6c]
cmp dword [ebp + 0x6c], 8
jb 0x42bf15
and word [ebp + 0xc], 0
push 0x48
lea eax, [ebp + 0xe]
push 0
push eax
call sub.MSVCR80.dll_memset
push 0x25
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp + 0x58]
push eax
call fcn.00428aba
mov ecx, dword [ebp - 0x30]
add esp, 0x18
lea eax, [ebp + 0xc]
push eax
call dword [0x586418]
cmp ebx, 3
jb 0x42bfcf
xor eax, eax
lea edi, [ebp + 0x6a]
stosd dword es:[edi], eax
stosw word es:[edi], ax
movzx eax, word [esi]
cdq
push 0x1a
pop ecx
idiv ecx
movzx eax, word [esi + 2]
add edx, 0x61
mov word [ebp + 0x68], dx
cdq
idiv ecx
movzx eax, word [esi + 4]
add edx, 0x61
mov word [ebp + 0x6a], dx
cdq
idiv ecx
mov ecx, dword [ebp - 0x30]
lea eax, [ebp + 0x68]
push eax
add edx, 0x61
mov word [ebp + 0x6c], dx
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
lea ecx, [ebp - 0x10]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov ecx, dword [ebp + 0x70]
pop edi
xor eax, eax
pop esi
xor ecx, ebp
inc eax
pop ebx
call fcn.0056f17c
add ebp, 0x74
leave
ret