Function at 0x140315e60
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov r14, r9
mov rdi, r8
mov ebx, edx
mov rsi, rcx
nop dword [rax + rax]
mov eax, ebx
and eax, 0x1f
cmp eax, 0xa
jae 0x140315eb0
cmp eax, 2
jbe 0x140315f44
cmp eax, 6
jae 0x140315f89
cmp eax, 3
jne 0x140315f1e
mov edi, r14d
mov ebx, 0x8d348116
jmp 0x140315e80
cmp eax, 0x12
jae 0x140315ef0
cmp eax, 0xd
ja 0x140316053
cmp eax, 0xa
je 0x140316074
cmp eax, 0xb
jbe 0x1403160da
cmp eax, 0xd
jne 0x140315ff9
mov esi, esi
mov ebx, 0x44fb1c19
jmp 0x140315e80
cmp eax, 0x15
jb 0x140316008
je 0x1403160a5
cmp eax, 0x17
jbe 0x1403160e9
cmp eax, 0x18
jne 0x140315fc0
mov r14d, esi
mov ebx, 0x3ec899b0
jmp 0x140315e80
cmp eax, 5
jne 0x140315fb4
nop
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x38], rdi
xor eax, eax
cmp rax, r14
jb 0x14031676e
xor ecx, ecx
jmp 0x14031678a
test eax, eax
je 0x1403160fe
cmp eax, 2
jne 0x140316157
nop
movzx eax, byte [0x140744c35]
cmp al, 0x63
je 0x140316791
mov cl, 0x7d
nop word [rax + rax]
mov al, 0x8a
lock cmpxchg byte [0x140744c35], cl
je 0x1403165d6
cmp al, 0x63
jne 0x140315f70
jmp 0x14031675d
cmp eax, 7
jbe 0x14031607d
cmp eax, 9
jne 0x1403161ac
nop
mov qword [rsp + 0x20], r14
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x28], 0
jmp 0x14031679d
lea rsi, [0x1407901c8]
jmp 0x1403168df
nop
movzx eax, byte [0x140744c56]
lea rsi, [0x140744c40]
cmp al, 3
je 0x1403168df
mov cl, 0x33
nop dword [rax]
mov al, 0xe
lock cmpxchg byte [0x140744c56], cl
je 0x140316220
cmp al, 3
jne 0x140315fe0
jmp 0x1403168df
mov rcx, rsi
call fcn.14059b818
xor esi, esi
jmp 0x1403168df
cmp eax, 0x12
je 0x1403162c6
cmp eax, 0x14
jne 0x140316315
nop
mov r10, qword [rsi + 8]
movzx eax, byte [0x140744bd2]
cmp al, 0x91
je 0x140316040
mov cl, 0xc2
mov al, 0x37
lock cmpxchg byte [0x140744bd2], cl
je 0x14031652b
cmp al, 0x91
jne 0x14031602c
test r10, r10
lea rsi, [0x140744bc0]
cmovne rsi, r10
jmp 0x1403168df
cmp eax, 0x10
jae 0x14031617e
cmp eax, 0xe
jne 0x140316387
test esi, esi
jne 0x1403167cc
xor ecx, ecx
jmp 0x14031677e
movzx esi, dil
jmp 0x1403168df
cmp eax, 6
jne 0x1403161dc
test r14d, r14d
je 0x1403168df
test bl, 0x20
je 0x140316214
mov rcx, rsi
call fcn.1400954d0
jmp 0x1403168df
xor eax, eax
sub eax, dword [rsi - 4]
cdqe
add rsi, rax
add rsi, 0xffffffffffffff78
mov rcx, rsi
mov r8d, 0x1cb1c21d
call fcn.140314a10
test r14d, r14d
je 0x1403168df
mov rcx, rsi
call fcn.1400954d0
jmp 0x1403168df
mov rcx, rdi
call fcn.14059b878
xor esi, esi
jmp 0x1403168df
jne 0x140316204
xor esi, esi
lock dec dword [rdi + 8]
cmove rsi, rdi
jmp 0x1403168df
lea rax, [0x1405e8c48]
mov qword [r14], rax
mov r15, qword [r14 + 0x60]
test r15, r15
je 0x1403166ad
nop
mov rcx, qword [r15 + 8]
test rcx, rcx
je 0x140316423
nop
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [0x140704440]
test rax, rax
je 0x140316697
nop
mov rcx, qword [rax]
mov r8, qword [rcx]
mov rcx, rax
mov edx, 1
mov rax, r8
call qword [0x140704440]
jmp 0x140316697
test r14d, r14d
je 0x1403168df
test bl, 0x20
je 0x1403166cd
mov rcx, rsi
call fcn.1400954d0
test bl, bl
js 0x1403162ce
jmp 0x1403168df
cmp eax, 0x11
jne 0x1403163a1
nop
movzx eax, byte [0x140744c89]
cmp al, 0x94
jne 0x140316488
test bl, 0x20
jne 0x1403163f6
lea rsi, [0x140744c80]
jmp 0x1403168df
nop
mov rax, qword [rdi + 0x38]
mov r8, qword [rax]
test r8, r8
je 0x140316418
test bl, bl
js 0x1403166d1
nop
mov rcx, qword [rdi + 0x50]
cmp dword [rcx], 0
jg 0x14031630b
lea rdx, [rdi + 0x38]
jmp 0x1403167e8
nop
mov qword [rsp + 0x20], r14
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x28], rsi
cmp rsi, rdi
jae 0x1403163b9
nop
mov qword [rsp + 0x40], 0
jmp 0x14031689b
nop
movzx eax, byte [0x140744d73]
cmp al, 0xbe
jne 0x140316439
lea rsi, [0x140744d70]
jmp 0x1403168df
lea r10, [0x1405f8b30]
mov ecx, 0xf9dd7ccb
lea r11, [r10 + rcx]
mov edi, 0xf9dd7cca
xor ebx, ebx
movabs r14, 0xf0f0f0f0f0f0f0f1
lea rsi, [0x140744c40]
mov r8d, 0xf9dd7cca
nop
mov rax, rcx
mul r14
mov r9, rdx
mov rax, rdx
shr rax, 4
and r9, 0xfffffffffffffff0
add r9, rax
mov rax, r8
mul r14
neg r9
mov rax, rdx
shr rax, 4
and rdx, 0xfffffffffffffff0
add rdx, rax
mov rax, r10
sub rax, rdx
add rax, rbx
movzx edx, byte [rbx + rsi]
xor dl, byte [rdi + rax]
movzx eax, byte [rbx + rsi + 1]
xor dl, 0xf1
xor al, byte [r11 + r9]
mov byte [rbx + rsi], dl
xor al, 0xf1
mov byte [rbx + rsi + 1], al
add rbx, 2
add r11, 2
add rcx, 2
add r8, 2
cmp rbx, 0x16
jne 0x140316250
mov al, 3
xchg byte [0x140744c56], al
jmp 0x1403168df
test edi, edi
je 0x14031642d
mov rcx, r14
call fcn.1400954d0
lea rdi, [rsp + 0x20]
lea r9, [rsp + 0x40]
lea rcx, [rsp + 0x38]
lea rax, [rsp + 0x38]
lea rdx, [rsp + 0x20]
mov rsi, r14
test bl, 0x20
je 0x1403168df
nop
mov qword [rdi], r9
sub r9d, dword [rax]
mov dword [rcx], r9d
mov rax, qword [rdx]
mov r8, qword [rax]
nop
movzx r10d, byte [r8]
jmp 0x14031682d
lea rax, [0x1405e9c88]
mov qword [rdi], rax
mov rdx, rdi
mov r8d, 0x50f15b0c
call fcn.140314a10
lea rax, [0x1405e8c48]
mov qword [rdi], rax
mov r12, qword [rdi + 0x60]
test r12, r12
je 0x1403166cd
nop
mov rcx, qword [r12 + 8]
test rcx, rcx
je 0x14031668d
nop
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [0x140704440]
test rax, rax
je 0x1403166c5
nop
mov rcx, qword [rax]
mov r8, qword [rcx]
mov rcx, rax
mov edx, 1
mov rax, r8
call qword [0x140704440]
jmp 0x1403166c5
mov rcx, rsi
mov edx, 0x94f1dc25
mov r8, r14
mov r9, rdi
call fcn.140315e60
mov esi, eax
jmp 0x1403168df
nop
movzx eax, byte [0x140744c75]
cmp al, 0x74
jne 0x1403163f6
lea rsi, [0x140744c60]
jmp 0x1403168df
nop
mov qword [rsp + 0x30], r14
test r14, r14
je 0x1403168c7
mov rcx, r14
and rcx, 3
je 0x1403166e8
lea rdx, [r14 - 1]
mov rax, rdx
movzx edx, byte [rdi + rdx]
mov byte [rsi + rax], dl
mov qword [rsp + 0x30], rax
lea rdx, [rax - 1]
dec rcx
jne 0x1403163d9
jmp 0x1403166eb
mov cl, 0xb0
lea rsi, [0x140744c60]
mov al, 0x94
lock cmpxchg byte [0x140744c75], cl
je 0x1403164ad
cmp al, 0x74
jne 0x1403163ff
jmp 0x1403168df
mov r10d, 0xffffffff
jmp 0x14031682d
lea r12, [rsp + 0x38]
jmp 0x140316692
mov rsi, r14
test bl, 0x40
jne 0x1403168df
mov cl, 0x79
lea rsi, [0x140744d70]
nop word cs:[rax + rax]
mov al, 0xad
lock cmpxchg byte [0x140744d73], cl
je 0x140316465
cmp al, 0xbe
jne 0x140316450
jmp 0x1403168df
nop
xor byte [0x140744d70], 0xa
xor byte [0x140744d71], 0x97
xor byte [0x140744d72], 0x8c
mov al, 0xbe
xchg byte [0x140744d73], al
jmp 0x1403168df
mov dl, 5
lea rcx, [0x140744c80]
mov al, 0xba
lock cmpxchg byte [0x140744c89], dl
je 0x1403166e1
cmp al, 0x94
jne 0x140316491
mov rsi, rcx
jmp 0x1403168df
mov r8d, 0xe0eb31d0
xor r9d, r9d
movabs r10, 0xaaaaaaaaaaaaaaab
lea r11, [0x1405f8b50]
mov edi, 0xe0eb31d1
lea rsi, [0x140744c60]
mov ecx, 0xe0eb31d0
mov rax, rcx
mul r10
shr rdx, 1
and rdx, 0xfffffffffffffff8
lea rdx, [rdx + rdx*2]
mov rax, r11
sub rax, rdx
lea rdx, [rax + r9]
movzx edx, byte [r8 + rdx]
xor dl, 0xda
add byte [r9 + rsi], dl
cmp r9, 0x14
je 0x14031651e
add rax, rdi
movzx eax, byte [rax + r9]
xor al, 0xda
add byte [r9 + rsi + 1], al
add r9, 2
add rcx, 2
jmp 0x1403164d8
mov al, 0x74
xchg byte [0x140744c75], al
jmp 0x1403168df
test bl, 0x40
je 0x1403168df
lea r11, [0x1405f8ab0]
mov ecx, 0xb8f10514
lea r15, [r11 + rcx]
mov r8d, 0xb8f10512
xor r12d, r12d
movabs r13, 0xe38e38e38e38e38f
lea rbp, [0x140744bc0]
mov rax, rcx
mul r13
mov r9, rdx
mov rax, r8
mul r13
shr rdx, 3
and rdx, 0xfffffffffffffffe
lea rax, [rdx + rdx*8]
mov rdx, r11
sub rdx, rax
add rdx, r12
mov eax, 0xb8f10513
movzx eax, byte [rax + rdx]
xor al, 0x2e
add byte [r12 + rbp], al
test ebx, 0x100
je 0x1403165d6
shr r9, 3
and r9, 0xfffffffffffffffe
lea rax, [r9 + r9*8]
neg rax
movzx eax, byte [r15 + rax]
xor al, 0x2e
add byte [r12 + rbp + 1], al
cmp r12, 0x10
je 0x14031674a
add r12, 2
add r15, 2
add rcx, 2
add r8, 2
test ebx, 0x100
jne 0x14031655e
mov eax, 1
mov ecx, 0xac54ba4d
mov edx, 0x53ab45c7
mov r8d, 0xac54ba4e
mov r9d, 0x53ab45c6
mov r10d, 0x86186187
lea rsi, [0x140744c20]
lea r11, [0x1405f8b10]
nop word cs:[rax + rax]
mov edi, r9d
imul rdi, r10
shr rdi, 0x20
mov ebx, r9d
sub ebx, edi
shr ebx, 1
add ebx, edi
shr ebx, 4
lea edi, [rbx + rbx*4]
lea edi, [rbx + rdi*4]
add edi, r8d
movzx ebx, byte [rdi + r11]
xor bl, 0x3b
add byte [rax + rsi - 1], bl
cmp rax, 0x15
je 0x140316680
mov edi, edx
imul rdi, r10
shr rdi, 0x20
mov ebx, edx
sub ebx, edi
shr ebx, 1
add ebx, edi
shr ebx, 4
lea edi, [rbx + rbx*4]
lea edi, [rbx + rdi*4]
add edi, ecx
mov edi, edi
movzx ebx, byte [rdi + r11]
xor bl, 0x3b
add byte [rax + rsi], bl
add rax, 2
add ecx, 0xfffffffe
add edx, 2
add r8d, 0xfffffffe
add r9d, 2
jmp 0x140316610
mov al, 0x63
xchg byte [0x140744c35], al
jmp 0x1403168df
lea r15, [rsp + 0x20]
test bl, 0x40
jne 0x1403166c5
mov rcx, r15
call fcn.1400954d0
test bl, bl
js 0x1403166ad
lea rsi, [rsp + 0x40]
jmp 0x1403168df
test edi, edi
je 0x140316835
mov rcx, r14
call fcn.1400954d0
mov rsi, r14
jmp 0x1403168df
mov rcx, r12
call fcn.1400954d0
test esi, esi
je 0x1403166d9
mov rcx, rdi
call fcn.1400954d0
mov rsi, rdi
jmp 0x1403168df
xor eax, eax
jmp 0x140316848
mov rax, r14
cmp r14, 4
jb 0x1403168c7
add rax, 0xfffffffffffffffc
lea rcx, [rax + 3]
movzx edx, byte [rdi + rax + 3]
mov byte [rsi + rax + 3], dl
mov qword [rsp + 0x30], rcx
lea rcx, [rax + 2]
movzx edx, byte [rdi + rax + 2]
mov byte [rsi + rax + 2], dl
mov qword [rsp + 0x30], rcx
lea rcx, [rax + 1]
movzx edx, byte [rdi + rax + 1]
mov byte [rsi + rax + 1], dl
mov qword [rsp + 0x30], rcx
movzx ecx, byte [rdi + rax]
mov byte [rsi + rax], cl
mov qword [rsp + 0x30], rax
add rax, 0xfffffffffffffffc
cmp rax, 0xfffffffffffffffc
jne 0x1403166f9
jmp 0x1403168c7
mov al, 0x91
xchg byte [0x140744bd2], al
test bl, 0x20
je 0x140316040
jmp 0x1403167ae
test bl, 0x40
jne 0x140316791
inc rax
cmp rax, r14
jae 0x140315f3d
nop
movzx ecx, byte [rdi + rax]
movzx edx, byte [rsi + rax]
cmp cl, dl
je 0x14031675d
sub rcx, rdx
mov rsi, r14
test bl, 0x20
je 0x1403168df
mov esi, ecx
jmp 0x1403168df
lea rsi, [0x140744c20]
jmp 0x1403168df
nop
mov rax, qword [rsp + 0x28]
cmp rax, qword [rsp + 0x20]
jae 0x14031683d
nop
mov rax, qword [rsp + 0x28]
movzx ecx, byte [rsi + rax]
mov rdx, qword [rsp + 0x38]
mov byte [rdx + rax], cl
inc rax
mov qword [rsp + 0x28], rax
test bl, bl
js 0x14031679d
mov rcx, r14
call fcn.1400954d0
lea rdx, [rsp + 0x20]
lea rax, [rsp + 0x28]
lea r8, [rsp + 0x30]
lea rcx, [rsp + 0x28]
test bl, 0x40
jne 0x140316835
nop
mov r9, qword [rdi + 0x40]
mov r11, qword [r9]
mov r10d, 0xffffffff
test r11, r11
je 0x14031682d
nop
test byte [rdi + 0x70], 4
jne 0x14031682d
test ebx, 0x100
je 0x1403168df
nop
mov r9, qword [rdi + 0x68]
cmp r9, r11
cmovb r9, r11
cmp r9, r8
jbe 0x14031682d
add rdi, 0x68
jmp 0x1403162ef
mov rsi, r10
jmp 0x1403168df
mov rsi, r14
jmp 0x1403168df
xor eax, eax
test bl, 0x40
je 0x1403168cf
lea ecx, [rax + 0x1284f2f3]
mov edx, 0xaaaaaaab
imul rdx, rcx
shr rdx, 0x23
shl edx, 2
lea ecx, [rdx + rdx*2]
neg ecx
lea edx, [rax + rcx]
add edx, 0x1284f2f3
cdqe
lea rcx, [0x140744c80]
movzx r8d, byte [rax + rcx]
lea r9, [0x1405f8b70]
sub r9, rdx
xor r8b, byte [r9 + 0xb]
xor r8b, 0xbb
mov byte [rax + rcx], r8b
inc eax
cmp eax, 8
jle 0x14031683f
test bl, bl
js 0x1403168d4
nop
mov rax, qword [rsp + 0x40]
cmp rax, qword [rsp + 0x20]
jae 0x1403168c7
nop dword [rax + rax]
nop
movzx ecx, byte [rdi + rax]
mov byte [rsi + rax], cl
inc rax
mov qword [rsp + 0x40], rax
cmp rax, qword [rsp + 0x20]
jb 0x1403168b0
nop
mov rsi, qword [rsp + 0x28]
jmp 0x1403168df
mov rsi, rdi
jmp 0x1403168df
mov al, 0x94
xchg byte [0x140744c89], al
mov rsi, rcx
mov rax, rsi
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret