Function at 0x14006abe0
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
lea r12, [rsp - 8]
cmp r12, qword [r14 + 0x10]
jbe 0x14006b468
push rbp
mov rbp, rsp
add rsp, 0xffffffffffffff80
mov qword [rsp + 0x98], rbx
mov qword [rsp + 0xa0], rcx
mov qword [rsp + 0x90], rax
mov qword [rsp + 0xb0], rsi
mov qword [rsp + 0xc8], r10
mov qword [rsp + 0xc0], r9
mov qword [rsp + 0xa8], rdi
mov rax, qword [rsp + 0x88]
call fcn.14005eb60
mov rcx, qword [rsp + 0x98]
mov rdx, rcx
shr rdx, 2
mov qword [rsp + 0x58], rdx
mov rbx, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0x90]
xor eax, eax
jmp 0x14006acc6
mov dword [rsp + 0x14], edx
mov rcx, qword [rsp + 0xa8]
lea rdx, [rcx + rax*4]
mov rax, rdx
call fcn.14005b220
mov rax, qword [rsp + 0x40]
mov ecx, dword [rsp + 0x14]
mov rdx, qword [rsp + 0xa8]
mov dword [rdx + rax*4], ecx
inc rax
mov rcx, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0x90]
mov rsi, qword [rsp + 0x98]
mov rdi, qword [rsp + 0x58]
mov rcx, rsi
mov rdx, rdi
mov rbx, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0x90]
cmp rax, rdx
jge 0x14006ade5
mov rdi, rax
shl rdi, 2
cmp rcx, rdi
jb 0x14006b45f
mov r8, rcx
sub r8, rdi
mov r9, rdi
sub rdi, rbx
sar rdi, 0x3f
and r9, rdi
lea rdi, [rsi + r9]
nop word [rax + rax]
nop
cmp r8, 3
jbe 0x14006b452
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x60], rdi
lea rax, [rsi + r9]
lea rax, [rax + 3]
mov qword [rsp + 0x78], rax
call fcn.14005b1e0
mov rax, qword [rsp + 0x78]
call fcn.14005b1e0
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x90]
movzx ebx, byte [rdx + rcx + 3]
mov dword [rsp + 0x2c], ebx
lea rax, [rdx + rcx]
lea rax, [rax + 2]
call fcn.14005b1e0
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x90]
movzx ebx, byte [rdx + rcx + 2]
shl ebx, 8
mov esi, dword [rsp + 0x2c]
or esi, ebx
mov dword [rsp + 0x2c], esi
lea rax, [rdx + rcx]
lea rax, [rax + 1]
nop
call fcn.14005b1e0
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x90]
movzx ebx, byte [rdx + rcx + 1]
mov dword [rsp + 0x28], ebx
mov rax, qword [rsp + 0x60]
call fcn.14005b1e0
mov ecx, dword [rsp + 0x28]
shl ecx, 0x10
mov edx, dword [rsp + 0x2c]
or edx, ecx
mov rcx, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x90]
movzx ecx, byte [rbx + rcx]
shl ecx, 0x18
or edx, ecx
mov rcx, qword [rsp + 0xb0]
mov rax, qword [rsp + 0x40]
cmp rcx, rax
ja 0x14006ac64
nop
jmp 0x14006b44d
mov rbx, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0xb0]
jmp 0x14006ae2b
mov dword [rsp + 0x2c], ecx
lea rcx, [rbx + rax*4]
mov rax, rcx
call fcn.14005b220
mov rax, qword [rsp + 0x40]
mov ecx, dword [rsp + 0x2c]
mov rbx, qword [rsp + 0xa8]
mov dword [rbx + rax*4], ecx
inc rax
mov rcx, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0x58]
cmp rcx, rax
jle 0x14006b16e
lea rsi, [rax - 1]
nop dword [rax + rax]
cmp rcx, rsi
jbe 0x14006b445
mov qword [rsp + 0x40], rax
lea rcx, [rbx + rax*4]
lea rcx, [rcx - 4]
mov rax, rcx
call fcn.14005b1e0
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0xa8]
mov edx, dword [rcx + rax*4 - 4]
mov rbx, qword [rsp + 0x58]
test rbx, rbx
je 0x14006b440
mov rsi, rax
mov edi, edx
cmp rbx, 0xffffffffffffffff
jne 0x14006ae8f
neg rax
xor edx, edx
jmp 0x14006ae94
cqo
idiv rbx
test rdx, rdx
je 0x14006afb4
nop dword [rax]
cmp rbx, 6
jle 0x14006b113
cmp rdx, 4
jne 0x14006b113
mov ecx, edi
shr edi, 0x18
mov dword [rsp + 0x2c], edi
lea rdx, str.cw
lea rax, [rdi + rdx]
mov ebx, ecx
shr ecx, 0x10
movzx ecx, cl
mov dword [rsp + 0x28], ecx
lea rsi, [rcx + rdx]
mov qword [rsp + 0x78], rsi
mov r8d, ebx
shr ebx, 8
movzx ebx, bl
mov dword [rsp + 0x24], ebx
lea r9, [rbx + rdx]
mov qword [rsp + 0x70], r9
movzx r8d, r8b
mov dword [rsp + 0x20], r8d
lea r10, [r8 + rdx]
mov qword [rsp + 0x68], r10
call fcn.14005b1e0
mov ecx, dword [rsp + 0x2c]
lea rdx, str.cw
movzx ecx, byte [rdx + rcx]
mov dword [rsp + 0x2c], ecx
mov rax, qword [rsp + 0x78]
call fcn.14005b1e0
mov ecx, dword [rsp + 0x2c]
shl ecx, 0x18
mov dword [rsp + 0x2c], ecx
mov edx, dword [rsp + 0x28]
lea rbx, str.cw
movzx edx, byte [rbx + rdx]
mov dword [rsp + 0x28], edx
mov rax, qword [rsp + 0x70]
call fcn.14005b1e0
mov ecx, dword [rsp + 0x28]
shl ecx, 0x10
mov edx, dword [rsp + 0x2c]
or ecx, edx
mov dword [rsp + 0x2c], ecx
mov edx, dword [rsp + 0x24]
lea rbx, str.cw
movzx edx, byte [rbx + rdx]
mov dword [rsp + 0x28], edx
mov rax, qword [rsp + 0x68]
call fcn.14005b1e0
mov edx, dword [rsp + 0x28]
shl edx, 8
mov ecx, dword [rsp + 0x2c]
or edx, ecx
mov ecx, dword [rsp + 0x20]
lea rbx, str.cw
movzx ecx, byte [rbx + rcx]
or edx, ecx
mov rcx, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x40]
mov edi, edx
jmp 0x14006b113
mov qword [rsp + 0x50], rax
lea rcx, [rax - 1]
mov qword [rsp + 0x48], rcx
rol edi, 8
mov edx, edi
shr edi, 0x18
mov dword [rsp + 0x2c], edi
lea rbx, str.cw
lea rsi, [rdi + rbx]
mov r8d, edx
shr edx, 0x10
movzx edx, dl
mov dword [rsp + 0x28], edx
lea r9, [rdx + rbx]
mov qword [rsp + 0x78], r9
mov r10d, r8d
shr r8d, 8
movzx r8d, r8b
mov dword [rsp + 0x24], r8d
lea r11, [r8 + rbx]
mov qword [rsp + 0x70], r11
movzx r10d, r10b
mov dword [rsp + 0x20], r10d
lea r12, [r10 + rbx]
mov qword [rsp + 0x68], r12
mov rax, rsi
nop dword [rax]
call fcn.14005b1e0
mov ecx, dword [rsp + 0x2c]
lea rdx, str.cw
movzx ecx, byte [rdx + rcx]
mov dword [rsp + 0x2c], ecx
mov rax, qword [rsp + 0x78]
nop dword [rax]
call fcn.14005b1e0
mov ecx, dword [rsp + 0x2c]
shl ecx, 0x18
mov dword [rsp + 0x2c], ecx
mov edx, dword [rsp + 0x28]
lea rbx, str.cw
movzx edx, byte [rbx + rdx]
mov dword [rsp + 0x28], edx
mov rax, qword [rsp + 0x70]
call fcn.14005b1e0
mov ecx, dword [rsp + 0x28]
shl ecx, 0x10
mov edx, dword [rsp + 0x2c]
or edx, ecx
mov dword [rsp + 0x2c], edx
mov ecx, dword [rsp + 0x24]
lea rbx, str.cw
movzx ecx, byte [rbx + rcx]
mov dword [rsp + 0x28], ecx
mov rax, qword [rsp + 0x68]
call fcn.14005b1e0
mov ecx, dword [rsp + 0x28]
shl ecx, 8
mov edx, dword [rsp + 0x2c]
or ecx, edx
mov edx, dword [rsp + 0x20]
lea rbx, str.cw
movzx edx, byte [rbx + rdx]
or edx, ecx
mov rax, qword [rsp + 0x48]
nop
cmp rax, 0x10
jae 0x14006b435
mov dword [rsp + 0x10], edx
lea rcx, [0x1400cf2a0]
mov rdx, qword [rsp + 0x50]
lea rax, [rdx + rcx]
lea rax, [rax - 1]
call fcn.14005b1e0
lea rcx, [0x1400cf2a0]
mov rdx, qword [rsp + 0x50]
movzx edi, byte [rdx + rcx - 1]
shl edi, 0x18
mov edx, dword [rsp + 0x10]
xor edi, edx
mov rcx, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x40]
mov rax, rsi
sub rax, rbx
mov rdx, qword [rsp + 0xb0]
cmp rdx, rax
jbe 0x14006b42d
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x1c], edi
lea rdx, [rcx + rax*4]
mov rax, rdx
call fcn.14005b1e0
mov ecx, dword [rsp + 0x1c]
mov rdx, qword [rsp + 0x50]
mov rbx, qword [rsp + 0xa8]
xor ecx, dword [rbx + rdx*4]
mov rdx, qword [rsp + 0xb0]
mov rax, qword [rsp + 0x40]
cmp rdx, rax
ja 0x14006adf7
jmp 0x14006b425
mov rdx, qword [rsp + 0xc0]
test rdx, rdx
je 0x14006b17f
xor eax, eax
jmp 0x14006b18f
nop
call fcn.14005eba0
sub rsp, 0xffffffffffffff80
pop rbp
ret
add rax, 4
cmp rcx, rax
jle 0x14006b1a8
mov qword [rsp + 0x38], rax
mov rsi, rcx
sub rsi, rax
mov qword [rsp + 0x58], rsi
xor edi, edi
jmp 0x14006b214
call fcn.14005eba0
sub rsp, 0xffffffffffffff80
pop rbp
ret
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x2c], ecx
mov rcx, qword [rsp + 0xc0]
lea rdx, [rcx + rax*4]
mov rax, rdx
call fcn.14005b220
mov rcx, qword [rsp + 0x50]
mov edx, dword [rsp + 0x2c]
mov rbx, qword [rsp + 0xc0]
mov dword [rbx + rcx*4], edx
mov rdi, qword [rsp + 0x30]
inc rdi
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0xb0]
mov rsi, qword [rsp + 0xa8]
mov rax, qword [rsp + 0x38]
mov rcx, rdx
mov rdx, rbx
mov rbx, rsi
mov rsi, qword [rsp + 0x58]
cmp rdi, 4
jge 0x14006b18b
lea r8, [rdi + rsi]
lea r8, [r8 - 4]
cmp rcx, r8
jbe 0x14006b419
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x50], r8
lea rax, [rbx + r8*4]
nop dword [rax]
call fcn.14005b1e0
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0xa8]
mov ecx, dword [rdx + rcx*4]
mov rbx, qword [rsp + 0x38]
nop word [rax + rax]
test rbx, rbx
jle 0x14006b3ef
lea rsi, [rbx + 4]
mov rdi, qword [rsp + 0xb0]
cmp rdi, rsi
jle 0x14006b3f7
mov dword [rsp + 0x18], ecx
shr ecx, 0x18
mov dword [rsp + 0x2c], ecx
lea rbx, str.cw
lea rax, [rcx + rbx]
call fcn.14005b1e0
mov ecx, dword [rsp + 0x2c]
lea rdx, str.cw
movzx ecx, byte [rdx + rcx]
mov qword [rsp + 0x50], rcx
lea rbx, [0x1400d06c0]
lea rax, [rbx + rcx*4]
call fcn.14005b1e0
mov rcx, qword [rsp + 0x50]
lea rdx, [0x1400d06c0]
mov ecx, dword [rdx + rcx*4]
mov dword [rsp + 0x2c], ecx
mov ebx, dword [rsp + 0x18]
shr ebx, 0x10
movzx ebx, bl
mov dword [rsp + 0x28], ebx
lea rdi, str.cw
lea rax, [rbx + rdi]
call fcn.14005b1e0
mov ecx, dword [rsp + 0x28]
lea rdx, str.cw
movzx ecx, byte [rdx + rcx]
mov qword [rsp + 0x50], rcx
lea rbx, [0x1400d0ac0]
lea rax, [rbx + rcx*4]
call fcn.14005b1e0
mov ecx, dword [rsp + 0x2c]
mov rdx, qword [rsp + 0x50]
lea rbx, [0x1400d0ac0]
xor ecx, dword [rbx + rdx*4]
mov dword [rsp + 0x2c], ecx
mov edx, dword [rsp + 0x18]
shr edx, 8
movzx edx, dl
mov dword [rsp + 0x28], edx
lea rdi, str.cw
lea rax, [rdx + rdi]
call fcn.14005b1e0
mov ecx, dword [rsp + 0x28]
lea rdx, str.cw
movzx ecx, byte [rdx + rcx]
mov qword [rsp + 0x50], rcx
lea rbx, [0x1400d0ec0]
lea rax, [rbx + rcx*4]
call fcn.14005b1e0
mov ecx, dword [rsp + 0x2c]
mov rdx, qword [rsp + 0x50]
lea rbx, [0x1400d0ec0]
xor ecx, dword [rbx + rdx*4]
mov dword [rsp + 0x2c], ecx
mov edx, dword [rsp + 0x18]
movzx edx, dl
mov dword [rsp + 0x28], edx
lea rsi, str.cw
lea rax, [rdx + rsi]
call fcn.14005b1e0
mov ecx, dword [rsp + 0x28]
lea rdx, str.cw
movzx ecx, byte [rdx + rcx]
mov qword [rsp + 0x50], rcx
lea rbx, [0x1400d12c0]
lea rax, [rbx + rcx*4]
nop dword [rax]
call fcn.14005b1e0
mov ecx, dword [rsp + 0x2c]
mov rdx, qword [rsp + 0x50]
lea rbx, [0x1400d12c0]
xor ecx, dword [rbx + rdx*4]
mov rdx, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0x38]
mov rdi, qword [rsp + 0xb0]
jmp 0x14006b3f7
mov rdi, qword [rsp + 0xb0]
mov rsi, qword [rsp + 0x30]
lea rax, [rsi + rbx]
mov r8, qword [rsp + 0xc8]
cmp r8, rax
ja 0x14006b1b3
mov rcx, r8
call fcn.140059e80
mov rax, r8
nop dword [rax]
call fcn.140059e80
mov rcx, rdx
call fcn.140059e80
mov rcx, rdx
call fcn.140059e80
mov ecx, 0x10
call fcn.140059e80
nop
call fcn.14002e200
mov rax, rsi
call fcn.140059e80
call fcn.140059e80
mov eax, 3
mov rcx, r8
call fcn.140059e80
mov rax, rdi
call fcn.140059f40
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x48], r11
call fcn.140057be0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
mov r8, qword [rsp + 0x30]
mov r9, qword [rsp + 0x38]
mov r10, qword [rsp + 0x40]
mov r11, qword [rsp + 0x48]
jmp fcn.14006abe0