Function at 0x4756b0
Capabilities:
Encrypt data using aes
Reference aes constants
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xe8
lea rax, [sym.__gxx_personality_sj0]
mov qword [rsp + 0x80], rax
lea rax, [0x0068c728]
mov qword [rsp + 0x88], rax
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x90], rax
lea rax, [0x004760d3]
mov qword [rsp + 0x98], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x130], rcx
mov rcx, rax
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0x138], rdx
mov dword [rsp + 0x140], r8d
mov qword [rsp + 0xa0], rsp
call dbg._Unwind_SjLj_Register
mov eax, dword [rsp + 0x140]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x130]
mov rcx, qword [rax + 0x48]
mov rax, qword [rax + 0x50]
cmp rcx, 0x1238
je 0x47579e
test rax, rax
je 0x47578c
lea rdx, [rax + rcx]
test rcx, rcx
je 0x47577c
nop dword [rax + rax]
sub rdx, 1
mov byte [rdx], 0
cmp rax, rdx
jne 0x475770
mov rcx, rax
mov dword [rsp + 0x58], 0xffffffff
call method.CryptoPP.UnalignedDeallocate_void_
mov ecx, 0x1238
mov dword [rsp + 0x58], 0xffffffff
call method.CryptoPP.UnalignedAllocate_unsigned_long_long_
mov rcx, qword [rsp + 0x130]
mov rdi, qword [rsp + 0x130]
mov qword [rcx + 0x50], rax
mov qword [rcx + 0x40], 0
mov rdx, qword [rdi + 0x30]
mov qword [rcx + 0x48], 0x1238
mov ecx, dword [rsp + 0x140]
mov r8, qword [rdi + 0x28]
shr ecx, 2
lea eax, [rcx + 6]
mov dword [rsp + 0x44], ecx
mov dword [rdi + 0x10], eax
lea eax, [rcx*4 + 0x1c]
mov dword [rsp + 0x20], 0
lea rcx, [rdi + 0x18]
mov r9, rax
movabs rdi, 0x3fffffffffffffff
mov dword [rsp + 0x58], 0xffffffff
mov qword [rsp + 0x48], rax
call method.CryptoPP::AllocatorWithCleanup_unsigned_int__true_::pointer_CryptoPP::StandardReallocate_unsigned_int__CryptoPP.AllocatorWithCleanup_unsigned_int__true____CryptoPP::AllocatorWithCleanup_unsigned_int__true___unsigned_int__CryptoPP::AllocatorWithCl
mov rsi, qword [rsp + 0x130]
mov qword [rsp + 0x38], rax
mov qword [rsi + 0x30], rax
mov rax, qword [rsp + 0x48]
mov qword [rsi + 0x20], rdi
mov qword [rsi + 0x28], rax
mov eax, dword [rsp + 0x44]
shl rax, 2
cmp qword [rsp + 0x30], rax
mov qword [rsp + 0x48], rax
ja 0x47603d
cmp qword [rsp + 0x138], 0
je 0x47585f
mov rax, qword [rsp + 0x38]
test rax, rax
jne 0x475fe2
mov rax, qword [rsp + 0x30]
xor edx, edx
mov rcx, qword [rsp + 0x38]
mov r8, qword [rsp + 0x48]
add rcx, rax
sub r8, rax
call sym.memset
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x38]
lea rdx, [rax + 3]
shr rdx, 2
mov rax, rcx
lea rcx, [rcx + rdx*4]
test rdx, rdx
je 0x4758b0
nop dword [rax]
mov edx, dword [rax]
add rax, 4
bswap edx
mov dword [rax - 4], edx
cmp rcx, rax
jne 0x4758a0
mov eax, dword [rsp + 0x44]
mov rdi, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x38]
mov ebp, dword [rsp + 0x140]
lea r11d, [rax - 1]
lea r10d, [rax + 1]
shl r11, 2
lea r9d, [rax + 2]
shl r10, 2
lea r8d, [rax + 3]
mov rax, qword [rsp + 0x130]
shl r9, 2
lea rsi, [rdi + 0x10]
shl r8, 2
mov rcx, qword [rax + 0x30]
mov rax, qword [rax + 0x28]
mov qword [rsp + 0x30], rcx
lea rbx, [rcx + rax*4]
mov rcx, qword [0x0062dda0]
mov r15, rbx
jmp 0x47598d
cmp ebp, 0x20
jne 0x47598a
mov r12d, dword [rdx + 0x2c]
mov rbx, qword [0x0062dd90]
movzx eax, r12b
movzx eax, byte [rbx + rax]
xor eax, dword [rdx + 0x10]
mov r14d, eax
mov eax, r12d
shr eax, 0x18
movzx r13d, byte [rbx + rax]
mov eax, r13d
mov r13d, r12d
shr r13d, 0x10
shl eax, 0x18
movzx r13d, r13b
xor eax, r14d
movzx r13d, byte [rbx + r13]
mov ebx, r12d
movzx ebx, bh
mov r12, rbx
mov rbx, qword [0x0062dd90]
shl r13d, 0x10
xor eax, r13d
movzx r12d, byte [rbx + r12]
shl r12d, 8
xor eax, r12d
mov dword [rdx + 0x30], eax
xor eax, dword [rdx + 0x14]
mov dword [rdx + 0x34], eax
xor eax, dword [rdx + 0x18]
mov dword [rdx + 0x38], eax
xor eax, dword [rdx + 0x1c]
mov dword [rdx + 0x3c], eax
add rdx, rdi
mov r12d, dword [rdx + r11]
add rcx, 4
mov rbx, qword [0x0062dd90]
mov eax, dword [rdx]
xor eax, dword [rcx - 4]
mov r13d, r12d
shr r13d, 0x18
movzx r13d, byte [rbx + r13]
xor eax, r13d
movzx r13d, r12b
movzx r13d, byte [rbx + r13]
shl r13d, 8
xor eax, r13d
mov r13d, r12d
shr r13d, 0x10
movzx r13d, r13b
movzx r13d, byte [rbx + r13]
mov ebx, r12d
movzx ebx, bh
mov r12, rbx
mov rbx, qword [0x0062dd90]
shl r13d, 0x18
xor eax, r13d
movzx r12d, byte [rbx + r12]
shl r12d, 0x10
xor eax, r12d
mov dword [rdx + rdi], eax
xor eax, dword [rdx + 4]
mov dword [rdx + r10], eax
xor eax, dword [rdx + 8]
mov dword [rdx + r9], eax
xor eax, dword [rdx + 0xc]
mov dword [rdx + r8], eax
lea rax, [rsi + rdx]
cmp r15, rax
je 0x475a31
cmp ebp, 0x18
jne 0x475910
mov eax, dword [rdx + 0x10]
xor eax, dword [rdx + 0x24]
mov dword [rdx + 0x28], eax
xor eax, dword [rdx + 0x14]
mov dword [rdx + 0x2c], eax
jmp 0x47598a
mov rax, qword [rsp + 0x130]
lea rcx, [rax + 8]
mov rax, qword [rax + 8]
mov rax, qword [rax + 0x48]
mov dword [rsp + 0x58], 0xffffffff
call rax
test al, al
jne 0x475f85
movzx eax, byte [0x0069b270]
test al, al
je 0x476000
mov rax, qword [rsp + 0x130]
mov eax, dword [rax + 0x10]
lea r8d, [rax + 0x3fffffff]
mov dword [rsp + 0x38], eax
shl r8d, 2
cmp r8d, 4
jbe 0x47601a
mov r9d, 4
mov rcx, qword [rsp + 0x30]
lea rax, [0x0069b280]
jmp 0x475aa3
mov r9d, edx
mov edx, r9d
mov rdi, qword [0x0062dd90]
lea r11, [rcx + rdx*4]
mov r14, qword [0x0062dd90]
mov ebx, dword [r11]
movzx edx, bl
movzx esi, byte [rdi + rdx]
mov edx, ebx
shr edx, 0x18
movzx r10d, byte [rdi + rdx]
mov edx, dword [rax + rsi*4 + 0xc00]
mov rsi, qword [0x0062dd90]
xor edx, dword [rax + r10*4]
mov r10d, ebx
movzx ebx, bh
shr r10d, 0x10
movzx r10d, r10b
movzx r10d, byte [rdi + r10]
xor edx, dword [rax + r10*4 + 0x400]
movzx r10d, byte [rdi + rbx]
xor edx, dword [rax + r10*4 + 0x800]
mov r10d, r8d
lea rdi, [rcx + r10*4]
mov ebx, dword [rdi]
movzx r10d, bl
movzx ebp, byte [rsi + r10]
mov r10d, ebx
shr r10d, 0x18
movzx esi, byte [rsi + r10]
mov r10d, dword [rax + rbp*4 + 0xc00]
xor r10d, dword [rax + rsi*4]
mov esi, ebx
movzx ebx, bh
shr esi, 0x10
movzx ebx, byte [r14 + rbx]
movzx esi, sil
movzx esi, byte [r14 + rsi]
xor r10d, dword [rax + rsi*4 + 0x400]
xor r10d, dword [rax + rbx*4 + 0x800]
mov dword [r11], r10d
mov dword [rdi], edx
lea edx, [r9 + 1]
lea r11, [rcx + rdx*4]
mov ebx, dword [r11]
movzx edx, bl
movzx esi, byte [r14 + rdx]
mov edx, ebx
shr edx, 0x18
movzx r10d, byte [r14 + rdx]
mov edx, dword [rax + rsi*4 + 0xc00]
xor edx, dword [rax + r10*4]
mov r10d, ebx
movzx ebx, bh
shr r10d, 0x10
movzx r10d, r10b
movzx r10d, byte [r14 + r10]
xor edx, dword [rax + r10*4 + 0x400]
movzx r10d, byte [r14 + rbx]
xor edx, dword [rax + r10*4 + 0x800]
lea r10d, [r8 + 1]
lea rdi, [rcx + r10*4]
mov ebx, dword [rdi]
movzx r10d, bl
movzx ebp, byte [r14 + r10]
mov r10d, ebx
shr r10d, 0x18
movzx esi, byte [r14 + r10]
mov r10d, dword [rax + rbp*4 + 0xc00]
xor r10d, dword [rax + rsi*4]
mov esi, ebx
movzx ebx, bh
shr esi, 0x10
movzx ebx, byte [r14 + rbx]
movzx esi, sil
movzx esi, byte [r14 + rsi]
xor r10d, dword [rax + rsi*4 + 0x400]
xor r10d, dword [rax + rbx*4 + 0x800]
mov dword [r11], r10d
mov dword [rdi], edx
lea edx, [r9 + 2]
lea r11, [rcx + rdx*4]
mov ebx, dword [r11]
movzx edx, bl
movzx esi, byte [r14 + rdx]
mov edx, ebx
shr edx, 0x18
movzx r10d, byte [r14 + rdx]
mov edx, dword [rax + rsi*4 + 0xc00]
xor edx, dword [rax + r10*4]
mov r10d, ebx
movzx ebx, bh
shr r10d, 0x10
movzx r10d, r10b
movzx r10d, byte [r14 + r10]
xor edx, dword [rax + r10*4 + 0x400]
movzx r10d, byte [r14 + rbx]
xor edx, dword [rax + r10*4 + 0x800]
lea r10d, [r8 + 2]
lea rdi, [rcx + r10*4]
mov ebx, dword [rdi]
movzx r10d, bl
movzx ebp, byte [r14 + r10]
mov r10d, ebx
shr r10d, 0x18
movzx esi, byte [r14 + r10]
mov r10d, dword [rax + rbp*4 + 0xc00]
xor r10d, dword [rax + rsi*4]
mov esi, ebx
movzx ebx, bh
shr esi, 0x10
movzx ebx, byte [r14 + rbx]
movzx esi, sil
movzx esi, byte [r14 + rsi]
xor r10d, dword [rax + rsi*4 + 0x400]
xor r10d, dword [rax + rbx*4 + 0x800]
mov dword [r11], r10d
mov dword [rdi], edx
lea edx, [r9 + 3]
lea r11, [rcx + rdx*4]
mov ebx, dword [r11]
movzx edx, bl
movzx esi, byte [r14 + rdx]
mov edx, ebx
shr edx, 0x18
movzx r10d, byte [r14 + rdx]
mov edx, dword [rax + rsi*4 + 0xc00]
xor edx, dword [rax + r10*4]
mov r10d, ebx
movzx ebx, bh
shr r10d, 0x10
movzx r10d, r10b
movzx r10d, byte [r14 + r10]
xor edx, dword [rax + r10*4 + 0x400]
movzx r10d, byte [r14 + rbx]
xor edx, dword [rax + r10*4 + 0x800]
lea r10d, [r8 + 3]
sub r8d, 4
lea rdi, [rcx + r10*4]
mov ebx, dword [rdi]
movzx r10d, bl
movzx ebp, byte [r14 + r10]
mov r10d, ebx
shr r10d, 0x18
movzx esi, byte [r14 + r10]
mov r10d, dword [rax + rbp*4 + 0xc00]
xor r10d, dword [rax + rsi*4]
mov esi, ebx
movzx ebx, bh
shr esi, 0x10
movzx ebx, byte [r14 + rbx]
movzx esi, sil
movzx esi, byte [r14 + rsi]
xor r10d, dword [rax + rsi*4 + 0x400]
xor r10d, dword [rax + rbx*4 + 0x800]
mov dword [r11], r10d
mov dword [rdi], edx
lea edx, [r9 + 4]
cmp edx, r8d
jb 0x475aa0
lea r11d, [r9 + 5]
shl rdx, 2
lea r10d, [r9 + 6]
shl r11, 2
lea r8d, [r9 + 7]
shl r10, 2
shl r8, 2
mov rdi, qword [rsp + 0x30]
mov rsi, qword [0x0062dd90]
mov r14, qword [0x0062dd90]
add rdx, rdi
add r11, rdi
add r10, rdi
mov ebx, dword [rdx]
add r8, rdi
movzx ecx, bl
movzx esi, byte [rsi + rcx]
mov ecx, ebx
shr ecx, 0x18
movzx r9d, byte [r14 + rcx]
mov ecx, dword [rax + rsi*4 + 0xc00]
xor ecx, dword [rax + r9*4]
mov r9d, ebx
movzx ebx, bh
shr r9d, 0x10
movzx r9d, r9b
movzx r9d, byte [r14 + r9]
xor ecx, dword [rax + r9*4 + 0x400]
movzx r9d, byte [r14 + rbx]
xor ecx, dword [rax + r9*4 + 0x800]
mov dword [rdx], ecx
mov ecx, dword [r11]
movzx edx, cl
movzx ebx, byte [r14 + rdx]
mov edx, ecx
shr edx, 0x18
movzx r9d, byte [r14 + rdx]
mov edx, dword [rax + rbx*4 + 0xc00]
xor edx, dword [rax + r9*4]
mov r9d, ecx
movzx ecx, ch
shr r9d, 0x10
movzx ecx, byte [r14 + rcx]
movzx r9d, r9b
movzx r9d, byte [r14 + r9]
xor edx, dword [rax + r9*4 + 0x400]
xor edx, dword [rax + rcx*4 + 0x800]
mov dword [r11], edx
mov ecx, dword [r10]
movzx edx, cl
movzx r11d, byte [r14 + rdx]
mov edx, ecx
shr edx, 0x18
movzx r9d, byte [r14 + rdx]
mov edx, dword [rax + r11*4 + 0xc00]
xor edx, dword [rax + r9*4]
mov r9d, ecx
movzx ecx, ch
shr r9d, 0x10
movzx ecx, byte [r14 + rcx]
movzx r9d, r9b
movzx r9d, byte [r14 + r9]
xor edx, dword [rax + r9*4 + 0x400]
xor edx, dword [rax + rcx*4 + 0x800]
mov dword [r10], edx
mov ecx, dword [r8]
movzx edx, cl
movzx r10d, byte [r14 + rdx]
mov edx, ecx
shr edx, 0x18
movzx r9d, byte [r14 + rdx]
mov edx, dword [rax + r10*4 + 0xc00]
xor edx, dword [rax + r9*4]
mov r9d, ecx
movzx ecx, ch
shr r9d, 0x10
movzx ecx, byte [r14 + rcx]
movzx r9d, r9b
movzx r9d, byte [r14 + r9]
xor edx, dword [rax + r9*4 + 0x400]
xor edx, dword [rax + rcx*4 + 0x800]
mov rax, qword [rsp + 0x130]
mov rcx, qword [rsp + 0x130]
mov dword [r8], edx
mov edx, dword [rdi]
mov eax, dword [rax + 0x10]
bswap edx
shl eax, 2
mov eax, dword [rdi + rax*4]
bswap eax
mov dword [rdi], eax
mov rax, qword [rsp + 0x130]
mov eax, dword [rax + 0x10]
mov dword [rsp + 0x30], eax
shl eax, 2
mov dword [rdi + rax*4], edx
mov edx, dword [rcx + 0x10]
mov eax, dword [rdi + 4]
lea edx, [rdx*4 + 1]
mov edx, dword [rdi + rdx*4]
bswap eax
bswap edx
mov dword [rdi + 4], edx
mov edx, dword [rcx + 0x10]
lea edx, [rdx*4 + 1]
mov dword [rdi + rdx*4], eax
mov eax, dword [rcx + 0x10]
mov edx, dword [rdi + 8]
lea eax, [rax*4 + 2]
mov eax, dword [rdi + rax*4]
bswap edx
bswap eax
mov dword [rdi + 8], eax
mov eax, dword [rcx + 0x10]
lea eax, [rax*4 + 2]
mov dword [rdi + rax*4], edx
mov eax, dword [rdi + 0xc]
mov edx, dword [rcx + 0x10]
bswap eax
lea edx, [rdx*4 + 3]
mov edx, dword [rdi + rdx*4]
bswap edx
mov dword [rdi + 0xc], edx
mov edx, dword [rcx + 0x10]
lea edx, [rdx*4 + 3]
mov dword [rdi + rdx*4], eax
mov rcx, qword [rsp + 0xb8]
call sym._Unwind_SjLj_Unregister
nop
add rsp, 0xe8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movzx eax, byte [0x0069b271]
test al, al
je 0x476010
mov rcx, qword [rsp + 0x30]
mov rax, rcx
add rcx, 0x10
mov edx, dword [rax]
add rax, 4
bswap edx
mov dword [rax - 4], edx
cmp rcx, rax
jne 0x475fa0
mov rax, qword [rsp + 0x130]
mov edx, dword [rax + 0x10]
mov rax, qword [rsp + 0x30]
shl edx, 2
shl rdx, 2
add rax, rdx
add rcx, rdx
nop dword [rax]
mov edx, dword [rax]
add rax, 4
bswap edx
mov dword [rax - 4], edx
cmp rcx, rax
jne 0x475fd0
jmp 0x475f63
mov r8, qword [rsp + 0x30]
mov rcx, rax
mov rdx, qword [rsp + 0x138]
call sym.memcpy
jmp 0x47585f
call method.CryptoPP::Rijndael::Base.FillDecTable__
jmp 0x475a66
call method.CryptoPP::Rijndael::Base.FillEncTable__
jmp 0x475f94
mov r8d, 0x1c
mov r10d, 0x18
mov r11d, 0x14
lea rax, [0x0069b280]
mov edx, 0x10
jmp 0x475d7a
mov ecx, 0x30
call sym.__cxa_allocate_exception
lea rcx, [rsp + 0xc0]
mov dword [rsp + 0x58], 1
lea rdx, [0x0062858b]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rcx
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.30_
mov r8, qword [rsp + 0x38]
mov edx, 1
mov dword [rsp + 0x58], 2
mov rcx, qword [rsp + 0x30]
call fcn.004e29b0
mov rax, qword [rsp + 0x38]
lea rsi, fcn.004a5c00
mov rcx, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0x30]
add rax, 0x10
cmp rcx, rax
mov qword [rdi], rsi
je 0x4760b3
call sym.operator_delete_void_
mov rcx, qword [rsp + 0x30]
lea r8, [fcn.004a5c00]
mov dword [rsp + 0x58], 0xffffffff
lea rdx, [0x0063d3a0]
call sym.__cxa_throw
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x38], rax
mov eax, dword [rsp + 0x58]
test eax, eax
jne 0x476101
mov rcx, qword [rsp + 0x30]
call sym.__cxa_free_exception
mov rcx, qword [rsp + 0x38]
mov dword [rsp + 0x58], 0xffffffff
call dbg._Unwind_SjLj_Resume
sub eax, 1
jne 0x476122
mov rcx, qword [rsp + 0xc0]
lea rax, [rsp + 0xd0]
cmp rcx, rax
je 0x4760e5
call sym.operator_delete_void_
jmp 0x4760e5
ud2