Function at 0x180001122
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, 0x20
mov qword [rsp + 0x18], rdx
mov qword [rsp + 8], rcx
mov rax, qword [rsp + 8]
movzx eax, byte [rax + 8]
mov dword [rsp + 0x14], eax
mov r10d, 0x2b4bb9a9
cmp r10d, 0x579da7d2
jg 0x180001198
cmp r10d, 0x2b4bb9a8
jg 0x1800011c5
cmp r10d, 0xc31d0311
je 0x180001309
cmp r10d, 0xfc0c7489
jne 0x180001505
mov r10, qword [rsp + 8]
cmp ecx, dword [r10 + 0x3d4]
mov r10d, 0x579da7d3
mov eax, 0x41378caa
cmovl r10d, eax
jmp 0x18000114f
cmp r10d, 0x754d2946
jg 0x1800012ea
cmp r10d, 0x579da7d3
je 0x180001493
cmp r10d, 0x73e832f8
jne 0x18000114f
inc ecx
mov r10d, 0xfc0c7489
jmp 0x18000114f
cmp r10d, 0x2b4bb9a9
je 0x18000149e
cmp r10d, 0x41378caa
jne 0x18000114f
mov r10, qword [rsp + 8]
mov edi, r13d
shr edi, 0x18
mov r11d, r12d
shr r11d, 0x10
mov dword [rsp + 4], ecx
mov ecx, 0xff
and r11d, ecx
lea rbp, [0x180007400]
mov r11d, dword [rbp + r11*4]
lea rax, section..rdata
xor r11d, dword [rax + rdi*4]
mov edi, r15d
shr edi, 8
and edi, ecx
lea rsi, [0x180007800]
xor r11d, dword [rsi + rdi*4]
mov edi, r9d
and edi, ecx
lea rdx, [0x180007c00]
xor r11d, dword [rdx + rdi*4]
mov ebx, r12d
shr ebx, 0x18
mov edi, r15d
shr edi, 0x10
and edi, ecx
mov edi, dword [rbp + rdi*4]
xor edi, dword [rax + rbx*4]
mov ebx, r9d
shr ebx, 8
and ebx, ecx
xor edi, dword [rsi + rbx*4]
mov ebx, r13d
and ebx, ecx
xor edi, dword [rdx + rbx*4]
mov r14d, r15d
shr r14d, 0x18
mov ebx, r9d
shr ebx, 0x10
and ebx, ecx
mov ebx, dword [rbp + rbx*4]
xor ebx, dword [rax + r14*4]
mov r14d, r13d
shr r14d, 8
and r14d, ecx
xor ebx, dword [rsi + r14*4]
mov r14d, r12d
and r14d, ecx
xor ebx, dword [rdx + r14*4]
shr r9d, 0x18
shr r13d, 0x10
and r13d, ecx
mov ebp, dword [rbp + r13*4]
xor ebp, dword [rax + r9*4]
shr r12d, 8
and r12d, ecx
xor ebp, dword [rsi + r12*4]
and r15d, ecx
mov ecx, dword [rsp + 4]
xor ebp, dword [rdx + r15*4]
movsxd r9, ecx
shl r9, 5
xor r11d, dword [r10 + r9 + 0xc]
xor edi, dword [r10 + r9 + 0x10]
xor ebx, dword [r10 + r9 + 0x14]
xor ebp, dword [r10 + r9 + 0x18]
mov r10d, 0x73e832f8
mov r9d, ebp
mov r15d, ebx
mov r12d, edi
mov r13d, r11d
jmp 0x18000114f
cmp r10d, 0x754d2947
je 0x1800014b7
cmp r10d, 0x7814e50e
je 0x180001488
jmp 0x18000114f
mov r10, qword [rsp + 8]
mov r11, qword [rsp + 8]
movsxd r11, dword [r11 + 0x3d4]
shl r11, 5
mov r14d, dword [r10 + r11 + 0xc]
mov ebx, r13d
mov rdi, rbx
shr rdi, 0x18
mov ebp, r14d
shr ebp, 0x18
lea rsi, str.cw
xor bpl, byte [rdi + rsi]
mov byte [r8], bpl
mov edi, r12d
shr edi, 0x10
mov eax, 0xff
and rdi, rax
mov ebp, r14d
shr ebp, 0x10
xor bpl, byte [rdi + rsi]
mov byte [r8 + 1], bpl
mov edi, r15d
shr edi, 8
and rdi, rax
mov ebp, r14d
shr ebp, 8
xor bpl, byte [rdi + rsi]
mov byte [r8 + 2], bpl
mov edi, r9d
mov rbp, rdi
and rbp, rax
xor r14b, byte [rbp + rsi]
mov byte [r8 + 3], r14b
mov edx, dword [r10 + r11 + 0x10]
mov dword [rsp + 4], ecx
mov ecx, r12d
mov r14, rcx
shr r14, 0x18
mov ebp, edx
shr ebp, 0x18
xor bpl, byte [r14 + rsi]
mov byte [r8 + 4], bpl
mov r14d, r15d
shr r14d, 0x10
and r14, rax
mov ebp, edx
shr ebp, 0x10
xor bpl, byte [r14 + rsi]
mov byte [r8 + 5], bpl
mov r14d, r9d
shr r14d, 8
and r14, rax
mov ebp, edx
shr ebp, 8
xor bpl, byte [r14 + rsi]
mov byte [r8 + 6], bpl
and rbx, rax
xor dl, byte [rbx + rsi]
mov byte [r8 + 7], dl
mov ebp, dword [r10 + r11 + 0x14]
mov ebx, r15d
mov rdx, rbx
shr rdx, 0x18
mov r14d, ebp
shr r14d, 0x18
xor r14b, byte [rdx + rsi]
mov byte [r8 + 8], r14b
mov edx, r9d
shr edx, 0x10
and rdx, rax
mov r14d, ebp
shr r14d, 0x10
xor r14b, byte [rdx + rsi]
mov byte [r8 + 9], r14b
mov edx, r13d
shr edx, 8
and rdx, rax
mov r14d, ebp
shr r14d, 8
xor r14b, byte [rdx + rsi]
mov byte [r8 + 0xa], r14b
and rcx, rax
xor bpl, byte [rcx + rsi]
mov byte [r8 + 0xb], bpl
mov r10d, dword [r10 + r11 + 0x18]
shr rdi, 0x18
mov ecx, r10d
shr ecx, 0x18
xor cl, byte [rdi + rsi]
mov byte [r8 + 0xc], cl
mov ecx, r13d
shr ecx, 0x10
and rcx, rax
mov edx, r10d
shr edx, 0x10
xor dl, byte [rcx + rsi]
mov byte [r8 + 0xd], dl
mov ecx, r12d
shr ecx, 8
and rcx, rax
mov edx, r10d
shr edx, 8
xor dl, byte [rcx + rsi]
mov ecx, dword [rsp + 4]
mov byte [r8 + 0xe], dl
and rbx, rax
xor r10b, byte [rbx + rsi]
mov byte [r8 + 0xf], r10b
mov r10d, 0xa08a1475
jmp 0x18000114f
mov r10d, 0xc31d0311
jmp 0x18000114f
cmp dword [rsp + 0x14], 0
mov r10d, 0x754d2947
mov eax, 0x7814e50e
cmove r10d, eax
jmp 0x18000114f
mov r10, qword [rsp + 8]
mov rax, qword [rsp + 0x18]
mov r13d, dword [rax]
bswap r13d
xor r13d, dword [r10 + 0xc]
mov r12d, dword [rax + 4]
bswap r12d
xor r12d, dword [r10 + 0x10]
mov r15d, dword [rax + 8]
bswap r15d
xor r15d, dword [r10 + 0x14]
mov r9d, dword [rax + 0xc]
add rax, 0x10
mov qword [rsp + 0x18], rax
bswap r9d
xor r9d, dword [r10 + 0x18]
mov r10d, 0xfc0c7489
mov ecx, 1
jmp 0x18000114f
cmp r10d, 0xa08a1475
jne 0x18000114f
add rsp, 0x20
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret