Function at 0x1402218e0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
mov esi, dword [rsp + 0x60]
test ecx, ecx
je 0x140221939
test edx, edx
je 0x140221989
test r8d, r8d
je 0x1402219c9
test r9d, r9d
je 0x140221a49
movzx eax, byte [0x1404857d3]
cmp al, 0xbc
je 0x140221be9
mov cl, 0xc8
nop word [rax + rax]
mov al, 0xbd
lock cmpxchg byte [0x1404857d3], cl
je 0x140221bb9
cmp al, 0xbc
jne 0x140221920
jmp 0x140221be9
test edx, edx
je 0x140221a09
test r8d, r8d
je 0x140221a79
test r9d, r9d
je 0x140221af9
movzx eax, byte [0x140485765]
cmp al, 0xe
je 0x140221c89
mov cl, 0xa7
nop word cs:[rax + rax]
mov al, 0xf4
lock cmpxchg byte [0x140485765], cl
je 0x140221c59
cmp al, 0xe
jne 0x140221970
jmp 0x140221c89
test r8d, r8d
je 0x140221ab9
test r9d, r9d
je 0x140221b29
movzx eax, byte [0x1404857a0]
cmp al, 0x71
je 0x140221cc9
mov cl, 0x5a
nop dword [rax]
mov al, 0x2c
lock cmpxchg byte [0x1404857a0], cl
je 0x140221c95
cmp al, 0x71
jne 0x1402219b0
jmp 0x140221cc9
test r9d, r9d
je 0x140221b59
movzx eax, byte [0x140485809]
cmp al, 0xf4
je 0x140221d59
mov cl, 0xca
nop word cs:[rax + rax]
mov al, 0xb2
lock cmpxchg byte [0x140485809], cl
je 0x140221cd5
cmp al, 0xf4
jne 0x1402219f0
jmp 0x140221d59
test r8d, r8d
je 0x140221b89
movzx eax, byte [0x140485a0d]
cmp al, 0x84
je 0x140221dd9
mov cl, 0x9f
nop word cs:[rax + rax]
mov al, 0xb2
lock cmpxchg byte [0x140485a0d], cl
je 0x140221da5
cmp al, 0x84
jne 0x140221a30
jmp 0x140221dd9
movzx eax, byte [0x140485a7c]
cmp al, 0x91
je 0x140221d99
mov cl, 0xfe
nop word [rax + rax]
mov al, 0x47
lock cmpxchg byte [0x140485a7c], cl
je 0x140221d65
cmp al, 0x91
jne 0x140221a60
jmp 0x140221d99
test r9d, r9d
je 0x140221bf5
movzx eax, byte [0x14048580a]
cmp al, 0xe2
je 0x140221e69
mov cl, 0xa
nop word cs:[rax + rax]
mov al, 0x66
lock cmpxchg byte [0x14048580a], cl
je 0x140221de5
cmp al, 0xe2
jne 0x140221aa0
jmp 0x140221e69
test r9d, r9d
je 0x140221c29
movzx eax, byte [0x140485734]
cmp al, 0xfa
je 0x140221ea9
mov cl, 0xf2
nop word cs:[rax + rax]
mov al, 0xff
lock cmpxchg byte [0x140485734], cl
je 0x140221e75
cmp al, 0xfa
jne 0x140221ae0
jmp 0x140221ea9
movzx eax, byte [0x140485835]
cmp al, 0xc1
je 0x140221ee9
mov cl, 0xd4
nop word [rax + rax]
mov al, 0x60
lock cmpxchg byte [0x140485835], cl
je 0x140221eb5
cmp al, 0xc1
jne 0x140221b10
jmp 0x140221ee9
movzx eax, byte [0x1404858b3]
cmp al, 0x28
je 0x140221f29
mov cl, 0xed
nop word [rax + rax]
mov al, 1
lock cmpxchg byte [0x1404858b3], cl
je 0x140221ef5
cmp al, 0x28
jne 0x140221b40
jmp 0x140221f29
movzx eax, byte [0x140485652]
cmp al, 0x9b
je 0x140221f69
mov cl, 0x34
nop word [rax + rax]
mov al, 0x6b
lock cmpxchg byte [0x140485652], cl
je 0x140221f35
cmp al, 0x9b
jne 0x140221b70
jmp 0x140221f69
movzx eax, byte [0x140485742]
cmp al, 0xba
je 0x140221fa9
mov cl, 0xce
nop word [rax + rax]
mov al, 0x46
lock cmpxchg byte [0x140485742], cl
je 0x140221f75
cmp al, 0xba
jne 0x140221ba0
jmp 0x140221fa9
xor eax, eax
lea rcx, [0x1404857d0]
lea rdx, [0x14039a930]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 3
jl 0x140221bd0
mov al, 0xbc
xchg byte [0x1404857d3], al
lea rax, [0x1404857d0]
jmp 0x140222030
movzx eax, byte [0x1404858f3]
cmp al, 0x26
je 0x140221fe9
mov cl, 0x73
nop word cs:[rax + rax]
mov al, 0x97
lock cmpxchg byte [0x1404858f3], cl
je 0x140221fb2
cmp al, 0x26
jne 0x140221c10
jmp 0x140221fe9
movzx eax, byte [0x140485992]
cmp al, 0xe9
je 0x140222029
mov cl, 0x79
nop word [rax + rax]
mov al, 0x71
lock cmpxchg byte [0x140485992], cl
je 0x140221ff2
cmp al, 0xe9
jne 0x140221c40
jmp 0x140222029
xor eax, eax
lea rcx, [0x140485750]
lea rdx, [0x14039a8d0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x15
jl 0x140221c70
mov al, 0xe
xchg byte [0x140485765], al
lea rax, [0x140485750]
jmp 0x140222030
xor eax, eax
lea rcx, [0x140485790]
lea rdx, [0x14039a910]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x10
jl 0x140221cb0
mov al, 0x71
xchg byte [0x1404857a0], al
lea rax, [0x140485790]
jmp 0x140222030
cmp qword [0x1404bf0b8], 0
jne 0x140221d2f
mov r9d, esi
xor r9d, 0xd0cfae47
xor ebx, ebx
xor ecx, ecx
xor edx, edx
mov r8d, 4
call fcn.1402218a0
mov rdi, rax
mov qword [0x1404bf0b8], rax
xor esi, 0x5823a6b
lea rcx, [0x1402213f0]
mov edx, esi
call fcn.140107920
lea rax, [0x14039a970]
nop
movzx ecx, byte [rbx + rax]
mov byte [rdi + rbx], cl
inc rbx
cmp ebx, 2
jle 0x140221d20
mov rax, qword [0x1404bf0b8]
xor ecx, ecx
lea rdx, [0x14039a980]
nop
movzx r8d, byte [rcx + rdx]
add byte [rax + rcx], r8b
inc rcx
cmp ecx, 3
jl 0x140221d40
mov al, 0xf4
xchg byte [0x140485809], al
mov rax, qword [0x1404bf0b8]
jmp 0x140222030
xor eax, eax
lea rcx, [0x140485a70]
lea rdx, [0x14039ac10]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xc
jl 0x140221d80
mov al, 0x91
xchg byte [0x140485a7c], al
lea rax, [0x140485a70]
jmp 0x140222030
xor eax, eax
lea rcx, [0x140485a00]
lea rdx, [0x14039aba0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x140221dc0
mov al, 0x84
xchg byte [0x140485a0d], al
lea rax, [0x140485a00]
jmp 0x140222030
cmp qword [0x1404bf0c0], 0
jne 0x140221e3e
mov r9d, esi
xor r9d, 0x5bc0423
xor ebx, ebx
xor ecx, ecx
xor edx, edx
mov r8d, 4
call fcn.1402218a0
mov rdi, rax
mov qword [0x1404bf0c0], rax
xor esi, 0xd0f1900f
lea rcx, [0x140221410]
mov edx, esi
call fcn.140107920
lea rax, [0x14039a990]
movzx ecx, byte [rbx + rax]
mov byte [rdi + rbx], cl
inc rbx
cmp ebx, 2
jle 0x140221e2f
mov rax, qword [0x1404bf0c0]
xor ecx, ecx
lea rdx, [0x14039a9a0]
nop
movzx r8d, byte [rcx + rdx]
xor byte [rax + rcx], r8b
inc rcx
cmp ecx, 3
jl 0x140221e50
mov al, 0xe2
xchg byte [0x14048580a], al
mov rax, qword [0x1404bf0c0]
jmp 0x140222030
xor eax, eax
lea rcx, [0x140485730]
lea rdx, [0x14039a8b0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 4
jl 0x140221e90
mov al, 0xfa
xchg byte [0x140485734], al
lea rax, [0x140485730]
jmp 0x140222030
xor eax, eax
lea rcx, [0x140485820]
lea rdx, [0x14039a9c0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x15
jl 0x140221ed0
mov al, 0xc1
xchg byte [0x140485835], al
lea rax, [0x140485820]
jmp 0x140222030
xor eax, eax
lea rcx, [0x1404858b0]
lea rdx, [0x14039aa50]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 3
jl 0x140221f10
mov al, 0x28
xchg byte [0x1404858b3], al
lea rax, [0x1404858b0]
jmp 0x140222030
xor eax, eax
lea rcx, [0x140485650]
lea rdx, [0x14039a800]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 2
jl 0x140221f50
mov al, 0x9b
xchg byte [0x140485652], al
lea rax, [0x140485650]
jmp 0x140222030
xor eax, eax
lea rcx, [0x140485740]
lea rdx, [0x14039a8c0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 2
jl 0x140221f90
mov al, 0xba
xchg byte [0x140485742], al
lea rax, [0x140485740]
jmp 0x140222030
xor eax, eax
lea rcx, [0x1404858f0]
lea rdx, [0x14039aa90]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 3
jl 0x140221fd0
mov al, 0x26
xchg byte [0x1404858f3], al
lea rax, [0x1404858f0]
jmp 0x140222030
xor eax, eax
lea rcx, [0x140485990]
lea rdx, [0x14039ab30]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 2
jl 0x140222010
mov al, 0xe9
xchg byte [0x140485992], al
lea rax, [0x140485990]
add rsp, 0x20
pop rbx
pop rdi
pop rsi
ret