Function at 0x14002ed80
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, 0x78
xor ebx, ebx
lea r13, [rsp + 0x40]
mov rsi, rdx
mov r12, rcx
xor edx, edx
mov rcx, r13
lea rbp, [rsp + 0x50]
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x58], 0
call sym.newSeq__OOZOOZOOZOOZOOZOOZOnimbleZpkgs50Znimtestcrypto4548O50O484548a4856cdb56dbde565055524954565048ad54b495152cd51c51564952ad
movdqu xmm0, xmmword [rsp + 0x40]
mov r14, qword [rsi]
xor ecx, ecx
mov rdi, qword [0x1400f8300]
xor eax, eax
movaps xmmword [rsp + 0x50], xmm0
test r14, r14
jle 0x14002ef10
test rax, rax
jne 0x14002eea2
nop dword [rax]
mov rdx, qword [rsi + 0x10]
test rcx, rcx
js 0x14002eed0
cmp rcx, rdx
jge 0x14002eed0
lea r8, [rcx + 1]
cmp r8, rdx
jge 0x14002eee0
lea r9, [rcx + 2]
cmp r9, rdx
jge 0x14002eef0
lea rax, [rcx + 3]
test rcx, rcx
js 0x14002ef00
cmp rax, rdx
jge 0x14002ef00
mov rdx, qword [rsi + 0x18]
movzx r14d, byte [rdx + r8 + 8]
movzx r8d, byte [rdx + r9 + 8]
movzx ecx, byte [rdx + rcx + 8]
movzx eax, byte [rdx + rax + 8]
shl r14d, 0x10
shl r8d, 8
or r14d, r8d
shl ecx, 0x18
or r14d, ecx
or r14d, eax
nop dword [rax]
mov rcx, rdi
call dbg.__emutls_get_address
cmp byte [rax], 0
jne 0x14002eea7
mov edx, r14d
mov rcx, rbp
add rbx, 1
call sym.add__OOZOOZOOZOOZOOZOOZOnimbleZpkgs50Znimtestcrypto4548O50O484548a4856cdb56dbde565055524954565048ad54b495152cd51c51564952ad555
mov r14, qword [rsi]
cmp r14, rbx
jle 0x14002ef10
xor eax, eax
imul rcx, rbx, 4
seto al
test rax, rax
je 0x14002edf0
call sym.raiseOverflow
movdqa xmm1, xmmword [rsp + 0x50]
mov rax, r12
movups xmmword [r12], xmm1
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
sub rdx, 1
call sym.raiseIndexError2
xor r14d, r14d
jmp 0x14002ee68
sub rdx, 1
mov rcx, r8
call sym.raiseIndexError2
jmp 0x14002eed9
sub rdx, 1
mov rcx, r9
call sym.raiseIndexError2
jmp 0x14002eed9
sub rdx, 1
mov rcx, rax
call sym.raiseIndexError2
jmp 0x14002eed9
mov rdi, qword [rsi + 8]
add rdi, 1
jo 0x14002eea2
imul rax, rdi, 4
mov qword [rsp + 0x28], rax
jo 0x14002eea2
cmp r14, rax
jge 0x14002eea7
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov rcx, r14
sub rcx, 1
jo 0x14002eea2
mov rax, qword [rsp + 0x50]
test rcx, rcx
js 0x14002f248
cmp rcx, rax
jge 0x14002f248
mov rax, qword [rsp + 0x58]
mov edx, dword [rax + rcx*4 + 8]
mov rcx, qword [rsp + 0x20]
call sym.fromUint32BE__OOZOOZOOZOOZOOZOOZOnimbleZpkgs50Znimtestcrypto4548O50O484548a4856cdb56dbde565055524954565048ad54b495152cd51c5156
mov rdi, qword [rsp + 0x60]
mov r15, qword [rsp + 0x68]
mov rcx, qword [0x1400f8300]
call dbg.__emutls_get_address
cmp byte [rax], 0
mov rbp, rax
jne 0x14002eea7
mov rcx, qword [rsi]
test rcx, rcx
je 0x14002f256
mov rax, r14
cqo
idiv rcx
test rdx, rdx
je 0x14002f030
cmp rcx, 6
jle 0x14002f150
cmp rdx, 4
jne 0x14002f150
lea rax, [r15 + 8]
lea r11, [r15 + rdi + 8]
lea r10, str.cw
test rdi, rdi
jle 0x14002f19e
nop
movzx edx, byte [rax]
add rax, 1
movzx edx, byte [r10 + rdx]
mov byte [rax - 1], dl
cmp rax, r11
jne 0x14002efe0
cmp byte [rbp], 0
jne 0x14002eea7
mov rbx, r14
sub rbx, qword [rsi]
jo 0x14002eea2
mov rax, qword [rsp + 0x50]
test rbx, rbx
js 0x14002f01d
cmp rax, rbx
jg 0x14002f178
lea rdx, [rax - 1]
mov rcx, rbx
call sym.raiseIndexError2
jmp 0x14002eea7
mov rcx, qword [rsp + 0x20]
call sym.rotWord__OOZOOZOOZOOZOOZOOZOnimbleZpkgs50Znimtestcrypto4548O50O484548a4856cdb56dbde565055524954565048ad54b495152cd51c51564952a
cmp byte [rbp], 0
jne 0x14002eea7
lea rax, [r15 + 8]
lea rcx, [r15 + rdi + 8]
lea r10, str.cw
test rdi, rdi
jle 0x14002f07e
nop dword [rax]
movzx edx, byte [rax]
add rax, 1
movzx edx, byte [r10 + rdx]
mov byte [rax - 1], dl
cmp rcx, rax
jne 0x14002f060
cmp byte [rbp], 0
jne 0x14002eea7
mov rcx, qword [rsi]
test rcx, rcx
je 0x14002f256
movabs rax, 0x8000000000000000
cmp r14, rax
jne 0x14002f0a3
cmp rcx, 0xffffffffffffffff
je 0x14002eea2
mov rax, r14
xor ebx, ebx
cqo
idiv rcx
sub rax, 1
seto bl
jo 0x14002eea2
cmp rax, 9
ja 0x14002f260
lea rdx, [0x1400eb180]
mov rcx, r13
mov edx, dword [rdx + rax*4]
call sym.fromUint32BE__OOZOOZOOZOOZOOZOOZOnimbleZpkgs50Znimtestcrypto4548O50O484548a4856cdb56dbde565055524954565048ad54b495152cd51c5156
cmp byte [rbp], 0
mov r10, qword [rsp + 0x40]
mov r11, qword [rsp + 0x48]
jne 0x14002eea7
test rdi, rdi
jg 0x14002f10c
jmp 0x14002f13b
movzx eax, byte [r11 + rbx + 8]
xor byte [r15 + rbx + 8], al
add rbx, 1
cmp rbx, rdi
je 0x14002f131
cmp r10, rbx
jg 0x14002f0f8
lea rdx, [r10 - 1]
mov rcx, rbx
mov qword [rsp + 0x38], r11
mov qword [rsp + 0x30], r10
call sym.raiseIndexError2
mov r10, qword [rsp + 0x30]
mov r11, qword [rsp + 0x38]
cmp byte [rbp], 0
jne 0x14002eea7
mov rcx, r13
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x48], r11
call sym.eqdestroy___pureZtimes_u2534
mov rcx, qword [rsi]
mov rbx, r14
sub rbx, rcx
jo 0x14002eea2
mov rax, qword [rsp + 0x50]
test rbx, rbx
js 0x14002f01d
cmp rbx, rax
jge 0x14002f01d
test rdi, rdi
jle 0x14002f1c4
cmp rdi, 1
je 0x14002f229
cmp rdi, 2
je 0x14002f218
cmp rdi, 3
je 0x14002f237
mov edx, dword [r15 + 8]
bswap edx
jmp 0x14002f1d1
mov rdx, r14
sub rdx, rcx
mov rbx, rdx
jo 0x14002eea2
mov rax, qword [rsp + 0x50]
test rdx, rdx
js 0x14002f01d
cmp rdx, rax
jge 0x14002f01d
lea rdx, [rdi - 1]
xor ecx, ecx
call sym.raiseIndexError2
xor edx, edx
cmp byte [rbp], 0
jne 0x14002eea7
mov rax, qword [rsp + 0x58]
lea rcx, [rsp + 0x50]
add r14, 1
xor edx, dword [rax + rbx*4 + 8]
call sym.add__OOZOOZOOZOOZOOZOOZOnimbleZpkgs50Znimtestcrypto4548O50O484548a4856cdb56dbde565055524954565048ad54b495152cd51c51564952ad555
movdqa xmm2, xmmword [rsp + 0x60]
mov rcx, r13
movaps xmmword [rsp + 0x40], xmm2
call sym.eqdestroy___pureZtimes_u2534
mov rax, qword [rsp + 0x28]
cmp r14, rax
jne 0x14002ef3c
jmp 0x14002eea7
mov edx, 1
mov ecx, 2
call sym.raiseIndexError2
jmp 0x14002f1cf
xor edx, edx
mov ecx, 1
call sym.raiseIndexError2
jmp 0x14002f1cf
mov edx, 2
mov ecx, 3
call sym.raiseIndexError2
jmp 0x14002f1cf
lea rdx, [rax - 1]
call sym.raiseIndexError2
jmp 0x14002eea7
call sym.raiseDivByZero
jmp 0x14002eea7
mov edx, 9
mov rcx, rax
call sym.raiseIndexError2
jmp 0x14002eea7