Function at 0x140391e80
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
mov r14, r9
mov rdi, r8
mov ebx, edx
mov rsi, rcx
mov eax, edx
and eax, 0x3f
cmp eax, 0xf
ja 0x140391ee8
nop word cs:[rax + rax]
cmp eax, 8
setae r13b
jb 0x140391f12
cmp eax, 0xa
jbe 0x140391f42
cmp eax, 0xb
je 0x140391f67
cmp eax, 0xd
ja 0x140391f73
je 0x140391fb7
mov esi, esi
mov ebx, 0x603e954e
mov eax, 0xe
jmp 0x140391eb0
lea r15, [0x14058f590]
xor r13d, r13d
add eax, 0xfffffff0
lea rcx, [0x140454b58]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov ebx, 0x85ea5c05
xor r13d, r13d
jmp 0x1403922d2
mov r15, r14
cmp eax, 2
ja 0x140392003
test eax, eax
je 0x14039221f
cmp eax, 2
jne 0x140392244
mov rcx, rdi
mov edx, r15d
call fcn.1403e7c30
mov r15, rdi
jmp case.0x140391f03.2
cmp eax, 8
je 0x140391fed
cmp eax, 0xa
jne 0x140392047
mov rcx, rsi
call fcn.1400951e0
xor r13d, r13d
xor r15d, r15d
jmp case.0x140391f03.2
movzx r15d, sil
xor r13d, r13d
jmp case.0x140391f03.2
cmp eax, 0xf
jne 0x140391fd3
mov rdx, rdi
shr rdx, 0x20
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x40], r14
cmp rsi, r14
jae 0x140392215
test bx, bx
js 0x14039231d
nop
mov qword [rsp + 0x38], 0
and al, 0x38
add byte [rax], al
add byte [rax], al
mov r9b, 1
mov ebp, esi
mov rax, rsi
jmp 0x1403924c6
test edi, edi
je 0x14039243e
test bl, 0x40
jne 0x1403921f6
xor r13d, r13d
xor r15d, r15d
jmp case.0x140391f03.2
nop
movzx eax, byte [0x140577833]
xor r13d, r13d
cmp al, 0x66
mov ebp, esi
jne 0x140392756
jmp 0x14039253a
mov r15d, r14d
mov ebx, 0x4ec83244
mov eax, 4
cmp eax, 2
jbe case.default.0x140392014
add eax, 0xfffffffd
lea rcx, [0x140454b9c]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
nop
movzx eax, byte [0x140577735]
lea rcx, [0x140577720]
cmp al, 0x2a
je 0x14039203f
mov dl, 0x62
mov al, 0xc1
lock cmpxchg byte [0x140577735], dl
je 0x1403924b9
cmp al, 0x2a
jne 0x14039202b
mov r15, rcx
jmp case.0x140391f03.2
nop
mov r8, qword [rdi + 8]
test r8, r8
sete cl
movzx eax, byte [0x140577162]
cmp al, 0x83
jne 0x140392265
lea rax, [rsp + 0x70]
mov ebp, esi
mov r9d, ecx
jmp 0x140392504
mov rcx, r14
call fcn.1400956c0
mov r15d, eax
xor r13d, r13d
jmp case.0x140391f03.2
xor r13d, r13d
xor eax, eax
sub eax, dword [r14 - 4]
cdqe
lea r15, [r14 + rax]
add r15, 0xffffffffffffff68
mov rdx, r15
mov r8d, 0x1e446d6e
invalid
invalid
call fcn.140390cd0
test esi, esi
je case.0x140391f03.2
mov ebp, esi
jmp 0x140392803
mov r15d, 0xffffffff
xor r13d, r13d
jmp case.0x140391f03.2
xor r13d, r13d
lock dec dword [rdi + 8]
cmovne rdi, r13
mov r15, rdi
jmp case.0x140391f03.2
nop
movzx eax, byte [0x140577789]
lea r15, [0x140577780]
cmp al, 0x5b
jne 0x140392280
xor r13d, r13d
jmp case.0x140391f03.2
lea rax, [0x140430328]
mov qword [rsi], rax
mov rcx, rsi
call fcn.1400c2960
lea rax, [0x14042f2e8]
mov qword [rsi], rax
mov r15, qword [rsi + 0x60]
xor r13d, r13d
test r15, r15
je 0x140392590
nop
mov rcx, qword [r15 + 8]
test rcx, rcx
je 0x140392449
nop
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x1400e4fcc.0]
test rax, rax
ror byte [rdi], 0x84
sbb dword [rax + rax], eax
invalid
nop
mov rcx, qword [rax]
mov r8, qword [rcx]
mov rcx, rax
mov edx, 1
mov rax, r8
call qword [case.0x1400e4fcc.0]
sbb byte [rax], al
jmp 0x140392578
xor ecx, ecx
test edi, edi
je 0x1403923a2
xor r13d, r13d
mov rcx, r14
call fcn.140094cc0
mov r15, r14
jmp case.0x140391f03.2
xor r13d, r13d
mov r15, r14
test esi, esi
je case.0x140391f03.2
mov rcx, r14
call fcn.140094cc0
mov r15, r14
jmp case.0x140391f03.2
nop
movzx eax, byte [0x140577775]
xor r13d, r13d
cmp al, 0xf
jne 0x1403929a2
jmp 0x1403925ad
test r14d, r14d
je 0x1403923fe
test ebx, 0x1000
jne 0x140392412
mov rcx, rsi
call fcn.140094cc0
xor r13d, r13d
mov ebp, esi
jmp 0x140392747
mov rcx, rsi
call fcn.140094cc0
xor r13d, r13d
test ebx, 0x100
mov r15, rsi
jne case.0x140391f03.2
jmp 0x1403925b9
nop
mov dword [rsp + 0x20], edi
jmp 0x1403922a4
nop
mov r8, qword [r15 + 0x38]
mov rdx, qword [r8]
test rdx, rdx
je 0x14039265c
test ebx, 0x400
jne 0x140392452
mov r15, rdx
jmp case.0x140391f03.2
lea rax, [0x14042f2e8]
mov qword [rdi], rax
mov r12, qword [rdi + 0x60]
test r12, r12
je 0x14039241f
mov r14, r15
mov ebp, esi
jmp 0x140392819
xor r13d, r13d
test ebx, 0x1000
jne 0x140392433
lea r12, [rsp + 0x58]
mov ebp, esi
jmp 0x140392726
mov cl, 0xb5
xor edx, edx
nop word cs:[rax + rax]
mov al, 0xab
lock cmpxchg byte [0x140577789], cl
je 0x14039243a
cmp al, 0x5b
jne 0x140392290
mov ecx, edi
test ebx, 0x10000
je 0x1403923ad
lea r15, [0x140577780]
xor r13d, r13d
jmp case.0x140391f03.2
mov r14, r15
nop
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x30], 0
jmp 0x140392401
mov rcx, rsi
call fcn.1403e61d8
xor r15d, r15d
jmp case.0x140391f03.2
mov cl, 1
lea rax, [rsp + 0x60]
xor r13d, r13d
mov edx, 0x6ea5ac46
mov r8d, 0x915a53ca
mov r9d, 1
mov r10d, 0x6ea5ac47
lea r11, [0x140577150]
lea r15, [0x140454610]
nop dword [rax]
mov r12d, r8d
imul r12, r12, 0x38e38e39
shr r12, 0x22
add r12d, r12d
lea r12d, [r12 + r12*8]
lea ebp, [rdx + r12]
add r12d, r10d
movzx r12d, byte [r12 + r15]
xor r12b, 0x18
add byte [r9 + r11 - 1], r12b
movzx ebp, byte [rbp + r15]
xor bpl, 0x18
add byte [r9 + r11], bpl
add edx, 0xfffffffe
add r8d, 2
add r9, 2
add r10d, 0xfffffffe
cmp r9, 0x13
jne 0x140392350
jmp 0x140392519
test bl, 0x40
jne 0x140392469
xor edx, edx
nop
mov eax, dword [rsp + 0x20]
shl rdx, 0x20
or rdx, rax
je 0x1403924b1
nop
mov rax, qword [rsp + 0x28]
lea r15, [0x140577760]
test ebx, 0x1000
je 0x140392474
test ebx, 0x100
mov r8, qword [rsp + 0x40]
movzx r8d, byte [r8 + rdx - 1]
mov byte [rax + rdx - 1], r8b
je 0x140392106
dec rdx
jne 0x1403923cc
jmp 0x1403924b1
xor r13d, r13d
mov r15, rsi
test bl, 0x40
jne case.0x140391f03.2
jmp 0x1403925e8
xor r13d, r13d
mov ebp, esi
xor r9d, r9d
jmp 0x140392786
mov r14, r15
test ebx, 0x100
jne case.0x140391f03.2
jmp 0x140392846
mov ebp, esi
jmp 0x14039279e
test bl, bl
js 0x140392481
xor r13d, r13d
mov r15, rsi
jmp case.0x140391f03.2
lea rdx, [r15 + 8]
jmp 0x140392910
nop
mov rcx, qword [r15 + 0x50]
cmp dword [rcx], 0
jg 0x1403926db
lea rax, [r15 + 0x38]
jmp 0x140392936
xor r13d, r13d
mov r15, r14
jmp case.0x140391f03.2
nop
mov dword [rsp + 0x20], edx
xor r13d, r13d
jmp 0x1403925fa
test ebx, 0x400
jne 0x1403924b1
movabs rax, 0x24c6c0cc47f3d060
xor qword [0x140577780], rax
xor byte [0x140577788], 0xd5
add ch, dl
mov al, 0x5b
xchg byte [0x140577789], al
xor r13d, r13d
jmp case.0x140391f03.2
xor r13d, r13d
jmp 0x14039285e
xor eax, eax
mov r14, r15
jmp 0x140392682
nop
ud2
nop
mov rcx, qword [rsp + 0x38]
mov r8, rdx
shl r8, 0x20
mov r10d, edi
or r10, r8
cmp rcx, r10
jae 0x140392514
test ebx, 0x800
je 0x140392532
nop
mov r8, qword [rsp + 0x40]
movzx r8d, byte [r8 + rcx]
mov r10, qword [rsp + 0x28]
mov byte [r10 + rcx], r8b
inc qword [rsp + 0x38]
xor r8d, r8d
xor ecx, ecx
test ebx, 0x4000
je 0x1403924c6
xor r13d, r13d
jmp 0x140392963
xor r13d, r13d
xor ecx, ecx
test ebx, 0x200
jne 0x140392993
mov dl, 0x83
xchg byte [0x140577162], dl
jmp 0x14039284e
xor r13d, r13d
jmp 0x140392786
test ebx, 0x200
je 0x140392560
mov cl, 0x3e
mov al, 0xad
lock cmpxchg byte [0x140577756], cl
mov ebp, eax
mov ecx, edi
je 0x1403925fa
cmp bpl, 0xe
jne 0x14039253a
jmp 0x14039256c
lea r15, [0x140577830]
jmp case.0x140391f03.2
lea r15, [0x140577740]
jmp case.0x140391f03.2
mov rcx, r15
call fcn.140094cc0
test ebx, 0x4000
jne 0x140392590
xor r15d, r15d
jmp case.0x140391f03.2
test edi, edi
je 0x140392441
test ebx, 0x400
je 0x1403925ad
mov rcx, rsi
call fcn.140094cc0
jmp 0x140392441
lea r15, [0x140577760]
jmp case.0x140391f03.2
nop
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x30]
movzx eax, byte [rax + rcx]
mov rdx, qword [rsp + 0x58]
mov byte [rdx + rcx], al
test ebx, 0x2000
jne 0x14039256c
nop
inc qword [rsp + 0x30]
xor edx, edx
test bl, bl
js 0x14039290b
nop
mov rax, qword [rsp + 0x30]
cmp rax, qword [rsp + 0x68]
jb 0x1403925b9
jmp 0x140392988
xor eax, eax
test ebx, 0x10000
je 0x14039260b
mov edi, ecx
jmp 0x1403928ab
mov al, 0x2a
xchg byte [0x140577735], al
lea r15, [0x140577720]
jmp case.0x140391f03.2
nop
test byte [r15 + 0x70], 4
jne 0x14039265c
nop
mov r10, qword [r15 + 0x68]
cmp r10, r9
cmovb r10, r9
cmp r10, rdx
jbe 0x140392667
test ebx, 0x10000
je 0x1403929c2
nop
mov qword [r15 + 0x68], r10
sub r10d, dword [r8]
mov dword [rcx], r10d
mov rax, qword [rax]
mov rdx, qword [rax]
xor eax, eax
mov r14, r15
jmp 0x14039267a
mov r15d, 0xffffffff
jmp case.0x140391f03.2
mov r15d, 0xffffffff
test bl, bl
js 0x1403925ad
jmp case.0x140391f03.2
test ebx, 0x2000
je 0x1403926db
lea ecx, [rax + 0x69f4e2c]
mov edx, 0xb21642c9
imul rdx, rcx
shr rdx, 0x24
lea ecx, [rdx + rdx*2]
shl ecx, 3
sub edx, ecx
lea ecx, [rax + rdx]
add ecx, 0x69f4e2c
cdqe
lea rdx, [0x140577720]
movzx r8d, byte [rax + rdx]
lea r9, [0x140454a30]
sub r9, rcx
xor r8b, byte [r9 + 0x16]
xor r8b, 0x28
mov byte [rax + rdx], r8b
inc eax
xor edx, edx
cmp eax, 0x14
mov ecx, edi
jg 0x1403925fa
jmp 0x14039267a
nop
movzx r15d, byte [rdx]
jmp case.0x140391f03.2
nop
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x1400e4fcc.0]
test rax, rax
je 0x140392726
test ebx, 0x2000
je 0x14039271a
nop
mov rcx, qword [rax]
mov r8, qword [rcx]
mov rcx, rax
mov edx, 1
mov rax, r8
call qword [case.0x1400e4fcc.0]
jmp 0x140392726
lea r15, [0x140577780]
jmp case.0x140391f03.2
mov rcx, r12
call fcn.140094cc0
test bx, bx
mov r15, r14
mov eax, ebp
jns 0x140392846
cmp al, 0x66
je 0x1403927ca
mov r14, r15
mov r15, rsi
test ebx, 0x400
je case.0x140391f03.2
mov cl, 8
mov al, 0x8b
lock cmpxchg byte [0x140577833], cl
jne 0x1403927bf
test bl, 0x40
je 0x140392558
nop
xor byte [0x140577830], 0xae
xor byte [0x140577831], 0x64
xor byte [0x140577832], 0xc3
xor r9d, r9d
mov al, 0x66
xchg byte [0x140577833], al
lea r8, [rsp + 0x28]
test bl, bl
jns 0x140392560
mov ecx, r9d
mov dl, 0xc5
mov al, 0xfe
lock cmpxchg byte [0x140577162], dl
je 0x1403927f2
test ebx, 0x2000
je 0x14039276d
cmp al, 0x83
jne 0x1403927a0
xor eax, eax
jmp 0x14039289f
mov r15, r14
cmp al, 0x66
jne 0x140392744
test ebx, 0x100
jne 0x140392560
lea rax, [rsp + 0x68]
lea r9, [rsp + 0x30]
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x50]
mov r8, r9
jmp 0x140392627
lea r15, [rsp + 0x48]
test ebx, 0x100
je 0x140392888
mov rcx, r15
call fcn.140094cc0
lea r12, [rsp + 0x48]
test bl, 0x40
je case.0x140391f03.2
nop
mov rcx, qword [r12 + 8]
test rcx, rcx
je 0x140392835
test ebx, 0x200
jne 0x1403926e5
jmp 0x1403921a7
test ebx, 0x400
jne 0x140392726
jmp 0x140392189
xor eax, eax
test esi, esi
je 0x140392874
xor ecx, ecx
test ebx, 0x800
jne 0x14039286c
mov rcx, rdi
call fcn.140094cc0
test bl, bl
cmovns rdi, rsi
mov r15, rdi
jmp case.0x140391f03.2
mov r8, rax
jmp 0x140392963
mov r15, rdi
test ebx, 0x4000
jne case.0x140391f03.2
jmp 0x140392682
test bl, 0x40
jne 0x140392895
mov rax, r8
jmp 0x140392327
lea r15, [rsp + 0x50]
jmp 0x14039213a
test ebx, 0x400
jne 0x140392963
lea ecx, [rax + 0x19ea0aae]
mov edx, 0x86186187
imul rdx, rcx
shr rdx, 0x20
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 4
lea edx, [rcx + rcx*4]
lea ecx, [rcx + rdx*4]
neg ecx
add ecx, eax
add ecx, 0x19ea0aae
movsxd r9, eax
lea rdx, [0x140577740]
lea rax, [0x140454a50]
movzx eax, byte [rcx + rax]
xor al, 0xda
add byte [r9 + rdx], al
lea eax, [r9 + 1]
xor r8d, r8d
xor ecx, ecx
cmp eax, 0x15
jle 0x14039289f
add rdx, r9
test bl, bl
jns 0x1403925e8
lea r15, [rsp + 0x40]
test ebx, 0x100
jne 0x140392578
mov al, 0xe
xchg byte [0x140577756], al
lea rax, [rsp + 0x28]
lea r8, [rsp + 0x50]
lea rcx, [rsp + 0x20]
mov r15, r14
lea r10, [0x140577740]
test ebx, 0x800
jne 0x14039295b
nop
mov r9, qword [r15 + 0x40]
mov r9, qword [r9]
test r9, r9
je 0x140392976
test bx, bx
jns 0x14039261f
mov r15, r10
jmp case.0x140391f03.2
lea r15, [0x140577150]
test cl, 1
cmove r15, r8
jmp case.0x140391f03.2
mov r15d, 0xffffffff
test ebx, 0x1000
je case.0x140391f03.2
nop
mov r15, qword [rsp + 0x60]
jmp case.0x140391f03.2
mov r15, rsi
test ebx, 0x2000
jne case.0x140391f03.2
mov cl, 0xf3
mov al, 0x1b
lock cmpxchg byte [0x140577775], cl
je 0x1403929c2
test bl, 0x40
jne 0x140392a80
cmp al, 0xf
jne 0x140392993
jmp 0x1403925ad
mov ecx, 0xd31eb8f0
mov r8d, 0xd31eb8ef
xor r10d, r10d
movabs r11, 0x8618618618618619
lea rax, [0x140454a70]
mov esi, 0xd31eb8e8
add rsi, rax
lea r15, [0x140577760]
mov rax, rcx
mul r11
mov r9, rdx
mov rax, r8
mul r11
mov rax, r8
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 4
imul rax, rax, 0xffffffffffffffeb
add rax, rsi
movzx eax, byte [r10 + rax + 7]
xor al, 0x74
add byte [r10 + r15], al
cmp r10, 0x14
je 0x140392a5d
mov rax, rcx
sub rax, r9
shr rax, 1
add rax, r9
shr rax, 4
imul rax, rax, 0xffffffffffffffeb
add rax, rsi
add rax, 8
ror byte [rax], 0x42
movzx eax, byte [rax + rdx]
xor al, 0x74
add byte [r10 + r15 + 1], al
add r10, 2
add rcx, 2
add r8, 2
jmp 0x1403929f0
mov al, 0xf
xchg byte [0x140577775], al
xor eax, eax
test r13b, 1
cmove rax, r15
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, edi
jmp 0x1403925fa