Function at 0x2033d630
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]
mov qword [rbp + 0x50], 0xfffffffffffffffe
mov r12d, r9d
mov r14d, r8d
mov rbx, qword [0x2058efd0]
movsxd r15, dword [rbx]
mov edi, dword [0x2048f1b8]
mov dword [rsp + 0x20], 0x3303b456
xor r8d, r8d
mov r9d, 0x7105b7d1
call fcn.2008efb0
test rax, rax
je 0x2033d7aa
mov rsi, rax
mov dword [rbp + 0x40], r12d
add r15, rbx
mov eax, dword [rax + 0xb8]
mov ecx, dword [0x205b4cec]
mov r11d, dword [0x2058efc0]
lea edx, [r11 + 1]
mov dword [0x2058efc0], edx
mov r8d, dword [0x205b64b4]
mov r8d, r11d
not r8d
xor r11d, edx
nop
mov r9d, dword [0x205b64b0]
lea r10d, [r9 - 1]
imul r10d, r9d
test r10b, 1
jne 0x2033d6c0
xor edx, r8d
and edx, r8d
or r11d, edx
not r11d
xor r13d, r13d
mov r12d, 0
test r11d, r11d
jne 0x2033d7c1
xor r13d, r13d
mov r12d, 0
test edi, edi
jle 0x2033d7c1
mov qword [rbp + 0x30], r11
mov qword [rbp + 0x48], r14
mov qword [rbp + 0x38], rsi
mov edx, 0x10
xor r13d, r13d
lea r8, [fcn.2033d630]
add r8d, r8d
add r8d, 0x1f00
mov r9d, r8d
not r9d
mov r10d, r8d
and r10d, r9d
xor r12d, r12d
nop dword [rax + rax]
lea r11d, [rdx - 0x10]
movsxd r11, r11d
mov r14, qword [r15 + r11]
mov r11, qword [r15 + r11 + 8]
mov esi, dword [0x205b64b4]
nop word cs:[rax + rax]
mov esi, r9d
and esi, 0xfffffffe
or esi, r10d
xor esi, r8d
cmp esi, 0xfffffffe
jne 0x2033d760
not r12
not r13
mov rsi, r13
and rsi, r14
mov rbx, r12
and rbx, r11
or r13, r14
or r12, r11
xor r12, rbx
xor r13, rsi
and rsi, r13
and rbx, r12
xor r12, rbx
xor r13, rsi
not r13
not r12
cmp edx, edi
jge 0x2033d7b5
add edx, 0x10
jmp 0x2033d740
mov r15d, 0xfffffffe
jmp 0x2033db03
mov rsi, qword [rbp + 0x38]
mov r14, qword [rbp + 0x48]
mov r11, qword [rbp + 0x30]
mov edx, dword [0x205b64b4]
add ecx, eax
sete al
cmp qword [rsi + 0xb8], 0
sete cl
lea rdx, [rsi + 0xb0]
xor edi, edi
test al, cl
cmove rdi, rdx
jne 0x2033dafc
mov rcx, rsi
mov edx, 0xd8887219
mov r8d, 0x5b96ae7b
mov qword [rbp + 0x30], r11
call fcn.2033e490
test al, al
je 0x2033dafc
mov eax, dword [rsi + 0x34]
mov ecx, eax
not ecx
xor eax, 1
and ecx, 0xfffffffe
or ecx, eax
cmp ecx, 0xffffffff
je 0x2033db1a
mov eax, dword [rsi + 8]
cmp eax, 0x100
je 0x2033db22
cmp eax, 0x200
je 0x2033d843
cmp eax, 0x400
jne 0x2033dce5
mov qword [rbp + 0x48], r14
cmp qword [0x205b64b8], 0
jne 0x2033d8a4
mov ecx, 0xb0
mov edx, 0xdc7f8327
mov r8d, 0x82c99256
call fcn.2008daf0
xorps xmm0, xmm0
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm0
movups xmmword [rax + 0x30], xmm0
movups xmmword [rax + 0x40], xmm0
movups xmmword [rax + 0x50], xmm0
movups xmmword [rax + 0x60], xmm0
movups xmmword [rax + 0x70], xmm0
movups xmmword [rax + 0x80], xmm0
movups xmmword [rax + 0x90], xmm0
movups xmmword [rax + 0x9d], xmm0
mov qword [0x205b64b8], rax
mov eax, dword [rbp + 0x40]
test eax, eax
mov edx, 0xffffff
cmovne edx, eax
mov r8d, dword [rsi + 0x38]
mov r14d, dword [rsi + 0x3c]
mov r9d, r8d
neg r9d
mov eax, r9d
xor eax, 0x100
mov ecx, r9d
and ecx, 0x100
lea eax, [rax + rcx*2]
imul eax, r14d
mov r15d, 0x69
mov rbx, qword [rbp + 0x48]
cmp eax, ebx
jle 0x2033dcc7
mov r11, rsi
add r11, 0x38
mov r10, qword [rdi + 8]
mov rcx, qword [0x205b64b8]
mov eax, ebx
mov r15, rdx
xor edx, edx
div r14d
mov edx, eax
neg edx
dec eax
lea edi, [r8 - 1]
and eax, r9d
and edi, edx
or edi, eax
and edx, r9d
lea edi, [rdi + rdx*2]
mov r9d, edi
neg r9d
mov qword [rbp + 0x40], r15
lea eax, [r14 + r15]
add eax, ebx
dec eax
xor edx, edx
div r14d
add eax, r8d
cmp eax, 0x100
mov edx, 0x100
cmovl edx, eax
lea rax, [0x2046dc28]
mov qword [rbp - 0x10], rax
xorps xmm0, xmm0
movups xmmword [rbp - 8], xmm0
mov qword [rbp + 8], 0
mov byte [rbp + 0x10], 1
movups xmmword [rbp + 0x14], xmm0
movups xmmword [rbp + 0x20], xmm0
mov r8d, dword [rsi + 0x20]
lea rax, [rbp - 0x10]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r11
mov dword [rsp + 0x20], edx
mov rdx, r10
call fcn.20341ba0
mov r15d, eax
test eax, eax
jne 0x2033dcb9
add edi, dword [rsi + 0x38]
imul edi, dword [rsi + 0x3c]
mov rdx, qword [rbp + 0x48]
add edx, edi
mov rax, qword [rbp]
mov r15d, 0xd1
cmp edx, eax
jg 0x2033dcb9
mov qword [rbp + 0x38], rsi
mov ecx, eax
mov qword [rbp + 0x48], rdx
sub ecx, edx
mov rdx, qword [rbp + 0x40]
cmp ecx, edx
cmovge ecx, edx
mov edx, dword [0x205b64b4]
cmp edx, 0x5b
jl 0x2033d9ea
mov rdx, qword [0x2048f1d8]
mov rdx, qword [0x2048f1d0]
mov edx, dword [0x205b64b4]
cmp edx, 0x39
jge 0x2033d9d1
mov r8, qword [0x2048f1d8]
xor r9d, r9d
cmp dword [rbp + 0x30], 0
setne r9b
xor edx, edx
movabs r10, 0x92c1e608a28a14e8
sub r10, r9
mov r9d, 0
sbb r9, r9
not r9
movabs r11, 0x7dec2a33101e20dd
xor r11, r10
not r10
movabs rsi, 0x1211c44d61cb02
and rsi, r10
lea r11, [r11 + rsi*2]
movabs r10, 0x10ae103bb2a835c6
add r10, r11
adc r9, 0
mov r11, qword [0x2048f1d0]
sub r11, r13
sbb r8, r12
mov rsi, r8
not rsi
mov rdi, r11
not rdi
mov rbx, rdi
and rbx, r10
not r10
mov r14, rsi
and r14, r9
not r9
and r11, r10
or r11, rbx
and r8, r9
or r8, r14
and r9, rsi
or r9, r8
and r10, rdi
or r10, r11
and r10, r9
cmp r10, 0xffffffffffffffff
setne r8b
or r8b, byte [0x205b5490]
and r8b, 1
mov byte [0x205b5490], r8b
test ecx, ecx
mov rsi, qword [rbp + 0x38]
jle 0x2033dcb9
test rax, rax
sete r9b
movzx r8d, byte [0x205b5490]
xor r9b, r8b
jne 0x2033dacd
mov rdx, qword [rbp - 8]
mov r9, qword [rbp + 0x48]
test rax, rax
cmovne rax, rdx
test r8b, r8b
cmove rax, rdx
movsxd rdx, r9d
add rdx, rax
mov r8d, ecx
mov rcx, qword [rbp + 0xc0]
call fcn.200f2cc0
xor r15d, r15d
jmp 0x2033dcb9
mov r15d, dword [rsi + 0xd8]
mov eax, r15d
add rsp, 0xd8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov r15d, 0xfffffff6
jmp 0x2033db03
cmp qword [0x205b64f8], 0
jne 0x2033db6a
mov ecx, 0x80
mov edx, 0xdc7f8327
mov r8d, 0x82c99256
call fcn.2008daf0
xorps xmm0, xmm0
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm0
movups xmmword [rax + 0x30], xmm0
movups xmmword [rax + 0x40], xmm0
movups xmmword [rax + 0x50], xmm0
movups xmmword [rax + 0x60], xmm0
movups xmmword [rax + 0x69], xmm0
mov qword [0x205b64f8], rax
mov r15d, 4
cmp r14d, 0x1fff
jg 0x2033db03
mov r15, qword [0x205b64f8]
mov r12d, dword [rdi + 8]
mov ecx, dword [rdi + 0x10]
xorps xmm0, xmm0
movaps xmmword [rbp - 0x20], xmm0
movaps xmmword [rbp - 0x30], xmm0
movaps xmmword [rbp - 0x40], xmm0
mov rax, qword [r15 + 0x50]
lea r8, [rbp - 0x40]
mov edx, 0x100
mov r9d, 0x30
call qword [case.0x2010e313.0]
test eax, eax
sete al
movzx ecx, byte [0x205b5490]
test cl, al
jne 0x2033dcd3
xor cl, al
jne 0x2033dcd3
mov eax, 0x2000
sub eax, r14d
mov ecx, dword [rbp + 0x40]
cmp eax, ecx
mov edi, ecx
cmovl edi, eax
test ecx, ecx
cmovle edi, eax
lea eax, [r14 + 0x1f]
test r14d, r14d
mov ebx, r14d
cmovs ebx, eax
sar ebx, 5
mov ecx, eax
xor ecx, edi
mov edx, eax
not edx
xor eax, edx
and eax, edi
xor eax, edx
xor edx, eax
and edx, eax
add edx, edx
mov eax, ecx
xor eax, edx
and edx, ecx
lea ecx, [rax + rdx*2]
lea eax, [rax + rdx*2]
add eax, 0x1f
test ecx, ecx
cmovns eax, ecx
sar eax, 5
cmp eax, 0x100
mov ecx, 0x100
cmovl ecx, eax
lea rax, [0x2046dc28]
mov qword [rbp - 0x10], rax
xorps xmm0, xmm0
movups xmmword [rbp - 8], xmm0
mov qword [rbp + 8], 0
mov byte [rbp + 0x10], 1
mov rax, rsi
add rax, 0x38
lea r9, [rbp - 0x28]
movups xmmword [rbp + 0x14], xmm0
movups xmmword [rbp + 0x20], xmm0
mov r8d, dword [rbp - 0x38]
lea rdx, [rbp - 0x10]
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x20], ebx
mov dword [rsp + 0x28], ecx
mov rcx, r15
mov edx, r12d
call fcn.2035a8d0
mov r15d, eax
test eax, eax
jne 0x2033dcb9
shl ebx, 5
sub r14d, ebx
mov rax, qword [rbp]
mov ecx, eax
sub ecx, r14d
cmp edi, ecx
cmovl ecx, edi
movsxd r8, ecx
test rax, rax
je 0x2033dca7
mov rax, qword [rbp - 8]
movsxd rdx, r14d
add rdx, rax
mov rcx, qword [rbp + 0xc0]
call fcn.200f2cc0
lea rcx, [rbp - 0x10]
call fcn.20056cf0
test r15d, r15d
je 0x2033dce5
mov dword [rsi + 0xd8], r15d
jmp 0x2033db03
mov rax, qword [r15 + 0x38]
call qword [case.0x2010e313.0]
mov r15d, eax
test r15d, r15d
jne 0x2033dcc7
xor r15d, r15d
jmp 0x2033db03