Function at 0x14039c480
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x50
mov esi, r9d
test ecx, ecx
je 0x14039c4e9
test edx, edx
je 0x14039c5da
movzx ecx, byte [0x1405471b5]
mov edx, esi
xor edx, 0x806c504d
mov r8d, 0xe981648e
call fcn.14039e300
test al, 1
jne 0x14039c73b
mov cl, 0xe2
nop word cs:[rax + rax]
mov al, 0xac
lock cmpxchg byte [0x1405471b5], cl
je 0x14039c6bb
cmp al, 0x32
jne 0x14039c4d0
jmp 0x14039c73b
mov ecx, 0xae71f4eb
add ecx, dword [0x140548430]
mov eax, ecx
xor eax, ecx
not eax
and eax, esi
xor eax, ecx
mov ecx, edx
mov edx, eax
mov r8d, 0xe9b3e09c
call fcn.14039ea30
test al, 1
je 0x14039c636
movzx ecx, byte [0x140546ca4]
mov edx, esi
xor edx, 0xacb6ed7d
mov r8d, 0xc7afec60
add r8d, dword [0x140548430]
call fcn.14039ea80
test al, 1
jne 0x14039c86c
mov r14d, 0x238727be
mov r15d, esi
not r15d
lea rdi, [rsp + 0x40]
lea rbx, [rsp + 0x3f]
mov eax, r15d
and eax, 0xce1d0de2
mov ebp, esi
and ebp, 0x31e2f21d
or ebp, eax
nop word cs:[rax + rax]
mov r8d, dword [0x140548430]
add r8d, r14d
mov eax, r15d
and eax, r8d
not r8d
mov ecx, r15d
xor ecx, r8d
and ecx, r15d
xor r8d, esi
or r8d, eax
not r8d
or r8d, ecx
mov rcx, rdi
mov rdx, rbx
mov r9d, 0x7dd839d4
call fcn.14039dfc0
movzx r12d, byte [rsp + 0x3f]
movzx ecx, byte [rsp + 0x40]
movzx edx, byte [rsp + 0x41]
mov r8d, ebp
mov r9d, 0x995fcf39
call fcn.140126520
test al, 1
jne 0x14039c7ce
cmp r12b, 0x18
jne 0x14039c570
jmp 0x14039c86c
movzx eax, byte [0x140546f78]
cmp al, 0x83
je 0x14039c7c2
mov edi, esi
xor edi, 0x629a03eb
lea rbx, [rsp + 0x40]
mov ebp, esi
xor ebp, 0x2f39336e
nop
mov rcx, rbx
mov edx, edi
mov r8d, 0xa68faf79
call fcn.14039e710
cmp byte [rsp + 0x41], 0
jne 0x14039c747
movzx ecx, byte [rsp + 0x40]
mov edx, ebp
mov r8d, 0x893b6762
call fcn.14039e9c0
test al, 1
je 0x14039c600
jmp 0x14039c7c2
movzx eax, byte [0x1405474e5]
nop dword [rax]
cmp al, 0xef
je 0x14039c87d
movzx ecx, byte [0x140548434]
lea eax, [rcx + 2]
add cl, 0xb9
lock cmpxchg byte [0x1405474e5], cl
jne 0x14039c640
xor eax, eax
lea rcx, [0x1405474d0]
lea rdx, [0x14044f900]
nop
movzx r8d, byte [rax + rcx]
movzx r9d, byte [rax + rdx]
mov r10d, r9d
not r10b
mov r11d, r8d
and r11b, r10b
xor r10b, r8b
not r8b
mov ebx, r8d
xor bl, r9b
or r11b, bl
not r11b
and r8b, r9b
or r8b, r10b
not r8b
or r8b, r11b
mov byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0x14
jg 0x14039c875
inc rax
jmp 0x14039c670
xor eax, eax
xor esi, 0xdfb3a4d2
mov ebp, 0x94274db9
lea rdi, [rsp + 0x3f]
lea rbx, [rsp + 0x40]
lea r15, [0x14044f620]
lea r12, [0x1405471a0]
movsxd r14, eax
mov eax, dword [0x140548430]
add eax, ebp
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], esi
mov rcx, r14
mov edx, r14d
mov r8, rdi
mov r9, rbx
call fcn.14039ea90
mov rax, qword [rsp + 0x40]
movzx eax, byte [rax + r15]
mov ecx, eax
xor cl, al
not cl
and cl, byte [rsp + 0x3f]
xor cl, al
mov byte [r14 + r12], cl
lea eax, [r14 + r14]
sub eax, r14d
inc eax
cmp eax, 0x15
jl 0x14039c6e0
movzx eax, byte [0x140548434]
add al, 0x88
xchg byte [0x1405471b5], al
lea rax, [0x1405471a0]
jmp 0x14039c884
xor ecx, ecx
lea r15, [0x140546f70]
mov ebp, esi
xor ebp, 0x136ec80d
lea rdi, [rsp + 0x3f]
lea rbx, [rsp + 0x40]
xor esi, 0x914a4246
nop dword [rax + rax]
movsxd r14, ecx
lea rcx, [r15 + r14]
mov dword [rsp + 0x20], ebp
mov dword [rsp + 0x28], 0xc88767c9
mov edx, r14d
mov r8, rdi
mov r9, rbx
call fcn.14039e7a0
movzx ecx, byte [rsp + 0x3f]
mov rdx, qword [rsp + 0x40]
mov dword [rsp + 0x20], esi
mov dword [rsp + 0x28], 0xa6471899
mov r8d, r14d
mov r9, rbx
call fcn.14039e890
mov ecx, dword [rsp + 0x40]
test al, 1
je 0x14039c770
mov al, 0x83
xchg byte [0x140546f78], al
lea rax, [0x140546f70]
jmp 0x14039c884
xor ebp, ebp
mov edi, esi
xor edi, 0x3512d9cd
lea rbx, [rsp + 0x40]
lea r14, [0x140546ca0]
lea r15, [0x14044f150]
mov r12d, 0xe4bb0664
nop word cs:[rax + rax]
mov ecx, ebp
mov rdx, rbx
mov r8d, edi
mov r9d, 0x656d458e
call fcn.14011ab10
mov rax, qword [rsp + 0x40]
movzx eax, byte [rax + r14]
movsxd rcx, ebp
movzx edx, byte [rcx + r15]
mov r8d, eax
xor r8b, dl
and al, dl
add al, al
add al, r8b
mov byte [rcx + r14], al
mov eax, dword [0x140548430]
add eax, r12d
mov r8d, eax
xor r8d, eax
not r8d
and r8d, esi
xor r8d, eax
mov rdx, rbx
mov r9d, 0xc611dda1
call fcn.14039e8b0
mov ebp, dword [rsp + 0x40]
test al, 1
je 0x14039c800
mov al, 0x18
xchg byte [0x140546ca4], al
lea rax, [0x140546ca0]
jmp 0x14039c884
mov al, 0xef
xchg byte [0x1405474e5], al
lea rax, [0x1405474d0]
add rsp, 0x50
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret