Function at 0x14027df10
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x40
mov esi, edx
test ecx, ecx
je 0x14027df50
test esi, esi
je 0x14027e007
mov edx, dword [0x14055e93c]
lea ecx, [rdx + 0x1cc2f3a5]
add edx, 0xbda1fd2d
call fcn.14027fab0
test al, 1
jne 0x14027e3d5
jmp 0x14027e3e8
lea rdi, [rsp + 0x3c]
lea rbx, [rsp + 0x30]
nop word [rax + rax]
mov eax, dword [0x1405a8058]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x14027df82
mov eax, dword [0x1405a8058]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
je 0x14027dfac
mov dword [rsp + 0x20], 0xa69bba7c
mov ecx, esi
mov rdx, rdi
mov r8, rbx
mov r9d, 0xd2c486ba
call fcn.14027fca0
mov eax, dword [rsp + 0x3c]
imul eax, dword [rsp + 0x30]
test al, 1
jne 0x14027df60
jmp 0x14027df71
test esi, esi
je 0x14027e0cb
movzx eax, byte [0x14055e596]
movzx ecx, byte [0x14055e938]
add cl, 0x37
cmp al, cl
je 0x14027e25c
lea rsi, [rsp + 0x30]
nop word cs:[rax + rax]
mov rcx, rsi
mov edx, 0xbde63a25
mov r8d, 0xa106a4ca
call fcn.140280070
test al, 1
jne 0x14027e17d
cmp byte [rsp + 0x30], 0x95
jne 0x14027dfe0
jmp 0x14027e25c
movzx eax, byte [0x14055e6bd]
cmp al, 0x1b
je 0x14027e2ef
mov cl, 0x4f
nop dword [rax + rax]
cmp byte [0x1405a8060], 0
jne 0x14027e070
nop dword [rax]
movzx edx, byte [0x14055e938]
lea eax, [rdx + 0x44]
mov r8d, edx
xor r8b, 0xf1
and dl, 0x71
add dl, dl
add dl, r8b
lock cmpxchg byte [0x14055e6bd], dl
sete dl
mov r8d, dword [0x1405a8058]
lea r9d, [r8 - 1]
imul r9d, r8d
test r9b, 1
je 0x14027e090
nop dword [rax]
mov al, 0xa2
lock cmpxchg byte [0x14055e6bd], cl
mov eax, dword [0x1405a805c]
cmp eax, 0x40
jge 0x14027e070
jmp 0x14027e030
test dl, dl
jne 0x14027e1f5
mov edx, dword [0x1405a8058]
lea r8d, [rdx + 1]
imul r8d, edx
test r8b, 1
mov edx, dword [0x1405a8058]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x14027e0aa
cmp al, 0x1b
jne 0x14027e020
jmp 0x14027e2ef
mov edx, dword [0x14055e93c]
lea ecx, [rdx + 0x61074d50]
add edx, 0xee86c39e
call fcn.14027fb10
test al, 1
jne 0x14027e353
xor edi, edi
mov bpl, 0x73
lea rsi, [rsp + 0x30]
nop word cs:[rax + rax]
test dil, dil
jne 0x14027e170
nop word cs:[rax + rax]
mov al, 0xc8
lock cmpxchg byte [0x14055e4f0], bpl
mov ebx, eax
sete dl
mov dword [rsp + 0x20], 0x4107a4bc
mov ecx, eax
mov r8, rsi
mov r9d, 0x49730165
call fcn.14027f8f0
test al, 1
je 0x14027e170
test byte [rsp + 0x30], 1
jne 0x14027e2fb
mov ecx, ebx
mov edx, 0x12d4da6d
mov r8d, 0xb0bd2b40
call fcn.140280100
test al, 1
je 0x14027e100
jmp 0x14027e353
mov al, 0xc8
lock cmpxchg byte [0x14055e4f0], bpl
jmp 0x14027e110
xor esi, esi
lea r14, [0x14055e580]
lea r15, [0x14046ab70]
lea rdi, [rsp + 0x30]
mov ebp, 0xe0bbf804
nop word [rax + rax]
movzx ebx, byte [rsi + r14]
add bl, byte [rsi + r15]
mov rcx, rsi
mov rdx, rdi
mov r8d, 0x2cb3cfa8
mov r9d, 0x12b0413a
call fcn.14027fa90
mov rdx, qword [rsp + 0x30]
mov r9d, dword [0x14055e93c]
lea r8d, [r9 + 0x693062dc]
add r9d, 0x2e76ef8c
mov ecx, ebx
call fcn.140108f10
lea eax, [rsi + 1]
mov ecx, dword [0x14055e93c]
add ecx, ebp
cmp eax, ecx
jge 0x14027e24d
inc rsi
jmp 0x14027e1a0
xor esi, esi
lea rdi, [rsp + 0x3c]
lea rbx, [rsp + 0x30]
lea r14, [0x14055e6b0]
nop dword [rax + rax]
mov eax, dword [0x14055e93c]
lea r9d, [rax + 0x18e782af]
add eax, 0x9ba543ff
mov dword [rsp + 0x20], eax
mov ecx, esi
mov rdx, rdi
mov r8, rbx
call fcn.14027fc40
movzx eax, byte [rsp + 0x3c]
xor al, byte [rsp + 0x30]
mov byte [rsi + r14], al
lea eax, [rsi + 1]
cmp eax, 0xc
jg 0x14027e268
inc rsi
jmp 0x14027e210
mov ecx, 0x8032f6b7
mov edx, 0x7a6a19fd
call fcn.14027fb00
lea rax, [0x14055e580]
jmp 0x14027e3c6
mov eax, dword [0x1405a805c]
nop
mov eax, dword [0x1405a805c]
cmp eax, 0xd
jge 0x14027e270
lea rsi, [rsp + 0x30]
mov rcx, rsi
mov edx, 0x37508202
mov r8d, 0x3cedba49
call fcn.14027f950
mov eax, dword [rsp + 0x30]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x14027e2cd
mov rcx, rsi
mov edx, 0x55c7cf3b
mov r8d, 0x23fad474
call fcn.1402801a0
mov ecx, dword [rsp + 0x30]
mov edx, 0x2280ebcb
mov r8d, 0x811cccea
call fcn.14027fa40
test al, 1
je 0x14027e280
mov al, 0x1b
xchg byte [0x14055e6bd], al
mov ecx, dword [0x1405a805c]
mov edx, 0x16b5781e
mov r8d, 0xe31856a3
call fcn.140238120
test al, 1
je 0x14027e2a2
lea rax, [0x14055e6b0]
jmp 0x14027e3c6
xor esi, esi
lea rdi, [rsp + 0x30]
lea rbx, [0x14055e4e0]
lea r14, [0x14046aae0]
mov ecx, esi
mov rdx, rdi
mov r8d, 0xf614eeff
mov r9d, 0xf8947f3f
call fcn.1400b30b0
mov rax, qword [rsp + 0x30]
movzx ecx, byte [rsi + r14]
mov edx, ecx
xor dl, cl
not dl
and dl, byte [rax + rbx]
xor dl, cl
mov byte [rsi + rbx], dl
lea eax, [rsi + 1]
cmp eax, 0xf
jg 0x14027e34b
inc rsi
jmp 0x14027e310
mov al, 0x3d
xchg byte [0x14055e4f0], al
mov esi, 0xe0bbf7ef
lea rax, [fcn.14027df10]
lea edi, [rax + rax]
add edi, 0x3b80
mov ebx, edi
not ebx
xor ebp, ebp
nop
mov eax, dword [0x14055e93c]
add eax, esi
mov ecx, edi
xor ecx, eax
not eax
and eax, ebx
or eax, ecx
cmp eax, 0xffffffff
jne 0x14027e3a3
mov edx, dword [0x14055e93c]
lea ecx, [rdx - 0x35eb74ca]
add edx, 0x50011d99
call fcn.14027fb70
test bpl, bpl
je 0x14027e3bf
mov ecx, 0x41c3cdc0
mov edx, 0x41c3cdc0
call fcn.14008f3a0
mov eax, dword [0x1405a805c]
cmp eax, 0x40
jge 0x14027e370
jmp 0x14027e387
lea rax, [0x14055e4e0]
add rsp, 0x40
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
movzx eax, byte [0x14055e66d]
cmp dword [0x14055e93c], 0x1f440812
je 0x14027e3f1
movzx eax, byte [0x14055e66d]
jmp 0x14027e3d5
movzx ecx, byte [0x14055e938]
add cl, 0xbc
cmp al, cl
je 0x14027e60c
lea rsi, [rsp + 0x30]
mov bl, 1
jmp 0x14027e418
cmp al, 0x1a
je 0x14027e60c
mov rcx, rsi
mov edx, 0x1d5e0fd8
mov r8d, 0xd2c486ba
call fcn.14027fbb0
test al, 1
jne 0x14027e46b
movzx eax, byte [rsp + 0x30]
nop word cs:[rax + rax]
mov ecx, dword [0x1405a805c]
cmp ecx, 0x10
jg 0x14027e465
mov ecx, dword [0x1405a8058]
mov edx, dword [0x14055e93c]
neg edx
add edx, ecx
inc edx
imul edx, ecx
test dl, 1
je 0x14027e410
test bl, bl
je 0x14027e440
jmp 0x14027e44b
xor esi, esi
lea rdi, [rsp + 0x30]
lea rbx, [rsp + 0x3c]
lea r15, [0x14046ac50]
lea r12, [0x14055e660]
jmp 0x14027e49b
inc esi
cmp esi, 0xd
jge 0x14027e5cb
mov eax, dword [0x1405a805c]
movsxd r14, esi
cmp eax, 0x38
jg 0x14027e510
nop dword [rax]
mov ecx, r14d
mov rdx, rdi
mov r8d, 0xaa74a99c
mov r9d, 0xa53360ba
call fcn.14027f8d0
mov rcx, qword [rsp + 0x30]
mov dword [rsp + 0x28], 0xbf30354e
mov dword [rsp + 0x20], 0x9719e9aa
mov edx, r14d
mov r8, rbx
mov r9, rdi
call fcn.1401356c0
movzx eax, byte [rsp + 0x3c]
mov rcx, qword [rsp + 0x30]
xor al, byte [rcx + r15]
mov byte [r14 + r12], al
mov eax, dword [0x1405a805c]
cmp eax, 0x53
jl 0x14027e490
nop word [rax + rax]
mov r9d, dword [0x14055e93c]
lea r8d, [r9 + 0x6e5168c9]
add r9d, 0x2517c88c
mov ecx, esi
mov rdx, rdi
call fcn.1402800d0
movzx edx, byte [rsp + 0x30]
mov dword [rsp + 0x28], 0x65af3baa
mov dword [rsp + 0x20], 0xce55a1ac
mov ecx, esi
mov r8, rbx
mov r9, rdi
call fcn.1402800a0
movzx eax, byte [rsp + 0x3c]
xor al, byte [rsp + 0x30]
mov byte [r14 + r12], al
mov ebp, esi
neg ebp
shl ebp, 2
xor ebp, 0xfffffffe
movzx ecx, byte [0x14055e93c]
add cl, 0xef
shl ebp, cl
mov ecx, ebp
mov rdx, rdi
mov r8d, 0x5468799f
mov r9d, 0x51524ff9
call fcn.1400aeab0
mov ecx, dword [rsp + 0x30]
sub ebp, ecx
imul ebp, ecx
sub ecx, ebp
mov eax, dword [0x14055e93c]
mov edx, eax
sub edx, ebp
add edx, ecx
sub eax, edx
add ecx, ecx
add ecx, eax
mov rdx, rdi
mov r8d, 0x2204e77c
mov r9d, 0x9c506349
call fcn.14027fcb0
cmp dword [rsp + 0x30], 0
jne 0x14027e510
jmp 0x14027e4b0
mov eax, dword [0x14055e93c]
lea edx, [rax - 0x65d33698]
mov ecx, eax
xor ecx, 0x6e6cfa4a
and eax, 0x6e6cfa4a
lea r8d, [rcx + rax*2]
lea rcx, [rsp + 0x30]
call fcn.140071320
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x14027e600
mov al, 0x1a
xchg byte [0x14055e66d], al
lea rax, [0x14055e660]
jmp 0x14027e3c6