Function at 0x1800824b0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xd8
mov r14d, r9d
mov r12, r8
mov r11, rdx
mov r10, rcx
mov eax, dword [rcx + 0x4018]
test rax, rax
je 0x180082da7
mov rcx, qword [r10 + 0x4000]
add rcx, rax
mov edx, dword [rsp + 0x148]
mov r9d, dword [r10 + 0x4010]
lea ebp, [r9 + r14]
cmp ebp, 0x80000001
jb 0x18008259b
mov rbp, qword [r10 + 0x4000]
add r9d, 0xffff0000
movd xmm0, r9d
pshufd xmm0, xmm0, 0
xor ebx, ebx
movdqa xmm1, xmmword [0x1800931d0]
movdqa xmm2, xmm0
pxor xmm2, xmm1
movdqu xmm3, xmmword [r10 + rbx*4]
movdqa xmm4, xmm3
pxor xmm4, xmm1
pcmpgtd xmm4, xmm2
psubd xmm3, xmm0
pand xmm3, xmm4
movdqu xmmword [r10 + rbx*4], xmm3
add rbx, 4
cmp rbx, 0x1000
jne 0x180082530
add rbp, rax
mov dword [r10 + 0x4010], 0x10000
mov eax, dword [r10 + 0x4018]
cmp eax, 0x10001
jb 0x180082589
mov dword [r10 + 0x4018], 0x10000
mov eax, 0x10000
mov ebx, eax
sub rbp, rbx
mov qword [r10 + 0x4000], rbp
mov r9d, 0x10000
cmp edx, 2
mov edi, 1
cmovge edi, edx
mov edx, 0x10001
cmp edi, edx
cmovae edi, edx
cmp eax, 3
ja 0x1800825e0
test r14d, r14d
jle 0x1800825e0
cmp rcx, r11
je 0x1800825e0
cmp qword [r10 + 0x4008], 0
jne 0x1800825e0
mov dword [r10 + 0x4018], 0
mov qword [r10 + 0x4000], r11
xor eax, eax
mov rcx, r11
movsxd rdx, r14d
add rdx, r11
mov rbp, qword [r10 + 0x4000]
cmp rdx, rbp
jbe 0x180082621
cmp rdx, rcx
jae 0x180082621
mov ebp, ecx
sub ebp, edx
mov eax, 0x10000
cmp ebp, eax
cmovae ebp, eax
xor eax, eax
cmp ebp, 4
cmovae eax, ebp
mov dword [r10 + 0x4018], eax
mov rbp, rcx
sub rbp, rax
mov qword [r10 + 0x4000], rbp
mov r13d, dword [rsp + 0x140]
cmp rcx, r11
mov qword [rsp + 0x78], r11
mov qword [rsp + 0x88], r10
je 0x180082dae
mov rdx, qword [r10 + 0x4008]
test rdx, rdx
mov qword [rsp + 0xc8], r14
mov qword [rsp + 0x68], r9
je 0x180082eeb
cmp r14d, 0x1001
jl 0x18008301f
mov r8d, 0x4020
mov rcx, r10
call sub.VCRUNTIME140.dll_memcpy
mov r10, qword [rsp + 0x88]
mov r11, qword [rsp + 0x78]
xor eax, eax
cmp r14d, 0x7e000000
ja 0x18008347e
movabs r9, 0xcf1bbcdcbb000000
mov r8d, dword [r10 + 0x4010]
mov rsi, r11
sub rsi, r8
mov rcx, qword [r10 + 0x4000]
mov eax, dword [r10 + 0x4018]
mov rdx, qword [rsp + 0xc8]
mov ebp, edi
lea r15d, [rax + rdx]
mov rbx, rax
add rbx, rcx
mov eax, edx
mov qword [rsp + 0x30], rax
add rax, r11
mov qword [rsp + 0xc0], rax
mov rdi, rbx
sub rdi, r8
movsxd rax, r13d
mov qword [rsp + 0xa0], r12
add rax, r12
mov qword [rsp + 0x40], rax
mov dword [r10 + 0x4018], r15d
lea eax, [r8 + rdx]
mov dword [r10 + 0x4010], eax
mov dword [r10 + 0x4014], 2
mov rdx, qword [r11]
imul rdx, r9
shr rdx, 0x32
and edx, 0xfffffffc
mov r13d, ebp
shl r13d, 6
or r13d, 1
lea rax, [r11 + 2]
lea r14, [r11 + 1]
mov r15, r8
inc r15
mov r12, rcx
mov qword [rsp + 0x60], rcx
test rcx, rcx
mov rcx, qword [rsp + 0x30]
lea rcx, [r11 + rcx - 0xb]
mov qword [rsp + 0x28], rcx
cmove rdi, r12
mov r12, qword [rsp + 0xa0]
mov qword [rsp + 0x80], rdi
mov dword [r10 + rdx], r8d
mov rdx, qword [rsp + 0x30]
lea rcx, [r11 + rdx - 5]
mov qword [rsp + 0x38], rcx
cmove rbx, qword [rsp + 0x60]
mov qword [rsp + 0x90], rbx
lea rcx, [r11 + rdx - 0xc]
mov qword [rsp + 0x68], rcx
mov rdx, r11
mov rbx, r12
mov qword [rsp + 0x70], r8
mov dword [rsp + 0x54], ebp
mov qword [rsp + 0x48], rsi
mov dword [rsp + 0xa8], r13d
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x30], rdx
mov rdx, qword [rdx + 1]
mov ecx, r13d
mov r13, qword [rsp + 0x28]
mov rdi, rax
imul rdx, r9
mov rax, rdx
shr rax, 0x34
mov ebx, dword [r10 + rax*4]
mov rdx, qword [rdi]
mov dword [r10 + rax*4], r15d
lea eax, [rbx + 0xffff]
cmp eax, r15d
jb 0x180082806
cmp ebx, r8d
mov rax, rsi
cmovb rax, qword [rsp + 0x80]
mov esi, dword [rax + rbx]
cmp esi, dword [r14]
mov rsi, qword [rsp + 0x48]
je 0x180082828
mov r15, rdi
sub r15, rsi
mov eax, ebp
add rax, rdi
lea ebx, [rcx + 1]
shr ecx, 6
mov ebp, ecx
mov ecx, ebx
mov r14, rdi
cmp rax, r13
jbe 0x1800827c6
jmp 0x180085359
add rax, rbx
cmp ebx, r8d
mov r12, qword [rsp + 0x78]
cmovb r12, qword [rsp + 0x60]
sub r15d, ebx
lea r8d, [r14 + 0xef]
mov ebx, r14d
shl bl, 4
mov rbp, qword [rsp + 0x30]
mov edx, ebp
shl dl, 4
sub bl, dl
mov rdx, rbp
xor edi, edi
mov r13, rdi
mov ecx, r8d
mov r11d, ebx
lea rbp, [rax + rdi]
lea rsi, [r14 + rdi]
cmp rbp, r12
jbe 0x180082892
cmp rsi, rdx
jbe 0x180082892
mov dl, byte [r14 + r13 - 1]
lea rdi, [r13 - 1]
lea r8d, [rcx - 1]
lea ebx, [r11 - 0x10]
cmp dl, byte [rax + r13 - 1]
mov rdx, qword [rsp + 0x30]
je 0x18008285a
mov qword [rsp + 0xb8], rcx
mov qword [rsp + 0x98], rsi
mov eax, r14d
sub eax, edx
lea ecx, [rax + r13]
mov eax, r14d
sub eax, edx
add rax, r13
mov qword [rsp + 0xb0], rcx
mov r8, qword [rsp + 0x58]
add rcx, r8
mov edx, eax
mov ebx, 0x80808081
imul rdx, rbx
shr rdx, 0x27
add rcx, rdx
add rcx, 9
cmp rcx, qword [rsp + 0x40]
ja 0x180085603
lea rcx, [r8 + 1]
cmp eax, 0xf
jb 0x1800829b5
mov edi, r14d
mov rdx, qword [rsp + 0x30]
sub edi, edx
add edi, 0xfffffff1
add rdi, r13
mov byte [r8], 0xf0
cmp edi, 0xfe
jle 0x18008299b
mov eax, 0x1fd
cmp edi, eax
cmovge edi, eax
add edi, edx
mov eax, r14d
sub eax, edi
lea esi, [rax + r13]
add esi, 0xef
mov eax, 0x80808081
imul rsi, rax
shr rsi, 0x27
lea r8, [rsi + 1]
mov dl, 0xff
call sub.VCRUNTIME140.dll_memset
mov rdx, qword [rsp + 0x30]
movabs r9, 0xcf1bbcdcbb000000
mov r10, qword [rsp + 0x88]
mov rax, qword [rsp + 0x58]
lea rcx, [rax + rsi]
add rcx, 2
sub r14d, edx
mov rsi, qword [rsp + 0xb8]
sub esi, edi
mov eax, 0x80808081
imul rsi, rax
mov r8, qword [rsp + 0x58]
shr rsi, 0x27
mov eax, esi
shl eax, 8
sub esi, eax
add esi, r14d
lea edi, [rsi + r13]
add edi, 0xfffffef2
mov rsi, qword [rsp + 0x48]
mov r14, qword [rsp + 0x28]
mov r13, qword [rsp + 0xb0]
mov byte [rcx], dil
inc rcx
jmp 0x1800829cf
mov byte [r8], r11b
mov rsi, qword [rsp + 0x48]
mov r14, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
mov r13, qword [rsp + 0xb0]
add r13, rcx
mov rax, qword [rdx]
mov qword [rcx], rax
add rcx, 8
add rdx, 8
cmp rcx, r13
jb 0x1800829d2
mov rdx, qword [rsp + 0x98]
mov r11, qword [rsp + 0x60]
mov word [r13], r15w
cmp r12, r11
mov r12, rdx
je 0x180082ba3
add rbp, 4
lea rcx, [rdx + 4]
mov rbx, qword [rsp + 0x68]
cmp rbx, rcx
jbe 0x180085710
mov rax, qword [rcx]
xor rax, qword [rbp]
je 0x180082c2d
bsf rdi, rax
xor edx, edx
test rax, rax
sete al
je 0x180082c37
shr edi, 3
mov rdx, r12
mov eax, edi
add rdx, rax
add rdx, 4
lea eax, [rdi + 0xf0]
mov ecx, 0x80808081
imul rax, rcx
shr rax, 0x27
add rax, r13
add rax, 8
cmp rax, qword [rsp + 0x40]
ja 0x180085603
lea rbx, [r13 + 2]
mov al, byte [r8]
cmp edi, 0xf
jb 0x180082b0c
add al, 0xf
mov byte [r8], al
lea eax, [rdi - 0xf]
mov dword [rbx], 0xffffffff
cmp eax, 0x3fc
jb 0x180082af3
lea rcx, [r13 + 6]
add edi, 0xfffffbf5
mov rsi, rdi
mov eax, 0x80808081
imul rsi, rax
shr rsi, 0x29
mov ebx, esi
lea r8, [rbx*4 + 4]
mov rbp, rdx
mov dl, 0xff
call sub.VCRUNTIME140.dll_memset
mov rdx, rbp
movabs r9, 0xcf1bbcdcbb000000
mov r10, qword [rsp + 0x88]
imul eax, esi, 0x3fc
mov rsi, qword [rsp + 0x48]
sub edi, eax
lea rbx, [rbx*4 + 6]
add rbx, r13
mov r11, qword [rsp + 0x60]
mov eax, edi
movzx ecx, ax
imul ecx, ecx, 0x8081
shr ecx, 0x17
add rbx, rcx
inc rbx
add ecx, eax
mov byte [rbx - 1], cl
jmp 0x180082b12
add al, dil
mov byte [r8], al
cmp rdx, r14
mov r8, qword [rsp + 0x70]
mov r13d, dword [rsp + 0xa8]
jae 0x18008329e
lea rax, [rdx - 2]
mov rcx, qword [rdx - 2]
imul rcx, r9
sub eax, esi
shr rcx, 0x34
mov dword [r10 + rcx*4], eax
mov rcx, qword [rdx]
imul rcx, r9
mov r15d, edx
sub r15d, esi
shr rcx, 0x34
mov eax, dword [r10 + rcx*4]
cmp eax, r8d
mov rbp, rsi
cmovb rbp, qword [rsp + 0x80]
mov r12, qword [rsp + 0x78]
cmovb r12, r11
mov dword [r10 + rcx*4], r15d
lea ecx, [rax + 0xffff]
cmp ecx, r15d
jb 0x180082d78
add rbp, rax
mov ecx, dword [rbp]
cmp ecx, dword [rdx]
jne 0x180082d78
lea r13, [rbx + 1]
mov byte [rbx], 0
sub r15d, eax
mov r8, rbx
mov r14, qword [rsp + 0x28]
jmp 0x1800829f2
mov r10, qword [rsp + 0x90]
sub r10, rbp
add r10, rdx
mov rax, qword [rsp + 0x38]
cmp r10, rax
cmova r10, rax
lea rbx, [rbp + 4]
lea r9, [rdx + 4]
lea rax, [r10 - 7]
cmp rax, r9
mov r15, qword [rsp + 0x68]
jbe 0x18008579e
mov rsi, qword [r9]
xor rsi, qword [rbx]
je 0x180082cc3
bsf rdi, rsi
xor edx, edx
test rsi, rsi
sete cl
je 0x180082ccd
shr edi, 3
mov rsi, qword [rsp + 0x48]
mov r11, qword [rsp + 0x60]
mov rdx, r12
mov eax, edi
add rax, rdx
add rax, 4
cmp rax, r10
movabs r9, 0xcf1bbcdcbb000000
je 0x180082c82
mov rdx, rax
mov r10, qword [rsp + 0x88]
jmp 0x180082a47
mov edi, 0x40
jmp 0x180082a2a
mov dl, al
lea rdi, [rcx + rdx*8]
lea rbp, [rbp + rdx*8]
mov rdx, r12
cmp rdi, rbx
jae 0x1800852e0
mov eax, edi
sub eax, edx
add eax, 0xfffffffc
mov rdx, qword [rdi]
xor rdx, qword [rbp]
jne 0x180082c73
add rdi, 8
add rbp, 8
add eax, 8
cmp rdi, rbx
jb 0x180082c55
jmp 0x1800852e0
bsf rdi, rdx
shr rdi, 3
add edi, eax
jmp 0x180082a3b
mov rdx, r10
mov rcx, qword [rsp + 0x78]
mov rbx, rcx
cmp r15, r10
jbe 0x180082d27
mov rax, qword [r10]
xor rax, qword [rcx]
je 0x180082d16
bsf rdx, rax
xor ebx, ebx
test rax, rax
sete al
je 0x180082d1d
shr edx, 3
mov r11, qword [rsp + 0x60]
add edi, edx
mov eax, edx
add r10, rax
mov rdx, r10
jmp 0x180082c20
mov edi, 0x40
jmp 0x180082be7
mov dl, cl
lea rdi, [r9 + rdx*8]
lea rbx, [rbx + rdx*8]
mov rdx, r12
cmp rdi, rax
jae 0x18008536d
mov esi, edi
sub esi, edx
add esi, 0xfffffffc
mov rdx, qword [rdi]
xor rdx, qword [rbx]
jne 0x180082d07
add rdi, 8
add rbx, 8
add esi, 8
cmp rdi, rax
jb 0x180082cea
jmp 0x18008536d
bsf rdi, rdx
shr rdi, 3
add edi, esi
jmp 0x180082bf8
mov edx, 0x40
jmp 0x180082ca2
mov bl, al
lea rdx, [r10 + rbx*8]
lea rbx, [rcx + rbx*8]
cmp rdx, r15
jae 0x1800854f8
add r12, qword [rsp + 0x90]
sub r12, rbp
mov rax, qword [rsp + 0x38]
cmp r12, rax
cmovae r12, rax
mov eax, edx
sub eax, r12d
mov rbp, qword [rdx]
xor rbp, qword [rbx]
jne 0x180082d69
add rdx, 8
add rbx, 8
add eax, 8
cmp rdx, r15
jb 0x180082d4c
jmp 0x1800854f8
bsf rdx, rbp
shr rdx, 3
add edx, eax
jmp 0x180082caf
lea r14, [rdx + 1]
mov r15, r14
sub r15, rsi
lea rax, [rdx + 2]
cmp rax, qword [rsp + 0x28]
mov r12, qword [rsp + 0xa0]
mov ebp, dword [rsp + 0x54]
mov r11, qword [rsp + 0x78]
jbe 0x1800827b0
jmp 0x1800832ab
xor ecx, ecx
jmp 0x1800824e8
cmp eax, 0xffff
ja 0x180083179
mov ecx, r9d
sub ecx, eax
mov dword [rsp + 0x28], ecx
jbe 0x180083179
cmp r14d, 0x7e000000
ja 0x180083182
test r14d, r14d
je 0x18008335e
mov ecx, r14d
mov qword [rsp + 0xa8], rcx
movsxd r15, r13d
add r15, r12
lea ecx, [rax + r14]
mov dword [r10 + 0x4018], ecx
lea ecx, [r9 + r14]
mov dword [r10 + 0x4010], ecx
mov dword [r10 + 0x4014], 2
mov rcx, r12
mov qword [rsp + 0xa0], r12
mov rdx, r12
mov rcx, r14
mov r14, r11
cmp ecx, 0xd
jae 0x180083b5c
add r11, qword [rsp + 0xa8]
sub r11, r14
mov rdi, rdx
lea rcx, [rdx + r11]
lea rax, [r11 + 0xf0]
movabs rbp, 0x8080808080808081
mul rbp
shr rdx, 7
lea rax, [rdx + rcx]
inc rax
cmp rax, r15
mov eax, 0
ja 0x180083494
cmp r11, 0xf
jb 0x18008528c
lea rax, [r11 - 0xf]
mov rdx, rdi
mov byte [rdi], 0xf0
lea rcx, [rdi + 1]
cmp rax, 0xff
jb 0x180082eda
lea rax, [r11 - 0x10e]
mov rdi, rdx
mul rbp
mov rbx, rdx
shr rbx, 7
lea r8, [rbx + 1]
mov dl, 0xff
mov rsi, r11
call sub.VCRUNTIME140.dll_memset
mov r11, rsi
mov rax, rbx
shl rax, 8
mov rdx, rbx
sub rdx, rax
lea rcx, [rbx + rdi]
add rcx, 2
lea rbp, [rdi + rbx]
inc rbp
lea rax, [rsi + rdx]
add rax, 0xfffffffffffffef2
mov rdx, rbp
mov byte [rcx], al
add rdx, 2
mov rax, rdx
mov rdi, rcx
jmp 0x180085298
cmp eax, 0xffff
mov qword [rsp + 0x40], rbp
ja 0x180083189
mov r8d, r9d
sub r8d, eax
jbe 0x180083189
cmp r14d, 0x7e000000
ja 0x180083196
test r14d, r14d
je 0x180083432
mov dword [rsp + 0x54], edi
mov r15d, r9d
mov ecx, eax
add rcx, rbp
mov rdx, r14
mov esi, edx
mov qword [rsp + 0x90], rcx
sub rcx, r15
test rbp, rbp
cmove rcx, rbp
mov qword [rsp + 0x30], rcx
movsxd r14, r13d
add r14, r12
add eax, edx
mov dword [r10 + 0x4018], eax
lea eax, [r9 + rdx]
mov dword [r10 + 0x4010], eax
mov dword [r10 + 0x4014], 2
mov rdi, r12
mov rbx, r11
cmp edx, 0xd
jae 0x1800844af
add rsi, r11
sub rsi, rbx
lea rcx, [rdi + rsi]
lea rax, [rsi + 0xf0]
movabs rbp, 0x8080808080808081
mul rbp
shr rdx, 7
lea rax, [rdx + rcx]
inc rax
cmp rax, r14
mov eax, 0
ja 0x18008347e
cmp rsi, 0xf
jb 0x180085339
lea rax, [rsi - 0xf]
mov byte [rdi], 0xf0
lea rcx, [rdi + 1]
cmp rax, 0xff
jb 0x18008300e
lea rax, [rsi - 0x10e]
mul rbp
mov rbp, rdx
shr rbp, 7
lea r8, [rbp + 1]
mov dl, 0xff
call sub.VCRUNTIME140.dll_memset
mov rax, rbp
shl rax, 8
mov rdx, rbp
sub rdx, rax
lea rcx, [rdi + rbp]
add rcx, 2
add rdi, rbp
inc rdi
lea rax, [rsi + rdx]
add rax, 0xfffffffffffffef2
mov byte [rcx], al
add rdi, 2
mov rax, rdi
mov rdi, rcx
jmp 0x180085344
xor eax, eax
cmp r14d, 0x7e000000
ja 0x18008347e
test r14d, r14d
je 0x18008343e
mov dword [rsp + 0x54], edi
mov r15, qword [rdx + 0x4000]
mov ebp, dword [rdx + 0x4018]
mov eax, dword [rdx + 0x4010]
add rbp, r15
mov ecx, r14d
mov qword [rsp + 0xc0], rcx
mov qword [rsp + 0x58], rbp
sub rbp, rax
test r15, r15
cmove rbp, r15
mov qword [rsp + 0x30], rbp
movsxd rcx, r13d
add rcx, r12
mov qword [rsp + 0x60], rcx
mov qword [r10 + 0x4008], 0
mov dword [r10 + 0x4018], r14d
lea ecx, [r9 + r14]
mov dword [r10 + 0x4010], ecx
mov dword [r10 + 0x4014], 2
mov qword [rsp + 0xa0], r12
mov rsi, r12
mov rdi, r11
cmp r14d, 0xd
jae 0x1800834a8
mov rax, rdi
mov rdi, qword [rsp + 0xc0]
add rdi, r11
mov r14, rax
sub rdi, rax
lea rcx, [rsi + rdi]
lea rax, [rdi + 0xf0]
movabs rbp, 0x8080808080808081
mul rbp
shr rdx, 7
lea rax, [rdx + rcx]
inc rax
cmp rax, qword [rsp + 0x60]
mov rbx, qword [rsp + 0xa0]
mov eax, 0
ja 0x18008347e
cmp rdi, 0xf
jb 0x180085266
lea rax, [rdi - 0xf]
mov byte [rsi], 0xf0
lea rcx, [rsi + 1]
cmp rax, 0xff
jb 0x180083168
lea rax, [rdi - 0x10e]
mul rbp
mov rbp, rdx
shr rbp, 7
lea r8, [rbp + 1]
mov dl, 0xff
call sub.VCRUNTIME140.dll_memset
mov rax, rbp
shl rax, 8
mov rdx, rbp
sub rdx, rax
lea rcx, [rsi + rbp]
add rcx, 2
add rsi, rbp
inc rsi
lea rax, [rdi + rdx]
add rax, 0xfffffffffffffef2
mov byte [rcx], al
add rsi, 2
mov rax, rsi
mov rsi, rcx
jmp 0x180085271
cmp r14d, 0x7e000000
jbe 0x18008319d
xor eax, eax
jmp 0x180083494
cmp r14d, 0x7e000000
jbe 0x18008337b
xor eax, eax
jmp 0x18008347e
test r14d, r14d
je 0x18008335e
mov ecx, r14d
mov qword [rsp + 0x70], rcx
movsxd r8, r13d
add r8, r12
lea ecx, [rax + r14]
mov dword [r10 + 0x4018], ecx
lea ecx, [r9 + r14]
mov dword [r10 + 0x4010], ecx
mov dword [r10 + 0x4014], 2
mov rcx, r12
mov qword [rsp + 0xa0], r12
mov r15, r11
cmp r14d, 0xd
jae 0x180084001
add r11, qword [rsp + 0x70]
sub r11, r15
lea rcx, [r12 + r11]
lea rax, [r11 + 0xf0]
movabs rbp, 0x8080808080808081
mul rbp
shr rdx, 7
lea rax, [rdx + rcx]
inc rax
cmp rax, r8
mov eax, 0
ja 0x180083494
cmp r11, 0xf
jb 0x1800852ad
lea rax, [r11 - 0xf]
mov byte [r12], 0xf0
lea rcx, [r12 + 1]
cmp rax, 0xff
jb 0x18008328d
lea rax, [r11 - 0x10e]
mul rbp
mov rbx, rdx
shr rbx, 7
lea r8, [rbx + 1]
mov dl, 0xff
mov rsi, r11
call sub.VCRUNTIME140.dll_memset
mov r11, rsi
mov rax, rbx
shl rax, 8
mov rdx, rbx
sub rdx, rax
lea rcx, [rbx + r12]
add rcx, 2
add r12, rbx
inc r12
lea rax, [rsi + rdx]
add rax, 0xfffffffffffffef2
mov byte [rcx], al
add r12, 2
mov rax, r12
mov r12, rcx
jmp 0x1800852bc
mov r12, qword [rsp + 0xa0]
mov r11, qword [rsp + 0x78]
mov rsi, qword [rsp + 0xc0]
mov rdi, rdx
sub rsi, rdx
lea rcx, [rbx + rsi]
lea rax, [rsi + 0xf0]
movabs rbp, 0x8080808080808081
mul rbp
shr rdx, 7
lea rax, [rdx + rcx]
inc rax
cmp rax, qword [rsp + 0x40]
mov eax, 0
ja 0x18008347e
cmp rsi, 0xf
jb 0x18008344f
lea rax, [rsi - 0xf]
mov byte [rbx], 0xf0
lea rcx, [rbx + 1]
cmp rax, 0xff
jb 0x18008334a
lea rax, [rsi - 0x10e]
mul rbp
mov rbp, rdx
shr rbp, 7
lea r8, [rbp + 1]
mov dl, 0xff
call sub.VCRUNTIME140.dll_memset
mov rax, rbp
shl rax, 8
mov rdx, rbp
sub rdx, rax
lea rcx, [rbx + rbp]
add rcx, 2
add rbx, rbp
inc rbx
lea rax, [rsi + rdx]
add rax, 0xfffffffffffffef2
mov rdx, rdi
mov byte [rcx], al
add rbx, 2
mov rax, rbx
mov rbx, rcx
jmp 0x18008345d
test r13d, r13d
mov eax, 0
jle 0x180083494
mov byte [r12], 0
mov eax, 1
jmp 0x180083494
test r14d, r14d
je 0x180083432
mov dword [rsp + 0x54], edi
mov edi, r13d
mov r13d, r9d
mov ecx, eax
add rcx, rbp
mov esi, r14d
mov qword [rsp + 0x90], rcx
mov r8, rcx
sub r8, r13
test rbp, rbp
cmove r8, rbp
movsxd rcx, edi
add rcx, r12
mov qword [rsp + 0x70], rcx
add eax, r14d
mov dword [r10 + 0x4018], eax
lea eax, [r9 + r14]
mov dword [r10 + 0x4010], eax
mov dword [r10 + 0x4014], 2
mov qword [rsp + 0xa0], r12
mov rax, r11
cmp r14d, 0xd
mov rdx, r11
jae 0x180084b8c
mov rax, r12
mov r12, qword [rsp + 0xa0]
add rsi, r11
mov rdi, rdx
sub rsi, rdx
mov rbx, rax
lea rcx, [rax + rsi]
lea rax, [rsi + 0xf0]
movabs rbp, 0x8080808080808081
mul rbp
shr rdx, 7
lea rax, [rdx + rcx]
inc rax
cmp rax, qword [rsp + 0x70]
jmp 0x1800832e1
test r13d, r13d
mov eax, 0
jg 0x180083443
jmp 0x18008347e
test r13d, r13d
jle 0x18008347e
mov byte [r12], 0
mov eax, 1
jmp 0x18008347e
mov eax, esi
shl al, 4
mov byte [rbx], al
lea rax, [rbx + 1]
mov rdx, rdi
mov rcx, rax
mov r8, rsi
call sub.VCRUNTIME140.dll_memcpy
add esi, ebx
sub esi, r12d
inc esi
mov eax, esi
mov r11, qword [rsp + 0x78]
mov r10, qword [rsp + 0x88]
mov qword [r10 + 0x4000], r11
mov rcx, qword [rsp + 0xc8]
mov dword [r10 + 0x4018], ecx
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r12d, r9d
mov rcx, r11
sub rcx, r12
mov qword [rsp + 0x80], rcx
mov ecx, r9d
sub ecx, eax
mov qword [rsp + 0x28], rcx
mov rax, qword [rsp + 0xc0]
lea rcx, [r11 + rax]
add rcx, 0xfffffffffffffff5
mov qword [rsp + 0x48], rcx
lea rcx, [r11 + rax]
add rcx, 0xfffffffffffffffb
test r15, r15
movabs rbp, 0xcf1bbcdcbb000000
mov rax, qword [rsp + 0x58]
cmove rax, r15
mov qword [rsp + 0x58], rax
mov rax, qword [r11]
imul rax, rbp
shr rax, 0x32
and eax, 0xfffffffc
mov dword [r10 + rax], r9d
mov ebx, dword [rsp + 0x54]
shl ebx, 6
or ebx, 1
lea rax, [r11 + 2]
lea r14, [r11 + 1]
inc r12
mov qword [rsp + 0x98], rcx
add rcx, 0xfffffffffffffff9
mov qword [rsp + 0x90], rcx
mov rdi, r11
mov rsi, qword [rsp + 0xa0]
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0xa8], r15
mov dword [rsp + 0xd0], ebx
mov qword [rsp + 0xb0], rsi
mov qword [rsp + 0x70], rdi
mov rbp, qword [rdi + 1]
mov r8d, dword [rsp + 0x54]
mov ecx, ebx
mov rbx, qword [rsp + 0x80]
mov r13, rax
movabs rax, 0xcf1bbcdcbb000000
imul rbp, rax
mov rdi, rbp
shr rdi, 0x34
mov esi, dword [r10 + rdi*4]
cmp esi, r9d
jae 0x1800835aa
mov eax, dword [rdx + rdi*4]
mov rsi, qword [rsp + 0x28]
add esi, eax
add rax, qword [rsp + 0x30]
mov rbx, r15
jmp 0x1800835b1
lea rax, [rbx + rsi]
mov rbx, r11
mov rbp, qword [r13]
mov dword [r10 + rdi*4], r12d
lea edi, [rsi + 0xffff]
cmp edi, r12d
jb 0x1800835cb
mov edi, dword [rax]
cmp edi, dword [r14]
je 0x1800835f9
mov r12, r13
mov rbx, qword [rsp + 0x80]
sub r12, rbx
mov eax, r8d
add rax, r13
lea edi, [rcx + 1]
shr ecx, 6
mov r8d, ecx
mov ecx, edi
mov r14, r13
cmp rax, qword [rsp + 0x48]
jbe 0x180083575
jmp 0x180085436
mov r13, rbx
sub r12d, esi
mov r9d, r14d
mov rdx, qword [rsp + 0x70]
sub r9d, edx
lea r8d, [r9 - 0xf]
mov ecx, r14d
shl cl, 4
shl dl, 4
sub cl, dl
mov ebp, r8d
xor edi, edi
mov rsi, rdi
mov r10d, ebp
mov ebx, ecx
lea r15, [rax + rdi]
lea rcx, [r14 + rdi]
mov qword [rsp + 0x40], rcx
cmp r15, r13
jbe 0x18008365a
mov rcx, qword [rsp + 0x40]
cmp rcx, qword [rsp + 0x70]
jbe 0x18008365a
mov dl, byte [r14 + rsi - 1]
lea rdi, [rsi - 1]
lea ebp, [r10 - 1]
lea ecx, [rbx - 0x10]
cmp dl, byte [rax + rsi - 1]
je 0x18008361e
mov eax, r14d
mov rdi, qword [rsp + 0x70]
sub eax, edi
add eax, esi
add r9, rsi
mov qword [rsp + 0xb8], rax
mov rbp, qword [rsp + 0xb0]
add rax, rbp
mov ecx, r9d
mov edx, 0x80808081
imul rcx, rdx
shr rcx, 0x27
add rax, rcx
add rax, 9
cmp rax, qword [rsp + 0x60]
ja 0x180085899
lea rcx, [rbp + 1]
cmp r9d, 0xf
jb 0x18008373b
mov eax, r8d
add rax, rsi
mov byte [rbp], 0xf0
cmp eax, 0xfe
jle 0x180083717
mov eax, 0x1fd
cmp r10d, eax
cmovge r10d, eax
sub r14d, edi
mov eax, r14d
sub eax, r10d
add eax, esi
add eax, 0xef
mov edi, eax
mov eax, 0x80808081
imul rdi, rax
shr rdi, 0x27
lea r8, [rdi + 1]
mov dl, 0xff
call sub.VCRUNTIME140.dll_memset
mov r11, qword [rsp + 0x78]
lea rcx, [rdi + rbp]
add rcx, 2
mov eax, edi
shl eax, 8
sub edi, eax
add edi, r14d
lea eax, [rsi + rdi]
add eax, 0xfffffef2
mov rdi, qword [rsp + 0x70]
mov r10, qword [rsp + 0x88]
mov r9, qword [rsp + 0x68]
mov r14, qword [rsp + 0x90]
mov rbx, qword [rsp + 0xb8]
mov byte [rcx], al
inc rcx
jmp 0x18008375b
mov byte [rbp], bl
mov r10, qword [rsp + 0x88]
mov r9, qword [rsp + 0x68]
mov r14, qword [rsp + 0x90]
mov rbx, qword [rsp + 0xb8]
add rbx, rcx
mov rax, qword [rdi]
mov qword [rcx], rax
add rcx, 8
add rdi, 8
cmp rcx, rbx
jb 0x18008375e
mov r8, rbp
mov rdi, qword [rsp + 0x40]
mov word [rbx], r12w
cmp r13, qword [rsp + 0xa8]
je 0x18008392f
add r15, 4
lea rcx, [rdi + 4]
cmp r14, rcx
jbe 0x180085866
mov rdx, qword [rcx]
xor rdx, qword [r15]
je 0x1800839b3
mov rsi, rbx
bsf rbp, rdx
xor ebx, ebx
test rdx, rdx
sete al
je 0x1800839c0
shr ebp, 3
mov r15, qword [rsp + 0x38]
mov rbx, rsi
mov eax, ebp
add rdi, rax
add rdi, 4
lea eax, [rbp + 0xf0]
mov ecx, 0x80808081
imul rax, rcx
shr rax, 0x27
add rax, rbx
add rax, 8
cmp rax, qword [rsp + 0x60]
ja 0x180083196
lea rsi, [rbx + 2]
mov cl, byte [r8]
cmp ebp, 0xf
jb 0x18008388a
add cl, 0xf
mov byte [r8], cl
lea eax, [rbp - 0xf]
mov dword [rsi], 0xffffffff
cmp eax, 0x3fc
jb 0x180083871
lea rcx, [rbx + 6]
add ebp, 0xfffffbf5
mov rsi, rbp
mov eax, 0x80808081
imul rsi, rax
shr rsi, 0x29
mov r13, rdi
mov edi, esi
lea r8, [rdi*4 + 4]
mov dl, 0xff
call sub.VCRUNTIME140.dll_memset
mov r9, qword [rsp + 0x68]
mov r10, qword [rsp + 0x88]
mov r11, qword [rsp + 0x78]
imul eax, esi, 0x3fc
sub ebp, eax
lea rsi, [rbx + rdi*4]
add rsi, 6
mov rdi, r13
mov eax, ebp
movzx ecx, ax
imul ecx, ecx, 0x8081
shr ecx, 0x17
add rsi, rcx
inc rsi
add ecx, eax
mov byte [rsi - 1], cl
jmp 0x180083890
add cl, bpl
mov byte [r8], cl
cmp rdi, qword [rsp + 0x48]
jae 0x1800830bb
lea rax, [rdi - 2]
mov rcx, qword [rdi - 2]
movabs rbp, 0xcf1bbcdcbb000000
imul rcx, rbp
mov rdx, qword [rsp + 0x80]
sub eax, edx
shr rcx, 0x34
mov dword [r10 + rcx*4], eax
mov rax, qword [rdi]
imul rax, rbp
shr rax, 0x34
mov r12d, edi
sub r12d, edx
mov ecx, dword [r10 + rax*4]
cmp ecx, r9d
jae 0x1800838f8
mov r15d, dword [r15 + rax*4]
mov rcx, qword [rsp + 0x28]
add ecx, r15d
add r15, qword [rsp + 0x30]
mov r13, qword [rsp + 0xa8]
jmp 0x1800838ff
lea r15, [rdx + rcx]
mov r13, r11
mov dword [r10 + rax*4], r12d
lea eax, [rcx + 0xffff]
cmp eax, r12d
jb 0x180083b25
mov eax, dword [r15]
cmp eax, dword [rdi]
jne 0x180083b25
lea rbx, [rsi + 1]
mov byte [rsi], 0
sub r12d, ecx
mov r8, rsi
jmp 0x180083779
mov r13, rbx
mov rcx, qword [rsp + 0x58]
sub rcx, r15
add rcx, rdi
mov rax, qword [rsp + 0x98]
cmp rcx, rax
cmova rcx, rax
lea rbx, [r15 + 4]
mov r12, rdi
lea r9, [rdi + 4]
lea rdi, [rcx - 7]
cmp rdi, r9
jbe 0x18008586e
mov rsi, qword [r9]
xor rsi, qword [rbx]
je 0x180083a5f
bsf rbp, rsi
xor eax, eax
test rsi, rsi
sete dl
je 0x180083a69
shr ebp, 3
mov rdi, r12
mov rbx, r13
mov eax, ebp
add rax, rdi
add rax, 4
cmp rax, rcx
mov r9, qword [rsp + 0x68]
je 0x180083a0f
mov rdi, rax
mov r15, qword [rsp + 0x38]
mov r14, qword [rsp + 0x90]
jmp 0x1800837d1
mov rsi, rbx
mov ebp, 0x40
jmp 0x1800837af
mov bl, al
lea rbp, [rcx + rbx*8]
lea r15, [r15 + rbx*8]
mov rbx, rsi
cmp rbp, r14
jae 0x18008538b
mov edx, ebp
sub edx, edi
add edx, 0xfffffffc
mov rax, qword [rbp]
xor rax, qword [r15]
jne 0x1800839fb
add rbp, 8
add r15, 8
add edx, 8
cmp rbp, r14
jb 0x1800839dd
jmp 0x18008538b
bsf rbp, rax
shr rbp, 3
add ebp, edx
mov r15, qword [rsp + 0x38]
jmp 0x1800837c8
mov rdx, rcx
mov rbx, r11
cmp qword [rsp + 0x90], rcx
jbe 0x180083ac5
mov rbx, qword [rcx]
xor rbx, qword [r11]
je 0x180083ab1
bsf rdx, rbx
mov r14, qword [rsp + 0x90]
xor eax, eax
test rbx, rbx
sete bl
je 0x180083abb
shr edx, 3
mov r15, qword [rsp + 0x38]
mov rbx, r13
add ebp, edx
mov eax, edx
add rcx, rax
mov rdi, rcx
jmp 0x1800837d1
mov ebp, 0x40
jmp 0x180083974
mov al, dl
lea rbp, [r9 + rax*8]
lea rbx, [rbx + rax*8]
cmp rbp, rdi
jae 0x180085551
mov esi, ebp
sub esi, r12d
add esi, 0xfffffffc
mov rax, qword [rbp]
xor rax, qword [rbx]
jne 0x180083aa2
add rbp, 8
add rbx, 8
add esi, 8
cmp rbp, rdi
jb 0x180083a84
jmp 0x180085551
bsf rbp, rax
shr rbp, 3
add ebp, esi
jmp 0x180083985
mov edx, 0x40
jmp 0x180083a33
mov al, bl
lea rdx, [rcx + rax*8]
lea rbx, [r11 + rax*8]
mov r14, qword [rsp + 0x90]
cmp rdx, r14
jae 0x1800858a0
add rdi, qword [rsp + 0x58]
sub rdi, r15
mov rax, qword [rsp + 0x98]
cmp rdi, rax
cmovae rdi, rax
mov rax, rdi
mov edi, edx
sub edi, eax
mov r15, qword [rsp + 0x38]
mov rax, qword [rdx]
xor rax, qword [rbx]
jne 0x180083b16
add rdx, 8
add rbx, 8
add edi, 8
cmp rdx, r14
jb 0x180083af9
jmp 0x1800858a5
bsf rdx, rax
shr rdx, 3
add edx, edi
jmp 0x180083a4d
lea r14, [rdi + 1]
mov r12, r14
sub r12, qword [rsp + 0x80]
lea rax, [rdi + 2]
cmp rax, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x38]
mov r15, qword [rsp + 0xa8]
mov ebx, dword [rsp + 0xd0]
jbe 0x180083555
jmp 0x1800830bb
mov ecx, r9d
mov r13, r11
sub r13, rcx
mov rcx, qword [rsp + 0xa8]
lea rdx, [r11 + rcx]
add rdx, 0xfffffffffffffff5
mov qword [rsp + 0x80], rdx
lea rdx, [r11 + rcx - 5]
movabs rcx, 0xcf1bbcdcbb000000
mov eax, eax
mov rbp, r11
sub rbp, rax
mov qword [rsp + 0x60], rbp
mov rax, qword [r11]
imul rax, rcx
shr rax, 0x32
and eax, 0xfffffffc
mov dword [r10 + rax], r9d
mov ebp, edi
shl ebp, 6
or ebp, 1
lea rcx, [r11 + 2]
lea rax, [r11 + 1]
mov qword [rsp + 0x38], rdx
add rdx, 0xfffffffffffffff9
mov qword [rsp + 0x40], rdx
mov r14, r11
mov rdx, qword [rsp + 0xa0]
mov dword [rsp + 0x54], edi
mov qword [rsp + 0x68], r15
mov qword [rsp + 0x30], r13
mov dword [rsp + 0xc8], ebp
mov qword [rsp + 0x70], rdx
mov rbx, qword [r14 + 1]
mov edx, ebp
mov r9d, dword [rsp + 0x28]
mov r15, rax
mov rax, rcx
movabs rcx, 0xcf1bbcdcbb000000
imul rbx, rcx
mov rbp, rbx
shr rbp, 0x34
mov ecx, dword [r10 + rbp*4]
mov esi, r15d
sub esi, r13d
mov rbx, qword [rax]
mov dword [r10 + rbp*4], esi
cmp ecx, r9d
jb 0x180083c3e
lea ebp, [rcx + 0xffff]
cmp ebp, esi
jb 0x180083c3e
mov ebp, dword [r13 + rcx]
cmp ebp, dword [r15]
je 0x180083c5c
mov ecx, edi
add rcx, rax
lea ebp, [rdx + 1]
shr edx, 6
mov edi, edx
mov edx, ebp
cmp rcx, qword [rsp + 0x80]
jbe 0x180083bf9
jmp 0x1800854da
add rcx, r13
lea edx, [r15 + 0xef]
mov ebp, r15d
shl bpl, 4
mov eax, r14d
shl al, 4
sub bpl, al
xor edi, edi
mov r8, qword [rsp + 0x60]
mov r12, rdi
mov esi, edx
mov eax, ebp
lea r13, [rcx + rdi]
lea rdx, [r15 + rdi]
mov qword [rsp + 0x48], rdx
cmp r13, r8
jbe 0x180083cb4
cmp qword [rsp + 0x48], r14
jbe 0x180083cb4
mov bl, byte [r15 + r12 - 1]
lea rdi, [r12 - 1]
lea edx, [rsi - 1]
lea ebp, [rax - 0x10]
cmp bl, byte [rcx + r12 - 1]
je 0x180083c7d
mov ecx, r15d
sub ecx, r14d
add ecx, r12d
mov edx, r15d
sub edx, r14d
add rdx, r12
mov rdi, qword [rsp + 0x70]
mov rbx, rcx
add rcx, rdi
mov ebp, edx
mov r8d, 0x80808081
imul rbp, r8
shr rbp, 0x27
add rcx, rbp
add rcx, 9
cmp rcx, qword [rsp + 0x68]
ja 0x180083182
lea rcx, [rdi + 1]
cmp edx, 0xf
jb 0x180083d92
mov ebp, r15d
sub ebp, r14d
add ebp, 0xfffffff1
add rbp, r12
mov byte [rdi], 0xf0
cmp ebp, 0xfe
jle 0x180083da6
mov eax, 0x1fd
cmp ebp, eax
cmovge ebp, eax
add ebp, r14d
mov eax, r15d
sub eax, ebp
lea edi, [rax + r12]
add edi, 0xef
imul rdi, r8
shr rdi, 0x27
lea r8, [rdi + 1]
mov dl, 0xff
call sub.VCRUNTIME140.dll_memset
mov rdx, qword [rsp + 0x70]
mov r8d, 0x80808081
mov r9d, dword [rsp + 0x28]
mov r10, qword [rsp + 0x88]
mov r11, qword [rsp + 0x78]
lea rcx, [rdx + rdi]
add rcx, 2
sub r15d, r14d
sub esi, ebp
imul rsi, r8
shr rsi, 0x27
mov eax, esi
shl eax, 8
sub esi, eax
add esi, r15d
lea ebp, [r12 + rsi]
add ebp, 0xfffffef2
jmp 0x180083da9
mov byte [rdi], al
mov r15, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x40]
mov rdx, rdi
mov r12, rbx
jmp 0x180083dbc
mov rdx, rdi
mov r15, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x40]
mov r12, rbx
mov byte [rcx], bpl
inc rcx
add r12, rcx
mov rax, qword [r14]
mov qword [rcx], rax
add rcx, 8
add r14, 8
cmp rcx, r12
jb 0x180083dbf
mov rax, rdx
mov r14, qword [rsp + 0x48]
mov ecx, r14d
sub ecx, r13d
mov word [r12], cx
add r13, 4
lea rcx, [r14 + 4]
cmp rsi, rcx
jbe 0x180085856
mov rdx, qword [rcx]
xor rdx, qword [r13]
je 0x180083f52
bsf rbp, rdx
xor ebx, ebx
test rdx, rdx
sete dl
je 0x180083f5c
shr ebp, 3
mov rbx, qword [rsp + 0x30]
lea ecx, [rbp + 0xf0]
imul rcx, r8
shr rcx, 0x27
add rcx, r12
add rcx, 8
cmp rcx, r15
ja 0x180083182
lea rdx, [r12 + 2]
mov cl, byte [rax]
cmp ebp, 0xf
jb 0x180083ecf
add cl, 0xf
mov byte [rax], cl
lea edi, [rbp - 0xf]
mov dword [rdx], 0xffffffff
cmp edi, 0x3fc
jb 0x180083eb6
lea rcx, [r12 + 6]
lea edi, [rbp - 0x40b]
mov rsi, rdi
imul rsi, r8
shr rsi, 0x29
mov r13d, esi
lea r8, [r13*4 + 4]
mov dl, 0xff
call sub.VCRUNTIME140.dll_memset
mov r8d, 0x80808081
mov r9d, dword [rsp + 0x28]
mov r10, qword [rsp + 0x88]
mov r11, qword [rsp + 0x78]
imul eax, esi, 0x3fc
mov rsi, qword [rsp + 0x40]
sub edi, eax
lea rdx, [r12 + r13*4]
add rdx, 6
movzx eax, di
imul eax, eax, 0x8081
shr eax, 0x17
add rdx, rax
inc rdx
add eax, edi
mov byte [rdx - 1], al
jmp 0x180083ed4
add cl, bpl
mov byte [rax], cl
mov eax, ebp
add r14, rax
add r14, 4
cmp r14, qword [rsp + 0x80]
jae 0x180082e2d
mov r12, rdx
lea rax, [r14 - 2]
mov rcx, qword [r14 - 2]
movabs rdx, 0xcf1bbcdcbb000000
imul rcx, rdx
sub eax, ebx
shr rcx, 0x34
mov dword [r10 + rcx*4], eax
mov rcx, qword [r14]
imul rcx, rdx
mov eax, r14d
sub eax, ebx
shr rcx, 0x34
mov r13d, dword [r10 + rcx*4]
mov dword [r10 + rcx*4], eax
cmp r13d, r9d
jb 0x180083f9f
lea ecx, [r13 + 0xffff]
cmp ecx, eax
jb 0x180083f9f
add r13, qword [rsp + 0x30]
mov eax, dword [r13]
cmp eax, dword [r14]
jne 0x180083f9f
mov rax, r12
inc r12
mov byte [rax], 0
jmp 0x180083dda
mov ebp, 0x40
jmp 0x180083e07
mov bl, dl
lea rbp, [rcx + rbx*8]
lea r13, [r13 + rbx*8]
cmp rbp, rsi
jae 0x180083fcd
mov edx, ebp
sub edx, r14d
add edx, 0xfffffffc
mov rbx, qword [rbp]
xor rbx, qword [r13]
jne 0x180083f90
add rbp, 8
add r13, 8
add edx, 8
cmp rbp, rsi
jb 0x180083f74
jmp 0x180083fcd
bsf rbp, rbx
shr rbp, 3
add ebp, edx
jmp 0x180083e18
lea rax, [r14 + 1]
lea rcx, [r14 + 2]
cmp rcx, qword [rsp + 0x80]
mov edi, dword [rsp + 0x54]
mov r13, qword [rsp + 0x30]
mov ebp, dword [rsp + 0xc8]
mov rdx, r12
jbe 0x180083be9
jmp 0x180082e2d
mov rbx, qword [rsp + 0x38]
lea rdx, [rbx - 3]
cmp rbp, rdx
jb 0x180085448
lea rdx, [rbx - 1]
cmp rbp, rdx
jb 0x180085462
cmp rbp, rbx
jb 0x18008547e
mov rbx, qword [rsp + 0x30]
sub ebp, ecx
jmp 0x180083e1d
mov ebp, edi
mov ecx, r9d
mov rdx, r11
sub rdx, rcx
mov rcx, qword [rsp + 0x70]
lea r13, [r11 + rcx]
add r13, 0xfffffffffffffff5
lea rcx, [r11 + rcx - 5]
movabs rsi, 0xcf1bbcdcbb000000
mov eax, eax
mov rdi, r11
sub rdi, rax
mov qword [rsp + 0xa8], rdi
mov rax, qword [r11]
imul rax, rsi
shr rax, 0x32
and eax, 0xfffffffc
mov dword [r10 + rax], r9d
mov r9, rdx
mov edx, ebp
shl edx, 6
or edx, 1
lea rax, [r11 + 2]
lea r14, [r11 + 1]
mov qword [rsp + 0xc8], rcx
add rcx, 0xfffffffffffffff9
mov qword [rsp + 0x28], rcx
mov r15, r11
mov r12, qword [rsp + 0xa0]
mov dword [rsp + 0x54], ebp
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x48], r13
mov dword [rsp + 0x60], edx
mov qword [rsp + 0x40], r12
mov rbx, qword [r15 + 1]
mov ecx, edx
mov rdi, rax
movabs rax, 0xcf1bbcdcbb000000
imul rbx, rax
mov rdx, rbx
shr rdx, 0x34
mov eax, dword [r10 + rdx*4]
mov esi, r14d
sub esi, r9d
mov rbx, qword [rdi]
mov dword [r10 + rdx*4], esi
lea edx, [rax + 0xffff]
cmp edx, esi
jb 0x1800840d2
mov edx, dword [r9 + rax]
cmp edx, dword [r14]
je 0x1800840ee
mov eax, ebp
add rax, rdi
lea edx, [rcx + 1]
shr ecx, 6
mov ebp, ecx
mov ecx, edx
mov r14, rdi
cmp rax, r13
jbe 0x180084096
jmp 0x1800854e9
add rax, r9
lea ecx, [r14 + 0xef]
mov edi, r14d
shl dil, 4
mov edx, r15d
shl dl, 4
sub dil, dl
xor ebx, ebx
mov r8, qword [rsp + 0xa8]
mov r12, rbx
mov ebp, ecx
mov esi, edi
lea r13, [rax + rbx]
lea rcx, [r14 + rbx]
mov qword [rsp + 0x80], rcx
cmp r13, r8
jbe 0x18008414f
cmp qword [rsp + 0x80], r15
jbe 0x18008414f
mov dl, byte [r14 + r12 - 1]
lea rbx, [r12 - 1]
lea ecx, [rbp - 1]
lea edi, [rsi - 0x10]
cmp dl, byte [rax + r12 - 1]
je 0x180084112
mov eax, r14d
sub eax, r15d
lea ecx, [r12 + rax]
mov eax, r14d
sub eax, r15d
add rax, r12
mov rdi, qword [rsp + 0x40]
mov qword [rsp + 0x68], rcx
add rcx, rdi
mov edx, eax
mov ebx, 0x80808081
imul rdx, rbx
shr rdx, 0x27
add rcx, rdx
add rcx, 9
mov r8, qword [rsp + 0x30]
cmp rcx, r8
ja 0x180083182
lea rcx, [rdi + 1]
cmp eax, 0xf
jb 0x180084244
mov esi, r14d
sub esi, r15d
add esi, 0xfffffff1
add rsi, r12
mov byte [rdi], 0xf0
cmp esi, 0xfe
jle 0x180084256
mov eax, 0x1fd
cmp esi, eax
cmovge esi, eax
add esi, r15d
mov eax, r14d
sub eax, esi
mov rbx, rsi
lea esi, [rax + r12]
add esi, 0xef
mov eax, 0x80808081
imul rsi, rax
shr rsi, 0x27
lea r8, [rsi + 1]
mov dl, 0xff
mov rdi, r9
call sub.VCRUNTIME140.dll_memset
mov r9, rdi
mov r8, qword [rsp + 0x30]
mov r10, qword [rsp + 0x88]
mov r11, qword [rsp + 0x78]
mov rax, qword [rsp + 0x40]
lea rcx, [rax + rsi]
add rcx, 2
mov rdx, qword [rsp + 0x40]
sub r14d, r15d
sub ebp, ebx
mov eax, 0x80808081
imul rbp, rax
shr rbp, 0x27
mov eax, ebp
shl eax, 8
sub ebp, eax
add ebp, r14d
lea esi, [r12 + rbp]
add esi, 0xfffffef2
jmp 0x180084259
mov byte [rdi], sil
mov r14, qword [rsp + 0x28]
mov rdx, rdi
mov rbx, qword [rsp + 0x68]
jmp 0x180084269
mov rdx, rdi
mov r14, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x68]
mov byte [rcx], sil
inc rcx
add rbx, rcx
mov rax, qword [r15]
mov qword [rcx], rax
add rcx, 8
add r15, 8
cmp rcx, rbx
jb 0x18008426c
mov rax, rdx
mov r15, qword [rsp + 0x80]
mov ecx, r15d
sub ecx, r13d
mov word [rbx], cx
add r13, 4
lea rcx, [r15 + 4]
cmp r14, rcx
jbe 0x18008585e
mov rdx, qword [rcx]
xor rdx, qword [r13]
je 0x180084408
bsf rdi, rdx
xor ebp, ebp
test rdx, rdx
sete dl
je 0x180084412
shr edi, 3
mov r13, qword [rsp + 0x48]
lea ecx, [rdi + 0xf0]
mov edx, 0x80808081
imul rcx, rdx
shr rcx, 0x27
add rcx, rbx
add rcx, 8
cmp rcx, r8
ja 0x180083182
lea r12, [rbx + 2]
mov cl, byte [rax]
cmp edi, 0xf
jb 0x18008438e
mov rdx, rbx
add cl, 0xf
mov byte [rax], cl
lea ebx, [rdi - 0xf]
mov dword [r12], 0xffffffff
cmp ebx, 0x3fc
jb 0x180084373
mov r12, rdx
lea rcx, [rdx + 6]
lea ebx, [rdi - 0x40b]
mov rsi, rbx
mov eax, 0x80808081
imul rsi, rax
shr rsi, 0x29
mov ebp, esi
lea r8, [rbp*4 + 4]
mov dl, 0xff
mov r14, r9
call sub.VCRUNTIME140.dll_memset
mov r9, r14
mov r14, qword [rsp + 0x28]
mov r8, qword [rsp + 0x30]
mov r10, qword [rsp + 0x88]
mov r11, qword [rsp + 0x78]
imul eax, esi, 0x3fc
sub ebx, eax
lea r12, [r12 + rbp*4]
add r12, 6
movzx eax, bx
imul eax, eax, 0x8081
shr eax, 0x17
add r12, rax
inc r12
add eax, ebx
mov byte [r12 - 1], al
jmp 0x180084393
add cl, dil
mov byte [rax], cl
mov eax, edi
add r15, rax
add r15, 4
cmp r15, r13
jae 0x1800831ed
lea rax, [r15 - 2]
mov rcx, qword [r15 - 2]
movabs rdx, 0xcf1bbcdcbb000000
imul rcx, rdx
sub eax, r9d
shr rcx, 0x34
mov dword [r10 + rcx*4], eax
mov rax, qword [r15]
imul rax, rdx
mov ecx, r15d
sub ecx, r9d
shr rax, 0x34
mov r13d, dword [r10 + rax*4]
mov dword [r10 + rax*4], ecx
lea eax, [r13 + 0xffff]
cmp eax, ecx
jb 0x180084455
add r13, r9
mov eax, dword [r13]
cmp eax, dword [r15]
jne 0x180084455
lea rbx, [r12 + 1]
mov byte [r12], 0
mov rax, r12
jmp 0x18008428a
mov edi, 0x40
jmp 0x1800842b5
mov bpl, dl
lea rdi, [rcx + rbp*8]
lea r13, [r13 + rbp*8]
cmp rdi, r14
jae 0x180084478
mov edx, edi
sub edx, r15d
add edx, 0xfffffffc
mov rbp, qword [rdi]
xor rbp, qword [r13]
jne 0x180084446
add rdi, 8
add r13, 8
add edx, 8
cmp rdi, r14
jb 0x18008442b
jmp 0x180084478
bsf rdi, rbp
shr rdi, 3
add edi, edx
jmp 0x1800842c6
lea r14, [r15 + 1]
lea rax, [r15 + 2]
mov r13, qword [rsp + 0x48]
cmp rax, r13
mov ebp, dword [rsp + 0x54]
mov edx, dword [rsp + 0x60]
jbe 0x18008408b
jmp 0x1800831ed
mov rsi, qword [rsp + 0xc8]
lea rdx, [rsi - 3]
cmp rdi, rdx
jb 0x180085492
lea rdx, [rsi - 1]
cmp rdi, rdx
jb 0x1800854ab
cmp rdi, rsi
jb 0x1800854c6
mov r13, qword [rsp + 0x48]
sub edi, ecx
jmp 0x1800842cb
mov rax, r11
sub rax, r15
mov qword [rsp + 0x80], rax
lea rax, [r11 + rsi]
add rax, 0xfffffffffffffff5
mov qword [rsp + 0x48], rax
lea rdx, [r11 + rsi]
add rdx, 0xfffffffffffffffb
test rbp, rbp
movabs rcx, 0xcf1bbcdcbb000000
mov rax, qword [rsp + 0x90]
cmove rax, rbp
mov qword [rsp + 0x90], rax
mov rax, qword [r11]
imul rax, rcx
shr rax, 0x32
and eax, 0xfffffffc
mov dword [r10 + rax], r9d
mov ebp, dword [rsp + 0x54]
shl ebp, 6
or ebp, 1
lea rcx, [r11 + 2]
lea rax, [r11 + 1]
inc r15
mov qword [rsp + 0x58], rdx
add rdx, 0xfffffffffffffff9
mov qword [rsp + 0xa8], rdx
mov rbx, r11
mov rdi, r12
mov dword [rsp + 0x60], r8d
mov qword [rsp + 0xa0], r12
mov qword [rsp + 0xb8], rsi
mov qword [rsp + 0x38], r14
mov dword [rsp + 0xc0], ebp
mov qword [rsp + 0x98], rdi
mov qword [rsp + 0x28], rbx
mov rbx, qword [rbx + 1]
mov edi, dword [rsp + 0x54]
mov edx, ebp
mov r14, rax
mov rax, rcx
movabs rcx, 0xcf1bbcdcbb000000
imul rbx, rcx
mov rcx, rbx
shr rcx, 0x34
mov esi, dword [r10 + rcx*4]
mov rbx, qword [rax]
mov dword [r10 + rcx*4], r15d
cmp esi, r8d
jb 0x1800845b8
lea ecx, [rsi + 0xffff]
cmp ecx, r15d
jb 0x1800845b8
cmp esi, r9d
mov rcx, qword [rsp + 0x80]
cmovb rcx, qword [rsp + 0x30]
mov ebp, dword [rcx + rsi]
cmp ebp, dword [r14]
je 0x1800845de
mov r15, rax
sub r15, qword [rsp + 0x80]
mov ecx, edi
add rcx, rax
lea ebp, [rdx + 1]
shr edx, 6
mov edi, edx
mov edx, ebp
cmp rcx, qword [rsp + 0x48]
jbe 0x180084569
jmp 0x18008560f
add rcx, rsi
cmp esi, r9d
mov rax, r11
cmovb rax, qword [rsp + 0x40]
mov qword [rsp + 0x70], rax
sub r15d, esi
lea edx, [r14 + 0xef]
mov esi, r14d
shl sil, 4
mov rax, qword [rsp + 0x28]
shl al, 4
sub sil, al
xor ebx, ebx
mov r13, rbx
mov r12d, edx
mov r8d, esi
lea rdi, [rcx + rbx]
lea rbp, [r14 + rbx]
cmp rdi, qword [rsp + 0x70]
jbe 0x180084648
cmp rbp, qword [rsp + 0x28]
jbe 0x180084648
mov al, byte [r14 + r13 - 1]
lea rbx, [r13 - 1]
lea edx, [r12 - 1]
lea esi, [r8 - 0x10]
cmp al, byte [rcx + r13 - 1]
je 0x180084610
mov qword [rsp + 0xb0], rbp
mov eax, r14d
mov rcx, qword [rsp + 0x28]
sub eax, ecx
lea esi, [rax + r13]
mov edx, r14d
sub edx, ecx
add rdx, r13
mov rax, qword [rsp + 0x98]
mov rbp, rax
add rax, rsi
mov ecx, edx
mov ebx, 0x80808081
imul rcx, rbx
shr rcx, 0x27
add rax, rcx
add rax, 9
mov rcx, qword [rsp + 0x38]
cmp rax, rcx
ja 0x180083196
mov rbx, rcx
mov rax, rbp
lea rcx, [rbp + 1]
cmp edx, 0xf
jb 0x18008476f
mov ebp, r14d
mov rdx, qword [rsp + 0x28]
sub ebp, edx
add ebp, 0xfffffff1
add rbp, r13
mov byte [rax], 0xf0
cmp ebp, 0xfe
jle 0x18008475f
mov eax, 0x1fd
cmp ebp, eax
cmovge ebp, eax
add ebp, edx
mov eax, r14d
sub eax, ebp
mov qword [rsp + 0xd0], rsi
lea esi, [rax + r13]
add esi, 0xef
mov eax, 0x80808081
imul rsi, rax
shr rsi, 0x27
lea r8, [rsi + 1]
mov dl, 0xff
call sub.VCRUNTIME140.dll_memset
mov r9, qword [rsp + 0x68]
mov r10, qword [rsp + 0x88]
mov r11, qword [rsp + 0x78]
mov rax, qword [rsp + 0x98]
lea rcx, [rax + rsi]
add rcx, 2
mov rsi, qword [rsp + 0xd0]
sub r14d, dword [rsp + 0x28]
sub r12d, ebp
mov eax, 0x80808081
imul r12, rax
mov rdx, qword [rsp + 0x28]
shr r12, 0x27
mov eax, r12d
shl eax, 8
sub r12d, eax
add r12d, r14d
lea ebp, [r12 + r13]
add ebp, 0xfffffef2
mov r14, rbx
mov r12, qword [rsp + 0x70]
mov byte [rcx], bpl
inc rcx
jmp 0x18008477f
mov byte [rax], r8b
mov rdx, qword [rsp + 0x28]
mov r14, rbx
mov r12, qword [rsp + 0x70]
add rsi, rcx
mov r13, qword [rsp + 0x40]
mov rax, qword [rdx]
mov qword [rcx], rax
add rcx, 8
add rdx, 8
cmp rcx, rsi
jb 0x180084787
mov r8, qword [rsp + 0x98]
mov rbx, qword [rsp + 0xb0]
mov word [rsi], r15w
cmp r12, r13
je 0x180084966
mov r15, rsi
add rdi, 4
mov rsi, rbx
lea rcx, [rbx + 4]
mov rbx, qword [rsp + 0xa8]
cmp rbx, rcx
jbe 0x180085876
mov rax, qword [rcx]
xor rax, qword [rdi]
je 0x180084a3a
bsf rbp, rax
xor edx, edx
test rax, rax
sete al
je 0x180084a44
shr ebp, 3
mov rbx, rsi
mov rsi, r15
mov eax, ebp
add rbx, rax
add rbx, 4
lea eax, [rbp + 0xf0]
mov ecx, 0x80808081
imul rax, rcx
shr rax, 0x27
add rax, rsi
add rax, 8
cmp rax, r14
ja 0x180083196
lea rdi, [rsi + 2]
mov al, byte [r8]
cmp ebp, 0xf
jb 0x1800848be
add al, 0xf
mov byte [r8], al
lea eax, [rbp - 0xf]
mov dword [rdi], 0xffffffff
cmp eax, 0x3fc
jb 0x1800848a5
lea rcx, [rsi + 6]
add ebp, 0xfffffbf5
mov r15, rsi
mov rsi, rbp
mov eax, 0x80808081
imul rsi, rax
shr rsi, 0x29
mov edi, esi
lea r8, [rdi*4 + 4]
mov dl, 0xff
call sub.VCRUNTIME140.dll_memset
mov r9, qword [rsp + 0x68]
mov r10, qword [rsp + 0x88]
mov r11, qword [rsp + 0x78]
imul eax, esi, 0x3fc
mov r13, qword [rsp + 0x40]
sub ebp, eax
lea rdi, [r15 + rdi*4]
add rdi, 6
mov eax, ebp
movzx ecx, ax
imul ecx, ecx, 0x8081
shr ecx, 0x17
add rdi, rcx
inc rdi
add ecx, eax
mov byte [rdi - 1], cl
jmp 0x1800848c4
add al, bpl
mov byte [r8], al
cmp rbx, qword [rsp + 0x48]
mov r8d, dword [rsp + 0x60]
jae 0x180085244
mov r12, r11
mov r11, rdi
lea rax, [rbx - 2]
mov rcx, qword [rbx - 2]
movabs rdx, 0xcf1bbcdcbb000000
imul rcx, rdx
mov rdi, qword [rsp + 0x80]
sub eax, edi
shr rcx, 0x34
mov dword [r10 + rcx*4], eax
mov rcx, qword [rbx]
imul rcx, rdx
mov r15d, ebx
sub r15d, edi
shr rcx, 0x34
mov eax, dword [r10 + rcx*4]
cmp eax, r9d
cmovb rdi, qword [rsp + 0x30]
mov rdx, r12
cmovb r12, r13
mov dword [r10 + rcx*4], r15d
cmp eax, r8d
jb 0x180084b4c
lea ecx, [rax + 0xffff]
cmp ecx, r15d
jb 0x180084b4c
add rdi, rax
mov ecx, dword [rdi]
cmp ecx, dword [rbx]
jne 0x180084b4c
lea rsi, [r11 + 1]
mov byte [r11], 0
sub r15d, eax
mov r8, r11
mov r11, rdx
jmp 0x1800847aa
mov rcx, qword [rsp + 0x90]
sub rcx, rdi
add rcx, rbx
mov rax, qword [rsp + 0x58]
cmp rcx, rax
cmova rcx, rax
mov rax, rbx
lea rbx, [rdi + 4]
mov rdx, rax
mov qword [rsp + 0x28], rax
lea r9, [rax + 4]
lea rax, [rcx - 7]
cmp rax, r9
mov r15, qword [rsp + 0xa8]
jbe 0x180085886
mov rdx, qword [r9]
xor rdx, qword [rbx]
je 0x180084a8b
mov r12, rsi
bsf rbp, rdx
xor esi, esi
test rdx, rdx
sete dl
je 0x180084a98
shr ebp, 3
mov r13, qword [rsp + 0x40]
mov r14, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x28]
mov rsi, r12
mov eax, ebp
lea rbx, [rax + rdx]
add rbx, 4
cmp rbx, rcx
mov r9, qword [rsp + 0x68]
jne 0x180084806
mov rdx, rcx
mov rbx, r11
cmp r15, rcx
jbe 0x180084af6
mov rax, qword [rcx]
xor rax, qword [r11]
je 0x180084ae2
bsf rdx, rax
xor ebx, ebx
test rax, rax
sete al
je 0x180084aec
shr edx, 3
mov r14, qword [rsp + 0x38]
add ebp, edx
mov eax, edx
add rcx, rax
mov rbx, rcx
jmp 0x180084806
mov ebp, 0x40
jmp 0x1800847e6
mov dl, al
lea rbp, [rcx + rdx*8]
lea rdi, [rdi + rdx*8]
cmp rbp, rbx
jae 0x180085579
mov eax, ebp
sub eax, esi
add eax, 0xfffffffc
mov rdx, qword [rbp]
xor rdx, qword [rdi]
jne 0x180084a7c
add rbp, 8
add rdi, 8
add eax, 8
cmp rbp, rbx
jb 0x180084a5e
jmp 0x180085579
bsf rbp, rdx
shr rbp, 3
add ebp, eax
jmp 0x1800847f7
mov r12, rsi
mov ebp, 0x40
jmp 0x1800849bb
mov sil, dl
lea rbp, [r9 + rsi*8]
lea rbx, [rbx + rsi*8]
cmp rbp, rax
jae 0x180085640
mov edx, ebp
sub edx, dword [rsp + 0x28]
add edx, 0xfffffffc
mov rsi, qword [rbp]
xor rsi, qword [rbx]
jne 0x180084ad3
add rbp, 8
add rbx, 8
add edx, 8
cmp rbp, rax
jb 0x180084ab5
jmp 0x180085640
bsf rbp, rsi
shr rbp, 3
add ebp, edx
jmp 0x1800849cc
mov edx, 0x40
jmp 0x180084a15
mov bl, al
lea rdx, [rcx + rbx*8]
lea rbx, [r11 + rbx*8]
cmp rdx, r15
jae 0x1800857a6
mov r12, qword [rsp + 0x28]
add r12, qword [rsp + 0x90]
sub r12, rdi
mov rax, qword [rsp + 0x58]
cmp r12, rax
cmovae r12, rax
mov eax, edx
sub eax, r12d
mov rdi, qword [rdx]
xor rdi, qword [rbx]
jne 0x180084b3d
add rdx, 8
add rbx, 8
add eax, 8
cmp rdx, r15
jb 0x180084b20
jmp 0x1800857a6
bsf rdx, rdi
shr rdx, 3
add edx, eax
jmp 0x180084a26
lea rax, [rbx + 1]
mov r15, rax
sub r15, qword [rsp + 0x80]
lea rcx, [rbx + 2]
cmp rcx, qword [rsp + 0x48]
mov r12, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0xb8]
mov ebp, dword [rsp + 0xc0]
mov rdi, r11
mov r11, rdx
jbe 0x180084552
jmp 0x180082f79
mov r14, r11
sub r14, r13
lea rax, [r11 + rsi]
add rax, 0xfffffffffffffff5
mov qword [rsp + 0x80], rax
lea rcx, [r11 + rsi]
add rcx, 0xfffffffffffffffb
test rbp, rbp
movabs rdx, 0xcf1bbcdcbb000000
mov rax, qword [rsp + 0x90]
cmove rax, rbp
mov qword [rsp + 0x90], rax
mov rax, qword [r11]
imul rax, rdx
shr rax, 0x32
and eax, 0xfffffffc
mov dword [r10 + rax], r9d
mov ebx, dword [rsp + 0x54]
shl ebx, 6
or ebx, 1
lea rax, [r11 + 2]
lea r15, [r11 + 1]
inc r13
mov qword [rsp + 0x58], rcx
add rcx, 0xfffffffffffffff9
mov qword [rsp + 0x60], rcx
mov rdx, r11
mov r12, qword [rsp + 0xa0]
mov qword [rsp + 0x38], r8
mov qword [rsp + 0xc0], rsi
mov qword [rsp + 0xa8], r14
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x30], rdx
mov rdx, qword [rdx + 1]
mov ebp, dword [rsp + 0x54]
mov ecx, ebx
mov rsi, rax
movabs rax, 0xcf1bbcdcbb000000
imul rdx, rax
mov rax, rdx
shr rax, 0x34
mov ebx, dword [r10 + rax*4]
mov rdx, qword [rsi]
mov dword [r10 + rax*4], r13d
lea eax, [rbx + 0xffff]
cmp eax, r13d
jb 0x180084c73
cmp ebx, r9d
mov rax, r14
cmovb rax, r8
mov edi, dword [rax + rbx]
cmp edi, dword [r15]
je 0x180084c9a
mov r13, rsi
sub r13, r14
mov eax, ebp
add rax, rsi
lea ebx, [rcx + 1]
shr ecx, 6
mov ebp, ecx
mov ecx, ebx
mov r15, rsi
cmp rax, qword [rsp + 0x80]
jbe 0x180084c33
jmp 0x18008562e
mov qword [rsp + 0x98], r12
add rax, rbx
cmp ebx, r9d
mov r14, r11
cmovb r14, qword [rsp + 0x40]
sub r13d, ebx
lea ecx, [r15 + 0xef]
mov ebx, r15d
shl bl, 4
mov rbp, qword [rsp + 0x30]
mov edx, ebp
shl dl, 4
sub bl, dl
mov rdx, rbp
xor esi, esi
mov r12, rsi
mov qword [rsp + 0x48], rcx
mov edi, ebx
lea rbp, [rax + rsi]
lea r8, [r15 + rsi]
cmp rbp, r14
jbe 0x180084d0e
cmp r8, rdx
jbe 0x180084d0e
mov dl, byte [r15 + r12 - 1]
lea rsi, [r12 - 1]
mov rcx, qword [rsp + 0x48]
dec ecx
lea ebx, [rdi - 0x10]
cmp dl, byte [rax + r12 - 1]
mov rdx, qword [rsp + 0x30]
je 0x180084cd2
mov eax, r15d
sub eax, edx
lea ecx, [r12 + rax]
mov eax, r15d
sub eax, edx
add rax, r12
mov qword [rsp + 0xb0], rcx
mov rsi, qword [rsp + 0x98]
add rcx, rsi
mov edx, eax
mov ebx, 0x80808081
imul rdx, rbx
shr rdx, 0x27
add rcx, rdx
add rcx, 9
cmp rcx, qword [rsp + 0x70]
ja 0x180083196
lea rcx, [rsi + 1]
cmp eax, 0xf
mov rax, qword [rsp + 0x40]
mov ebx, dword [rsp + 0x28]
mov qword [rsp + 0xb8], r8
jb 0x180084e1c
mov ebx, r15d
mov rdx, qword [rsp + 0x30]
sub ebx, edx
add ebx, 0xfffffff1
add rbx, r12
mov byte [rsi], 0xf0
cmp ebx, 0xfe
jle 0x180084e34
mov eax, 0x1fd
cmp ebx, eax
cmovge ebx, eax
add ebx, edx
mov eax, r15d
sub eax, ebx
lea edi, [rax + r12]
add edi, 0xef
mov eax, 0x80808081
imul rdi, rax
shr rdi, 0x27
lea r8, [rdi + 1]
mov dl, 0xff
call sub.VCRUNTIME140.dll_memset
mov rdx, qword [rsp + 0x30]
mov r9, qword [rsp + 0x68]
mov r10, qword [rsp + 0x88]
mov r11, qword [rsp + 0x78]
lea rcx, [rsi + rdi]
add rcx, 2
mov rsi, qword [rsp + 0x40]
sub r15d, edx
mov rdi, qword [rsp + 0x48]
sub edi, ebx
mov eax, 0x80808081
imul rdi, rax
shr rdi, 0x27
mov eax, edi
shl eax, 8
sub edi, eax
add edi, r15d
lea ebx, [r12 + rdi]
add ebx, 0xfffffef2
mov rdi, qword [rsp + 0xb0]
jmp 0x180084e3f
mov byte [rsi], dil
mov rdx, qword [rsp + 0x30]
mov rdi, qword [rsp + 0xb0]
mov r8, rsi
mov rsi, rax
jmp 0x180084e50
mov rdi, qword [rsp + 0xb0]
mov rsi, rax
mov byte [rcx], bl
inc rcx
mov r8, qword [rsp + 0x98]
mov ebx, dword [rsp + 0x28]
add rdi, rcx
mov rax, qword [rdx]
mov qword [rcx], rax
add rcx, 8
add rdx, 8
cmp rcx, rdi
jb 0x180084e53
mov rdx, qword [rsp + 0xb8]
mov r15, rdi
mov word [rdi], r13w
cmp r14, rsi
mov r12, rdx
je 0x180085033
add rbp, 4
lea rcx, [rdx + 4]
mov rdi, qword [rsp + 0x60]
cmp rdi, rcx
jbe 0x18008587e
mov rdx, qword [rcx]
xor rdx, qword [rbp]
je 0x1800850b1
bsf r14, rdx
xor ebx, ebx
test rdx, rdx
sete al
je 0x1800850bc
shr r14d, 3
mov ebx, dword [rsp + 0x28]
mov rdx, r12
mov eax, r14d
add rdx, rax
add rdx, 4
lea eax, [r14 + 0xf0]
mov ecx, 0x80808081
imul rax, rcx
shr rax, 0x27
add rax, r15
add rax, 8
cmp rax, qword [rsp + 0x70]
ja 0x180083196
lea r12, [r15 + 2]
mov cl, byte [r8]
cmp r14d, 0xf
jb 0x180084f93
add cl, 0xf
mov byte [r8], cl
lea eax, [r14 - 0xf]
mov dword [r12], 0xffffffff
cmp eax, 0x3fc
jb 0x180084f78
lea rcx, [r15 + 6]
add r14d, 0xfffffbf5
mov rsi, r14
mov eax, 0x80808081
imul rsi, rax
shr rsi, 0x29
mov edi, esi
lea r8, [rdi*4 + 4]
mov rbp, rdx
mov dl, 0xff
call sub.VCRUNTIME140.dll_memset
mov rdx, rbp
mov r9, qword [rsp + 0x68]
mov r10, qword [rsp + 0x88]
mov r11, qword [rsp + 0x78]
imul eax, esi, 0x3fc
mov rsi, qword [rsp + 0x40]
sub r14d, eax
lea r12, [r15 + rdi*4]
add r12, 6
mov eax, r14d
movzx ecx, ax
imul ecx, ecx, 0x8081
shr ecx, 0x17
add r12, rcx
inc r12
add ecx, eax
mov byte [r12 - 1], cl
jmp 0x180084f99
add cl, r14b
mov byte [r8], cl
cmp rdx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x38]
mov rbp, qword [rsp + 0xa8]
jae 0x180085259
lea rax, [rdx - 2]
mov rcx, qword [rdx - 2]
mov rdi, rdx
movabs rdx, 0xcf1bbcdcbb000000
imul rcx, rdx
sub eax, ebp
shr rcx, 0x34
mov dword [r10 + rcx*4], eax
mov rcx, qword [rdi]
imul rcx, rdx
mov rdx, rdi
mov r13d, edx
sub r13d, ebp
shr rcx, 0x34
mov eax, dword [r10 + rcx*4]
cmp eax, r9d
cmovb rbp, r8
mov r14, r11
cmovb r14, rsi
mov dword [r10 + rcx*4], r13d
lea ecx, [rax + 0xffff]
cmp ecx, r13d
jb 0x180085213
add rbp, rax
mov ecx, dword [rbp]
cmp ecx, dword [rdx]
jne 0x180085213
lea rdi, [r12 + 1]
mov byte [r12], 0
sub r13d, eax
mov r8, r12
jmp 0x180084e6e
mov rcx, qword [rsp + 0x90]
sub rcx, rbp
add rcx, rdx
mov rax, qword [rsp + 0x58]
cmp rcx, rax
cmova rcx, rax
lea rbx, [rbp + 4]
lea r9, [rdx + 4]
lea rdi, [rcx - 7]
cmp rdi, r9
mov r13, qword [rsp + 0x60]
jbe 0x180085891
mov rsi, qword [r9]
xor rsi, qword [rbx]
je 0x18008514f
bsf r14, rsi
xor eax, eax
test rsi, rsi
sete dl
je 0x18008515a
shr r14d, 3
mov rsi, qword [rsp + 0x40]
mov ebx, dword [rsp + 0x28]
mov rdx, r12
mov eax, r14d
add rax, rdx
add rax, 4
cmp rax, rcx
mov r9, qword [rsp + 0x68]
je 0x18008510b
mov rdx, rax
jmp 0x180084ecb
mov r14d, 0x40
jmp 0x180084ea8
mov bl, al
lea r14, [rcx + rbx*8]
lea rbp, [rbp + rbx*8]
mov ebx, dword [rsp + 0x28]
cmp r14, rdi
jae 0x1800855a6
mov edx, r14d
sub edx, r12d
add edx, 0xfffffffc
mov rax, qword [r14]
xor rax, qword [rbp]
jne 0x1800850fb
add r14, 8
add rbp, 8
add edx, 8
cmp r14, rdi
jb 0x1800850dd
jmp 0x1800855a6
bsf r14, rax
shr r14, 3
add r14d, edx
jmp 0x180084ebe
mov rdx, rcx
mov rbx, r11
cmp r13, rcx
jbe 0x1800851c2
mov rbx, qword [rcx]
xor rbx, qword [r11]
je 0x1800851ae
bsf rdx, rbx
xor eax, eax
test rbx, rbx
sete bl
je 0x1800851b8
shr edx, 3
mov ebx, dword [rsp + 0x28]
add r14d, edx
mov eax, edx
add rcx, rax
mov rdx, rcx
jmp 0x180084ecb
mov r14d, 0x40
jmp 0x180085077
mov al, dl
lea r14, [r9 + rax*8]
lea rbx, [rbx + rax*8]
mov rdx, r12
cmp r14, rdi
jae 0x18008566d
mov esi, r14d
sub esi, edx
add esi, 0xfffffffc
mov rax, qword [r14]
xor rax, qword [rbx]
jne 0x180085195
add r14, 8
add rbx, 8
add esi, 8
cmp r14, rdi
jb 0x180085178
jmp 0x18008566d
bsf r14, rax
shr r14, 3
add r14d, esi
mov rsi, qword [rsp + 0x40]
mov ebx, dword [rsp + 0x28]
jmp 0x180085095
mov edx, 0x40
jmp 0x18008512a
mov al, bl
lea rdx, [rcx + rax*8]
lea rbx, [r11 + rax*8]
cmp rdx, r13
jae 0x1800857fe
add r12, qword [rsp + 0x90]
sub r12, rbp
mov rax, qword [rsp + 0x58]
cmp r12, rax
cmovae r12, rax
mov ebp, edx
sub ebp, r12d
mov rax, qword [rdx]
xor rax, qword [rbx]
jne 0x180085204
add rdx, 8
add rbx, 8
add ebp, 8
cmp rdx, r13
jb 0x1800851e7
jmp 0x1800857fe
bsf rdx, rax
shr rdx, 3
add edx, ebp
jmp 0x18008513b
lea r15, [rdx + 1]
mov r13, r15
mov r14, qword [rsp + 0xa8]
sub r13, r14
lea rax, [rdx + 2]
cmp rax, qword [rsp + 0x80]
mov rsi, qword [rsp + 0xc0]
jbe 0x180084c24
jmp 0x1800833ee
mov r12, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0xb8]
jmp 0x180082f79
mov rsi, qword [rsp + 0xc0]
jmp 0x1800833ee
mov eax, edi
shl al, 4
mov byte [rsi], al
lea rax, [rsi + 1]
mov rcx, rax
mov rdx, r14
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
add edi, esi
sub edi, ebx
inc edi
mov eax, edi
jmp 0x180083471
mov eax, r11d
shl al, 4
mov byte [rdi], al
lea rax, [rdi + 1]
mov rcx, rax
mov rdx, r14
mov r8, r11
mov rsi, r11
call sub.VCRUNTIME140.dll_memcpy
add esi, edi
jmp 0x1800852d0
mov eax, r11d
shl al, 4
mov byte [r12], al
lea rax, [r12 + 1]
mov rcx, rax
mov rdx, r15
mov r8, r11
mov rsi, r11
call sub.VCRUNTIME140.dll_memcpy
add esi, r12d
sub esi, dword [rsp + 0xa0]
inc esi
mov eax, esi
jmp 0x180083494
mov rax, qword [rsp + 0x38]
add rax, 0xfffffffffffffffd
cmp rdi, rax
jae 0x1800852fd
mov eax, dword [rbp]
cmp eax, dword [rdi]
jne 0x1800852fd
add rdi, 4
add rbp, 4
mov rax, qword [rsp + 0x38]
dec rax
cmp rdi, rax
jae 0x18008531b
movzx eax, word [rbp]
cmp ax, word [rdi]
jne 0x18008531b
add rdi, 2
add rbp, 2
cmp rdi, qword [rsp + 0x38]
jae 0x18008532f
mov al, byte [rbp]
xor edx, edx
cmp al, byte [rdi]
sete dl
add rdi, rdx
mov rdx, r12
sub edi, ecx
jmp 0x180082a3e
mov eax, esi
shl al, 4
mov byte [rdi], al
lea rax, [rdi + 1]
mov rcx, rax
mov rdx, rbx
mov r8, rsi
call sub.VCRUNTIME140.dll_memcpy
add esi, edi
jmp 0x18008346a
mov r11, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x58]
jmp 0x1800832ab
lea rax, [r10 - 3]
cmp rdi, rax
jae 0x1800853f2
mov eax, dword [rbx]
cmp eax, dword [rdi]
mov rsi, qword [rsp + 0x48]
jne 0x1800853f7
add rdi, 4
add rbx, 4
jmp 0x1800853f7
mov rax, qword [rsp + 0x98]
add rax, 0xfffffffffffffffd
cmp rbp, rax
jae 0x1800853ac
mov eax, dword [r15]
cmp eax, dword [rbp]
jne 0x1800853ac
add rbp, 4
add r15, 4
mov rax, qword [rsp + 0x98]
dec rax
cmp rbp, rax
jae 0x1800853ce
movzx eax, word [r15]
cmp ax, word [rbp]
jne 0x1800853ce
add rbp, 2
add r15, 2
cmp rbp, qword [rsp + 0x98]
jae 0x1800853e6
mov al, byte [r15]
xor edx, edx
cmp al, byte [rbp]
sete dl
add rbp, rdx
mov r15, qword [rsp + 0x38]
sub ebp, ecx
jmp 0x1800837c8
mov rsi, qword [rsp + 0x48]
lea rax, [r10 - 1]
cmp rdi, rax
jae 0x180085415
movzx eax, word [rbx]
cmp ax, word [rdi]
mov rdx, r12
jne 0x180085418
add rdi, 2
add rbx, 2
jmp 0x180085418
mov rdx, r12
cmp rdi, r10
jae 0x180085429
mov al, byte [rbx]
xor ecx, ecx
cmp al, byte [rdi]
sete cl
add rdi, rcx
mov r11, qword [rsp + 0x60]
sub edi, r9d
jmp 0x180082c05
mov rdi, qword [rsp + 0x70]
mov rsi, qword [rsp + 0xb0]
jmp 0x1800830bb
mov edx, dword [r13]
cmp edx, dword [rbp]
jne 0x180083fdf
add rbp, 4
add r13, 4
jmp 0x180083fdf
movzx edx, word [r13]
cmp dx, word [rbp]
jne 0x180083fec
add rbp, 2
add r13, 2
jmp 0x180083fec
mov dl, byte [r13]
xor ebx, ebx
cmp dl, byte [rbp]
sete bl
add rbp, rbx
jmp 0x180083ff5
mov edx, dword [r13]
cmp edx, dword [rdi]
jne 0x18008448d
add rdi, 4
add r13, 4
jmp 0x18008448d
movzx edx, word [r13]
cmp dx, word [rdi]
jne 0x18008449a
add rdi, 2
add r13, 2
jmp 0x18008449a
mov dl, byte [r13]
xor ebp, ebp
cmp dl, byte [rdi]
sete bpl
add rdi, rbp
jmp 0x1800844a3
mov r15, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x70]
jmp 0x180082e2d
mov r8, qword [rsp + 0x30]
mov r12, qword [rsp + 0x40]
jmp 0x1800831ed
mov rax, qword [rsp + 0x38]
add rax, 0xfffffffffffffffd
cmp rdx, rax
jae 0x180085514
mov eax, dword [rbx]
cmp eax, dword [rdx]
jne 0x180085514
add rdx, 4
add rbx, 4
mov rax, qword [rsp + 0x38]
dec rax
cmp rdx, rax
jae 0x180085531
movzx eax, word [rbx]
cmp ax, word [rdx]
jne 0x180085531
add rdx, 2
add rbx, 2
cmp rdx, qword [rsp + 0x38]
jae 0x180085544
mov al, byte [rbx]
xor ecx, ecx
cmp al, byte [rdx]
sete cl
add rdx, rcx
mov r11, qword [rsp + 0x60]
sub edx, r10d
jmp 0x180082cb4
lea rax, [rcx - 3]
cmp rbp, rax
jae 0x180085697
mov eax, dword [rbx]
cmp eax, dword [rbp]
mov rdi, r12
jne 0x18008569a
add rbp, 4
add rbx, 4
jmp 0x18008569a
mov rax, qword [rsp + 0x58]
add rax, 0xfffffffffffffffd
cmp rbp, rax
jae 0x1800856d1
mov eax, dword [rdi]
cmp eax, dword [rbp]
mov rbx, rsi
jne 0x1800856d4
add rbp, 4
add rdi, 4
jmp 0x1800856d4
mov rax, qword [rsp + 0x58]
add rax, 0xfffffffffffffffd
cmp r14, rax
jae 0x1800855c4
mov eax, dword [rbp]
cmp eax, dword [r14]
jne 0x1800855c4
add r14, 4
add rbp, 4
mov rax, qword [rsp + 0x58]
dec rax
cmp r14, rax
jae 0x1800855e3
movzx eax, word [rbp]
cmp ax, word [r14]
jne 0x1800855e3
add r14, 2
add rbp, 2
cmp r14, qword [rsp + 0x58]
jae 0x1800855f8
mov al, byte [rbp]
xor edx, edx
cmp al, byte [r14]
sete dl
add r14, rdx
mov rdx, r12
sub r14d, ecx
jmp 0x180084ec1
xor eax, eax
mov r11, qword [rsp + 0x78]
jmp 0x18008347e
mov rsi, qword [rsp + 0xb8]
mov r14, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x98]
jmp 0x180082f79
mov rsi, qword [rsp + 0xc0]
mov rdx, qword [rsp + 0x30]
jmp 0x1800833ee
lea rax, [rcx - 3]
cmp rbp, rax
jae 0x180085718
mov eax, dword [rbx]
cmp eax, dword [rbp]
mov r13, qword [rsp + 0x40]
mov rsi, r12
jne 0x180085720
add rbp, 4
add rbx, 4
jmp 0x180085720
lea rax, [rcx - 3]
cmp r14, rax
jae 0x18008575e
mov eax, dword [rbx]
cmp eax, dword [r14]
mov rsi, qword [rsp + 0x40]
jne 0x180085763
add r14, 4
add rbx, 4
jmp 0x180085763
mov rdi, r12
lea rax, [rcx - 1]
cmp rbp, rax
jae 0x1800856b4
movzx eax, word [rbx]
cmp ax, word [rbp]
jne 0x1800856b4
add rbp, 2
add rbx, 2
cmp rbp, rcx
jae 0x1800856c6
mov al, byte [rbx]
xor edx, edx
cmp al, byte [rbp]
sete dl
add rbp, rdx
mov rbx, r13
sub ebp, r9d
jmp 0x18008398b
mov rbx, rsi
mov rsi, r15
mov rax, qword [rsp + 0x58]
dec rax
cmp rbp, rax
jae 0x1800856f5
movzx eax, word [rdi]
cmp ax, word [rbp]
jne 0x1800856f5
add rbp, 2
add rdi, 2
cmp rbp, qword [rsp + 0x58]
jae 0x180085709
mov al, byte [rdi]
xor edx, edx
cmp al, byte [rbp]
sete dl
add rbp, rdx
sub ebp, ecx
jmp 0x1800847fd
mov rdi, rcx
jmp 0x180082c45
mov r13, qword [rsp + 0x40]
mov rsi, r12
lea rax, [rcx - 1]
cmp rbp, rax
jae 0x18008573a
movzx eax, word [rbx]
cmp ax, word [rbp]
jne 0x18008573a
add rbp, 2
add rbx, 2
cmp rbp, rcx
jae 0x18008574c
mov al, byte [rbx]
xor edx, edx
cmp al, byte [rbp]
sete dl
add rbp, rdx
mov r14, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x28]
sub ebp, r9d
jmp 0x1800849de
mov rsi, qword [rsp + 0x40]
lea rax, [rcx - 1]
cmp r14, rax
jae 0x18008577d
movzx eax, word [rbx]
cmp ax, word [r14]
jne 0x18008577d
add r14, 2
add rbx, 2
cmp r14, rcx
jae 0x180085792
mov al, byte [rbx]
xor edx, edx
cmp al, byte [r14]
sete dl
add r14, rdx
mov rdx, r12
mov ebx, dword [rsp + 0x28]
sub r14d, r9d
jmp 0x180085095
mov rdi, r9
jmp 0x180082cda
mov rax, qword [rsp + 0x58]
add rax, 0xfffffffffffffffd
cmp rdx, rax
jae 0x1800857c2
mov eax, dword [rbx]
cmp eax, dword [rdx]
jne 0x1800857c2
add rdx, 4
add rbx, 4
mov rax, qword [rsp + 0x58]
dec rax
cmp rdx, rax
jae 0x1800857df
movzx eax, word [rbx]
cmp ax, word [rdx]
jne 0x1800857df
add rdx, 2
add rbx, 2
cmp rdx, qword [rsp + 0x58]
jae 0x1800857f2
mov al, byte [rbx]
xor ebx, ebx
cmp al, byte [rdx]
sete bl
add rdx, rbx
mov r14, qword [rsp + 0x38]
sub edx, ecx
jmp 0x180084a2b
mov rax, qword [rsp + 0x58]
add rax, 0xfffffffffffffffd
cmp rdx, rax
jae 0x18008581a
mov eax, dword [rbx]
cmp eax, dword [rdx]
jne 0x18008581a
add rdx, 4
add rbx, 4
mov rax, qword [rsp + 0x58]
dec rax
cmp rdx, rax
jae 0x180085837
movzx eax, word [rbx]
cmp ax, word [rdx]
jne 0x180085837
add rdx, 2
add rbx, 2
cmp rdx, qword [rsp + 0x58]
jae 0x18008584b
mov al, byte [rbx]
xor ebp, ebp
cmp al, byte [rdx]
sete bpl
add rdx, rbp
mov ebx, dword [rsp + 0x28]
sub edx, ecx
jmp 0x18008513f
mov rbp, rcx
jmp 0x180083f67
mov rdi, rcx
jmp 0x18008441e
mov rbp, rcx
jmp 0x1800839cd
mov rbp, r9
jmp 0x180083a73
mov rbp, rcx
jmp 0x180084a4e
mov r14, rcx
jmp 0x1800850cb
mov r12, rsi
mov rbp, r9
jmp 0x180084aa3
mov r14, r9
jmp 0x180085167
xor eax, eax
jmp 0x180083476
mov r15, qword [rsp + 0x38]
mov rax, qword [rsp + 0x98]
add rax, 0xfffffffffffffffd
cmp rdx, rax
jae 0x1800858c4
mov eax, dword [rbx]
cmp eax, dword [rdx]
jne 0x1800858c4
add rdx, 4
add rbx, 4
mov rax, qword [rsp + 0x98]
dec rax
cmp rdx, rax
jae 0x1800858e4
movzx eax, word [rbx]
cmp ax, word [rdx]
jne 0x1800858e4
add rdx, 2
add rbx, 2
cmp rdx, qword [rsp + 0x98]
jae 0x1800858fa
mov al, byte [rbx]
xor ebx, ebx
cmp al, byte [rdx]
sete bl
add rdx, rbx
mov rbx, r13
sub edx, ecx
jmp 0x180083a50