Function at 0x4405d0
Capabilities:
Encode data using xor
Encrypt data using aes
Reference aes constants

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4e5ceb
mov eax, dword fs:[0]
push eax
sub esp, 0x8bc
mov eax, dword [0x55b090]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x8a4], edx
mov eax, ecx
mov dword [ebp - 0x8a8], eax
mov dword [ebp - 0x88c], eax
mov dword [ebp - 0x8a0], eax
mov eax, dword [ebp + 8]
push eax
mov dword [ebp - 0x8a0], eax
call dword [sym.imp.mfc140u.dll_operator]
mov dword [ebp - 0x89c], eax
mov dword [ebp - method.CRijndael.virtual_0], vtable.CRijndael.0
mov byte [ebp - 0x880], 0
push 0x400
lea eax, [ebp - 0x410]
mov dword [ebp - 4], 0
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov edx, 0x51d5a0
lea ecx, [ebp - 0x88c]
call fcn.0043a300
push dword [eax]
lea eax, [ebp - 0x410]
push 0x400
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
add esp, 0x1c
lea ecx, [ebp - 0x88c]
call dword [sym.imp.mfc140u.dll_Ordinal_1046]
push 0x20
lea eax, [ebp - 0x8c8]
mov dword [ebp - 0x4bc], 0x20
push eax
xorps xmm0, xmm0
mov dword [ebp - 0x4b8], 0x20
lea eax, [ebp - 0x4b0]
push eax
movups xmmword [ebp - 0x8c8], xmm0
movups xmmword [ebp - 0x8b8], xmm0
call sub.VCRUNTIME140.dll_memcpy
push dword [ebp - 0x4b8]
lea eax, [ebp - 0x8c8]
push eax
lea eax, [ebp - 0x490]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov edi, dword [ebp - 0x4bc]
add esp, 0x18
mov eax, dword [ebp - 0x4b8]
cmp edi, 0x10
je 0x440708
cmp edi, 0x18
je 0x4406fe
mov ecx, 0xe
jmp 0x440721
xor ecx, ecx
cmp eax, 0x20
sete cl
jmp 0x44071a
cmp eax, 0x10
jne 0x440712
lea ecx, [eax - 6]
jmp 0x440721
xor ecx, ecx
cmp eax, 0x18
setne cl
lea ecx, [ecx*2 + 0xc]
cdq
xor esi, esi
and edx, 3
mov dword [ebp - 0x4b4], ecx
add eax, edx
sar eax, 2
mov dword [ebp - 0x890], eax
test ecx, ecx
js 0x440768
lea edx, [ebp - 0x87c]
test eax, eax
jle 0x44075a
mov ecx, eax
mov edi, edx
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0x4b4]
mov eax, dword [ebp - 0x890]
inc esi
add edx, 0x20
cmp esi, ecx
jle 0x440742
mov edi, dword [ebp - 0x4bc]
xor edx, edx
test ecx, ecx
js 0x44079a
lea esi, [ebp - 0x69c]
test eax, eax
jle 0x44078c
mov ecx, eax
mov edi, esi
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0x4b4]
mov eax, dword [ebp - 0x890]
inc edx
add esi, 0x20
cmp edx, ecx
jle 0x440774
mov edi, dword [ebp - 0x4bc]
lea edx, [ecx + 1]
imul edx, eax
mov eax, edi
lea edi, [ebp - 0x410]
mov dword [ebp - 0x898], edx
cdq
and edx, 3
lea esi, [edx + eax]
sar esi, 2
lea eax, [ebp - 0x470]
mov dword [ebp - 0x88c], esi
mov dword [ebp - 0x888], eax
test esi, esi
jle 0x44081b
mov dword [ebp - 0x894], esi
movzx esi, byte [edi]
lea edi, [edi + 4]
movzx eax, byte [edi - 3]
shl esi, 8
or esi, eax
movzx eax, byte [edi - 2]
shl esi, 8
or esi, eax
movzx eax, byte [edi - 1]
shl esi, 8
or esi, eax
mov eax, dword [ebp - 0x888]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x894], 1
mov dword [ebp - 0x888], eax
jne 0x4407d4
mov ecx, dword [ebp - 0x4b4]
mov esi, dword [ebp - 0x88c]
xor edi, edi
test esi, esi
jle 0x440873
cmp edi, dword [ebp - 0x898]
jge 0x440a29
mov eax, edi
cdq
idiv dword [ebp - 0x890]
mov esi, eax
mov eax, dword [ebp + edi*4 - 0x470]
lea ecx, [edx + esi*8]
mov dword [ebp + ecx*4 - 0x87c], eax
mov eax, dword [ebp - 0x4b4]
sub eax, esi
mov esi, dword [ebp - 0x88c]
lea ecx, [edx + eax*8]
mov eax, dword [ebp + edi*4 - 0x470]
inc edi
mov dword [ebp + ecx*4 - 0x69c], eax
cmp edi, esi
jl 0x440821
mov ecx, dword [ebp - 0x4b4]
cmp edi, dword [ebp - 0x898]
jge 0x440a2f
mov dword [ebp - 0x894], 0x51d7c0
nop dword [eax]
mov edx, dword [ebp + esi*4 - 0x474]
mov eax, edx
sar eax, 0x10
movzx eax, al
movsx ecx, byte [eax + 0x5208e0]
mov eax, dword [ebp - 0x894]
inc dword [ebp - 0x894]
movsx eax, byte [eax]
xor ecx, eax
mov eax, edx
sar eax, 8
movzx eax, al
shl ecx, 8
movzx eax, byte [eax + 0x5208e0]
xor ecx, eax
movzx eax, dl
shl ecx, 8
sar edx, 0x18
movzx eax, byte [eax + 0x5208e0]
xor ecx, eax
movzx eax, dl
shl ecx, 8
movzx eax, byte [eax + 0x5208e0]
xor ecx, eax
xor dword [ebp - 0x470], ecx
cmp esi, 8
je 0x440928
mov ecx, 1
cmp esi, ecx
jle 0x4409b4
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [ebp + ecx*4 - 0x474]
xor dword [ebp + ecx*4 - 0x470], eax
inc ecx
cmp ecx, esi
jl 0x440910
jmp 0x4409b4
mov eax, 1
nop dword [eax]
mov ecx, dword [ebp + eax*4 - 0x474]
xor dword [ebp + eax*4 - 0x470], ecx
inc eax
cmp eax, 4
jl 0x440930
mov ecx, dword [ebp - 0x464]
mov eax, ecx
sar eax, 0x18
movzx eax, al
movsx edx, byte [eax + 0x5208e0]
mov eax, ecx
sar eax, 0x10
movzx eax, al
shl edx, 8
sar ecx, 8
movzx eax, byte [eax + 0x5208e0]
xor edx, eax
movzx eax, cl
shl edx, 8
mov ecx, 5
movzx eax, byte [eax + 0x5208e0]
xor edx, eax
movzx eax, byte [ebp - 0x464]
shl edx, 8
movzx eax, byte [eax + 0x5208e0]
xor edx, eax
xor dword [ebp - 0x460], edx
nop dword [eax]
mov eax, dword [ebp + ecx*4 - 0x474]
xor dword [ebp + ecx*4 - 0x470], eax
inc ecx
cmp ecx, 8
jl 0x4409a0
mov dword [ebp - 0x888], 0
test esi, esi
jle 0x440a1d
cmp edi, dword [ebp - 0x898]
jge 0x440a29
mov eax, edi
inc edi
cdq
idiv dword [ebp - 0x890]
mov esi, eax
mov eax, dword [ebp - 0x888]
mov eax, dword [ebp + eax*4 - 0x470]
lea ecx, [edx + esi*8]
mov dword [ebp + ecx*4 - 0x87c], eax
mov eax, dword [ebp - 0x4b4]
sub eax, esi
mov esi, dword [ebp - 0x88c]
lea ecx, [edx + eax*8]
mov edx, dword [ebp - 0x888]
mov eax, dword [ebp + edx*4 - 0x470]
inc edx
mov dword [ebp + ecx*4 - 0x69c], eax
mov dword [ebp - 0x888], edx
cmp edx, esi
jl 0x4409c2
cmp edi, dword [ebp - 0x898]
jl 0x440890
mov ecx, dword [ebp - 0x4b4]
mov esi, 1
mov dword [ebp - 0x88c], esi
cmp ecx, esi
jle 0x440ad0
mov eax, dword [ebp - 0x890]
lea edx, [ebp - 0x67c]
mov dword [ebp - 0x888], edx
test eax, eax
jle 0x440abc
mov esi, edx
mov edi, eax
nop dword [eax]
mov edx, dword [esi]
lea esi, [esi + 4]
mov eax, edx
sar eax, 0x18
movzx ecx, al
mov eax, edx
sar eax, 0x10
movzx eax, al
mov ecx, dword [ecx*4 + 0x51e3e0]
xor ecx, dword [eax*4 + 0x51dfe0]
mov eax, edx
sar eax, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x51dbe0]
movzx eax, dl
xor ecx, dword [eax*4 + 0x51d7e0]
mov dword [esi - 4], ecx
sub edi, 1
jne 0x440a60
mov ecx, dword [ebp - 0x4b4]
mov eax, dword [ebp - 0x890]
mov edx, dword [ebp - 0x888]
mov esi, dword [ebp - 0x88c]
inc esi
add edx, 0x20
mov dword [ebp - 0x88c], esi
mov dword [ebp - 0x888], edx
cmp esi, ecx
jl 0x440a54
mov edi, dword [ebp - 0x89c]
push ecx
push dword [ebp - 0x8a0]
lea ecx, [ebp - 0x884]
mov byte [ebp - 0x880], 1
push edi
push dword [ebp - 0x8a4]
call fcn.0049c720
test edi, edi
je 0x440b52
mov ecx, edi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x440b00
sub ecx, edx
lea esi, [ecx + 1]
cmp esi, 0x3fffffff
jg 0x440b52
lea eax, [esi + esi]
call fcn.0048fad0
mov edi, esp
test edi, edi
je 0x440b4c
push esi
push edi
xor eax, eax
push 0xffffffffffffffff
mov word [edi], ax
mov eax, dword [ebp - 0x89c]
push eax
push 0
push 3
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov esi, eax
neg esi
sbb esi, esi
and esi, edi
mov edi, dword [ebp - 0x89c]
jmp 0x440b54
mov edi, dword [ebp - 0x89c]
xor esi, esi
push 1
push edi
call fcn.0048cc81
mov ecx, dword [ebp - 0x8a8]
add esp, 8
push esi
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__17]
mov eax, dword [ebp - 0x8a8]
lea esp, [ebp - 0x8d4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0048cc46
mov esp, ebp
pop ebp
ret