Function at 0x1403510f0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbx
test ecx, ecx
je 0x140351224
mov eax, dword [0x1404f34c4]
cmp eax, 0x10
nop word cs:[rax + rax]
mov eax, dword [0x1404f34c0]
mov ecx, dword [0x1404df1c0]
neg ecx
add ecx, eax
add ecx, 0xd8085ab0
imul ecx, eax
test cl, 1
jne 0x140351110
test edx, edx
jne 0x1403511c7
movzx eax, byte [0x1404ddea5]
cmp al, 0x9c
je 0x140351427
mov ecx, 0x27f7a597
mov dl, 0xb0
mov r8b, 1
nop
mov eax, dword [0x1404f34c4]
mov r9d, dword [0x1404df1c0]
add r9d, ecx
cmp eax, r9d
jge 0x1403511a0
nop word cs:[rax + rax]
mov al, 0x9a
lock cmpxchg byte [0x1404ddea5], dl
sete r9b
test r8b, r8b
je 0x1403511a0
test r9b, r9b
jne 0x14035131e
cmp al, 0x9c
jne 0x140351150
jmp 0x140351427
mov al, 0x9a
lock cmpxchg byte [0x1404ddea5], dl
test r8b, r8b
je 0x1403511a0
jmp 0x140351170
movzx eax, byte [0x1404ddee2]
mov eax, dword [0x1404f34c0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1403511c0
movzx eax, byte [0x1404ddee2]
movzx ecx, byte [0x1404df1c4]
mov edx, dword [0x1404f34c4]
cmp edx, 0x3e
jge 0x1403511c0
add cl, 0xe2
cmp al, cl
je 0x140351312
nop dword [rax]
movzx ecx, byte [0x1404df1c4]
lea eax, [rcx - 0x52]
add cl, 0x1a
lock cmpxchg byte [0x1404ddee2], cl
je 0x1403512c7
cmp al, 0xb7
jne 0x140351200
jmp 0x140351312
test edx, edx
je 0x140351269
movzx eax, byte [0x1404de4fc]
movzx ecx, byte [0x1404df1c4]
mov edx, ecx
xor dl, 0x53
and cl, 0x53
add cl, cl
add cl, dl
cmp al, cl
je 0x14035154f
mov cl, 0x19
nop dword [rax]
mov al, 0x39
lock cmpxchg byte [0x1404de4fc], cl
je 0x1403513e8
cmp al, 0x28
jne 0x140351250
jmp 0x14035154f
movzx eax, byte [0x1404de5cd]
cmp al, 0xb2
je 0x140351516
mov cl, 0x43
xor edx, edx
nop dword [rax]
mov eax, dword [0x1404f34c4]
cmp eax, 0x1e
jg 0x1403512b0
mov al, 0x3c
lock cmpxchg byte [0x1404de5cd], cl
sete r8b
test dl, dl
jne 0x1403512b0
test r8b, r8b
jne 0x14035145a
cmp al, 0xb2
jne 0x140351280
jmp 0x140351516
mov al, 0x3c
lock cmpxchg byte [0x1404de5cd], cl
mov eax, dword [0x1404f34c4]
cmp eax, 0x4e
jge 0x140351280
jmp 0x14035128b
xor r8d, r8d
lea rax, [0x1404ddee0]
lea rcx, [0x1403ed250]
mov edx, 0x27f7a551
nop dword [rax]
movsxd r8, r8d
movzx r9d, byte [r8 + rcx]
add byte [r8 + rax], r9b
mov r9d, r8d
xor r9d, 1
and r8d, 1
lea r8d, [r9 + r8*2]
mov r9d, dword [0x1404df1c0]
add r9d, edx
cmp r8d, r9d
jl 0x1403512e0
mov al, 0xb7
xchg byte [0x1404ddee2], al
lea rax, [0x1404ddee0]
jmp 0x14035151d
xor r9d, r9d
lea r10, [0x1404dde90]
lea r11, [0x1403ed200]
lea rax, [fcn.1403510f0]
lea esi, [rax + rax]
add esi, 0x1680
mov edi, esi
not edi
jmp 0x14035135d
inc r9d
cmp r9d, 0x15
jge 0x140351418
cmp dword [0x1404df1c0], 0xd8085ab1
movsxd rbx, r9d
jne 0x140351390
nop dword [rax]
movzx eax, byte [rbx + r11]
xor byte [rbx + r10], al
mov eax, dword [0x1404f34c4]
cmp eax, 0x39
jl 0x140351350
nop word cs:[rax + rax]
movzx eax, byte [rbx + r10]
movzx edx, byte [rbx + r11]
sub al, dl
mul dl
mov ecx, eax
sub al, dl
mul dl
mov edx, eax
mov eax, ecx
sub al, dl
mul dl
mov edx, eax
sub cl, al
mov eax, ecx
mul dl
mov r8d, eax
mov ecx, edx
shl r8b, cl
mov eax, r8d
sub al, dl
mul dl
mov ecx, eax
shl r8b, cl
sub r8b, al
mov eax, r8d
mul cl
sub al, cl
mov edx, eax
neg dl
dec al
xor al, dl
and al, cl
xor al, dl
mov byte [rbx + r10], al
test edi, esi
jne 0x140351390
jmp 0x140351370
xor eax, eax
lea rcx, [0x1404de4f0]
lea rdx, [0x1403ed860]
nop dword [rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xb
jg 0x140351433
inc rax
jmp 0x140351400
movzx eax, byte [0x1404df1c4]
add al, 0xc7
xchg byte [0x1404ddea5], al
lea rax, [0x1404dde90]
jmp 0x14035151d
mov eax, dword [0x1404f34c4]
nop dword [rax]
mov eax, dword [0x1404f34c4]
cmp eax, 0x37
jg 0x140351440
mov al, 1
test al, al
je 0x14035153e
jmp 0x140351521
xor ecx, ecx
lea r8, [0x1404de5c0]
lea r9, [0x1403ed930]
mov r10d, 0x27f7a551
mov r11b, 1
jmp 0x14035148b
inc ecx
cmp ecx, 0xd
jge 0x14035150e
mov eax, dword [0x1404f34c0]
lea edx, [rax - 1]
imul edx, eax
movsxd rsi, ecx
test dl, 1
jne 0x1403514d0
nop
movzx eax, byte [rsi + r9]
add byte [rsi + r8], al
mov edx, dword [0x1404f34c0]
lea eax, [rdx - 1]
imul eax, edx
mov edi, dword [0x1404df1c0]
add edi, r10d
xor edx, edx
div edi
test edx, edx
je 0x140351480
nop word cs:[rax + rax]
movzx eax, byte [rsi + r9]
mov edx, eax
sub dl, byte [rsi + r8]
movzx ebx, byte [0x1404df1c4]
mov edi, ebx
sub dil, dl
add dil, al
mov eax, ebx
xor al, 0x2b
and bl, 0x2b
add bl, bl
add bl, al
sub bl, dl
add bl, dil
add bl, 0x2b
mov eax, ebx
sub al, dl
add al, bl
mov byte [rsi + r8], al
test r11b, r11b
je 0x1403514d0
jmp 0x1403514a0
mov al, 0xb2
xchg byte [0x1404de5cd], al
lea rax, [0x1404de5c0]
pop rbx
pop rdi
pop rsi
ret
mov al, 0x28
xchg byte [0x1404de4fc], al
mov eax, dword [0x1404f34c4]
mov ecx, 0x27f7a5a5
add ecx, dword [0x1404df1c0]
cmp eax, ecx
jl 0x14035154f
movzx eax, byte [0x1404df1c4]
add al, 0x53
xchg byte [0x1404de4fc], al
jmp 0x140351521
lea rax, [0x1404de4f0]
jmp 0x14035151d