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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ea67b
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.004db320
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 0x431b08
cmp edi, 0x18
je 0x431afe
mov ecx, 0xe
jmp 0x431b21
xor ecx, ecx
cmp eax, 0x20
sete cl
jmp 0x431b1a
cmp eax, 0x10
jne 0x431b12
lea ecx, [eax - 6]
jmp 0x431b21
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 0x431b68
lea edx, [ebp - 0x87c]
test eax, eax
jle 0x431b5a
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 0x431b42
mov edi, dword [ebp - 0x4bc]
xor edx, edx
test ecx, ecx
js 0x431b9a
lea esi, [ebp - 0x69c]
test eax, eax
jle 0x431b8c
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 0x431b74
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 0x431c1b
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 0x431bd4
mov ecx, dword [ebp - 0x4b4]
mov esi, dword [ebp - 0x88c]
xor edi, edi
test esi, esi
jle 0x431c73
cmp edi, dword [ebp - 0x898]
jge 0x431e29
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 0x431c21
mov ecx, dword [ebp - 0x4b4]
cmp edi, dword [ebp - 0x898]
jge 0x431e2f
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 0x431d28
mov ecx, 1
cmp esi, ecx
jle 0x431db4
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 0x431d10
jmp 0x431db4
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 0x431d30
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 0x431da0
mov dword [ebp - 0x888], 0
test esi, esi
jle 0x431e1d
cmp edi, dword [ebp - 0x898]
jge 0x431e29
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 0x431dc2
cmp edi, dword [ebp - 0x898]
jl 0x431c90
mov ecx, dword [ebp - 0x4b4]
mov esi, 1
mov dword [ebp - 0x88c], esi
cmp ecx, esi
jle 0x431ed0
mov eax, dword [ebp - 0x890]
lea edx, [ebp - 0x67c]
mov dword [ebp - 0x888], edx
test eax, eax
jle 0x431ebc
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 0x431e60
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 0x431e54
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.004bbd10
test edi, edi
je 0x431f52
mov ecx, edi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x431f00
sub ecx, edx
lea esi, [ecx + 1]
cmp esi, 0x3fffffff
jg 0x431f52
lea eax, [esi + esi]
call fcn.0048c790
mov edi, esp
test edi, edi
je 0x431f4c
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 0x431f54
mov edi, dword [ebp - 0x89c]
xor esi, esi
push 1
push edi
call fcn.00489951
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.00489916
mov esp, ebp
pop ebp
ret