Function at 0x203d78d0
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 0x203d7929
test edx, edx
je 0x203d7981
movzx ecx, byte [0x2059dff1]
mov edx, esi
xor edx, 0x2d7868c6
call fcn.202700e0
test al, 1
jne 0x203d7ad1
mov cl, 0x96
nop dword [rax]
mov al, 0x11
lock cmpxchg byte [0x2059dff1], cl
je 0x203d7a14
cmp al, 0x5b
jne 0x203d7910
jmp 0x203d7ad1
mov eax, esi
xor eax, 0xfcac9bae
mov ecx, edx
mov edx, eax
call fcn.203d5d60
test al, 1
je 0x203d79b9
movzx eax, byte [0x2059dd44]
cmp al, 0x6a
je 0x203d7bfd
xor esi, 0x87a230d5
lea rdi, [rsp + 0x30]
nop word [rax + rax]
mov rcx, rdi
mov edx, esi
call fcn.203d8200
cmp byte [rsp + 0x31], 0
jne 0x203d7b32
cmp byte [rsp + 0x30], 0x6a
jne 0x203d7960
jmp 0x203d7bfd
movzx ecx, byte [0x2059dd89]
mov edx, esi
xor edx, 0xbad22f48
call fcn.203d9660
test al, 1
jne 0x203d7b26
mov cl, 0xdf
nop
mov al, 0x61
lock cmpxchg byte [0x2059dd89], cl
je 0x203d7add
cmp al, 0x69
jne 0x203d79a0
jmp 0x203d7b26
movzx ecx, byte [0x2059e746]
mov edx, esi
xor edx, 0x7b6c2c71
call fcn.203d8220
test al, 1
jne 0x203d7bec
mov bpl, 0xa1
mov edi, esi
xor edi, 0xe954ed31
mov al, 0xd8
lock cmpxchg byte [0x2059e746], bpl
mov ebx, eax
sete dl
mov ecx, eax
mov r8d, edi
call fcn.201f7e30
test al, 1
jne 0x203d7b6c
movzx eax, byte [0x2059f3bc]
add al, 0x9c
cmp bl, al
jne 0x203d79e0
jmp 0x203d7bec
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, [0x20493c80]
mov r14d, 0x1e5b51c7
nop dword [rax + rax]
mov ecx, ebp
mov rdx, rbx
mov r8d, edi
call fcn.20135500
mov rcx, qword [rsp + 0x30]
mov dword [rsp + 0x20], r12d
mov edx, ebp
lea r8, [rsp + 0x2f]
mov r9, rbx
call fcn.203d49a0
movzx edx, byte [rsp + 0x2f]
mov rax, qword [rsp + 0x30]
add dl, byte [rax + r13]
mov eax, dword [0x2059f3b8]
add eax, r14d
mov r9d, r15d
xor r9d, esi
and r9d, eax
xor r9d, esi
mov ecx, ebp
mov r8, rbx
call fcn.203d78b0
mov ebp, dword [rsp + 0x30]
mov eax, dword [0x2059f3b8]
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 0x203d7a50
mov al, 0x5b
xchg byte [0x2059dff1], al
lea rax, [0x2059dfe0]
jmp 0x203d7c04
xor ecx, ecx
lea rbx, [0x2059dd80]
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.203d5da0
mov ecx, dword [rsp + 0x30]
test al, 1
je 0x203d7b00
mov al, 0x69
xchg byte [0x2059dd89], al
lea rax, [0x2059dd80]
jmp 0x203d7c04
xor eax, eax
lea rcx, [0x2059dd40]
lea rdx, [0x204939f0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 3
jg 0x203d7bf5
inc rax
jmp 0x203d7b50
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.203d7050
movzx edx, byte [rsp + 0x30]
mov ecx, r14d
mov r8d, esi
call fcn.203d9650
mov eax, dword [0x2059f3b8]
add eax, ebp
mov ecx, eax
xor ecx, 0xdeed8c45
and eax, 0x5eed8c45
lea eax, [rcx + rax*2]
add eax, r14d
cmp eax, 6
jl 0x203d7ba0
mov al, 0xf0
xchg byte [0x2059e746], al
lea rax, [0x2059e740]
jmp 0x203d7c04
mov al, 0x6a
xchg byte [0x2059dd44], al
lea rax, [0x2059dd40]
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret