Function at 0x140055e60
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, 0x1f8
movdqa xmmword [rsp + 0x1e0], xmm15
movdqa xmmword [rsp + 0x1d0], xmm14
movdqa xmmword [rsp + 0x1c0], xmm13
movdqa xmmword [rsp + 0x1b0], xmm12
movdqa xmmword [rsp + 0x1a0], xmm11
movdqa xmmword [rsp + 0x190], xmm10
movdqa xmmword [rsp + 0x180], xmm9
movdqa xmmword [rsp + 0x170], xmm8
movdqa xmmword [rsp + 0x160], xmm7
movdqa xmmword [rsp + 0x150], xmm6
mov r14, r9
mov r15, r8
mov rbx, rdx
mov rsi, rcx
mov rcx, r9
call fcn.1400554e0
test rax, rax
je 0x140055f05
mov qword [rsi + 8], rax
lea rax, fcn.140003b20
mov qword [rsi + 0x10], rax
mov byte [rsi], 1
jmp 0x1400565ca
mov qword [rsp + 0x58], r14
mov r9, r14
shr r9, 2
cmp r9, 4
mov qword [rsp + 0x40], rsi
je 0x140055f33
cmp r9, 6
je 0x140055f3a
cmp r9, 8
jne 0x140056639
mov esi, 0xe
jmp 0x140055f3f
mov esi, 0xa
jmp 0x140055f3f
mov esi, 0xc
movdqu xmm0, xmmword [rbx]
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
movdqa xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x20], rsi
lea rdi, [rsp + 0x60]
mov rcx, rdi
mov rdx, r15
mov r8, r14
call fcn.140054fa0
lea rdx, [rsp + 0x30]
mov rcx, rsi
mov r8, rdi
call fcn.140055320
lea r12, [0x1401c4154]
lea r13, [0x1401c42b9]
mov r14, rsi
jmp 0x140055fda
cmp r14, 1
jbe 0x140056492
dec r14
movzx r9d, byte [rsp + 0x37]
movzx ecx, byte [rsp + 0x36]
movzx r10d, byte [rsp + 0x35]
movzx ebx, byte [rsp + 0x34]
movzx eax, byte [rsp + 0x38]
mov qword [rsp + 0x48], rax
movzx r11d, byte [rsp + 0x3a]
movzx r8d, byte [rsp + 0x39]
movzx edi, byte [rsp + 0x3b]
movzx eax, byte [rsp + 0x3c]
mov qword [rsp + 0x50], rax
movzx ebp, byte [rsp + 0x3d]
movzx esi, byte [rsp + 0x3e]
mov rdx, r14
movzx r14d, byte [rsp + 0x3f]
movzx r15d, byte [rsp + 0x30]
lea rax, [0x1401c4630]
movzx r15d, byte [r15 + rax]
mov byte [rsp + 0x30], r15b
movzx r15d, byte [rsp + 0x31]
movzx r15d, byte [r15 + rax]
mov byte [rsp + 0x31], r15b
movzx r15d, byte [rsp + 0x32]
movzx r15d, byte [r15 + rax]
mov byte [rsp + 0x32], r15b
movzx r15d, byte [rsp + 0x33]
movzx r15d, byte [r15 + rax]
mov byte [rsp + 0x33], r15b
movzx r9d, byte [r9 + rax]
mov byte [rsp + 0x34], r9b
movzx r9d, byte [rbx + rax]
mov byte [rsp + 0x35], r9b
movzx r9d, byte [r10 + rax]
mov byte [rsp + 0x36], r9b
movzx ecx, byte [rcx + rax]
mov byte [rsp + 0x37], cl
movzx ecx, byte [r11 + rax]
mov byte [rsp + 0x38], cl
movzx ecx, byte [rdi + rax]
mov byte [rsp + 0x39], cl
mov rcx, qword [rsp + 0x48]
movzx ecx, byte [rcx + rax]
mov byte [rsp + 0x3a], cl
movzx ecx, byte [r8 + rax]
mov byte [rsp + 0x3b], cl
movzx ecx, byte [rbp + rax]
mov byte [rsp + 0x3c], cl
movzx ecx, byte [rsi + rax]
mov byte [rsp + 0x3d], cl
movzx ecx, byte [r14 + rax]
mov r14, rdx
mov byte [rsp + 0x3e], cl
mov rcx, qword [rsp + 0x50]
movzx eax, byte [rcx + rax]
mov byte [rsp + 0x3f], al
mov rcx, rdx
lea rdx, [rsp + 0x30]
lea r8, [rsp + 0x60]
call fcn.140055320
mov eax, 0xc
jmp 0x14005614e
movzx ecx, byte [rcx + r12]
lea r10d, [rcx + 0xffe0]
lea r11d, [rcx + 0xdf]
cmp ecx, 0x20
cmovae r11d, r10d
movzx ecx, r11w
movzx ecx, byte [rcx + r13]
xor r8b, r9b
xor r8b, dl
xor r8b, cl
mov byte [rsp + rax + 0x30], r8b
inc rax
cmp rax, 0x10
je 0x140055fd0
movzx r9d, byte [rsp + rax + 0x24]
movzx r8d, byte [rsp + rax + 0x28]
movzx edx, byte [rsp + rax + 0x2c]
movzx ecx, byte [rsp + rax + 0x30]
test r9, r9
je 0x140056210
movzx r10d, byte [r9 + r12]
lea r11d, [r10 + 0xffe0]
lea esi, [r10 + 0xdf]
cmp r10d, 0x20
cmovae esi, r11d
movzx r10d, si
movzx r10d, byte [r10 + r13]
test r8, r8
je 0x14005621c
movzx r11d, byte [r8 + r12]
lea esi, [r11 + 0xff69]
lea edi, [r11 + 0x68]
cmp r11d, 0x97
cmovae edi, esi
movzx r11d, di
movzx r11d, byte [r11 + r13]
test rdx, rdx
je 0x140056224
movzx esi, byte [rdx + r12]
lea edi, [rsi + 0xffef]
lea ebx, [rsi + 0xee]
cmp esi, 0x11
cmovae ebx, edi
movzx esi, bx
movzx esi, byte [rsi + r13]
test rcx, rcx
je 0x14005622b
movzx edi, byte [rcx + r12]
lea ebx, [rdi + 0xffc8]
lea ebp, [rdi + 0xc7]
cmp edi, 0x38
cmovae ebp, ebx
movzx edi, bp
movzx edi, byte [rdi + r13]
jmp 0x14005622d
xor r10d, r10d
test r8, r8
jne 0x14005619a
xor r11d, r11d
test rdx, rdx
jne 0x1400561c2
xor esi, esi
test rcx, rcx
jne 0x1400561e6
xor edi, edi
xor r11b, r10b
xor r11b, sil
xor r11b, dil
mov byte [rsp + rax + 0x24], r11b
test r9, r9
je 0x1400562e0
movzx r10d, byte [r9 + r12]
lea r11d, [r10 + 0xffc8]
lea esi, [r10 + 0xc7]
cmp r10d, 0x38
cmovae esi, r11d
movzx r10d, si
movzx r10d, byte [r10 + r13]
test r8, r8
je 0x1400562ec
movzx r11d, byte [r8 + r12]
lea esi, [r11 + 0xffe0]
lea edi, [r11 + 0xdf]
cmp r11d, 0x20
cmovae edi, esi
movzx r11d, di
movzx r11d, byte [r11 + r13]
test rdx, rdx
je 0x1400562f4
movzx esi, byte [rdx + r12]
lea edi, [rsi + 0xff69]
lea ebx, [rsi + 0x68]
cmp esi, 0x97
cmovae ebx, edi
movzx esi, bx
movzx esi, byte [rsi + r13]
test rcx, rcx
je 0x1400562fb
movzx edi, byte [rcx + r12]
lea ebx, [rdi + 0xffef]
lea ebp, [rdi + 0xee]
cmp edi, 0x11
cmovae ebp, ebx
movzx edi, bp
movzx edi, byte [rdi + r13]
jmp 0x1400562fd
xor r10d, r10d
test r8, r8
jne 0x140056271
xor r11d, r11d
test rdx, rdx
jne 0x140056299
xor esi, esi
test rcx, rcx
jne 0x1400562bd
xor edi, edi
xor r11b, r10b
xor r11b, sil
xor r11b, dil
mov byte [rsp + rax + 0x28], r11b
test r9, r9
je 0x1400563b0
movzx r10d, byte [r9 + r12]
lea r11d, [r10 + 0xffef]
lea esi, [r10 + 0xee]
cmp r10d, 0x11
cmovae esi, r11d
movzx r10d, si
movzx r10d, byte [r10 + r13]
test r8, r8
je 0x1400563bc
movzx r11d, byte [r8 + r12]
lea esi, [r11 + 0xffc8]
lea edi, [r11 + 0xc7]
cmp r11d, 0x38
cmovae edi, esi
movzx r11d, di
movzx r11d, byte [r11 + r13]
test rdx, rdx
je 0x1400563c4
movzx esi, byte [rdx + r12]
lea edi, [rsi + 0xffe0]
lea ebx, [rsi + 0xdf]
cmp esi, 0x20
cmovae ebx, edi
movzx esi, bx
movzx esi, byte [rsi + r13]
test rcx, rcx
je 0x1400563cb
movzx edi, byte [rcx + r12]
lea ebx, [rdi + 0xff69]
lea ebp, [rdi + 0x68]
cmp edi, 0x97
cmovae ebp, ebx
movzx edi, bp
movzx edi, byte [rdi + r13]
jmp 0x1400563cd
xor r10d, r10d
test r8, r8
jne 0x140056341
xor r11d, r11d
test rdx, rdx
jne 0x140056369
xor esi, esi
test rcx, rcx
jne 0x14005638d
xor edi, edi
xor r11b, r10b
xor r11b, sil
xor r11b, dil
mov byte [rsp + rax + 0x2c], r11b
test r9, r9
je 0x140056470
movzx r9d, byte [r9 + r12]
lea r10d, [r9 + 0xff69]
lea r11d, [r9 + 0x68]
cmp r9d, 0x97
cmovae r11d, r10d
movzx r9d, r11w
movzx r9d, byte [r9 + r13]
test r8, r8
je 0x140056478
movzx r8d, byte [r8 + r12]
lea r10d, [r8 + 0xffef]
lea r11d, [r8 + 0xee]
cmp r8d, 0x11
cmovae r11d, r10d
movzx r8d, r11w
movzx r8d, byte [r8 + r13]
test rdx, rdx
je 0x140056480
movzx edx, byte [rdx + r12]
lea r10d, [rdx + 0xffc8]
lea r11d, [rdx + 0xc7]
cmp edx, 0x38
cmovae r11d, r10d
movzx edx, r11w
movzx edx, byte [rdx + r13]
test rcx, rcx
jne 0x140056110
jmp 0x14005648b
xor r9d, r9d
test r8, r8
jne 0x14005640d
xor r8d, r8d
test rdx, rdx
jne 0x140056436
xor edx, edx
test rcx, rcx
jne 0x140056110
xor ecx, ecx
jmp 0x140056133
movzx eax, byte [rsp + 0x3c]
lea rcx, [0x1401c4630]
movzx eax, byte [rax + rcx]
movd xmm0, eax
movzx eax, byte [rsp + 0x39]
movzx eax, byte [rax + rcx]
movd xmm1, eax
movzx eax, byte [rsp + 0x36]
movzx eax, byte [rax + rcx]
movd xmm3, eax
movzx eax, byte [rsp + 0x33]
movzx eax, byte [rax + rcx]
movd xmm2, eax
movzx eax, byte [rsp + 0x3f]
movzx eax, byte [rax + rcx]
movd xmm4, eax
movzx eax, byte [rsp + 0x38]
movzx eax, byte [rax + rcx]
movd xmm6, eax
movzx eax, byte [rsp + 0x35]
movzx eax, byte [rax + rcx]
movd xmm7, eax
movzx eax, byte [rsp + 0x32]
movzx eax, byte [rax + rcx]
movd xmm5, eax
movzx eax, byte [rsp + 0x3e]
movzx eax, byte [rax + rcx]
movd xmm8, eax
movzx eax, byte [rsp + 0x3b]
movzx eax, byte [rax + rcx]
movd xmm9, eax
movzx eax, byte [rsp + 0x34]
movzx eax, byte [rax + rcx]
movd xmm10, eax
movzx eax, byte [rsp + 0x31]
movzx eax, byte [rax + rcx]
movd xmm11, eax
movzx eax, byte [rsp + 0x3d]
movzx eax, byte [rax + rcx]
movd xmm12, eax
movzx eax, byte [rsp + 0x3a]
movzx eax, byte [rax + rcx]
movd xmm13, eax
movzx eax, byte [rsp + 0x37]
movzx eax, byte [rax + rcx]
movd xmm14, eax
movzx eax, byte [rsp + 0x30]
movzx eax, byte [rax + rcx]
movd xmm15, eax
punpcklbw xmm1, xmm0
punpcklbw xmm2, xmm3
punpcklwd xmm2, xmm1
punpcklbw xmm6, xmm4
punpcklbw xmm5, xmm7
punpcklwd xmm5, xmm6
punpckldq xmm5, xmm2
punpcklbw xmm9, xmm8
punpcklbw xmm11, xmm10
punpcklwd xmm11, xmm9
punpcklbw xmm13, xmm12
punpcklbw xmm15, xmm14
punpcklwd xmm15, xmm13
punpckldq xmm15, xmm11
punpcklqdq xmm15, xmm5
pxor xmm15, xmmword [rsp + 0x60]
mov rsi, qword [rsp + 0x40]
movdqu xmmword [rsi + 1], xmm15
mov byte [rsi], 0
mov rax, rsi
movaps xmm6, xmmword [rsp + 0x150]
movaps xmm7, xmmword [rsp + 0x160]
movaps xmm8, xmmword [rsp + 0x170]
movaps xmm9, xmmword [rsp + 0x180]
movaps xmm10, xmmword [rsp + 0x190]
movaps xmm11, xmmword [rsp + 0x1a0]
movaps xmm12, xmmword [rsp + 0x1b0]
movaps xmm13, xmmword [rsp + 0x1c0]
movaps xmm14, xmmword [rsp + 0x1d0]
movaps xmm15, xmmword [rsp + 0x1e0]
add rsp, 0x1f8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rax, [rsp + 0x58]
mov qword [rsp + 0x30], rax
lea rax, [fcn.14007e960]
mov qword [rsp + 0x38], rax
lea rax, [0x1401c4758]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 1
mov qword [rsp + 0x80], 0
lea rax, [rsp + 0x30]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], 1
lea rdx, [0x1401c4768]
lea rcx, [rsp + 0x60]
call fcn.1401b8a80
int3