Function at 0x140155160
Capabilities:
Encode data using xor

Disassembly:
test ecx, ecx
je 0x1401551ac
test edx, edx
je 0x1401551fc
test r8d, r8d
je 0x14015523c
test r9d, r9d
je 0x1401552b9
movzx eax, byte [0x14046f38c]
cmp al, 0x74
je 0x1401551a4
mov cl, 0xe
nop dword [rax + rax]
mov al, 0x71
lock cmpxchg byte [0x14046f38c], cl
je 0x1401553f9
cmp al, 0x74
jne 0x140155190
lea rax, [0x14046f360]
ret
test edx, edx
je 0x14015527c
test r8d, r8d
je 0x1401552ec
test r9d, r9d
je 0x14015535c
movzx eax, byte [0x14046f5a6]
cmp al, 0x6d
je 0x1401551f4
mov cl, 0xdc
nop word cs:[rax + rax]
mov al, 2
lock cmpxchg byte [0x14046f5a6], cl
je 0x1401554c9
cmp al, 0x6d
jne 0x1401551e0
lea rax, [0x14046f580]
ret
test r8d, r8d
je 0x140155329
movzx eax, byte [0x14046f440]
cmp al, 0x49
je 0x140155234
mov cl, 3
nop word cs:[rax + rax]
mov al, 0x81
lock cmpxchg byte [0x14046f440], cl
je 0x140155431
cmp al, 0x49
jne 0x140155220
lea rax, [0x14046f430]
ret
test r9d, r9d
je 0x140155389
movzx eax, byte [0x14046f40f]
cmp al, 0x68
je 0x140155274
mov cl, 0x62
nop word cs:[rax + rax]
mov al, 0x8b
lock cmpxchg byte [0x14046f40f], cl
je 0x140155501
cmp al, 0x68
jne 0x140155260
lea rax, [0x14046f400]
ret
test r8d, r8d
je 0x1401553b9
test r9d, r9d
je 0x140155471
movzx eax, byte [0x14046f5c2]
cmp al, 0x90
je 0x140155619
mov cl, 0xc0
nop
mov al, 0xa7
lock cmpxchg byte [0x14046f5c2], cl
je 0x1401555eb
cmp al, 0x90
jne 0x1401552a0
jmp 0x140155619
movzx eax, byte [0x14046f428]
cmp al, 0x61
je 0x1401552e4
mov cl, 0xf0
nop word cs:[rax + rax]
mov al, 0x23
lock cmpxchg byte [0x14046f428], cl
je 0x140155541
cmp al, 0x61
jne 0x1401552d0
lea rax, [0x14046f410]
ret
test r9d, r9d
je 0x140155499
movzx eax, byte [0x14046f3fd]
cmp al, 0x87
je 0x140155659
mov cl, 0x60
nop word cs:[rax + rax]
mov al, 0xf8
lock cmpxchg byte [0x14046f3fd], cl
je 0x140155621
cmp al, 0x87
jne 0x140155310
jmp 0x140155659
movzx eax, byte [0x14046f605]
cmp al, 0x49
je 0x140155354
mov cl, 0x27
nop word cs:[rax + rax]
mov al, 6
lock cmpxchg byte [0x14046f605], cl
je 0x140155581
cmp al, 0x49
jne 0x140155340
lea rax, [0x14046f5f0]
ret
movzx eax, byte [0x14046f515]
cmp al, 0xe
je 0x140155699
mov cl, 0x53
nop dword [rax]
mov al, 0x60
lock cmpxchg byte [0x14046f515], cl
je 0x140155661
cmp al, 0xe
jne 0x140155370
jmp 0x140155699
movzx eax, byte [0x14046f553]
cmp al, 0xe
je 0x1401556d9
mov cl, 0x7a
nop word [rax + rax]
mov al, 0x17
lock cmpxchg byte [0x14046f553], cl
je 0x1401556a1
cmp al, 0xe
jne 0x1401553a0
jmp 0x1401556d9
test r9d, r9d
je 0x1401555c1
movzx eax, byte [0x14046f5b2]
cmp al, 0x2d
je 0x140155759
mov cl, 0xa3
nop word cs:[rax + rax]
mov al, 0x1b
lock cmpxchg byte [0x14046f5b2], cl
je 0x140155721
cmp al, 0x2d
jne 0x1401553e0
jmp 0x140155759
xor eax, eax
lea rcx, [0x14046f360]
lea rdx, [0x14038f7e0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x2c
jl 0x140155410
mov al, 0x74
xchg byte [0x14046f38c], al
lea rax, [0x14046f360]
ret
xor eax, eax
lea rcx, [0x14046f430]
lea rdx, [0x14038f8b0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x10
jl 0x140155450
mov al, 0x49
xchg byte [0x14046f440], al
lea rax, [0x14046f430]
ret
cmp byte [0x14046f49e], 0
je 0x140155719
mov cl, 0x2e
mov al, 0xc6
lock cmpxchg byte [0x14046f49e], cl
je 0x1401556e1
test al, al
jne 0x140155480
jmp 0x140155719
movzx eax, byte [0x14046f57f]
cmp al, 0x3a
je 0x140155799
mov cl, 0x85
nop word [rax + rax]
mov al, 0xb5
lock cmpxchg byte [0x14046f57f], cl
je 0x140155761
cmp al, 0x3a
jne 0x1401554b0
jmp 0x140155799
xor eax, eax
lea rcx, [0x14046f580]
lea rdx, [0x14038f9f0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x26
jl 0x1401554e0
mov al, 0x6d
xchg byte [0x14046f5a6], al
lea rax, [0x14046f580]
ret
xor eax, eax
lea rcx, [0x14046f400]
lea rdx, [0x14038f880]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xf
jl 0x140155520
mov al, 0x68
xchg byte [0x14046f40f], al
lea rax, [0x14046f400]
ret
xor eax, eax
lea rcx, [0x14046f410]
lea rdx, [0x14038f890]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x18
jl 0x140155560
mov al, 0x61
xchg byte [0x14046f428], al
lea rax, [0x14046f410]
ret
xor eax, eax
lea rcx, [0x14046f5f0]
lea rdx, [0x14038fa60]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x15
jl 0x1401555a0
mov al, 0x49
xchg byte [0x14046f605], al
lea rax, [0x14046f5f0]
ret
movzx eax, byte [0x14046f465]
cmp al, 0x9a
je 0x1401557ca
mov cl, 0xa1
mov al, 0xfe
lock cmpxchg byte [0x14046f465], cl
je 0x1401557a1
cmp al, 0x9a
jne 0x1401555d2
jmp 0x1401557ca
xor eax, eax
lea rcx, [0x14046f5c0]
lea rdx, [0x14038fa30]
nop dword [rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 2
jl 0x140155600
mov al, 0x90
xchg byte [0x14046f5c2], al
lea rax, [0x14046f5c0]
ret
xor eax, eax
lea rcx, [0x14046f3f0]
lea rdx, [0x14038f870]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x140155640
mov al, 0x87
xchg byte [0x14046f3fd], al
lea rax, [0x14046f3f0]
ret
xor eax, eax
lea rcx, [0x14046f510]
lea rdx, [0x14038f980]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 5
jl 0x140155680
mov al, 0xe
xchg byte [0x14046f515], al
lea rax, [0x14046f510]
ret
xor eax, eax
lea rcx, [0x14046f530]
lea rdx, [0x14038f9a0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x23
jl 0x1401556c0
mov al, 0xe
xchg byte [0x14046f553], al
lea rax, [0x14046f530]
ret
xor eax, eax
lea rcx, [0x14046f490]
lea rdx, [0x14038f900]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xe
jl 0x140155700
xor eax, eax
xchg byte [0x14046f49e], al
lea rax, [0x14046f490]
ret
xor eax, eax
lea rcx, [0x14046f5b0]
lea rdx, [0x14038fa20]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 2
jl 0x140155740
mov al, 0x2d
xchg byte [0x14046f5b2], al
lea rax, [0x14046f5b0]
ret
xor eax, eax
lea rcx, [0x14046f570]
lea rdx, [0x14038f9e0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xf
jl 0x140155780
mov al, 0x3a
xchg byte [0x14046f57f], al
lea rax, [0x14046f570]
ret
xor eax, eax
lea rcx, [0x14046f450]
lea rdx, [0x14038f8c0]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x15
jl 0x1401557b1
mov al, 0x9a
xchg byte [0x14046f465], al
lea rax, [0x14046f450]
ret