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

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x47f406
sub rsp, 0x38
mov qword [rsp + 0x30], rbp
lea rbp, [rsp + 0x30]
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x70], r9
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x58], rdi
mov rdx, rbx
shr rbx, 2
mov qword [rsp + 0x28], rbx
xor r8d, r8d
jmp 0x47f263
mov qword [rsp + 0x18], r8
shl r8, 2
sub rcx, r8
mov rbx, rdx
sub rbx, r8
mov r9, rcx
neg rcx
sar rcx, 0x3f
and r8, rcx
add r8, rax
mov rcx, r9
mov rax, r8
call fcn.0047bee0
mov r8, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x58]
mov dword [rdi + r8*4], eax
inc r8
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x60]
mov r9, qword [rsp + 0x70]
cmp r8, rbx
jl 0x47f207
jmp 0x47f280
mov rdx, r8
sub r8, rbx
xor ecx, dword [rdi + r8*4]
mov dword [rdi + rdx*4], ecx
lea r8, [rdx + 1]
nop dword [rax + rax]
cmp rsi, r8
jle 0x47f331
mov ecx, dword [rdi + r8*4 - 4]
test rbx, rbx
je 0x47f3fb
mov qword [rsp + 0x18], r8
mov rax, r8
nop
cmp rbx, 0xffffffffffffffff
je 0x47f2ad
cqo
idiv rbx
jmp 0x47f2b2
neg rax
xor edx, edx
test rdx, rdx
je 0x47f2ea
cmp rbx, 6
jle 0x47f26a
nop dword [rax]
cmp rdx, 4
jne 0x47f26a
mov eax, ecx
call fcn.0047f160
mov rbx, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x58]
mov r8, qword [rsp + 0x18]
mov r9, qword [rsp + 0x70]
mov ecx, eax
jmp 0x47f26a
mov qword [rsp + 0x20], rax
mov eax, ecx
call fcn.0047f1a0
call fcn.0047f160
lea rcx, [0x0054e7b0]
mov rdx, qword [rsp + 0x20]
movzx edx, byte [rdx + rcx - 1]
shl edx, 0x18
xor edx, eax
mov rbx, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x58]
mov r8, qword [rsp + 0x18]
mov r9, qword [rsp + 0x70]
mov ecx, edx
jmp 0x47f26a
test r9, r9
je 0x47f33a
xor eax, eax
jmp 0x47f34b
mov rbp, qword [rsp + 0x30]
add rsp, 0x38
ret
add rax, 4
mov rsi, rcx
cmp rsi, rax
jle 0x47f35a
mov rcx, rsi
sub rsi, rax
xor edx, edx
jmp 0x47f36f
mov rbp, qword [rsp + 0x30]
add rsp, 0x38
ret
lea r8, [rdx + rax]
mov dword [r9 + r8*4], ebx
inc rdx
cmp rdx, 4
jge 0x47f344
lea rbx, [rdx + rsi]
lea rbx, [rbx - 4]
mov ebx, dword [rdi + rbx*4]
test rax, rax
jle 0x47f364
lea r8, [rax + 4]
cmp rcx, r8
jle 0x47f364
mov r8d, ebx
shr ebx, 0x18
lea r10, str.cw
movzx r11d, byte [rbx + r10]
lea r12, [0x00557f00]
mov ebx, dword [r12 + r11*4]
mov r11d, r8d
shr r8d, 0x10
movzx r8d, r8b
movzx r8d, byte [r8 + r10]
lea r13, [0x00558300]
xor ebx, dword [r13 + r8*4]
mov r8d, r11d
shr r11d, 8
movzx r11d, r11b
movzx r11d, byte [r11 + r10]
lea r15, [0x00558700]
xor ebx, dword [r15 + r11*4]
movzx r8d, r8b
movzx r8d, byte [r8 + r10]
lea r11, [0x00558b00]
xor ebx, dword [r11 + r8*4]
jmp 0x47f364
nop dword [rax + rax]
call fcn.00435de0
nop
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.0047f1c0