Function at 0x1400d3190
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x230]
sub rsp, 0x330
mov rax, qword [0x14010d010]
xor rax, rsp
mov qword [rbp + 0x220], rax
mov esi, r8d
mov dword [rsp + 0x4c], r8d
mov r13, rdx
mov qword [rbp - 0x70], rdx
mov rdi, rcx
mov ebx, pe_nt_image_headers64
mov r8d, ebx
xor edx, edx
call fcn.1400d9cb0
xor r10d, r10d
mov dword [rdi + 0x118], r10d
mov dword [rsp + 0x44], r10d
mov eax, r10d
mov dword [rdi + 0x11c], eax
mov word [rdi + 0x120], r10w
mov rax, qword [rdi + 0x128]
mov qword [rdi + 0x130], rax
lea r12, [rdi + 0x140]
mov rax, qword [r12]
mov qword [r12 + 8], rax
mov rax, qword [rdi + 0x158]
mov qword [rdi + 0x160], rax
mov rax, qword [rdi + 0x170]
mov qword [rdi + 0x178], rax
mov rax, qword [rdi + 0x188]
mov qword [rdi + 0x190], rax
mov rax, qword [r13 + 0x60]
mov r9, qword [r13 + 0x68]
cmp rax, r9
je 0x1400d3283
nop word [rax + rax]
mov rcx, qword [rax]
mov r8d, dword [rcx + 0x18]
test r8d, r8d
jne 0x1400d3270
mov r8d, dword [rcx + 0x20]
mov edx, esi
sub edx, dword [rcx + 0x1c]
cmp edx, r8d
jb 0x1400d32af
add rax, 8
cmp rax, r9
jne 0x1400d3260
xor al, al
mov rcx, qword [rbp + 0x220]
xor rcx, rsp
call fcn.1400d8390
mov rbx, qword [rsp + 0x388]
add rsp, 0x330
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
cmp edx, dword [rcx + 0x20]
jb 0x1400d32b9
mov rsi, r10
jmp 0x1400d32c2
mov rsi, qword [rcx + 0x50]
mov eax, edx
add rsi, rax
test rsi, rsi
je 0x1400d3283
mov r14d, dword [rsi]
xor edx, edx
cmp byte [r13 + 0x40], r10b
je 0x1400d3701
mov r8, rbx
lea rcx, [rbp + 0x100]
call fcn.1400d9cb0
cmp r14d, ebx
cmovb ebx, r14d
mov r8d, ebx
mov rdx, rsi
lea rcx, [rbp + 0x100]
call fcn.1400dc350
lea r8, [rbp + 0x100]
mov rdx, rdi
lea rcx, [rsp + 0x50]
call fcn.1400d52a0
mov esi, dword [rax]
mov dword [rsp + 0x44], esi
movzx r14d, word [rax + 4]
mov word [rsp + 0x42], r14w
cmp qword [rdi + 0x68], 0
jne 0x1400d3335
cmp qword [rdi + 0x60], 0
je 0x1400d391e
mov rax, qword [0x140110350]
mov qword [rbp - 0x78], rax
xor ebx, ebx
mov qword [rbp + 0x60], rbx
mov qword [rbp + 0x70], rbx
mov qword [rbp + 0x78], 0xf
mov byte [rbp + 0x60], bl
lea ecx, [rbx + 0x30]
call fcn.1400d83b8
mov r8, rax
mov qword [rbp + 0x70], 0x2a
mov qword [rbp + 0x78], 0x2f
xorps xmm0, xmm0
xor eax, eax
movups xmmword [r8], xmm0
movups xmmword [r8 + 0x10], xmm0
mov qword [r8 + 0x20], rax
mov word [r8 + 0x28], ax
mov byte [r8 + 0x2a], al
mov qword [rbp + 0x60], r8
lea rax, [rbp + 0x60]
cmp qword [rbp + 0x78], 0x10
jb 0x1400d33a0
movsx ecx, byte [r8]
jmp 0x1400d33a7
movsx ecx, byte [rax]
lea r8, [rbp + 0x60]
add ecx, 0x9f7f5f
mov r9, rbx
lea r10, [0x1401047e0]
sub r8, r10
nop word [rax + rax]
lea rdx, [r9 + r10]
mov eax, ecx
shr eax, 0xa
xor al, byte [rdx]
mov byte [r8 + rdx], al
imul ecx, ecx, 0xe2f5
add ecx, 0x819cb6c
mov eax, ecx
shr eax, 0xa
xor al, byte [rdx + 1]
mov byte [r8 + rdx + 1], al
imul ecx, ecx, 0xe2f5
add ecx, 0x819cb6c
add r9, 2
cmp r9, 0x2a
jb 0x1400d33c0
lea rax, [rbp + 0x60]
cmp qword [rbp + 0x78], 0x10
cmovae rax, qword [rbp + 0x60]
mov qword [rsp + 0x50], rax
lea r15, [0x1400fdb18]
mov qword [rsp + 0x58], r15
lea rsi, [0x1401029c8]
mov rcx, rsi
inc rcx
cmp byte [rcx], 0
jne 0x1400d3427
sub ecx, esi
lea eax, [rcx + 1]
mov dword [rsp + 0x68], eax
mov dword [rsp + 0x6c], ecx
movsxd rcx, eax
test eax, eax
jne 0x1400d3448
mov r14, rbx
jmp 0x1400d3450
call fcn.1400dee90
mov r14, rax
mov qword [rsp + 0x60], r14
mov r8, rsi
nop dword [rax + rax]
inc r8
cmp byte [r8], 0
jne 0x1400d3460
sub r8, rsi
inc r8
mov rdx, rsi
mov rcx, r14
call fcn.1400dc350
nop
mov ecx, 0x30
call fcn.1400d83b8
mov r8, rax
mov r9d, 0x21
mov qword [rbp + 0xf0], r9
mov qword [rbp + 0xf8], 0x2f
xorps xmm0, xmm0
xor eax, eax
movups xmmword [r8], xmm0
movups xmmword [r8 + 0x10], xmm0
mov word [r8 + 0x20], ax
mov qword [rbp + 0xe0], r8
movsx edx, byte [r8]
add edx, 0x9f7f5f
lea rcx, [0x1401047b0]
sub rcx, r8
nop
mov eax, edx
shr eax, 0xa
xor al, byte [rcx + r8]
mov byte [r8], al
imul edx, edx, 0xd9f5
add edx, 0x819cb6c
lea r8, [r8 + 1]
sub r9, 1
jne 0x1400d34d0
mov qword [rbp + 0x40], r15
lea r12, [rbp + 0xe0]
cmp qword [rbp + 0xf8], 0x10
setae byte [rsp + 0x40]
mov r13, qword [rbp + 0xe0]
jb 0x1400d352b
mov r12, r13
test r13, r13
jne 0x1400d352b
mov rsi, rbx
mov qword [rbp + 0x48], rbx
mov r15d, ebx
mov qword [rbp + 0x50], rbx
jmp 0x1400d356c
mov r15, qword [rbp + 0xf0]
lea eax, [r15 + 1]
mov dword [rbp + 0x50], eax
mov dword [rbp + 0x54], r15d
movsxd rcx, eax
test eax, eax
jne 0x1400d3549
mov rsi, rbx
jmp 0x1400d3551
call fcn.1400dee90
mov rsi, rax
mov qword [rbp + 0x48], rsi
movsxd rbx, r15d
mov r8, rbx
mov rdx, r12
mov rcx, rsi
call fcn.1400dc350
mov byte [rsi + rbx], 0
xor ebx, ebx
lea rax, [0x1400fdb18]
mov qword [rsp + 0x70], rax
mov ecx, dword [rsp + 0x6c]
add ecx, r15d
mov dword [rbp - 0x7c], ecx
lea eax, [rcx + 1]
mov dword [rbp - 0x80], eax
je 0x1400d36ed
movsxd rcx, eax
test eax, eax
je 0x1400d359d
call fcn.1400dee90
mov rbx, rax
mov qword [rsp + 0x78], rbx
test rsi, rsi
je 0x1400d35ca
mov r8, rsi
cmp byte [rsi], 0
je 0x1400d35b9
nop
inc r8
cmp byte [r8], 0
jne 0x1400d35b0
sub r8, rsi
inc r8
mov rdx, rsi
mov rcx, rbx
call fcn.1400dc350
test r14, r14
je 0x1400d35f7
mov ecx, r15d
add rcx, rbx
mov r8, r14
cmp byte [r14], 0
je 0x1400d35e9
nop
inc r8
cmp byte [r8], 0
jne 0x1400d35e0
sub r8, r14
inc r8
mov rdx, r14
call fcn.1400dc350
xor r15d, r15d
mov dword [rsp + 0x20], r15d
mov r9d, 0x68
mov r8, qword [rsp + 0x50]
mov rdx, rbx
mov rcx, qword [rbp - 0x78]
call fcn.1400ca320
nop
test rbx, rbx
je 0x1400d3625
mov rcx, rbx
call fcn.1400dee7c
nop
test rsi, rsi
je 0x1400d3633
mov rcx, rsi
call fcn.1400dee7c
nop
cmp byte [rsp + 0x40], 0
je 0x1400d3672
mov rdx, qword [rbp + 0xf8]
inc rdx
mov rax, r13
cmp rdx, 0x1000
jb 0x1400d3669
add rdx, 0x27
mov r13, qword [r13 - 8]
sub rax, r13
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400d3d76
mov rcx, r13
call fcn.1400d83b0
nop
test r14, r14
je 0x1400d3680
mov rcx, r14
call fcn.1400dee7c
nop
mov rdx, qword [rbp + 0x78]
cmp rdx, 0x10
jb 0x1400d36bb
inc rdx
mov rcx, qword [rbp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400d36b6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400d3d7c
call fcn.1400d83b0
mov qword [rbp + 0x70], r15
mov qword [rbp + 0x78], 0xf
mov byte [rbp + 0x60], 0
mov qword [rdi + 0x60], r15
mov qword [rdi + 0x68], r15
lea r12, [rdi + 0x140]
mov r13, qword [rbp - 0x70]
mov esi, dword [rsp + 0x44]
movzx r14d, word [rsp + 0x42]
jmp 0x1400d3921
xor r15d, r15d
mov ebx, r15d
mov qword [rsp + 0x78], rbx
mov dword [rbp - 0x80], r15d
jmp 0x1400d35fa
mov ebx, 0xac
mov r8d, ebx
lea rcx, [rbp + 0x100]
call fcn.1400d9cb0
cmp r14d, ebx
cmovb ebx, r14d
mov r8d, ebx
mov rdx, rsi
lea rcx, [rbp + 0x100]
call fcn.1400dc350
lea r8, [rbp + 0x100]
mov rdx, rdi
lea rcx, [rsp + 0x50]
call fcn.1400d4fc0
mov esi, dword [rax]
movzx r14d, word [rax + 4]
xor ebx, ebx
mov ecx, 0xf
mov qword [rbp + 0x58], rcx
mov byte [rbp + 0x40], bl
mov qword [rbp + 0x50], 9
xor r8d, r8d
mov qword [rbp + 0x40], r8
mov word [rbp + 0x48], r8w
lea rax, [rbp + 0x40]
movsx ecx, byte [rax]
add ecx, 0xb0484a
lea r8, [rbp + 0x40]
mov eax, ecx
shr eax, 5
xor al, 0x11
mov byte [r8], al
imul ecx, ecx, 0xc1f5
add ecx, 0x8f3ff5b
mov eax, ecx
shr eax, 5
xor al, 0x84
mov byte [r8 + 1], al
imul ecx, ecx, 0xc1f5
add ecx, 0x8f3ff5b
mov eax, ecx
shr eax, 5
xor al, 0x33
mov byte [r8 + 2], al
imul edx, ecx, 0xc1f5
add edx, 0x8f3ff5b
mov eax, edx
shr eax, 5
xor al, 0xc
mov byte [r8 + 3], al
imul ecx, edx, 0xc1f5
add ecx, 0x8f3ff5b
mov eax, ecx
shr eax, 5
xor al, 0xdd
mov byte [r8 + 4], al
imul edx, ecx, 0xc1f5
add edx, 0x8f3ff5b
mov eax, edx
shr eax, 5
xor al, 0x7b
mov byte [r8 + 5], al
imul ecx, edx, 0xc1f5
add ecx, 0x8f3ff5b
mov eax, ecx
shr eax, 5
xor al, 0xdc
mov byte [r8 + 6], al
imul edx, ecx, 0xc1f5
add edx, 0x8f3ff5b
mov eax, edx
shr eax, 5
xor al, 0xf
mov byte [r8 + 7], al
imul eax, edx, 0xc1f5
add eax, 0x8f3ff5b
shr eax, 5
xor al, 0x61
mov byte [r8 + 8], al
lea rdx, [rbp + 0x40]
lea rcx, [rsp + 0x70]
call fcn.1400bc100
nop
mov ecx, dword [rdi + 0x68]
mov byte [rsp + 0x30], 1
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], ecx
mov r9, qword [rdi + 0x60]
mov r8, r13
lea rdx, [rsp + 0x58]
call fcn.1400d3da0
mov rdx, rax
lea rcx, [rdi + 0x128]
call fcn.1400d4e20
mov rdx, qword [rsp + 0x58]
test rdx, rdx
je 0x1400d38a4
mov r8, qword [rsp + 0x68]
sub r8, rdx
sar r8, 2
call fcn.1400c2620
mov qword [rsp + 0x58], rbx
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x60], xmm0
lea rax, [0x1400fdb18]
mov qword [rsp + 0x70], rax
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x1400d38c0
call fcn.1400dee7c
nop
mov rdx, qword [rbp + 0x58]
cmp rdx, 0x10
jb 0x1400d38fb
inc rdx
mov rcx, qword [rbp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400d38f6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400d3d82
call fcn.1400d83b0
mov rax, qword [rdi + 0x130]
sub rax, qword [rdi + 0x128]
sar rax, 2
xor r15d, r15d
cmp rax, qword [rdi + 0x68]
je 0x1400d3921
mov eax, eax
mov qword [rdi + 0x68], rax
jmp 0x1400d3921
xor r15d, r15d
mov eax, dword [rdi + 0x90]
mov dword [rsp + 0x28], eax
mov eax, dword [rdi + 0x88]
mov dword [rsp + 0x20], eax
mov r9, qword [rdi + 0x80]
mov r8, r13
lea rdx, [rbp + 0x10]
call fcn.1400d47d0
mov rbx, rax
cmp r12, rax
je 0x1400d397c
mov rcx, r12
call fcn.1400d4ec0
mov rcx, qword [rbx]
mov qword [r12], rcx
mov rcx, qword [rbx + 8]
mov qword [r12 + 8], rcx
mov rcx, qword [rbx + 0x10]
mov qword [r12 + 0x10], rcx
mov qword [rbx], r15
mov qword [rbx + 8], r15
mov qword [rbx + 0x10], r15
lea rcx, [rbp + 0x10]
call fcn.1400d4ec0
mov qword [rbp + 0x80], r15
mov qword [rbp + 0x90], r15
mov eax, 0xf
mov qword [rbp + 0x98], rax
mov byte [rbp + 0x80], 0
mov ebx, 0x19
mov edx, ebx
lea rcx, [rbp + 0x80]
call fcn.1400acf30
lea rax, [rbp + 0x80]
cmp qword [rbp + 0x98], 0x10
jb 0x1400d39d6
mov rdx, qword [rbp + 0x80]
movsx ecx, byte [rdx]
jmp 0x1400d39e0
movsx ecx, byte [rax]
lea rdx, [rbp + 0x80]
add ecx, 0xb97010
lea r8, [0x140104640]
sub r8, rdx
mov eax, ecx
shr eax, 8
xor al, byte [rdx + r8]
mov byte [rdx], al
imul ecx, ecx, 0xd1f5
add ecx, 0x96b0469
lea rdx, [rdx + 1]
sub rbx, 1
jne 0x1400d39f0
lea rdx, [rbp + 0x80]
lea rcx, [rbp - 0x38]
call fcn.1400bc100
nop
mov edx, dword [rdi + 0xa8]
mov byte [rsp + 0x30], bl
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], edx
mov r9, qword [rdi + 0xa0]
mov r8, r13
lea rdx, [rbp - 0x68]
call fcn.1400d3da0
mov rdx, rax
lea rcx, [rdi + 0x158]
call fcn.1400d4e20
mov rdx, qword [rbp - 0x68]
test rdx, rdx
je 0x1400d3a7c
mov r8, qword [rbp - 0x58]
sub r8, rdx
sar r8, 2
call fcn.1400c2620
mov qword [rbp - 0x68], r15
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x60], xmm0
lea r12, [0x1400fdb18]
mov qword [rbp - 0x38], r12
mov rcx, qword [rbp - 0x30]
test rcx, rcx
je 0x1400d3a96
call fcn.1400dee7c
nop
mov rdx, qword [rbp + 0x98]
cmp rdx, 0x10
jb 0x1400d3ad7
inc rdx
mov rcx, qword [rbp + 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400d3ad2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400d3d88
call fcn.1400d83b0
mov qword [rbp + 0xa0], r15
mov qword [rbp + 0xb0], r15
mov eax, 0xf
mov qword [rbp + 0xb8], rax
mov byte [rbp + 0xa0], 0
mov ebx, 0x13
mov edx, ebx
lea rcx, [rbp + 0xa0]
call fcn.1400acf30
lea rax, [rbp + 0xa0]
cmp qword [rbp + 0xb8], 0x10
jb 0x1400d3b28
mov rdx, qword [rbp + 0xa0]
movsx ecx, byte [rdx]
jmp 0x1400d3b32
movsx ecx, byte [rax]
lea rdx, [rbp + 0xa0]
add ecx, 0xbaf6b1
lea r9, [0x140104680]
sub r9, rdx
mov r8, rbx
mov eax, ecx
shr eax, 0xa
xor al, byte [r9 + rdx]
mov byte [rdx], al
imul ecx, ecx, 0xcbf5
add ecx, 0x97eda96
lea rdx, [rdx + 1]
sub r8, 1
jne 0x1400d3b45
lea rdx, [rbp + 0xa0]
lea rcx, [rbp - 0x20]
call fcn.1400bc100
nop
mov edx, dword [rdi + 0xb8]
mov byte [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], edx
mov r9, qword [rdi + 0xb0]
mov r8, r13
lea rdx, [rbp - 0x50]
call fcn.1400d3da0
mov rdx, rax
lea rcx, [rdi + 0x170]
call fcn.1400d4e20
mov rdx, qword [rbp - 0x50]
test rdx, rdx
je 0x1400d3bd2
mov r8, qword [rbp - 0x40]
sub r8, rdx
sar r8, 2
call fcn.1400c2620
mov qword [rbp - 0x50], r15
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x48], xmm0
mov qword [rbp - 0x20], r12
mov rcx, qword [rbp - 0x18]
test rcx, rcx
je 0x1400d3be5
call fcn.1400dee7c
nop
mov rdx, qword [rbp + 0xb8]
cmp rdx, 0x10
jb 0x1400d3c26
inc rdx
mov rcx, qword [rbp + 0xa0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400d3c21
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400d3d8e
call fcn.1400d83b0
mov qword [rbp + 0xc0], r15
mov qword [rbp + 0xd0], r15
mov eax, 0xf
mov qword [rbp + 0xd8], rax
mov byte [rbp + 0xc0], 0
mov rdx, rbx
lea rcx, [rbp + 0xc0]
call fcn.1400acf30
lea rax, [rbp + 0xc0]
cmp qword [rbp + 0xd8], 0x10
jb 0x1400d3c73
mov rdx, qword [rbp + 0xc0]
movsx ecx, byte [rdx]
jmp 0x1400d3c7d
movsx ecx, byte [rax]
lea rdx, [rbp + 0xc0]
add ecx, 0xbc7d52
lea r8, [0x140104760]
sub r8, rdx
nop dword [rax]
mov eax, ecx
shr eax, 0xc
xor al, byte [r8 + rdx]
mov byte [rdx], al
imul ecx, ecx, 0xcbf5
add ecx, 0x992b0c3
lea rdx, [rdx + 1]
sub rbx, 1
jne 0x1400d3c90
lea rdx, [rbp + 0xc0]
lea rcx, [rbp - 8]
call fcn.1400bc100
nop
mov edx, dword [rdi + 0x110]
mov byte [rsp + 0x30], bl
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], edx
mov r9, qword [rdi + 0x108]
mov r8, r13
lea rdx, [rbp + 0x28]
call fcn.1400d3da0
mov rdx, rax
lea rcx, [rdi + 0x188]
call fcn.1400d4e20
lea rcx, [rbp + 0x28]
call fcn.1400babd0
nop
mov qword [rbp - 8], r12
mov rcx, qword [rbp]
test rcx, rcx
je 0x1400d3d14
call fcn.1400dee7c
nop
mov rdx, qword [rbp + 0xd8]
cmp rdx, 0x10
jb 0x1400d3d51
inc rdx
mov rcx, qword [rbp + 0xc0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400d3d4c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400d3d70
call fcn.1400d83b0
mov eax, dword [rsp + 0x4c]
mov dword [rdi + 0x118], eax
mov dword [rdi + 0x11c], esi
mov word [rdi + 0x120], r14w
mov al, 1
jmp 0x1400d3285
call fcn.1400ded50
nop
call fcn.1400ded50
nop
call fcn.1400ded50
int3
call fcn.1400ded50
int3
call fcn.1400ded50
int3
call fcn.1400ded50
int3