Function at 0x14000e270
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x20
mov rdi, r9
mov esi, r8d
mov ebp, edx
mov rbx, rcx
test rcx, rcx
jne 0x14000e2ab
lea r8d, [rcx + 0x7f]
lea rcx, str.key___NULL
lea rdx, str.srcciphers_aes_aes.c
call fcn.140013660
test rdi, rdi
jne 0x14000e2c9
mov r8d, pe_nt_image_headers64
lea rdx, str.srcciphers_aes_aes.c
lea rcx, str.skey___NULL
call fcn.140013660
lea eax, [rbp - 0x10]
test eax, 0xffffffe7
jne 0x14000e834
cmp ebp, 0x28
je 0x14000e834
test esi, esi
je 0x14000e304
mov eax, ebp
cdq
and edx, 7
add eax, edx
sar eax, 3
lea eax, [rax*2 + 6]
cmp esi, eax
je 0x14000e304
mov eax, 4
jmp 0x14000e818
mov eax, ebp
mov qword [rsp + 0x30], r14
cdq
lea r11, [rdi + 4]
and edx, 7
add eax, edx
sar eax, 3
lea eax, [rax*2 + 6]
mov dword [rdi + 0x1e0], eax
movzx eax, byte [rbx + 1]
movzx esi, byte [rbx]
shl esi, 8
or esi, eax
movzx eax, byte [rbx + 2]
shl esi, 8
or esi, eax
movzx eax, byte [rbx + 3]
shl esi, 8
or esi, eax
mov dword [rdi], esi
movzx eax, byte [rbx + 5]
movzx ecx, byte [rbx + 4]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 6]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 7]
shl ecx, 8
or ecx, eax
mov dword [r11], ecx
movzx eax, byte [rbx + 9]
movzx ecx, byte [rbx + 8]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0xa]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0xb]
shl ecx, 8
or ecx, eax
mov dword [rdi + 8], ecx
movzx eax, byte [rbx + 0xd]
movzx ecx, byte [rbx + 0xc]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0xe]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0xf]
shl ecx, 8
or ecx, eax
mov dword [rdi + 0xc], ecx
cmp ebp, 0x10
jne 0x14000e42e
call fcn.14000f540
mov ecx, dword [r11]
lea rbx, [0x140027024]
mov edx, dword [rdi + 8]
xor eax, esi
btc eax, 0x18
lea rsi, [0x140027048]
xor ecx, eax
mov dword [rdi + 0x10], eax
mov eax, dword [rdi + 0xc]
xor edx, ecx
xor eax, edx
mov dword [rdi + 0x14], ecx
mov dword [rdi + 0x1c], eax
mov dword [rdi + 0x18], edx
nop dword [rax]
nop dword [rax + rax]
mov ecx, dword [r11 + 0x18]
lea r11, [r11 + 0x10]
call fcn.14000f540
xor eax, dword [r11 - 4]
xor eax, dword [rbx]
add rbx, 4
mov dword [r11 + 0xc], eax
xor eax, dword [r11]
mov dword [r11 + 0x10], eax
mov ecx, dword [r11 + 4]
xor ecx, eax
mov dword [r11 + 0x14], ecx
xor ecx, dword [r11 + 8]
mov dword [r11 + 0x18], ecx
cmp rbx, rsi
jne 0x14000e3f0
jmp 0x14000e66a
cmp ebp, 0x18
jne 0x14000e520
movzx eax, byte [rbx + 0x11]
movzx ecx, byte [rbx + 0x10]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0x12]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0x13]
shl ecx, 8
or ecx, eax
mov dword [rdi + 0x10], ecx
movzx eax, byte [rbx + 0x15]
movzx ecx, byte [rbx + 0x14]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0x16]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0x17]
shl ecx, 8
or ecx, eax
mov dword [rdi + 0x14], ecx
call fcn.14000f540
mov ecx, dword [r11]
lea rbx, [0x140027024]
mov edx, dword [rdi + 8]
lea r11, [rdi + 0x28]
xor eax, esi
lea r14, [0x140027040]
btc eax, 0x18
mov rsi, 0xffffffffffffffd8
xor ecx, eax
mov dword [rdi + 0x18], eax
mov eax, dword [rdi + 0xc]
xor edx, ecx
xor eax, edx
mov dword [rdi + 0x1c], ecx
mov dword [rdi + 0x24], eax
sub rsi, rdi
mov dword [rdi + 0x20], edx
nop dword [rax]
mov ecx, dword [r11 - 0x18]
xor ecx, dword [r11 - 4]
mov eax, dword [r11 - 0x14]
mov dword [r11], ecx
lea r11, [r11 + 0x18]
xor eax, ecx
mov dword [r11 - 0x14], eax
lea rax, [rsi + r11]
sar rax, 2
mov ecx, dword [rdi + rax*4 + 0x14]
call fcn.14000f540
xor eax, dword [r11 - 0x28]
xor eax, dword [rbx]
add rbx, 4
mov dword [r11 - 0x10], eax
mov ecx, dword [r11 - 0x24]
xor ecx, eax
mov dword [r11 - 0xc], ecx
mov edx, dword [r11 - 0x20]
xor edx, ecx
mov dword [r11 - 8], edx
mov eax, dword [r11 - 0x1c]
xor eax, edx
mov dword [r11 - 4], eax
cmp rbx, r14
jne 0x14000e4c0
jmp 0x14000e66a
cmp ebp, 0x20
jne 0x14000e82d
movzx eax, byte [rbx + 0x11]
movzx ecx, byte [rbx + 0x10]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0x12]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0x13]
shl ecx, 8
or ecx, eax
mov dword [rdi + 0x10], ecx
movzx eax, byte [rbx + 0x15]
movzx ecx, byte [rbx + 0x14]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0x16]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0x17]
shl ecx, 8
or ecx, eax
mov dword [rdi + 0x14], ecx
movzx eax, byte [rbx + 0x19]
movzx ecx, byte [rbx + 0x18]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0x1a]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0x1b]
shl ecx, 8
or ecx, eax
mov dword [rdi + 0x18], ecx
movzx eax, byte [rbx + 0x1d]
movzx ecx, byte [rbx + 0x1c]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0x1e]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 0x1f]
shl ecx, 8
or ecx, eax
mov dword [rdi + 0x1c], ecx
call fcn.14000f540
mov ecx, dword [r11]
lea rbx, [0x140027024]
mov edx, dword [rdi + 8]
lea r11, [rdi + 0x30]
xor eax, esi
lea r14, [0x14002703c]
btc eax, 0x18
mov rsi, 0xffffffffffffffd0
xor ecx, eax
mov dword [rdi + 0x20], eax
mov eax, dword [rdi + 0xc]
xor edx, ecx
xor eax, edx
mov dword [rdi + 0x24], ecx
mov dword [rdi + 0x2c], eax
sub rsi, rdi
mov dword [rdi + 0x28], edx
mov ecx, dword [r11 - 4]
ror ecx, 8
call fcn.14000f540
xor eax, dword [r11 - 0x20]
mov ecx, dword [r11 - 0x1c]
mov edx, dword [r11 - 0x18]
xor ecx, eax
mov dword [r11], eax
xor edx, ecx
mov eax, dword [r11 - 0x14]
mov dword [r11 + 4], ecx
xor eax, edx
mov dword [r11 + 0xc], eax
mov dword [r11 + 8], edx
lea r11, [r11 + 0x20]
lea rax, [rsi + r11]
sar rax, 2
mov ecx, dword [rdi + rax*4 + 0x1c]
call fcn.14000f540
xor eax, dword [r11 - 0x30]
xor eax, dword [rbx]
add rbx, 4
mov dword [r11 - 0x10], eax
mov ecx, dword [r11 - 0x2c]
xor ecx, eax
mov dword [r11 - 0xc], ecx
mov edx, dword [r11 - 0x28]
xor edx, ecx
mov dword [r11 - 8], edx
mov eax, dword [r11 - 0x24]
xor eax, edx
mov dword [r11 - 4], eax
cmp rbx, r14
jne 0x14000e5f3
lea eax, [rbp + 0x1c]
mov ebx, 1
movsxd r11, eax
lea r10, [rdi + 0xf0]
add r11, 0xfffffffffffffffc
mov eax, dword [rdi + r11*4]
lea r11, [rdi + r11*4]
mov dword [rdi + 0xf0], eax
mov eax, dword [r11 + 4]
mov dword [rdi + 0xf4], eax
mov eax, dword [r11 + 8]
mov dword [rdi + 0xf8], eax
mov eax, dword [r11 + 0xc]
mov dword [rdi + 0xfc], eax
cmp dword [rdi + 0x1e0], ebx
jle 0x14000e7f1
lea rsi, [0x140000000]
nop
mov r9d, dword [r11 - 0x10]
sub r11, 0x10
mov eax, r9d
add r10, 0x10
shr eax, 0x18
inc ebx
movzx edx, al
mov eax, r9d
shr eax, 0x10
movzx ecx, al
mov eax, r9d
shr eax, 8
mov r8d, dword [rsi + rdx*4 + 0x26020]
xor r8d, dword [rsi + rcx*4 + 0x26420]
movzx ecx, al
movzx eax, r9b
xor r8d, dword [rsi + rcx*4 + 0x26820]
xor r8d, dword [rsi + rax*4 + 0x26c20]
mov dword [r10], r8d
mov r9d, dword [r11 + 4]
mov eax, r9d
shr eax, 0x18
movzx edx, al
mov eax, r9d
shr eax, 0x10
movzx ecx, al
mov eax, r9d
shr eax, 8
mov r8d, dword [rsi + rdx*4 + 0x26020]
xor r8d, dword [rsi + rcx*4 + 0x26420]
movzx ecx, al
movzx eax, r9b
xor r8d, dword [rsi + rcx*4 + 0x26820]
xor r8d, dword [rsi + rax*4 + 0x26c20]
mov dword [r10 + 4], r8d
mov r9d, dword [r11 + 8]
mov eax, r9d
shr eax, 0x18
movzx edx, al
mov eax, r9d
shr eax, 0x10
movzx ecx, al
mov eax, r9d
shr eax, 8
mov r8d, dword [rsi + rdx*4 + 0x26020]
xor r8d, dword [rsi + rcx*4 + 0x26420]
movzx ecx, al
movzx eax, r9b
xor r8d, dword [rsi + rcx*4 + 0x26820]
xor r8d, dword [rsi + rax*4 + 0x26c20]
mov dword [r10 + 8], r8d
mov r9d, dword [r11 + 0xc]
mov eax, r9d
shr eax, 0x18
movzx edx, al
mov eax, r9d
shr eax, 0x10
movzx ecx, al
mov eax, r9d
shr eax, 8
mov r8d, dword [rsi + rdx*4 + 0x26020]
xor r8d, dword [rsi + rcx*4 + 0x26420]
movzx ecx, al
movzx eax, r9b
xor r8d, dword [rsi + rcx*4 + 0x26820]
xor r8d, dword [rsi + rax*4 + 0x26c20]
mov dword [r10 + 0xc], r8d
cmp ebx, dword [rdi + 0x1e0]
jl 0x14000e6c0
mov eax, dword [r11 - 0x10]
mov dword [r10 + 0x10], eax
mov eax, dword [r11 - 0xc]
mov dword [r10 + 0x14], eax
mov eax, dword [r11 - 8]
mov dword [r10 + 0x18], eax
mov eax, dword [r11 - 4]
mov dword [r10 + 0x1c], eax
xor eax, eax
mov r14, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
mov eax, 1
jmp 0x14000e813
mov eax, 3
jmp 0x14000e818