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

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x58
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x88], rsi
movups xmmword [rsp + 0x38], xmm15
movups xmmword [rsp + 0x48], xmm15
movups xmmword [rsp + 0x18], xmm15
movups xmmword [rsp + 0x28], xmm15
xor edx, edx
xor r10d, r10d
jmp 0x55432f
mov dword [rsp + r8*4 + 0x38], r11d
mov r13d, dword [rax + r8*4 + 0x3c]
xor r11d, r13d
mov dword [rsp + r8*4 + 0x38], r11d
inc edx
add r10d, 4
mov r8, r12
mov r11d, dword [rax + 4]
cmp edx, r11d
jge 0x55437c
movsxd r11, r10d
nop dword [rax + rax]
cmp r8, r11
jb 0x5547c5
mov r12, r8
sub r8, r11
mov r13, r11
sub r11, r9
sar r11, 0x3f
and r11, r13
nop dword [rax]
cmp r8, 3
jbe 0x5547b3
movsxd r8, edx
mov r11d, dword [rsi + r11]
cmp r8, 8
jb 0x554314
jmp 0x5547a6
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x70], rbx
mov edx, 1
lea rsi, [rsp + 0x38]
lea r8, [rsp + 0x18]
jmp 0x5543aa
inc edx
mov r9, rsi
mov rsi, r8
mov r8, r9
cmp dword [rax + 8], edx
jle 0x5543be
mov dword [rsp + 0x14], edx
xor r9d, r9d
xor r10d, r10d
jmp 0x55464a
xor edx, edx
xor r9d, r9d
jmp 0x5543e4
mov dword [r8 + rdi*4], ebx
inc edx
add r9d, 3
inc r11d
mov rcx, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x80]
cmp dword [rax + 4], edx
jle 0x5544de
movsxd r10, r9d
cmp r10, 0x18
jae 0x554619
movzx r10d, byte [r10 + rax + 0xc]
cmp r10, 8
jae 0x55460c
mov r10d, dword [rsi + r10*4]
shr r10d, 8
movzx r10d, r10b
lea r12d, [r9 + 1]
movsxd r12, r12d
lea r13, str.cw
movzx r10d, byte [r10 + r13]
cmp r12, 0x18
jae 0x5545ff
movzx r12d, byte [r12 + rax + 0xc]
nop dword [rax]
cmp r12, 8
jae 0x5545f2
mov r12d, dword [rsi + r12*4]
shr r12d, 0x10
movzx r12d, r12b
lea r15d, [r9 + 2]
movsxd r15, r15d
movzx r12d, byte [r12 + r13]
cmp r15, 0x18
jae 0x5545e5
movzx r15d, byte [r15 + rax + 0xc]
cmp r15, 8
jae 0x5545d4
movsxd rbx, r11d
mov r15d, dword [rsi + r15*4]
shr r15d, 0x18
movzx r15d, r15b
movzx r15d, byte [r15 + r13]
cmp rbx, 0x78
jae 0x5545c7
movsxd rdi, edx
mov ebx, dword [rax + rbx*4 + 0x3c]
cmp rdi, 8
jae 0x5545ba
lea rcx, [rsi + rdi*4]
movzx ecx, byte [rcx]
movzx ecx, byte [r13 + rcx]
xor ebx, ecx
rol r10d, 8
xor ebx, r10d
rol r12d, 0x10
xor ebx, r12d
rol r15d, 0x18
xor ebx, r15d
cmp rdi, 8
jb 0x5543c5
jmp 0x5545ad
xor edx, edx
xor esi, esi
jmp 0x5544f2
shr r10d, 0x18
mov byte [rbx + r9 + 3], r10b
inc edx
add esi, 4
cmp dword [rax + 4], edx
jle 0x55455f
movsxd r9, esi
nop word [rax + rax]
cmp rcx, r9
jb 0x5545a5
movsxd r10, edx
mov r11, r9
sub r9, rdi
sar r9, 0x3f
mov r12, rcx
sub r12, r11
and r9, r11
nop
cmp r10, 8
jae 0x554596
mov r10d, dword [r8 + r10*4]
test r12, r12
jbe 0x55458c
mov byte [rbx + r9], r10b
cmp r12, 1
jbe 0x55457f
mov r11d, r10d
shr r10d, 8
mov byte [rbx + r9 + 1], r10b
cmp r12, 2
jbe 0x554572
mov r10d, r11d
shr r11d, 0x10
mov byte [rbx + r9 + 2], r11b
cmp r12, 3
ja 0x5544e4
jmp 0x554565
add rsp, 0x58
pop rbp
ret
mov eax, 3
mov rcx, rax
call sym.runtime.panicIndex
mov eax, 2
mov rcx, rax
call sym.runtime.panicIndex
mov eax, 1
mov rcx, rax
call sym.runtime.panicIndex
xor eax, eax
mov rcx, rax
call sym.runtime.panicIndex
mov rax, r10
mov ecx, 8
nop
call sym.runtime.panicIndex
mov rax, r9
call sym.runtime.panicSliceB
mov rax, rdi
mov ecx, 8
call sym.runtime.panicIndex
mov rax, rdi
mov ecx, 8
call sym.runtime.panicIndex
mov rax, rbx
mov ecx, 0x78
call sym.runtime.panicIndex
mov rax, r15
mov ecx, 8
nop dword [rax]
call sym.runtime.panicIndex
mov rax, r15
mov ecx, 0x18
call sym.runtime.panicIndex
mov rax, r12
mov ecx, 8
call sym.runtime.panicIndex
mov rax, r12
mov ecx, 0x18
call sym.runtime.panicIndex
mov rax, r10
mov ecx, 8
call sym.runtime.panicIndex
mov rax, r10
mov ecx, 0x18
call sym.runtime.panicIndex
mov dword [r8 + rcx*4], edi
inc r9d
add r10d, 3
inc r11d
mov rcx, qword [rsp + 0x78]
mov edx, dword [rsp + 0x14]
mov rbx, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x80]
cmp dword [rax + 4], r9d
jle 0x55439f
movsxd r12, r10d
nop word [rax + rax]
cmp r12, 0x18
jae 0x554799
movzx r12d, byte [r12 + rax + 0xc]
cmp r12, 8
jae 0x55478c
mov r12d, dword [rsi + r12*4]
shr r12d, 8
movzx r12d, r12b
lea r13d, [r10 + 1]
movsxd r13, r13d
lea r15, [0x006e9c20]
mov r12d, dword [r15 + r12*4]
nop dword [rax + rax]
cmp r13, 0x18
jae 0x55477f
movzx r13d, byte [r13 + rax + 0xc]
cmp r13, 8
jae 0x554772
mov r13d, dword [rsi + r13*4]
shr r13d, 0x10
movzx r13d, r13b
lea ebx, [r10 + 2]
movsxd rbx, ebx
mov r13d, dword [r15 + r13*4]
cmp rbx, 0x18
jae 0x554765
movzx ebx, byte [rbx + rax + 0xc]
cmp rbx, 8
jae 0x554758
movsxd rdi, r11d
mov ebx, dword [rsi + rbx*4]
shr ebx, 0x18
movzx ebx, bl
mov ebx, dword [r15 + rbx*4]
cmp rdi, 0x78
jae 0x55474b
movsxd rcx, r9d
mov edi, dword [rax + rdi*4 + 0x3c]
cmp rcx, 8
jae 0x55473e
lea rdx, [rsi + rcx*4]
movzx edx, byte [rdx]
xor edi, dword [r15 + rdx*4]
rol r12d, 8
xor edi, r12d
rol r13d, 0x10
xor edi, r13d
rol ebx, 0x18
xor edi, ebx
cmp rcx, 8
jb 0x554626
mov rax, rcx
mov ecx, 8
call sym.runtime.panicIndex
mov rax, rcx
mov ecx, 8
call sym.runtime.panicIndex
mov rax, rdi
mov ecx, 0x78
call sym.runtime.panicIndex
mov rax, rbx
mov ecx, 8
call sym.runtime.panicIndex
mov rax, rbx
mov ecx, 0x18
call sym.runtime.panicIndex
mov rax, r13
mov ecx, 8
call sym.runtime.panicIndex
mov rax, r13
mov ecx, 0x18
call sym.runtime.panicIndex
mov rax, r12
mov ecx, 8
call sym.runtime.panicIndex
mov rax, r12
mov ecx, 0x18
call sym.runtime.panicIndex
mov rax, r8
mov ecx, 8
call sym.runtime.panicIndex
mov eax, 3
mov rcx, r8
nop dword [rax + rax]
call sym.runtime.panicIndex
mov rax, r11
mov rcx, r8
call sym.runtime.panicSliceB
nop
int3