Function at 0x1403f48d0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov esi, r9d
test ecx, ecx
je 0x1403f4929
test edx, edx
je 0x1403f4981
movzx ecx, byte [0x1405baff1]
mov edx, esi
xor edx, 0x2d7868c6
call fcn.14028d0e0
test al, 1
jne 0x1403f4ad1
mov cl, 0x96
nop dword [rax]
mov al, 0x11
lock cmpxchg byte [0x1405baff1], cl
je 0x1403f4a14
cmp al, 0x5b
jne 0x1403f4910
jmp 0x1403f4ad1
mov eax, esi
xor eax, 0xfcac9bae
mov ecx, edx
mov edx, eax
call fcn.1403f2d60
test al, 1
je 0x1403f49b9
movzx eax, byte [0x1405bad44]
cmp al, 0x6a
je 0x1403f4bfd
xor esi, 0x87a230d5
lea rdi, [rsp + 0x30]
nop word [rax + rax]
mov rcx, rdi
mov edx, esi
call fcn.1403f5200
cmp byte [rsp + 0x31], 0
jne 0x1403f4b32
cmp byte [rsp + 0x30], 0x6a
jne 0x1403f4960
jmp 0x1403f4bfd
movzx ecx, byte [0x1405bad89]
mov edx, esi
xor edx, 0xbad22f48
call fcn.1403f6660
test al, 1
jne 0x1403f4b26
mov cl, 0xdf
nop
mov al, 0x61
lock cmpxchg byte [0x1405bad89], cl
je 0x1403f4add
cmp al, 0x69
jne 0x1403f49a0
jmp 0x1403f4b26
movzx ecx, byte [0x1405bb746]
mov edx, esi
xor edx, 0x7b6c2c71
call fcn.1403f5220
test al, 1
jne 0x1403f4bec
mov bpl, 0xa1
mov edi, esi
xor edi, 0xe954ed31
mov al, 0xd8
lock cmpxchg byte [0x1405bb746], bpl
mov ebx, eax
sete dl
mov ecx, eax
mov r8d, edi
call fcn.140214e30
test al, 1
jne 0x1403f4b6c
movzx eax, byte [0x1405bc3bc]
add al, 0x9c
cmp bl, al
jne 0x1403f49e0
jmp 0x1403f4bec
xor ebp, ebp
mov edi, esi
xor edi, 0x41f1e985
lea rbx, [rsp + 0x30]
mov r15d, esi
not r15d
mov eax, r15d
and eax, 0x5597a7aa
mov r12d, esi
and r12d, 0xaa685855
or r12d, eax
lea r13, [0x1404b0c80]
mov r14d, 0x1e5b51c7
nop dword [rax + rax]
mov ecx, ebp
mov rdx, rbx
mov r8d, edi
call fcn.140152500
mov rcx, qword [rsp + 0x30]
mov dword [rsp + 0x20], r12d
mov edx, ebp
lea r8, [rsp + 0x2f]
mov r9, rbx
call fcn.1403f19a0
movzx edx, byte [rsp + 0x2f]
mov rax, qword [rsp + 0x30]
add dl, byte [rax + r13]
mov eax, dword [0x1405bc3b8]
add eax, r14d
mov r9d, r15d
xor r9d, esi
and r9d, eax
xor r9d, esi
mov ecx, ebp
mov r8, rbx
call fcn.1403f48b0
mov ebp, dword [rsp + 0x30]
mov eax, dword [0x1405bc3b8]
mov ecx, eax
xor ecx, 0xac65a44f
and eax, 0x2c65a44f
add eax, eax
mov edx, ecx
xor edx, eax
and eax, ecx
lea eax, [rdx + rax*2]
cmp ebp, eax
jl 0x1403f4a50
mov al, 0x5b
xchg byte [0x1405baff1], al
lea rax, [0x1405bafe0]
jmp 0x1403f4c04
xor ecx, ecx
lea rbx, [0x1405bad80]
xor esi, 0x8774433f
lea rdi, [rsp + 0x30]
nop word cs:[rax + rax]
movsxd rcx, ecx
movzx edx, byte [rcx + rbx]
mov dword [rsp + 0x20], esi
mov r8d, ecx
mov r9, rdi
call fcn.1403f2da0
mov ecx, dword [rsp + 0x30]
test al, 1
je 0x1403f4b00
mov al, 0x69
xchg byte [0x1405bad89], al
lea rax, [0x1405bad80]
jmp 0x1403f4c04
xor eax, eax
lea rcx, [0x1405bad40]
lea rdx, [0x1404b09f0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 3
jg 0x1403f4bf5
inc rax
jmp 0x1403f4b50
xor eax, eax
mov edi, esi
xor edi, 0x51c6e00e
lea rbx, [rsp + 0x30]
mov ecx, esi
not ecx
xor esi, 0x693e4efc
and ecx, 0x96c1b103
or esi, ecx
not esi
or esi, ecx
mov ebp, 0xcd7817fa
nop word cs:[rax + rax]
movsxd r14, eax
mov rcx, r14
mov edx, r14d
mov r8, rbx
mov r9d, edi
call fcn.1403f4050
movzx edx, byte [rsp + 0x30]
mov ecx, r14d
mov r8d, esi
call fcn.1403f6650
mov eax, dword [0x1405bc3b8]
add eax, ebp
mov ecx, eax
xor ecx, 0xdeed8c45
and eax, 0x5eed8c45
lea eax, [rcx + rax*2]
add eax, r14d
cmp eax, 6
jl 0x1403f4ba0
mov al, 0xf0
xchg byte [0x1405bb746], al
lea rax, [0x1405bb740]
jmp 0x1403f4c04
mov al, 0x6a
xchg byte [0x1405bad44], al
lea rax, [0x1405bad40]
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret