Function at 0x140124ec0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov esi, r9d
test ecx, ecx
je 0x140124f43
test edx, edx
je 0x140124f79
movzx eax, byte [0x1404d775b]
cmp al, 0x5a
je 0x14012507a
mov bl, 0xb5
xor esi, 0x45f2df0d
lea rdi, [rsp + 0x30]
nop word [rax + rax]
mov al, 0xf0
lock cmpxchg byte [0x1404d775b], bl
sete bpl
sete dl
mov dword [rsp + 0x20], 0x81fb649d
mov ecx, eax
mov r8, rdi
mov r9d, esi
call fcn.140125f40
test bpl, bpl
jne 0x140125019
movzx eax, byte [0x1404d7c94]
add al, 0x94
cmp byte [rsp + 0x30], al
jne 0x140124f00
jmp 0x14012507a
test edx, edx
je 0x140124fe4
movzx eax, byte [0x1404d7875]
cmp al, 0xc4
je 0x140125106
mov cl, 0x37
nop dword [rax]
mov al, 0x55
lock cmpxchg byte [0x1404d7875], cl
je 0x140125086
cmp al, 0xc4
jne 0x140124f60
jmp 0x140125106
mov edx, esi
xor edx, 0xb0234e21
lea rcx, [rsp + 0x30]
mov r8d, 0x57ba4041
call fcn.140126130
movzx eax, byte [0x1404d7c94]
add al, 0xc4
cmp byte [rsp + 0x30], al
je 0x14012517e
mov edi, esi
xor edi, 0x4559f69f
lea rbx, [rsp + 0x30]
nop word cs:[rax + rax]
mov rcx, rbx
mov edx, edi
mov r8d, 0x884cd669
call fcn.140125f20
test al, 1
jne 0x140125112
cmp byte [rsp + 0x30], 0x8a
jne 0x140124fc0
jmp 0x14012517e
movzx eax, byte [0x1404d79f2]
cmp al, 0x61
je 0x1401251e9
mov cl, 0xef
nop word cs:[rax + rax]
mov al, 0xdf
lock cmpxchg byte [0x1404d79f2], cl
je 0x140125187
cmp al, 0x61
jne 0x140125000
jmp 0x1401251e9
xor edx, edx
lea rax, [0x1404d7750]
lea rcx, [0x140402910]
nop dword [rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rax]
movzx r9d, byte [rdx + rcx]
not r8b
mov r10d, r8d
and r10b, r9b
or r8b, r9b
not r8b
or r8b, r10b
mov byte [rdx + rax], r8b
add edx, 0x8e07ff72
mov r8d, edx
xor r8d, 1
and edx, 1
lea edx, [r8 + rdx*2]
add edx, 0x71f8008e
cmp edx, 0xb
jl 0x140125030
mov al, 0x5a
xchg byte [0x1404d775b], al
lea rax, [0x1404d7750]
jmp 0x1401251f0
xor edx, edx
lea rax, [0x1404d7870]
lea rcx, [0x140402a10]
nop word cs:[rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
mov r9d, r8d
xor r9b, r8b
not r9b
and r9b, byte [rdx + rax]
xor r9b, r8b
mov byte [rdx + rax], r9b
add edx, 0xc8781c5e
mov r8d, edx
xor r8d, 0x3787e3a3
and edx, 0x3787e3a3
lea edx, [r8 + rdx*2]
mov r8d, dword [0x1404d7c90]
mov r9d, r8d
xor r9d, 0x53711cb9
and r8d, 0x53711cb9
lea r8d, [r9 + r8*2]
cmp edx, r8d
jl 0x1401250a0
movzx eax, byte [0x1404d7c94]
add al, 0xfe
xchg byte [0x1404d7875], al
lea rax, [0x1404d7870]
jmp 0x1401251f0
xor edi, edi
mov ebx, esi
xor ebx, 0x6bb2468f
lea r14, [rsp + 0x30]
lea r15, [0x1404d7850]
xor esi, 0x20f72c56
nop
mov ecx, edi
mov rdx, r14
mov r8d, ebx
mov r9d, 0x3f427352
call fcn.140110d50
mov rcx, qword [rsp + 0x30]
add rcx, r15
mov dword [rsp + 0x20], 0x315e465e
mov edx, edi
mov r8, r14
mov r9d, esi
call fcn.140126050
movzx eax, byte [rsp + 0x30]
mov byte [rdi + r15], al
lea eax, [rdi + 1]
cmp eax, 2
jg 0x140125176
inc rdi
jmp 0x140125130
mov al, 0x8a
xchg byte [0x1404d7853], al
lea rax, [0x1404d7850]
jmp 0x1401251f0
xor edi, edi
xor esi, 0xbf5fb454
lea rbx, [rsp + 0x30]
lea r14, [0x140402b70]
lea r15, [0x1404d79e0]
nop word cs:[rax + rax]
mov rcx, rdi
mov rdx, rbx
mov r8d, esi
mov r9d, 0xe6a43cc3
call fcn.140125e50
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax]
add al, byte [rdi + r14]
mov byte [rdi + r15], al
lea eax, [rdi + 1]
cmp eax, 0x11
jg 0x1401251e1
inc rdi
jmp 0x1401251b0
mov al, 0x61
xchg byte [0x1404d79f2], al
lea rax, [0x1404d79e0]
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret