Function at 0x140004200
Capabilities:
Encode data using xor
Encrypt data using aes
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov word [rsp + 0x26], r8w
movzx r8d, r8w
cmp r8d, 0x80
je 0x14000423d
cmp r8d, 0xc0
je 0x140004241
cmp r8d, 0x100
jne 0x1400048c5
mov al, 0xe
jmp 0x140004243
mov al, 0xa
jmp 0x140004243
mov al, 0xc
mov byte [r9 + 0xf0], al
mov r11d, dword [rcx]
bswap r11d
mov dword [r9], r11d
mov edi, dword [rcx + 4]
bswap edi
mov dword [r9 + 4], edi
mov r15d, dword [rcx + 8]
bswap r15d
mov dword [r9 + 8], r15d
mov ebx, dword [rcx + 0xc]
bswap ebx
mov dword [r9 + 0xc], ebx
cmp r8d, 0x80
jne 0x14000432b
xor eax, eax
lea rcx, [0x1400226a0]
lea rdx, [0x140022aa0]
lea r8, [0x140022ea0]
lea r10, [0x1400232a0]
lea rsi, [0x1400236a0]
nop word cs:[rax + rax]
mov ebx, dword [r9 + rax*4 + 0xc]
mov edi, ebx
shr edi, 0x10
movzx edi, dil
movzx edi, byte [rcx + rdi*4 + 3]
shl edi, 0x18
movzx ebp, bh
movzx ebp, byte [rdx + rbp*4 + 2]
shl ebp, 0x10
xor ebp, r11d
xor ebp, edi
movzx r11d, bl
movzx edi, byte [r8 + r11*4 + 1]
shl edi, 8
mov r11d, ebx
shr r11d, 0x18
movzx r11d, byte [r10 + r11*4]
xor r11d, edi
xor r11d, ebp
xor r11d, dword [rax + rsi]
mov dword [r9 + rax*4 + 0x10], r11d
mov edi, dword [r9 + rax*4 + 4]
xor edi, r11d
mov dword [r9 + rax*4 + 0x14], edi
xor edi, dword [r9 + rax*4 + 8]
mov dword [r9 + rax*4 + 0x18], edi
xor edi, ebx
mov dword [r9 + rax*4 + 0x1c], edi
add rax, 4
cmp rax, 0x28
jne 0x1400042b0
jmp 0x14000488e
cmp rdx, 0x13
jbe 0x14000489f
mov ebp, dword [rcx + 0x10]
bswap ebp
mov dword [r9 + 0x10], ebp
cmp rdx, 0x17
jbe 0x1400048b2
mov eax, dword [rcx + 0x14]
bswap eax
mov dword [r9 + 0x14], eax
cmp r8d, 0xc0
jne 0x140004750
mov ecx, eax
shr ecx, 0x18
mov edx, eax
shr edx, 0x10
movzx edx, dl
lea r10, [0x1400226a0]
movzx r8d, byte [r10 + rdx*4 + 3]
mov rsi, r10
shl r8d, 0x18
movzx edx, ah
lea r10, [0x140022aa0]
movzx edx, byte [r10 + rdx*4 + 2]
shl edx, 0x10
or edx, r8d
movzx r10d, al
lea r12, [0x140022ea0]
movzx r14d, byte [r12 + r10*4 + 1]
shl r14d, 8
or r14d, edx
lea r13, [0x1400232a0]
movzx ecx, byte [r13 + rcx*4]
or ecx, r14d
xor r11d, ecx
mov r14d, r11d
xor r14d, 0x1000000
mov dword [r9 + 0x18], r14d
xor r14d, edi
mov dword [r9 + 0x1c], r14d
mov r10d, r14d
xor r10d, r15d
mov dword [r9 + 0x20], r10d
xor r10d, ebx
mov dword [r9 + 0x24], r10d
mov ebx, r10d
xor ebx, ebp
mov dword [r9 + 0x28], ebx
xor ebx, eax
mov dword [r9 + 0x2c], ebx
mov eax, ebx
shr eax, 0x18
mov ecx, ebx
shr ecx, 0x10
movzx ecx, cl
movzx ecx, byte [rsi + rcx*4 + 3]
shl ecx, 0x18
movzx edx, bh
lea r8, [0x140022aa0]
movzx edx, byte [r8 + rdx*4 + 2]
shl edx, 0x10
or edx, ecx
movzx ecx, bl
movzx ecx, byte [r12 + rcx*4 + 1]
shl ecx, 8
or ecx, edx
mov rdi, r13
movzx eax, byte [r13 + rax*4]
or eax, ecx
xor eax, r11d
mov r11d, eax
xor r11d, 0x3000000
mov dword [r9 + 0x30], r11d
xor r14d, r11d
mov dword [r9 + 0x34], r14d
xor r11d, r15d
mov dword [r9 + 0x38], r11d
mov ecx, r11d
xor ecx, r10d
mov dword [r9 + 0x3c], ecx
mov r13d, r11d
xor r13d, ebp
mov ecx, r13d
xor ecx, ebx
mov edx, ecx
shr edx, 0x10
movzx edx, dl
movzx edx, byte [rsi + rdx*4 + 3]
mov r15, rsi
shl edx, 0x18
movzx esi, ch
movzx esi, byte [r8 + rsi*4 + 2]
shl esi, 0x10
or esi, edx
movzx edx, cl
movzx edx, byte [r12 + rdx*4 + 1]
shl edx, 8
or edx, esi
mov dword [r9 + 0x40], r13d
mov dword [r9 + 0x44], ecx
shr ecx, 0x18
movzx esi, byte [rdi + rcx*4]
mov r8, rdi
or esi, edx
xor esi, eax
mov edi, esi
xor edi, 0x7000000
mov dword [r9 + 0x48], edi
xor edi, r14d
mov dword [r9 + 0x4c], edi
mov eax, edi
xor eax, r11d
mov dword [r9 + 0x50], eax
xor r10d, edi
mov dword [r9 + 0x54], r10d
xor r13d, r10d
mov dword [r9 + 0x58], r13d
mov ecx, r10d
xor ecx, ebx
mov dword [r9 + 0x5c], ecx
mov eax, ecx
shr eax, 0x10
movzx eax, al
mov r13, r15
movzx eax, byte [r15 + rax*4 + 3]
shl eax, 0x18
movzx edx, ch
lea r15, [0x140022aa0]
movzx edx, byte [r15 + rdx*4 + 2]
shl edx, 0x10
or edx, eax
movzx eax, cl
movzx r14d, byte [r12 + rax*4 + 1]
shl r14d, 8
or r14d, edx
mov eax, ecx
shr eax, 0x18
movzx eax, byte [r8 + rax*4]
or eax, r14d
xor eax, esi
mov esi, eax
xor esi, 0xf000000
mov dword [r9 + 0x60], esi
xor edi, esi
mov dword [r9 + 0x64], edi
xor r11d, esi
mov dword [r9 + 0x68], r11d
mov edx, r11d
xor edx, r10d
mov dword [r9 + 0x6c], edx
xor esi, ebp
mov dword [r9 + 0x70], esi
xor ecx, esi
mov dword [r9 + 0x74], ecx
mov edx, ecx
shr edx, 0x10
movzx edx, dl
movzx edx, byte [r13 + rdx*4 + 3]
mov r14, r13
shl edx, 0x18
movzx ebp, ch
movzx ebp, byte [r15 + rbp*4 + 2]
shl ebp, 0x10
or ebp, edx
movzx edx, cl
shr ecx, 0x18
mov r8, r12
movzx edx, byte [r12 + rdx*4 + 1]
shl edx, 8
or edx, ebp
lea r12, [0x1400232a0]
movzx ecx, byte [r12 + rcx*4]
or ecx, edx
xor ecx, eax
mov ebp, ecx
xor ebp, 0x1f000000
mov dword [r9 + 0x78], ebp
xor ebp, edi
mov dword [r9 + 0x7c], ebp
mov eax, ebp
xor eax, r11d
mov dword [r9 + 0x80], eax
xor r10d, ebp
mov dword [r9 + 0x84], r10d
mov eax, r10d
xor eax, esi
mov dword [r9 + 0x88], eax
xor ebx, ebp
mov dword [r9 + 0x8c], ebx
mov eax, ebx
shr eax, 0x18
mov edx, ebx
shr edx, 0x10
movzx edx, dl
movzx edx, byte [r13 + rdx*4 + 3]
shl edx, 0x18
movzx edi, bh
movzx edi, byte [r15 + rdi*4 + 2]
shl edi, 0x10
or edi, edx
movzx edx, bl
mov r13d, ebx
movzx edx, byte [r8 + rdx*4 + 1]
shl edx, 8
or edx, edi
movzx eax, byte [r12 + rax*4]
or eax, edx
xor eax, ecx
mov edi, eax
xor edi, 0x3f000000
mov dword [r9 + 0x90], edi
xor ebp, edi
mov dword [r9 + 0x94], ebp
xor edi, r11d
mov dword [r9 + 0x98], edi
mov ecx, edi
xor ecx, r10d
mov dword [r9 + 0x9c], ecx
xor esi, edi
mov ecx, esi
xor ecx, ebx
mov edx, ecx
shr edx, 0x10
movzx edx, dl
movzx edx, byte [r14 + rdx*4 + 3]
shl edx, 0x18
movzx ebx, ch
movzx r11d, byte [r15 + rbx*4 + 2]
shl r11d, 0x10
or r11d, edx
movzx edx, cl
movzx edx, byte [r8 + rdx*4 + 1]
shl edx, 8
or edx, r11d
mov dword [r9 + 0xa0], esi
mov dword [r9 + 0xa4], ecx
shr ecx, 0x18
movzx ecx, byte [r12 + rcx*4]
or ecx, edx
xor ecx, eax
mov eax, ecx
xor eax, 0x7f000000
mov dword [r9 + 0xa8], eax
xor eax, ebp
mov dword [r9 + 0xac], eax
mov edx, eax
xor edx, edi
mov dword [r9 + 0xb0], edx
xor r10d, eax
mov dword [r9 + 0xb4], r10d
xor esi, r10d
mov dword [r9 + 0xb8], esi
mov ebx, r13d
xor ebx, r10d
mov edx, ebx
shr edx, 0x10
movzx edx, dl
movzx edx, byte [r14 + rdx*4 + 3]
movzx esi, bh
movzx r11d, byte [r15 + rsi*4 + 2]
shl edx, 0x18
shl r11d, 0x10
or r11d, edx
movzx edx, bl
movzx edx, byte [r8 + rdx*4 + 1]
shl edx, 8
or edx, r11d
mov dword [r9 + 0xbc], ebx
mov r8d, ebx
shr r8d, 0x18
movzx r8d, byte [r12 + r8*4]
or r8d, edx
xor r8d, ecx
xor r8d, 0xff000000
mov dword [r9 + 0xc0], r8d
xor eax, r8d
mov dword [r9 + 0xc4], eax
xor r8d, edi
mov dword [r9 + 0xc8], r8d
xor r8d, r10d
mov dword [r9 + 0xcc], r8d
jmp 0x14000488e
cmp rdx, 0x1b
jbe 0x14000491f
mov eax, dword [rcx + 0x18]
bswap eax
mov dword [r9 + 0x18], eax
cmp rdx, 0x1f
jbe 0x140004932
mov eax, dword [rcx + 0x1c]
bswap eax
mov dword [r9 + 0x1c], eax
cmp r8d, 0x100
jne 0x14000488e
xor ecx, ecx
lea rsi, [0x1400226a0]
lea r8, [0x140022aa0]
lea r10, [0x140022ea0]
lea r14, [0x1400232a0]
nop word cs:[rax + rax]
mov r12d, eax
shr r12d, 0x18
mov ebp, eax
shr ebp, 0x10
movzx r13d, bpl
movzx ebp, byte [rsi + r13*4 + 3]
shl ebp, 0x18
movzx edx, ah
movzx edx, byte [r8 + rdx*4 + 2]
shl edx, 0x10
xor edx, r11d
xor edx, ebp
movzx r11d, al
movzx ebp, byte [r10 + r11*4 + 1]
shl ebp, 8
movzx r11d, byte [r14 + r12*4]
xor r11d, ebp
xor r11d, edx
lea rdx, [0x1400236a0]
xor r11d, dword [rcx + rdx]
mov dword [r9 + rcx*8 + 0x20], r11d
xor edi, r11d
mov dword [r9 + rcx*8 + 0x24], edi
xor r15d, edi
mov dword [r9 + rcx*8 + 0x28], r15d
xor ebx, r15d
mov dword [r9 + rcx*8 + 0x2c], ebx
cmp rcx, 0x18
je 0x14000488e
mov edx, ebx
shr edx, 0x18
movzx edx, byte [rsi + rdx*4 + 3]
shl edx, 0x18
xor edx, dword [r9 + rcx*8 + 0x10]
mov ebp, ebx
shr ebp, 0x10
movzx r12d, bpl
movzx ebp, byte [r8 + r12*4 + 2]
shl ebp, 0x10
mov r13, rsi
movzx esi, bh
movzx esi, byte [r10 + rsi*4 + 1]
shl esi, 8
xor esi, ebp
movzx r12d, bl
movzx ebp, byte [r14 + r12*4]
xor ebp, esi
mov rsi, r13
xor ebp, edx
mov dword [r9 + rcx*8 + 0x30], ebp
xor ebp, dword [r9 + rcx*8 + 0x14]
mov dword [r9 + rcx*8 + 0x34], ebp
xor ebp, dword [r9 + rcx*8 + 0x18]
mov dword [r9 + rcx*8 + 0x38], ebp
xor eax, ebp
mov dword [r9 + rcx*8 + 0x3c], eax
add rcx, 4
jmp 0x1400047b0
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, str.C:Users.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
mov ecx, 0x14
call fcn.140020a20
ud2
lea r8, str.C:Users.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
mov ecx, 0x18
call fcn.140020a20
ud2
lea rax, [rsp + 0x26]
mov qword [rsp + 0x28], rax
lea rax, [0x14001deb0]
mov qword [rsp + 0x30], rax
lea rax, str.wrong_value_for_bits
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], 1
mov qword [rsp + 0x58], 0
lea rax, [rsp + 0x28]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], 1
lea rdx, str.C:Users.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
lea rcx, [rsp + 0x38]
call fcn.140020520
ud2
lea r8, str.C:Users.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
mov ecx, 0x1c
call fcn.140020a20
ud2
lea r8, str.C:Users.cargo_registry_srcindex.crates.io_6f17d22bba15001flibaes_0.6.5_srclib.rs
mov ecx, 0x20
call fcn.140020a20
ud2