Function at 0x1403f7230
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rbx
mov r8d, dword [rsp + 0x38]
test ecx, ecx
je 0x1403f7269
test edx, edx
je 0x1403f72b5
movzx eax, byte [0x1405bb0e3]
cmp al, 3
je 0x1403f74af
mov cl, 0x5f
mov al, 0x71
lock cmpxchg byte [0x1405bb0e3], cl
je 0x1403f73fc
cmp al, 3
jne 0x1403f7250
jmp 0x1403f74af
test edx, edx
je 0x1403f737d
movzx eax, byte [0x1405bb778]
cmp al, 0xc9
je 0x1403f7530
mov cl, 0x75
nop word cs:[rax + rax]
mov al, 0xa9
lock cmpxchg byte [0x1405bb778], cl
je 0x1403f74bb
mov edx, r8d
xor dl, 0xd4
add dl, byte [0x1405bc3bc]
cmp al, dl
jne 0x1403f7290
jmp 0x1403f7530
movzx eax, byte [0x1405bb00d]
mov ecx, r8d
not cl
mov edx, r8d
xor dl, 0x3a
and cl, 0xc5
or dl, cl
not dl
or dl, cl
add dl, byte [0x1405bc3bc]
cmp al, dl
je 0x1403f7541
nop
movzx ecx, byte [0x1405bc3bc]
mov eax, r8d
xor al, 0x63
mov edx, ecx
neg dl
add al, cl
mov r9d, r8d
xor r9b, 0x90
mov r10d, r9d
neg r10b
dec r9b
dec cl
and r9b, dl
and cl, r10b
or cl, r9b
and r10b, dl
add r10b, r10b
mov edx, ecx
xor dl, r10b
and r10b, cl
add r10b, r10b
add r10b, dl
neg r10b
lock cmpxchg byte [0x1405bb00d], r10b
je 0x1403f74f8
movzx ecx, byte [0x1405bc3bc]
mov edx, r8d
xor dl, 0xc5
mov r9d, r8d
xor r9b, 0x3a
mov r10d, ecx
not r10b
mov r11d, r10d
xor r11b, r9b
and r11b, cl
mov ebx, edx
and bl, r10b
or bl, r11b
xor dl, cl
and r10b, r9b
or r10b, dl
not r10b
add r10b, r10b
add r10b, bl
cmp al, r10b
jne 0x1403f72e0
jmp 0x1403f7541
movzx eax, byte [0x1405bb3c9]
nop word cs:[rax + rax]
cmp al, 0x87
je 0x1403f755c
movzx ecx, byte [0x1405bc3bc]
mov eax, r8d
xor al, 0xfb
add al, cl
mov edx, r8d
xor dl, 0xc
mov r9d, r8d
xor r9b, 0x71
and dl, 0x6c
add dl, dl
add dl, r9b
add dl, cl
add dl, 0x94
lock cmpxchg byte [0x1405bb3c9], dl
jne 0x1403f7390
xor eax, eax
lea rcx, [0x1405bb3c0]
lea rdx, [0x1404b1030]
nop word [rax + rax]
movzx r9d, byte [rax + rdx]
add byte [rax + rcx], r9b
lea r9d, [rax + 1]
cmp r9d, 8
jg 0x1403f754a
inc rax
jmp 0x1403f73e0
xor edx, edx
lea rax, [0x1405bb0d0]
lea rcx, [0x1404b0d60]
nop dword [rax]
movsxd rdx, edx
movzx r9d, byte [rdx + rax]
movzx r10d, byte [rdx + rcx]
mov r11d, r9d
not r11b
mov ebx, r11d
mov esi, r11d
xor sil, r10b
and r11b, r10b
not r10b
xor bl, r10b
and bl, r10b
or bl, sil
not bl
xor r10b, r9b
or r11b, r10b
not r11b
or r11b, bl
mov byte [rdx + rax], r11b
add edx, 0xa6db784f
mov r9d, edx
xor r9d, 0x592487b2
and edx, 0x592487b2
lea edx, [r9 + rdx*2]
cmp edx, 0x13
jl 0x1403f7410
movzx eax, byte [0x1405bc3bc]
mov ecx, r8d
xor cl, 0xe
xor r8b, 0xf1
mov edx, r8d
and dl, al
mov r9d, ecx
xor cl, al
not al
and r9b, al
or r9b, dl
xor al, r8b
not al
and al, r8b
or al, cl
not al
add al, al
mov ecx, r9d
xor cl, al
and al, r9b
add al, al
add al, cl
xchg byte [0x1405bb0e3], al
lea rax, [0x1405bb0d0]
jmp 0x1403f7563
xor eax, eax
lea rcx, [0x1405bb760]
lea rdx, [0x1404b1380]
nop dword [rax + rax]
movzx r8d, byte [rax + rdx]
mov r9d, r8d
xor r9b, r8b
not r9b
and r9b, byte [rax + rcx]
xor r9b, r8b
mov byte [rax + rcx], r9b
lea r8d, [rax + 1]
cmp r8d, 0x17
jg 0x1403f7528
inc rax
jmp 0x1403f74d0
xor eax, eax
lea rcx, [0x1405bb000]
lea rdx, [0x1404b0ca0]
nop dword [rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xc
jg 0x1403f7539
inc rax
jmp 0x1403f7510
mov al, 0xc9
xchg byte [0x1405bb778], al
lea rax, [0x1405bb760]
jmp 0x1403f7563
mov al, 0xb8
xchg byte [0x1405bb00d], al
lea rax, [0x1405bb000]
jmp 0x1403f7563
xor r8b, 0x92
add r8b, byte [0x1405bc3bc]
xchg byte [0x1405bb3c9], r8b
lea rax, [0x1405bb3c0]
pop rbx
pop rsi
ret