Function at 0x202dda80
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov r14, r9
mov rdi, r8
mov esi, edx
mov rbx, rcx
mov rax, qword [0x20562ac8]
xor rax, rsp
mov qword [rsp + 0x80], rax
mov eax, edx
and eax, 0x3f
cmp eax, 0xf
ja 0x202ddb49
cmp eax, 8
jae 0x202ddbab
mov rcx, rdi
mov r15, r14
mov rbp, rbx
cmp eax, 3
jbe 0x202dde60
cmp eax, 5
jbe 0x202ddcac
cmp eax, 7
mov qword [rsp + 0x28], rcx
jne 0x202dddb3
xor r12d, r12d
xor eax, eax
sub eax, dword [rbp - 4]
cdqe
lea rbx, [rax + rbp]
add rbx, 0xffffffffffffff68
mov rcx, rbx
call fcn.200a9d70
cmp dword [rsp + 0x28], 0
je 0x202ddfeb
test sil, 0x40
jne 0x202de2dd
mov rcx, rbx
call fcn.20077cc0
mov eax, ebp
mov dword [rsp + 0x24], ebp
mov eax, r15d
mov byte [rsp + 0x23], r15b
test esi, 0x100
jne 0x202de2a2
jmp 0x202de748
mov ecx, ebx
mov dword [rsp + 0x24], ebx
mov ecx, edi
mov edx, r14d
mov byte [rsp + 0x23], r14b
cmp eax, 0x17
jbe 0x202ddbd8
cmp eax, 0x1c
jae 0x202ddc0e
cmp eax, 0x19
jbe 0x202ddcc4
cmp eax, 0x1b
mov qword [rsp + 0x28], rcx
jne 0x202dddea
lea rax, [0x204122e8]
mov qword [rbx], rax
mov r12, qword [rbx + 0x60]
test r12, r12
je 0x202ddfd2
test esi, 0x1000
jne 0x202de03a
movzx eax, byte [rsp + 0x23]
jmp 0x202de73d
cmp eax, 0xc
jae 0x202ddc3f
cmp eax, 9
jbe 0x202ddd0f
cmp eax, 0xb
jne 0x202dddf2
mov rcx, r14
mov rdx, rdi
call fcn.203c93a0
xor ebx, ebx
jmp 0x202de748
cmp eax, 0x11
jbe 0x202ddc80
cmp eax, 0x12
jne 0x202ddd24
mov qword [rsp + 0x28], rcx
mov r8, qword [rbx + 8]
test r8, r8
sete r9b
movzx eax, byte [0x205469e2]
cmp al, 0x23
je 0x202de0a9
jmp 0x202de081
cmp eax, 0x1d
jbe 0x202ddd34
cmp eax, 0x1e
jne 0x202dde24
test r14d, r14d
je 0x202de748
test esi, 0x200
jne 0x202de04d
mov qword [rsp + 0x28], rcx
jmp 0x202de4aa
cmp eax, 0xd
jbe 0x202ddd50
cmp eax, 0xf
jne 0x202dde44
movzx eax, byte [0x20546a46]
cmp al, 0x38
je 0x202de40f
mov rbp, rbx
mov r15, r14
mov eax, ebx
mov dword [rsp + 0x24], ebx
mov eax, edi
mov qword [rsp + 0x28], rax
mov eax, r14d
mov byte [rsp + 0x23], r14b
jmp 0x202de193
cmp eax, 0x10
mov qword [rsp + 0x28], rcx
jne 0x202ddd6d
movzx eax, byte [0x20546a25]
cmp al, 0x4b
jne 0x202de36a
test sil, 0x40
je 0x202de72d
jmp 0x202de271
cmp eax, 4
jne 0x202dddda
xor ebx, ebx
lock dec dword [rdi + 8]
cmove rbx, rdi
jmp 0x202de748
cmp eax, 0x18
jne 0x202ddeb8
mov qword [rsp + 0x28], rcx
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx]
test rax, rax
je 0x202ddfe3
test esi, 0x400
jne 0x202de812
mov rdx, qword [rdi + 0x50]
cmp dword [rdx], 0
jle 0x202de063
test esi, 0x1000
jne 0x202de06c
mov rbp, rbx
jmp 0x202de5c9
cmp eax, 8
jne 0x202ddec1
lea rbx, [0x20572590]
jmp 0x202de748
cmp eax, 0x15
jae 0x202ddf00
xor ebx, ebx
jmp 0x202de748
cmp eax, 0x1c
je 0x202de748
mov rcx, rdi
mov edx, r14d
call fcn.200a9aa0
mov rbx, rdi
jmp 0x202de748
mov ebx, 0xffffffff
cmp eax, 0xc
jne 0x202de748
mov rcx, r14
call fcn.203c96b0
mov ebx, eax
jmp 0x202de748
lea rax, [0x20413328]
mov qword [r14], rax
mov rcx, r14
call fcn.200a5960
lea rax, [0x204122e8]
mov qword [r14], rax
mov r13, qword [r14 + 0x60]
xor r12d, r12d
mov rbp, rbx
mov r15, r14
test r13, r13
jne 0x202de5d5
mov rbx, r14
test esi, 0x40000
je 0x202de652
jmp 0x202de62c
movzx eax, byte [0x20546a79]
cmp al, 0xb5
jne 0x202ddf7f
xor ecx, ecx
mov eax, ebp
mov dword [rsp + 0x24], ebp
mov eax, r15d
mov byte [rsp + 0x23], r15b
mov r14, r15
jmp 0x202de7a9
mov rbx, r15
test ecx, ecx
jne 0x202de5e3
jmp 0x202de748
mov rax, rbx
jmp 0x202ddee0
test ebx, ebx
je 0x202dde1c
mov eax, ebx
mov dword [rsp + 0x24], ebx
mov eax, edi
mov qword [rsp + 0x28], rax
mov eax, r14d
mov byte [rsp + 0x23], r14b
mov rcx, r14
call fcn.20077cc0
test sil, sil
js 0x202ddffc
mov rbx, r14
jmp 0x202de748
cmp eax, 0x1f
ja 0x202ddfc5
mov r8d, ebx
mov edx, 0x3b2f688c
mov r9, rdi
call fcn.202dda80
mov ebx, eax
jmp 0x202de748
mov esi, 0xe6a88bc0
xor eax, eax
mov rcx, rbx
mov r15, rdi
mov rdi, rbx
mov rbp, r14
cmp eax, 3
ja 0x202ddad9
cmp eax, 1
jbe 0x202dde73
cmp eax, 3
jne 0x202dde8a
movzx ebx, r15b
jmp 0x202de748
test eax, eax
je 0x202ddf4f
mov rcx, r15
call fcn.20078200
xor ebx, ebx
jmp 0x202de748
test ecx, ecx
je 0x202de2dd
mov qword [rsp + 0x28], rcx
lea r8, [rsp + 0x68]
xor r9d, r9d
mov rbx, rbp
mov r14, r15
mov eax, ebp
mov dword [rsp + 0x24], ebp
mov eax, r15d
mov byte [rsp + 0x23], r15b
jmp 0x202de099
movzx ebx, byte [rdi + 0x19]
jmp 0x202de748
mov eax, edi
mov dword [rsp + 0x24], edi
mov eax, edi
mov ecx, edi
mov byte [rsp + 0x23], dil
mov esi, 0xcf0be99a
mov r14, rdi
mov rdi, rbx
mov qword [rsp + 0x28], rbx
movzx ecx, byte [0x20546b63]
cmp cl, 0x4e
jne 0x202ddf47
xor r12d, r12d
test esi, 0x100
jne 0x202de741
jmp 0x202de62c
cmp eax, 0x17
je 0x202de003
mov qword [rsp + 0x28], rcx
cmp eax, 0x15
jne 0x202de01a
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x50], rdi
mov r8, r14
mov rbp, rbx
mov r15, r14
mov ecx, dword [rsp + 0x24]
movzx edx, byte [rsp + 0x23]
cmp r14, rdi
jae 0x202ddf9c
jmp 0x202de2c9
mov rbx, rax
jmp 0x202de72d
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x78], r15
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x30], 0
mov eax, ebp
mov dword [rsp + 0x24], ebp
mov eax, r15d
mov byte [rsp + 0x23], r15b
jmp 0x202de2a2
mov eax, ebp
mov dword [rsp + 0x24], ebp
mov eax, r15d
mov byte [rsp + 0x23], r15b
mov ecx, ebp
mov edx, r15d
test sil, 0x40
je 0x202de7c6
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x40], rax
mov rbx, rbp
mov r14, r15
mov dword [rsp + 0x24], ecx
mov byte [rsp + 0x23], dl
test esi, 0x800
jne 0x202ddd2d
jmp 0x202de4d9
call fcn.20078210
movzx ebx, al
jmp 0x202de748
test esi, 0x400
jne 0x202de36a
jmp 0x202de532
mov r12d, 0xffffffff
xor ebx, ebx
test esi, 0x200
jne 0x202de62c
jmp 0x202de748
xor ecx, ecx
jmp 0x202de76f
movzx ecx, byte [0x20546a65]
xor eax, eax
cmp cl, 0xdd
je 0x202de3d0
jmp 0x202de16f
mov rcx, rbx
call fcn.200799c0
test r14d, r14d
je 0x202de748
test sil, 0x40
jne 0x202dde0b
jmp 0x202de65d
mov rcx, qword [r12 + 8]
test rcx, rcx
jne 0x202de484
jmp 0x202de35e
mov rcx, rbx
call fcn.20077cc0
test sil, sil
jns 0x202de748
jmp 0x202ddd2d
lea r8, [rdi + 0x38]
jmp 0x202de555
lea r13, [rsp + 0x68]
lea rax, [rsp + 0x78]
mov rbp, rbx
mov r15, r14
jmp 0x202de451
mov cl, 0x1c
mov al, 0xdc
lock cmpxchg byte [0x205469e2], cl
jne 0x202de096
lea r12, [rsp + 0x50]
jmp 0x202de0bd
mov r15d, eax
test sil, 0x40
jne 0x202de65d
cmp r15b, 0x23
jne 0x202de081
lea rbx, [0x205469d0]
test r9b, 1
cmove rbx, r8
jmp 0x202de748
test esi, 0x100
je 0x202de525
test esi, 0x1000
jne 0x202de16f
lea r10, [0x20433f00]
mov r11d, 0x89273955
add r11, r10
mov ecx, 0xffffffff
add rcx, 0xffffffff89273955
xor edi, edi
movabs rbx, 0xe38e38e38e38e38f
lea r15, [0x205469d0]
mov r12d, 0x89273954
mov rax, rcx
mul rbx
shr rdx, 3
and rdx, 0xfffffffffffffffe
lea rax, [rdx + rdx*8]
mov rdx, r10
sub rdx, rax
add rdx, rdi
movzx edx, byte [r12 + rdx]
xor dl, 0xd5
add byte [rdi + r15], dl
test esi, 0x2000
je 0x202dde1c
neg rax
movzx eax, byte [r11 + rax]
xor al, 0xd5
add byte [rdi + r15 + 1], al
cmp rdi, 0x10
je 0x202de33a
add rdi, 2
add r11, 2
add rcx, 2
test esi, 0x2000
jne 0x202de10a
jmp 0x202dde1c
mov cl, 0xdf
lea r8, [rsp + 0x70]
mov al, 0x6a
lock cmpxchg byte [0x20546a65], cl
je 0x202de18b
cmp al, 0xdd
jne 0x202de176
jmp 0x202de31e
mov r15, r14
jmp 0x202de80d
mov cl, 0xd4
mov al, 0x81
lock cmpxchg byte [0x20546a46], cl
jne 0x202de7f1
mov ecx, 0x885682e
xor r8d, r8d
movabs r9, 0x2e8ba2e8ba2e8ba3
lea r10, [0x20433f60]
lea r11, [0x20546a30]
nop word cs:[rax + rax]
mov rax, rcx
mul r9
shr rdx, 2
imul rax, rdx, 0xffffffffffffffea
add rax, r10
movzx edx, byte [r8 + r11]
movzx ebx, byte [r8 + r11 + 1]
xor dl, byte [r8 + rax + 0x885682e]
xor dl, 0xe7
mov byte [r8 + r11], dl
xor bl, byte [r8 + rax + 0x885682f]
xor bl, 0xe7
mov byte [r8 + r11 + 1], bl
add r8, 2
add rcx, 2
cmp r8, 0x16
jne 0x202de1d0
mov rbx, r15
test esi, 0x2000
jne 0x202de258
lea r9, [rsp + 0x58]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x40]
lea r8, [rsp + 0x30]
mov rax, rcx
test si, si
jns 0x202de592
mov al, 0x38
xchg byte [0x20546a46], al
lea rbx, [0x20546a30]
jmp 0x202de748
mov al, 0x4e
xchg byte [0x20546b63], al
test esi, 0x200
je 0x202de741
jmp 0x202de748
lea rbx, [0x20546a10]
jmp 0x202de748
movzx ecx, byte [rdi + rax]
mov rdx, qword [rsp + 0x38]
mov byte [rdx + rax], cl
inc qword [rsp + 0x30]
mov rbx, rbp
mov r14, r15
movzx eax, byte [rsp + 0x23]
test sil, sil
jns 0x202de353
mov rax, qword [rsp + 0x30]
cmp rax, qword [rsp + 0x78]
jae 0x202de2b6
test sil, 0x40
jne 0x202de27d
jmp 0x202de2dd
test esi, 0x200
jne 0x202de2dd
lea r8, [rsp + 0x68]
mov rbx, rbp
mov r14, r15
mov qword [rsp + 0x48], 0
test sil, sil
js 0x202de748
jmp 0x202de2e5
mov rbx, rbp
jmp 0x202de748
mov rax, qword [rsp + 0x48]
cmp rax, qword [rsp + 0x68]
jae 0x202de32b
mov r15, r14
test esi, 0x4000
jne 0x202de7b4
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
movzx eax, byte [rax + rcx]
mov rdx, qword [rsp + 0x58]
mov byte [rdx + rcx], al
inc qword [rsp + 0x48]
mov r14, r15
test esi, 0x2000
jne 0x202de2e5
jmp 0x202de3db
test esi, 0x400
je 0x202de6a6
xor r9d, r9d
mov al, 0x23
xchg byte [0x205469e2], al
mov rbx, r14
test si, si
js 0x202de0a9
jmp 0x202de748
xor r12d, r12d
cmp al, 0x4b
je 0x202de271
test esi, 0x200
je 0x202de525
mov cl, 0xf7
mov al, 0x28
lock cmpxchg byte [0x20546a25], cl
jne 0x202de353
xor eax, eax
mov r15, r14
lea ecx, [rax - 0x3e542e89]
mov edx, 0x86186187
imul rdx, rcx
shr rdx, 0x20
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 4
lea edx, [rcx + rcx*4]
lea ecx, [rcx + rdx*4]
neg ecx
lea edx, [rax + rcx]
add edx, 0xc1abd177
movsxd rcx, eax
lea r8, [0x20546a10]
lea rax, [0x20433f40]
movzx eax, byte [rdx + rax]
xor al, 0xa9
add byte [rcx + r8], al
lea eax, [rcx + 1]
cmp eax, 0x14
jg 0x202de3e7
mov r14, r15
mov r15, r14
test esi, 0x4000
je 0x202de37d
lea rbx, [0x20546a50]
jmp 0x202de748
test esi, 0x1000
jne 0x202de6a6
test esi, 0x40000
jne 0x202de66a
add r8, rcx
jmp 0x202de316
cmp al, 0x38
jne 0x202de193
lea rbx, [0x20546a30]
jmp 0x202de748
mov rcx, qword [r13 + 8]
test rcx, rcx
je 0x202de63f
test esi, 0x400
jne 0x202de43b
mov rbx, rbp
mov r14, r15
jmp 0x202de72d
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x200c7fcc.0]
test rax, rax
je 0x202de7bd
mov rcx, qword [rax]
mov r8, qword [rcx]
mov rcx, rax
mov edx, 1
mov rax, r8
call qword [case.0x200c7fcc.0]
lea r12, [rsp + 0x40]
lea rcx, [rsp + 0x48]
mov rbx, rbp
mov r14, r15
test esi, 0x20000
jne 0x202de63f
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x200c7fcc.0]
mov r9b, 1
lea r8, [rsp + 0x38]
test rax, rax
je 0x202de0bd
test esi, 0x4000
jne 0x202de4b5
xor r9d, r9d
xor r8d, r8d
jmp 0x202de081
mov rcx, qword [rax]
mov r8, qword [rcx]
mov rcx, rax
mov edx, 1
mov rax, r8
call qword [case.0x200c7fcc.0]
test esi, 0x10000
je 0x202de525
mov rax, qword [rsp + 0x40]
mov dword [0x20546d58], 0xd66f701f
test rax, rax
je 0x202de67e
test si, si
jns 0x202de532
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x40]
movzx eax, byte [rax + rcx - 1]
mov rdx, qword [rsp + 0x58]
mov byte [rdx + rcx - 1], al
test esi, 0x80000
je 0x202de271
dec qword [rsp + 0x40]
xor r12d, r12d
test esi, 0x10000
jne 0x202de4d4
mov rcx, r12
call fcn.20077cc0
test si, si
js 0x202de4f1
lea rcx, [rsp + 0x50]
lea rax, [rsp + 0x78]
lea rdx, [rsp + 0x60]
mov rbp, rbx
mov r15, r14
mov r8, rcx
cmp dword [rsp + 0x28], 0
je 0x202de5e3
test esi, 0x800
je 0x202de65d
mov r9, qword [rdi + 0x40]
mov r9, qword [r9]
test r9, r9
je 0x202de61d
test sil, 0x40
jne 0x202de582
mov rbp, rbx
mov r15, r14
jmp 0x202de193
test byte [rdi + 0x70], 4
jne 0x202de634
mov rbp, rbx
mov rbx, r14
mov r10, qword [rdi + 0x68]
cmp r10, r9
cmovb r10, r9
cmp r10, rax
jbe 0x202de5ff
test esi, 0x10000
je 0x202de812
mov qword [rdi + 0x68], r10
sub r10d, dword [rcx]
mov dword [rdx], r10d
mov rax, qword [r8]
mov rax, qword [rax]
test esi, 0x2000
jne 0x202de613
mov r14, rbx
movzx r12d, byte [rax]
lea r13, [rsp + 0x70]
mov r15, r14
test esi, 0x4000
je 0x202de41b
jmp 0x202de62c
mov rbx, rbp
test sil, sil
jns 0x202de748
mov rcx, r15
call fcn.20077cc0
mov rbx, r15
jmp 0x202de748
mov r12d, 0xffffffff
test esi, 0x100
jne 0x202de741
jmp 0x202de62c
xor eax, eax
mov r15, rbx
jmp 0x202de37d
mov r12d, 0xffffffff
test sil, sil
jns 0x202de748
mov rbx, r12
jmp 0x202de748
mov r12d, 0xffffffff
jmp 0x202ddd9f
mov rcx, r13
call fcn.20077cc0
mov rbx, r15
test esi, 0x800
jne 0x202de66a
cmp dword [rsp + 0x24], 0
je 0x202de748
mov rcx, rbx
call fcn.20077cc0
jmp 0x202de748
mov al, 0x4b
xchg byte [0x20546a25], al
lea rbx, [0x20546a10]
jmp 0x202de748
test esi, 0x100
jne 0x202de69a
mov al, 0xdd
xchg byte [0x20546a65], al
lea rbx, [0x20546a50]
jmp 0x202de748
test esi, 0x20000
jne 0x202de741
mov rbx, qword [rsp + 0x60]
jmp 0x202de748
mov ebx, r9d
imul rbx, r10
shr rbx, 0x20
mov r14d, r9d
sub r14d, ebx
shr r14d, 1
add r14d, ebx
shr r14d, 4
lea ebx, [r14 + r14*4]
lea ebx, [r14 + rbx*4]
add ebx, r8d
movzx ebx, byte [rbx + rdi]
xor bl, 1
add byte [rax + r11 - 1], bl
cmp rax, 0x15
je 0x202de67e
mov ebx, edx
imul rbx, r10
shr rbx, 0x20
mov r14d, edx
sub r14d, ebx
shr r14d, 1
add r14d, ebx
shr r14d, 4
lea ebx, [r14 + r14*4]
lea ebx, [r14 + rbx*4]
add ebx, ecx
mov ebx, ebx
movzx ebx, byte [rbx + rdi]
xor bl, 1
add byte [rax + r11], bl
add rax, 2
add ecx, 0xfffffffe
add edx, 2
add r8d, 0xfffffffe
add r9d, 2
jmp 0x202de6b0
xor ecx, ecx
mov dl, 2
mov al, 0x28
lock cmpxchg byte [0x20546b63], dl
je 0x202de76f
cmp al, 0x4e
jne 0x202de72d
lea rbx, [0x20546b60]
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.203c9080
mov rax, rbx
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea eax, [rcx - 1]
and eax, 3
movsxd rdx, ecx
lea rcx, [0x20546b60]
movzx r8d, byte [rdx + rcx]
lea r9, [0x20434010]
xor r8b, byte [rax + r9]
xor r8b, 0x15
mov byte [rdx + rcx], r8b
lea ecx, [rdx + 1]
mov rbp, rbx
mov rbx, r14
cmp edx, 1
jg 0x202de21c
mov rbx, rbp
test esi, 0x800
jne 0x202de76f
lea rbx, [0x20546a70]
jmp 0x202de748
test sil, sil
jns 0x202de63f
mov cl, 0x11
mov al, 0xf5
lock cmpxchg byte [0x20546a79], cl
je 0x202de7ff
test esi, 0x400
je 0x202de289
mov ecx, eax
lea r13, [rsp + 0x60]
movzx eax, byte [rsp + 0x23]
cmp cl, 0xb5
jne 0x202de7bd
test esi, 0x200
jne 0x202de407
jmp 0x202de7b4
xor eax, eax
test esi, 0x100
jne 0x202de37d
test si, si
js 0x202de846
mov eax, 1
mov ecx, 0x3ef665a1
mov edx, 0xc1099a73
mov r8d, 0x3ef665a2
mov r9d, 0xc1099a72
mov r10d, 0x86186187
lea r11, [0x20546a50]
lea rdi, [0x20433f80]
jmp 0x202de6b0
movabs rax, 0x42ea13b74e62b2c1
xor qword [0x20546a70], rax
lea r8, [0x20546a78]
xor byte [0x20546a78], 0x68
mov al, 0xb5
xchg byte [0x20546a79], al
test esi, 0x4000
je 0x202de300
jmp 0x202de7b4