Function at 0x20193660
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xd8
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x40], xmm6
mov qword [rbp + 0x38], 0xfffffffffffffffe
mov r12d, r9d
mov qword [rbp - 0x20], rdx
mov r15, qword [rcx + 0x18]
test r15, r15
je 0x201936c6
mov r13, rcx
mov qword [rbp - 0x18], r8
lea rbx, [r15 + 3]
cmp dword [0x203ccde0], 0xea752ecb
mov rax, qword [0x203ccdd8]
jne 0x201936fc
mov eax, dword [rax + 0x18]
mov dword [0x203ccde8], 0xbf8b5fdd
xor esi, esi
jmp 0x20193702
test r12b, 1
jne 0x201937a8
call fcn.20197420
mov rdi, rax
xorps xmm0, xmm0
mov r15, qword [rbp - 0x20]
movups xmmword [r15 + 0x18], xmm0
mov rsi, qword [rax + 0x18]
cmp qword [rax + 0x20], 0x10
jb 0x201937f9
mov rdi, qword [rdi + 8]
jmp 0x201937fd
movsxd rsi, dword [rax]
add rsi, rax
mov edi, dword [0x202fd2c0]
mov qword [rbp - 0x28], 0
mov rcx, rbx
call fcn.20080da0
mov qword [rbp + 0x28], rax
mov r14, rax
mov dword [rbp + 0x24], 0
mov rcx, rax
xor edx, edx
mov r8, rbx
call fcn.202d57b0
mov r8, qword [r13 + 0x18]
cmp qword [r13 + 0x20], 0x10
jb 0x20193744
mov r13, qword [r13 + 8]
jmp 0x20193748
add r13, 8
mov rcx, r14
mov rdx, r13
call fcn.202d5100
mov qword [rbp + 0x30], r14
test r12b, 2
jne 0x2019385b
mov rcx, r13
mov edx, 0x20
mov r8, r15
call fcn.201419a0
mov dword [rbp + 0x24], 0
test rax, rax
je 0x20193857
sub rax, r13
mov qword [rbp + 0x30], r14
cmp rax, 0xffffffffffffffff
je 0x2019385b
lea rax, [r14 + 1]
mov qword [rbp + 0x30], rax
mov byte [r14], 0x22
mov al, 1
mov dword [rbp + 0x24], eax
jmp 0x2019385b
mov r15, qword [rbp - 0x20]
lea rcx, [r15 + 8]
mov qword [r15 + 0x20], 0xf
mov qword [r15 + 0x18], 6
movzx eax, byte [0x203ccb47]
cmp al, 0xb
je 0x20193da3
mov dl, 0xc
nop word cs:[rax + rax]
mov al, 0x4d
lock cmpxchg byte [0x203ccb47], dl
je 0x20193d70
cmp al, 0xb
jne 0x201937e0
jmp 0x20193da3
add rdi, 8
lea r14, [r15 + 8]
cmp rsi, 0xf
ja 0x20193818
movups xmm0, xmmword [rdi]
movups xmmword [r14], xmm0
mov ebx, 0xf
jmp 0x20193de4
mov rbx, rsi
or rbx, 0xf
movabs rax, 0x7fffffffffffffff
cmp rbx, rax
cmovae rbx, rax
cmp rbx, 0xfff
jb 0x20193dbd
lea rcx, [rbx + 0x28]
call fcn.20080910
lea rcx, [rax + 0x27]
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x20193dc9
mov qword [rbp + 0x30], r14
mov qword [rbp + 0x18], rbx
movsx ecx, byte [r13]
cmp ecx, 0x2f
sete al
movzx edx, byte [r13 + 1]
mov r8d, ecx
xor r8b, 0x5c
mov r9d, edx
xor r9b, 0x5c
or r9b, r8b
sete bl
or bl, al
cmp dl, 0x3a
jne 0x20193894
call fcn.20197480
mov r15d, eax
jmp 0x20193897
xor r15d, r15d
mov qword [rbp + 8], 0
mov qword [rbp + 0x10], 0xf
mov byte [rbp - 8], 0
lea rax, [0x202f4e08]
mov qword [rbp - 0x10], rax
test r12b, 1
sete al
or bl, al
je 0x201938ca
xor ebx, ebx
test r15b, r15b
jne 0x20193914
jmp 0x2019393b
lea rcx, [rbp - 0x10]
call fcn.20193f90
mov rax, qword [rbp - 8]
mov rcx, qword [rbp + 0x10]
lea rdx, [rax + 1]
cmp rcx, 0x10
lea r8, [rbp - 7]
cmovae r8, rdx
cmp byte [r8], 0x3a
jne 0x20193909
cmp rcx, 0x10
lea rcx, [rbp - 8]
cmovb rax, rcx
movsx ecx, byte [rax]
call fcn.20197480
mov ebx, eax
jmp 0x2019390b
xor ebx, ebx
mov r14, qword [rbp + 0x28]
test r15b, r15b
je 0x2019393b
test r12b, 1
je 0x2019391f
cmp r15b, bl
je 0x2019393b
movsx ecx, byte [r13]
call fcn.20197480
mov rcx, qword [rbp + 0x30]
mov byte [rcx], al
mov byte [rcx + 1], 0x3a
add rcx, 2
mov qword [rbp + 0x30], rcx
xor eax, eax
test r12b, 1
je 0x2019396a
cmp r15b, bl
je 0x2019396a
mov byte [rbp - 0x58], r15b
mov word [rbp - 0x57], 0x3a
lea rcx, [rbp - 0x58]
call fcn.20194100
lea rcx, [rbp - 0x10]
call fcn.20193f90
mov eax, ebx
mov r14, qword [rbp + 0x28]
mov dword [rbp + 0x20], eax
xor eax, eax
test r15b, r15b
setne al
add rax, rax
add rax, qword [0x20401b28]
mov r8d, dword [0x203ccdc8]
cmp dword [0x203ccde4], 0xd2de9109
lea ecx, [r8 + 1]
mov edx, 0xaca02cdb
cmovne edx, ecx
mov dword [0x203ccdc8], edx
xor r12d, r12d
mov dword [rbp - 0x2c], edx
mov qword [rbp - 0x60], r8
test edx, r8d
jne 0x201939db
test edi, edi
mov rbx, qword [rbp + 0x18]
jle 0x201939df
xor ecx, ecx
xor r12d, r12d
nop
movsxd rdx, ecx
mov dword [0x203ccde8], 0x972bff42
lea ecx, [rdx + 2]
xor r12w, word [rsi + rdx]
cmp ecx, edi
jl 0x201939c0
jmp 0x201939df
mov rbx, qword [rbp + 0x18]
add r13, rax
mov r8, qword [rbp + 8]
test r8, r8
je 0x20193abf
mov rax, qword [rbp - 8]
mov rcx, qword [rbp + 0x10]
lea rdx, [rax + 1]
cmp rcx, 0x10
lea r9, [rbp - 7]
cmovae r9, rdx
cmp byte [r9], 0x3a
jne 0x20193a38
cmp r8, 2
mov edx, 2
cmovb rdx, r8
cmp rcx, 0x10
lea rcx, [rbp - 8]
cmovae rcx, rax
sub r8, rdx
mov qword [rbp + 8], r8
inc r8
add rdx, rcx
call fcn.202d5100
mov r8, qword [rbp + 8]
mov qword [rbp - 0x40], 0
mov qword [rbp - 0x38], 0xf
mov byte [rbp - 0x50], 0
lea rax, [0x202f2f78]
mov qword [rbp - 0x58], rax
lea rcx, [rbp - 0x58]
mov rdx, r13
call fcn.2010ed50
lea rcx, [rbp - 0x58]
lea rdx, [rbp - 0x10]
call fcn.20120c50
test eax, eax
mov r14, qword [rbp + 0x28]
je 0x20193d20
mov rax, qword [rbp - 0x38]
cmp rax, 0x10
jb 0x20193abf
mov rcx, qword [rbp - 0x50]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x20193aba
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x20193e16
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.20080970
cmp byte [0x20401820], 0
mov eax, 0x7fffffff
mov rcx, qword [rbp - 0x18]
mov rsi, rcx
cmovne rsi, rax
test rcx, rcx
cmove rsi, rax
add rsi, qword [0x20401970]
mov rcx, r13
call fcn.20082040
cmp rax, rsi
jle 0x20193bce
mov r15, rax
lea rax, [rbx + r14]
mov qword [rbp - 0x18], rax
xor eax, eax
movabs rdi, 0x100000000
lea r8, [0x203ccb60]
movaps xmm6, xmmword [0x202fd110]
cmp r15, rsi
jle 0x20193bce
xor ebx, ebx
mov r14, r13
nop dword [rax + rax]
movzx ecx, byte [r14 + 1]
test ecx, ecx
je 0x20193bc6
inc r14
add rbx, rdi
cmp ecx, 0x5c
jne 0x20193b30
test al, 1
jne 0x20193ba9
mov rdx, qword [rbp - 0x18]
sub rdx, qword [rbp + 0x30]
movzx eax, byte [0x203ccb65]
nop dword [rax + rax]
cmp al, 0xc2
je 0x20193b93
mov al, 0x95
mov cl, 0x1b
lock cmpxchg byte [0x203ccb65], cl
jne 0x20193b60
movaps xmm0, xmmword [0x203ccb60]
xorps xmm0, xmm6
movss dword [0x203ccb60], xmm0
xor byte [0x203ccb64], 0xcf
mov al, 0xc2
xchg byte [0x203ccb65], al
mov rcx, qword [rbp + 0x30]
mov r13, r8
call fcn.20197430
add qword [rbp + 0x30], 4
mov al, 1
mov r8, r13
sar rbx, 0x20
sub r15, rbx
mov r13, r14
mov r14, qword [rbp + 0x28]
mov rbx, qword [rbp + 0x18]
cmp r15, rsi
jg 0x20193b23
jmp 0x20193bce
mov r14, qword [rbp + 0x28]
mov rbx, qword [rbp + 0x18]
add rbx, r14
mov rcx, qword [rbp + 0x30]
sub rbx, rcx
mov rdx, rbx
mov r8, r13
call fcn.20197430
mov esi, dword [rbp - 0x2c]
and esi, dword [rbp - 0x60]
mov rbx, qword [rbp + 0x30]
mov rcx, rbx
call fcn.20082040
movzx ecx, word [0x202fd2bc]
sub ecx, r12d
xor edx, edx
test esi, esi
mov r8d, ecx
not r8d
cmove r8d, esi
sete dl
neg edx
xor edx, ecx
or edx, r8d
cmp dx, 0xffff
setne cl
or cl, byte [0x204018b0]
mov rdi, rax
and cl, 1
mov byte [0x204018b0], cl
mov eax, dword [rbp + 0x20]
test al, al
je 0x20193c4d
mov byte [rbp - 0x58], al
mov word [rbp - 0x57], 0x3a
lea rcx, [rbp - 0x58]
call fcn.20194100
mov rbx, qword [rbp + 0x30]
add rbx, rdi
cmp byte [rbp + 0x24], 0
mov r15, qword [rbp - 0x20]
je 0x20193c60
mov byte [rbx], 0x22
inc rbx
mov rsi, qword [rbp + 0x28]
mov byte [rbx], 0
mov rax, qword [rbp + 0x10]
cmp rax, 0x10
jb 0x20193cae
mov rcx, qword [rbp - 8]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x20193ca9
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x20193e11
mov rcx, qword [0x20402538]
lea rdx, [rax + rcx]
add rdx, 0x28
mov rcx, r8
call fcn.20080970
lea rdi, [r15 + 8]
mov qword [r15 + 0x18], 0
mov qword [r15 + 0x20], 0xf
mov byte [r15 + 8], 0
mov rcx, rsi
call fcn.20082040
mov rbx, rax
cmp byte [0x204018b0], 0
jne 0x20193cfb
cmp rbx, 0xf
ja 0x20193cfb
mov qword [r15 + 0x18], rbx
mov rcx, rdi
mov rdx, rsi
mov r8, rbx
call fcn.202d5100
mov byte [r15 + rbx + 8], 0
jmp 0x20193d09
mov rcx, rdi
mov rdx, rbx
mov r9, rsi
call fcn.2006f780
lea rax, [0x202f2f78]
mov qword [r15], rax
mov rcx, rsi
call fcn.20080970
jmp 0x20193df6
mov rax, qword [rbp + 8]
movsx ecx, byte [r13 + rax]
test ecx, ecx
je 0x20193d3e
cmp ecx, 0x5c
jne 0x20193d55
add r13, rax
inc r13
jmp 0x20193a80
mov rax, qword [rbp + 0x30]
mov byte [rax], 0x2e
inc rax
mov qword [rbp + 0x30], rax
add r13, qword [rbp + 8]
jmp 0x20193a80
cmp rax, 1
sete al
cmp byte [rbp + 0x20], 0
sete cl
and cl, al
movzx eax, cl
add r13, rax
jmp 0x20193a80
movaps xmm0, xmmword [0x203ccb40]
xorps xmm0, xmmword [0x202fd120]
movss dword [0x203ccb40], xmm0
xor byte [0x203ccb44], 0xc4
xor byte [0x203ccb45], 0xee
xor byte [0x203ccb46], 0x91
mov al, 0xb
xchg byte [0x203ccb47], al
movzx eax, word [0x203ccb44]
mov word [rcx + 4], ax
mov eax, dword [0x203ccb40]
mov dword [rcx], eax
mov byte [r15 + 0xe], 0
jmp 0x20193dec
lea rcx, [rbx + 1]
call fcn.20080910
mov rcx, rax
mov qword [r14], rcx
mov rax, rsi
xor rax, 1
mov edx, esi
and edx, 1
lea r8, [rax + rdx*2]
mov rdx, rdi
call fcn.202d5100
mov qword [r15 + 0x18], rsi
mov qword [r15 + 0x20], rbx
lea rax, [0x202f2f78]
mov qword [r15], rax
mov rax, r15
movaps xmm6, xmmword [rbp + 0x40]
add rsp, 0xd8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.20080930
call fcn.20080930
int3