Function at 0x200ab070
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x128
lea rbp, [rsp + 0x80]
mov qword [rbp + 0xa0], 0xfffffffffffffffe
mov qword [rbp + 0x98], r9
mov r14, r8
mov qword [rbp + 0x90], rdx
mov qword [rbp + 0x88], rcx
mov eax, dword [rbp + 0x120]
and eax, 0xf
cmp eax, 4
jbe 0x200ab1ff
cmp eax, 6
jbe 0x200ab345
cmp eax, 7
jne 0x200ab44b
nop
mov rcx, qword [rbp + 0x88]
mov rbx, qword [rcx + 0x10]
movabs r12, 0x7fffffffffffffff
mov rax, rbx
xor rax, r12
cmp rax, r14
jb 0x200ac078
lea rsi, [rcx + 0x10]
add r14, rbx
lea rdi, [rcx + 0x18]
mov r8, qword [rcx + 0x18]
movabs rcx, 0x8000000000000000
test r14, r14
nop
mov qword [rbp + 0x90], r8
js 0x200ab162
mov rax, r8
shr rax, 1
mov rdx, rax
xor rdx, r12
cmp rdx, r8
jb 0x200ab162
mov rcx, r14
or rcx, 0xf
add rax, qword [rbp + 0x90]
cmp rcx, rax
mov r12, rax
cmova r12, rcx
lea rcx, [r12 + 1]
cmp rcx, 0x1000
jb 0x200aba9d
cmp rcx, 0xffffffffffffffd9
jae 0x200ac20e
add rcx, 0x27
call fcn.20077cb0
lea r15, [rax + 0x27]
and r15, 0xffffffffffffffe0
mov qword [r15 - 8], rax
nop
mov qword [rsi], r14
mov qword [rdi], r12
mov rdi, qword [rbp + 0x90]
cmp rdi, 0x10
jb 0x200ab7d9
nop
mov rax, qword [rbp + 0x88]
mov r14, qword [rax]
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rbx
mov ecx, 0xded3a73c
mov rdx, r14
call fcn.200afa10
add rbx, r15
mov qword [rsp + 0x28], rbx
mov rsi, qword [rbp + 0x98]
mov qword [rsp + 0x20], rsi
mov ecx, 0xded3a73c
mov rdx, qword [rbp + 0x118]
call fcn.200afa10
mov byte [rsi + rbx], 0
lea r8, [rdi + 1]
cmp r8, 0xfff
jbe 0x200ab624
lea rax, [rbp - 0x10]
mov qword [rbp + 0x98], rax
lea r9, [rbp - 0x10]
jmp 0x200ab5f2
cmp eax, 2
jae 0x200ab40f
test eax, eax
je 0x200ab641
nop
mov rcx, qword [rbp + 0x98]
mov r14, qword [rcx + 0x10]
movabs rdi, 0x7fffffffffffffff
mov rax, r14
xor rax, rdi
mov r12, qword [rbp + 0x118]
cmp rax, r12
jb 0x200ac073
add r12, r14
mov rsi, qword [rcx + 0x18]
movabs rcx, 0x8000000000000000
js 0x200ab28f
mov rax, rsi
shr rax, 1
mov rdx, rax
xor rdx, rdi
cmp rdx, rsi
jb 0x200ab28f
mov rcx, r12
or rcx, 0xf
add rax, rsi
cmp rcx, rax
mov rdi, rax
cmova rdi, rcx
lea rcx, [rdi + 1]
cmp rcx, 0x1000
jb 0x200ab9b9
cmp rcx, 0xffffffffffffffd9
jae 0x200ac189
add rcx, 0x27
call fcn.20077cb0
lea r15, [rax + 0x27]
and r15, 0xffffffffffffffe0
mov qword [r15 - 8], rax
nop
mov r13, qword [rbp + 0x98]
mov qword [r13 + 0x10], r12
mov qword [r13 + 0x18], rdi
cmp rsi, 0x10
jb 0x200ab796
nop
mov rdi, qword [r13]
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], r14
mov ecx, 0xded3a73c
mov rdx, rdi
call fcn.200afa10
add r14, r15
mov rcx, r14
mov rdx, qword [rbp + 0x110]
mov rbx, qword [rbp + 0x90]
mov r8, rbx
call fcn.203f1830
mov byte [rbx + r14], 0
lea r8, [rsi + 1]
cmp r8, 0x1000
jb 0x200ab328
nop
mov rax, qword [rdi - 8]
add rdi, 0xfffffffffffffff8
sub rdi, rax
cmp rdi, 0x20
jae 0x200ac184
add rsi, 0x28
mov r8, rsi
mov rdi, rax
nop
mov qword [rsp + 0x28], rdi
mov ecx, 0xdfa02068
call fcn.200afa10
nop
mov r13, qword [rbp + 0x98]
jmp 0x200ab7cf
cmp eax, 5
jne 0x200ab591
nop
mov rcx, qword [rbp + 0x98]
mov rdi, qword [rcx + 0x10]
movabs r15, 0x7fffffffffffffff
mov rax, rdi
xor rax, r15
mov rdx, qword [rbp + 0x118]
cmp rax, rdx
jb 0x200ac07d
mov rbx, rdi
add rbx, rdx
mov rsi, qword [rcx + 0x18]
movabs rcx, 0x8000000000000000
js 0x200ab3d0
mov rax, rsi
shr rax, 1
mov rdx, rax
xor rdx, r15
cmp rdx, rsi
jb 0x200ab3d0
mov rcx, rbx
or rcx, 0xf
add rax, rsi
cmp rcx, rax
mov r15, rax
cmova r15, rcx
lea rcx, [r15 + 1]
cmp rcx, 0x1000
jb 0x200abb33
cmp rcx, 0xffffffffffffffd9
jae 0x200ac213
add rcx, 0x27
call fcn.20077cb0
lea r12, [rax + 0x27]
and r12, 0xffffffffffffffe0
mov qword [r12 - 8], rax
nop
mov r13, qword [rbp + 0x98]
mov qword [r13 + 0x10], rbx
mov qword [r13 + 0x18], r15
cmp rsi, 0xf
jbe 0x200ab8b7
lea r13, [rbp - 0x10]
mov r15, r13
mov rbx, r13
jmp 0x200ac27f
je 0x200ab6b1
cmp eax, 4
jne 0x200ab6fe
mov eax, 0xffffffff
mov rcx, qword [rbp + 0x90]
test byte [rcx + 0x70], 2
jne 0x200abdc5
mov rax, qword [rbp + 0x118]
cmp eax, 0xffffffff
jne 0x200aba38
xor eax, eax
jmp 0x200ac052
cmp eax, 8
ja 0x200ab82b
nop
mov eax, dword [0x205060f0]
mov edi, 0x9cc740c6
xor rdi, rax
lea rax, [rbp + 0x70]
mov qword [rsp + 0x28], rax
mov ecx, 0xc2658e92
xor r8d, r8d
mov r9, rdi
call fcn.200afa10
mov rax, qword [0x205725e8]
mov qword [rbp - 0x10], rax
cmp qword [0x205725c8], 0
jne 0x200ab4d5
lea rax, [rbp - 0x40]
mov qword [rsp + 0x28], rax
mov ecx, 0x56fd00f2
xor r8d, r8d
mov r9, rdi
call fcn.200afa10
cmp qword [0x205725c8], 0
jne 0x200ab4cc
nop
movsxd rax, dword [0x20575e18]
inc rax
mov dword [0x20575e18], eax
mov qword [0x205725c8], rax
lea rcx, [rbp - 0x40]
call fcn.20077db0
nop
mov rsi, qword [0x205725c8]
mov rax, qword [rbp + 0x90]
mov rax, qword [rax + 8]
cmp qword [rax + 0x18], rsi
jbe 0x200ab500
nop
mov rcx, qword [rax + 0x10]
mov r13, qword [rcx + rsi*8]
test r13, r13
jne 0x200aba8f
nop
cmp byte [rax + 0x24], 0
je 0x200ab525
call fcn.20077dc0
nop
cmp qword [rax + 0x18], rsi
jbe 0x200ab525
nop
mov rax, qword [rax + 0x10]
mov r13, qword [rax + rsi*8]
test r13, r13
jne 0x200aba8f
nop
mov r13, qword [rbp - 0x10]
test r13, r13
jne 0x200aba8f
lea rax, [rbp - 0x10]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x30], 0x89d4cd20
mov r9, qword [rbp + 0x90]
call fcn.200ab070
cmp rax, 0xffffffffffffffff
je 0x200ac21d
nop
mov rcx, qword [rbp - 0x10]
nop
mov qword [rbp + 0x98], rcx
call fcn.20077da0
nop
mov rcx, qword [rbp + 0x98]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x200c7fcc.0]
mov r13, qword [rbp - 0x10]
mov qword [0x205725e8], r13
jmp 0x200aba8f
mov r13d, 2
cmp qword [rbp + 0x110], 0
je 0x200ac22e
mov eax, dword [rbp + 0x120]
test al, 0x10
je 0x200ab662
nop
mov rax, qword [rbp + 0x110]
cmp qword [rax], 0
jne 0x200ac22e
mov ecx, 0x30
call fcn.20077cb0
mov qword [rbp + 0x98], rax
mov rax, qword [rbp + 0x90]
mov r9, qword [rax + 8]
test r9, r9
je 0x200abec3
lea r15, [rbp - 0x40]
lea r14, [rbp + 0x58]
mov eax, dword [rbp + 0x120]
test al, 0x40
jne 0x200aba23
nop
mov rax, qword [r14 - 8]
add r14, 0xfffffffffffffff8
sub r14, rax
cmp r14, 0x20
jae 0x200ac18e
mov r8, qword [rbp + 0x90]
add r8, 0x28
mov r14, rax
nop
mov qword [rsp + 0x28], r14
mov ecx, 0xb518d08
call fcn.200afa10
nop
mov r13, qword [rbp + 0x88]
jmp 0x200ab821
mov r13d, 4
mov rax, qword [rbp + 0x118]
test rax, rax
je 0x200ac22e
nop
cmp qword [rax], 0
jne 0x200ac22e
mov ecx, 0x30
call fcn.20077cb0
mov qword [rbp + 0x68], rax
mov rax, qword [rbp + 0x98]
mov r9, qword [rax + 8]
test r9, r9
je 0x200aba09
nop
mov rax, qword [r9 + 0x28]
add r9, 0x30
test rax, rax
cmovne r9, rax
mov rbx, r14
lea rsi, [rbp + 0x58]
lea rdi, [rbp - 0x10]
xor r15d, r15d
xor r12d, r12d
mov r14, qword [rbp + 0x118]
jmp 0x200abab9
call fcn.200a9f50
mov rdi, rax
lea rcx, [rbp - 0x10]
call fcn.20077e40
mov rax, qword [rbp + 0x110]
mov qword [rax + 0x10], 0
pxor xmm0, xmm0
movdqu xmmword [rax + 0x20], xmm0
mov qword [rbp + 0x58], rax
lea rcx, [rbp - 0x40]
call fcn.20077e40
test byte [rbp + 0x88], 1
jne 0x200ab914
nop
mov rbx, qword [rdi + 0x10]
jmp 0x200ab929
nop
mov r9d, dword [0x205060ec]
xor r9, 0x56bdf3a3
mov rsi, qword [rbp + 0x88]
mov qword [rsp + 0x28], rsi
mov ecx, 0xf322be72
xor r8d, r8d
call fcn.200afa10
mov qword [rsi + 8], 0
mov byte [rsi + 0x10], 0
mov qword [rsi + 0x18], 0
mov byte [rsi + 0x20], 0
mov qword [rsi + 0x28], 0
mov word [rsi + 0x30], 0
mov qword [rsi + 0x38], 0
mov word [rsi + 0x40], 0
mov qword [rsi + 0x48], 0
mov byte [rsi + 0x50], 0
mov qword [rsi + 0x58], 0
mov byte [rsi + 0x60], 0
mov rdx, qword [rbp + 0x98]
test rdx, rdx
je 0x200ac082
mov rcx, rsi
call fcn.20077dd0
mov r13, qword [rbp + 0x88]
jmp 0x200ac22e
nop
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], r14
mov ecx, 0xded3a73c
mov rdx, r13
call fcn.200afa10
add r14, r15
mov rcx, r14
mov rdx, qword [rbp + 0x110]
mov rsi, qword [rbp + 0x90]
mov r8, rsi
call fcn.203f1830
mov byte [rsi + r14], 0
nop
mov qword [r13], r15
jmp 0x200ac22e
nop
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rbx
mov ecx, 0xded3a73c
mov r13, qword [rbp + 0x88]
mov rdx, r13
call fcn.200afa10
add rbx, r15
mov qword [rsp + 0x28], rbx
mov rsi, qword [rbp + 0x98]
mov qword [rsp + 0x20], rsi
mov ecx, 0xded3a73c
mov rdx, qword [rbp + 0x118]
call fcn.200afa10
mov byte [rsi + rbx], 0
nop
mov qword [r13], r15
jmp 0x200ac22e
nop
mov eax, dword [0x205060f0]
mov qword [rbp + 0x90], rax
mov rcx, qword [rbp + 0x88]
call fcn.200786f0
mov rsi, rax
mov r8, qword [rbp + 0x98]
mov rax, qword [r8]
movsxd rcx, dword [rax + 4]
mov rcx, qword [r8 + rcx + 0x28]
xor edx, edx
mov rbx, rcx
sub rbx, rsi
mov edi, 0
cmovg rdi, rbx
test rcx, rcx
cmovle rdi, rdx
mov qword [rbp + 0x70], r8
movsxd rax, dword [rax + 4]
mov rcx, qword [r8 + rax + 0x48]
test rcx, rcx
je 0x200ab893
nop
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x200c7fcc.0]
nop
mov rdx, qword [rbp + 0x98]
mov rax, qword [rdx]
movsxd rax, dword [rax + 4]
cmp dword [rdx + rax + 0x10], 0
je 0x200ab9cf
nop
mov byte [rbp + 0x78], 0
jmp 0x200abbc6
nop
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r14
mov ecx, 0xded3a73c
mov rdx, r13
call fcn.200afa10
lea rsi, [r12 + r14]
mov rcx, rsi
mov rdx, qword [rbp + 0x110]
mov rbx, qword [rbp + 0x90]
mov r8, rbx
call fcn.203f1830
sub rdi, r14
inc rdi
add r14, r13
add rsi, rbx
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rdi
mov ecx, 0xded3a73c
mov rdx, r14
call fcn.200afa10
jmp 0x200ac348
mov eax, dword [rbp + 0x120]
test al, 0x40
jne 0x200aba8c
lea rbx, [0x204118f8]
mov rcx, rbx
call fcn.200786f0
mov r13, rax
inc r13
mov rcx, r13
call fcn.200a9b70
test rax, rax
je 0x200ac175
mov r12, rax
test r13, r13
je 0x200ab968
nop
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r13
mov ecx, 0xded3a73c
mov rdx, rbx
call fcn.200afa10
nop
mov rsi, qword [rbp + 0x110]
mov qword [rsi + 0x10], r12
mov ecx, 6
call fcn.200a9b70
test rax, rax
je 0x200ac17a
mov rbx, rax
add rsi, 0x20
movzx eax, byte [0x205028a6]
cmp al, 0x98
je 0x200abb78
mov cl, 0xff
nop
mov al, 4
lock cmpxchg byte [0x205028a6], cl
je 0x200abb49
cmp al, 0x98
jne 0x200ab9a0
jmp 0x200abb78
test rcx, rcx
je 0x200abe96
call fcn.20077cb0
mov r15, rax
jmp 0x200ab2a4
nop
mov rcx, qword [rdx + rax + 0x50]
test rcx, rcx
je 0x200abbc1
cmp rcx, rdx
je 0x200abbc1
call fcn.200a63d0
nop
mov rcx, qword [rbp + 0x98]
mov rax, qword [rcx]
movsxd rax, dword [rax + 4]
cmp dword [rcx + rax + 0x10], 0
sete byte [rbp + 0x78]
jmp 0x200abbc6
mov eax, dword [rbp + 0x120]
test al, 0x40
jne 0x200abe06
lea r9, [0x204118f8]
jmp 0x200abac7
nop
mov rax, qword [r9 + 0x28]
add r9, 0x30
test rax, rax
cmovne r9, rax
jmp 0x200abeca
nop
mov rcx, qword [rbp + 0x90]
mov rax, qword [rcx + 0x40]
mov rcx, qword [rcx + 0x58]
mov rbx, qword [rax]
mov eax, dword [rcx]
test rbx, rbx
je 0x200abe58
test eax, eax
jle 0x200abe58
dec eax
mov dword [rcx], eax
mov r8, qword [rbp + 0x90]
mov rax, qword [r8 + 0x40]
mov rcx, qword [rax]
lea rdx, [rcx + 1]
mov qword [rax], rdx
mov rax, qword [rbp + 0x118]
mov byte [rcx], al
inc rbx
mov qword [r8 + 0x68], rbx
jmp 0x200ac052
xor r13d, r13d
lea rcx, [rbp + 0x70]
call fcn.20077db0
jmp 0x200ac22e
test rcx, rcx
je 0x200abea5
call fcn.20077cb0
mov r15, rax
lea rax, [rbp - 0x40]
mov qword [rbp + 0x68], rax
xor r9d, r9d
mov eax, dword [rbp + 0x120]
test al, 0x20
je 0x200ab177
nop
mov dword [rsp + 0x30], 0x723572d3
lea rdi, [rbp - 0x10]
mov rcx, rdi
call fcn.200ab070
nop
mov rsi, qword [rbp + 0x68]
mov dword [rsi + 8], 0
lea rax, [0x20413588]
mov qword [rsi], rax
nop
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rsi
mov dword [rsp + 0x30], 0xd101a3a2
mov ecx, 1
call fcn.200ab070
nop
mov rax, qword [rbp + 0x118]
mov qword [rax], rsi
lea rdx, [rbp - 0x10]
mov ecx, 0x2fb1c0e4
call fcn.200ac8b0
mov r13d, 4
jmp 0x200ac22e
test rcx, rcx
je 0x200abeb4
call fcn.20077cb0
mov r12, rax
jmp 0x200ab3e6
nop
movdqa xmm0, xmmword [0x205028a0]
paddb xmm0, xmmword [0x204130c0]
movd dword [0x205028a0], xmm0
add byte [0x205028a4], 0x51
add byte [0x205028a5], 0x4c
mov al, 0x98
xchg byte [0x205028a6], al
nop
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], 6
lea rdx, [0x205028a0]
mov ecx, 0xded3a73c
call fcn.200afa10
mov qword [rsi], rbx
mov ecx, 5
call fcn.200a9b70
test rax, rax
je 0x200ac17f
mov r13, rax
mov rax, qword [rbp + 0x110]
lea r15, [rax + 0x28]
jmp 0x200ac245
nop
mov byte [rbp + 0x78], 1
nop
cmp byte [rbp + 0x78], 0
je 0x200abd58
nop
mov rdx, qword [rbp + 0x98]
mov rax, qword [rdx]
movsxd rax, dword [rax + 4]
mov ecx, 0x1c0
and ecx, dword [rdx + rax + 0x18]
cmp ecx, 0x40
je 0x200abc76
test rdi, rdi
jle 0x200abc76
xor edi, edi
jmp 0x200abc1e
dec r8d
mov dword [rdx], r8d
mov rcx, qword [rcx + 0x40]
mov rdx, qword [rcx]
lea r8, [rdx + 1]
mov qword [rcx], r8
mov byte [rdx], al
lea rax, [rbx - 1]
cmp rbx, 1
mov rbx, rax
jle 0x200abc76
nop
mov rdx, qword [rbp + 0x98]
mov rax, qword [rdx]
movsxd rax, dword [rax + 4]
mov rcx, qword [rdx + rax + 0x48]
movzx eax, byte [rdx + rax + 0x58]
mov rdx, qword [rcx + 0x40]
cmp qword [rdx], 0
je 0x200abc4e
nop
mov rdx, qword [rcx + 0x58]
mov r8d, dword [rdx]
test r8d, r8d
jg 0x200abbfb
movzx edx, al
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
mov r8, qword [case.0x200c7fcc.0]
mov dword [rbp + 0x84], 0
call r8
cmp eax, 0xffffffff
jne 0x200abc11
jmp 0x200abd39
nop
mov rcx, qword [rbp + 0x98]
mov rax, qword [rcx]
movsxd rax, dword [rax + 4]
mov rcx, qword [rcx + rax + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
mov r9, qword [case.0x200c7fcc.0]
mov dword [rbp + 0x84], 0
nop
mov rdx, qword [rbp + 0x88]
mov r8, rsi
call r9
xor ebx, ebx
cmp rax, rsi
setne bl
shl ebx, 2
cmp rax, rsi
jne 0x200abd3e
test rdi, rdi
jg 0x200abcea
jmp 0x200abd3e
dec r8d
mov dword [rdx], r8d
mov rcx, qword [rcx + 0x40]
mov rdx, qword [rcx]
lea r8, [rdx + 1]
mov qword [rcx], r8
mov byte [rdx], al
lea rax, [rdi - 1]
cmp rdi, 1
mov rdi, rax
jle 0x200abd3e
nop
mov rdx, qword [rbp + 0x98]
mov rax, qword [rdx]
movsxd rax, dword [rax + 4]
mov rcx, qword [rdx + rax + 0x48]
movzx eax, byte [rdx + rax + 0x58]
mov rdx, qword [rcx + 0x40]
cmp qword [rdx], 0
je 0x200abd1a
nop
mov rdx, qword [rcx + 0x58]
mov r8d, dword [rdx]
test r8d, r8d
jg 0x200abcc7
movzx edx, al
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
mov r8, qword [case.0x200c7fcc.0]
mov dword [rbp + 0x84], ebx
call r8
cmp eax, 0xffffffff
jne 0x200abcdd
mov ebx, 4
nop
mov rdx, qword [rbp + 0x98]
mov rax, qword [rdx]
movsxd rax, dword [rax + 4]
mov qword [rdx + rax + 0x28], 0
jmp 0x200abd64
mov ebx, 4
mov rdx, qword [rbp + 0x98]
nop
mov rax, qword [rdx]
movsxd rax, dword [rax + 4]
mov rcx, qword [0x205725d0]
add rcx, rdx
or ebx, dword [rax + rcx + 0x10]
xor edx, edx
cmp qword [rax + rcx + 0x48], 0
sete dl
shl edx, 2
and ebx, 0x17
or ebx, edx
mov dword [rax + rcx + 0x10], ebx
and ebx, dword [rax + rcx + 0x14]
jne 0x200ac0ad
nop
mov rdx, qword [rbp + 0x90]
xor edx, 0x6b2b7058
mov ecx, 0x278a8666
call fcn.200afa10
test al, 1
jne 0x200abdc3
nop
mov rcx, qword [rbp + 0x70]
call fcn.200a6660
jmp 0x200abdd4
xor eax, eax
mov ecx, dword [rbp + 0x120]
test cl, 0x10
jne 0x200ac052
nop
mov rax, qword [rbp + 0x70]
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
mov rcx, qword [rax + rcx + 0x48]
test rcx, rcx
je 0x200abdf9
nop
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
nop
call qword [case.0x200c7fcc.0]
nop
mov r13, qword [rbp + 0x98]
jmp 0x200ac22e
lea rdi, [rbp + 0x58]
lea r12, [rbp - 0x10]
lea r13, [rbp - 0x10]
mov rsi, qword [rbp + 0x118]
mov r14, rdi
nop
mov r14, qword [r14 - 8]
mov rax, qword [rbp + 0x90]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x20
jae 0x200ac218
add rsi, 0x27
mov rbx, rsi
nop
mov qword [rsp + 0x28], r14
mov ecx, 0xc3ee7568
mov r8, rbx
call fcn.200afa10
jmp 0x200ac030
movsxd rsi, eax
add rsi, rbx
mov rax, qword [rbp + 0x90]
mov rax, qword [rax + 0x18]
mov r14, qword [rax]
sub rsi, r14
test rbx, rbx
cmovne rbx, rsi
mov r12d, 0x20
cmp rbx, 0x20
jae 0x200abf41
mov rcx, r12
call fcn.20077cb0
mov r15, rax
jmp 0x200abf8b
mov rdi, 0xffffffffffffffff
xor r15d, r15d
jmp 0x200ab2a4
mov r12, 0xffffffffffffffff
xor r15d, r15d
jmp 0x200ab177
mov r15, 0xffffffffffffffff
xor r12d, r12d
jmp 0x200ab3e6
lea r9, [0x204118f8]
nop
mov dword [rsp + 0x30], 0x723572d3
lea rcx, [rbp - 0x10]
call fcn.200ab070
nop
mov rsi, qword [rbp + 0x98]
mov dword [rsi + 8], 0
lea rax, [0x204120e8]
mov qword [rsi], rax
lea rcx, [rbp - 0x40]
call fcn.20077e20
lea rax, [rsi + 0x10]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x20
lea rdx, [rbp - 0x40]
mov ecx, 0xded3a73c
call fcn.200afa10
mov rax, qword [rbp + 0x110]
mov qword [rax], rsi
lea rdx, [rbp - 0x10]
mov ecx, 0x2fb1c0e4
call fcn.200ac8b0
mov r13d, 2
jmp 0x200ac22e
cmp rbx, 0x3fffffff
jae 0x200abf5d
lea r12, [rbx + rbx]
cmp rbx, 0x800
jb 0x200abe86
jmp 0x200abf75
mov eax, 0xffffffff
mov r12d, 0x7fffffff
cmp rbx, 0x7fffffff
jae 0x200ac052
lea rcx, [r12 + 0x27]
call fcn.20077cb0
lea r15, [rax + 0x27]
and r15, 0xffffffffffffffe0
mov qword [r15 - 8], rax
nop
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rbx
mov ecx, 0xded3a73c
mov rdx, r14
call fcn.200afa10
lea rax, [r15 + rbx]
lea rcx, [r15 + rbx]
inc rcx
mov r8, qword [rbp + 0x90]
mov qword [r8 + 0x68], rcx
add r12d, r15d
mov rcx, qword [r8 + 0x20]
mov qword [rcx], r15
mov rcx, qword [r8 + 0x40]
mov qword [rcx], rax
sub r12d, eax
mov rax, qword [r8 + 0x58]
mov dword [rax], r12d
test byte [r8 + 0x70], 4
jne 0x200ac003
nop
mov rax, qword [r8 + 0x68]
mov rcx, qword [r8 + 0x18]
mov rdx, qword [r8 + 0x38]
mov rdx, qword [rdx]
sub rdx, r14
add rdx, r15
mov qword [rcx], r15
mov rcx, qword [r8 + 0x38]
mov qword [rcx], rdx
sub rax, rdx
mov r15, rax
jmp 0x200ac016
nop
mov rax, qword [r8 + 0x18]
mov qword [rax], r15
mov rax, qword [r8 + 0x38]
mov qword [rax], 0
lea r12, [r8 + 0x70]
lea rdi, [r8 + 0x40]
lea r13, [r8 + 0x58]
mov rax, qword [r8 + 0x50]
mov dword [rax], r15d
test byte [r8 + 0x70], 1
jne 0x200ac05a
nop
or byte [r12], 1
mov rax, qword [r13]
dec dword [rax]
mov rax, qword [rdi]
mov rcx, qword [rax]
lea rdx, [rcx + 1]
mov qword [rax], rdx
mov rax, qword [rbp + 0x118]
mov byte [rcx], al
mov r13d, eax
jmp 0x200ac22e
mov qword [rbp + 0x90], r14
cmp rbx, 0x1000
jae 0x200abe1c
jmp 0x200abe40
call fcn.200688b0
call fcn.200688b0
call fcn.200688b0
nop
movzx eax, byte [0x20502870]
cmp al, 0x8f
je 0x200ac209
mov cl, 0x1a
mov al, 0x75
lock cmpxchg byte [0x20502870], cl
je 0x200ac193
cmp al, 0x8f
jne 0x200ac094
jmp 0x200ac209
mov edx, 0xf71fe6c4
mov rsi, qword [rbp + 0x90]
xor rdx, rsi
mov ecx, 0xf9ff8378
call fcn.200afa10
mov r8d, 0xcf7312a2
xor r8, rsi
mov ecx, 0x74797013
call fcn.200afa10
test bl, 2
lea rax, [0x20502800]
lea rdi, [0x205027e0]
cmove rdi, rax
xor esi, 0x2b54bf02
mov qword [rsp + 0x28], rsi
mov ecx, 0xcbd64fd
call fcn.200afa10
test bl, 4
lea rsi, [0x205027c0]
cmove rsi, rdi
lea rdi, [rbp + 0x58]
mov rcx, rdi
mov edx, 1
call fcn.200693e0
lea rbx, [rbp - 0x40]
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], 0x10
mov ecx, 0xded3a73c
mov rdx, rdi
call fcn.200afa10
lea rax, [rbp - 0x10]
mov qword [rsp + 0x20], rax
mov edx, 0xedb1ae33
mov r8, rbx
mov r9, rsi
call fcn.200a9fc0
lea rax, [0x204116e8]
mov qword [rbp - 0x10], rax
lea rdx, [0x2046c8b8]
lea rcx, [rbp - 0x10]
call fcn.20077ce0
call fcn.20077e80
call fcn.20077e80
call fcn.20077e80
call fcn.20077cd0
call fcn.20067d20
call fcn.20077cd0
mov ecx, 0x1b433e4e
xor r8d, r8d
movabs r9, 0xaaaaaaaaaaaaaaab
lea r10, [0x20413760]
lea r11, [0x20502860]
mov rax, rcx
mul r9
shr rdx, 1
and rdx, 0xfffffffffffffffc
lea rax, [rdx + rdx*2]
mov rdx, r10
sub rdx, rax
movzx eax, byte [r8 + r11]
movzx ebx, byte [r8 + r11 + 1]
xor al, byte [rdx + r8 + 0x1b433e4e]
xor al, 0xa4
mov byte [r8 + r11], al
xor bl, byte [rdx + r8 + 0x1b433e4f]
xor bl, 0xa4
mov byte [r8 + r11 + 1], bl
add r8, 2
add rcx, 2
cmp r8, 0x10
jne 0x200ac1b3
mov al, 0x8f
xchg byte [0x20502870], al
call fcn.200a9990
call fcn.20067d20
call fcn.20067d20
call fcn.20077cd0
call fcn.20069bc0
nop
mov ebx, dword [rbp + 0x84]
jmp 0x200abd5d
mov rax, r13
add rsp, 0x128
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rbx, rdi
movzx eax, byte [0x205028b5]
cmp al, 0x59
je 0x200ac37a
mov cl, 0xde
mov al, 0xa6
lock cmpxchg byte [0x205028b5], cl
je 0x200ac352
lea r12, [rbp - 0x10]
mov rdi, qword [rbp + 0x118]
mov rsi, rdi
cmp al, 0x59
je 0x200ac37a
mov eax, dword [rbp + 0x120]
test al, 0x20
jne 0x200ac257
nop
mov rax, qword [rbp + 0x98]
mov rbx, qword [rax]
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r14
mov ecx, 0xded3a73c
mov rdx, rbx
call fcn.200afa10
lea r15, [r12 + r14]
mov rcx, r15
mov rdx, qword [rbp + 0x110]
mov r13, qword [rbp + 0x90]
mov r8, r13
call fcn.203f1830
sub rdi, r14
inc rdi
lea rdx, [rbx + r14]
add r15, r13
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rdi
mov ecx, 0xded3a73c
call fcn.200afa10
lea r8, [rsi + 1]
cmp r8, 0xfff
jbe 0x200ac330
lea rdi, [rbp - 0x10]
lea r15, [rbp + 0x70]
lea r13, [rbp - 0x40]
mov eax, dword [rbp + 0x120]
test al, 0x10
je 0x200ac245
nop
mov rax, qword [rbx - 8]
add rbx, 0xfffffffffffffff8
sub rbx, rax
cmp rbx, 0x20
jae 0x200ac3da
add rsi, 0x28
mov r8, rsi
mov rbx, rax
nop
mov qword [rsp + 0x28], rbx
mov ecx, 0x7984448
call fcn.200afa10
nop
mov r13, qword [rbp + 0x98]
nop
mov qword [r13], r12
jmp 0x200ac22e
nop
movdqa xmm0, xmmword [0x205028b0]
pxor xmm0, xmmword [0x204130d0]
movd dword [0x205028b0], xmm0
xor byte [0x205028b4], 0x99
mov al, 0x59
xchg byte [0x205028b5], al
nop
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], 5
lea rdx, [0x205028b0]
mov ecx, 0xded3a73c
call fcn.200afa10
test byte [rbp + 0x88], 1
mov qword [r15], r13
jne 0x200ac3c0
nop
mov rax, qword [rbx]
movzx eax, byte [rax]
mov rcx, qword [rbp + 0x110]
mov byte [rcx + 0x18], al
mov rax, qword [rbx + 8]
movzx eax, byte [rax]
jmp 0x200ac3ce
nop
mov rcx, qword [rbp + 0x110]
mov byte [rcx + 0x18], 0x2e
mov al, 0x2c
nop
mov byte [rcx + 0x19], al
xor r13d, r13d
jmp 0x200ac22e
call fcn.20077cd0
int3