Function at 0x140002f60
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
mov r15, rdx
mov qword [rsp + 0x20], rdx
lea rdx, str.State_before_invMixColumns:
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140003b10
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
xor r13d, r13d
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x40], 0xf
mov byte [rsp + 0x28], r13b
xor r8d, r8d
lea rdx, [rsp + 0x28]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140003d30
lea rdx, [0x1400063d0]
mov rcx, rax
call fcn.140003b10
mov esi, r13d
nop dword [rax + rax]
mov edx, 2
lea rcx, [rsp + 0x48]
call qword [sym.imp.MSVCP140.dll_struct_std::_Smanip_long_long___int64_____cdecl_std::setw_long_long___int64__]
mov rbx, rax
lea rdx, [0x1400011e0]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::ios_base____ptr64____cdecl___class_std::ios_base____ptr64_____ptr64]
mov rdi, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov rdx, qword [rbx + 8]
call qword [rbx]
mov rcx, qword [rdi]
movsxd rdx, dword [rcx + 4]
mov byte [rdx + rdi + 0x58], 0x30
movzx edx, byte [r15 + rsi]
mov rcx, rdi
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___int____ptr64]
mov rcx, rax
lea rdx, [0x140006408]
call fcn.140003b10
inc rsi
cmp rsi, 0x10
jb 0x140002fe0
lea rdx, [0x1400011c0]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::ios_base____ptr64____cdecl___class_std::ios_base____ptr64_____ptr64]
mov rcx, rax
lea rdx, [0x140003cf0]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
nop
mov rdx, qword [rsp + 0x40]
cmp rdx, 0xf
jbe 0x1400030b1
inc rdx
mov rcx, qword [rsp + 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400030ac
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400030ac
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14000420c
mov r12, r13
movzx esi, byte [r15 + r12*4]
movzx ebp, byte [r15 + r12*4 + 1]
movzx r14d, byte [r15 + r12*4 + 2]
movzx r15d, byte [r15 + r12*4 + 3]
mov r9b, 0xe
movzx r8d, sil
xor dil, dil
nop word [rax + rax]
movzx eax, dil
xor al, r8b
movzx ecx, al
movzx eax, dil
test r9b, 1
cmove ecx, eax
movzx edi, cl
movzx eax, r8b
add al, al
movzx edx, al
movzx ecx, r8b
movzx eax, dl
xor al, 0x1b
movzx r8d, al
test cl, cl
cmovns r8d, edx
shr r9b, 1
jne 0x1400030e0
mov r9b, 0xb
movzx r8d, bpl
xor bl, bl
nop dword [rax]
nop word [rax + rax]
movzx eax, bl
xor al, r8b
movzx ecx, al
movzx eax, bl
test r9b, 1
cmove ecx, eax
movzx ebx, cl
movzx eax, r8b
add al, al
movzx edx, al
movzx ecx, r8b
movzx eax, dl
xor al, 0x1b
movzx r8d, al
test cl, cl
cmovns r8d, edx
shr r9b, 1
jne 0x140003130
mov r9b, 0xd
movzx r8d, r14b
xor r11b, r11b
movzx eax, r11b
xor al, r8b
movzx ecx, al
movzx eax, r11b
test r9b, 1
cmove ecx, eax
movzx r11d, cl
movzx eax, r8b
add al, al
movzx edx, al
movzx ecx, r8b
movzx eax, dl
xor al, 0x1b
movzx r8d, al
test cl, cl
cmovns r8d, edx
shr r9b, 1
jne 0x140003171
mov r10b, 9
movzx r9d, r15b
xor r8b, r8b
nop word [rax + rax]
movzx eax, r8b
xor al, r9b
movzx ecx, al
movzx eax, r8b
test r10b, 1
cmove ecx, eax
movzx r8d, cl
movzx eax, r9b
add al, al
movzx edx, al
movzx ecx, r9b
movzx eax, dl
xor al, 0x1b
movzx r9d, al
test cl, cl
cmovns r9d, edx
shr r10b, 1
jne 0x1400031c0
xor r8b, r11b
xor r8b, bl
xor r8b, dil
mov rax, qword [rsp + 0x20]
mov byte [rax + r12*4], r8b
mov r9b, 9
movzx r8d, sil
xor dil, dil
nop word [rax + rax]
movzx eax, dil
xor al, r8b
movzx ecx, al
movzx eax, dil
test r9b, 1
cmove ecx, eax
movzx edi, cl
movzx eax, r8b
add al, al
movzx edx, al
movzx ecx, r8b
movzx eax, dl
xor al, 0x1b
movzx r8d, al
test cl, cl
cmovns r8d, edx
shr r9b, 1
jne 0x140003220
mov r9b, 0xe
movzx r8d, bpl
xor bl, bl
nop dword [rax]
nop word [rax + rax]
movzx eax, bl
xor al, r8b
movzx ecx, al
movzx eax, bl
test r9b, 1
cmove ecx, eax
movzx ebx, cl
movzx eax, r8b
add al, al
movzx edx, al
movzx ecx, r8b
movzx eax, dl
xor al, 0x1b
movzx r8d, al
test cl, cl
cmovns r8d, edx
shr r9b, 1
jne 0x140003270
mov r9b, 0xb
movzx r8d, r14b
xor r11b, r11b
movzx eax, r11b
xor al, r8b
movzx ecx, al
movzx eax, r11b
test r9b, 1
cmove ecx, eax
movzx r11d, cl
movzx eax, r8b
add al, al
movzx edx, al
movzx ecx, r8b
movzx eax, dl
xor al, 0x1b
movzx r8d, al
test cl, cl
cmovns r8d, edx
shr r9b, 1
jne 0x1400032b1
mov r10b, 0xd
movzx r9d, r15b
xor r8b, r8b
nop word [rax + rax]
movzx eax, r8b
xor al, r9b
movzx ecx, al
movzx eax, r8b
test r10b, 1
cmove ecx, eax
movzx r8d, cl
movzx eax, r9b
add al, al
movzx edx, al
movzx ecx, r9b
movzx eax, dl
xor al, 0x1b
movzx r9d, al
test cl, cl
cmovns r9d, edx
shr r10b, 1
jne 0x140003300
xor r8b, r11b
xor r8b, bl
xor r8b, dil
mov rax, qword [rsp + 0x20]
mov byte [rax + r12*4 + 1], r8b
mov r9b, 0xd
movzx r8d, sil
xor dil, dil
nop word [rax + rax]
movzx eax, dil
xor al, r8b
movzx ecx, al
movzx eax, dil
test r9b, 1
cmove ecx, eax
movzx edi, cl
movzx eax, r8b
add al, al
movzx edx, al
movzx ecx, r8b
movzx eax, dl
xor al, 0x1b
movzx r8d, al
test cl, cl
cmovns r8d, edx
shr r9b, 1
jne 0x140003360
mov r9b, 9
movzx r8d, bpl
xor bl, bl
nop dword [rax]
nop word [rax + rax]
movzx eax, bl
xor al, r8b
movzx ecx, al
movzx eax, bl
test r9b, 1
cmove ecx, eax
movzx ebx, cl
movzx eax, r8b
add al, al
movzx edx, al
movzx ecx, r8b
movzx eax, dl
xor al, 0x1b
movzx r8d, al
test cl, cl
cmovns r8d, edx
shr r9b, 1
jne 0x1400033b0
mov r9b, 0xe
movzx r8d, r14b
xor r11b, r11b
movzx eax, r11b
xor al, r8b
movzx ecx, al
movzx eax, r11b
test r9b, 1
cmove ecx, eax
movzx r11d, cl
movzx eax, r8b
add al, al
movzx edx, al
movzx ecx, r8b
movzx eax, dl
xor al, 0x1b
movzx r8d, al
test cl, cl
cmovns r8d, edx
shr r9b, 1
jne 0x1400033f1
mov r10b, 0xb
movzx r9d, r15b
xor r8b, r8b
nop word [rax + rax]
movzx eax, r8b
xor al, r9b
movzx ecx, al
movzx eax, r8b
test r10b, 1
cmove ecx, eax
movzx r8d, cl
movzx eax, r9b
add al, al
movzx edx, al
movzx ecx, r9b
movzx eax, dl
xor al, 0x1b
movzx r9d, al
test cl, cl
cmovns r9d, edx
shr r10b, 1
jne 0x140003440
xor r8b, r11b
xor r8b, bl
xor r8b, dil
mov rax, qword [rsp + 0x20]
mov byte [rax + r12*4 + 2], r8b
mov r8b, 0xb
xor bl, bl
nop dword [rax]
nop word [rax + rax]
movzx eax, bl
xor al, sil
movzx ecx, al
movzx eax, bl
test r8b, 1
cmove ecx, eax
movzx ebx, cl
movzx eax, sil
add al, al
movzx edx, al
movzx ecx, sil
movzx eax, dl
xor al, 0x1b
movzx esi, al
test cl, cl
cmovns esi, edx
shr r8b, 1
jne 0x1400034a0
mov r8b, 0xd
xor r11b, r11b
nop dword [rax + rax]
movzx eax, r11b
xor al, bpl
movzx ecx, al
movzx eax, r11b
test r8b, 1
cmove ecx, eax
movzx r11d, cl
movzx eax, bpl
add al, al
movzx edx, al
movzx ecx, bpl
movzx eax, dl
xor al, 0x1b
movzx ebp, al
test cl, cl
cmovns ebp, edx
shr r8b, 1
jne 0x1400034e0
mov r8b, 9
xor r10b, r10b
nop
movzx eax, r10b
xor al, r14b
movzx ecx, al
movzx eax, r10b
test r8b, 1
cmove ecx, eax
movzx r10d, cl
movzx eax, r14b
add al, al
movzx edx, al
movzx ecx, r14b
movzx eax, dl
xor al, 0x1b
movzx r14d, al
test cl, cl
cmovns r14d, edx
shr r8b, 1
jne 0x140003520
mov r9b, 0xe
xor r8b, r8b
movzx eax, r8b
xor al, r15b
movzx ecx, al
movzx eax, r8b
test r9b, 1
cmove ecx, eax
movzx r8d, cl
movzx eax, r15b
add al, al
movzx edx, al
movzx ecx, r15b
movzx eax, dl
xor al, 0x1b
movzx r15d, al
test cl, cl
cmovns r15d, edx
shr r9b, 1
jne 0x140003560
xor r8b, r10b
xor r8b, r11b
xor r8b, bl
mov r15, qword [rsp + 0x20]
mov byte [r15 + r12*4 + 3], r8b
inc r12
cmp r12, 4
jl 0x1400030b4
lea rdx, str.State_after_invMixColumns:
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140003b10
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x40], 0xf
mov byte [rsp + 0x28], 0
xor r8d, r8d
lea rdx, [rsp + 0x28]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140003d30
lea rdx, [0x1400063d0]
mov rcx, rax
call fcn.140003b10
nop dword [rax + rax]
mov edx, 2
lea rcx, [rsp + 0x48]
call qword [sym.imp.MSVCP140.dll_struct_std::_Smanip_long_long___int64_____cdecl_std::setw_long_long___int64__]
mov rbx, rax
lea rdx, [0x1400011e0]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::ios_base____ptr64____cdecl___class_std::ios_base____ptr64_____ptr64]
mov rdi, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov rdx, qword [rbx + 8]
call qword [rbx]
mov rcx, qword [rdi]
movsxd r8, dword [rcx + 4]
mov byte [r8 + rdi + 0x58], 0x30
movzx edx, byte [r15 + r13]
mov rcx, rdi
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___int____ptr64]
mov rcx, rax
lea rdx, [0x140006408]
call fcn.140003b10
inc r13
cmp r13, 0x10
jb 0x140003610
lea rdx, [0x1400011c0]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::ios_base____ptr64____cdecl___class_std::ios_base____ptr64_____ptr64]
mov rcx, rax
lea rdx, [0x140003cf0]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
nop
mov rdx, qword [rsp + 0x40]
cmp rdx, 0xf
jbe 0x1400036e2
inc rdx
mov rcx, qword [rsp + 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400036dd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400036dd
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14000420c
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret