Function at 0x140351230
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [0x140578620]
mov r8d, dword [0x140556ad0]
mov r9d, eax
sub r9d, r8d
inc r9d
imul r9d, eax
and r9d, 1
add r8d, 0xd7094118
cmp r9d, r8d
jne 0x140351270
mov eax, dword [0x140578624]
cmp eax, 0x24
jl 0x14035127e
nop word cs:[rax + rax]
cmp dword [0x140556ad0], 0x28f6bee8
jne 0x140351270
jmp 0x14035125a
test ecx, ecx
je 0x140351327
test edx, edx
je 0x1403513d7
mov eax, 0xd7094119
lea rcx, [fcn.140351230]
add ecx, ecx
add ecx, 0x2d60
nop word cs:[rax + rax]
mov edx, dword [0x140578624]
cmp edx, 0x51
jg 0x1403512d9
movzx edx, byte [0x14055658e]
mov r8d, dword [0x140578620]
mov r9d, r8d
not r9d
imul r9d, r8d
test r9b, 1
je 0x1403512f2
movzx edx, byte [0x14055658e]
mov edx, dword [0x140556ad0]
add edx, eax
xor edx, ecx
not edx
test edx, ecx
jne 0x1403512b0
jmp 0x1403512bb
cmp dl, 0xb
je 0x14035131f
nop word [rax + rax]
movzx ecx, byte [0x140556ad4]
lea eax, [rcx - 0xd]
add cl, 0xe1
lock cmpxchg byte [0x14055658e], cl
je 0x140351459
cmp al, 0xb
jne 0x140351300
lea rax, [0x140556560]
ret
test edx, edx
je 0x140351422
movzx eax, byte [0x1405564f2]
cmp al, 0x74
je 0x1403515e9
mov cl, 0x20
mov r8d, 0xd7094124
nop word cs:[rax + rax]
mov edx, dword [0x140578620]
lea eax, [rdx - 1]
imul eax, edx
mov edx, dword [0x140556ad0]
mov r9d, edx
xor r9d, 0xd709411a
and edx, 0x5709411a
lea r9d, [r9 + rdx*2]
xor edx, edx
div r9d
test edx, edx
jne 0x1403513c0
nop
mov al, 0xe3
lock cmpxchg byte [0x1405564f2], cl
sete dl
mov r9d, dword [0x140578624]
mov r10d, dword [0x140556ad0]
add r10d, r8d
cmp r9d, r10d
jge 0x1403513c0
test dl, dl
jne 0x1403514a9
movzx edx, byte [0x140556ad4]
add dl, 0x59
cmp al, dl
jne 0x140351350
jmp 0x1403515e9
mov al, 0xe3
lock cmpxchg byte [0x1405564f2], cl
mov eax, dword [0x140578624]
cmp eax, 0xf
jge 0x1403513c0
jmp 0x140351380
mov eax, dword [0x140556ad0]
mov ecx, eax
xor ecx, 0xd7094119
mov edx, eax
and edx, 0x57094119
lea ecx, [rcx + rdx*2]
lea rdx, [fcn.140351230]
add edx, edx
add edx, 0x1d80
mov r8d, edx
not r8d
xor edx, ecx
not ecx
and ecx, r8d
or ecx, edx
not ecx
add eax, 0xd7094118
cmp ecx, eax
je 0x140351637
jmp 0x140351678
movzx eax, byte [0x1405564d5]
cmp al, 0x20
je 0x14035156e
mov cl, 0xc8
nop word cs:[rax + rax]
mov al, 0x79
lock cmpxchg byte [0x1405564d5], cl
je 0x1403514f5
cmp al, 0x20
jne 0x140351440
jmp 0x14035156e
xor edx, edx
lea rax, [0x140556560]
lea rcx, [0x14045c630]
nop dword [rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
add byte [rdx + rax], r8b
mov r8d, edx
xor r8d, 0x7ffffffe
and r8d, edx
xor edx, 1
lea edx, [rdx + r8*2]
cmp edx, 0x2e
jl 0x140351470
mov eax, dword [0x140578624]
cmp eax, 0x62
jge 0x140351830
jmp 0x1403517d2
xor eax, eax
lea rcx, [0x1405564e0]
lea rdx, [0x14045c5c0]
mov r8d, 0xd709412a
nop
movzx r9d, byte [rax + rdx]
add byte [rax + rcx], r9b
lea r9d, [rax + 1]
mov r10d, dword [0x140556ad0]
add r10d, r8d
cmp r9d, r10d
jge 0x1403514e1
inc rax
jmp 0x1403514c0
mov eax, dword [0x140578624]
cmp eax, 0x42
jle 0x1403515f1
jmp 0x1403515fd
xor edx, edx
lea rax, [0x1405564c0]
lea rcx, [0x14045c5a0]
nop word cs:[rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
add byte [rdx + rax], r8b
mov r8d, edx
xor r8d, 1
and edx, 1
lea edx, [r8 + rdx*2]
cmp edx, 0x15
jl 0x140351510
mov eax, dword [0x140578624]
mov ecx, 0xd7094146
add ecx, dword [0x140556ad0]
cmp eax, ecx
jge 0x14035155a
lea rax, [fcn.140351230]
add eax, eax
add eax, 0x3c00
mov ecx, eax
not ecx
test ecx, eax
je 0x140351566
mov al, 1
nop dword [rax]
test al, al
je 0x140351560
jmp 0x140351544
mov al, 0x20
xchg byte [0x1405564d5], al
lea rax, [fcn.140351230]
lea ecx, [rax + rax]
add ecx, 0x4b00
add eax, eax
add eax, 0x4b01
mov edx, ecx
xor edx, 0xfffffffe
and ecx, edx
xor edx, eax
or edx, ecx
not edx
mov eax, 0xd7094118
add eax, dword [0x140556ad0]
cmp edx, eax
jne 0x1403515ac
mov eax, dword [0x140578624]
cmp eax, 0x10
jl 0x1403515e1
mov ecx, 0xd709411a
nop word cs:[rax + rax]
mov edx, dword [0x140578620]
lea eax, [rdx - 1]
imul eax, edx
mov r8d, dword [0x140556ad0]
add r8d, ecx
xor edx, edx
div r8d
test edx, edx
jne 0x1403515c0
jmp 0x1403515a1
lea rax, [0x1405564c0]
ret
lea rax, [0x1405564e0]
ret
cmp dword [0x140556ad0], 0x28f6bee8
je 0x14035162d
mov eax, 0xd7094118
nop word cs:[rax + rax]
mov ecx, dword [0x140578620]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, dword [0x140556ad0]
add ecx, eax
cmp edx, ecx
jne 0x140351610
jmp 0x1403515f1
mov al, 0x74
xchg byte [0x1405564f2], al
jmp 0x1403515e9
movzx eax, byte [0x140556603]
lea rcx, [fcn.140351230]
add ecx, ecx
add ecx, 0x4c0
mov edx, ecx
not edx
and edx, ecx
mov ecx, dword [0x140556ad0]
mov r8d, ecx
xor r8d, 0xd7094118
not ecx
and ecx, 0x28f6bee7
or ecx, r8d
not ecx
lea ecx, [r8 + rcx*2]
cmp edx, ecx
je 0x1403516ce
mov eax, 0xd7094119
lea rcx, [fcn.140351230]
add ecx, ecx
add ecx, 0x4c60
mov edx, ecx
not edx
movzx r8d, byte [0x140556603]
mov r8d, dword [0x140556ad0]
add r8d, eax
mov r9d, edx
and r9d, r8d
not r8d
mov r10d, ecx
and r10d, r8d
or r10d, r9d
mov r9d, edx
xor r9d, r8d
not r9d
and r9d, r8d
or r9d, r10d
cmp r9d, 0xffffffff
jne 0x140351690
jmp 0x140351637
cmp al, 0xf6
je 0x140351757
mov cl, 0xf9
nop dword [rax + rax]
mov al, 0x7d
lock cmpxchg byte [0x140556603], cl
je 0x1403516f2
cmp al, 0xf6
jne 0x1403516e0
jmp 0x140351757
xor eax, eax
lea rcx, [0x1405565e0]
lea rdx, [0x14045c6a0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
mov r9d, r8d
xor r9b, r8b
not r9b
and r9b, byte [rax + rcx]
xor r9b, r8b
mov byte [rax + rcx], r9b
lea r8d, [rax + 1]
cmp r8d, 0x22
jg 0x140351738
inc rax
jmp 0x140351710
mov eax, dword [0x140578620]
mov ecx, dword [0x140556ad0]
add ecx, eax
mov edx, 1
sub edx, ecx
imul edx, eax
test dl, 1
jne 0x140351784
jmp 0x140351773
mov eax, dword [0x140578624]
nop dword [rax]
mov eax, dword [0x140578624]
cmp eax, 0x2f
jg 0x140351760
lea rax, [0x1405565e0]
ret
mov eax, dword [0x140578620]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x1403517c8
mov ecx, 0xd709411a
nop dword [rax]
mov edx, dword [0x140578620]
mov eax, edx
xor eax, 0x2ea7214a
mov r8d, edx
and r8d, 0x2ea7214a
lea eax, [rax + r8*2]
add eax, 0xd158deb5
imul eax, edx
mov r8d, dword [0x140556ad0]
add r8d, ecx
xor edx, edx
div r8d
test edx, edx
jne 0x140351790
jmp 0x140351773
mov al, 0xf6
xchg byte [0x140556603], al
jmp 0x140351757
mov ecx, dword [0x140578620]
mov eax, ecx
xor eax, 0xfb958226
mov edx, ecx
and edx, 0x7b958226
lea eax, [rax + rdx*2]
add eax, 0x46a7dd9
imul eax, ecx
mov ecx, dword [0x140556ad0]
lea edx, [rcx + 0x3a0e82c7]
mov r8d, edx
xor r8d, 0x9cfabe53
and edx, 0x1cfabe53
lea r8d, [r8 + rdx*2]
xor edx, edx
div r8d
add ecx, 0xd7094118
cmp edx, ecx
je 0x14035183e
nop word cs:[rax + rax]
cmp dword [0x140556ad0], 0x28f6bee8
jne 0x140351830
jmp 0x1403517d2
mov al, 0xb
xchg byte [0x14055658e], al
lea rax, [0x140556560]
ret