Function at 0x203e0e50
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov rsi, rdx
mov eax, ecx
and eax, 0xf
cmp eax, 5
jae 0x203e0e8a
cmp eax, 1
ja 0x203e0eb2
test eax, eax
je 0x203e0f69
mov rcx, r8
call fcn.20421e38
xor r11d, r11d
jmp 0x203e14ed
cmp eax, 8
jb 0x203e0ee9
jne 0x203e0f25
test r9d, r9d
je 0x203e1093
mov edx, dword [0x205da410]
test cl, 0x40
jne 0x203e14e6
jmp 0x203e11d6
cmp eax, 2
je 0x203e0f9a
cmp eax, 4
jne 0x203e1009
movzx eax, byte [0x205da375]
cmp al, 0x96
je 0x203e14e6
mov r14, rsi
mov r15, r8
mov qword [rsp + 0x28], r9
mov eax, esi
mov dword [rsp + 0x24], esi
jmp 0x203e13f6
mov edx, esi
mov dword [rsp + 0x24], esi
cmp eax, 7
je 0x203e0fcb
cmp eax, 5
jne 0x203e1038
mov rax, qword [r9 + 8]
mov rcx, qword [r8 + 8]
cmp rcx, qword [rax + 8]
sete al
mov ecx, dword [rsp + 0x24]
cmp dword [r9], ecx
sete cl
and cl, al
movzx r11d, cl
jmp 0x203e14ed
cmp eax, 9
jbe 0x203e1063
movzx eax, byte [0x205da335]
lea r11, [0x205da320]
cmp al, 0xaf
je 0x203e14ed
mov dl, 0x97
nop word cs:[rax + rax]
mov al, 0xb1
lock cmpxchg byte [0x205da335], dl
je 0x203e109c
cmp al, 0xaf
jne 0x203e0f50
jmp 0x203e14ed
movzx eax, byte [0x205da356]
cmp al, 6
je 0x203e12e3
test ecx, 0x1000
je 0x203e13b5
mov r14, rsi
mov r15, r8
mov qword [rsp + 0x28], r9
mov eax, esi
mov dword [rsp + 0x24], esi
jmp 0x203e11fe
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x48], r9
cmp r9, r8
jae 0x203e151a
xor eax, eax
test cl, 0x40
jne 0x203e1501
mov r12b, 1
lea r13, [rsp + 0x30]
mov edx, esi
mov dword [rsp + 0x24], esi
jmp 0x203e12ef
movzx eax, byte [0x205da389]
lea r11, [0x205da380]
cmp al, 0x4e
je 0x203e14ed
mov dl, 0x12
nop word cs:[rax + rax]
mov al, 0xc1
lock cmpxchg byte [0x205da389], dl
je 0x203e1154
cmp al, 0x4e
jne 0x203e0ff0
jmp 0x203e14ed
mov qword [rsp + 0x30], 0
test cl, 0x20
jne 0x203e1129
lea r13, [rsp + 0x48]
xor r12d, r12d
mov eax, esi
mov dword [rsp + 0x24], esi
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x40], r8
jmp 0x203e12f3
mov r13, qword [rsi + 8]
test r13, r13
sete r12b
movzx eax, byte [0x205da312]
cmp al, 0xf9
je 0x203e11ee
test ecx, 0x800
je 0x203e151f
jmp 0x203e12f3
mov qword [rsp + 0x30], 0
mov ecx, 0x2f13ddb3
mov r14, r9
mov r15, rsi
mov qword [rsp + 0x28], r8
mov eax, r9d
mov dword [rsp + 0x24], r9d
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x40], rsi
jmp 0x203e1390
test cl, 0x20
jne 0x203e114c
mov r10d, 0xf91cf0d2
lea r14, [0x20496c70]
mov r15d, 0xf91cf0d4
add r15, r14
lea rdi, [r10 + 2]
xor r12d, r12d
movabs r13, 0x2e8ba2e8ba2e8ba3
lea r11, [0x205da320]
mov ebp, 0xf91cf0d3
nop
mov rax, rdi
mul r13
mov rbx, rdx
mov rax, r10
mul r13
shr rdx, 2
imul rax, rdx, 0xffffffffffffffea
add rax, r14
add rax, r12
movzx eax, byte [rbp + rax]
xor al, 0xfb
add byte [r12 + r11], al
cmp r12, 0x14
je 0x203e1163
test cl, 0x40
je 0x203e1175
shr rbx, 2
imul rax, rbx, 0xffffffffffffffea
movzx eax, byte [r15 + rax]
xor al, 0xfb
add byte [r12 + r11 + 1], al
add r12, 2
add r15, 2
add rdi, 2
add r10, 2
jmp 0x203e10d0
mov r14, rsi
mov r15, r8
mov qword [rsp + 0x28], r9
mov eax, esi
mov dword [rsp + 0x24], esi
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x40], r8
mov r9, rsi
jmp 0x203e1390
mov r11, rsi
jmp 0x203e14ed
test cl, 0x10
jne 0x203e1185
mov qword [rsp + 0x28], r9
jmp 0x203e1218
test cl, 0x10
jne 0x203e11aa
mov al, 0xf9
xchg byte [0x205da312], al
jmp 0x203e1318
mov qword [rsp + 0x28], r9
mov eax, esi
mov dword [rsp + 0x24], esi
jmp 0x203e12b8
movabs rax, 0xa93a396c30193c13
xor qword [0x205da380], rax
xor byte [0x205da388], 0x13
mov al, 0x4e
xchg byte [0x205da389], al
jmp 0x203e14ed
test cl, cl
jns 0x203e12e3
mov al, 0xaf
xchg byte [0x205da335], al
test ecx, 0x100
jne 0x203e14ed
mov qword [rsp + 0x28], r9
mov eax, esi
mov dword [rsp + 0x24], esi
jmp 0x203e13d2
xor edx, 0x72587b32
mov edi, ecx
mov rcx, rsi
call fcn.200782c0
mov ecx, edi
xor r13d, r13d
xor r12d, r12d
mov r11, rsi
test cl, cl
jns 0x203e130b
jmp 0x203e14ed
mov r8b, 0x71
mov al, 0xdc
lock cmpxchg byte [0x205da356], r8b
jne 0x203e12db
mov rsi, r14
mov r8, r15
mov eax, 0x96a99518
mov r11d, 0x69566b00
mov r14d, 1
mov ebp, 0x96a99519
mov r15d, 0x69566aff
lea r12, [0x205da340]
lea r13, [0x20496c90]
nop word cs:[rax + rax]
mov ebx, r11d
imul rbx, rbx, 0x51eb851f
shr rbx, 0x23
lea ebx, [rbx + rbx*4]
lea ebx, [rbx + rbx*4]
add ebx, eax
mov edx, r15d
imul rdx, rdx, 0x51eb851f
shr rdx, 0x23
lea edx, [rdx + rdx*4]
lea edx, [rdx + rdx*4]
add edx, ebp
movzx r10d, byte [r14 + r12 - 1]
movzx edi, byte [r14 + r12]
xor r10b, byte [rdx + r13]
xor r10b, 0xe2
mov byte [r14 + r12 - 1], r10b
xor dil, byte [rbx + r13]
xor dil, 0xe2
mov byte [r14 + r12], dil
add eax, 0xfffffffe
add r11d, 2
add r14, 2
add ebp, 0xfffffffe
add r15d, 2
cmp r14, 0x17
jne 0x203e1250
mov al, 6
xchg byte [0x205da356], al
xor r12d, r12d
xor r13d, r13d
xor eax, eax
mov r14, rsi
mov r15, r8
mov r11, r13
test ecx, 0x400
jne 0x203e1324
jmp 0x203e12e3
cmp al, 6
jne 0x203e13f6
lea r11, [0x205da340]
jmp 0x203e14ed
cmp al, 0xf9
je 0x203e130b
mov dl, 0x51
mov al, 0xba
lock cmpxchg byte [0x205da312], dl
jne 0x203e12ef
mov qword [rsp + 0x28], r9
mov r9, rsi
jmp 0x203e12c6
mov r11, r13
test r12b, 1
je 0x203e14ed
lea r11, [0x205da300]
jmp 0x203e14ed
lea edx, [rax + 0x46a2d984]
imul rdx, rdx, 0x38e38e39
shr rdx, 0x22
add edx, edx
lea edx, [rdx + rdx*8]
neg edx
add edx, eax
add edx, 0x46a2d984
cdqe
lea r8, [0x205da300]
lea r10, [0x20496c50]
movzx edx, byte [rdx + r10]
xor dl, 7
add byte [rax + r8], dl
inc eax
cmp eax, 0x12
jge 0x203e13bd
test ecx, 0x100
je 0x203e1324
mov rdx, qword [rsp + 0x30]
movzx eax, byte [r9 + rdx]
mov r8, qword [rsp + 0x40]
mov byte [r8 + rdx], al
test cl, 0x10
je 0x203e13ca
inc qword [rsp + 0x30]
test cl, cl
jns 0x203e13e6
mov r12b, 1
lea r11, [rsp + 0x50]
xor eax, eax
mov rdx, qword [rsp + 0x38]
cmp qword [rsp + 0x30], rdx
jb 0x203e1367
mov r11, r15
test ecx, 0x200
je 0x203e14ed
xor r11d, r11d
jmp 0x203e14ed
mov al, 0xf9
xchg byte [0x205da312], al
jmp 0x203e130e
mov rsi, r14
mov r8, r15
jmp 0x203e140f
mov dl, 0x2a
mov al, 0xaa
lock cmpxchg byte [0x205da375], dl
mov r14, rsi
mov r15, r8
je 0x203e140f
cmp al, 0x96
jne 0x203e1407
test ecx, 0x200
jne 0x203e14e6
mov rsi, r14
mov r8, r15
test cl, 0x20
jne 0x203e11fe
jmp 0x203e13d2
mov rsi, r14
mov r8, r15
jmp 0x203e13d2
mov r9d, 0xe97dff4
mov r11d, 0xe97dff3
xor r14d, r14d
movabs r15, 0x642c8590b21642c9
lea r12, [0x20496cb0]
lea r13, [0x205da360]
nop word cs:[rax + rax]
mov rax, r9
mul r15
mov rdi, rdx
mov rax, r11
mul r15
mov rax, r11
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 4
imul rax, rax, 0xffffffffffffffe9
add rax, r12
add rax, 0xe97dfef
movzx edx, byte [r14 + r13]
xor dl, byte [r14 + rax + 4]
xor dl, 0xf7
mov byte [r14 + r13], dl
cmp r14, 0x14
je 0x203e14c0
mov rax, r9
sub rax, rdi
shr rax, 1
add rax, rdi
shr rax, 4
imul rax, rax, 0xffffffffffffffe9
add rax, r12
add rax, 0xe97dff4
movzx edx, byte [r14 + r13 + 1]
xor dl, byte [rax + r14]
xor dl, 0xf7
mov byte [r14 + r13 + 1], dl
add r14, 2
add r9, 2
add r11, 2
jmp 0x203e1440
test ecx, 0x400
jne 0x203e14d1
xor eax, eax
mov r9, qword [rsp + 0x28]
jmp 0x203e1515
mov al, 0x96
xchg byte [0x205da375], al
mov edx, dword [rsp + 0x24]
test cl, 0x40
je 0x203e11d6
lea r11, [0x205da360]
mov rax, r11
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp rax, qword [rsp + 0x50]
jae 0x203e1533
movzx ecx, byte [r8 + rax]
mov rdx, qword [rsp + 0x48]
mov byte [rdx + rax], cl
inc rax
jmp 0x203e1501
test rsi, rsi
je 0x203e1533
movzx eax, byte [r8 + rsi - 1]
mov rcx, qword [rsp + 0x48]
mov byte [rcx + rsi - 1], al
dec rsi
jmp 0x203e151a
mov r11, r9
jmp 0x203e14ed