Function at 0x203854d0
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 r13d, r9d
mov edi, dword [rsp + 0xb0]
test ecx, ecx
je 0x203855c6
test edx, edx
je 0x20385629
movzx eax, byte [0x205957c3]
movzx ecx, byte [0x205958e0]
mov edx, edi
or dl, 0x8a
mov r8d, edx
not r8b
mov r9d, edi
and r9b, 0x8a
or r8b, r9b
not r9b
and r9b, dl
or r9b, r8b
not r9b
or r9b, r8b
mov edx, r9d
xor dl, cl
and r9b, cl
add r9b, r9b
add r9b, dl
cmp al, r9b
je 0x2038585f
mov esi, r13d
xor esi, 0xc5dcd9a8
mov ebx, edi
xor ebx, 0xa693968e
nop word cs:[rax + rax]
movzx ecx, byte [0x205958e0]
mov eax, edi
not al
mov edx, edi
xor dl, 0x1b
and dl, al
and al, 0x92
mov r8d, edi
and r8b, 0x6d
or r8b, al
add r8b, 0x59
mov eax, r8d
xor al, 0x16
and r8b, 0x16
add r8b, r8b
add al, cl
add al, r8b
add al, 0x91
mov r8d, edi
and r8b, 0xe4
or r8b, dl
add r8b, cl
lock cmpxchg byte [0x205957c3], r8b
je 0x20385744
mov ecx, eax
mov edx, esi
mov r8d, ebx
call fcn.20385450
test al, 1
je 0x20385560
jmp 0x2038585f
test edx, edx
je 0x203856c2
mov eax, r13d
not eax
and eax, 0x29002fed
mov ecx, r13d
xor ecx, 0xd6ffd012
or ecx, eax
not ecx
or ecx, eax
mov eax, edi
not eax
mov edx, edi
xor edx, 0x9e141ce6
and eax, 0x61ebe319
or edx, eax
not edx
or edx, eax
call fcn.203852f0
test al, 1
jne 0x20385905
mov cl, 0xd1
nop dword [rax]
mov al, 5
lock cmpxchg byte [0x2059572f], cl
je 0x2038586b
cmp al, 0xf7
jne 0x20385610
jmp 0x20385905
movzx eax, byte [0x205957df]
cmp al, 0x3c
je 0x203856b6
movzx ecx, byte [0x205958e0]
mov eax, edi
xor al, 0x53
add al, cl
mov edx, edi
xor dl, 0x8b
add dl, cl
lock cmpxchg byte [0x205957df], dl
jne 0x20385630
xor edx, edx
lea rax, [0x205957d0]
lea rcx, [0x20490d20]
nop word cs:[rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
mov r9d, r8d
xor r9b, r8b
not r9b
and r9b, byte [rdx + rax]
xor r9b, r8b
mov byte [rdx + rax], r9b
mov r8d, edx
xor r8d, 1
and edx, 1
lea edx, [r8 + rdx*2]
cmp edx, 0xf
jl 0x20385670
xor r13d, 0x1e972c7c
xor edi, 0x1ec635b8
mov ecx, r13d
mov edx, edi
call fcn.203853e0
lea rax, [0x205957d0]
jmp 0x20385a67
movzx eax, byte [0x2059581d]
cmp al, 0x48
je 0x20385a60
mov esi, r13d
xor esi, 0xc8789ee6
mov ecx, edi
not ecx
mov eax, edi
and eax, 0x4e825714
mov ebp, ecx
and ecx, 0xb17da8eb
lea edx, [rax + rcx]
xor edx, 0xb17da8eb
xor eax, 0x4e825714
or eax, edx
not eax
mov ebx, edi
xor ebx, 0x4e825714
or ebx, ecx
not ebx
or ebx, eax
lea r14, [rsp + 0x30]
nop word cs:[rax + rax]
mov rcx, r14
mov edx, esi
mov r8d, ebx
call fcn.20385310
cmp byte [rsp + 0x31], 0
jne 0x20385911
cmp byte [rsp + 0x30], 0x48
jne 0x20385720
jmp 0x20385a60
xor eax, eax
lea r14, [0x205957a0]
mov edx, r13d
not edx
mov ecx, r13d
xor ecx, 0x220e42f4
mov dword [rsp + 0x38], edx
and edx, 0xddf1bd0b
or edx, ecx
not edx
or edx, ecx
not edx
mov dword [rsp + 0x3c], r13d
mov ebx, r13d
and ebx, 0x220e42f4
or ebx, edx
mov r15d, edi
not r15d
mov ecx, r15d
and ecx, 0x299ee136
mov r12d, edi
and r12d, 0xd6611ec9
mov edx, ecx
not edx
or ecx, r12d
not r12d
and r12d, edx
or r12d, ecx
not r12d
or r12d, ecx
lea rsi, [rsp + 0x30]
lea r13, [0x20490cf0]
nop dword [rax + rax]
movsxd rbp, eax
lea rcx, [r14 + rbp]
mov eax, dword [0x205958d0]
add eax, r12d
mov r9d, r15d
xor r9d, edi
and r9d, eax
xor r9d, edi
mov rdx, rsi
mov r8d, ebx
call fcn.203853f0
movzx eax, byte [rsp + 0x30]
xor al, byte [rbp + r13]
mov byte [rbp + r14], al
mov eax, ebp
not eax
mov ecx, eax
and ecx, 1
mov edx, ebp
and edx, 0x7ffffffe
or edx, ecx
and eax, 0x7ffffffe
or eax, edx
not eax
add eax, eax
mov ecx, ebp
xor ecx, eax
xor ecx, 1
xor ebp, 0x7ffffffe
not eax
and eax, ebp
or eax, ecx
not eax
lea eax, [rcx + rax*2]
cmp eax, 0x23
jl 0x203857c0
mov eax, edi
xor eax, 0xc94b3611
add eax, dword [0x205958d0]
not eax
mov ecx, dword [rsp + 0x38]
mov edx, ecx
xor edx, eax
and edx, ecx
mov ecx, dword [rsp + 0x3c]
and ecx, eax
or ecx, edx
xor edi, 0xe8d43b73
mov edx, edi
call fcn.203853d0
lea rax, [0x205957a0]
jmp 0x20385a67
xor esi, esi
xor r13d, 0x621cdba2
mov ebx, edi
xor ebx, 0x2b7d362a
lea r14, [rsp + 0x30]
lea r15, [0x20595720]
lea r12, [0x20490c80]
mov ebp, edi
xor ebp, 0x799b3c23
xor edi, 0x664c3dc
nop dword [rax]
mov ecx, esi
mov rdx, r14
mov r8d, r13d
mov r9d, ebx
call fcn.20135500
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + r15]
movzx ecx, byte [rsi + r12]
not al
not cl
mov edx, eax
xor dl, cl
or cl, al
and cl, dl
mov byte [rsi + r15], cl
lea eax, [rsi + 1]
mov ecx, dword [0x205958d0]
mov edx, ebp
xor edx, ecx
not ecx
mov r8d, ebp
xor r8d, ecx
not r8d
and r8d, edi
or r8d, ecx
not r8d
lea ecx, [rdx + r8*2]
cmp eax, ecx
jge 0x203858fd
inc rsi
jmp 0x203858a0
mov al, 0xf7
xchg byte [0x2059572f], al
lea rax, [0x20595720]
jmp 0x20385a67
mov ebx, 1
mov eax, r13d
not eax
mov ecx, eax
and ecx, 0xc5052892
mov edx, r13d
xor edx, 0x3afad76d
or edx, ecx
not edx
or edx, ecx
mov dword [rsp + 0x3c], edx
mov ecx, edi
and ecx, 0xdf7d8d2c
mov r14d, ebp
mov edx, ebp
and edx, 0x208272d3
or ecx, edx
and ecx, ebp
mov r9d, edi
xor r9d, 0xdf7d8d2c
or r9d, edx
not r9d
or r9d, ecx
mov dword [rsp + 0x38], r9d
lea r15, [rsp + 0x30]
mov ecx, eax
and ecx, 0xff952bc0
mov edx, r13d
and edx, 0x6ad43f
or edx, ecx
mov dword [rsp + 0x44], edx
mov ecx, edi
xor ecx, 0x2d1d29f8
mov dword [rsp + 0x40], ecx
mov ecx, eax
and ecx, 0x333097b1
mov esi, r13d
and esi, 0xcccf684e
or esi, ecx
mov ecx, ebp
and ecx, 0xc992599e
mov r12d, r13d
mov r13d, edi
and r13d, 0x366da661
or r13d, ecx
and eax, 0x793cb322
xor r12d, 0x86c34cdd
or r12d, eax
not r12d
or r12d, eax
and r14d, 0xba5caec7
nop word cs:[rax + rax]
lea ebp, [rbx - 1]
mov ecx, ebp
mov rdx, r15
mov r8d, dword [rsp + 0x3c]
mov r9d, dword [rsp + 0x38]
call fcn.20385a80
mov rcx, qword [rsp + 0x30]
mov rdx, r15
mov r8d, dword [rsp + 0x44]
mov r9d, dword [rsp + 0x40]
call fcn.201294f0
movzx edx, byte [rsp + 0x30]
movsxd rbp, ebp
mov dword [rsp + 0x20], r13d
mov rcx, rbp
mov r8, r15
mov r9d, esi
call fcn.20385440
movzx eax, byte [rsp + 0x30]
lea rcx, [0x20595810]
mov byte [rbp + rcx], al
mov r8d, edi
and r8d, 0x45a35138
or r8d, r14d
mov ecx, ebx
mov edx, r12d
call fcn.201f5d70
test al, 1
jne 0x20385a58
inc ebx
jmp 0x203859e0
mov al, 0x48
xchg byte [0x2059581d], al
lea rax, [0x20595810]
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret