Function at 0x1402003e0
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
test ecx, ecx
je 0x140200410
test edx, edx
je 0x140200508
mov eax, dword [0x14058f344]
cmp eax, 0x2a
jg 0x1402009b0
jmp 0x140200991
mov eax, 0x4edefa7b
add eax, dword [0x140538d8c]
cmp edx, eax
jne 0x1402005c0
movzx eax, byte [0x140538c02]
cmp al, 0x9b
je 0x1402008b3
mov ebp, 0x4edefa7d
mov r14b, 6
lea rsi, [rsp + 0x40]
lea rdi, [rsp + 0x30]
nop word cs:[rax + rax]
mov ecx, dword [0x14058f340]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x140538d8c]
add ecx, ebp
xor edx, edx
div ecx
test edx, edx
jne 0x1402004be
mov al, 0x8f
lock cmpxchg byte [0x140538c02], r14b
mov ebx, eax
sete r15b
mov rcx, rsi
mov rdx, rdi
mov r8d, 0xcff27941
mov r9d, 0xa99fa2c7
call fcn.140200cf0
mov eax, dword [rsp + 0x40]
imul eax, dword [rsp + 0x30]
mov ecx, dword [0x140538d8c]
mov edx, ecx
xor edx, 0x31210582
and edx, ecx
xor ecx, 0x4edefa7d
lea ecx, [rcx + rdx*2]
xor edx, edx
div ecx
test edx, edx
je 0x1402004e0
mov edx, dword [0x140538d8c]
lea ecx, [rdx + 0xe228d15]
add edx, 0x466ff0a9
call fcn.140201210
test al, 1
je 0x140200450
jmp 0x14020046c
test r15b, r15b
jne 0x1402006da
mov ecx, ebx
mov edx, 0xee00fed2
mov r8d, 0xa05c573c
call fcn.140200da0
test al, 1
je 0x140200450
jmp 0x1402008b3
movzx eax, byte [0x140538cb0]
cmp al, 0xf6
je 0x1402006c6
lea rsi, [rsp + 0x30]
xor ebx, ebx
jmp 0x140200532
movzx eax, byte [0x140538d88]
add al, 0xfc
cmp bpl, al
je 0x1402006c6
mov rcx, rsi
mov edx, 0xefd0c5f8
mov r8d, 0xe13d9a8d
call fcn.1402012d0
cmp byte [rsp + 0x31], 0
jne 0x1402005f9
movzx ebp, byte [rsp + 0x30]
nop word cs:[rax + rax]
mov r8d, dword [0x140538d8c]
lea edx, [r8 - 0x2a4dd554]
add r8d, 0xa674c364
mov rcx, rsi
call fcn.140200c90
mov edi, dword [rsp + 0x30]
mov r9d, dword [0x140538d8c]
lea r8d, [r9 - 0x4f356881]
add r9d, 0xf1c5ae5a
mov ecx, edi
mov rdx, rsi
call fcn.1402012b0
imul edi, dword [rsp + 0x30]
test dil, 1
jne 0x1402005b3
test bl, bl
je 0x140200520
mov eax, dword [0x14058f344]
cmp eax, 0x5c
jge 0x140200560
jmp 0x1402005ab
movzx eax, byte [0x140538bf6]
movzx ecx, byte [0x140538d88]
add cl, 0xf4
cmp al, cl
je 0x140200941
mov cl, 0xf6
nop dword [rax + rax]
mov al, 0xc
lock cmpxchg byte [0x140538bf6], cl
je 0x140200843
cmp al, 0xee
jne 0x1402005e0
jmp 0x140200941
xor eax, eax
lea rcx, [0x140538ca0]
lea rdx, [0x140453a40]
nop dword [rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xf
jg 0x140200628
inc rax
jmp 0x140200610
lea rax, [fcn.1402003e0]
lea esi, [rax + rax]
add esi, 0xf20
mov edi, esi
not edi
mov ebx, 0x7a578b23
nop word cs:[rax + rax]
mov eax, dword [0x14058f340]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140200699
mov edx, dword [0x140538d8c]
lea ecx, [rdx - 0x364ec3fa]
add edx, 0xe77cb2c1
call fcn.14008e250
mov eax, dword [0x140538d8c]
lea ecx, [rax + 0x4edefa7c]
mov edx, esi
xor edx, ecx
not ecx
and ecx, edi
or ecx, edx
not ecx
add eax, 0x4edefa7b
cmp ecx, eax
je 0x1402006be
mov eax, dword [0x14058f344]
mov ecx, dword [0x140538d8c]
add ecx, ebx
mov edx, ecx
xor edx, 0xd4876f91
and ecx, 0x54876f91
lea ecx, [rdx + rcx*2]
cmp eax, ecx
jge 0x140200650
jmp 0x140200661
mov al, 0xf6
xchg byte [0x140538cb0], al
mov eax, dword [0x14058f344]
cmp eax, 0x43
jle 0x14020094d
jmp 0x140200974
xor ebp, ebp
lea rax, [fcn.1402003e0]
lea r12d, [rax + rax]
add r12d, 0x460
mov dword [rsp + 0x44], r12d
not r12d
lea r13, [0x140538c00]
lea rsi, [rsp + 0x30]
lea rdi, [rsp + 0x3f]
lea rbx, [rsp + 0x40]
jmp 0x14020071a
test r15b, 1
jne 0x14020088f
movsxd r14, ebp
test dword [rsp + 0x44], r12d
jne 0x1402007d5
nop dword [rax + rax]
movzx ebp, byte [r14 + r13]
mov eax, dword [0x140538d8c]
lea r8d, [rax + 0x5a644612]
mov ecx, eax
xor ecx, 0x28ad79c9
and eax, 0x28ad79c9
lea r9d, [rcx + rax*2]
mov ecx, r14d
mov rdx, rsi
call fcn.140200fd0
add bpl, byte [rsp + 0x30]
mov byte [r14 + r13], bpl
lea eax, [r14 + 0x6a2e06f4]
mov ecx, eax
xor ecx, 0x95d1f90d
and eax, 0x15d1f90d
lea ebp, [rcx + rax*2]
mov dword [rsp + 0x28], 0x2bd5cd9d
mov dword [rsp + 0x20], 0x5bf4ac0a
mov ecx, ebp
mov rdx, rdi
mov r8, rbx
mov r9, rsi
call fcn.1402012f0
mov ecx, dword [rsp + 0x40]
imul ecx, dword [rsp + 0x30]
movzx r15d, byte [rsp + 0x3f]
mov r9d, dword [0x140538d8c]
lea r8d, [r9 + 0x54b5b2e8]
add r9d, 0xd09ac9b3
mov rdx, rsi
call fcn.1401645a0
cmp dword [rsp + 0x30], 0
je 0x140200710
mov ecx, r14d
mov rdx, rsi
mov r8d, 0x3615f546
mov r9d, 0xc0c98bc5
call fcn.140201230
mov rax, qword [rsp + 0x30]
movzx ecx, byte [rax]
lea rax, [0x1404539b0]
movzx eax, byte [r14 + rax]
mov ebp, ecx
neg bpl
lea edx, [rcx - 1]
xor dl, bpl
and dl, al
xor dl, bpl
and bpl, al
add bpl, bpl
add bpl, dl
mov dword [rsp + 0x20], 0x42196e76
mov edx, ebp
mov r8, rsi
mov r9d, 0xdadc3c69
call fcn.140200d30
mov eax, ebp
sub al, byte [rsp + 0x30]
add al, bpl
mov byte [r14 + r13], al
jmp 0x140200730
xor eax, eax
lea rcx, [0x140538bf0]
lea rdx, [0x1404539a0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rcx]
movzx r9d, byte [rax + rdx]
not r8b
mov r10d, r8d
and r10b, r9b
or r8b, r9b
not r8b
or r8b, r10b
mov byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 5
jg 0x1402008bc
inc rax
jmp 0x140200860
mov eax, dword [0x14058f344]
xor eax, eax
nop word [rax + rax]
test al, al
jne 0x1402008a0
mov ecx, 0x84ba9b88
mov edx, 0x786e299e
call fcn.140201250
lea rax, [0x140538c00]
jmp 0x1402008c9
mov eax, dword [0x14058f344]
cmp eax, 0x26
jge 0x140200910
jmp 0x1402008da
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov al, 0xee
xchg byte [0x140538bf6], al
mov r8d, dword [0x140538d8c]
lea edx, [r8 + 0x2cdb7c9c]
add r8d, 0xce23dc05
lea rcx, [rsp + 0x30]
call fcn.1402012a0
cmp dword [rsp + 0x30], 0x46
jl 0x140200941
nop dword [rax + rax]
mov al, 0xee
xchg byte [0x140538bf6], al
mov eax, dword [0x14058f344]
mov ecx, dword [0x140538d8c]
mov edx, ecx
xor edx, 0xab19eb67
and ecx, 0x2b19eb67
lea ecx, [rdx + rcx*2]
add ecx, 0xa3c50f61
cmp eax, ecx
jge 0x140200910
jmp 0x1402008da
lea rax, [0x140538bf0]
jmp 0x1402008c9
mov eax, dword [0x14058f344]
mov ecx, dword [0x140538d8c]
mov edx, ecx
xor edx, 0x1820904d
and ecx, 0x1820904d
lea ecx, [rdx + rcx*2]
add ecx, 0x36be6a3a
cmp eax, ecx
jl 0x140200985
mov ecx, 0xf06a41b8
mov edx, 0xe1ec889a
call fcn.140200ce0
jmp 0x14020094d
lea rax, [0x140538ca0]
jmp 0x1402008c9
lea rcx, [rsp + 0x30]
mov edx, 0xf3f73b13
mov r8d, 0xb3192f99
call fcn.140201200
mov al, 1
test al, al
jne 0x1402009c4
nop dword [rax]
movzx eax, byte [0x140538c30]
mov eax, dword [0x14058f344]
cmp eax, 0x38
jge 0x1402009b0
jmp 0x140200991
cmp byte [rsp + 0x30], 0x39
je 0x140200a29
mov cl, 0xc6
nop dword [rax]
mov al, 0xb8
lock cmpxchg byte [0x140538c30], cl
je 0x1402009e2
cmp al, 0x39
jne 0x1402009d0
jmp 0x140200a29
xor edx, edx
lea rax, [0x140538c20]
lea rcx, [0x1404539d0]
nop word cs:[rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
add byte [rdx + rax], r8b
mov r8d, dword [0x140538d8c]
add edx, r8d
add edx, 0x4edefa7c
cmp edx, 0x10
jl 0x140200a00
mov al, 0x39
xchg byte [0x140538c30], al
lea rax, [0x140538c20]
jmp 0x1402008c9