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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x178
movdqa xmmword [rsp + 0x160], xmm6
mov r14, r9
mov r15, r8
mov rbx, rdx
mov rsi, rcx
mov rcx, r9
call fcn.1400554e0
test rax, rax
je 0x14005562c
mov qword [rsi + 8], rax
lea rax, fcn.140003b20
mov qword [rsi + 0x10], rax
mov byte [rsi], 1
jmp 0x140055dd1
mov qword [rsp + 0x68], r14
mov r9, r14
shr r9, 2
cmp r9, 4
je 0x140055656
cmp r9, 6
je 0x14005565e
cmp r9, 8
jne 0x140055df0
mov r12d, 0xe
jmp 0x140055664
mov r12d, 0xa
jmp 0x140055664
mov r12d, 0xc
mov qword [rsp + 0x58], rsi
movdqu xmm0, xmmword [rbx]
pxor xmm6, xmm6
movdqa xmm1, xmm0
punpckhbw xmm1, xmm6
pshufd xmm2, xmm1, 0xe7
pshuflw xmm2, xmm2, 0x72
punpcklbw xmm0, xmm6
pshufd xmm3, xmm0, 0xe7
pshuflw xmm3, xmm3, 0x72
punpckldq xmm3, xmm2
pshufd xmm1, xmm1, 0xe8
pshuflw xmm1, xmm1, 0xd8
pshufd xmm0, xmm0, 0xe8
pshuflw xmm0, xmm0, 0xd8
punpckldq xmm0, xmm1
packuswb xmm0, xmm3
movdqa xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x20], r12
lea rcx, [rsp + 0x70]
mov rdx, r15
mov r8, r14
call fcn.140054fa0
movdqa xmm0, xmmword [rsp + 0x70]
movdqa xmm1, xmm0
punpckhbw xmm1, xmm6
pshufd xmm2, xmm1, 0xe7
pshuflw xmm2, xmm2, 0x72
punpcklbw xmm0, xmm6
pshufd xmm3, xmm0, 0xe7
pshuflw xmm3, xmm3, 0x72
punpckldq xmm3, xmm2
pshufd xmm1, xmm1, 0xe8
pshuflw xmm1, xmm1, 0xd8
pshufd xmm0, xmm0, 0xe8
pshuflw xmm0, xmm0, 0xd8
punpckldq xmm0, xmm1
packuswb xmm0, xmm3
pxor xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm0
mov eax, 1
lea r15, str.cw
lea r13, [0x1401c4154]
lea rbp, [0x1401c42b9]
mov qword [rsp + 0x50], r12
jmp 0x140055791
movzx eax, r10b
movzx eax, byte [rax + r13]
lea ecx, [rax + 0xff1a]
lea r8d, [rax + 0x19]
cmp eax, 0xe6
cmovae r8d, ecx
movzx eax, r8w
movzx eax, byte [rax + rbp]
mov rcx, qword [rsp + 0x60]
lea rsi, [rcx + 1]
xor al, r11b
xor dl, al
mov byte [rsp + 0x3f], dl
lea rdx, [rsp + 0x30]
lea r8, [rsp + 0x70]
call fcn.140055320
mov rax, rsi
cmp r12, rsi
je 0x140055c7a
mov qword [rsp + 0x60], rax
mov r10, r13
movzx eax, byte [rsp + 0x30]
movzx r13d, byte [rax + r15]
movzx eax, byte [rsp + 0x31]
movzx ebx, byte [rax + r15]
movzx eax, byte [rsp + 0x32]
movzx ecx, byte [rax + r15]
movzx eax, byte [rsp + 0x33]
movzx eax, byte [rax + r15]
mov byte [rsp + 0x4f], al
mov byte [rsp + 0x33], al
movzx eax, byte [rsp + 0x35]
movzx r12d, byte [rax + r15]
mov r11d, r12d
xor r11b, r13b
mov byte [rsp + 0x4b], cl
je 0x140055810
movzx eax, r11b
movzx eax, byte [rax + r10]
lea ecx, [rax + 0xff1a]
lea edx, [rax + 0x19]
cmp eax, 0xe6
cmovae edx, ecx
movzx eax, dx
movzx ebp, byte [rax + rbp]
jmp 0x140055812
xor ebp, ebp
movzx eax, byte [rsp + 0x34]
movzx r14d, byte [rax + r15]
movzx eax, byte [rsp + 0x36]
movzx edx, byte [rax + r15]
movzx eax, byte [rsp + 0x37]
movzx esi, byte [rax + r15]
movzx eax, byte [rsp + 0x38]
movzx eax, byte [rax + r15]
mov byte [rsp + 0x4a], al
movzx eax, byte [rsp + 0x39]
movzx eax, byte [rax + r15]
mov byte [rsp + 0x4d], al
movzx eax, byte [rsp + 0x3a]
movzx r8d, byte [rax + r15]
movzx eax, byte [rsp + 0x3b]
movzx eax, byte [rax + r15]
mov byte [rsp + 0x49], al
movzx eax, byte [rsp + 0x3c]
movzx edi, byte [rax + r15]
movzx eax, byte [rsp + 0x3d]
movzx eax, byte [rax + r15]
mov byte [rsp + 0x4e], al
movzx eax, byte [rsp + 0x3e]
movzx eax, byte [rax + r15]
mov byte [rsp + 0x4c], al
movzx eax, byte [rsp + 0x3f]
mov r9, r15
movzx eax, byte [rax + r15]
mov ecx, eax
xor cl, r8b
xor bpl, r12b
xor bpl, cl
mov byte [rsp + 0x30], bpl
xor r12b, r8b
je 0x1400558e0
movzx r12d, r12b
movzx r12d, byte [r12 + r10]
lea ebp, [r12 + 0xff1a]
lea r15d, [r12 + 0x19]
cmp r12d, 0xe6
cmovae r15d, ebp
movzx r15d, r15w
lea r12, [0x1401c42b9]
movzx ebp, byte [r15 + r12]
jmp 0x1400558e2
xor ebp, ebp
xor bpl, r13b
xor bpl, cl
mov byte [rsp + 0x34], bpl
test cl, cl
je 0x140055930
movzx ecx, cl
movzx ecx, byte [rcx + r10]
lea ebp, [rcx + 0xff1a]
lea r15d, [rcx + 0x19]
cmp ecx, 0xe6
cmovae r15d, ebp
movzx ecx, r15w
lea rbp, [0x1401c42b9]
movzx ecx, byte [rcx + rbp]
mov r15, r9
jmp 0x14005593c
xor ecx, ecx
mov r15, r9
lea rbp, [0x1401c42b9]
xor cl, al
xor cl, r11b
mov byte [rsp + 0x38], cl
xor r13b, al
mov r9d, r14d
je 0x140055980
movzx eax, r13b
mov r13, r10
movzx eax, byte [rax + r10]
lea ecx, [rax + 0xff1a]
lea ebp, [rax + 0x19]
cmp eax, 0xe6
cmovae ebp, ecx
movzx eax, bp
lea rbp, [0x1401c42b9]
movzx eax, byte [rax + rbp]
jmp 0x140055985
xor eax, eax
mov r13, r10
movzx r14d, byte [rsp + 0x4a]
xor al, r8b
xor r11b, al
mov byte [rsp + 0x3c], r11b
mov r12d, edx
xor r12b, bl
movzx r10d, byte [rsp + 0x4f]
je 0x1400559d0
movzx eax, r12b
movzx eax, byte [rax + r13]
lea ecx, [rax + 0xff1a]
lea r8d, [rax + 0x19]
cmp eax, 0xe6
cmovae r8d, ecx
movzx eax, r8w
movzx ecx, byte [rax + rbp]
jmp 0x1400559d2
xor ecx, ecx
movzx r11d, byte [rsp + 0x49]
mov eax, edi
xor al, r11b
xor cl, dl
xor cl, al
mov byte [rsp + 0x31], cl
xor dl, r11b
je 0x140055a10
movzx ecx, dl
movzx ecx, byte [rcx + r13]
lea edx, [rcx + 0xff1a]
lea r8d, [rcx + 0x19]
cmp ecx, 0xe6
cmovae r8d, edx
movzx ecx, r8w
movzx ecx, byte [rcx + rbp]
jmp 0x140055a12
xor ecx, ecx
xor cl, bl
xor cl, al
mov byte [rsp + 0x35], cl
test al, al
je 0x140055a40
movzx eax, al
movzx eax, byte [rax + r13]
lea ecx, [rax + 0xff1a]
lea edx, [rax + 0x19]
cmp eax, 0xe6
cmovae edx, ecx
movzx eax, dx
movzx eax, byte [rax + rbp]
jmp 0x140055a42
xor eax, eax
xor al, dil
xor al, r12b
mov byte [rsp + 0x39], al
xor bl, dil
je 0x140055a80
movzx eax, bl
movzx eax, byte [rax + r13]
lea ecx, [rax + 0xff1a]
lea edx, [rax + 0x19]
cmp eax, 0xe6
cmovae edx, ecx
movzx eax, dx
movzx eax, byte [rax + rbp]
jmp 0x140055a82
xor eax, eax
movzx ebx, byte [rsp + 0x4c]
movzx edi, byte [rsp + 0x4b]
xor al, r11b
xor r12b, al
mov byte [rsp + 0x3d], r12b
mov edx, esi
xor dl, dil
je 0x140055ad0
movzx eax, dl
movzx eax, byte [rax + r13]
lea ecx, [rax + 0xff1a]
lea r8d, [rax + 0x19]
cmp eax, 0xe6
cmovae r8d, ecx
movzx eax, r8w
movzx ecx, byte [rax + rbp]
jmp 0x140055ad2
xor ecx, ecx
mov r12, qword [rsp + 0x50]
movzx eax, byte [rsp + 0x4e]
xor al, r14b
xor cl, sil
xor cl, al
mov byte [rsp + 0x32], cl
xor sil, r14b
je 0x140055b20
movzx ecx, sil
movzx ecx, byte [rcx + r13]
lea r8d, [rcx + 0xff1a]
lea r11d, [rcx + 0x19]
cmp ecx, 0xe6
cmovae r11d, r8d
movzx ecx, r11w
movzx ecx, byte [rcx + rbp]
jmp 0x140055b22
xor ecx, ecx
movzx r11d, byte [rsp + 0x4d]
xor cl, dil
xor cl, al
mov byte [rsp + 0x36], cl
test al, al
je 0x140055b60
movzx eax, al
movzx eax, byte [rax + r13]
lea ecx, [rax + 0xff1a]
lea r8d, [rax + 0x19]
cmp eax, 0xe6
cmovae r8d, ecx
movzx eax, r8w
movzx eax, byte [rax + rbp]
jmp 0x140055b62
xor eax, eax
movzx ecx, byte [rsp + 0x4e]
xor al, cl
xor al, dl
mov byte [rsp + 0x3a], al
xor dil, cl
je 0x140055ba0
movzx eax, dil
movzx eax, byte [rax + r13]
lea ecx, [rax + 0xff1a]
lea r8d, [rax + 0x19]
cmp eax, 0xe6
cmovae r8d, ecx
movzx eax, r8w
movzx eax, byte [rax + rbp]
jmp 0x140055ba2
xor eax, eax
xor al, r14b
xor dl, al
mov byte [rsp + 0x3e], dl
mov edx, r9d
xor dl, r10b
je 0x140055be0
movzx eax, dl
movzx eax, byte [rax + r13]
lea ecx, [rax + 0xff1a]
lea r8d, [rax + 0x19]
cmp eax, 0xe6
cmovae r8d, ecx
movzx eax, r8w
movzx ecx, byte [rax + rbp]
jmp 0x140055be2
xor ecx, ecx
mov eax, ebx
xor al, r11b
xor cl, r9b
xor cl, al
mov byte [rsp + 0x33], cl
xor r9b, r11b
je 0x140055c20
movzx ecx, r9b
movzx ecx, byte [rcx + r13]
lea r8d, [rcx + 0xff1a]
lea r9d, [rcx + 0x19]
cmp ecx, 0xe6
cmovae r9d, r8d
movzx ecx, r9w
movzx ecx, byte [rcx + rbp]
jmp 0x140055c22
xor ecx, ecx
xor cl, r10b
xor cl, al
mov byte [rsp + 0x37], cl
test al, al
je 0x140055c60
movzx eax, al
movzx eax, byte [rax + r13]
lea ecx, [rax + 0xff1a]
lea r8d, [rax + 0x19]
cmp eax, 0xe6
cmovae r8d, ecx
movzx eax, r8w
movzx eax, byte [rax + rbp]
jmp 0x140055c62
xor eax, eax
xor al, bl
xor al, dl
mov byte [rsp + 0x3b], al
xor r10b, bl
jne 0x140055740
xor eax, eax
jmp 0x140055764
movzx eax, byte [rsp + 0x30]
movzx eax, byte [rax + r15]
mov byte [rsp + 0x30], al
movzx eax, byte [rsp + 0x31]
movzx eax, byte [rax + r15]
mov byte [rsp + 0x31], al
movzx eax, byte [rsp + 0x32]
movzx eax, byte [rax + r15]
mov byte [rsp + 0x32], al
movzx eax, byte [rsp + 0x33]
movzx eax, byte [rax + r15]
mov byte [rsp + 0x33], al
movzx eax, byte [rsp + 0x34]
movzx eax, byte [rax + r15]
movzx ecx, byte [rsp + 0x35]
movzx ecx, byte [rcx + r15]
movzx edx, byte [rsp + 0x36]
movzx edx, byte [rdx + r15]
movzx r8d, byte [rsp + 0x37]
movzx r8d, byte [r8 + r15]
movzx r9d, byte [rsp + 0x38]
movzx r9d, byte [r9 + r15]
movzx r10d, byte [rsp + 0x39]
movzx r10d, byte [r10 + r15]
movzx r11d, byte [rsp + 0x3a]
movzx r11d, byte [r11 + r15]
movzx esi, byte [rsp + 0x3b]
movzx ebx, byte [rsi + r15]
movzx esi, byte [rsp + 0x3c]
movzx esi, byte [rsi + r15]
movzx edi, byte [rsp + 0x3d]
movzx edi, byte [rdi + r15]
movzx r14d, byte [rsp + 0x3e]
movzx ebp, byte [r14 + r15]
movzx r14d, byte [rsp + 0x3f]
movzx r14d, byte [r14 + r15]
mov byte [rsp + 0x34], cl
mov byte [rsp + 0x35], dl
mov byte [rsp + 0x36], r8b
mov byte [rsp + 0x37], al
mov byte [rsp + 0x38], r11b
mov byte [rsp + 0x3a], r9b
mov byte [rsp + 0x39], bl
mov byte [rsp + 0x3b], r10b
mov byte [rsp + 0x3c], r14b
mov byte [rsp + 0x3f], bpl
mov byte [rsp + 0x3e], dil
mov byte [rsp + 0x3d], sil
lea rdx, [rsp + 0x30]
lea r8, [rsp + 0x70]
mov rcx, r12
call fcn.140055320
movdqa xmm0, xmmword [rsp + 0x30]
pxor xmm1, xmm1
movdqa xmm2, xmm0
punpckhbw xmm2, xmm1
pshufd xmm3, xmm2, 0xe7
pshuflw xmm3, xmm3, 0x72
punpcklbw xmm0, xmm1
pshufd xmm1, xmm0, 0xe7
pshuflw xmm1, xmm1, 0x72
punpckldq xmm1, xmm3
pshufd xmm2, xmm2, 0xe8
pshuflw xmm2, xmm2, 0xd8
pshufd xmm0, xmm0, 0xe8
pshuflw xmm0, xmm0, 0xd8
punpckldq xmm0, xmm2
packuswb xmm0, xmm1
mov rsi, qword [rsp + 0x58]
movdqu xmmword [rsi + 1], xmm0
mov byte [rsi], 0
mov rax, rsi
movaps xmm6, xmmword [rsp + 0x160]
add rsp, 0x178
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rax, [rsp + 0x68]
mov qword [rsp + 0x30], rax
lea rax, [fcn.14007e960]
mov qword [rsp + 0x38], rax
lea rax, [0x1401c4758]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], 1
mov qword [rsp + 0x90], 0
lea rax, [rsp + 0x30]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], 1
lea rdx, [0x1401c4768]
lea rcx, [rsp + 0x70]
call fcn.1401b8a80
int3