Function at 0x140108150
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x30
test ecx, ecx
je 0x1401081a9
test edx, edx
je 0x1401081f9
test r8d, r8d
je 0x140108239
test r9d, r9d
je 0x1401082b9
movzx eax, byte [0x140459ca5]
cmp al, 0x3f
je 0x140108469
mov cl, 0xa2
nop word cs:[rax + rax]
mov al, 0xf5
lock cmpxchg byte [0x140459ca5], cl
je 0x140108439
cmp al, 0x3f
jne 0x140108190
jmp 0x140108469
test edx, edx
je 0x140108279
test r8d, r8d
je 0x1401082e9
test r9d, r9d
je 0x140108369
movzx eax, byte [0x140459e2b]
cmp al, 0x6b
je 0x140108539
mov cl, 0xe7
nop word cs:[rax + rax]
mov al, 0xae
lock cmpxchg byte [0x140459e2b], cl
je 0x140108509
cmp al, 0x6b
jne 0x1401081e0
jmp 0x140108539
test r8d, r8d
je 0x140108329
test r9d, r9d
je 0x140108399
movzx eax, byte [0x140459ce3]
cmp al, 0xbe
je 0x140108579
mov cl, 0x7f
nop dword [rax]
mov al, 0x70
lock cmpxchg byte [0x140459ce3], cl
je 0x140108545
cmp al, 0xbe
jne 0x140108220
jmp 0x140108579
test r9d, r9d
je 0x1401083c9
movzx eax, byte [0x140459c02]
cmp al, 0x7c
je 0x1401085b9
mov cl, 0x1a
nop word cs:[rax + rax]
mov al, 0x4f
lock cmpxchg byte [0x140459c02], cl
je 0x140108585
cmp al, 0x7c
jne 0x140108260
jmp 0x1401085b9
test r8d, r8d
je 0x1401083f9
test r9d, r9d
je 0x140108475
movzx eax, byte [0x140459bc0]
cmp al, 0x70
je 0x140108659
mov cl, 0x3b
nop dword [rax]
mov al, 0x7d
lock cmpxchg byte [0x140459bc0], cl
je 0x14010862f
cmp al, 0x70
jne 0x1401082a0
jmp 0x140108659
movzx eax, byte [0x140459d23]
cmp al, 0x6e
je 0x1401085f9
mov cl, 0x33
nop word [rax + rax]
mov al, 0x99
lock cmpxchg byte [0x140459d23], cl
je 0x1401085c5
cmp al, 0x6e
jne 0x1401082d0
jmp 0x1401085f9
test r9d, r9d
je 0x1401084a9
movzx eax, byte [0x140459da3]
cmp al, 0x1f
je 0x140108699
mov cl, 0x37
nop word cs:[rax + rax]
mov al, 0x1a
lock cmpxchg byte [0x140459da3], cl
je 0x140108665
cmp al, 0x1f
jne 0x140108310
jmp 0x140108699
test r9d, r9d
je 0x1401084d9
movzx eax, byte [0x140459cd6]
cmp al, 0x5b
je 0x1401086d9
mov cl, 0x88
nop word cs:[rax + rax]
mov al, 0x7b
lock cmpxchg byte [0x140459cd6], cl
je 0x1401086a5
cmp al, 0x5b
jne 0x140108350
jmp 0x1401086d9
movzx eax, byte [0x140459d37]
cmp al, 0x3d
je 0x140108779
mov esi, dword [rsp + 0x70]
mov cl, 0x3b
nop
mov al, 0xca
lock cmpxchg byte [0x140459d37], cl
je 0x1401086e5
cmp al, 0x3d
jne 0x140108380
jmp 0x140108779
movzx eax, byte [0x140459e12]
cmp al, 0xfd
je 0x1401087b9
mov cl, 0xb
nop word [rax + rax]
mov al, 0x47
lock cmpxchg byte [0x140459e12], cl
je 0x140108785
cmp al, 0xfd
jne 0x1401083b0
jmp 0x1401087b9
movzx eax, byte [0x140459dcf]
cmp al, 0x78
je 0x1401087f9
mov cl, 0x7d
nop word [rax + rax]
mov al, 0xd0
lock cmpxchg byte [0x140459dcf], cl
je 0x1401087c5
cmp al, 0x78
jne 0x1401083e0
jmp 0x1401087f9
test r9d, r9d
je 0x140108605
movzx eax, byte [0x140459d73]
cmp al, 0x7d
je 0x140108839
mov cl, 0x94
nop word cs:[rax + rax]
mov al, 0x44
lock cmpxchg byte [0x140459d73], cl
je 0x140108805
cmp al, 0x7d
jne 0x140108420
jmp 0x140108839
xor eax, eax
lea rcx, [0x140459c90]
lea rdx, [0x14038c4c0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x15
jl 0x140108450
mov al, 0x3f
xchg byte [0x140459ca5], al
lea rax, [0x140459c90]
jmp 0x140108932
movzx eax, byte [0x140459be5]
cmp al, 0x2a
je 0x140108879
mov cl, 0xe2
nop word cs:[rax + rax]
mov al, 0x51
lock cmpxchg byte [0x140459be5], cl
je 0x140108845
cmp al, 0x2a
jne 0x140108490
jmp 0x140108879
movzx eax, byte [0x140459c41]
cmp al, 0x72
je 0x1401088b9
mov cl, 0x2f
nop word [rax + rax]
mov al, 0x81
lock cmpxchg byte [0x140459c41], cl
je 0x140108885
cmp al, 0x72
jne 0x1401084c0
jmp 0x1401088b9
movzx eax, byte [0x140459e02]
cmp al, 0xce
je 0x1401088f9
mov cl, 0x9b
nop word [rax + rax]
mov al, 0x61
lock cmpxchg byte [0x140459e02], cl
je 0x1401088c2
cmp al, 0xce
jne 0x1401084f0
jmp 0x1401088f9
xor eax, eax
lea rcx, [0x140459e20]
lea rdx, [0x14038c680]
nop dword [rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xb
jl 0x140108520
mov al, 0x6b
xchg byte [0x140459e2b], al
lea rax, [0x140459e20]
jmp 0x140108932
xor eax, eax
lea rcx, [0x140459ce0]
lea rdx, [0x14038c510]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 3
jl 0x140108560
mov al, 0xbe
xchg byte [0x140459ce3], al
lea rax, [0x140459ce0]
jmp 0x140108932
xor eax, eax
lea rcx, [0x140459bf0]
lea rdx, [0x14038c420]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x12
jl 0x1401085a0
mov al, 0x7c
xchg byte [0x140459c02], al
lea rax, [0x140459bf0]
jmp 0x140108932
xor eax, eax
lea rcx, [0x140459d20]
lea rdx, [0x14038c540]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 3
jl 0x1401085e0
mov al, 0x6e
xchg byte [0x140459d23], al
lea rax, [0x140459d20]
jmp 0x140108932
movzx eax, byte [0x140459df6]
cmp al, 0xe7
je 0x14010892b
mov cl, 0x4b
mov al, 0x49
lock cmpxchg byte [0x140459df6], cl
je 0x140108902
cmp al, 0xe7
jne 0x140108616
jmp 0x14010892b
xor eax, eax
lea rcx, [0x140459bb0]
lea rdx, [0x14038c3f0]
nop
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x10
jl 0x140108640
mov al, 0x70
xchg byte [0x140459bc0], al
lea rax, [0x140459bb0]
jmp 0x140108932
xor eax, eax
lea rcx, [0x140459d80]
lea rdx, [0x14038c5e0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x23
jl 0x140108680
mov al, 0x1f
xchg byte [0x140459da3], al
lea rax, [0x140459d80]
jmp 0x140108932
xor eax, eax
lea rcx, [0x140459cc0]
lea rdx, [0x14038c4f0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x16
jl 0x1401086c0
mov al, 0x5b
xchg byte [0x140459cd6], al
lea rax, [0x140459cc0]
jmp 0x140108932
cmp qword [0x1404bdbd0], 0
jne 0x14010874a
mov eax, esi
xor eax, 0xc98100e0
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], 4
xor ebx, ebx
mov ecx, 1
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call fcn.1401077d0
mov rdi, rax
mov qword [0x1404bdbd0], rax
xor esi, 0xb310bf65
lea rcx, [0x1401076a0]
mov edx, esi
call fcn.140107920
lea rax, [0x14038c560]
movzx ecx, byte [rbx + rax]
mov byte [rdi + rbx], cl
inc rbx
cmp ebx, 2
jle 0x14010873b
mov rax, qword [0x1404bdbd0]
xor ecx, ecx
lea rdx, [0x14038c570]
nop word [rax + rax]
movzx r8d, byte [rcx + rdx]
xor byte [rax + rcx], r8b
inc rcx
cmp ecx, 3
jl 0x140108760
mov al, 0x3d
xchg byte [0x140459d37], al
mov rax, qword [0x1404bdbd0]
jmp 0x140108932
xor eax, eax
lea rcx, [0x140459e10]
lea rdx, [0x14038c670]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 2
jl 0x1401087a0
mov al, 0xfd
xchg byte [0x140459e12], al
lea rax, [0x140459e10]
jmp 0x140108932
xor eax, eax
lea rcx, [0x140459dc0]
lea rdx, [0x14038c620]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xf
jl 0x1401087e0
mov al, 0x78
xchg byte [0x140459dcf], al
lea rax, [0x140459dc0]
jmp 0x140108932
xor eax, eax
lea rcx, [0x140459d70]
lea rdx, [0x14038c5d0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 3
jl 0x140108820
mov al, 0x7d
xchg byte [0x140459d73], al
lea rax, [0x140459d70]
jmp 0x140108932
xor eax, eax
lea rcx, [0x140459bd0]
lea rdx, [0x14038c400]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x15
jl 0x140108860
mov al, 0x2a
xchg byte [0x140459be5], al
lea rax, [0x140459bd0]
jmp 0x140108932
xor eax, eax
lea rcx, [0x140459c30]
lea rdx, [0x14038c460]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x11
jl 0x1401088a0
mov al, 0x72
xchg byte [0x140459c41], al
lea rax, [0x140459c30]
jmp 0x140108932
xor eax, eax
lea rcx, [0x140459e00]
lea rdx, [0x14038c660]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 2
jl 0x1401088e0
mov al, 0xce
xchg byte [0x140459e02], al
lea rax, [0x140459e00]
jmp 0x140108932
xor eax, eax
lea rcx, [0x140459dd0]
lea rdx, [0x14038c630]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x26
jl 0x140108912
mov al, 0xe7
xchg byte [0x140459df6], al
lea rax, [0x140459dd0]
add rsp, 0x30
pop rbx
pop rdi
pop rsi
ret