Function at 0x140346a70
Capabilities:
Encode data using xor

Disassembly:
test ecx, ecx
je 0x140346aac
test edx, edx
je 0x140346adc
movzx eax, byte [0x14053d552]
cmp al, 0x8e
je 0x140346aa4
mov cl, 0xcc
nop word cs:[rax + rax]
mov al, 0xe5
lock cmpxchg byte [0x14053d552], cl
je 0x140346b3c
cmp al, 0x8e
jne 0x140346a90
lea rax, [0x14053d540]
ret
test edx, edx
je 0x140346b0c
movzx eax, byte [0x14053d62d]
cmp al, 0x64
je 0x140346ad4
mov cl, 0x9d
nop dword [rax]
mov al, 0xfe
lock cmpxchg byte [0x14053d62d], cl
je 0x140346bd2
cmp al, 0x64
jne 0x140346ac0
lea rax, [0x14053d620]
ret
movzx eax, byte [0x14053d642]
cmp al, 0xbb
je 0x140346b04
mov cl, 0x6a
nop dword [rax]
mov al, 0xff
lock cmpxchg byte [0x14053d642], cl
je 0x140346be6
cmp al, 0xbb
jne 0x140346af0
lea rax, [0x14053d630]
ret
movzx eax, byte [0x14053d510]
cmp al, 0x9f
je 0x140346b34
mov cl, 0xcf
nop dword [rax]
mov al, 0x7f
lock cmpxchg byte [0x14053d510], cl
je 0x140346c3f
cmp al, 0x9f
jne 0x140346b20
lea rax, [0x14053d500]
ret
xor eax, eax
lea rcx, [0x14053d540]
lea rdx, [0x14044bea0]
nop dword [rax]
movzx r8d, byte [rax + rcx]
movzx r9d, byte [rax + rdx]
not r8b
mov r10d, r8d
and r10b, r9b
not r9b
xor r8b, r9b
and r8b, r9b
or r8b, r10b
mov byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0x11
jg 0x140346b82
inc rax
jmp 0x140346b50
mov eax, dword [0x14055eaa8]
nop dword [rax + rax]
mov eax, dword [0x14055eaa8]
mov ecx, dword [0x14053d6c0]
mov edx, eax
sub edx, ecx
add edx, 0x8a1d5cb0
imul edx, eax
and edx, 1
neg ecx
mov eax, ecx
xor eax, 0x3350879f
and ecx, 0x3350879f
lea eax, [rax + rcx*2]
add eax, edx
jne 0x140346b90
mov al, 0x8e
xchg byte [0x14053d552], al
lea rax, [0x14053d540]
ret
mov eax, dword [0x14055eaac]
cmp eax, 0x2d
jg 0x140346cc0
jmp 0x140346cb1
xor eax, eax
lea rcx, [0x14053d630]
lea rdx, [0x14044bf80]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rcx]
movzx r9d, byte [rax + rdx]
not r9b
mov r10d, r9d
or r10b, r8b
not r10b
and r9b, r8b
or r9b, r10b
mov byte [rax + rcx], r9b
lea r8d, [rax + 1]
cmp r8d, 0x11
jg 0x140346c2f
inc rax
jmp 0x140346c00
mov al, 0xbb
xchg byte [0x14053d642], al
lea rax, [0x14053d630]
ret
mov eax, dword [0x14055eaac]
nop word cs:[rax + rax]
mov eax, dword [0x14055eaac]
cmp eax, 0x2c
jg 0x140346c50
xor eax, eax
lea rcx, [0x14053d500]
lea rdx, [0x14044be70]
mov r8d, 0xccaf7871
nop word cs:[rax + rax]
movzx r9d, byte [rax + rdx]
add byte [rax + rcx], r9b
lea r9d, [rax + 1]
mov r10d, dword [0x14053d6c0]
add r10d, r8d
cmp r9d, r10d
jge 0x140346ca1
inc rax
jmp 0x140346c80
mov al, 0x9f
xchg byte [0x14053d510], al
lea rax, [0x14053d500]
ret
mov eax, dword [0x14055eaac]
cmp eax, 0x50
jl 0x140346ced
nop dword [rax]
mov eax, dword [0x14055eaa8]
lea ecx, [rax + 1]
imul ecx, eax
and ecx, 1
xor eax, eax
sub eax, dword [0x14053d6c0]
mov edx, eax
xor edx, 0x3350879f
and eax, 0x3350879f
lea eax, [rdx + rax*2]
add eax, ecx
jne 0x140346cc0
jmp 0x140346cb1
xor eax, eax
lea rcx, [0x14053d620]
lea rdx, [0x14044bf70]
mov r8d, 0xccaf786e
nop word cs:[rax + rax]
movzx r9d, byte [rax + rdx]
xor byte [rax + rcx], r9b
lea r9d, [rax + 1]
mov r10d, dword [0x14053d6c0]
add r10d, r8d
cmp r9d, r10d
jge 0x140346d31
inc rax
jmp 0x140346d10
mov eax, 0xccaf7862
lea rcx, [fcn.140346a70]
add ecx, ecx
add ecx, 0x1040
mov edx, ecx
not edx
nop dword [rax]
mov r8d, dword [0x14055eaa8]
mov r9d, r8d
not r9d
imul r9d, r8d
test r9b, 1
jne 0x140346d9d
movzx r8d, byte [0x14053d6b0]
add r8b, 0xe1
xchg byte [0x14053d62d], r8b
mov r8d, dword [0x14053d6c0]
add r8d, eax
mov r9d, ecx
xor r9d, r8d
xor r8d, edx
and r8d, edx
or r8d, r9d
cmp r8d, 0xffffffff
je 0x140346ad4
mov r8b, 0x64
xchg byte [0x14053d62d], r8b
mov r8d, dword [0x14055eaac]
cmp r8d, 0x3b
jge 0x140346d50
jmp 0x140346d67