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

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x47f0f7
sub rsp, 0x48
mov qword [rsp + 0x40], rbp
lea rbp, [rsp + 0x40]
mov qword [rsp + 0x80], r9
mov qword [rsp + 0x90], r11
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x78], r8
mov qword [rsp + 0x68], rdi
mov rcx, r11
mov rax, r9
mov ebx, 4
call fcn.0047bee0
mov dword [rsp + 0x30], eax
mov rcx, qword [rsp + 0x90]
lea rdx, [rcx - 4]
mov rsi, rdx
neg rdx
sar rdx, 0x3f
and edx, 4
mov rdi, qword [rsp + 0x80]
add rdx, rdi
mov ebx, 4
mov rax, rdx
mov rcx, rsi
nop
call fcn.0047bee0
mov dword [rsp + 0x2c], eax
mov rcx, qword [rsp + 0x90]
lea rdx, [rcx - 8]
mov rsi, rdx
neg rdx
sar rdx, 0x3f
and edx, 8
mov rdi, qword [rsp + 0x80]
add rdx, rdi
mov ebx, 4
mov rax, rdx
mov rcx, rsi
call fcn.0047bee0
mov dword [rsp + 0x28], eax
mov rcx, qword [rsp + 0x90]
add rcx, 0xfffffffffffffff4
mov rdx, rcx
neg rcx
sar rcx, 0x3f
and ecx, 0xc
mov rsi, qword [rsp + 0x80]
add rsi, rcx
mov ebx, 4
mov rcx, rdx
mov rax, rsi
call fcn.0047bee0
mov edx, dword [rsp + 0x30]
mov rsi, qword [rsp + 0x50]
xor edx, dword [rsi]
mov edi, dword [rsp + 0x2c]
xor edi, dword [rsi + 4]
mov r8d, dword [rsp + 0x28]
xor r8d, dword [rsi + 8]
xor eax, dword [rsi + 0xc]
mov r9, qword [rsp + 0x58]
shr r9, 2
add r9, 0xfffffffffffffffe
mov qword [rsp + 0x38], r9
xor ecx, ecx
xor ebx, ebx
xor r10d, r10d
xor r11d, r11d
xor r12d, r12d
mov r13d, 4
jmp 0x47ef00
mov dword [rsp + 0x24], eax
mov dword [rsp + 0x28], r8d
mov dword [rsp + 0x2c], edi
inc rcx
mov r15d, edx
shr edx, 0x18
mov ebx, r15d
movzx r15d, dl
lea rdx, [0x00558f00]
mov r15d, dword [rdx + r15*4]
xor r15d, dword [rsi + r13*4]
mov r10d, edi
shr edi, 0x10
mov r11d, r15d
movzx r15d, dil
lea rdi, [0x00559300]
xor r11d, dword [rdi + r15*4]
mov r15d, r8d
shr r8d, 8
mov r12d, r15d
movzx r15d, r8b
lea r8, [0x00559700]
xor r11d, dword [r8 + r15*4]
movzx r15d, al
lea r9, [0x00559b00]
xor r11d, dword [r9 + r15*4]
shr r10d, 0x18
movzx r15d, r10b
mov r10d, dword [rdx + r15*4]
xor r10d, dword [rsi + r13*4 + 4]
shr r12d, 0x10
movzx r15d, r12b
xor r10d, dword [rdi + r15*4]
mov r15d, eax
shr eax, 8
mov r12d, r15d
movzx r15d, al
xor r10d, dword [r8 + r15*4]
movzx r15d, bl
xor r10d, dword [r9 + r15*4]
mov r15d, dword [rsp + 0x28]
mov eax, r15d
shr r15d, 0x18
movzx r15d, r15b
mov r15d, dword [rdx + r15*4]
xor r15d, dword [rsi + r13*4 + 8]
mov dword [rsp + 0x34], r15d
shr r12d, 0x10
movzx r15d, r12b
mov r12, r15
mov r15d, dword [rsp + 0x34]
xor r15d, dword [rdi + r12*4]
mov dword [rsp + 0x34], r15d
mov r12d, ebx
shr ebx, 8
movzx r15d, bl
mov rbx, r15
mov r15d, dword [rsp + 0x34]
xor r15d, dword [r8 + rbx*4]
mov ebx, r15d
mov r15d, dword [rsp + 0x2c]
movzx r15d, r15b
xor ebx, dword [r9 + r15*4]
mov r15d, dword [rsp + 0x24]
shr r15d, 0x18
movzx r15d, r15b
mov r15d, dword [rdx + r15*4]
xor r15d, dword [rsi + r13*4 + 0xc]
mov dword [rsp + 0x34], r15d
shr r12d, 0x10
movzx r15d, r12b
mov r12d, dword [rsp + 0x34]
xor r12d, dword [rdi + r15*4]
mov r15d, dword [rsp + 0x2c]
shr r15d, 8
movzx r15d, r15b
xor r12d, dword [r8 + r15*4]
movzx r15d, al
xor r12d, dword [r9 + r15*4]
add r13, 4
mov r15, qword [rsp + 0x38]
mov r9, r15
mov edx, r11d
mov edi, r10d
mov r8d, ebx
mov eax, r12d
mov ebx, edx
mov r11d, r8d
nop
cmp rcx, r9
jl 0x47ed9d
mov edx, ebx
shr ebx, 0x18
lea r8, str.cw
movzx edi, byte [r8 + rbx]
shl edi, 0x18
mov r9d, r10d
shr r10d, 0x10
movzx r10d, r10b
movzx r10d, byte [r10 + r8]
shl r10d, 0x10
or edi, r10d
mov r10d, r11d
shr r11d, 8
movzx r11d, r11b
movzx r11d, byte [r11 + r8]
shl r11d, 8
or edi, r11d
movzx r11d, r12b
movzx r11d, byte [r11 + r8]
or edi, r11d
mov r11d, r9d
shr r9d, 0x18
movzx r9d, byte [r9 + r8]
shl r9d, 0x18
mov r15d, r10d
shr r10d, 0x10
movzx r10d, r10b
movzx r10d, byte [r10 + r8]
shl r10d, 0x10
or r9d, r10d
mov r10d, r12d
shr r12d, 8
movzx r12d, r12b
movzx r12d, byte [r12 + r8]
shl r12d, 8
or r12d, r9d
movzx r9d, dl
movzx r9d, byte [r9 + r8]
or r9d, r12d
mov r12d, r15d
shr r15d, 0x18
movzx r15d, byte [r15 + r8]
shl r15d, 0x18
mov eax, r10d
shr r10d, 0x10
movzx r10d, r10b
movzx r10d, byte [r10 + r8]
shl r10d, 0x10
or r15d, r10d
mov r10d, edx
shr edx, 8
movzx edx, dl
movzx edx, byte [rdx + r8]
shl edx, 8
or r15d, edx
movzx edx, r11b
movzx edx, byte [rdx + r8]
or edx, r15d
shr eax, 0x18
movzx r15d, byte [r8 + rax]
shl r15d, 0x18
shr r10d, 0x10
movzx r10d, r10b
movzx r10d, byte [r10 + r8]
shl r10d, 0x10
or r10d, r15d
shr r11d, 8
movzx r11d, r11b
movzx r11d, byte [r11 + r8]
shl r11d, 8
or r11d, r10d
movzx r10d, r12b
movzx r8d, byte [r10 + r8]
or r8d, r11d
xor edi, dword [rsi + r13*4]
xor r9d, dword [rsi + r13*4 + 4]
mov dword [rsp + 0x2c], r9d
xor edx, dword [rsi + r13*4 + 8]
mov dword [rsp + 0x28], edx
xor r8d, dword [rsi + r13*4 + 0xc]
mov dword [rsp + 0x24], r8d
mov rax, qword [rsp + 0x68]
mov ebx, 4
mov rcx, qword [rsp + 0x78]
call fcn.0047bf00
mov rcx, qword [rsp + 0x78]
lea rdx, [rcx - 4]
mov rsi, rdx
neg rdx
sar rdx, 0x3f
and edx, 4
mov r8, qword [rsp + 0x68]
lea rax, [r8 + rdx]
mov ebx, 4
mov edi, dword [rsp + 0x2c]
mov rcx, rsi
call fcn.0047bf00
mov rcx, qword [rsp + 0x78]
lea rdx, [rcx - 8]
mov rsi, rdx
neg rdx
sar rdx, 0x3f
and edx, 8
mov r8, qword [rsp + 0x68]
lea rax, [r8 + rdx]
mov ebx, 4
mov edi, dword [rsp + 0x28]
mov rcx, rsi
call fcn.0047bf00
mov rcx, qword [rsp + 0x78]
add rcx, 0xfffffffffffffff4
mov rdx, rcx
neg rcx
sar rcx, 0x3f
and ecx, 0xc
mov rsi, qword [rsp + 0x68]
lea rax, [rsi + rcx]
mov ebx, 4
mov rcx, rdx
mov edi, dword [rsp + 0x24]
call fcn.0047bf00
mov rbp, qword [rsp + 0x40]
add rsp, 0x48
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x48], r11
call fcn.0045de60
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
mov r8, qword [rsp + 0x30]
mov r9, qword [rsp + 0x38]
mov r10, qword [rsp + 0x40]
mov r11, qword [rsp + 0x48]
jmp fcn.0047ec60