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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4df6e1
mov eax, dword fs:[0]
push eax
mov eax, 0x10b4
call fcn.00485230
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 edi, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x10a8], eax
test edi, edi
je 0x41b1c6
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41b176
sub ecx, edx
sar ecx, 1
inc ecx
cmp ecx, 0x3fffffff
jg 0x41b1c6
lea eax, [ecx + ecx]
mov dword [ebp - 0x1094], eax
call fcn.00485200
mov esi, esp
test esi, esi
je 0x41b1c6
push 0
push 0
push dword [ebp - 0x1094]
mov byte [esi], 0
push esi
push 0xffffffffffffffff
push edi
push 0
push 3
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
xor ecx, ecx
test eax, eax
cmove esi, ecx
jmp 0x41b1c8
xor esi, esi
mov ecx, esi
mov dword [ebp - 0xc14], 0
xorps xmm0, xmm0
mov dword [ebp - 0x10b0], 0
movq qword [ebp - 0xc1c], xmm0
mov dword [ebp - 0x10ac], 0xf
mov byte [ebp - 0x10c0], 0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x41b200
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x10c0]
call fcn.0045e3d0
lea edx, [ebp - 0x10c0]
mov dword [ebp - 4], 0
lea ecx, [ebp - 0xc1c]
call fcn.004b4620
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x10ac]
cmp edx, 0x10
jb 0x41b26e
mov ecx, dword [ebp - 0x10c0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41b264
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x41b264
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.004823d1
add esp, 8
push 0x400
lea eax, [ebp - 0x410]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov esi, dword [ebp - 0xc18]
add esp, 0xc
mov edi, dword [ebp - 0xc1c]
xor edx, edx
sub esi, edi
je 0x41b2b2
lea eax, [ebp - 0x410]
sub edi, eax
nop
lea ecx, [ebp - 0x410]
add ecx, edx
inc edx
mov al, byte [edi + ecx]
mov byte [ecx], al
cmp edx, esi
jb 0x41b2a0
push 0x400
lea eax, [ebp - 0x810]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
push 0x400
lea eax, [ebp - 0xc10]
xorps xmm0, xmm0
push 0
push eax
movups xmmword [ebp - 0x10b8], xmm0
call sub.VCRUNTIME140.dll_memset
mov edx, 0x51d550
lea ecx, [ebp - 0x1094]
call fcn.00509d60
push dword [eax]
lea eax, [ebp - 0xc10]
push 0x400
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
add esp, 0x24
lea ecx, [ebp - 0x1094]
call dword [sym.imp.mfc140u.dll_Ordinal_1046]
mov dword [ebp - method.CRijndael.virtual_0], vtable.CRijndael.0
mov byte [ebp - 0x108c], 0
push 0x20
lea eax, [ebp - 0x10b8]
mov byte [ebp - 4], 3
push eax
lea eax, [ebp - 0xcbc]
mov dword [ebp - 0xcc8], 0x20
push eax
mov dword [ebp - 0xcc4], 0x20
call sub.VCRUNTIME140.dll_memcpy
push dword [ebp - 0xcc4]
lea eax, [ebp - 0x10b8]
push eax
lea eax, [ebp - 0xc9c]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov esi, dword [ebp - 0xcc8]
add esp, 0x18
mov eax, dword [ebp - 0xcc4]
cmp esi, 0x10
je 0x41b396
cmp esi, 0x18
je 0x41b38c
mov ecx, 0xe
jmp 0x41b3af
xor ecx, ecx
cmp eax, 0x20
sete cl
jmp 0x41b3a8
cmp eax, 0x10
jne 0x41b3a0
lea ecx, [eax - 6]
jmp 0x41b3af
xor ecx, ecx
cmp eax, 0x18
setne cl
lea ecx, [ecx*2 + 0xc]
cdq
and edx, 3
mov dword [ebp - 0xcc0], ecx
add eax, edx
xor edx, edx
sar eax, 2
mov dword [ebp - 0x109c], eax
test ecx, ecx
js 0x41b3f6
lea esi, [ebp - 0x1088]
test eax, eax
jle 0x41b3e8
mov ecx, eax
mov edi, esi
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0xcc0]
mov eax, dword [ebp - 0x109c]
inc edx
add esi, 0x20
cmp edx, ecx
jle 0x41b3d0
mov esi, dword [ebp - 0xcc8]
xor edx, edx
test ecx, ecx
js 0x41b428
lea esi, [ebp - 0xea8]
test eax, eax
jle 0x41b41a
mov ecx, eax
mov edi, esi
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0xcc0]
mov eax, dword [ebp - 0x109c]
inc edx
add esi, 0x20
cmp edx, ecx
jle 0x41b402
mov esi, dword [ebp - 0xcc8]
lea edx, [ecx + 1]
imul edx, eax
lea edi, [ebp - 0xc10]
mov eax, esi
mov dword [ebp - 0x10a4], edx
cdq
and edx, 3
lea esi, [edx + eax]
sar esi, 2
lea eax, [ebp - 0xc7c]
mov dword [ebp - 0x1094], esi
mov dword [ebp - 0x1098], eax
test esi, esi
jle 0x41b4a9
mov dword [ebp - 0x10a0], 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 - 0x1098]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x10a0], 1
mov dword [ebp - 0x1098], eax
jne 0x41b462
mov ecx, dword [ebp - 0xcc0]
mov esi, dword [ebp - 0x1094]
xor edi, edi
test esi, esi
jle 0x41b500
nop
cmp edi, dword [ebp - 0x10a4]
jge 0x41b6b5
mov eax, edi
mov ecx, dword [ebp + edi*4 - 0xc7c]
cdq
idiv dword [ebp - 0x109c]
lea esi, [edx + eax*8]
mov dword [ebp + esi*4 - 0x1088], ecx
mov ecx, dword [ebp - 0xcc0]
mov esi, dword [ebp - 0x1094]
sub ecx, eax
mov eax, dword [ebp + edi*4 - 0xc7c]
inc edi
lea ecx, [edx + ecx*8]
mov dword [ebp + ecx*4 - 0xea8], eax
cmp edi, esi
jl 0x41b4b0
mov ecx, dword [ebp - 0xcc0]
cmp edi, dword [ebp - 0x10a4]
jge 0x41b6bb
mov dword [ebp - 0x10a0], 0x51d7c0
nop word [eax + eax]
mov edx, dword [ebp + esi*4 - 0xc80]
mov eax, edx
sar eax, 0x10
movzx eax, al
movsx ecx, byte [eax + 0x5208e0]
mov eax, dword [ebp - 0x10a0]
inc dword [ebp - 0x10a0]
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 - 0xc7c], ecx
mov ecx, 1
cmp esi, 8
je 0x41b5c0
cmp esi, ecx
jle 0x41b644
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [ebp + ecx*4 - 0xc80]
xor dword [ebp + ecx*4 - 0xc7c], eax
inc ecx
cmp ecx, esi
jl 0x41b5a0
jmp 0x41b644
mov eax, dword [ebp + ecx*4 - 0xc80]
xor dword [ebp + ecx*4 - 0xc7c], eax
inc ecx
cmp ecx, 4
jl 0x41b5c0
mov ecx, dword [ebp - 0xc70]
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 - 0xc70]
shl edx, 8
movzx eax, byte [eax + 0x5208e0]
xor edx, eax
xor dword [ebp - 0xc6c], edx
nop dword [eax]
mov eax, dword [ebp + ecx*4 - 0xc80]
xor dword [ebp + ecx*4 - 0xc7c], eax
inc ecx
cmp ecx, 8
jl 0x41b630
xor ecx, ecx
mov dword [ebp - 0x1098], ecx
test esi, esi
jle 0x41b6a9
cmp edi, dword [ebp - 0x10a4]
jge 0x41b6b5
mov eax, edi
mov ecx, dword [ebp + ecx*4 - 0xc7c]
cdq
inc edi
idiv dword [ebp - 0x109c]
lea esi, [edx + eax*8]
mov dword [ebp + esi*4 - 0x1088], ecx
mov ecx, dword [ebp - 0xcc0]
mov esi, dword [ebp - 0x1094]
sub ecx, eax
mov eax, dword [ebp - 0x1098]
lea ecx, [edx + ecx*8]
mov eax, dword [ebp + eax*4 - 0xc7c]
mov dword [ebp + ecx*4 - 0xea8], eax
mov ecx, dword [ebp - 0x1098]
inc ecx
mov dword [ebp - 0x1098], ecx
cmp ecx, esi
jl 0x41b650
cmp edi, dword [ebp - 0x10a4]
jl 0x41b520
mov ecx, dword [ebp - 0xcc0]
mov edx, 1
mov dword [ebp - 0x1094], edx
cmp ecx, edx
jle 0x41b756
mov eax, dword [ebp - 0x109c]
lea esi, [ebp - 0xe88]
mov dword [ebp - 0x1098], esi
test eax, eax
jle 0x41b742
mov edi, 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 0x41b6e6
mov ecx, dword [ebp - 0xcc0]
mov eax, dword [ebp - 0x109c]
mov edx, dword [ebp - 0x1094]
mov esi, dword [ebp - 0x1098]
inc edx
add esi, 0x20
mov dword [ebp - 0x1094], edx
mov dword [ebp - 0x1098], esi
cmp edx, ecx
jl 0x41b6e0
mov eax, dword [ebp - 0xc18]
sub eax, dword [ebp - 0xc1c]
push ecx
push eax
lea eax, [ebp - 0x810]
mov byte [ebp - 0x108c], 1
push eax
lea eax, [ebp - 0x410]
push eax
lea ecx, [ebp - 0x1090]
call fcn.00435740
lea ecx, [ebp - 0x810]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x41b790
sub ecx, edx
lea edi, [ecx + 1]
cmp edi, 0x3fffffff
jg 0x41b7d4
lea eax, [edi + edi]
call fcn.00485200
mov esi, esp
test esi, esi
je 0x41b7d4
push edi
push esi
xor eax, eax
push 0xffffffffffffffff
mov word [esi], ax
lea eax, [ebp - 0x810]
push eax
push 0
push 3
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
neg eax
sbb eax, eax
and eax, esi
jmp 0x41b7d6
xor eax, eax
push eax
push 0x400
push dword [ebp - 0x10a8]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
mov ecx, dword [ebp - 0xc1c]
add esp, 0xc
test ecx, ecx
je 0x41b827
mov edx, dword [ebp - 0xc14]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x41b81d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x41b81d
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.004823d1
add esp, 8
lea esp, [ebp - 0x10cc]
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.00482396
mov esp, ebp
pop ebp
ret 0xc