Function at 0x1400062d0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
mov qword [rsp + 0x40], rcx
cmp rdx, 0x15
jae 0x14000631b
cmp rdx, 1
jbe 0x1400069a5
mov r8d, 1
mov rcx, qword [rsp + 0x40]
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp 0x1400069c0
movabs rax, 0x7ffffffffffffffc
mov rsi, rdx
lea rcx, [rdx + rdx]
and rcx, rax
movzx eax, byte [0x14004bac0]
mov edx, 2
mov qword [rsp + 0x68], rcx
call fcn.140005940
test rax, rax
je 0x1400069ba
mov r14, rax
movzx eax, byte [0x14004bac0]
mov ecx, pe_nt_image_headers64
mov edx, 8
call fcn.140005940
test rax, rax
je 0x1400069ba
mov rdi, rax
mov rax, qword [rsp + 0x40]
lea rcx, [rax + 6]
mov qword [rsp + 0x70], rcx
add rax, 0xfffffffffffffffc
mov qword [rsp + 0x60], rax
mov eax, 0x10
mov qword [rsp + 0x50], rax
xor ebx, ebx
movabs r12, 0x3ffffffffffffffe
xor r15d, r15d
mov qword [rsp + 0x28], r14
mov r10, rsi
mov qword [rsp + 0x58], rsi
jmp 0x1400063d4
mov r15d, 1
mov rbx, qword [rsp + 0x78]
cmp rbx, r10
jae 0x140006968
mov rax, r10
sub rax, rbx
mov rcx, qword [rsp + 0x40]
lea rcx, [rcx + rbx*4]
cmp rax, 2
mov qword [rsp + 0x48], rdi
jae 0x1400064c0
mov r8, rax
lea r13, [r8 + rbx]
mov rdi, r13
sub rdi, rbx
jb 0x1400069ba
cmp r13, r10
ja 0x1400069ba
jae 0x14000644e
cmp r8, 0xa
jae 0x14000644e
cmp rbx, 0xfffffffffffffff6
jae 0x1400069ba
lea rsi, [rbx + 0xa]
cmp rsi, r10
cmovae rsi, r10
cmp r13, rbx
mov eax, 1
cmove r8, rax
mov rdi, rsi
sub rdi, rbx
mov rdx, rdi
mov r12, r10
call 0x1400069c0
mov r10, r12
mov r13, rsi
mov qword [rsp + 0x78], r13
cmp r15, qword [rsp + 0x50]
jne 0x140006530
mov r13, r10
mov rcx, r15
shl rcx, 5
movzx eax, byte [0x14004bac0]
mov edx, 8
call fcn.140005940
test rax, rax
je 0x1400069ba
mov r12, rax
lea rax, [r15 + r15]
mov qword [rsp + 0x50], rax
mov rbp, r15
shl rbp, 4
mov rcx, r12
mov rsi, qword [rsp + 0x48]
mov rdx, rsi
mov r8, rbp
call fcn.1400219e0
mov r8d, 8
mov rcx, rsi
mov rdx, rbp
call fcn.140005950
mov r10, r13
jmp 0x140006535
movzx edx, byte [rcx + 6]
cmp dl, byte [rcx + 2]
jae 0x140006840
mov r8d, 2
cmp rax, 2
je 0x1400064f9
nop dword [rax]
mov r9d, edx
movzx edx, byte [rcx + r8*4 + 2]
cmp dl, r9b
jae 0x1400064f9
inc r8
cmp rax, r8
jne 0x1400064e0
mov r8, rax
mov r13, r8
add r13, rbx
jb 0x1400069ba
cmp r13, r10
ja 0x1400069ba
cmp r8, 2
jae 0x14000686f
mov r8d, 1
jmp 0x1400063f9
mov r12, qword [rsp + 0x48]
mov rax, r15
shl rax, 4
mov qword [r12 + rax], rdi
mov qword [r12 + rax + 8], rbx
inc r15
mov rax, r15
cmp r15, 2
mov rdi, r12
movabs r12, 0x3ffffffffffffffe
mov qword [rsp + 0x48], rdi
jae 0x1400065e9
jmp 0x1400063c6
mov r12, rdi
mov r14, qword [rsp + 0x28]
mov rdx, r14
mov rsi, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x48]
add rbx, rdi
sub r8, rdx
mov rcx, r12
call fcn.1400219e0
mov rax, qword [rsp + 0x80]
add rax, qword [rsp + 0x38]
mov qword [rbx], rax
mov rax, qword [rsp + 0x88]
mov qword [rbx + 8], rax
lea rdx, [rbp + 0x10]
not rsi
add r13, rsi
shl r13, 4
mov rcx, rbp
mov r8, r13
call fcn.1400219e0
mov rax, qword [rsp + 0x90]
cmp rax, 1
mov r10, qword [rsp + 0x58]
movabs r12, 0x3ffffffffffffffe
jbe 0x1400063c0
mov r15, rax
lea r11, [rax - 1]
mov rcx, r11
shl rcx, 4
mov rax, qword [rdi + rcx]
mov rcx, qword [rdi + rcx + 8]
add rcx, rax
cmp rcx, r10
je 0x140006660
mov rdx, r15
shl rdx, 4
mov r8, qword [rdx + rdi - 0x20]
cmp r8, rax
jbe 0x140006660
cmp r15, 2
je 0x140006897
lea rbp, [r15 - 3]
mov rcx, rbp
shl rcx, 4
mov rcx, qword [rdi + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x140006675
cmp r15, 3
jbe 0x14000695d
add r8, rcx
cmp qword [rdx + rdi - 0x40], r8
jbe 0x140006675
jmp 0x1400063c6
cmp r15, 2
je 0x14000667a
lea rbp, [r15 - 3]
mov rcx, rbp
shl rcx, 4
mov rcx, qword [rdi + rcx]
cmp rcx, rax
jb 0x14000667e
lea rbp, [r15 - 2]
cmp rbp, r15
jae 0x1400069ba
lea rbx, [rbp + 1]
cmp rbx, r15
jae 0x1400069ba
mov r13, r15
mov qword [rsp + 0x30], rbp
shl rbp, 4
mov rcx, qword [rdi + rbp + 8]
shl rbx, 4
mov rax, qword [rdi + rbx]
mov rsi, qword [rdi + rbx + 8]
add rsi, rax
mov r15, rsi
sub r15, rcx
jb 0x1400069ba
cmp rsi, r10
ja 0x1400069ba
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x90], r11
add rbp, rdi
mov rdx, qword [rbp]
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x88], rcx
lea r12, [rax + rcx*4]
lea rdi, [r12 + rdx*4]
mov r14, r15
sub r14, rdx
cmp r14, rdx
mov qword [rsp + 0x38], rdx
jae 0x1400067a0
lea r8, [r14*4]
mov r15, qword [rsp + 0x28]
mov rcx, r15
mov rdx, rdi
call fcn.1400219e0
lea r8, [r15 + r14*4]
cmp qword [rsp + 0x38], 0
jle 0x140006570
test r14, r14
jle 0x140006570
mov rax, qword [rsp + 0x60]
lea rax, [rax + rsi*4]
mov r14, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x30]
nop
movzx ecx, byte [r8 - 2]
movzx edx, byte [rdi - 2]
cmp cl, dl
mov r9d, 0
sbb r9, r9
cmp cl, dl
mov r10d, 0
adc r10, 0xffffffffffffffff
cmp cl, dl
lea rdi, [rdi + r9*4]
lea r8, [r8 + r10*4]
mov rcx, r8
cmovb rcx, rdi
mov ecx, dword [rcx]
mov dword [rax], ecx
cmp rdi, r12
jbe 0x140006793
add rax, 0xfffffffffffffffc
cmp r8, r14
ja 0x140006750
mov r12, rdi
mov rdx, r14
jmp 0x140006580
lea r8, [rdx*4]
mov r14, qword [rsp + 0x28]
mov rcx, r14
mov rdx, r12
call fcn.1400219e0
mov rax, qword [rsp + 0x38]
lea r8, [r14 + rax*4]
test rax, rax
jle 0x140006578
cmp r15, rax
jle 0x140006578
mov rax, qword [rsp + 0x40]
lea rax, [rax + rsi*4]
mov rdx, r14
mov rsi, qword [rsp + 0x30]
nop word cs:[rax + rax]
movzx r9d, byte [rdi + 2]
xor r10d, r10d
xor ecx, ecx
cmp r9b, byte [rdx + 2]
setae r10b
setb r9b
mov r11, rdx
cmovb r11, rdi
mov r11d, dword [r11]
mov dword [r12], r11d
add r12, 4
lea rdx, [rdx + r10*4]
cmp rdx, r8
jae 0x140006580
mov cl, r9b
lea rdi, [rdi + rcx*4]
cmp rdi, rax
jb 0x1400067f0
jmp 0x140006580
mov r8d, 2
cmp rax, 2
je 0x1400063f5
mov r9d, edx
movzx edx, byte [rcx + r8*4 + 2]
cmp dl, r9b
jb 0x1400063f5
inc r8
cmp rax, r8
jne 0x140006850
jmp 0x1400063f2
mov qword [rsp + 0x38], r15
mov rax, r8
shr rax, 1
lea rdx, [rcx + r8*4]
lea r9, [rax*4]
sub rdx, r9
cmp rax, 1
jne 0x1400068a2
xor r9d, r9d
jmp 0x14000691e
mov r15d, 2
jmp 0x1400063c6
movabs r9, 0x7ffffffffffffffc
lea r10, [r9 + 2]
and r10, rax
mov r9, qword [rsp + 0x70]
lea r11, [r9 + rbx*4]
mov r9, qword [rsp + 0x60]
lea rsi, [r9 + r13*4]
xor r9d, r9d
nop dword [rax + rax]
movzx edi, word [r11 + r9*4 - 6]
movzx ebp, byte [r11 + r9*4 - 4]
mov r14d, dword [rsi]
mov dword [r11 + r9*4 - 6], r14d
mov word [rsi], di
mov byte [rsi + 2], bpl
mov rdi, r9
xor rdi, r12
add rdi, rax
movzx ebp, word [r11 + r9*4 - 2]
movzx r14d, byte [r11 + r9*4]
mov r15d, dword [rdx + rdi*4]
mov dword [r11 + r9*4 - 2], r15d
mov word [rdx + rdi*4], bp
mov byte [rdx + rdi*4 + 2], r14b
add r9, 2
add rsi, 0xfffffffffffffff8
cmp r10, r9
jne 0x1400068d0
test r8b, 2
je 0x140006949
mov r10, r9
not r10
add rax, r10
movzx r10d, word [rcx + r9*4]
movzx r11d, byte [rcx + r9*4 + 2]
mov esi, dword [rdx + rax*4]
mov dword [rcx + r9*4], esi
mov word [rdx + rax*4], r10w
mov byte [rdx + rax*4 + 2], r11b
mov r14, qword [rsp + 0x28]
mov r15, qword [rsp + 0x38]
mov r10, qword [rsp + 0x58]
jmp 0x1400063f9
mov r15d, 3
jmp 0x1400063c6
mov rdx, qword [rsp + 0x50]
shl rdx, 4
mov r8d, 8
mov rcx, rdi
call fcn.140005950
mov r8d, 2
mov rcx, r14
mov rdx, qword [rsp + 0x68]
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.140005950
nop
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2
push rsi
push rdi
lea rax, [r8 - 1]
cmp rax, rdx
jae 0x140006a51
cmp r8, rdx
jae 0x140006a4e
lea rax, [rcx + r8*4]
add rax, 0xfffffffffffffffc
jmp 0x1400069f8
add r11, 0xfffffffffffffff8
shl r9d, 0x10
or r9d, r10d
mov dword [r11], r9d
inc r8
add rax, 4
cmp r8, rdx
je 0x140006a4e
movzx r9d, byte [rcx + r8*4 + 2]
cmp r9b, byte [rcx + r8*4 - 2]
jae 0x1400069ec
lea r11, [rcx + r8*4]
add r11, 4
movzx r10d, word [rcx + r8*4]
mov esi, dword [r11 - 8]
mov dword [rcx + r8*4], esi
cmp r8, 1
je 0x1400069de
mov esi, 1
mov r11, rax
nop dword [rax + rax]
cmp r9b, byte [r11 - 2]
jae 0x1400069e2
mov edi, dword [r11 - 4]
mov dword [r11], edi
add r11, 0xfffffffffffffffc
inc rsi
cmp r8, rsi
jne 0x140006a30
mov r11, rcx
jmp 0x1400069e2
pop rdi
pop rsi
ret
ud2