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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc8
mov rax, r8
mov qword [rsp + 0x110], rcx
shl rax, 4
test r8, r8
mov qword [rsp + 0x118], rdx
mov qword [rsp + 0x120], r8
mov qword [rsp + 0xa8], rax
je 0x213762da8
mov qword [rsp + 0x90], 0
mov rax, rdx
mov qword [rsp + 0x80], 0
add rax, 0x10
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x60], rax
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x88], rax
mov rax, rcx
add rax, 0xd0
mov qword [rsp + 0x98], rax
mov rax, rcx
add rax, 0xf0
mov qword [rsp + 0xa0], rax
mov r8, qword [rsp + 0x118]
mov r9d, 0x10
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x38], 0
mov rcx, qword [sub.msvcrt.dll_memcpy]
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
call fcn.213761500
mov rax, qword [rsp + 0x118]
mov rbx, qword [rsp + 0x110]
movzx r13d, byte [rax]
mov rax, qword [rsp + 0x110]
xor r13b, byte [rax + 0xe0]
mov rax, qword [rsp + 0x118]
mov byte [rax], r13b
movzx esi, byte [rax + 1]
mov rax, qword [rsp + 0x110]
xor sil, byte [rax + 0xe1]
mov rax, qword [rsp + 0x118]
mov byte [rax + 1], sil
movzx eax, byte [rax + 2]
xor al, byte [rbx + 0xe2]
mov rbx, qword [rsp + 0x118]
mov byte [rsp + 0x74], al
mov byte [rbx + 2], al
movzx eax, byte [rbx + 3]
mov rbx, qword [rsp + 0x110]
xor al, byte [rbx + 0xe3]
mov rbx, qword [rsp + 0x118]
mov byte [rsp + 0x50], al
mov byte [rbx + 3], al
mov rax, qword [rsp + 0x110]
movzx ebp, byte [rbx + 4]
movzx r10d, byte [rbx + 5]
xor bpl, byte [rax + 0xe4]
mov rax, qword [rsp + 0x110]
mov byte [rbx + 4], bpl
xor r10b, byte [rax + 0xe5]
movzx eax, byte [rbx + 6]
mov byte [rbx + 5], r10b
mov rbx, qword [rsp + 0x110]
mov rdi, qword [rsp + 0x110]
xor al, byte [rbx + 0xe6]
movzx r12d, al
mov rax, qword [rsp + 0x118]
mov byte [rax + 6], r12b
movzx eax, byte [rax + 7]
xor al, byte [rbx + 0xe7]
movzx r8d, al
mov rax, qword [rsp + 0x118]
mov byte [rax + 7], r8b
movzx r11d, byte [rax + 8]
mov rax, qword [rsp + 0x118]
xor r11b, byte [rbx + 0xe8]
mov byte [rax + 8], r11b
movzx eax, byte [rax + 9]
xor al, byte [rbx + 0xe9]
movzx edx, al
mov rax, qword [rsp + 0x118]
mov byte [rax + 9], dl
movzx eax, byte [rax + 0xa]
xor al, byte [rbx + 0xea]
movzx r9d, al
mov rax, qword [rsp + 0x118]
mov byte [rax + 0xa], r9b
movzx eax, byte [rax + 0xb]
xor al, byte [rbx + 0xeb]
movzx ebx, al
mov rax, qword [rsp + 0x118]
mov byte [rax + 0xb], bl
movzx eax, byte [rax + 0xc]
xor al, byte [rdi + 0xec]
movzx ecx, al
mov rax, qword [rsp + 0x118]
mov byte [rax + 0xc], cl
movzx eax, byte [rax + 0xd]
xor al, byte [rdi + 0xed]
movzx edi, al
mov rax, qword [rsp + 0x118]
mov byte [rax + 0xd], dil
mov r14, qword [rsp + 0x110]
movzx eax, byte [rax + 0xe]
mov r15, qword [rsp + 0x110]
xor al, byte [r14 + 0xee]
mov r14, qword [rsp + 0x118]
mov byte [rsp + 0x75], al
mov byte [r14 + 0xe], al
movzx r14d, byte [r14 + 0xf]
xor r14b, byte [r15 + 0xef]
mov r15, qword [rsp + 0x98]
mov qword [rsp + 0x68], r15
mov r15d, r14d
mov r14, qword [rsp + 0x118]
nop dword [rax]
lea rax, [0x213799080]
movzx esi, sil
movzx r13d, r13b
movzx ecx, byte [rax + rcx]
movzx ebp, bpl
movzx r11d, r11b
movzx r10d, r10b
movzx r13d, byte [rax + r13]
movzx ebp, byte [rax + rbp]
movzx r11d, byte [rax + r11]
movzx r10d, byte [rax + r10]
mov byte [rsp + 0x71], cl
movzx ecx, byte [rax + rdi]
movzx edi, byte [rax + rsi]
mov rsi, rax
movzx eax, byte [rax + rdx]
movzx edx, byte [rsi + r9]
mov r9, rsi
mov byte [rsp + 0x72], r10b
mov byte [rsp + 0x73], al
movzx eax, byte [rsp + 0x75]
movzx esi, byte [rsi + rax]
movzx eax, byte [rsp + 0x74]
movzx eax, byte [r9 + rax]
mov byte [rsp + 0x74], al
mov rax, r9
movzx r9d, byte [r9 + r12]
movzx ebx, byte [rax + rbx]
movzx r12d, byte [rax + r8]
mov r8, rax
movzx eax, r15b
mov r15, r8
movzx r8d, byte [r8 + rax]
movzx eax, byte [rsp + 0x50]
mov byte [rsp + 0x76], r9b
mov byte [rsp + 0x75], r8b
movzx r8d, bl
movzx r15d, byte [r15 + rax]
shl r8, 8
movzx eax, sil
or r8, rax
movzx eax, dil
shl r8, 8
or r8, rax
movzx eax, bpl
shl r8, 8
or r8, rax
movzx eax, r12b
shl r8, 8
or r8, rax
movzx eax, dl
shl r8, 8
or r8, rax
movzx eax, cl
shl r8, 8
or r8, rax
movzx eax, r13b
mov r10, rax
movzx eax, r15b
shl r8, 8
shl rax, 8
or r10, r8
or rax, r9
movzx r9d, byte [rsp + 0x73]
mov qword [rsp + 0x50], r10
shl rax, 8
or rax, r9
movzx r9d, byte [rsp + 0x71]
shl rax, 8
or rax, r9
movzx r9d, byte [rsp + 0x75]
shl rax, 8
or rax, r9
movzx r9d, byte [rsp + 0x74]
shl rax, 8
or rax, r9
movzx r9d, byte [rsp + 0x72]
shl rax, 8
or rax, r9
movzx r9d, r11b
shl rax, 8
or rax, r9
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x68]
movdqa xmm0, xmmword [rsp + 0x50]
movzx r10d, byte [rsp + 0x72]
movups xmmword [r14], xmm0
movzx r8d, byte [rsp + 0x74]
xor r13b, byte [rax]
mov byte [r14], r13b
xor cl, byte [rax + 1]
mov byte [r14 + 1], cl
xor dl, byte [rax + 2]
mov byte [r14 + 2], dl
xor r12b, byte [rax + 3]
mov byte [rsp + 0x77], dl
movzx edx, byte [rsp + 0x71]
mov byte [r14 + 3], r12b
xor bpl, byte [rax + 4]
mov byte [r14 + 4], bpl
xor dil, byte [rax + 5]
mov byte [r14 + 5], dil
xor sil, byte [rax + 6]
mov byte [r14 + 6], sil
xor bl, byte [rax + 7]
mov byte [r14 + 7], bl
xor r11b, byte [rax + 8]
mov byte [r14 + 8], r11b
xor r10b, byte [rax + 9]
mov byte [r14 + 9], r10b
xor r8b, byte [rax + 0xa]
mov byte [r14 + 0xa], r8b
mov r9d, r8d
movzx r8d, byte [rsp + 0x75]
xor r8b, byte [rax + 0xb]
mov byte [r14 + 0xb], r8b
xor dl, byte [rax + 0xc]
mov byte [r14 + 0xc], dl
mov byte [rsp + 0x71], dl
movzx edx, byte [rsp + 0x73]
xor dl, byte [rax + 0xd]
mov byte [r14 + 0xd], dl
mov byte [rsp + 0x72], dl
movzx edx, byte [rsp + 0x76]
xor dl, byte [rax + 0xe]
mov byte [r14 + 0xe], dl
xor r15b, byte [rax + 0xf]
cmp qword [rsp + 0x110], rax
mov byte [rsp + 0x50], dl
mov byte [r14 + 0xf], r15b
je 0x213762b84
mov r15, r14
mov qword [rsp + 0x118], r14
movzx eax, byte [r15]
movzx r14d, byte [r15 + 1]
movzx r11d, byte [r15 + 2]
lea ecx, [rax + rax]
mov edx, eax
mov byte [rsp + 0x71], al
sar dl, 7
mov r9d, r14d
and edx, 0x1b
sar r9b, 7
mov r8d, r11d
mov byte [rsp + 0x50], r11b
xor edx, ecx
and r9d, 0x1b
sar r8b, 7
movzx ecx, byte [r15 + 3]
mov r13d, edx
mov edi, edx
mov eax, edx
lea edx, [rdi + rdi]
sar r13b, 7
and r8d, 0x1b
mov byte [rsp + 0x72], al
and r13d, 0x1b
xor r13d, edx
sar cl, 7
lea edx, [r13 + r13]
mov ebx, r13d
and ecx, 0x1b
sar bl, 7
mov edi, ebx
and edi, 0x1b
xor edi, edx
lea edx, [r14 + r14]
xor r9d, edx
lea edx, [r9 + r9]
mov ebp, r9d
sar bpl, 7
and ebp, 0x1b
xor ebp, edx
lea edx, [rbp + rbp]
mov esi, ebp
sar sil, 7
and esi, 0x1b
xor esi, edx
lea edx, [r11 + r11]
xor r8d, edx
lea edx, [r8 + r8]
mov r12d, r8d
sar r12b, 7
and r12d, 0x1b
xor r12d, edx
lea edx, [r12 + r12]
mov ebx, r12d
sar bl, 7
and ebx, 0x1b
xor ebx, edx
movzx edx, byte [r15 + 3]
add edx, edx
xor ecx, edx
lea edx, [rcx + rcx]
mov r11d, ecx
sar r11b, 7
and r11d, 0x1b
xor eax, r13d
xor r11d, edx
xor eax, edi
lea edx, [r11 + r11]
mov r10d, r11d
sar r10b, 7
and r10d, 0x1b
xor r10d, edx
movzx edx, byte [rsp + 0x50]
xor edx, r14d
xor dl, byte [r15 + 3]
xor edx, r9d
xor r9d, ebp
xor edx, r12d
xor r9d, esi
xor edx, esi
xor edx, ebx
xor edx, r10d
xor edx, eax
movzx eax, byte [rsp + 0x71]
mov byte [r15], dl
movzx edx, byte [rsp + 0x50]
xor edx, eax
xor dl, byte [r15 + 3]
xor edx, r8d
xor edx, r11d
xor edx, edi
xor edx, ebx
xor edx, r10d
xor edx, r9d
movzx r9d, byte [r15 + 3]
mov byte [r15 + 1], dl
mov edx, eax
movzx eax, byte [rsp + 0x50]
xor edx, r14d
xor r9d, edx
xor r9d, ecx
xor r9d, r13d
xor r9d, edi
xor r9d, esi
xor r9d, r10d
xor r8d, r12d
xor eax, edx
xor al, byte [rsp + 0x72]
xor ecx, r11d
xor r8d, ebx
xor ecx, r10d
xor r9d, r8d
add r15, 4
mov byte [r15 - 2], r9b
xor eax, ebp
xor eax, edi
xor eax, esi
xor eax, ebx
xor ecx, eax
mov byte [r15 - 1], cl
cmp qword [rsp + 0x60], r15
jne 0x213762988
mov r14, qword [rsp + 0x118]
sub qword [rsp + 0x68], 0x10
movzx eax, byte [r14 + 2]
movzx edi, byte [r14 + 0xd]
movzx edx, byte [r14 + 9]
movzx r10d, byte [r14 + 5]
mov byte [rsp + 0x74], al
movzx eax, byte [r14 + 0xe]
movzx esi, byte [r14 + 1]
movzx r9d, byte [r14 + 0xa]
movzx r12d, byte [r14 + 6]
mov byte [rsp + 0x75], al
movzx eax, byte [r14 + 3]
movzx r8d, byte [r14 + 7]
movzx ebx, byte [r14 + 0xb]
movzx r15d, byte [r14 + 0xf]
movzx r13d, byte [r14]
mov byte [rsp + 0x50], al
movzx ebp, byte [r14 + 4]
movzx r11d, byte [r14 + 8]
movzx ecx, byte [r14 + 0xc]
jmp 0x213762760
mov rdx, qword [rsp + 0x110]
mov eax, r13d
mov r14d, ecx
movzx r13d, byte [rsp + 0x77]
movzx ecx, byte [rsp + 0x71]
xor al, byte [rdx + 0xf0]
mov rdx, qword [rsp + 0x118]
mov byte [rdx], al
mov rax, qword [rsp + 0x110]
xor r14b, byte [rax + 0xf1]
mov rax, qword [rsp + 0x110]
mov byte [rdx + 1], r14b
xor r13b, byte [rax + 0xf2]
mov rax, qword [rsp + 0x110]
mov byte [rdx + 2], r13b
xor r12b, byte [rax + 0xf3]
mov rax, qword [rsp + 0x110]
mov byte [rdx + 3], r12b
xor bpl, byte [rax + 0xf4]
mov rax, qword [rsp + 0x110]
mov byte [rdx + 4], bpl
xor dil, byte [rax + 0xf5]
mov rax, qword [rsp + 0x110]
mov byte [rdx + 5], dil
xor sil, byte [rax + 0xf6]
mov rax, qword [rsp + 0x110]
mov byte [rdx + 6], sil
xor bl, byte [rax + 0xf7]
mov rax, qword [rsp + 0x110]
mov byte [rdx + 7], bl
xor r11b, byte [rax + 0xf8]
mov rax, qword [rsp + 0x110]
mov byte [rdx + 8], r11b
xor r10b, byte [rax + 0xf9]
mov byte [rdx + 9], r10b
mov rax, qword [rsp + 0x110]
mov rbx, qword [rsp + 0x110]
xor r9b, byte [rax + 0xfa]
mov rax, qword [rsp + 0x110]
mov byte [rdx + 0xa], r9b
mov r9d, 0x10
xor r8b, byte [rax + 0xfb]
mov rax, qword [rsp + 0x110]
mov byte [rdx + 0xb], r8b
mov r8, qword [rsp + 0x88]
xor cl, byte [rax + 0xfc]
movzx eax, byte [rsp + 0x72]
mov byte [rdx + 0xc], cl
xor al, byte [rbx + 0xfd]
mov rbx, qword [rsp + 0x110]
mov rcx, qword [sub.msvcrt.dll_memcpy]
mov byte [rdx + 0xd], al
movzx eax, byte [rsp + 0x50]
xor al, byte [rbx + 0xfe]
mov rbx, rdx
mov byte [rdx + 0xe], al
mov rax, qword [rsp + 0x110]
movzx edx, byte [rax + 0xff]
xor edx, r15d
mov byte [rbx + 0xf], dl
mov rdx, qword [rsp + 0xa0]
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x40], 0
call fcn.213761500
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x118], rax
mov rax, qword [rsp + 0x80]
lea rbx, [rax + 0x10]
test eax, 0x7ffff
je 0x213762d77
add qword [rsp + 0x60], 0x10
add qword [rsp + 0x90], 0x6400
cmp rbx, qword [rsp + 0x120]
jae 0x213762daa
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x80], rbx
add rax, 0x10
mov qword [rsp + 0x78], rax
jmp 0x21376252e
mov rdi, qword [rsp + 0xa8]
mov r9, rax
xor edx, edx
mov rax, qword [rsp + 0x90]
lea rcx, str.Decrypted__d...___d_____i___d__full_length___d_r
mov qword [rsp + 0x20], rdi
div rdi
mov rdx, rbx
mov r8, rax
call fcn.2137618b0
jmp 0x213762d40
xor ebx, ebx
lea rcx, str._nDecrypted__d...ok__r_n
mov rdx, rbx
call fcn.2137618b0
nop
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret