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

Disassembly:
sub rsp, 0x28
mov qword [rsp + 0x20], rbp
lea rbp, [rsp + 0x20]
mov rcx, qword [rsp + 0x68]
cmp rcx, 0xf
jbe 0x688560bc
nop
nop
nop
nop
mov rdx, qword [rsp + 0x60]
mov ebx, dword [rdx]
mov esi, dword [rdx + 4]
mov edi, dword [rdx + 8]
mov edx, dword [rdx + 0xc]
mov rcx, qword [rsp + 0x38]
test rcx, rcx
jbe 0x688560b5
bswap ebx
mov r8, qword [rsp + 0x30]
xor ebx, dword [r8]
cmp rcx, 1
jbe 0x688560ab
bswap esi
xor esi, dword [r8 + 4]
cmp rcx, 2
jbe 0x688560a1
bswap edi
xor edi, dword [r8 + 8]
cmp rcx, 3
jbe 0x68856097
bswap edx
xor edx, dword [r8 + 0xc]
mov r9, rcx
shr rcx, 2
lea r10, [rcx - 2]
xor eax, eax
xor ecx, ecx
xor r11d, r11d
xor r12d, r12d
xor r13d, r13d
mov r14d, 4
jmp 0x68855d90
inc rax
mov r15d, dword [r8 + r14*4 + 0xc]
shr r12d, 0x18
mov edi, r15d
movzx r15d, r12b
mov r15d, dword [r13 + r15*4]
xor r15d, edi
mov edi, r15d
mov r15d, dword [rsp + 0x18]
shr r15d, 0x10
movzx r15d, r15b
lea r12, sym.dpapi.dll_crypto_aes.td1
mov r15d, dword [r12 + r15*4]
xor edi, r15d
mov r15d, dword [rsp + 0x1c]
shr r15d, 8
movzx r15d, r15b
mov r15d, dword [r10 + r15*4]
xor edi, r15d
movzx r15d, bl
mov r15d, dword [rdx + r15*4]
xor edi, r15d
add r14, 4
mov r15d, dword [rsp + 0x14]
mov r10, rcx
mov ebx, r15d
mov edx, edi
mov edi, r11d
mov ecx, ebx
mov r11d, edx
mov r12d, edi
mov r13d, esi
cmp rax, r10
jge 0x68855eb8
cmp r14, r9
jae 0x6885608c
mov dword [rsp + 0x18], edi
mov r11d, dword [r8 + r14*4]
mov r12d, ebx
shr ebx, 0x18
movzx ebx, bl
lea r13, sym.dpapi.dll_crypto_aes.td0
mov ebx, dword [r13 + rbx*4]
xor ebx, r11d
mov r11d, edx
shr edx, 0x10
movzx edx, dl
lea r15, sym.dpapi.dll_crypto_aes.td1
mov edx, dword [r15 + rdx*4]
xor ebx, edx
shr edi, 8
movzx edi, dil
mov rcx, r10
lea r10, sym.dpapi.dll_crypto_aes.td2
mov edi, dword [r10 + rdi*4]
xor ebx, edi
movzx edi, sil
lea rdx, sym.dpapi.dll_crypto_aes.td3
mov edi, dword [rdx + rdi*4]
xor ebx, edi
lea rdi, [r14 + 1]
cmp rdi, r9
jae 0x68856081
mov dword [rsp + 0x14], ebx
mov dword [rsp + 0x1c], esi
mov edi, dword [r8 + r14*4 + 4]
shr esi, 0x18
movzx esi, sil
mov esi, dword [r13 + rsi*4]
xor esi, edi
mov edi, r12d
shr r12d, 0x10
movzx r12d, r12b
mov r12d, dword [r15 + r12*4]
xor esi, r12d
mov r12d, r11d
shr r11d, 8
movzx r11d, r11b
mov r11d, dword [r10 + r11*4]
xor esi, r11d
mov r11d, dword [rsp + 0x18]
movzx ebx, r11b
mov ebx, dword [rdx + rbx*4]
xor esi, ebx
lea rbx, [r14 + 2]
cmp rbx, r9
jae 0x68856076
mov ebx, dword [r8 + r14*4 + 8]
shr r11d, 0x18
movzx r11d, r11b
mov r11d, dword [r13 + r11*4]
xor r11d, ebx
mov ebx, dword [rsp + 0x1c]
shr ebx, 0x10
movzx ebx, bl
mov ebx, dword [r15 + rbx*4]
xor r11d, ebx
mov ebx, edi
shr edi, 8
movzx edi, dil
mov edi, dword [r10 + rdi*4]
xor r11d, edi
movzx edi, r12b
mov edi, dword [rdx + rdi*4]
xor r11d, edi
lea rdi, [r14 + 3]
cmp rdi, r9
jb 0x68855d19
jmp 0x6885606b
mov edx, ecx
shr ecx, 0x18
lea rbx, sym.dpapi.dll_crypto_aes.sbox1
movzx esi, byte [rbx + rcx]
shl esi, 0x18
mov edi, r11d
shr r11d, 0x10
movzx r10d, r11b
movzx r10d, byte [r10 + rbx]
shl r10d, 0x10
or esi, r10d
mov r10d, r12d
shr r12d, 8
movzx r11d, r12b
movzx r11d, byte [r11 + rbx]
shl r11d, 8
or esi, r11d
movzx r11d, r13b
movzx r11d, byte [r11 + rbx]
or r11d, esi
mov esi, r13d
shr r13d, 0x18
movzx r12d, byte [rbx + r13]
shl r12d, 0x18
mov r13d, edx
shr edx, 0x10
movzx edx, dl
movzx edx, byte [rdx + rbx]
shl edx, 0x10
or r12d, edx
mov edx, edi
shr edi, 8
movzx edi, dil
movzx edi, byte [rdi + rbx]
shl edi, 8
or r12d, edi
movzx edi, r10b
movzx edi, byte [rdi + rbx]
or edi, r12d
mov r12d, r10d
shr r10d, 0x18
movzx r10d, byte [rbx + r10]
shl r10d, 0x18
mov r15d, esi
shr esi, 0x10
movzx esi, sil
movzx esi, byte [rsi + rbx]
shl esi, 0x10
or r10d, esi
mov esi, r13d
shr r13d, 8
movzx r13d, r13b
movzx r13d, byte [r13 + rbx]
shl r13d, 8
or r13d, r10d
movzx r10d, dl
movzx r10d, byte [r10 + rbx]
or r10d, r13d
shr edx, 0x18
movzx edx, byte [rdx + rbx]
shl edx, 0x18
shr r12d, 0x10
movzx r12d, r12b
movzx r12d, byte [r12 + rbx]
shl r12d, 0x10
or edx, r12d
shr r15d, 8
movzx r12d, r15b
movzx r12d, byte [r12 + rbx]
shl r12d, 8
or edx, r12d
movzx esi, sil
movzx ebx, byte [rsi + rbx]
or ebx, edx
cmp r14, r9
jae 0x68856060
mov edx, dword [r8 + r14*4]
xor edx, r11d
lea rax, [r14 + 1]
cmp rax, r9
jae 0x68856058
mov esi, dword [r8 + r14*4 + 4]
xor esi, edi
lea rax, [r14 + 2]
cmp rax, r9
jae 0x68856050
mov edi, dword [r8 + r14*4 + 8]
xor edi, r10d
lea rax, [r14 + 3]
cmp rax, r9
jae 0x68856048
mov r8d, dword [r8 + r14*4 + 0xc]
xor r8d, ebx
mov rcx, qword [rsp + 0x50]
cmp rcx, 0xf
jbe 0x6885603e
nop
bswap edx
mov rax, qword [rsp + 0x48]
mov dword [rax], edx
nop
bswap esi
mov dword [rax + 4], esi
nop
bswap edi
mov dword [rax + 8], edi
bswap r8d
mov dword [rax + 0xc], r8d
mov rbp, qword [rsp + 0x20]
add rsp, 0x28
ret
mov eax, 0xf
call sym.dpapi.dll_runtime.panicIndex
mov rcx, r9
call sym.dpapi.dll_runtime.panicIndex
mov rcx, r9
call sym.dpapi.dll_runtime.panicIndex
mov rcx, r9
call sym.dpapi.dll_runtime.panicIndex
mov rax, r14
mov rcx, r9
call sym.dpapi.dll_runtime.panicIndex
mov rax, rdi
mov rcx, r9
call sym.dpapi.dll_runtime.panicIndex
mov rax, rbx
mov rcx, r9
call sym.dpapi.dll_runtime.panicIndex
mov rax, rdi
mov rcx, r9
call sym.dpapi.dll_runtime.panicIndex
mov rax, r14
mov rcx, r9
call sym.dpapi.dll_runtime.panicIndex
mov eax, 3
call sym.dpapi.dll_runtime.panicIndex
mov eax, 2
call sym.dpapi.dll_runtime.panicIndex
mov eax, 1
call sym.dpapi.dll_runtime.panicIndex
xor eax, eax
call sym.dpapi.dll_runtime.panicIndex
mov eax, 0xf
call sym.dpapi.dll_runtime.panicIndex
nop
int3