Function at 0x14039e310
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov esi, dword [rsp + 0xb0]
test ecx, ecx
je 0x14039e39b
test edx, edx
je 0x14039e3e7
movzx eax, byte [0x140547235]
cmp al, 0x4a
je 0x14039e52f
mov edi, esi
xor edi, 0xd8fcc7a5
nop word [rax + rax]
movzx ecx, byte [0x140548434]
mov eax, esi
xor al, 0xb7
mov edx, eax
xor dl, cl
and al, cl
add al, al
add al, dl
mov edx, esi
xor dl, 4
add dl, cl
lock cmpxchg byte [0x140547235], dl
mov ebx, eax
sete dl
mov ecx, eax
mov r8d, 0x92aefe76
mov r9d, edi
call fcn.140126520
test al, 1
jne 0x14039e499
cmp bl, 0x4a
jne 0x14039e350
jmp 0x14039e52f
test edx, edx
je 0x14039e451
movzx eax, byte [0x140547633]
cmp al, 0x28
je 0x14039e59d
mov edi, esi
xor edi, 0x6d0b5788
lea rbx, [rsp + 0x40]
nop
mov rcx, rbx
mov edx, 0xd26e2d94
mov r8d, edi
call fcn.14039e8d0
cmp byte [rsp + 0x41], 0
jne 0x14039e53b
cmp byte [rsp + 0x40], 0x28
jne 0x14039e3c0
jmp 0x14039e59d
mov edx, esi
xor edx, 0x93846b34
add edx, dword [0x140548430]
xor edx, esi
mov ecx, 0xbf9be8df
call fcn.14039e970
test al, 1
jne 0x14039e64b
nop dword [rax]
movzx ecx, byte [0x140548434]
mov edx, esi
not dl
mov r8d, edx
and r8b, 0x20
mov eax, esi
and al, 0xdf
or al, r8b
add al, cl
mov r8d, esi
and r8b, 0x60
and dl, 0x9f
or dl, r8b
add dl, cl
lock cmpxchg byte [0x140546b76], dl
je 0x14039e5a9
cmp al, 0x4b
jne 0x14039e410
jmp 0x14039e64b
mov r8d, esi
xor r8d, 0x6c6aae41
lea rcx, [rsp + 0x40]
mov edx, 0xec408e96
call fcn.14039ea70
cmp byte [rsp + 0x40], 0x62
je 0x14039e6f2
mov cl, 0x12
nop word [rax + rax]
mov al, 0x65
lock cmpxchg byte [0x140546dfd], cl
je 0x14039e657
cmp al, 0x62
jne 0x14039e480
jmp 0x14039e6f2
xor ecx, ecx
lea r12, [0x140547230]
mov ebp, esi
xor ebp, 0xcb23464b
lea rdi, [rsp + 0x3f]
lea rbx, [rsp + 0x40]
mov r13d, esi
xor r13d, 0xb9bd203c
nop
movsxd r14, ecx
lea r15, [r12 + r14]
mov eax, dword [0x140548430]
add eax, ebp
xor eax, esi
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], 0x10091955
mov rcx, r15
mov edx, r14d
mov r8, rdi
mov r9, rbx
call fcn.14039e740
movzx ecx, byte [rsp + 0x3f]
mov rax, qword [rsp + 0x40]
add cl, byte [rax]
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], 0x253980a9
mov rdx, r15
mov r8d, r14d
mov r9, rbx
call fcn.14027edc0
mov ecx, dword [rsp + 0x40]
test al, 1
je 0x14039e4c0
xor esi, 0xc91a5ee
mov ecx, 0x1dc23994
mov edx, esi
call fcn.14039ea60
lea rax, [0x140547230]
jmp 0x14039e6f9
xor eax, eax
lea r14, [0x140547630]
mov ecx, esi
not ecx
xor esi, 0x91bbdb58
and ecx, 0x6e4424a7
or esi, ecx
not esi
or esi, ecx
lea rdi, [rsp + 0x40]
nop
movsxd rbx, eax
movzx ebp, byte [rbx + r14]
mov rcx, rbx
mov rdx, rdi
mov r8d, 0x50e9b2b4
mov r9d, esi
call fcn.14039ea20
add bpl, byte [rsp + 0x40]
mov byte [rbx + r14], bpl
mov eax, ebx
xor eax, 1
and ebx, 1
lea eax, [rax + rbx*2]
cmp eax, 3
jl 0x14039e560
mov al, 0x28
xchg byte [0x140547633], al
lea rax, [0x140547630]
jmp 0x14039e6f9
xor edi, edi
lea r14, [0x140546b70]
mov ebp, esi
xor ebp, 0xa8c5cba6
mov r15d, esi
not r15d
lea rbx, [rsp + 0x40]
mov eax, r15d
and eax, 0x98b86393
xor esi, 0x67479c6c
or esi, eax
not esi
or esi, eax
nop dword [rax]
xor r12d, r12d
sub r12b, byte [rdi + r14]
mov r9d, dword [0x140548430]
add r9d, ebp
mov eax, r15d
and eax, r9d
or r9d, r15d
not r9d
or r9d, eax
mov rcx, rdi
mov rdx, rbx
mov r8d, 0x298a06d5
call fcn.14039e9f0
mov rax, qword [rsp + 0x40]
movzx eax, byte [rax]
xor ecx, ecx
sub cl, al
mov eax, r12d
xor al, cl
and cl, r12b
add cl, cl
add cl, al
neg cl
mov byte [rdi + r14], cl
lea eax, [rdi + 1]
mov ecx, dword [0x140548430]
add ecx, esi
cmp eax, ecx
jge 0x14039e643
inc rdi
jmp 0x14039e5e0
mov al, 0x4b
xchg byte [0x140546b76], al
lea rax, [0x140546b70]
jmp 0x14039e6f9
xor edi, edi
lea r15, [0x140546df0]
mov ebp, esi
xor ebp, 0x58a96ebb
lea rbx, [rsp + 0x3f]
lea r14, [rsp + 0x40]
lea r12, [0x14044f290]
nop dword [rax]
lea rcx, [r15 + rdi]
mov eax, dword [0x140548430]
add eax, ebp
xor eax, esi
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], 0xccc2b569
mov edx, edi
mov r8, rbx
mov r9, r14
call fcn.1401b0720
movzx eax, byte [rsp + 0x3f]
mov rcx, qword [rsp + 0x40]
movzx ecx, byte [rcx + r12]
mov edx, ecx
not dl
mov r8d, eax
and r8b, dl
xor dl, al
not al
mov r9d, eax
xor r9b, cl
or r8b, r9b
not r8b
and al, cl
or al, dl
not al
or al, r8b
mov byte [rdi + r15], al
lea eax, [rdi + 1]
cmp eax, 0xc
jg 0x14039e6ea
inc rdi
jmp 0x14039e680
mov al, 0x62
xchg byte [0x140546dfd], al
lea rax, [0x140546df0]
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret