Function at 0x140036140
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x20
mov rdi, r8
mov rbx, rdx
mov r14, rcx
mov rax, qword [r8]
add byte [rcx - 0x75], cl
jo 0x14002c64e
sub rax, rsi
mov rdx, rsi
cmp rax, 1
cmp eax, 1
jbe case.0x14002c59f.24
mov rax, qword [rdi + 8]
mov word [rax + rdx], 0
add rdx, 2
add cl, byte [rax - 0x77]
push rdi
adc byte [rax - 0x7b], cl
test ebx, ebx
je 0x14002c69c
shl rbx, 2
xor r15d, r15d
movzx ecx, word [r14 + r15]
movzx ecx, word [rsi + rdi]
mov bp, 0x201
lea r12, [0x14018b0ac]
movsxd rcx, dword [r12 + rcx*4]
mov word [rcx + rax - 0x1f], cs
jmp rcx
mov r8d, 2
mov rcx, rdi
mov rdx, rsi
call fcn.1400938d0
mov rdx, qword [rdi + 0x10]
mov edx, dword [rdi + 0x10]
jmp 0x14002c64a
mov rax, qword [rdi + 8]
cmp rsi, 0xfffffffffffffffd
ja case.0x14002c421.19
lea rcx, [rsi + 2]
cmp rcx, rdx
ja case.0x14002c421.19
sub edx, esi
add edx, 0xfffffffe
invalid
rol dx, 8
mov word [rax + rsi], dx
add rsp, 0x20
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop rsp
pop r14
pop r15
ret
ud2
mov bp, 0x203
jmp case.0x14002c67f.0
mov bp, 0x401
jmp case.0x14002c67f.0
mov bp, 0x403
jmp case.0x14002c67f.0
mov bp, 0x501
jmp case.0x14002c67f.0
mov bp, 0x503
jmp case.0x14002c67f.0
mov bp, 0x601
jmp case.0x14002c67f.0
push rbx
mov bp, 0x603
jmp case.0x14002c67f.0
mov bp, 0x804
jmp case.0x14002c67f.0
mov bp, 0x805
jmp case.0x14002c67f.0
mov bp, 0x806
jmp case.0x14002c67f.0
mov bp, 0x807
jmp case.0x14002c67f.0
mov bp, 0x808
jmp case.0x14002c67f.0
movzx ebp, word [r14 + r15 + 2]
jmp case.0x14002c67f.0
mov r8d, 2
mov rcx, rdi
call fcn.1400938d0
mov rax, qword [rdi + 8]
mov eax, dword [rdi + 8]
mov rdx, qword [rdi + 0x10]
jmp 0x14002c750
rol bp, 8
mov rcx, qword [rdi]
sub rcx, rdx
cmp rcx, 1
jbe 0x14002c719
mov word [rax + rdx], bp
mov rdx, qword [rdi + 0x10]
add rdx, 2
mov qword [rdi + 0x10], rdx
add r15, 4
add edi, 4
cmp rbx, r15
je case.default.0x14002c77d
movzx ecx, word [r14 + r15]
movsxd rcx, dword [r12 + rcx*4]
add rcx, r12
mov bp, 0x201
jmp rcx
add byte [rax], al
add byte [rax + 1], cl
fild dword [rbp + 0x31]
inc dword [rbx + 0xf]
mov dh, 0xc
xor ebp, ebp
cmp edx, dword [rdi]
mov ecx, edi
or dword [rax], eax
xchg ebp, ebx
add al, 0
add byte [rcx + 1], cl
iretd
add cl, ch
and byte [rcx], al
add byte [rax], al
and al, 0x28
mov rbp, qword [rsp + 0x48]
mov ebp, dword [rsp + 0x48]
add al, 0
add cl, ch
rol dword [rdx], 0
add byte [rax - 0x73], cl
lea rcx, [rsp + 0x30]
or dword [rax], eax
mov r10d, 0x3deb0007
pop rsp
add byte [rax], al
add byte [rax - 0x73], cl
lea rcx, [rsp + 0x30]
mov edx, 0xb8480005
add byte [rax], al
add byte [rax], al
add byte [rax], al
invalid
mov edx, esi
dec dword [rax - 0x75]
and al, 0x70
std
ja 0x14002d6c6
mov r9, rcx
sub r9, rax
jb 0x14002d6c6
mov rbx, qword [rdx]
movzx r8d, word [rbx + r8]
mov r10d, r8d
rol r10w, 8
movzx r14d, r10w
mov bh, 0xf2
cmp r9, r14
jae 0x14002d42e
mov qword [rsi + 8], 0xa
xorps xmm0, xmm0
ror byte [rdi], 0x11
invalid
invalid
mov r9, rax
add r9, r14
int1
mov qword [rdx + 0x10], r9
jb 0x14002d6c6
add byte [rax], al
cmp r9, rcx
ja 0x14002d6c6
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x28], 2
mov qword [rsp + 0x30], 0
test r8w, r8w
je 0x14002d655
add rbx, rax
mov eax, 2
xor edx, edx
ror byte [rbp + rcx*4 + 0x3d], cl
fst qword [0x1348c2180]
xor r13d, r13d
jmp 0x14002d4b3
xor byte [rax - 1], cl
ret 0x8948
add byte [rcx - 0x7d], cl
in al, dx
add cl, byte [rdi]
invalid
rol ebp, 8
ud2
sbb byte [rsi - 0x74b7ffe5], ch
add al, 0xc1
invalid
mov rax, qword [rcx + 0x20]
cmp rax, qword [rdx + 0x20]
cmp eax, dword [rdx + 0x20]
jne 0x14002d996
test rax, rax
je 0x14002d99a
lea r9, [rax - 0x21]
xor r8d, r8d
xor r10d, r10d
invalid
nop word [rax + rax]
test al, al
xor eax, eax
pop rsi
mov al, 1
pop rsi
ret
in al, dx
invalid
sbb al, 0x48
lea eax, [0x1401abcf8]
add byte [rax - 0x73], cl
or eax, 0x15d7d0
loop 0x14002da96
add byte [rax], al
add byte [rsi - 0x45], ah
add al, byte [rax]
add byte [rbx + rcx*4 + 0x11], cl
mov bh, 0x41
or bl, al
nop word cs:[rax + rax]
invalid
add byte [rax], al
add byte [rax - 0x7b], cl
sal byte [rdx + rcx*2 + 0x48], cl
je 0x14002dc6f
shl rdx, 3
adc al, 0x92
fdiv dword [rdi + riz + 0x44]
movzx eax, word [rcx]
invalid
invalid
add byte [rax], al
mov r12, rdx
mov rdi, rcx
movabs r13, 0x8000000000000000
add byte [rax + 0x2444c748], al
and byte [rax], al
add byte [rax], al
invalid
clc
lea rcx, [rdi + rbp]
mov rdx, rsi
mov edx, esi
and al, 0x80
add byte [rax], al
add byte [rdx - 0x75], cl
pop rsp
sub byte [rax], cl
invalid
or byte [rdx - 0x75], cl
insb byte [rdi], dx
sub byte [rax], dl
movabs al, byte [0x8348fe894c000000]
mov byte [rdx], 0xf
invalid
lea eax, [rsi + rsi]
invalid
add byte [rax], al
ret 0x651
movabs al, byte [0xe9002abe66fffffa]
xchg edi, eax
and al, 0x20
mov rdx, rbp
mov r8, rbx
call fcn.1400938d0
mov rbp, qword [rsp + 0x30]
and al, 0x30
mov r14, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x28]
mov edi, dword [rsp + 0x28]
mov edi, dword [rsp + 0x28]
jmp 0x14002e129
inc dword [rcx - 0x48]
add al, byte [rax]
add byte [rax], al
invalid
mov ecx, esi
invalid
sar edi, cl
invalid
add byte ss:[rax], al
sbb byte [rcx + 0xf], al
mov bh, 0x7c
invalid
add byte [rax], al
mov r13, qword [rsp + 0x48]
and al, 0x48
xchg esi, eax
scasb al, byte [rdi]
or eax, dword [rax]
invalid
and al, 0x10
add byte [rcx - 0x75], cl
and al, 8
and al, 0xa8
add byte [rax], al
add byte [rax - 0x7d], cl
cmp rcx, 0xfffffffffffffffc
wait
invalid
invalid
and al, 0x40
add dword [rax], eax
add byte [rax], al
add byte [rax], al
add byte [rcx + rdi - 0x12], cl
mov esi, dword [rbx + rdi + 0x10]
test byte [rdi], 0x85
adc al, 1
add byte [rax], al
invalid
add byte [rcx - 0x41], al
add dword [rax], eax
add byte [rax], al
invalid
add byte [rbp + 0x31], al
in al, 0x4b
lea ecx, [rdi + riz]
or al, 0x27
je case.0x14002c827.124
xor byte [rax - 0x7d], cl
mov byte [rdx], 0x48
add cl, byte [rax - 0x77]
je 0x14002f25f
invalid
add cl, byte [rax - 0x77]
je 0x14002f25f
xor byte [rax + 0x29], cl
invalid
add ecx, esi
mov dword [rsp + 0x30], esi
invalid
and byte [rax - 0x75], cl
pop rsp
and al, 0x30
mov edx, esi
add byte [rax + 1], cl
sti
add edx, 0x20
and al, 0x30
add byte [rax], al
add byte [rax + 0x39], cl
ret 0x1775
jne 0x14002f60d
invalid
and al, 0x28
xor byte [rax - 0x74b7eee4], cl
jl case.0x14002c827.177
xor byte [rax - 1], cl
invalid
mov ecx, dword [rsp + 0x20]
and al, 0x20
and al, 0x28
pop rsi
add dword [rax - 0x77], ecx
pop rsp
and al, 0x30
invalid
xor byte [rax + 0x29], cl
fmul dword [rax - 0x7d]
stc
add dword [rdi], ecx
cmp ecx, 1
xchg byte [rcx + 0x66000005], ch
add eax, 0xc7660000
add al, byte [rax]
add byte [rax - 0x7d], cl
invalid
add eax, 2
add cl, byte [rax - 0x77]
and al, 0x30
and al, 0x30
and al, 0x30
test byte [rdi], 0x84
lahf
and al, 0x48
add byte [rax], al
add byte [rax], al
and al, 0x20
cmp al, 6
sbb eax, 0x6622eb00
mov esi, 0x1ceb001e
invalid
add bl, ch
invalid
invalid
cmp eax, dword [rsi]
add byte [rax - 0x75], cl
invalid
invalid
add byte [rax], al
nop
add byte [rax], al
add byte [rax - 0x7d], cl
invalid
invalid
sti
std
add byte [rax], al
and al, 0x60
invalid
add byte [rax - 0x73], cl
and al, 0x20
lea rcx, [rsp + 0x20]
mov eax, 2
mov edx, edi
mov dword [rsp + 0x48], edx
add ebx, ebp
xor byte [rsi - 0x43], ah
mov bp, 0x102
add ebx, ebp
sub ah, byte [rsi - 0x43]
invalid
invalid
add ebx, ebp
and al, 0x66
invalid
add ebx, ebp
invalid
invalid
adc byte [rax - 0x75], cl
push rbp
mov ebx, dword [rbp + 0x10]
add ecx, dword [rax - 0x73]
sub al, 0x80
xor esi, esi
nop word cs:[rax + rax]
invalid
add byte [rsi - 0x75], cl
jl case.0x14002c827.255
adc byte [rdx - 0x75], cl
je 0x1400303fc
sbb byte [rax - 0x75], cl
and al, 0x38
mov eax, dword [rsp + 0x38]
clc
cmc
add ebx, ebp
mov di, 0x102
mov di, 0x102
test byte [rdi], 0x84
nop
add byte [rax], al
add byte [rax - 0x75], cl
pop rbp
adc byte [rax + 1], cl
mov dword [rsp + 0x58], edx
sub al, 6
add byte [rbx + rcx*4 + 0x74], cl
mov esi, dword [rsp + 0x48]
and al, 0x38
mov edx, esi
invalid
rol r14d, 8
mov dword [rdi + rax], r14d
mov esi, dword [rbx + 0x28]
jnp 0x140030f37
rol esi, 8
push rsp
and al, 0x48
add byte [rax], al
invalid
mov ecx, dword [rax + 2]
and al, 0x48
or eax, ecx
and al, 0x50
add byte [rax], al
push 0xffffffff84bda12f
movabs eax, dword [0x8d48c1af0f4884bd]
invalid
cmp edx, 0xf
invalid
dec dword [rbx + rcx*4 - 0x4d]
invalid
lea ecx, [rsp + 0x60]
or eax, dword [rax]
add dword [rax], eax
add byte [rdi + rcx + 0x28], al
movaps xmm0, xmmword [rsp + 0x130]
invalid
invalid
invalid
add dword [rax], eax
add byte [rbx + 0x5d], bl
pop rbp
invalid
mov dl, 0x48
test esi, esi
add byte [rax], al
add byte [rax], al
add al, byte [rax]
add byte [rax - 0x39], cl
test byte [rax + rbp], ah
add al, byte [rax]
add byte [rdx], al
add byte [rax], al
add byte [rax - 0x73], cl
and al, 0x3c
lea ecx, [0x1401abe9f]
add byte [rax - 0x39], cl
test byte [rax + rcx*2], ah
add al, byte [rax]
add byte [rsi], al
add byte [rax], al
add byte [rax - 0x73], cl
or eax, 0x17884b
mov byte [rdi], dl
invalid
shl edx, 8
xchg eax, edi
add eax, dword [rax]
add byte [rdi], cl
push rdi
ror byte [rdi], 0x29
test byte [rax + rsi*4], ah
add dword [rax], eax
add byte [rdi], cl
sub dword [rsp + 0x1a0], eax
invalid
add dword [rax], eax
invalid
movabs al, byte [0x902484290f000001]
add dword [rax], eax
add byte [rdi], cl
movaps xmmword [rsp + 0x180], xmm0
mov rcx, rdi
call rbp
mov r14, rax
test rax, rax
je 0x140034650
test rdx, rdx
je 0x1400353e6
mov bl, 3
cmp byte [r14], 0
jne 0x140035177
cmp rdx, 0x21
jb 0x1400353e6
cmp rdx, 0x29
jb 0x1400353e6
cmp rdx, 0x2b
jb 0x1400353e6
movzx r9d, byte [r14 + 0x29]
mov r15, r9
shl r15, 8
movzx r8d, byte [r14 + 0x2a]
lea rax, [r15 + r8]
add rax, 0x2b
cmp rax, rdx
ja 0x1400353e6
or r15, r8
lea rax, [r15 + 0x2d]
cmp rax, rdx
ja 0x1400353e6
lea rcx, [r15 + 0x2f]
cmp rcx, rdx
ja 0x1400353e6
movzx eax, word [r14 + rax]
rol ax, 8
movzx r11d, ax
lea rax, [rcx + r11]
cmp rax, rdx
jne 0x1400353e6
mov qword [rsp + 0x288], r9
mov qword [rsp + 0x2d0], r8
mov qword [rsp + 0x2d8], rcx
movzx ecx, byte [r14 + 0x21]
movzx eax, byte [r14 + 0x22]
mov byte [rsp + 0x3f], cl
and al, 0x3f
movzx ecx, cl
mov qword [rsp + 0x2c0], rcx
mov dword [rsp + 0x2c0], ecx
mov byte [rsp + 0x3c], al
movzx ebx, al
mov dh, 0xd8
movzx eax, byte [r14 + 0x23]
mov byte [rsp + 0x3d], al
movzx eax, al
mov dh, 0xc0
mov qword [rsp + 0x2c8], rax
movzx eax, byte [r14 + 0x24]
mov byte [rsp + 0x3e], al
invalid
movzx eax, al
mov qword [rsp + 0x198], rax
movzx eax, byte [r14 + 0x25]
mov qword [rsp + 0x290], rax
mov dword [rsp + 0x290], eax
movzx eax, byte [r14 + 0x26]
mov qword [rsp + 0x298], rax
movzx r10d, byte [r14 + 0x27]
movzx eax, byte [r14 + 0x28]
mov qword [rsp + 0x280], rax
movzx eax, byte [r14 + r15 + 0x2b]
movzx ecx, byte [r14 + r15 + 0x2c]
mov dh, 0x4c
sub al, 0x4c
mov eax, dword [rsp + 0x160]
test byte [rax + riz*2], ah
add dword [rax], eax
invalid
xor edx, edx
mov r9, qword [r13 + rdx*8]
movdqu xmm0, xmmword [r14 + 1]
movq mm0, qword [r14 + 1]
movdqu xmm1, xmmword [r14 + 0x11]
movdqu xmm2, xmmword [r9 + 0x40]
movq mm2, qword [r9 + 0x40]
pcmpeqb xmm2, xmm0
pcmpeqb mm2, mm0
movdqu xmm0, xmmword [r9 + 0x50]
outsd dx, dword [rsi]
push r8
pcmpeqb xmm0, xmm1
shl dword [rsi + 0xf], 0xdb
pand xmm0, xmm2
pmovmskb r9d, xmm0
pmovmskb r9d, mm0
ret 0x4466
pmovmskb r9d, mm0
cmp r9d, 0xffff
je 0x14003538f
invalid
invalid
add byte [rax], al
invalid
stc
invalid
test byte [rdx + 0x48000000], ah
inc rdx
inc edx
add r8, 0xfffffffffffffff8
jne case.0x14002c59f.480
mov bl, 4
jmp 0x140035177
invalid
invalid
invalid
invalid
jp case.0x14002c77d.457
cmp rdx, rsi
jae 0x14003599e
shl eax, 8
or eax, ecx
xor ebx, ebx
jmp 0x140034650
add eax, 0x177d9e
sbb al, 0x48
lea ecx, [rsp + 0x70]
and al, 0x70
add byte [rax], al
dec r14
lea eax, [rbp - 1]
and eax, ebp
mov ebp, eax
test r14, r14
je 0x140035ffd
test bp, bp
jne 0x140035edf
nop dword [rax + rax]
movdqa xmm0, xmmword [r12]
pmovmskb ebp, xmm0
add r13, 0xfffffffffffff280
add r12, 0x10
cmp ebp, 0xffff
je 0x140035ec0
not ebp
tzcnt eax, ebp
neg rax
imul rax, rax, 0xd8
lea rdi, [rax + r13]
cmp byte [r13 + rax - 0xd8], 0
jne 0x140035f1b
cmp qword [rdi - 0xd0], 0
je 0x140035f1b
mov r8, qword [rdi - 0xc8]
mov rcx, qword [0x140228110]
xor edx, edx
call sub.kernel32.dll_HeapFree
mov rax, qword [rdi - 0x98]
cmp rax, r15
je 0x140035fc9
test rax, rax
je 0x140035f45
mov r8, qword [rdi - 0x90]
mov rcx, qword [0x140228110]
shl byte [rcx], cl
invalid
add byte [rcx], dh
shr al, cl
xchg ebx, eax
xor ecx, dword [rbx]
invalid
cmp qword [rdi - 0x80], 0
je 0x140035f5e
mov r8, qword [rdi - 0x78]
mov rcx, qword [0x140228110]
xor edx, edx
call sub.kernel32.dll_HeapFree
mov rbx, qword [rdi - 0x58]
test rbx, rbx
je 0x140035fb0
mov rsi, qword [rdi - 0x60]
add rsi, 8
jmp 0x140035f89
add rsi, 0x18
dec rbx
je 0x140035fb0
cmp qword [rsi - 8], 0
je 0x140035f80
mov r8, qword [rsi]
mov rcx, qword [0x140228110]
xor edx, edx
call sub.kernel32.dll_HeapFree
xor ecx, dword [rbx]
add bl, ch
invalid
cmp qword [rdi - 0x68], 0
je 0x140035fc9
mov r8, qword [rdi - 0x60]
mov rcx, qword [0x140228110]
xor edx, edx
call sub.kernel32.dll_HeapFree
lea rcx, [rdi - 0xb8]
lea ecx, [rdi - 0xb8]
call fcn.140056a70
cmp qword [rdi - 0xb8], 0
je 0x140035ea0
invalid
invalid
invalid
invalid
invalid
mov r8, qword [rdi - 0xb0]
mov rcx, qword [0x140228110]
xor edx, edx
call sub.kernel32.dll_HeapFree
jmp 0x140035ea0
mov r8, qword [rsp + 0x28]
add byte [rcx], dh
shr al, cl
sahf
xor cl, byte [rbx]
add byte [rbx + rcx*4 + 0x76], cl
sub byte [rbp - 0x7b], cl
div byte [rsi + rsi*2 + 0x48]
mov eax, dword [rsi + 0x20]
invalid
or al, 0xf
invalid
jg case.0x14002edf8.482
add byte [rbp - 0xf], dh
shr al, cl
and dword [rdx], esi
or eax, dword [rax]
xlatb
and cl, byte [rbx + rcx*4 + 0x46]
sbb byte [rax - 0x75], cl
or eax, 0x1f2045
clc
add byte [rbp + riz*8 + 0x4d], dh
mov eax, dword [rbp]
add byte [rcx], dh
shr al, cl
wait
xor dword [rbx], ecx
add bl, ch
rcl dword [rax + 0x48535756]
push rsi
push rdi
push rbx
mov rax, rcx
mov edi, edx
mov dh, 0x3c
or al, byte [rcx - 0x3f]
loope 0x1400361c3
or esi, edi
add byte [rax], al
add byte [rax - 0x2d], cl
out 0x48, al
or esi, dword [rax + 0x38]
jb case.0x1400359c2.32
mov rdx, qword [rdi + 0x10]
mov rcx, qword [rdi + 0x18]
lock inc qword [rdx]
jle 0x1400368fc
mov qword [rsi + 8], rax
mov qword [rsi + 0x10], rdx
mov qword [rsi + 0x18], rcx
sbb byte [rax + 0x137e90a], dh
add byte [rax], al
or ebp, ecx
sub dword [rcx], eax
add byte [rax], al
mov rax, qword [rdi + 8]
cmp rax, 4
jne 0x140036899
mov rcx, qword [rdi + 0x10]
mov rdx, qword [rdi + 0x18]
lock inc qword [rcx]
ror byte [rcx - 0x77], cl
clc
sbb byte [rdi], cl
mov bh, 0x47
add dword [rsi - 0x77], esp
add dword [rax + 0x4122eb01], r14d
mov esi, 1
nop dword [rax + rax]
jle 0x140036a36
adc dword [rdx + 4], esi
invalid
shr al, cl
invalid
sub al, 0x39
or eax, 0x1f1526