Function at 0x4416a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push ebx
lea edi, [ebp - 8]
add esp, 0xffffff80
mov dword [ebp - 0x3c], edi
lea edi, [ebp - 0x5c]
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x44], sym.___gxx_personality_sj0
mov dword [ebp - 0x40], 0x5c3e8a
mov dword [ebp - 0x38], 0x441894
mov dword [ebp - 0x34], esp
mov dword [esp], edi
call dbg._Unwind_SjLj_Register
mov eax, dword [ebp - 0x60]
mov edi, dword [ebp + 8]
mov ebx, dword [eax + 8]
mov edi, dword [edi + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x64], eax
cmp edi, ebx
ja 0x441735
mov eax, dword [ebp - 0x60]
mov dword [eax + 4], 0x3fffffff
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
test ecx, ecx
je 0x44171e
mov eax, dword [ebp - 0x64]
lea ebx, [eax + ecx*4]
lea esi, [esi]
mov ecx, dword [edx]
xor dword [eax], ecx
add eax, 4
add edx, 4
cmp ebx, eax
jne 0x441710
lea eax, [ebp - 0x5c]
mov dword [esp], eax
call sym.__Unwind_SjLj_Unregister
mov eax, dword [ebp - 0x60]
lea esp, [ebp - 8]
pop ebx
pop edi
pop ebp
ret 4
cmp edi, 0x3fffffff
ja 0x441812
mov edx, dword [ebp - 0x64]
test edx, edx
setne byte [ebp - 0x71]
test edi, edi
je 0x441802
lea eax, [edi*4]
mov dword [esp], eax
mov dword [ebp - 0x58], 0xffffffff
call dbg.CryptoPP::UnalignedAllocate(unsigned int)
mov ebx, eax
mov dword [ebp - 0x70], eax
test eax, eax
je 0x441809
cmp byte [ebp - 0x71], 0
je 0x441809
mov edi, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x6c]
cmp edi, ecx
cmovbe ecx, edi
mov eax, ecx
shl eax, 2
mov dword [esp + 0xc], eax
mov edi, dword [ebp - 0x64]
mov dword [esp + 4], eax
mov dword [esp + 8], edi
mov dword [esp], ebx
call method.CryptoPP.memcpy_s_void__unsigned_int__void_const__unsigned_int_
mov ebx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x6c]
xor eax, eax
mov edi, ebx
rep stosd dword es:[edi], eax
mov dword [esp], ebx
mov dword [ebp - 0x58], 0xffffffff
call dbg.CryptoPP::UnalignedDeallocate(void*)
mov eax, dword [ebp - 0x60]
mov edi, dword [ebp - 0x68]
mov ebx, dword [ebp - 0x70]
mov edx, dword [eax + 8]
mov dword [eax + 0xc], ebx
sub edi, edx
lea edx, [ebx + edx*4]
mov dword [esp + 4], 0
mov eax, edi
mov dword [esp], edx
shl eax, 2
mov dword [esp + 8], eax
call sym._memset
mov eax, dword [ebp - 0x60]
mov edi, dword [ebp - 0x68]
mov dword [eax + 8], edi
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x64], eax
jmp 0x4416f0
mov dword [ebp - 0x70], 0
mov eax, dword [ebp - 0x64]
test eax, eax
je 0x4417c1
jmp 0x4417a6
mov dword [esp], 0x20
call sym.___cxa_allocate_exception
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x60], eax
mov dword [esp], 0x5d0c84
mov dword [ebp - 0x58], 1
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.81_
push ebx
lea edi, [ebp - 0x20]
mov dword [esp + 4], edi
mov dword [esp], 1
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x58], 2
call fcn.004cee50
push ecx
lea edx, [ebp - 0x18]
push ecx
mov eax, dword [ebp - 0x60]
mov dword [eax], method.CryptoPP::InvalidArgument.InvalidArgument__
mov eax, dword [ebp - 0x20]
cmp eax, edx
je 0x441872
mov dword [esp], eax
call sym.operator_delete_void_
mov dword [esp + 8], method.CryptoPP::InvalidArgument.InvalidArgument__
mov dword [esp + 4], 0x5e0be8
mov eax, dword [ebp - 0x60]
mov dword [esp], eax
mov dword [ebp - 0x58], 0xffffffff
call sym.___cxa_throw
add ebp, 8
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x58]
test eax, eax
jne 0x4418c1
mov eax, dword [ebp - 0x60]
mov dword [esp], eax
call sym.___cxa_free_exception
mov eax, dword [ebp - 0x64]
mov dword [esp], eax
mov dword [ebp - 0x58], 0xffffffff
call dbg._Unwind_SjLj_Resume
sub eax, 1
jne 0x4418da
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x18]
cmp eax, edx
je 0x4418a4
mov dword [esp], eax
call sym.operator_delete_void_
jmp 0x4418a4
ud2