Function at 0x203bd520
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
mov eax, edx
mov edx, r9d
test ecx, ecx
je 0x203bd598
xor edx, 0x18b35884
mov ecx, eax
mov r8d, 0xff1e433
call fcn.2008e940
test al, 1
je 0x203bd5e9
movzx eax, byte [0x2059d92c]
cmp al, 0xb2
je 0x203bd767
mov bl, 0xfe
mov edi, esi
xor edi, 0x7fb1aaf5
nop
mov al, 0xf2
lock cmpxchg byte [0x2059d92c], bl
je 0x203bd689
mov ecx, eax
mov edx, edi
mov r8d, 0x8b097c96
call fcn.203be190
test al, 1
je 0x203bd570
jmp 0x203bd767
xor edx, 0xe32b5b19
mov ecx, eax
mov r8d, 0x27cc4719
call fcn.2008e940
test al, 1
je 0x203bd650
movzx eax, byte [0x2059d96d]
cmp al, 0xcf
je 0x203bd82f
mov cl, 9
nop word cs:[rax + rax]
mov al, 0xf7
lock cmpxchg byte [0x2059d96d], cl
je 0x203bd773
cmp al, 0xcf
jne 0x203bd5d0
jmp 0x203bd82f
movzx eax, byte [0x2059d901]
cmp al, 0x43
je 0x203bd753
mov edi, 0x3bb3074
mov ebx, esi
not ebx
nop word cs:[rax + rax]
movzx eax, byte [0x2059dc8c]
lea ecx, [rax - 2]
lock cmpxchg byte [0x2059d901], cl
je 0x203bd710
mov edx, dword [0x2059dc88]
add edx, edi
mov ecx, ebx
and ecx, edx
or edx, ebx
not edx
or edx, ecx
mov ecx, eax
mov r8d, 0x8815b898
call fcn.203bde20
test al, 1
je 0x203bd610
jmp 0x203bd753
movzx eax, byte [0x2059d870]
cmp al, 0x14
je 0x203bd814
mov cl, 0x71
nop word cs:[rax + rax]
mov al, 0xd5
lock cmpxchg byte [0x2059d870], cl
je 0x203bd7c2
cmp al, 0x14
jne 0x203bd670
jmp 0x203bd814
xor edi, edi
mov ebp, esi
xor ebp, 0xe7eddb59
lea rbx, [rsp + 0x47]
lea r14, [rsp + 0x48]
xor esi, 0x62c8d6a8
mov r15d, 0x203e7d02
nop dword [rax]
mov dword [rsp + 0x20], ebp
mov dword [rsp + 0x28], 0x1c6fa923
mov rcx, rdi
mov edx, edi
mov r8, rbx
mov r9, r14
call fcn.203be130
movzx edx, byte [rsp + 0x47]
mov rcx, qword [rsp + 0x48]
mov eax, dword [0x2059dc88]
add eax, r15d
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], r14
mov r8d, edi
mov r9, rbx
call fcn.203be1a0
movzx eax, byte [rsp + 0x47]
mov rcx, qword [rsp + 0x48]
mov byte [rcx], al
lea eax, [rdi + 1]
cmp eax, 0xb
jg 0x203bd75f
inc rdi
jmp 0x203bd6b0
xor edx, edx
lea rax, [0x2059d8f0]
lea rcx, [0x20493860]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
add byte [rdx + rax], r8b
mov r8d, dword [0x2059dc88]
add edx, r8d
add edx, 0x85693da2
cmp edx, 0x11
jl 0x203bd720
xor esi, 0x76852b49
mov ecx, esi
mov edx, 0x6e4eb936
call fcn.203be150
lea rax, [0x2059d8f0]
jmp 0x203bd836
mov al, 0xb2
xchg byte [0x2059d92c], al
lea rax, [0x2059d920]
jmp 0x203bd836
xor edi, edi
mov ebx, esi
xor ebx, 0x58ae07e2
lea r14, [rsp + 0x48]
lea r15, [0x2059d960]
lea r12, [0x204938d0]
mov ecx, edi
mov rdx, r14
mov r8d, ebx
mov r9d, 0x364957dd
call fcn.20135500
mov rax, qword [rsp + 0x48]
movzx eax, byte [rax + r15]
add al, byte [rdi + r12]
mov byte [rdi + r15], al
lea eax, [rdi + 1]
cmp eax, 0xc
jg 0x203bd81d
inc rdi
jmp 0x203bd790
xor ecx, ecx
lea rbx, [0x2059d860]
lea r14, [0x204937e0]
xor esi, 0x29b56aa8
lea rdi, [rsp + 0x48]
nop dword [rax]
movsxd r8, ecx
lea rdx, [rbx + r8]
movzx ecx, byte [r8 + rbx]
xor cl, byte [r8 + r14]
mov dword [rsp + 0x20], esi
mov dword [rsp + 0x28], 0xe452405
mov r9, rdi
call fcn.203bda40
mov ecx, dword [rsp + 0x48]
test al, 1
je 0x203bd7e0
mov al, 0x14
xchg byte [0x2059d870], al
lea rax, [0x2059d860]
jmp 0x203bd836
xor esi, 0x14680ced
mov ecx, esi
mov edx, 0xe7e9e02f
call fcn.203bdb90
lea rax, [0x2059d960]
add rsp, 0x50
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret