Function at 0x1403f4070
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, r9d
test ecx, ecx
je 0x1403f40b9
test edx, edx
je 0x1403f40e9
movzx eax, byte [0x1405bb139]
cmp al, 0x37
je 0x1403f423b
mov cl, 0xd
nop dword [rax]
mov al, 0x15
lock cmpxchg byte [0x1405bb139], cl
je 0x1403f418c
cmp al, 0x37
jne 0x1403f40a0
jmp 0x1403f423b
test edx, edx
je 0x1403f4138
movzx eax, byte [0x1405bb11d]
cmp al, 0x86
je 0x1403f42ac
mov cl, 0xd3
nop
mov al, 0xb7
lock cmpxchg byte [0x1405bb11d], cl
je 0x1403f4247
cmp al, 0x86
jne 0x1403f40d0
jmp 0x1403f42ac
movzx eax, byte [0x1405baf9a]
cmp al, 0xb9
je 0x1403f4311
mov bl, 0x3d
mov edi, esi
xor edi, 0x5d55feae
nop word cs:[rax + rax]
mov al, 0x3b
lock cmpxchg byte [0x1405baf9a], bl
je 0x1403f42b8
mov ecx, eax
mov edx, edi
mov r8d, 0x6e609cd0
call fcn.1403f77c0
test al, 1
je 0x1403f4110
jmp 0x1403f4311
movzx eax, byte [0x1405bb365]
cmp al, 0xcd
je 0x1403f4375
mov ebx, 0xfbf02df
lea rdi, [rsp + 0x40]
nop word cs:[rax + rax]
mov edx, dword [0x1405bc3b8]
add edx, ebx
xor edx, esi
mov rcx, rdi
mov r8d, 0xab8c849b
call fcn.1403f7f70
test al, 1
jne 0x1403f431a
cmp byte [rsp + 0x40], 0xcd
jne 0x1403f4160
jmp 0x1403f4375
xor eax, eax
lea r15, [0x1405bb130]
mov ebp, esi
not ebp
mov ecx, ebp
and ecx, 0xe6c31661
mov r13d, esi
and r13d, 0x193ce99e
or r13d, ecx
lea rdi, [rsp + 0x40]
lea rbx, [rsp + 0x3f]
mov r12d, 0x85203d98
nop
movsxd r14, eax
movzx edx, byte [r14 + r15]
lea rax, [0x1404b0db0]
lea rcx, [rax + r14]
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], rdi
mov dword [rsp + 0x30], 0xec067d7b
mov r8d, r14d
mov r9, rbx
call fcn.1402af690
movzx ecx, byte [rsp + 0x3f]
mov rdx, qword [rsp + 0x40]
add rdx, r15
mov eax, dword [0x1405bc3b8]
add eax, r12d
mov r8d, ebp
xor r8d, esi
and r8d, eax
xor r8d, esi
mov dword [rsp + 0x20], r8d
mov dword [rsp + 0x28], 0xec325cb5
mov r8d, r14d
mov r9, rdi
call fcn.140277ad0
mov eax, dword [rsp + 0x40]
cmp eax, 9
jl 0x1403f41c0
mov al, 0x37
xchg byte [0x1405bb139], al
lea rax, [0x1405bb130]
jmp 0x1403f437c
xor ecx, ecx
lea rbx, [0x1405bb110]
lea r14, [0x1404b0d90]
mov ebp, 0x37d7c638
lea rdi, [rsp + 0x40]
nop word cs:[rax + rax]
movsxd rcx, ecx
movzx edx, byte [rcx + rbx]
add dl, byte [rcx + r14]
mov eax, dword [0x1405bc3b8]
add eax, ebp
xor eax, esi
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x28], 0xf2a9fa35
mov r8d, ecx
mov r9, rdi
call fcn.1403f8130
mov ecx, dword [rsp + 0x40]
test al, 1
je 0x1403f4270
mov al, 0x86
xchg byte [0x1405bb11d], al
lea rax, [0x1405bb110]
jmp 0x1403f437c
xor edi, edi
lea r15, [0x1405baf70]
mov ebx, esi
xor ebx, 0x7c793fe4
lea r14, [rsp + 0x40]
nop
lea rcx, [r15 + rdi]
mov dword [rsp + 0x20], 0x50dc98fc
mov edx, edi
mov r8, r14
mov r9d, ebx
call fcn.1403f7dd0
movzx eax, byte [rsp + 0x40]
mov byte [rdi + r15], al
lea eax, [rdi + 1]
cmp eax, 0x29
jg 0x1403f42ff
inc rdi
jmp 0x1403f42d0
xor esi, 0xe8ca4945
mov ecx, esi
mov edx, 0x4e928302
call fcn.1403f8350
lea rax, [0x1405baf70]
jmp 0x1403f437c
xor edi, edi
lea rbx, [0x1405bb350]
lea r14, [0x1404b0fd0]
xor esi, 0x91acf4e3
mov ebp, 0xac65a453
nop word cs:[rax + rax]
movzx edx, byte [rdi + rbx]
xor dl, byte [rdi + r14]
mov rcx, rdi
mov r8d, esi
mov r9d, 0x1ec57c4e
call fcn.1403f7900
lea eax, [rdi + 1]
mov ecx, dword [0x1405bc3b8]
add ecx, ebp
cmp eax, ecx
jge 0x1403f436d
inc rdi
jmp 0x1403f4340
mov al, 0xcd
xchg byte [0x1405bb365], al
lea rax, [0x1405bb350]
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret