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

Disassembly:
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xf]
sub rsp, 0x98
mov r10, rdx
mov r11, r9
imul edx, r8d, 0x2fd
mov r12d, r8d
mov dword [rbp - 0x21], edx
cmp r8d, edx
ja 0x18002925f
mov r13, qword [rbp + 0x7f]
mov r15, qword [rbp - 9]
mov r14d, dword [rbp + 0x67]
mov rbx, qword [rbp + 0x77]
lea r9, section..data
mov edx, r14d
cmp r12d, 0x54b
ja 0x180028e34
je 0x180028e21
cmp r12d, 0x1c7
ja 0x180028d71
je 0x180028d66
mov eax, r12d
sub eax, 5
je 0x180028e0b
sub eax, 0x91
je 0x180029189
sub eax, 0x2a
je 0x180028d52
cmp eax, 0x26
jne 0x180029167
mov qword [rbp - 0x39], 1
jmp 0x180029167
mov qword [rcx + 8], 0
mov qword [rcx], 0
jmp 0x180029167
xor r15d, r15d
xor r14d, r14d
jmp 0x180029167
cmp r12d, 0x2a8
je 0x180028df1
cmp r12d, 0x389
je 0x180028dbd
cmp r12d, 0x46a
jne 0x180029167
mov rdx, qword [rbp - 0x41]
movzx r8d, byte [rbp - 0x59]
and r8b, byte [rdx + 0xd]
mov byte [rbp - 0x59], r8b
cmp r8b, byte [rdx + 0xf]
ja 0x180028db1
cmp byte [rdx + 0xe], r8b
jbe 0x180029167
mov rax, 0xffffffffffffffff
jmp 0x180029263
mov rdx, qword [rbp - 0x41]
movzx r8d, byte [rbp - 0x59]
cmp dword [rdx + 8], 5
jne 0x180028de1
cmp r8b, byte [rdx + 0xf]
jbe 0x180028de1
mov edx, dword [rcx]
inc edx
shl rdx, 4
add rdx, r9
mov qword [rbp - 0x41], rdx
movzx ecx, byte [rdx + 0xc]
shr r8b, cl
mov byte [rbp - 0x59], r8b
jmp 0x180029167
mov eax, dword [rcx]
shl rax, 4
add rax, r9
mov dword [rbp - 0x51], 0
cmp qword [r11], 0
mov qword [rbp - 0x41], rax
je 0x180028e18
movzx ecx, byte [r13]
mov byte [rbp - 0x59], cl
jmp 0x180029167
mov byte [rbp - 0x59], 0
jmp 0x180029167
movzx ecx, byte [rbp - 0x59]
mov rax, qword [rbp - 0x41]
sub cl, byte [rax + 0xe]
mov byte [rbp - 0x59], cl
jmp 0x180029167
cmp r12d, 0x9b0
ja 0x1800290e8
je 0x18002925f
cmp r12d, 0x62c
je 0x1800290be
cmp r12d, 0x70d
je 0x180028f06
cmp r12d, 0x7ee
je 0x180028e8b
cmp r12d, 0x8cf
jne 0x180029167
mov rcx, qword [rbp - 0x39]
add rcx, r15
mov qword [rbp - 0x39], rcx
mov qword [rbp - 0x19], rcx
jmp 0x180029167
mov rax, qword [rbp - 0x41]
mov ecx, dword [rax + 8]
cmp ecx, 4
jne 0x180028ea0
dec qword [rbp - 0x39]
jmp 0x180029167
lea eax, [rcx - 3]
test eax, 0xfffffffc
jne 0x180029167
cmp ecx, 4
je 0x180029167
mov rax, qword [rbx]
lea rdx, [rbp - 0x31]
xor r9d, r9d
xor r8d, r8d
mov ecx, dword [rax + 0xc]
mov dword [rbp - 0x31], ecx
mov ecx, 0xc7
call fcn.180008350
test eax, eax
jne 0x180028efd
mov rax, qword [rbx]
lea rdx, [rbp - 0x29]
xor r9d, r9d
xor r8d, r8d
mov ecx, dword [rax + 0x10]
mov dword [rbp - 0x29], ecx
mov ecx, 0xc7
call fcn.180008350
test eax, eax
je 0x180029167
dec qword [rbp - 0x39]
jmp 0x180029167
mov rdx, qword [rbp + 0x77]
mov rax, qword [rdx]
mov esi, dword [rax]
test esi, esi
je 0x18002903e
mov edi, esi
shl rdi, 4
add rdi, r9
cmp dword [rdi + 8], 2
je 0x18002903e
test r14d, r14d
je 0x180028f39
cmp dword [r10], 0
jne 0x18002903e
mov ebx, 0xfe
nop
cmp ebx, 0xfe
je 0x180028f82
cmp ebx, 0x1a8
jne 0x180028fde
test r14d, r14d
je 0x180028f73
cmp r15, 0xffffffffffffffff
je 0x180028f6a
mov rax, qword [rdx]
movzx ecx, word [rax + 4]
test ecx, ecx
jne 0x180028f73
mov dword [rbp - 0x51], 1
jmp 0x180028fde
xor r14d, r14d
cmp r15, 0xffffffffffffffff
je 0x180028db1
jmp 0x180028fde
mov eax, dword [rdi + 8]
sub eax, 4
test eax, 0xfffffffd
mov rax, qword [r11]
je 0x180028fa5
cmp rax, 1
jbe 0x180028db1
lea rcx, [r13 + 1]
dec rax
jmp 0x180028fa8
mov rcx, r13
mov qword [rsp + 0x28], rcx
lea r9, [rbp - 0x11]
mov qword [rsp + 0x20], rdx
lea rcx, [rbp - 0x49]
mov rdx, r10
mov dword [rbp - 0x49], esi
mov r8d, 5
mov qword [rbp - 0x11], rax
call fcn.180028ca0
mov rdx, qword [rbp + 0x77]
mov r15, rax
mov r10, qword [rbp + 0x5f]
mov r11, qword [rbp + 0x6f]
add ebx, 0xaa
cmp ebx, 0x252
jb 0x180028f40
mov rcx, qword [rbp + 0x57]
cmp dword [rbp - 0x51], 0
je 0x180029163
mov ebx, 0x88
mov eax, ebx
sub eax, 0x88
je 0x180029058
cmp eax, 1
jne 0x180029098
test r14d, 0x3000
je 0x180029053
mov rax, qword [rdx]
mov ecx, dword [rax + 4]
and ecx, 0xf000
cmp ecx, 0x1000
jne 0x18002904c
and r14d, 0xfffff0ff
or dword [r10], r14d
jmp 0x180029098
test r14d, r14d
je 0x180028ff4
mov dword [rbp - 0x51], 1
jmp 0x180028ffe
and r14d, 0xffffcfff
or dword [r10], r14d
jmp 0x180029098
mov eax, dword [rcx]
lea r9, [rbp - 0x11]
mov dword [rbp - 0x49], eax
lea rcx, [rbp - 0x49]
mov rax, qword [r11]
mov r8d, 5
dec rax
mov qword [rbp - 0x11], rax
lea rax, [r13 + 1]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdx
mov rdx, r10
call fcn.180028ca0
mov r15, rax
cmp rax, 0xffffffffffffffff
je 0x180028db1
mov rdx, qword [rbp + 0x77]
inc ebx
mov r10, qword [rbp + 0x5f]
mov r11, qword [rbp + 0x6f]
mov rcx, qword [rbp + 0x57]
cmp ebx, 0x8a
jb 0x180029003
mov rbx, rdx
jmp 0x180029167
movzx eax, byte [rbp - 0x59]
lea rcx, [rax + rax*4]
mov rax, qword [rbp - 0x41]
shl rcx, 4
mov rax, qword [rax]
add rcx, rax
mov qword [rbx], rcx
mov eax, dword [rcx + 4]
bt eax, 0x1c
movzx r14d, ax
cmovae r14d, edx
jmp 0x180029167
cmp r12d, 0x2280
je 0x180029125
cmp r12d, 0x4440
je 0x18002910c
cmp r12d, 0x6600
jne 0x180029167
mov byte [rbp - 0x19], 1
jmp 0x18002925f
mov eax, dword [r13 + 0x20]
add rax, qword [rbp - 9]
mov qword [rcx + 8], rax
mov eax, dword [r13 + 0x24]
add rax, qword [rbp - 9]
mov qword [rcx], rax
jmp 0x180029167
mov rdx, qword [r13 + 0x10]
mov r9d, 0x40
mov r8d, 0x1000
xor ecx, ecx
call qword [r11]
mov qword [rbp - 9], rax
test rax, rax
je 0x18002925b
cmp qword [r13 + 0x18], 0x10
mov rdx, r13
jb 0x180029155
mov rdx, qword [r13]
mov r8, qword [r13 + 0x10]
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
jmp 0x180029167
mov rbx, qword [rbp + 0x77]
imul eax, dword [rbp + 0x67], 0x2d
add r12d, eax
cmp r12d, dword [rbp - 0x21]
ja 0x18002925f
mov r10, qword [rbp + 0x5f]
mov r11, qword [rbp + 0x6f]
mov rcx, qword [rbp + 0x57]
jmp 0x180028cf8
mov eax, dword [r13]
lea r9, [rbp + 0x67]
lea r8, [rbp - 0x21]
mov dword [rbp - 0x21], eax
mov edx, 0x7f
mov dword [rbp + 0x67], 2
xor ecx, ecx
call fcn.18003bb40
mov esi, eax
lea r9, [rbp - 0x49]
mov eax, dword [r13]
lea r8, [rbp - 0x29]
mov edx, 0x7f
mov dword [rbp - 0x29], eax
xor ecx, ecx
mov dword [rbp - 0x49], 1
call fcn.18003bb40
mov edi, eax
lea r9, [rbp - 0x31]
mov eax, dword [r13]
lea r8, [rbp - 0x51]
mov edx, 0x7f
mov dword [rbp - 0x51], eax
xor ecx, ecx
mov dword [rbp - 0x31], 0
call fcn.18003bb40
mov ebx, eax
lea r9, [rbp - 0x41]
mov eax, dword [r13]
lea r8, [rbp - 0x39]
mov edx, 0x7f
mov dword [rbp - 0x39], eax
xor ecx, ecx
mov dword [rbp - 0x41], 3
call fcn.18003bb40
lea r9, str.cw
movzx ecx, sil
movzx r8d, byte [rcx + r9]
shl r8d, 8
movzx ecx, dil
movzx edx, byte [rcx + r9]
xor r8d, edx
movzx ecx, bl
shl r8d, 8
movzx edx, byte [rcx + r9]
xor r8d, edx
movzx ecx, al
shl r8d, 8
movzx eax, byte [rcx + r9]
xor r8d, eax
mov dword [rbp - 0x19], r8d
jmp 0x18002925f
mov byte [rbp - 0x19], 0
mov rax, qword [rbp - 0x19]
add rsp, 0x98
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret