Function at 0x4297b0
Capabilities:
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, 0x38
mov rax, rdx
lea rsi, [rcx + 0x10]
mov qword [rsp + 0x88], rdx
mov r14, rcx
add rax, 0xa0
mov qword [rsp + 0x10], rsi
cmp rax, rsi
jae 0x4297f4
mov rax, rdx
add rax, 0xb0
cmp rcx, rax
jb 0x429c2d
mov rax, qword [rsp + 0x88]
movdqu xmm0, xmmword [r14]
movdqu xmm2, xmmword [rax + 0xa0]
pxor xmm0, xmm2
movups xmmword [rsp], xmm2
movups xmmword [r14], xmm0
add rax, 0x90
mov r15, r14
mov qword [rsp + 0x20], rax
nop dword [rax + rax]
movzx eax, byte [r15]
lea rcx, [0x00434fc0]
movzx ebp, byte [rcx + rax]
movzx eax, byte [r15 + 4]
movzx r11d, byte [rcx + rax]
movzx eax, byte [r15 + 8]
movzx eax, byte [rcx + rax]
mov byte [rsp + 0x1b], al
movzx eax, byte [r15 + 0xc]
movzx ebx, byte [rcx + rax]
movzx eax, byte [r15 + 0xd]
movzx edi, byte [rcx + rax]
movzx eax, byte [r15 + 1]
mov byte [rsp + 0x1c], bl
movzx r10d, byte [rcx + rax]
movzx eax, byte [r15 + 5]
movzx esi, byte [rcx + rax]
movzx eax, byte [r15 + 9]
movzx edx, byte [rcx + rax]
movzx eax, byte [r15 + 0xa]
mov byte [rsp + 0x1d], sil
movzx esi, byte [rcx + rax]
movzx eax, byte [r15 + 0xe]
mov byte [rsp + 0x1e], dl
movzx r9d, byte [rcx + rax]
movzx eax, byte [r15 + 2]
movzx r14d, byte [rcx + rax]
movzx eax, byte [r15 + 6]
movzx r12d, byte [rcx + rax]
movzx eax, byte [r15 + 7]
mov byte [rsp + 0x1f], r14b
movzx ebx, byte [rcx + rax]
movzx eax, byte [r15 + 0xb]
mov r13, r12
movzx edx, byte [rcx + rax]
movzx eax, byte [r15 + 0xf]
movzx r8d, byte [rcx + rax]
movzx eax, byte [r15 + 3]
mov r14, rdx
shl rdx, 8
movzx ecx, byte [rcx + rax]
movzx eax, r9b
or rdx, rax
movzx eax, r10b
shl rdx, 8
or rdx, rax
movzx eax, r11b
shl rdx, 8
or rdx, rax
movzx eax, bl
shl rdx, 8
or rdx, rax
movzx eax, sil
shl rdx, 8
or rdx, rax
movzx eax, dil
shl rdx, 8
or rdx, rax
movzx eax, bpl
mov qword [rsp + 0x28], rax
movzx eax, cl
shl rdx, 8
or rdx, qword [rsp + 0x28]
shl rax, 8
mov qword [rsp], rdx
or rax, r12
movzx r12d, byte [rsp + 0x1e]
shl rax, 8
or rax, r12
movzx r12d, byte [rsp + 0x1c]
shl rax, 8
or rax, r12
movzx r12d, r8b
shl rax, 8
or rax, r12
movzx r12d, byte [rsp + 0x1f]
shl rax, 8
or rax, r12
movzx r12d, byte [rsp + 0x1d]
shl rax, 8
or rax, r12
movzx r12d, byte [rsp + 0x1b]
shl rax, 8
mov rdx, rax
mov rax, qword [rsp + 0x20]
or rdx, r12
mov qword [rsp + 8], rdx
movdqu xmm1, xmmword [rsp]
movups xmmword [r15], xmm1
xor bpl, byte [rax]
mov byte [r15], bpl
xor dil, byte [rax + 1]
mov byte [r15 + 1], dil
xor sil, byte [rax + 2]
mov rdi, rax
mov byte [r15 + 2], sil
xor bl, byte [rax + 3]
mov byte [r15 + 3], bl
xor r11b, byte [rax + 4]
mov byte [r15 + 4], r11b
xor r10b, byte [rax + 5]
mov byte [r15 + 5], r10b
xor r9b, byte [rax + 6]
mov byte [r15 + 6], r9b
xor r14b, byte [rax + 7]
movzx eax, byte [rsp + 0x1b]
movzx ebx, byte [rsp + 0x1f]
mov byte [r15 + 7], r14b
xor al, byte [rdi + 8]
mov byte [r15 + 8], al
movzx eax, byte [rsp + 0x1d]
xor al, byte [rdi + 9]
mov byte [r15 + 9], al
xor bl, byte [rdi + 0xa]
mov byte [r15 + 0xa], bl
xor r8b, byte [rdi + 0xb]
mov byte [r15 + 0xb], r8b
movzx eax, byte [rsp + 0x1c]
xor al, byte [rdi + 0xc]
mov byte [r15 + 0xc], al
movzx eax, byte [rsp + 0x1e]
xor al, byte [rdi + 0xd]
mov byte [r15 + 0xd], al
movzx eax, byte [rdi + 0xe]
xor eax, r13d
mov byte [r15 + 0xe], al
xor cl, byte [rdi + 0xf]
mov byte [r15 + 0xf], cl
cmp rdi, qword [rsp + 0x88]
je 0x429c1c
mov qword [rsp + 0x80], r15
mov r14, r15
movzx r15d, byte [r14]
movzx eax, byte [r14 + 1]
movzx r13d, byte [r14 + 2]
mov ecx, r15d
lea ebx, [r15 + r15]
shr cl, 7
lea edx, [rcx + rcx]
add edx, ecx
lea edx, [rdx + rdx*8]
xor ebx, edx
mov edx, ebx
lea esi, [rbx + rbx]
mov byte [rsp], bl
shr dl, 7
lea edi, [rdx + rdx]
add edi, edx
lea edi, [rdi + rdi*8]
xor edi, esi
lea esi, [r13 + r13]
mov ecx, edi
lea r9d, [rdi + rdi]
shr cl, 7
lea edx, [rcx + rcx]
add edx, ecx
movzx ecx, byte [r14 + 3]
lea edx, [rdx + rdx*8]
xor r9d, edx
mov edx, eax
shr dl, 7
mov byte [rsp + 0x1b], r9b
lea r12d, [rdx + rdx]
add r12d, edx
lea edx, [rax + rax]
lea r12d, [r12 + r12*8]
xor r12d, edx
mov edx, r12d
lea r10d, [r12 + r12]
shr dl, 7
lea r11d, [rdx + rdx]
add r11d, edx
lea r11d, [r11 + r11*8]
xor r11d, r10d
mov edx, r11d
lea r8d, [r11 + r11]
shr dl, 7
lea r9d, [rdx + rdx]
add r9d, edx
mov edx, r13d
shr dl, 7
lea r9d, [r9 + r9*8]
lea ebp, [rdx + rdx]
xor r9d, r8d
add ebp, edx
lea ebp, [rbp + rbp*8]
xor ebp, esi
mov edx, ebp
shr dl, 7
lea esi, [rdx + rdx]
add esi, edx
lea edx, [rsi + rsi*8]
lea esi, [rbp + rbp]
xor esi, edx
mov edx, esi
shr dl, 7
lea r8d, [rdx + rdx]
add r8d, edx
lea edx, [r8 + r8*8]
lea r8d, [rsi + rsi]
xor r8d, edx
movzx edx, byte [r14 + 3]
shr dl, 7
lea ebx, [rdx + rdx]
add ebx, edx
lea edx, [rbx + rbx*8]
lea ebx, [rcx + rcx]
xor ebx, edx
mov edx, ebx
shr dl, 7
lea r10d, [rdx + rdx]
add r10d, edx
lea edx, [r10 + r10*8]
lea r10d, [rbx + rbx]
xor r10d, edx
mov edx, r10d
shr dl, 7
lea ecx, [rdx + rdx]
add ecx, edx
lea edx, [rcx + rcx*8]
lea ecx, [r10 + r10]
xor ecx, edx
mov edx, eax
xor eax, r15d
xor edx, r13d
xor dl, byte [r14 + 3]
xor dl, byte [rsp]
xor edx, r12d
xor edx, edi
xor edx, esi
xor dl, byte [rsp + 0x1b]
xor edx, r9d
xor edx, r8d
xor edx, ecx
mov byte [r14], dl
mov edx, r15d
xor edx, r13d
xor dl, byte [r14 + 3]
xor edx, r12d
movzx r12d, byte [rsp + 0x1b]
xor edx, ebp
xor edx, r11d
xor edx, r10d
xor edx, r12d
xor edx, r9d
xor edx, r8d
xor edx, ecx
mov byte [r14 + 1], dl
movzx edx, byte [r14 + 3]
xor edx, eax
xor ebp, edx
mov edx, r12d
xor ebp, ebx
xor ebp, edi
xor esi, ebp
xor esi, edx
xor esi, r9d
xor esi, r8d
xor eax, r13d
xor al, byte [rsp]
add r14, 4
xor ebx, eax
xor esi, ecx
xor r11d, ebx
mov byte [r14 - 2], sil
xor r10d, r11d
xor r10d, edx
xor r9d, r10d
xor r8d, r9d
xor ecx, r8d
mov byte [r14 - 1], cl
cmp r14, qword [rsp + 0x10]
jne 0x429a52
sub qword [rsp + 0x20], 0x10
mov r15, qword [rsp + 0x80]
jmp 0x429828
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movzx eax, byte [rdx + 0xa0]
xor byte [rcx], al
mov rax, qword [rsp + 0x88]
movzx eax, byte [rax + 0xa1]
xor byte [rcx + 1], al
mov rax, qword [rsp + 0x88]
movzx eax, byte [rax + 0xa2]
xor byte [rcx + 2], al
mov rax, qword [rsp + 0x88]
movzx eax, byte [rax + 0xa3]
xor byte [rcx + 3], al
mov rax, qword [rsp + 0x88]
movzx eax, byte [rax + 0xa4]
xor byte [rcx + 4], al
mov rax, qword [rsp + 0x88]
movzx eax, byte [rax + 0xa5]
xor byte [rcx + 5], al
mov rax, qword [rsp + 0x88]
movzx eax, byte [rax + 0xa6]
xor byte [rcx + 6], al
mov rax, qword [rsp + 0x88]
movzx eax, byte [rax + 0xa7]
xor byte [rcx + 7], al
mov rax, qword [rsp + 0x88]
movzx eax, byte [rax + 0xa8]
xor byte [rcx + 8], al
mov rax, qword [rsp + 0x88]
movzx eax, byte [rax + 0xa9]
xor byte [rcx + 9], al
mov rax, qword [rsp + 0x88]
movzx eax, byte [rax + 0xaa]
xor byte [rcx + 0xa], al
mov rax, qword [rsp + 0x88]
movzx eax, byte [rax + 0xab]
xor byte [rcx + 0xb], al
mov rax, qword [rsp + 0x88]
movzx eax, byte [rax + 0xac]
xor byte [rcx + 0xc], al
mov rax, qword [rsp + 0x88]
movzx eax, byte [rax + 0xad]
xor byte [rcx + 0xd], al
mov rax, qword [rsp + 0x88]
movzx eax, byte [rax + 0xae]
xor byte [rcx + 0xe], al
mov rax, qword [rsp + 0x88]
movzx eax, byte [rax + 0xaf]
xor byte [rcx + 0xf], al
mov rax, qword [rsp + 0x88]
jmp 0x429815