Function at 0x2025a880
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov rsi, qword [rsp + 0xb8]
mov r14, qword [rsp + 0xb0]
mov rax, qword [0x20562ac8]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov eax, r9d
and eax, 0x3f
cmp eax, 0x10
setae r15b
jb 0x2025a8f0
cmp eax, 0x17
jae 0x2025a963
cmp eax, 0x12
ja 0x2025aa26
cmp eax, 0x10
je 0x2025abd9
cmp eax, 0x12
jne 0x2025abe4
test r8d, r8d
jne 0x2025b46b
jmp 0x2025acd9
mov rdi, r14
mov r10, r14
cmp eax, 5
jae 0x2025ac85
cmp eax, 1
jbe 0x2025a9a8
cmp eax, 2
je 0x2025ac98
mov ebp, r9d
cmp eax, 4
jne 0x2025ab9a
mov r13, rdx
mov r12, r8
lea rax, [0x20413328]
mov qword [rcx], rax
mov rbx, rcx
call fcn.200a5960
mov rcx, rbx
lea rax, [0x204122e8]
mov qword [rbx], rax
mov rbx, qword [rbx + 0x60]
test rbx, rbx
je 0x2025aa10
mov r8, qword [rbx + 8]
test r8, r8
mov rdx, r13
mov r9d, ebp
jne 0x2025a9c6
jmp 0x2025aa02
cmp eax, 0x1a
ja 0x2025aa48
cmp eax, 0x19
jb 0x2025aaa1
cmp eax, 0x1a
je 0x2025aaaa
mov esi, 0xffffffff
mov rax, qword [r8 + 0x38]
mov rcx, qword [rax]
test rcx, rcx
je 0x2025b476
mov rdx, qword [r8 + 0x50]
cmp dword [rdx], 0
jle 0x2025afe6
movzx esi, byte [rcx]
jmp 0x2025b476
test eax, eax
je 0x2025ab7f
mov r12, r8
mov qword [rsp + 0x38], 0
lea rbx, [rsp + 0x38]
lea r8, [rsp + 0x20]
test r9b, 0x40
jne 0x2025ab42
mov rsi, rcx
mov rax, qword [r8]
mov rax, qword [rax + 0x10]
mov rcx, r8
call qword [case.0x200c7fcc.0]
test rax, rax
je 0x2025a9ff
mov rcx, qword [rax]
mov r8, qword [rcx]
mov rcx, rax
mov edx, 1
mov rax, r8
call qword [case.0x200c7fcc.0]
sub al, byte [rax]
mov rcx, rsi
mov rsi, rcx
mov rcx, rbx
call fcn.20077cc0
mov rcx, rsi
test r12d, r12d
je 0x2025ae17
mov rsi, rcx
call fcn.20077cc0
jmp 0x2025b479
add eax, 0xffffffed
lea r9, [0x2042126c]
movsxd rax, dword [r9 + rax*4]
add rax, r9
jmp rax
mov rcx, r8
call fcn.203c96b0
mov esi, eax
jmp 0x2025b476
cmp eax, 0x1d
jae 0x2025aaec
cmp eax, 0x1b
je 0x2025ac32
mov r10, r14
sub r10, r8
jae 0x2025ae40
test rcx, rcx
je 0x2025b463
cmp rcx, 1
mov rax, rcx
adc rax, 0
xor edx, edx
cmp rcx, 8
jb 0x2025b294
cmp r10, 0x20
jb 0x2025b294
cmp rcx, 0x20
jae 0x2025b23a
xor edx, edx
jmp 0x2025b270
cmp eax, 0x17
jne 0x2025ac3c
movzx eax, byte [0x20535ef3]
lea rsi, [0x20535ef0]
cmp al, 0xfa
je 0x2025b476
mov cl, 0xbb
nop word cs:[rax + rax]
mov al, 0x46
lock cmpxchg byte [0x20535ef3], cl
je 0x2025ae1f
xor r15d, r15d
cmp al, 0xfa
jne 0x2025aad0
jmp 0x2025b479
jne 0x2025ac59
test r14d, r14d
je 0x2025acd9
mov rcx, rdx
mov rsi, rdx
mov edi, r9d
call fcn.20077cc0
xor r15d, r15d
test dil, 0x40
jne 0x2025b479
movabs rax, 0x3ca83f0ad230b70b
xor qword [0x20535e00], rax
lea rsi, [0x20535e00]
xor byte [0x20535e08], 0x91
mov al, 0x26
xchg byte [0x20535e09], al
jmp 0x2025b479
mov rax, qword [rsp + 0x38]
mov rcx, rsi
sub rcx, rax
jbe 0x2025b3eb
cmp rcx, 8
jb 0x2025b389
mov r8, rdx
sub r8, rdi
cmp r8, 0x20
jb 0x2025b389
cmp rcx, 0x20
jae 0x2025b02b
xor r9d, r9d
jmp 0x2025b076
movzx eax, byte [0x20535e09]
cmp al, 0x26
jne 0x2025af40
lea rsi, [0x20535e00]
jmp 0x2025b479
movzx eax, byte [0x20535dd6]
lea rsi, [0x20535dc0]
cmp al, 0xb7
je 0x2025b479
invalid
mov cl, 0x93
mov r8d, ebp
nop word cs:[rax + rax]
mov al, 0x94
lock cmpxchg byte [0x20535dd6], cl
je 0x2025aeae
cmp al, 0xb7
jne 0x2025abc0
jmp 0x2025b479
xor r15d, r15d
mov r10, rdx
jmp 0x2025ad65
call fcn.203c9238
jmp 0x2025ac32
test r8, r8
je 0x2025ac32
cmp r8, 1
adc r8, 0
xor eax, eax
nop word [rax + rax]
movzx esi, byte [rdx + rax]
movzx r9d, byte [rcx + rax]
cmp sil, r9b
jne 0x2025af69
inc rax
xor r15d, r15d
mov esi, 0
cmp r8, rax
jne 0x2025ac00
jmp 0x2025b479
mov rcx, rdx
mov rdx, rsi
call fcn.203c93a0
xor r15d, r15d
xor esi, esi
jmp 0x2025b479
mov dword [0x2053642c], 0xda279ea0
test ecx, ecx
je 0x2025ae7e
mov rcx, r8
mov rsi, r8
jmp 0x2025b471
cmp eax, 0x1f
jb 0x2025ae74
mov rsi, r14
sub rsi, rcx
mov eax, 1
mov r9d, 0x3cbc2cc1
mov rdx, r8
mov rdi, rcx
mov r10, rcx
cmp eax, 5
jb case.default.0x2025ac96
add eax, 0xfffffffb
lea r8, [0x20421240]
movsxd rax, dword [r8 + rax*4]
add rax, r8
jmp rax
xor esi, esi
jmp 0x2025b479
mov rcx, qword [rdx + 8]
movzx eax, byte [0x20535d52]
cmp al, 0x8f
je 0x2025afd3
mov dl, 0x1d
nop word cs:[rax + rax]
mov al, 0x17
lock cmpxchg byte [0x20535d52], dl
je 0x2025af71
cmp al, 0x8f
jne 0x2025acc0
jmp 0x2025afd3
xor r15d, r15d
jmp 0x2025b3eb
invalid
add byte [rax], al
test edx, edx
jne 0x2025ad9d
jmp 0x2025b479
movzx eax, byte [0x20535df5]
lea rsi, [0x20535de0]
cmp al, 0x50
je 0x2025b479
test r9b, r9b
js 0x2025b3eb
mov cl, 0xed
mov al, 0xa5
lock cmpxchg byte [0x20535df5], cl
add byte [rdi], cl
test byte [rcx], dh
add al, 0
invalid
cmp al, 0x50
jne 0x2025ad49
jmp 0x2025b479
mov r8, rdx
mov rcx, r8
mov edx, r10d
mov rsi, r8
call fcn.203cac30
jmp 0x2025b479
xor eax, eax
sub eax, dword [rdx - 4]
cdqe
lea rsi, [rdx + rax]
add rsi, 0xffffffffffffff78
mov rdi, rcx
mov rcx, rsi
call fcn.201109d0
test edi, edi
je 0x2025b479
invalid
add byte [rax], al
mov rcx, rsi
call fcn.20077cc0
jmp 0x2025b479
invalid
xor esi, esi
lock dec dword [rdx + 8]
cmove rsi, rdx
jmp 0x2025b479
mov rax, qword [rsi]
mov rax, qword [rax + 0x18]
lea rdx, [rsp + 0x28]
mov rdi, rcx
mov rcx, rsi
mov r8d, r10d
call qword [case.0x200c7fcc.0]
mov rax, qword [rsp + 0x30]
mov rcx, qword [rdi + 8]
mov rax, qword [rax + 8]
cmp rax, qword [rcx + 8]
sete al
mov ecx, dword [rsp + 0x28]
sub byte [rbx], bh
invalid
sete cl
and cl, al
movzx esi, cl
int1
jmp 0x2025b479
mov rsi, rcx
jmp 0x2025b479
xor byte [0x20535ef0], 8
xor byte [0x20535ef1], 0x68
not byte [0x20535ef2]
mov al, 0xfa
xchg byte [0x20535ef3], al
jmp 0x2025b476
test rcx, rcx
je 0x2025b45d
cmp rcx, 4
jb 0x2025b3f6
mov rax, r8
sub rax, r14
cmp rax, 0x10
jb 0x2025b3f6
cmp rcx, 0x10
jae 0x2025b2ff
xor eax, eax
jmp 0x2025b343
mov esi, 0xffffffff
jmp 0x2025b476
xor r15d, r15d
mov rsi, r8
jmp 0x2025b479
lea r9, [0x20421110]
mov r10d, 0xd60a840b
add r10, r9
mov ecx, 0xffffffff
add rcx, 0xffffffffd60a840b
xor r11d, r11d
movabs rdi, 0xaaaaaaaaaaaaaaab
lea rsi, [0x20535dc0]
mov ebx, 0xd60a840a
nop word cs:[rax + rax]
mov rax, rcx
mul rdi
shr rdx, 1
and rdx, 0xfffffffffffffff8
lea rax, [rdx + rdx*2]
mov rdx, r10
sub rdx, rax
mov r12, r9
sub r12, rax
add r12, r11
movzx eax, byte [rbx + r12]
xor al, 0x65
add byte [r11 + rsi], al
movzx eax, byte [rdx]
xor al, 0x65
add byte [r11 + rsi + 1], al
add r11, 2
add r10, 2
add rcx, 2
cmp r11, 0x16
jne 0x2025aef0
test r8b, r8b
js 0x2025b135
mov cl, 0xd8
lea rsi, [0x20535e00]
nop dword [rax]
mov al, 0x17
lock cmpxchg byte [0x20535e09], cl
je 0x2025ab16
cmp al, 0x26
jne 0x2025af50
jmp 0x2025b479
sub esi, r9d
jmp 0x2025b476
mov eax, 0xe
lea rdx, [0x20535d40]
lea r8, [0x204210d0]
nop word cs:[rax + rax]
mov r9d, eax
neg r9d
and r9d, 0xe
movzx r9d, byte [r9 + r8]
xor r9b, 0x8b
add byte [rax + rdx - 0xe], r9b
mov r9d, eax
and r9d, 0xe
xor r9, 0xf
movzx r9d, byte [r9 + r8]
xor r9b, 0x8b
add byte [rax + rdx - 0xd], r9b
add rax, 2
cmp rax, 0x20
jne 0x2025af90
mov al, 0x8f
xchg byte [0x20535d52], al
test rcx, rcx
lea rsi, [0x20535d40]
cmovne rsi, rcx
jmp 0x2025b476
mov r9, qword [r8 + 0x40]
mov r10, qword [r9]
test r10, r10
je 0x2025b476
test byte [r8 + 0x70], 4
jne 0x2025b476
mov r9, qword [r8 + 0x68]
cmp r9, r10
cmovb r9, r10
cmp r9, rcx
jbe 0x2025b476
mov qword [r8 + 0x68], r9
sub r9d, dword [rax]
mov dword [rdx], r9d
mov rax, qword [r8 + 0x38]
mov rcx, qword [rax]
jmp 0x2025a9a0
mov r9, rcx
and r9, 0xffffffffffffffe0
lea r8, [rdi + rax]
add r8, 0x10
lea r10, [rdx + rax]
add r10, 0x10
xor r11d, r11d
movups xmm0, xmmword [r8 + r11 - 0x10]
movups xmm1, xmmword [r8 + r11]
movups xmmword [r10 + r11 - 0x10], xmm0
movups xmmword [r10 + r11], xmm1
add r11, 0x20
cmp r9, r11
jne 0x2025b045
cmp rcx, r9
je 0x2025b3eb
test cl, 0x18
je 0x2025b386
mov r10, rcx
and r10, 0xfffffffffffffff8
lea r8, [rax + r10]
lea r11, [rdi + rax]
add rax, rdx
nop dword [rax + rax]
mov rbx, qword [r11 + r9]
mov qword [rax + r9], rbx
add r9, 8
cmp r10, r9
jne 0x2025b090
cmp rcx, r10
je 0x2025b3eb
jmp 0x2025b38c
mov al, 0xb7
xchg byte [0x20535dd6], al
jmp 0x2025b479
mov ecx, 0xffffffff
lea r8, [rcx - 0x48fe72d2]
add rcx, 0xffffffffb7018d2f
xor r10d, r10d
movabs r11, 0x47ae147ae147ae15
lea rax, [0x20421130]
mov edi, 0xb7018d28
add rdi, rax
lea rsi, [0x20535de0]
mov rax, rcx
mul r11
mov r9, rdx
mov rax, r8
mul r11
mov rax, r8
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 4
imul rax, rax, 0xffffffffffffffe7
add rax, rdi
movzx eax, byte [r10 + rax + 5]
xor al, 0x87
add byte [r10 + rsi], al
cmp r10, 0x14
je 0x2025b22d
mov rax, rcx
sub rax, r9
shr rax, 1
add rax, r9
shr rax, 4
imul rax, rax, 0xffffffffffffffe7
add rax, rdi
add rax, 6
movzx eax, byte [rax + r10]
xor al, 0x87
add byte [r10 + rsi + 1], al
add r10, 2
add rcx, 2
add r8, 2
jmp 0x2025b1c0
mov al, 0x50
xchg byte [0x20535df5], al
jmp 0x2025b479
mov rdx, rax
and rdx, 0xffffffffffffffe0
xor r9d, r9d
movups xmm0, xmmword [r8 + r9]
movups xmm1, xmmword [r8 + r9 + 0x10]
movups xmmword [r14 + r9], xmm0
movups xmmword [r14 + r9 + 0x10], xmm1
add r9, 0x20
cmp rdx, r9
jne 0x2025b244
cmp rax, rdx
je 0x2025b463
test al, 0x18
je 0x2025b294
mov r9, rdx
mov rdx, rax
and rdx, 0xfffffffffffffff8
mov r10, qword [r8 + r9]
mov qword [r14 + r9], r10
add r9, 8
cmp rdx, r9
jne 0x2025b27a
cmp rax, rdx
je 0x2025b463
mov r10, rax
mov r9, rdx
and r10, 3
je 0x2025b2b4
mov r9, rdx
movzx r11d, byte [r8 + r9]
mov byte [r14 + r9], r11b
inc r9
dec r10
jne 0x2025b2a3
sub rdx, rax
cmp rdx, 0xfffffffffffffffc
ja 0x2025b463
movzx eax, byte [r8 + r9]
mov byte [r14 + r9], al
movzx eax, byte [r8 + r9 + 1]
mov byte [r14 + r9 + 1], al
movzx eax, byte [r8 + r9 + 2]
mov byte [r14 + r9 + 2], al
movzx eax, byte [r8 + r9 + 3]
mov byte [r14 + r9 + 3], al
add r9, 4
xor r15d, r15d
cmp rcx, r9
jne 0x2025b2c1
mov rsi, r14
jmp 0x2025b479
mov rax, rcx
and rax, 0xfffffffffffffff0
lea r10, [r14 + rcx]
add r10, 0xfffffffffffffff0
lea r11, [r8 + rcx]
add r11, 0xfffffffffffffff0
mov rsi, rax
neg rsi
xor edi, edi
movups xmm0, xmmword [r11 + rdi]
movups xmmword [r10 + rdi], xmm0
add rdi, 0xfffffffffffffff0
cmp rsi, rdi
jne 0x2025b31e
cmp rax, rcx
je 0x2025b45d
test cl, 0xc
je 0x2025b3f3
mov r10, rcx
and r10, 0xfffffffffffffffc
mov r11d, ecx
and r11d, 3
lea rsi, [r14 + rcx]
add rsi, 0xfffffffffffffffc
neg rax
lea rdi, [r8 + rcx]
add rdi, 0xfffffffffffffffc
mov rbx, r10
neg rbx
mov ebp, dword [rdi + rax]
mov dword [rsi + rax], ebp
add rax, 0xfffffffffffffffc
cmp rbx, rax
jne 0x2025b36a
cmp r10, rcx
mov rcx, r11
jne 0x2025b3f6
jmp 0x2025b45d
add rax, r9
mov r8, rax
mov ecx, esi
sub ecx, r8d
mov rax, r8
and ecx, 3
je 0x2025b3b1
mov rax, r8
nop dword [rax]
movzx r9d, byte [rdi + rax]
mov byte [rdx + rax], r9b
inc rax
dec rcx
jne 0x2025b3a0
sub r8, rsi
cmp r8, 0xfffffffffffffffc
ja 0x2025b3eb
nop word [rax + rax]
movzx ecx, byte [rdi + rax]
mov byte [rdx + rax], cl
movzx ecx, byte [rdi + rax + 1]
mov byte [rdx + rax + 1], cl
movzx ecx, byte [rdi + rax + 2]
mov byte [rdx + rax + 2], cl
movzx ecx, byte [rdi + rax + 3]
mov byte [rdx + rax + 3], cl
add rax, 4
cmp rsi, rax
jne 0x2025b3c0
mov rsi, rdx
jmp 0x2025b479
and ecx, 0xf
lea r10, [rcx - 1]
mov r11, rcx
and r11, 3
je 0x2025b41c
lea rax, [rcx - 1]
movzx ebx, byte [r8 + rcx - 1]
mov byte [r14 + rcx - 1], bl
mov rcx, rax
dec r11
jne 0x2025b403
jmp 0x2025b41f
mov rax, rcx
cmp r10, 3
jb 0x2025b45d
mov rcx, rax
movzx r10d, byte [r8 + rax - 1]
mov byte [r14 + rax - 1], r10b
movzx r10d, byte [r8 + rax - 2]
mov byte [r14 + rax - 2], r10b
movzx r10d, byte [r8 + rax - 3]
mov byte [r14 + rax - 3], r10b
movzx r10d, byte [r8 + rax - 4]
mov byte [r14 + rax - 4], r10b
add rcx, 0xfffffffffffffffc
mov rax, rcx
jne 0x2025b428
test r9b, 0x40
jne 0x2025b46b
xor r15d, r15d
mov rsi, r14
jmp 0x2025b479
mov rcx, rdx
mov rsi, rdx
call fcn.20077cc0
xor r15d, r15d
test r15b, r15b
cmovne rsi, r14
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.203c9080
mov rax, rsi
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [0x2042127c]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
nop
mov rsi, qword [rbx + 0x10]
cmp qword [rbx + 0x18], 0x10
jb 0x2025b6ec
mov rbx, qword [rbx]
cmp rsi, 0xf
ja 0x2025c12d
nop
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x28], 0x10
lea rdx, [rbp - 8]
mov r9d, 0x3cbc2cc1
call fcn.2025a880
mov r14d, 0xf
jmp 0x2025c4bf
add al, 0x3b
add byte [rax + 0x75894d], dl
mov rsi, r13
jmp 0x2025c9ca
mov rcx, r13
mov r13, qword [rdi + 0x10]
mov dword [0x20536430], 0x85ca12f5
movabs r15, 0x7fffffffffffffff
mov rax, r13
xor rax, r15
cmp rax, rcx
jb 0x2025cb81
add rcx, r13
mov qword [rbp + 0xe8], rcx
mov r8, qword [rdi + 0x18]
movabs rcx, 0x8000000000000000
nop
mov qword [rbp + 0xf8], r8
js 0x2025bc48
mov rax, r8
shr rax, 1
mov rdx, rax
xor rdx, r15
cmp rdx, r8
jb 0x2025bc48
nop
mov rcx, qword [rbp + 0xe8]
or rcx, 0xf
add rax, qword [rbp + 0xf8]
cmp rcx, rax
mov r15, rax
cmova r15, rcx
lea rcx, [r15 + 1]
cmp rcx, 0x1000
jb 0x2025c910
cmp rcx, 0xffffffffffffffd9
jae 0x2025cd05
add rcx, 0x27
call fcn.20077cb0
lea r14, [rax + 0x27]
and r14, 0xffffffffffffffe0
mov qword [r14 - 8], rax
nop
mov rax, qword [rbp + 0xe8]
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], r15
mov rax, qword [rbp + 0xf8]
cmp rax, 0x10
jb 0x2025c16b
nop
mov r15, qword [rdi]
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r15
mov rdx, r14
mov r9d, 0x3cbc2cc1
call fcn.2025a880
mov r8, r12
lea r12, [r14 + rbx]
mov rcx, r12
mov edx, esi
mov rsi, r8
call fcn.203f1830
sub r13, rbx
inc r13
add rbx, r15
add r12, rsi
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rbx
mov rdx, r12
mov r9d, 0x3cbc2cc1
call fcn.2025a880
mov rax, qword [rbp + 0xf8]
test eax, edi
add byte [rax], al
add byte [rax - 0x77], cl
ret 0xff48
ror byte [rax + 0x3d], 0
adc byte [rax], al
add byte [rdx + 0x20], dh
nop
mov rcx, qword [r15 - 8]
add r15, 0xfffffffffffffff8
xbegin 0x69f4e63d
cmp edi, 0x20
jae 0x2025cd28
mov rax, rdx
add rax, 0x28
mov r15, rcx
nop
mov qword [rsp + 0x28], rax
mov rdx, r15
mov r9d, 0xcb76d116
call fcn.2025a880
jmp 0x2025c1b9
test rdi, rdi
je 0x2025bd30
nop
cmp qword [rdi], 0
je 0x2025c5b8
mov esi, 4
jmp 0x2025c9ca
nop
mov eax, dword [0x20536420]
mov qword [rbp + 0xf8], rax
mov rcx, rdi
call fcn.200786f0
mov rsi, rax
mov rax, qword [r12]
movsxd rcx, dword [rax + 4]
mov rcx, qword [r12 + rcx + 0x28]
xor edx, edx
mov r14, rcx
sub r14, rsi
mov ebx, 0
cmovg rbx, r14
test rcx, rcx
cmovle rbx, rdx
mov qword [rbp + 0xd8], r12
movsxd rax, dword [rax + 4]
mov rcx, qword [r12 + rax + 0x48]
test rcx, rcx
je 0x2025bd9b
nop
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x200c7fcc.0]
nop
mov rax, qword [r12]
movsxd rax, dword [rax + 4]
cmp dword [r12 + rax + 0x10], 0
je 0x2025c210
add al, 0
invalid
add al, 0
add byte [rax + 0xe085c6], dl
add byte [rax], al
add cl, ch
mov ebp, 0x90000009
nop
nop
mov byte [rbp + 0xe0], 0
jmp 0x2025c77a
nop
mov edi, dword [0x2053642c]
xor rdi, 0x5abdebd7
mov qword [rsp + 0x20], 0
lea rdx, [rbp + 0x20]
mov rcx, rdi
mov r9d, 0x14f23208
call fcn.2025a880
mov rax, qword [0x205725e8]
mov qword [rbp + 0x60], rax
cmp qword [0x205725c8], 0
jne 0x2025be42
nop
mov qword [rsp + 0x20], 0
lea rdx, [rbp + 0x30]
mov rcx, rdi
mov r9d, 0xd2b20fc8
call fcn.2025a880
cmp qword [0x205725c8], 0
jne 0x2025be39
nop
movsxd rax, dword [0x20575e18]
inc rax
mov dword [0x20575e18], eax
mov qword [0x205725c8], rax
lea rcx, [rbp + 0x30]
call fcn.20077db0
nop
mov rdi, qword [0x205725c8]
mov rax, qword [rsi + 8]
cmp qword [rax + 0x18], rdi
jbe 0x2025be62
nop
mov rcx, qword [rax + 0x10]
mov rbx, qword [rcx + rdi*8]
test rbx, rbx
jne 0x2025bede
nop
cmp byte [rax + 0x24], 0
je 0x2025be83
call fcn.20077dc0
nop
cmp qword [rax + 0x18], rdi
jbe 0x2025be83
nop
mov rax, qword [rax + 0x10]
mov rbx, qword [rax + rdi*8]
test rbx, rbx
jne 0x2025bede
nop
mov rbx, qword [rbp + 0x60]
test rbx, rbx
jne 0x2025bede
nop
mov dword [rsp + 0x20], 0x2cad8e3a
lea r9, [rbp + 0x60]
mov rdx, rsi
call fcn.2025b4b0
cmp rax, 0xffffffffffffffff
je 0x2025ccfb
nop
mov rcx, qword [rbp + 0x60]
nop
mov qword [rbp + 0xf8], rcx
call fcn.20077da0
nop
mov rcx, qword [rbp + 0xf8]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x200c7fcc.0]
mov rbx, qword [rbp + 0x60]
mov qword [0x205725e8], rbx
lea rcx, [rbp + 0x20]
call fcn.20077db0
mov rsi, rbx
jmp 0x2025c9ca
mov rax, rsi
or rax, 0xf
movabs r14, 0x7fffffffffffffff
cmp rax, r14
cmovb r14, rax
cmp rax, 0xfff
jb 0x2025c495
lea rcx, [r14 + 0x28]
call fcn.20077cb0
lea rdx, [rax + 0x27]
and rdx, 0xffffffffffffffe0
mov qword [rdx - 8], rax
jmp 0x2025c4a1
nop
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rdi
mov rdx, r14
mov r9d, 0x3cbc2cc1
call fcn.2025a880
lea r15, [r14 + rbx]
mov rcx, r15
mov edx, esi
mov r8, r12
call fcn.203f1830
sub r13, rbx
inc r13
add rbx, rdi
add r15, r12
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rbx
mov rdx, r15
mov r9d, 0x3cbc2cc1
call fcn.2025a880
nop
mov qword [rdi], r14
jmp 0x2025c754
nop
mov rcx, qword [r12 + rax + 0x50]
test rcx, rcx
je 0x2025c772
cmp rcx, r12
je 0x2025c772
call fcn.200a63d0
nop
mov rax, qword [r12]
movsxd rax, dword [rax + 4]
cmp dword [r12 + rax + 0x10], 0
sete byte [rbp + 0xe0]
jmp 0x2025c77a
lea rcx, [r14 + 1]
call fcn.20077cb0
mov rdx, rax
nop
mov qword [rbp - 8], rdx
lea rax, [rsi + 1]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
mov r9d, 0x3cbc2cc1
call fcn.2025a880
nop
mov qword [rbp + 8], rsi
mov qword [rbp + 0x10], r14
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x28], 0x10
lea rbx, [rbp - 0x28]
mov rdx, rbx
mov r9d, 0x3cbc2cc1
call fcn.2025a880
lea rsi, [rbp + 0x60]
lea r8, [rbp - 8]
mov rcx, rsi
mov rdx, rbx
call fcn.20069790
cmp qword [rbp + 0x78], 0x10
jb 0x2025c506
mov rsi, qword [rbp + 0x60]
lea rax, [0x20411218]
mov qword [r12], rax
lea rdx, [r12 + 8]
pxor xmm0, xmm0
movdqu xmmword [r12 + 8], xmm0
mov qword [rbp + 0x30], rsi
mov byte [rbp + 0x38], 1
lea rcx, [rbp + 0x30]
call fcn.20077d00
lea rax, [0x204118c8]
mov qword [r12], rax
mov rax, qword [rbp + 0x78]
cmp rax, 0x10
jb 0x2025c58a
nop
mov rdx, qword [rbp + 0x60]
lea rcx, [rax + 1]
cmp rcx, 0x1000
jb 0x2025c579
nop
mov r8, qword [rdx - 8]
add rdx, 0xfffffffffffffff8
sub rdx, r8
cmp rdx, 0x20
jae 0x2025cd2d
add rax, 0x28
mov rcx, rax
mov rdx, r8
nop
mov qword [rsp + 0x28], rcx
mov r9d, 0xd8213116
call fcn.2025a880
lea rax, [0x20411888]
mov qword [r12], rax
lea rdx, [r12 + 0x18]
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x28], 0x10
mov r9d, 0x3cbc2cc1
call fcn.2025a880
jmp 0x2025c9c7
mov ecx, 0x30
call fcn.20077cb0
mov qword [rbp + 0xf8], rax
mov rcx, qword [rsi + 8]
test rcx, rcx
je 0x2025c9e1
nop
mov rax, qword [rcx + 0x28]
add rcx, 0x30
test rax, rax
cmovne rcx, rax
jmp 0x2025c9e8
mov rsi, rdi
jmp 0x2025c9ca
nop
mov byte [rbp + 0xe0], 1
nop
cmp byte [rbp + 0xe0], 0
je 0x2025c909
nop
mov rax, qword [r12]
movsxd rax, dword [rax + 4]
mov ecx, 0x1c0
and ecx, dword [r12 + rax + 0x18]
cmp ecx, 0x40
je 0x2025c82e
test rbx, rbx
jle 0x2025c82e
xor ebx, ebx
jmp 0x2025c7d4
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, [r14 - 1]
cmp r14, 1
mov r14, rax
jle 0x2025c82e
nop
mov rax, qword [r12]
movsxd rax, dword [rax + 4]
mov rcx, qword [r12 + rax + 0x48]
movzx eax, byte [r12 + rax + 0x58]
mov rdx, qword [rcx + 0x40]
cmp qword [rdx], 0
je 0x2025c7ff
nop
mov rdx, qword [rcx + 0x58]
mov r8d, dword [rdx]
test r8d, r8d
jg 0x2025c7b1
movzx edx, al
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
mov r8, qword [case.0x200c7fcc.0]
mov dword [rbp + 0xf4], 0
call r8
cmp eax, 0xffffffff
mov r12, qword [rbp + 0x180]
jne 0x2025c7c7
jmp 0x2025c902
nop
mov rax, qword [r12]
movsxd rax, dword [rax + 4]
mov rcx, qword [r12 + rax + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
mov r9, qword [case.0x200c7fcc.0]
mov dword [rbp + 0xf4], 0
mov rdx, rdi
mov r8, rsi
call r9
xor edi, edi
cmp rax, rsi
setne dil
shl edi, 2
add edi, dword [0x20573898]
cmp rax, rsi
jne 0x2025c935
test rbx, rbx
nop
mov r12, qword [rbp + 0x180]
jg 0x2025c8b1
jmp 0x2025c93c
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 0x2025c93c
nop
mov rax, qword [r12]
movsxd rax, dword [rax + 4]
mov rcx, qword [r12 + rax + 0x48]
movzx eax, byte [r12 + rax + 0x58]
mov rdx, qword [rcx + 0x40]
cmp qword [rdx], 0
je 0x2025c8dc
nop
mov rdx, qword [rcx + 0x58]
mov r8d, dword [rdx]
test r8d, r8d
jg 0x2025c88a
movzx edx, al
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
mov r8, qword [case.0x200c7fcc.0]
mov dword [rbp + 0xf4], edi
call r8
cmp eax, 0xffffffff
mov r12, qword [rbp + 0x180]
jne 0x2025c8a0
mov edi, 4
jmp 0x2025c93c
mov edi, 4
jmp 0x2025c94e
test rcx, rcx
je 0x2025ca5c
call fcn.20077cb0
mov r14, rax
jmp 0x2025bc5d
mov r12, qword [rbp + 0x180]
nop
mov rax, qword [r12]
movsxd rax, dword [rax + 4]
mov qword [r12 + rax + 0x28], 0
nop
mov rax, qword [r12]
movsxd rax, dword [rax + 4]
mov dword [0x20536420], 0x6980e5b0
or edi, dword [r12 + rax + 0x10]
xor ecx, ecx
cmp qword [r12 + rax + 0x48], 0
sete cl
shl ecx, 2
and edi, 0x17
or edi, ecx
mov dword [r12 + rax + 0x10], edi
and edi, dword [r12 + rax + 0x14]
jne 0x2025cb86
call fcn.2007ba10
test al, al
jne 0x2025c99f
nop
mov rcx, qword [rbp + 0xd8]
call fcn.200a6660
nop
mov rax, qword [rbp + 0xd8]
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
mov rcx, qword [rax + rcx + 0x48]
test rcx, rcx
je 0x2025c9c7
nop
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
nop
call qword [case.0x200c7fcc.0]
mov rsi, r12
mov rax, rsi
add rsp, 0x188
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea rcx, [0x204118f8]
nop
mov dword [rsp + 0x20], 0xf8b81d55
lea r8, [rbp + 0x60]
call fcn.2025b4b0
nop
mov rsi, qword [rbp + 0xf8]
mov dword [rsi + 8], 0
lea rax, [0x20413588]
mov qword [rsi], rax
nop
mov qword [rsp + 0x30], 1
mov dword [rsp + 0x20], 0x61c083
lea rdx, [rbp + 0x60]
mov rcx, rsi
call fcn.2025b4b0
nop
mov qword [rdi], rsi
lea rdx, [rbp + 0x60]
mov r8d, 0xc19e7a6b
call fcn.202599d0
mov esi, 4
jmp 0x2025c9ca
mov r15, 0xffffffffffffffff
xor r14d, r14d
jmp 0x2025bc5d
call fcn.200688b0
nop
mov rsi, qword [rbp + 0xf8]
mov rdx, rsi
xor rdx, 0x476fe640
mov r9d, 0xeb2d40c3
call fcn.2025a880
mov rcx, rsi
xor rcx, 0x94b4ca6
mov r9d, 0x95eddc07
call fcn.2025a880
test dil, 2
lea rax, [0x20535de0]
lea rbx, [0x20535dc0]
cmove rbx, rax
xor esi, 0xe535cc38
mov qword [rsp + 0x28], rsi
mov r9d, 0x656a5f8d
call fcn.2025a880
test dil, 4
lea rsi, [0x20535da0]
cmove rsi, rbx
lea rdi, [rbp + 0x20]
mov rcx, rdi
mov edx, 1
call fcn.200693e0
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x28], 0x10
lea rdi, [rbp + 0x30]
mov rdx, rdi
mov r9d, 0x3cbc2cc1
call fcn.2025a880
lea rax, [rbp + 0x60]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x20], 0x8bd56b11
mov r8, rdi
mov r9, rsi
call fcn.2025b4b0
lea rax, [0x204116e8]
mov qword [rbp + 0x60], rax
lea rdx, [0x2046c8b8]
lea rcx, [rbp + 0x60]
call fcn.20077ce0
call fcn.20067d20
call fcn.20067d20
mov eax, 0x110e9bd1
mov ecx, 0xeef1643c
mov edx, 0x110e9bd2
mov r8d, 0xeef1643a
xor r9d, r9d
mov r10d, 0x92492493
lea r11, [0x20535e60]
lea rsi, [0x20421170]
mov edi, ecx
shr edi, 1
imul rdi, r10
shr rdi, 0x22
lea ebx, [rdi + rdi]
shl edi, 4
sub edi, ebx
add edi, eax
mov ebx, r8d
shr ebx, 1
imul rbx, r10
shr rbx, 0x22
lea r14d, [rbx + rbx]
shl ebx, 4
sub ebx, r14d
add ebx, edx
movzx ebx, byte [rbx + rsi]
xor bl, 0xfd
add byte [r9 + r11], bl
movzx ebx, byte [rdi + rsi]
xor bl, 0xfd
add byte [r9 + r11 + 1], bl
add r9, 2
add eax, 0xfffffffe
add ecx, 2
add edx, 0xfffffffe
add r8d, 2
cmp r9, 0x10
jne 0x2025cc91
mov al, 0x46
xchg byte [0x20535e70], al
call fcn.202590a0
call fcn.20069bc0
call fcn.20067d20
call fcn.20067d20
call fcn.20077cd0
call fcn.20077cd0
call fcn.20077cd0
call fcn.20077cd0
call fcn.20077cd0
call fcn.20077cd0
call fcn.20077cd0
call fcn.20077cd0
nop
mov edi, dword [rbp + 0xf4]
nop
mov r12, qword [rbp + 0x180]
jmp 0x2025c94e