Function at 0x20209960
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x108
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x80], 0xfffffffffffffffe
mov rsi, rcx
mov qword [rbp - 0x18], 0
mov qword [rbp - 0x10], 0xf
mov byte [rbp - 0x28], 0
lea rax, [0x2037f380]
mov qword [rbp - 0x30], rax
mov qword [rbp - 8], 0
mov qword [rbp + 0x18], 0
mov qword [rbp + 0x20], 0xf
mov byte [rbp + 8], 0
lea rax, [0x2036e458]
mov qword [rbp], rax
mov qword [rbp - 0x40], 0
mov qword [rbp - 0x38], 0xf
mov byte [rbp - 0x50], 0
mov qword [rbp - 0x58], rax
cmp byte [rcx + 0x18], 0
je 0x202099fc
add rsi, 0xd0
mov r13, rsi
jmp 0x2020ab27
mov rdi, r9
mov r15, r8
mov r12, rdx
lea r13, [rsi + 0xc8]
mov rax, qword [rsi + 0xc8]
test rax, rax
je 0x20209a25
cmp qword [rax + 0x20], 0x10
jb 0x20209a53
mov rcx, qword [rax + 8]
jmp 0x20209a57
mov ecx, 0x28
call fcn.2032be0c
mov qword [rax + 0x18], 0
mov qword [rax + 0x20], 0xf
mov byte [rax + 8], 0
lea rcx, [0x2036e458]
mov qword [rax], rcx
mov qword [r13], rax
jmp 0x20209a62
lea rcx, [rax + 8]
mov qword [rax + 0x18], 0
mov byte [rcx], 0
mov rdx, qword [rsi + 0x20]
cmp rdx, 0x3e8
je 0x20209a85
cmp rdx, 0xfa0
je 0x20209a85
cmp rdx, 0x7d0
jne 0x20209b18
mov rax, qword [0x204a31b8]
add rax, qword [rdi + 0x20]
cmp rax, 0x10
jb 0x20209ab3
mov rdi, qword [rdi + 8]
cmp qword [r15 + 0x20], 0x10
jae 0x20209abe
add r15, 8
cmp qword [r12 + 0x20], 0x10
jae 0x20209aca
add r12, 8
jmp 0x20209acf
add rdi, 8
cmp qword [r15 + 0x20], 0x10
jb 0x20209aa1
mov r15, qword [r15 + 8]
cmp qword [r12 + 0x20], 0x10
jb 0x20209aad
mov r12, qword [r12 + 8]
lea rcx, [rbp - 0x30]
mov rdx, r12
mov r8, r15
mov r9, rdi
call fcn.202046c0
xor r14d, r14d
mov rax, qword [rsi + 0x20]
cmp rax, 0x7cf
jg 0x20209b00
lea rcx, [rbp - 0x58]
mov edx, 0xd803
call fcn.20203920
jmp 0x20209b6d
cmp rax, 0xf9f
ja 0x20209b5f
lea rcx, [rbp - 0x58]
mov edx, 0xd801
call fcn.20203920
jmp 0x20209b6d
mov rcx, rbp
call fcn.20203920
lea rbx, [rbp + 8]
test al, al
je 0x20209cb4
cmp qword [rdi + 0x20], 0x10
jb 0x20209db2
mov rdi, qword [rdi + 8]
cmp qword [r15 + 0x20], 0x10
jae 0x20209dc1
add r15, 8
cmp qword [r12 + 0x20], 0x10
jae 0x20209dd1
add r12, 8
jmp 0x20209dd6
lea rcx, [rbp - 0x58]
mov edx, 0xd802
call fcn.20203920
cmp qword [0x204a3268], 0
je 0x20209b99
mov rbx, qword [r13]
call fcn.20210b50
mov rcx, rax
call fcn.2020e600
mov r8, qword [rax + 0x18]
cmp qword [rax + 0x20], 0x10
jb 0x20209bcc
mov rax, qword [rax + 8]
jmp 0x20209bd0
call fcn.2020e590
test rax, rax
je 0x20209c03
mov rbx, qword [r13]
call fcn.2020e590
mov rcx, rax
call fcn.2020e600
mov r8, qword [rax + 0x18]
cmp qword [rax + 0x20], 0x10
jb 0x20209d58
mov rax, qword [rax + 8]
jmp 0x20209d5c
add rax, 8
lea rdi, [rbx + 8]
mov rcx, qword [rbx + 0x18]
mov rdx, qword [rbx + 0x20]
mov r9, rdx
sub r9, rcx
cmp r9, r8
jae 0x20209d8b
mov qword [rsp + 0x20], r8
mov rcx, rdi
mov rdx, r8
mov r9, rax
call fcn.20071a30
jmp 0x2020a3e7
lea rcx, [rbp + 0x78]
call fcn.20072ed0
lea rcx, [rbp + 0x78]
lea rdx, [rbp + 0x50]
call fcn.20212830
lea rcx, [rbp + 0x50]
lea rdx, [rbp + 0x28]
xor r8d, r8d
call fcn.201f9820
mov rdi, qword [rbp + 0x40]
mov rax, qword [rbp + 0x48]
cmp rax, 0x10
jb 0x20209c7f
mov rdx, qword [rbp + 0x30]
lea r9, [rax + 1]
cmp r9, 0x1000
jb 0x20209c67
mov rcx, qword [rdx - 8]
add rdx, 0xfffffffffffffff8
sub rdx, rcx
cmp rdx, 0x20
jae 0x2020acae
add rax, 0x28
mov r9, rax
mov rdx, rcx
mov dword [rsp + 0x20], 0x40c0bd58
mov ecx, 1
mov r8d, 1
call fcn.20105c50
mov rbx, qword [r13]
test rdi, rdi
je 0x20209e00
lea rcx, [rbp + 0x50]
lea rdx, [rbp + 0x28]
xor r8d, r8d
call fcn.201f9820
mov r8, qword [rbp + 0x40]
cmp qword [rbp + 0x48], 0x10
jb 0x20209e8b
mov r9, qword [rbp + 0x30]
jmp 0x20209e8f
mov rcx, rbp
mov edx, 0xd800
call fcn.20203920
mov qword [rbp + 0x68], 0
mov qword [rbp + 0x70], 0xf
mov byte [rbp + 0x58], 0
lea rax, [0x2036e458]
mov qword [rbp + 0x50], rax
mov edx, dword [rsi + 0x20]
lea rcx, [rbp + 0x50]
call fcn.20204390
lea r14, [rbp + 0x58]
cmp qword [r12 + 0x18], 0
je 0x2020a017
mov qword [rbp + 0x48], 0xf
mov qword [rbp + 0x40], 2
mov word [rbp + 0x30], 0x202c
mov byte [rbp + 0x32], 0
lea rax, [0x2036e458]
mov qword [rbp + 0x28], rax
mov rax, qword [rbp + 0x68]
mov rcx, qword [rbp + 0x70]
mov rdx, rcx
sub rdx, rax
cmp rdx, 2
jae 0x20209f25
lea r9, [rbp + 0x30]
mov qword [rsp + 0x20], 2
mov edx, 2
mov rcx, r14
call fcn.20071a30
jmp 0x20209f47
add rax, 8
lea rdi, [rbx + 8]
mov rcx, qword [rbx + 0x18]
mov rdx, qword [rbx + 0x20]
mov r9, rdx
sub r9, rcx
cmp r9, r8
jae 0x20209d8b
mov qword [rsp + 0x20], r8
mov rcx, rdi
mov rdx, r8
mov r9, rax
call fcn.20071a30
jmp 0x2020a3e7
lea r15, [rcx + r8]
mov qword [rbx + 0x18], r15
cmp rdx, 0x10
jb 0x20209d9d
mov rdi, qword [rbx + 8]
add rcx, rdi
mov rdx, rax
call fcn.20353d70
mov byte [rdi + r15], 0
jmp 0x2020a3e7
add rdi, 8
cmp qword [r15 + 0x20], 0x10
jb 0x20209b46
mov r15, qword [r15 + 8]
cmp qword [r12 + 0x20], 0x10
jb 0x20209b56
mov r12, qword [r12 + 8]
cmp qword [rbp + 0x20], 0x10
jb 0x20209de1
mov rbx, qword [rbp + 8]
mov r14b, 1
mov qword [rsp + 0x20], rdi
lea rcx, [rbp - 0x30]
mov rdx, rbx
mov r8, r12
mov r9, r15
call fcn.202046c0
jmp 0x20209ae4
lea rdi, [rbp + 0x30]
mov qword [rbp + 0x48], 0xf
mov qword [rbp + 0x40], 9
mov dword [rsp + 0x20], 0x20249e05
xor ecx, ecx
mov edx, 1
xor r8d, r8d
xor r9d, r9d
call fcn.2020be30
movzx ecx, byte [rax + 8]
mov byte [rbp + 0x38], cl
mov rax, qword [rax]
mov qword [rbp + 0x30], rax
mov byte [rbp + 0x39], 0
lea rcx, [0x2036e458]
mov qword [rbp + 0x28], rcx
cmp qword [rbp + 0x48], 0x10
lea rcx, [rbx + 8]
cmovae rdi, rax
mov rax, qword [rbx + 0x18]
mov rdx, qword [rbx + 0x20]
mov r8, rdx
sub r8, rax
cmp r8, 9
jae 0x2020a312
mov qword [rsp + 0x20], 9
mov edx, 9
mov r9, rdi
call fcn.20071a30
jmp 0x2020a33a
lea r9, [rbp + 0x30]
lea rdi, [rbx + 8]
mov rcx, qword [rbx + 0x18]
mov rax, qword [rbx + 0x20]
mov rdx, rax
sub rdx, rcx
cmp rdx, r8
jae 0x20209eb8
mov qword [rsp + 0x20], r8
mov rcx, rdi
mov rdx, r8
call fcn.20071a30
jmp 0x20209eda
lea r15, [rcx + r8]
mov qword [rbx + 0x18], r15
cmp rax, 0x10
jb 0x20209eca
mov rdi, qword [rbx + 8]
add rcx, rdi
mov rdx, r9
call fcn.20353d70
mov byte [rdi + r15], 0
mov rax, qword [rbp + 0x48]
cmp rax, 0x10
jb 0x2020a38c
mov rdx, qword [rbp + 0x30]
mov rcx, rax
xor rcx, 1
mov r8d, eax
and r8d, 1
lea r9, [rcx + r8*2]
cmp r9, 0x1000
jb 0x2020a374
mov rcx, qword [rdx - 8]
add rdx, 0xfffffffffffffff8
sub rdx, rcx
cmp rdx, 0x20
jb 0x2020a36a
call fcn.2030c4cc
lea rdx, [rax + 2]
mov qword [rbp + 0x68], rdx
mov rdx, r14
cmp rcx, 0x10
jb 0x20209f3a
mov rdx, qword [rbp + 0x58]
movzx ecx, word [rbp + 0x30]
mov word [rdx + rax], cx
mov byte [rdx + rax + 2], 0
mov r8, qword [r12 + 0x18]
cmp qword [r12 + 0x20], 0x10
jb 0x20209f5b
mov r12, qword [r12 + 8]
jmp 0x20209f5f
add r12, 8
mov rcx, qword [rbp + 0x68]
mov rax, qword [rbp + 0x70]
mov rdx, rax
sub rdx, rcx
cmp rdx, r8
jae 0x20209f87
mov qword [rsp + 0x20], r8
mov rcx, r14
mov rdx, r8
mov r9, r12
call fcn.20071a30
jmp 0x20209fb1
lea rbx, [rcx + r8]
mov qword [rbp + 0x68], rbx
cmp rax, 0x10
jb 0x20209f99
mov r14, qword [rbp + 0x58]
add rcx, r14
mov rdx, r12
call fcn.20353d70
mov byte [r14 + rbx], 0
lea rbx, [rbp + 8]
lea r14, [rbp + 0x58]
mov rax, qword [rbp + 0x48]
cmp rax, 0x10
jb 0x2020a017
mov rdx, qword [rbp + 0x30]
lea r9, [rax + 1]
cmp r9, 0x1000
jb 0x20209fff
mov rcx, qword [rdx - 8]
mov r8, rdx
xor r8, 0xfffffffffffffff8
movabs r9, 0x7ffffffffffffff8
and r9, rdx
lea rdx, [r8 + r9*2]
sub rdx, rcx
cmp rdx, 0x20
jae 0x2020acbd
add rax, 0x28
mov r9, rax
mov rdx, rcx
mov dword [rsp + 0x20], 0x40c0bd58
mov ecx, 1
mov r8d, 1
call fcn.20105c50
cmp qword [r15 + 0x18], 0
je 0x2020a154
mov qword [rbp + 0x48], 0xf
mov qword [rbp + 0x40], 2
mov word [rbp + 0x30], 0x202c
mov byte [rbp + 0x32], 0
lea rax, [0x2036e458]
mov qword [rbp + 0x28], rax
mov rax, qword [rbp + 0x68]
mov rcx, qword [rbp + 0x70]
mov rdx, rcx
sub rdx, rax
cmp rdx, 2
jae 0x2020a077
lea r9, [rbp + 0x30]
mov qword [rsp + 0x20], 2
mov edx, 2
mov rcx, r14
call fcn.20071a30
jmp 0x2020a099
lea rdx, [rax + 2]
mov qword [rbp + 0x68], rdx
mov rdx, r14
cmp rcx, 0x10
jb 0x2020a08c
mov rdx, qword [rbp + 0x58]
movzx ecx, word [rbp + 0x30]
mov word [rdx + rax], cx
mov byte [rdx + rax + 2], 0
mov r8, qword [r15 + 0x18]
cmp qword [r15 + 0x20], 0x10
jb 0x2020a0aa
mov r15, qword [r15 + 8]
jmp 0x2020a0ae
add r15, 8
mov rcx, qword [rbp + 0x68]
mov rax, qword [rbp + 0x70]
mov rdx, rax
sub rdx, rcx
cmp rdx, r8
jae 0x2020a0d6
mov qword [rsp + 0x20], r8
mov rcx, r14
mov rdx, r8
mov r9, r15
call fcn.20071a30
jmp 0x2020a102
lea rbx, [rcx + r8]
mov qword [rbp + 0x68], rbx
mov r12, r14
cmp rax, 0x10
jb 0x2020a0eb
mov r14, qword [rbp + 0x58]
add rcx, r14
mov rdx, r15
call fcn.20353d70
mov byte [r14 + rbx], 0
lea rbx, [rbp + 8]
mov r14, r12
mov rax, qword [rbp + 0x48]
cmp rax, 0x10
jb 0x2020a154
mov rdx, qword [rbp + 0x30]
lea r9, [rax + 1]
cmp r9, 0x1000
jb 0x2020a13c
mov rcx, qword [rdx - 8]
sub rdx, rcx
add rdx, 0xfffffffffffffff8
cmp rdx, 0x20
jae 0x2020acc2
add rax, 0x28
mov r9, rax
mov rdx, rcx
mov dword [rsp + 0x20], 0x40c0bd58
mov ecx, 1
mov r8d, 1
call fcn.20105c50
cmp qword [rdi + 0x18], 0
je 0x2020a293
mov qword [rbp + 0x48], 0xf
mov qword [rbp + 0x40], 2
mov word [rbp + 0x30], 0x202c
mov byte [rbp + 0x32], 0
lea rax, [0x2036e458]
mov qword [rbp + 0x28], rax
mov rax, qword [rbp + 0x68]
mov rcx, qword [rbp + 0x70]
mov rdx, rcx
sub rdx, rax
cmp rdx, 2
jae 0x2020a1b4
lea r9, [rbp + 0x30]
mov qword [rsp + 0x20], 2
mov edx, 2
mov rcx, r14
call fcn.20071a30
jmp 0x2020a1d6
lea rdx, [rax + 2]
mov qword [rbp + 0x68], rdx
mov rdx, r14
cmp rcx, 0x10
jb 0x2020a1c9
mov rdx, qword [rbp + 0x58]
movzx ecx, word [rbp + 0x30]
mov word [rdx + rax], cx
mov byte [rdx + rax + 2], 0
mov r8, qword [rdi + 0x18]
cmp qword [rdi + 0x20], 0x10
jb 0x2020a1e7
mov rdi, qword [rdi + 8]
jmp 0x2020a1eb
add rdi, 8
mov rcx, qword [rbp + 0x68]
mov rax, qword [rbp + 0x70]
mov rdx, rax
sub rdx, rcx
cmp rdx, r8
jae 0x2020a213
mov qword [rsp + 0x20], r8
mov rcx, r14
mov rdx, r8
mov r9, rdi
call fcn.20071a30
jmp 0x2020a241
mov r15, rbx
lea rbx, [r8 + rcx]
mov qword [rbp + 0x68], rbx
mov r12, r14
cmp rax, 0x10
jb 0x2020a22b
mov r14, qword [rbp + 0x58]
add rcx, r14
mov rdx, rdi
call fcn.20353d70
mov byte [r14 + rbx], 0
mov rbx, r15
mov r14, r12
mov rax, qword [rbp + 0x48]
cmp rax, 0x10
jb 0x2020a293
mov rdx, qword [rbp + 0x30]
lea r9, [rax + 1]
cmp r9, 0x1000
jb 0x2020a27b
mov rcx, qword [rdx - 8]
sub rdx, rcx
add rdx, 0xfffffffffffffff8
cmp rdx, 0x20
jae 0x2020acc7
add rax, 0x28
mov r9, rax
mov rdx, rcx
mov dword [rsp + 0x20], 0x40c0bd58
mov ecx, 1
mov r8d, 1
call fcn.20105c50
cmp qword [rbp + 0x70], 0x10
jb 0x2020a29e
mov r14, qword [rbp + 0x58]
cmp qword [rbp + 0x20], 0x10
jb 0x2020a2a9
mov rbx, qword [rbp + 8]
lea rcx, [rbp - 0x30]
mov rdx, rbx
mov r8, r14
call fcn.202046c0
mov rax, qword [rbp + 0x70]
cmp rax, 0x10
jb 0x2020a30a
mov rdx, qword [rbp + 0x58]
lea r9, [rax + 1]
cmp r9, 0x1000
jb 0x2020a2f2
mov rcx, qword [rdx - 8]
add rdx, 0xfffffffffffffff8
sub rdx, rcx
cmp rdx, 0x20
jae 0x2020acb8
add rax, 0x28
mov r9, rax
mov rdx, rcx
mov dword [rsp + 0x20], 0x40c0bd58
mov ecx, 1
mov r8d, 1
call fcn.20105c50
mov r14b, 1
jmp 0x20209ae4
lea r8, [rax + 9]
mov qword [rbx + 0x18], r8
cmp rdx, 0x10
jb 0x2020a324
mov rcx, qword [rbx + 8]
mov rdx, qword [rdi]
movzx r8d, byte [rdi + 8]
mov byte [rcx + rax + 8], r8b
mov qword [rcx + rax], rdx
mov byte [rcx + rax + 9], 0
mov rax, qword [rbp + 0x48]
cmp rax, 0x10
jb 0x2020a38c
mov rdx, qword [rbp + 0x30]
lea r9, [rax + 1]
cmp r9, 0x1000
jb 0x2020a374
mov rcx, qword [rdx - 8]
add rdx, 0xfffffffffffffff8
sub rdx, rcx
cmp rdx, 0x20
jae 0x2020accc
add rax, 0x28
mov r9, rax
mov rdx, rcx
mov dword [rsp + 0x20], 0x40c0bd58
mov ecx, 1
mov r8d, 1
call fcn.20105c50
mov rax, qword [rbp + 0x70]
cmp rax, 0x10
jb 0x2020a3de
mov rdx, qword [rbp + 0x58]
lea r9, [rax + 1]
cmp r9, 0x1000
jb 0x2020a3c6
mov rcx, qword [rdx - 8]
add rdx, 0xfffffffffffffff8
sub rdx, rcx
cmp rdx, 0x20
jae 0x2020acb3
add rax, 0x28
mov r9, rax
mov rdx, rcx
mov dword [rsp + 0x20], 0x40c0bd58
mov ecx, 1
mov r8d, 1
call fcn.20105c50
lea rcx, [rbp + 0x78]
call fcn.20110dc0
mov rdi, qword [rbp + 0xf0]
cmp qword [rdi + 0x18], 0
je 0x2020a549
mov r15, qword [r13]
lea r9, [rbp + 0x58]
mov qword [rbp + 0x70], 0xf
mov qword [rbp + 0x68], 2
mov word [rbp + 0x58], 0x202c
mov byte [rbp + 0x5a], 0
lea rax, [0x2036e458]
mov qword [rbp + 0x50], rax
lea rbx, [r15 + 8]
mov rax, qword [r15 + 0x18]
mov rcx, qword [r15 + 0x20]
mov rdx, rcx
sub rdx, rax
cmp rdx, 2
jae 0x2020a456
mov qword [rsp + 0x20], 2
mov edx, 2
mov rcx, rbx
call fcn.20071a30
jmp 0x2020a478
lea rdx, [rax + 2]
mov qword [r15 + 0x18], rdx
mov rdx, rbx
cmp rcx, 0x10
jb 0x2020a46b
mov rdx, qword [r15 + 8]
movzx ecx, word [r9]
mov word [rdx + rax], cx
mov byte [rdx + rax + 2], 0
mov r8, qword [rdi + 0x18]
cmp qword [rdi + 0x20], 0x10
jb 0x2020a489
mov rdi, qword [rdi + 8]
jmp 0x2020a48d
add rdi, 8
mov rcx, qword [r15 + 0x18]
mov rax, qword [r15 + 0x20]
mov rdx, rax
sub rdx, rcx
cmp rdx, r8
jae 0x2020a4b5
mov qword [rsp + 0x20], r8
mov rcx, rbx
mov rdx, r8
mov r9, rdi
call fcn.20071a30
jmp 0x2020a4e3
mov rdx, rcx
xor rdx, r8
mov r9, rcx
and r9, r8
lea r12, [rdx + r9*2]
mov qword [r15 + 0x18], r12
cmp rax, 0x10
jb 0x2020a4d3
mov rbx, qword [r15 + 8]
add rcx, rbx
mov rdx, rdi
call fcn.20353d70
mov byte [rbx + r12], 0
mov rax, qword [rbp + 0x70]
cmp rax, 0x10
jb 0x2020a549
mov rdx, qword [rbp + 0x58]
lea r9, [rax + 1]
cmp r9, 0x1000
jb 0x2020a531
mov rcx, qword [rdx - 8]
mov r8, rdx
xor r8, 0xfffffffffffffff8
movabs r9, 0x7ffffffffffffff8
and r9, rdx
lea rdx, [r8 + r9*2]
sub rdx, rcx
cmp rdx, 0x20
jae 0x2020ac9f
add rax, 0x28
mov r9, rax
mov rdx, rcx
mov dword [rsp + 0x20], 0x40c0bd58
mov ecx, 1
mov r8d, 1
call fcn.20105c50
mov r15, qword [r13]
lea rdi, [rbp + 0x58]
mov qword [rbp + 0x70], 0xf
mov qword [rbp + 0x68], 2
mov word [rbp + 0x58], 0x203a
mov byte [rbp + 0x5a], 0
lea rax, [0x2036e458]
mov qword [rbp + 0x50], rax
lea rbx, [r15 + 8]
mov rax, qword [r15 + 0x18]
mov rcx, qword [r15 + 0x20]
mov rdx, rcx
sub rdx, rax
cmp rdx, 2
jae 0x2020a5a9
mov qword [rsp + 0x20], 2
mov edx, 2
mov rcx, rbx
mov r9, rdi
call fcn.20071a30
jmp 0x2020a5ca
lea rdx, [rax + 2]
mov qword [r15 + 0x18], rdx
mov rdx, rbx
cmp rcx, 0x10
jb 0x2020a5be
mov rdx, qword [r15 + 8]
movzx ecx, word [rdi]
mov word [rdx + rax], cx
mov byte [rdx + rax + 2], 0
mov r8, qword [rbp - 0x40]
cmp qword [rbp - 0x38], 0x10
jb 0x2020a5db
mov r9, qword [rbp - 0x50]
jmp 0x2020a5df
lea r9, [rbp - 0x50]
mov rcx, qword [r15 + 0x18]
mov rax, qword [r15 + 0x20]
mov rdx, rax
sub rdx, rcx
cmp rdx, r8
jae 0x2020a604
mov qword [rsp + 0x20], r8
mov rcx, rbx
mov rdx, r8
call fcn.20071a30
jmp 0x2020a626
lea r12, [rcx + r8]
mov qword [r15 + 0x18], r12
cmp rax, 0x10
jb 0x2020a616
mov rbx, qword [r15 + 8]
add rcx, rbx
mov rdx, r9
call fcn.20353d70
mov byte [rbx + r12], 0
mov rax, qword [rbp + 0x70]
cmp rax, 0x10
jb 0x2020a68c
mov rdx, qword [rbp + 0x58]
lea r9, [rax + 1]
cmp r9, 0x1000
jb 0x2020a674
mov rcx, qword [rdx - 8]
mov r8, rdx
xor r8, 0xfffffffffffffff8
movabs r9, 0x7ffffffffffffff8
and r9, rdx
lea rdx, [r8 + r9*2]
sub rdx, rcx
cmp rdx, 0x20
jae 0x2020ac90
add rax, 0x28
mov r9, rax
mov rdx, rcx
mov dword [rsp + 0x20], 0x40c0bd58
mov ecx, 1
mov r8d, 1
call fcn.20105c50
test r14b, r14b
je 0x2020a905
mov rbx, qword [r13]
lea r9, [rbp + 0x58]
mov qword [rbp + 0x70], 0xf
mov qword [rbp + 0x68], 1
mov word [rbp + 0x58], 0x20
lea rax, [0x2036e458]
mov qword [rbp + 0x50], rax
lea r14, [rbx + 8]
mov rax, qword [rbx + 0x18]
mov rdx, qword [rbx + 0x20]
cmp rdx, rax
jne 0x2020a6e7
mov qword [rsp + 0x20], 1
mov edx, 1
mov rcx, r14
call fcn.20071a30
jmp 0x2020a70e
lea rcx, [rax + 1]
mov qword [rbx + 0x18], rcx
mov rcx, r14
cmp rdx, 0x10
jb 0x2020a6fc
mov rcx, qword [rbx + 8]
movzx edx, byte [0x204a31b0]
add dl, byte [r9]
mov byte [rcx + rax], dl
mov byte [rcx + rax + 1], 0
lea r15, [rbp + 0x30]
mov qword [rbp + 0x40], 0
mov qword [rbp + 0x48], 0xf
mov byte [rbp + 0x30], 0
lea rcx, [0x204a3188]
mov edx, 0x8c5eed36
call fcn.20080a60
mov r12, rax
cmp rax, 0xf
jbe 0x2020a754
lea r9, [0x204a3188]
mov rcx, r15
mov rdx, r12
call fcn.200712e0
jmp 0x2020a770
mov qword [rbp + 0x40], r12
lea rdx, [0x204a3188]
mov rcx, r15
mov r8, r12
call fcn.20353d70
mov byte [rbp + r12 + 0x30], 0
lea rax, [0x2036e458]
mov qword [rbp + 0x28], rax
mov r8, qword [rbp + 0x40]
cmp qword [rbp + 0x48], 0x10
jb 0x2020a78a
mov r15, qword [rbp + 0x30]
mov rcx, qword [rbx + 0x18]
mov rax, qword [rbx + 0x20]
mov rdx, rax
sub rdx, rcx
cmp rdx, r8
jae 0x2020a7b2
mov qword [rsp + 0x20], r8
mov rcx, r14
mov rdx, r8
mov r9, r15
call fcn.20071a30
jmp 0x2020a7d4
lea r12, [rcx + r8]
mov qword [rbx + 0x18], r12
cmp rax, 0x10
jb 0x2020a7c4
mov r14, qword [rbx + 8]
add rcx, r14
mov rdx, r15
call fcn.20353d70
mov byte [r14 + r12], 0
mov edx, dword [rsi + 0x20]
mov rcx, rbx
call fcn.20204390
mov rax, qword [rbp + 0x48]
cmp rax, 0x10
jb 0x2020a83f
mov rdx, qword [rbp + 0x30]
mov rcx, rax
xor rcx, 1
mov r8d, eax
and r8d, 1
lea r9, [rcx + r8*2]
cmp r9, 0x1000
jb 0x2020a827
mov rcx, qword [rdx - 8]
sub rdx, rcx
add rdx, 0xfffffffffffffff8
cmp rdx, 0x20
jae 0x2020aca4
add rax, 0x28
mov r9, rax
mov rdx, rcx
mov dword [rsp + 0x20], 0x40c0bd58
mov ecx, 1
mov r8d, 1
call fcn.20105c50
mov r9, qword [0x2046a0a8]
movsxd r10, dword [r9]
mov edx, dword [0x2037f088]
mov rax, qword [rbp + 0x70]
cmp rax, 0xf
jbe 0x2020a905
mov ecx, dword [0x2046a0a0]
lea r8d, [rcx + 1]
mov dword [0x2046a0a0], r8d
test ecx, r8d
jne 0x2020a888
mov r11, r10
xor r11, r9
and r10, r9
lea r9, [r11 + r10*2]
test edx, edx
jg 0x2020ac66
xor r10d, r10d
mov rdx, qword [rbp + 0x58]
lea r9, [rax + 1]
cmp r9, 0xfff
jbe 0x2020a8ed
mov r11, qword [rdx - 8]
sub rdx, r11
add rdx, 0xfffffffffffffff8
cmp rdx, 0x20
jae 0x2020aca9
movzx edx, byte [0x2037f080]
test ecx, r8d
setne r8b
mov ecx, r8d
neg cl
dec r8b
sub dl, r10b
mov r9d, edx
not r9b
xor dl, r8b
and r9b, cl
or r9b, dl
not r9b
add byte [0x204a31b0], r9b
add rax, 0x28
mov r9, rax
mov rdx, r11
mov dword [rsp + 0x20], 0x40c0bd58
mov ecx, 1
mov r8d, 1
call fcn.20105c50
mov rbx, qword [r13]
mov qword [rbp + 0x70], 0xf
mov qword [rbp + 0x68], 3
mov dword [rsp + 0x20], 0x957b39cc
xor ecx, ecx
mov edx, 1
mov r8d, 1
xor r9d, r9d
call fcn.2020b650
movzx ecx, word [rax]
mov word [rbp + 0x58], cx
movzx eax, byte [rax + 2]
mov byte [rbp + 0x5a], al
mov byte [rbp + 0x5b], 0
lea rax, [0x2036e458]
mov qword [rbp + 0x50], rax
cmp qword [rbp + 0x70], 0x10
jb 0x2020a95e
mov rdi, qword [rbp + 0x58]
lea rsi, [rbx + 8]
mov rax, qword [rbx + 0x18]
mov rcx, qword [rbx + 0x20]
mov rdx, rcx
sub rdx, rax
cmp rdx, 3
jae 0x2020a991
mov qword [rsp + 0x20], 3
mov edx, 3
mov rcx, rsi
mov r9, rdi
call fcn.20071a30
jmp 0x2020a9bc
lea rdx, [rax + 3]
mov qword [rbx + 0x18], rdx
mov rdx, rsi
cmp rcx, 0x10
jb 0x2020a9a6
mov rdx, qword [rbx + 8]
movzx ecx, word [rdi]
movzx r8d, byte [rdi + 2]
mov byte [rdx + rax + 2], r8b
mov word [rdx + rax], cx
mov byte [rdx + rax + 3], 0
mov r8, qword [rbp - 0x18]
cmp qword [rbp - 0x10], 0x10
jb 0x2020a9cd
mov r9, qword [rbp - 0x28]
jmp 0x2020a9d1
lea r9, [rbp - 0x28]
mov rcx, qword [rbx + 0x18]
mov rax, qword [rbx + 0x20]
mov rdx, rax
sub rdx, rcx
cmp rdx, r8
jae 0x2020a9f6
mov qword [rsp + 0x20], r8
mov rcx, rsi
mov rdx, r8
call fcn.20071a30
jmp 0x2020aa1b
lea rdi, [rcx + r8]
mov qword [rbx + 0x18], rdi
mov r14, rsi
cmp rax, 0x10
jb 0x2020aa0b
mov r14, qword [rbx + 8]
add rcx, r14
mov rdx, r9
call fcn.20353d70
mov byte [r14 + rdi], 0
mov qword [rbp + 0x48], 0xf
mov qword [rbp + 0x40], 1
mov word [rbp + 0x30], 0x2e
lea rax, [0x2036e458]
mov qword [rbp + 0x28], rax
mov rax, qword [rbx + 0x18]
mov rcx, qword [rbx + 0x20]
cmp rcx, rax
jne 0x2020aa65
lea r9, [rbp + 0x30]
mov qword [rsp + 0x20], 1
mov edx, 1
mov rcx, rsi
call fcn.20071a30
jmp 0x2020aa83
lea rdx, [rax + 1]
mov qword [rbx + 0x18], rdx
cmp rcx, 0x10
jb 0x2020aa77
mov rsi, qword [rbx + 8]
movzx ecx, byte [rbp + 0x30]
mov byte [rsi + rax], cl
mov byte [rsi + rax + 1], 0
mov rax, qword [rbp + 0x48]
cmp rax, 0x10
jb 0x2020aad5
mov rdx, qword [rbp + 0x30]
lea r9, [rax + 1]
cmp r9, 0x1000
jb 0x2020aabd
mov rcx, qword [rdx - 8]
add rdx, 0xfffffffffffffff8
sub rdx, rcx
cmp rdx, 0x20
jae 0x2020ac95
add rax, 0x28
mov r9, rax
mov rdx, rcx
mov dword [rsp + 0x20], 0x40c0bd58
mov ecx, 1
mov r8d, 1
call fcn.20105c50
mov rax, qword [rbp + 0x70]
cmp rax, 0x10
jb 0x2020ab27
mov rdx, qword [rbp + 0x58]
lea r9, [rax + 1]
cmp r9, 0x1000
jb 0x2020ab0f
mov rcx, qword [rdx - 8]
add rdx, 0xfffffffffffffff8
sub rdx, rcx
cmp rdx, 0x20
jae 0x2020ac9a
add rax, 0x28
mov r9, rax
mov rdx, rcx
mov dword [rsp + 0x20], 0x40c0bd58
mov ecx, 1
mov r8d, 1
call fcn.20105c50
mov rsi, qword [r13]
mov rdi, qword [rsi + 8]
mov rbx, qword [rsi + 0x20]
mov rax, qword [rbp - 0x38]
cmp rax, 0x10
jb 0x2020ab85
mov rdx, qword [rbp - 0x50]
lea r9, [rax + 1]
cmp r9, 0x1000
jb 0x2020ab6d
mov rcx, qword [rdx - 8]
add rdx, 0xfffffffffffffff8
sub rdx, rcx
cmp rdx, 0x20
jae 0x2020ac81
add rax, 0x28
mov r9, rax
mov rdx, rcx
mov dword [rsp + 0x20], 0x40c0bd58
mov ecx, 1
mov r8d, 1
call fcn.20105c50
mov rax, qword [rbp + 0x20]
cmp rax, 0x10
jb 0x2020abd7
mov rdx, qword [rbp + 8]
lea r9, [rax + 1]
cmp r9, 0x1000
jb 0x2020abbf
mov rcx, qword [rdx - 8]
add rdx, 0xfffffffffffffff8
sub rdx, rcx
cmp rdx, 0x20
jae 0x2020ac86
add rax, 0x28
mov r9, rax
mov rdx, rcx
mov dword [rsp + 0x20], 0x40c0bd58
mov ecx, 1
mov r8d, 1
call fcn.20105c50
lea rax, [0x2037f380]
mov qword [rbp - 0x30], rax
mov rcx, qword [rbp - 8]
test rcx, rcx
je 0x2020abf5
mov edx, 0xbb6fb379
call fcn.200807c0
mov rax, qword [rbp - 0x10]
cmp rax, 0x10
jb 0x2020ac43
mov rdx, qword [rbp - 0x28]
lea r9, [rax + 1]
cmp r9, 0x1000
jb 0x2020ac2b
mov rcx, qword [rdx - 8]
add rdx, 0xfffffffffffffff8
sub rdx, rcx
cmp rdx, 0x20
jae 0x2020ac8b
add rax, 0x28
mov r9, rax
mov rdx, rcx
mov dword [rsp + 0x20], 0x40c0bd58
mov ecx, 1
mov r8d, 1
call fcn.20105c50
add rsi, 8
cmp rbx, 0x10
cmovae rsi, rdi
mov rax, rsi
add rsp, 0x108
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
xor r11d, r11d
xor r10d, r10d
nop dword [rax]
xor r10b, byte [r9 + r11]
inc r11
cmp r11d, edx
jl 0x2020ac70
jmp 0x2020a88b
call fcn.2030c4cc
call fcn.2030c4cc
call fcn.2030c4cc
call fcn.2030c4cc
call fcn.2030c4cc
call fcn.2030c4cc
call fcn.2030c4cc
call fcn.2030c4cc
call fcn.2030c4cc
call fcn.2030c4cc
call fcn.2030c4cc
call fcn.2030c4cc
call fcn.2030c4cc
call fcn.2030c4cc
call fcn.2030c4cc
call fcn.2030c4cc
int3