Function at 0x180018f60
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov rax, rdx
mov rdx, qword [rdx]
mov r10, qword [rax + 8]
mov r15, qword [r8]
mov r13, qword [r8 + 8]
cmp rdx, r15
jne 0x180018f9a
cmp r13, r10
jne 0x180018f9a
movups xmm0, xmmword [r9]
movups xmmword [rcx], xmm0
mov rax, rcx
jmp 0x18001a691
mov qword [rsp + 0x38], r8
mov rax, r15
sub rax, rdx
mov rdi, qword [r9]
mov r8, r13
sub r8, r10
lea rax, [r8 + rax*8]
movups xmm0, xmmword [r9]
movups xmmword [rcx], xmm0
mov r14, qword [rcx + 8]
mov rsi, rax
neg rsi
lea r11, [r14 + rax]
mov rbx, r11
shr rbx, 5
movabs r8, 0x3800000000000000
or r8, rbx
cmp r14, rsi
cmovae r8, rbx
test rax, rax
cmovns r8, rbx
shl r8, 2
add r8, qword [rcx]
mov qword [rcx], r8
and r11d, 0x1f
mov qword [rsp + 0x28], rcx
mov qword [rcx + 8], r11
mov ebp, 0xffffffff
mov r12d, 0xffffffff
mov ecx, r10d
shl r12d, cl
mov r9, qword [r9 + 8]
mov ecx, r9d
neg cl
mov r14d, 0xffffffff
shr r14d, cl
xor eax, eax
test r9, r9
cmove r14d, eax
mov ecx, r13d
neg cl
mov ebx, 0xffffffff
shr ebx, cl
mov ecx, r11d
shl ebp, cl
cmp r11, 1
sbb rax, rax
lea rsi, [r8 + rax*4]
cmp r15, rdx
je 0x18001922f
cmp rdi, rsi
je 0x18001929d
mov ecx, r10d
and ecx, 7
mov eax, r9d
and eax, 7
cmp rcx, rax
jne 0x1800192eb
mov r14d, r13d
and r14d, 7
shr r10, 3
add rdx, r10
shr r13, 3
add r15, r13
shr r9, 3
add rdi, r9
test rcx, rcx
je 0x180019124
mov r9b, 0xff
shl r9b, cl
not r9b
mov al, 8
sub al, cl
mov r8d, 0xff
mov ecx, eax
shr r8d, cl
movzx eax, byte [rdi]
mov ecx, eax
xor cl, 0x59
mov r10d, r8d
xor r10b, 0x59
mov r11d, eax
xor r11b, 0xa6
and r11b, r10b
or al, r8b
xor r8b, 0xa6
and r8b, cl
or r8b, r11b
not r8b
and r8b, al
movzx eax, byte [rdx]
not al
or al, r9b
mov ecx, r8d
not cl
mov r9d, eax
or r9b, cl
xor r8b, al
mov r10d, r9d
xor r10b, 0xbe
mov r11d, r8d
xor r11b, 0xbe
mov ebx, r9d
xor bl, 0x41
and bl, r11b
xor r9b, r8b
xor r8b, 0x41
and r8b, r10b
or r8b, bl
and cl, al
or cl, r9b
not cl
or cl, r8b
mov byte [rdi], cl
inc rdx
inc rdi
mov r12, qword [rsp + 0x28]
mov rbx, r15
sub rbx, rdx
mov rcx, rdi
mov r8, rbx
call sub.VCRUNTIME140.dll_memmove
test r14, r14
je 0x18001a68e
mov cl, 8
sub cl, r14b
mov r8d, 0xff
shr r8d, cl
mov dl, 0xff
mov ecx, r14d
shl dl, cl
not dl
movzx eax, byte [rdi + rbx]
not al
or al, dl
movzx edx, byte [r15]
mov r9d, edx
not r9b
mov ecx, r9d
and cl, 0x20
mov r10d, edx
and r10b, 0x9a
or r10b, cl
mov ecx, edx
and cl, 0x45
or r10b, 0x44
xor r10b, cl
mov r11d, r10d
xor r11b, 0x21
mov ecx, r8d
and cl, 0x3a
and r8b, 0x45
or cl, 5
xor cl, r8b
mov r8d, ecx
xor r8b, 0xbf
xor r10b, 0xde
and r10b, r8b
xor cl, 0x40
and cl, r11b
or cl, r10b
mov r8d, ecx
not r8b
and r8b, r9b
xor cl, dl
or cl, r8b
mov r9d, ecx
not r9b
mov edx, eax
xor dl, 0x57
mov r10d, ecx
and r10b, 0xa8
mov r11d, r9d
and r11b, 0x57
mov r8d, r9d
and r8b, 7
mov esi, ecx
and sil, 0xf8
or sil, r8b
xor sil, 0x50
and r9b, 0x50
mov r8d, ecx
and r8b, 7
or r8b, r9b
or r8b, 0x28
or r11b, r10b
xor r8b, r10b
xor r8b, 0xd0
and r8b, r11b
or r8b, sil
or cl, al
xor al, 0xa8
and al, r8b
not r8b
and r8b, dl
not cl
or cl, al
or cl, r8b
mov byte [rdi + rbx], cl
jmp 0x18001a68e
and ebx, r12d
mov r15d, dword [rdx]
cmp r9, r10
jae 0x180019602
sub r10d, r9d
mov eax, r15d
and eax, 0xcbe89c2
mov r8d, r15d
and r8d, 0xf341763d
or r8d, 0xc1e8102
xor r8d, eax
mov eax, r8d
xor eax, 0xff5ff73f
mov r9d, ebx
xor r9d, 0xf341763d
xor r8d, 0xa008c0
and r8d, r9d
mov r9d, ebx
xor r9d, 0xcbe89c2
and r9d, eax
or r9d, r8d
or r15d, ebx
not r9d
and r9d, r15d
mov ecx, r10d
shr r9d, cl
jmp 0x180019643
cmp r9, r10
jae 0x1800199d4
sub r10d, r9d
mov eax, dword [rdx]
mov ecx, eax
xor ecx, 0x3c274ef0
and r12d, 0x7fffffff
mov edx, r12d
xor edx, 0x43d8b10f
mov r8d, eax
xor r8d, 0x43d8b10f
and r8d, edx
xor r12d, 0xbc274ef0
and r12d, ecx
or r12d, r8d
and r12d, eax
mov ecx, r10d
shr r12d, cl
jmp 0x1800199e0
cmp r9, r10
mov dword [rsp + 0x24], ebp
jae 0x180019ad0
mov dword [rsp + 0x34], ebx
movabs rax, 0x9fb13ab09c17afce
add r10, rax
sub r10, r9
movabs rcx, 0x604ec54f63e85032
add rcx, r10
sub rax, r10
mov r13d, r12d
not r13d
mov r8d, r12d
xor r8d, 0x5d9ab70d
and r8d, r13d
and r12d, 0x42f826aa
and r13d, 0x3d07d955
or r13d, r12d
mov r11d, r13d
xor r11d, 0x42f826aa
mov r10d, r11d
or r10d, 0xdd9ab70d
mov esi, r10d
and esi, 0x39cb2ae8
mov ebx, r13d
and ebx, 0x2244012
or ebx, esi
and r8d, 0x7fffffff
xor ebx, r8d
not r10d
and r10d, r8d
mov r12, rdx
mov r8d, dword [rdx]
xor ebx, 0x39cf6af8
or r10d, ebx
xor r10d, r8d
and r11d, 0x78527c8
mov esi, r13d
and esi, 0x787ad837
or esi, r11d
xor esi, r8d
xor esi, 0xbf87ffdd
xor r13d, 0xbd07d955
and r13d, r8d
or r13d, esi
xor r10d, 0x226548f2
and r10d, r13d
mov edx, dword [rdi]
mov r8d, edx
xor r8d, 0x8aadd47d
mov r11d, r14d
xor r11d, 0x75522b82
mov esi, edx
xor esi, 0x75522b82
and esi, r11d
xor r14d, 0x8aadd47d
and r14d, r8d
or r14d, esi
and r14d, edx
mov edx, r14d
not edx
mov r11d, r14d
or r11d, 0x55bcb0c5
mov r8d, r11d
not r8d
and edx, 0xaa434f3a
mov esi, r14d
xor esi, 0x55bcb0c5
or esi, edx
mov edx, esi
not edx
and edx, r8d
and r11d, 0x5ef5d1b5
and r8d, 0xa0020e0a
or r8d, r11d
xor r8d, esi
mov r11d, r8d
xor r11d, edx
xor r8d, 0xa0020e0a
and r8d, edx
mov esi, 0xffffffff
shr esi, cl
mov qword [rsp + 0x40], rcx
shr r10d, cl
xor r11d, 0xa10a2e4a
or r8d, r11d
mov ecx, r10d
xor ecx, 0xaa434f3a
and r14d, r10d
xor r10d, 0x55bcb0c5
and r10d, r8d
not r8d
and r8d, ecx
add rax, 0x20
mov rdx, rax
or r10d, r14d
mov r13d, esi
and r13d, 0xfffffffe
or r10d, r8d
mov r9d, r13d
xor r9d, 0xfffffffe
mov dword [rdi], r10d
add r12, 4
cmp r12, r15
mov dword [rsp + 0x48], esi
mov r14, r15
je 0x180019e5c
mov ecx, r9d
not ecx
mov r8d, r9d
and r8d, 0x13197582
mov r11d, esi
and r11d, 0xece68a7c
or r11d, r8d
xor r11d, 0x42b717c8
and ecx, 0x51ae624a
or ecx, r11d
lea r8d, [rcx + 1]
mov r11d, esi
and r11d, 0x51ae624a
mov rax, r12
mov r12d, r11d
xor r12d, 0xfffffffe
mov esi, ecx
xor esi, 0xe5115e9b
and esi, r8d
xor r8d, r12d
and r12d, ecx
or r12d, r8d
mov r8d, r12d
and r8d, 0xfffffffe
mov ebx, ecx
xor ebx, 0xe5115e9a
xor ecx, 0xfffffffe
and ecx, ebx
xor ecx, esi
xor ecx, r11d
xor ecx, 0x1aeea164
xor r8d, ecx
xor r8d, 0xfffffffe
not r12d
and r12d, ecx
or r12d, r8d
mov esi, r12d
xor esi, 0xae519db4
xor r12d, 0x51ae624b
mov rbp, rdx
mov r8d, dword [rax]
mov ecx, ebp
shl r8d, cl
or r10d, r9d
xor r10d, r13d
xor r10d, 1
mov ecx, r10d
xor ecx, r8d
not r8d
mov r11d, r10d
or r11d, r8d
mov ebx, r11d
not ebx
mov r15d, ebx
and r15d, 0x929042
mov ebp, r11d
and ebp, 0x1050000
add ebp, r15d
add ebp, 0x402915
mov r15d, r11d
and r15d, 0x402915
and ebx, 0xfe2846a8
add ebx, r15d
add ebx, 0x929042
mov r15, qword [rsp + 0x40]
xor ebx, ebp
mov rbp, rdx
xor ebx, ecx
xor r11d, ecx
and r8d, r10d
or r8d, r11d
xor ebx, 0x1979042
mov ecx, ebx
xor ecx, r8d
or ebx, r8d
not ebx
or ebx, ecx
mov dword [rdi], ebx
mov r8d, dword [rax]
mov ecx, r15d
shr r8d, cl
mov ecx, dword [rdi + 4]
mov r10d, esi
xor r10d, r12d
and r10d, ecx
or ecx, r12d
xor r10d, r12d
xor r10d, ecx
or r10d, r8d
lea r11, [rdi + 4]
mov dword [rdi + 4], r10d
add rax, 4
mov rdi, r11
cmp rax, r14
jne 0x180019540
jmp 0x180019e67
sub r9d, r10d
mov eax, r15d
xor eax, 0x5f12feb3
mov r8d, ebx
xor r8d, 0x5f12feb3
mov r10d, r15d
xor r10d, 0xa0ed014c
and r10d, r8d
mov rcx, r9
mov r9d, ebx
xor r9d, 0xa0ed014c
and r9d, eax
or r9d, r10d
or r15d, ebx
not r9d
and r9d, r15d
shl r9d, cl
mov r12, qword [rsp + 0x28]
cmp rdi, rsi
je 0x18001986c
mov ecx, dword [rdi]
mov eax, r14d
and eax, 0x8c5c3e37
mov r8d, r14d
and r8d, 0x73a3c1c8
or r8d, 0x8540007
xor eax, ecx
xor eax, r8d
or ecx, r14d
xor eax, 0xf7abfff8
mov r8d, eax
xor r8d, ecx
or eax, ecx
not eax
or eax, r8d
mov ecx, r9d
not ecx
or ecx, eax
mov r8d, r9d
and r8d, 0xb96854c7
or r8d, 0x930808
and r9d, 0x4697ab38
xor r9d, eax
xor r9d, r8d
xor r9d, 0x930808
mov eax, r9d
or eax, ecx
not eax
xor r9d, ecx
or r9d, eax
mov dword [rdi], r9d
mov rax, qword [rsp + 0x38]
mov ecx, dword [rax + 8]
sub ecx, r11d
and ebx, dword [rdx]
shr ebx, cl
and ebp, dword [rdi + 4]
mov eax, ebx
not eax
mov r9d, ebp
or r9d, 0x4ca00e1c
mov edx, ebp
and edx, 0x4ca00e1c
mov ecx, ebx
and ecx, 0x4ca00e1c
mov r8d, ebp
xor r8d, 0xca00814
and r8d, edx
not edx
mov r10d, r9d
mov r11d, edx
mov esi, ebp
and esi, 0x8a00410
and edx, 0xf7517aed
or edx, esi
xor edx, r9d
and r9d, 0xdb97854
and r10d, 0xf24687ab
or r10d, 0xc993800
xor r10d, r9d
mov r9d, ebp
and r9d, 0xa00014
and r11d, 0xd107800
add r9d, r11d
add r9d, 0xb0400703
xor r9d, r8d
xor r9d, 0xb0e90757
and r8d, 0xca00814
or r8d, r9d
xor r8d, r10d
xor r8d, 0xfedfbfab
xor edx, 0x8ae8512
mov r9d, ebp
xor r9d, 0x4ca00e1c
or r9d, edx
not r9d
or r9d, r8d
mov r8d, eax
and r8d, 0xb35ff1e3
mov edx, ebx
and edx, 0xa30410c3
mov r10d, ebx
xor r10d, 0x800e1c
and r10d, ecx
xor edx, 0xa3841edf
lea r11d, [r10 + 0x105be120]
lea esi, [r8 + 0x4c200000]
and esi, r11d
mov r11d, ebx
or r11d, 0xa30410c3
xor r11d, r10d
and r11d, edx
or r11d, esi
mov edx, eax
and edx, 0x45d000
mov r10d, ebx
and r10d, 0xb31a21e3
add edx, r10d
add edx, 0x8800608
or r8d, ecx
xor edx, ecx
xor edx, 0x4465d814
and edx, r8d
or edx, r11d
xor edx, r9d
mov ecx, eax
and ecx, 0x85e09f02
mov r8d, ebx
and r8d, 0xa054000
mov r9d, ebp
or r9d, ebx
and ebx, 0x5018204c
and eax, 0x200200b1
or eax, ebx
add ecx, r8d
add ecx, 0x5018204c
xor ecx, eax
xor ecx, ebp
xor ecx, 0xa054000
and ecx, r9d
mov eax, edx
xor eax, 0x8d77c135
mov r8d, ecx
xor r8d, 0x8d77c135
mov r9d, edx
xor r9d, 0x72883eca
and r9d, r8d
and edx, ecx
xor ecx, 0x72883eca
and ecx, eax
or ecx, edx
or ecx, r9d
mov dword [rdi + 4], ecx
jmp 0x18001a68e
xor eax, eax
test r11, r11
cmove ebp, eax
mov ecx, r14d
not ecx
mov eax, r14d
xor eax, ecx
and eax, ebp
xor eax, ecx
not eax
or eax, ecx
and ecx, 0x242c9c0b
mov edx, r14d
and edx, 0x91c30000
and r14d, 0x4a1063f4
add ecx, edx
add ecx, 0x20062e4
mov edx, ebp
and edx, 0x4a1063f4
or edx, 0x3081040b
and ebp, 0xb5ef9c0b
xor ebp, r14d
xor ebp, edx
xor ebp, ecx
mov ecx, ebp
xor ecx, 0xe952051b
or ecx, eax
xor ebp, eax
mov eax, ebp
xor eax, 0x16adfae4
or eax, ecx
mov edx, dword [rdi]
xor ebp, ecx
xor ebp, 0xe952051b
and ebp, eax
mov eax, edx
and eax, 0x2c84c3f3
or eax, 0x93313800
mov ecx, edx
and ecx, 0xd37b3c0c
xor ecx, eax
mov eax, ecx
xor eax, 0xbfb5fbf3
mov r8d, ebp
xor r8d, 0x2c84c3f3
xor ecx, 0x404a040c
and ecx, r8d
xor ebp, 0xd37b3c0c
and ebp, eax
or ebp, ecx
and ebp, edx
mov r8d, r9d
not r8d
mov edx, r8d
and edx, 0x9a0b5acf
mov ecx, ebp
xor ecx, 0x9a0b5acf
mov eax, r9d
or eax, 0x65f4a530
mov r10d, r9d
and r10d, 0x65f4a530
mov r11d, eax
and r11d, 0xa82f883f
mov esi, r9d
xor esi, 0x120052c0
and esi, edx
xor esi, r11d
lea r11d, [r10 - 0x77f4f7f1]
lea ebx, [r10 + 0x120052c0]
xor ebx, r11d
and ebx, esi
xor ebx, r11d
and r8d, 0x9a0a50cc
and eax, 0x4b50a03
or eax, r8d
or edx, r10d
xor eax, r10d
xor eax, 0xfb4af5fc
and eax, edx
or eax, ebx
mov edx, ebp
and edx, 0xb7f9fd09
xor edx, 0x25f0a500
mov r8d, ebp
xor r8d, 0x2df2a7c6
and r8d, ecx
or r8d, edx
mov ecx, eax
xor ecx, 0xb7f9fd09
xor eax, 0x480602f6
and eax, r8d
not r8d
and r8d, ecx
and ebp, r9d
or ebp, eax
or ebp, r8d
mov dword [rdi], ebp
jmp 0x18001a68e
sub r9d, r10d
and r12d, dword [rdx]
mov ecx, r9d
shl r12d, cl
xor eax, eax
test r11, r11
cmove ebp, eax
or r14d, ebp
test r13, r13
je 0x180019d12
sub r11d, r13d
mov ecx, dword [r15]
mov eax, ecx
or eax, ebx
and ebx, ecx
and eax, 0xfffffffe
xor eax, ebx
xor eax, 0xfffffffe
and eax, ecx
mov ecx, r11d
shl eax, cl
and r14d, dword [rdi]
mov edx, r12d
xor edx, 0x6e7de74c
mov ecx, r12d
and ecx, 0x7d928c00
mov r8d, r12d
xor r8d, 0x13ef6b4c
and r8d, edx
xor ecx, 0x11820800
or ecx, r8d
xor ecx, r14d
and r14d, r12d
mov edx, r14d
not edx
mov r8d, edx
and r8d, 0x2060222
mov r9d, r14d
and r9d, 0x9c090140
and r14d, 0x61c04009
and edx, 0x30bc94
add r8d, r9d
add r8d, 0x61c04009
add edx, r14d
add edx, 0x2060222
xor edx, r8d
mov r8d, edx
xor r8d, 0x9e0f0362
mov r9d, edx
xor r9d, 0xb1a11145
and r9d, r8d
mov r8d, edx
and r8d, 0x2fae1227
xor r8d, 0x21a01005
or r8d, r9d
xor r8d, ecx
xor ecx, 0x13ef6b4c
xor r8d, 0xc3be8694
xor edx, 0x61f0fc9d
and edx, ecx
or edx, eax
or edx, r8d
mov dword [rdi], edx
mov r12, qword [rsp + 0x28]
jmp 0x18001a68e
movabs r11, 0x11408696f71027a7
add r9, r11
sub r9, r10
sub r11, r9
lea r13, [r11 + 0x20]
mov eax, dword [rdx]
mov r8d, eax
not r8d
mov ecx, r12d
not ecx
and ecx, eax
or eax, r12d
and ecx, 0x7fffffff
and r8d, r12d
mov rsi, rdx
or r8d, ecx
xor r8d, eax
add r9d, 0x8efd859
mov ecx, r9d
shl r8d, cl
and r14d, dword [rdi]
or r14d, r8d
mov dword [rdi], r14d
lea r14, [rdi + 4]
mov ebp, dword [rdx]
add rsi, 4
mov ecx, r11d
shr ebp, cl
cmp rsi, r15
je 0x18001a046
mov dword [rsp + 0x34], ebx
mov qword [rsp + 0x60], r15
mov qword [rsp + 0x58], r9
mov qword [rsp + 0x50], r13
nop dword [rax]
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x40], rsi
mov r10d, dword [rsi]
mov ecx, r9d
shl r10d, cl
mov edi, r10d
mov ecx, r10d
mov r13d, ebp
mov esi, ebp
mov r12d, ebp
mov r8d, ebp
mov r14d, ebp
mov edx, r10d
mov ebx, r10d
mov r15d, r10d
mov r11d, r10d
and r11d, 0xfb3fc511
mov r9d, r10d
or r10d, ebp
xor r11d, ebp
not ebp
mov eax, ebp
and eax, 0x20080002
and r13d, 0x4000
add eax, r13d
add eax, 0x3802545
mov r13, qword [rsp + 0x50]
and esi, 0x2002500
and ebp, 0x404100a0
add esi, ebp
add esi, 0x200c0002
and r12d, 0x9db69a5d
xor r12d, esi
xor r12d, eax
xor r8d, 0x9db69a5d
xor r14d, 0x624965a2
or r14d, r8d
xor r12d, 0xde73bfb8
mov eax, r12d
xor eax, r14d
or r12d, r14d
mov r14, qword [rsp + 0x48]
not edi
xor ecx, 0x60086180
and ecx, edi
not r12d
or r12d, eax
mov eax, edi
and edx, 0x2494082
and edi, 0x60002520
or edi, edx
mov edx, edi
xor edx, 0xfdb6bf7d
xor edi, 0x83edee5
and edi, edx
and ecx, 0x624965a2
mov edx, edi
and edx, 0x6269f5a3
xor edx, ecx
and ecx, edi
or eax, 0x624965a2
or ecx, edx
and ebx, 0x48801
mov edx, eax
and edx, 0xa331264
add edx, ebx
add edx, 0xc0004000
mov r8d, ecx
or r8d, 0x8160a44
and eax, 0xc0004000
and r15d, 0x15800018
add eax, r15d
add eax, 0x448c03
xor eax, edx
xor ecx, r8d
xor ecx, 0x97e1943b
and ecx, eax
xor r8d, r12d
mov rsi, qword [rsp + 0x40]
xor r8d, ecx
and r9d, 0x4c03aee
or r9d, 0xa3148010
xor r11d, r9d
mov r9, qword [rsp + 0x58]
xor r11d, 0x5ceb7fef
and r11d, r10d
mov eax, r8d
xor eax, 0xf757a506
mov ecx, r11d
xor ecx, 0xf757a506
mov edx, r8d
xor edx, 0x8a85af9
and edx, ecx
and r8d, r11d
xor r11d, 0x8a85af9
and r11d, eax
or r11d, r8d
or r11d, edx
mov r15, qword [rsp + 0x60]
mov dword [r14], r11d
add r14, 4
mov ebp, dword [rsi]
add rsi, 4
mov ecx, r13d
shr ebp, cl
cmp rsi, r15
jne 0x180019b50
lea rdi, [r14 - 4]
mov r12, qword [rsp + 0x28]
mov ebx, dword [rsp + 0x34]
mov r10, qword [rsp + 0x38]
jmp 0x18001a050
mov eax, dword [rdi]
mov ecx, eax
xor ecx, 0x2bf112d3
mov edx, r14d
xor edx, 0xd40eed2c
mov r8d, eax
xor r8d, 0xd40eed2c
and r8d, edx
xor r14d, 0x2bf112d3
and r14d, ecx
or r14d, r8d
mov ecx, r14d
not ecx
xor r14d, ecx
and r14d, eax
xor r14d, ecx
not r14d
or r14d, ecx
mov r8d, r12d
xor r8d, 0xc20f1002
and r8d, r12d
mov eax, r14d
xor eax, 0x500a0002
mov r9d, r12d
and r9d, 0x202220
mov ecx, r12d
not ecx
mov edx, ecx
and edx, 0x25c04111
or edx, r9d
mov r9d, r12d
and r9d, 0xc20f1002
xor r9d, 0xe7ef7333
and r8d, 0xd20f9c0a
or r8d, r9d
mov r9d, r12d
and r9d, 0x100040
mov r10d, ecx
and r10d, 0x8000084
or r10d, r9d
xor r10d, 0xc21f1042
xor edx, r10d
xor edx, 0x1020ae28
and edx, r8d
xor edx, r10d
mov r8d, r14d
xor r8d, 0xaa05dc1d
and eax, r8d
and eax, 0x780a4017
or eax, r8d
xor eax, edx
mov edx, r14d
xor edx, 0xceed6f42
mov r8d, r12d
xor r8d, 0x311290bd
mov r9d, r14d
xor r9d, 0x311290bd
and r9d, r8d
xor r12d, 0xceed6f42
and r12d, edx
and ecx, r14d
or ecx, r12d
or ecx, r9d
mov edx, ecx
and edx, 0x4b5a12f8
mov r8d, ecx
and r8d, 0xb4a5ed07
or r8d, 0x41020258
xor r8d, edx
xor r8d, eax
xor eax, 0x87f5bfe8
or eax, ecx
xor r8d, 0x3908424f
mov ecx, r8d
xor ecx, eax
or r8d, eax
not r8d
or r8d, ecx
mov dword [rdi], r8d
mov r12, qword [rsp + 0x28]
jmp 0x18001a68e
mov r11, rdi
mov r15, qword [rsp + 0x40]
mov rbp, rdx
mov rcx, qword [rsp + 0x38]
mov r8, qword [rcx + 8]
test r8, r8
mov r12, qword [rsp + 0x28]
mov edi, dword [rsp + 0x34]
je 0x18001a68e
mov edx, dword [rsp + 0x48]
mov esi, edx
not esi
mov r13d, dword [r14]
and r13d, edi
mov ecx, ebp
shl r13d, cl
cmp r8, r15
jae 0x18001a46d
mov ebp, dword [rsp + 0x24]
mov eax, ebp
not eax
mov r8d, edx
and r8d, 0x8d9a708e
mov r14d, r9d
mov ecx, r9d
and ecx, 0x72658f70
or ecx, r8d
xor ecx, 0xc066a21c
mov edi, ecx
and edi, esi
and esi, 0xf9a2f896
mov r8d, edx
and r8d, 0x65d0768
or r8d, esi
mov r9d, r8d
and r9d, 0xb2032d6c
xor r9d, 0x2010568
xor r8d, 0xb45e2a05
or r8d, r9d
mov r9d, eax
and r9d, 0x32032d6d
mov esi, ebp
and esi, 0x7fffffff
xor esi, 0x32032d6d
and esi, ebp
mov ebx, r8d
and ebx, 0xfffffffe
xor ebx, edi
xor ebx, 0xfffffffe
or r8d, edx
not r8d
and r8d, ecx
or r8d, ebx
mov ecx, r9d
not ecx
mov edi, eax
and edi, 0x30020400
mov ebx, ecx
and ebx, 0x48c1b1c5
mov r15d, ebp
and r15d, 0x28
mov r12d, eax
and r12d, 0x2000800
add edi, ebx
add edi, 0x28
lea ebx, [r12 + r15]
add ebx, 0x30020400
mov r12, qword [rsp + 0x28]
xor ebx, esi
xor ebx, edi
xor ebx, 0x78c3b5c5
mov edi, eax
and edi, 0x202204c
and ecx, 0x31c5cdb3
or ecx, edi
or r9d, esi
xor ecx, esi
xor ecx, 0x4e3a324c
and ecx, r9d
or ecx, ebx
xor ecx, r8d
mov r8d, r14d
and r8d, eax
and edx, 0x73823f93
and r14d, 0x8c7dc06c
or r14d, edx
and ebp, 0x73823f93
and eax, 0xc7dc06c
or eax, ebp
xor eax, r14d
or eax, r8d
mov r8d, ecx
mov r9d, eax
mov esi, eax
not eax
and eax, ecx
and ecx, 0x81b5eb8c
or ecx, 0xa4a1441
and r8d, 0x7e4a1473
and r9d, 0x81b5eb8c
and esi, 0x7e4a1473
or esi, 0x80950888
xor esi, r9d
xor esi, r8d
xor esi, ecx
xor esi, 0x7520e336
or eax, esi
and r10d, eax
mov eax, r10d
and eax, r13d
mov ecx, r13d
and ecx, 0x6cb84b2
or ecx, 0xf1044b40
and r13d, 0xf9347b4d
xor r13d, ecx
xor r13d, r10d
mov ecx, eax
not ecx
xor r13d, 0xefbb4bf
or ecx, r13d
xor r13d, eax
mov eax, r13d
xor eax, ecx
or r13d, ecx
not r13d
or r13d, eax
mov dword [r11], r13d
jmp 0x18001a68e
mov r10, qword [rsp + 0x38]
mov r12, qword [rsp + 0x28]
mov rax, qword [r10 + 8]
cmp rax, r13
jae 0x18001a26e
test rax, rax
je 0x18001a666
and ebx, dword [r15]
mov ecx, r9d
shl ebx, cl
mov edi, dword [rsp + 0x24]
and edi, dword [r14]
mov edx, edi
not edx
mov ecx, edi
and ecx, 0x70d45856
mov eax, ebp
xor eax, 0x60941816
and eax, ebp
mov r8d, edx
and r8d, 0x8f2ba7a9
mov r9d, edi
and r9d, 0x62284a9
mov r10d, edi
xor r10d, 0x50441806
and r10d, ecx
xor r9d, 0x56669caf
lea r11d, [r10 - 0x76f6dd00]
lea esi, [r8 + 0x20904050]
and esi, r11d
mov r11d, edi
or r11d, 0x62284a9
xor r11d, r10d
and r11d, r9d
or r11d, esi
and edx, 0x8900a408
mov r9d, edi
and r9d, 0x62b03a1
add edx, r9d
add edx, 0x20944006
or r8d, ecx
xor edx, ecx
xor edx, 0xd940bc58
and edx, r8d
or edx, r11d
mov ecx, ebp
and ecx, 0x60941816
and eax, 0x70d45856
xor eax, ecx
mov ecx, ebp
and ecx, 0x8f2ba7a9
or ecx, eax
xor ecx, 0x8f2ba7a9
mov r8d, ebp
xor r8d, 0x70d45856
mov eax, ebp
xor eax, 0x8f2ba7a9
or eax, r8d
not eax
or eax, ecx
xor eax, edx
mov ecx, ebp
and ecx, 0x54e0d9dd
mov edx, ebp
and edx, 0xab1f2622
or edx, 0x14800191
xor edx, ecx
xor edx, edi
or edi, ebp
mov ecx, edx
xor ecx, 0xeb7ffe6e
or ecx, edi
xor edi, edx
xor edi, 0x14800191
and edi, ecx
or edi, eax
mov edx, edi
not edx
mov ecx, edi
and ecx, 0x79ad4862
or ecx, 0x410b681
mov eax, edi
and eax, 0x8652b79d
xor eax, ecx
mov ecx, eax
xor ecx, 0x410b681
mov r8d, eax
and r8d, 0xbee213e2
mov r9d, r8d
xor r9d, 0xbae20162
and edx, 0xbee213e2
xor edi, 0x411dec1d
or edi, edx
mov edx, r9d
and edx, edi
not edi
xor r8d, 0x451dfe9d
and r8d, edi
or edx, r8d
and r8d, r9d
and r9d, edi
xor edx, r9d
or r8d, edx
mov edx, ebx
xor edx, 0xbee213e2
mov r9d, ebx
xor r9d, 0x411dec1d
or r9d, edx
mov edx, ebx
xor edx, 0x2866abd5
and edx, r9d
xor edx, r8d
mov r8d, edx
xor r8d, 0x9684b837
mov r9d, eax
xor r9d, 0x912a51d6
mov r10d, ebx
xor r10d, 0x953ae757
xor eax, 0x6ed5ae29
and eax, r10d
or ecx, ebx
xor ebx, 0x6ac518a8
and ebx, r9d
or ebx, eax
not ebx
and ebx, ecx
mov eax, edx
xor eax, 0x466a26f9
and eax, r8d
xor eax, ebx
mov ecx, r8d
xor ecx, ebx
or ebx, r8d
and r8d, 0x80460a4e
and edx, 0x50a89480
add edx, r8d
add edx, 0x27102120
xor eax, edx
not ebx
or ebx, ecx
xor eax, 0xc86f4edf
mov ecx, eax
xor ecx, ebx
or eax, ebx
not eax
or eax, ecx
jmp 0x18001a68b
mov eax, dword [r15]
mov ecx, r9d
shl eax, cl
mov ecx, eax
and ecx, ebp
xor eax, ebp
mov edx, ecx
xor edx, 0xe4b7e53a
mov r8d, eax
xor r8d, 0xe4b7e53a
xor ecx, 0x1b481ac5
and ecx, r8d
xor eax, 0x1b481ac5
and eax, edx
or eax, ecx
mov dword [r14], eax
cmp qword [r10 + 8], r13
je 0x18001a68e
mov edx, dword [r15]
mov ecx, r13d
shr edx, cl
mov ebx, dword [rsp + 0x24]
mov r8d, ebx
not r8d
mov eax, r8d
and eax, 0x3595d420
mov r9d, ebx
and r9d, 0x4a6a2bdf
or r9d, eax
mov eax, r9d
xor eax, 0x4a6a2bdf
and r9d, 0x3f5fa3ec
mov ecx, eax
and ecx, 0x40a05c13
or ecx, r9d
xor ecx, 0xf5b5dc33
or ecx, eax
mov r9d, ebx
and r9d, 0x7fffffff
mov r10d, r9d
xor r10d, 0x2239a1c9
mov eax, ecx
xor eax, 0xa239a1c9
xor r9d, 0xddc65e36
and r9d, eax
mov eax, ecx
xor eax, 0x5dc65e36
and eax, r10d
or eax, r9d
or ecx, ebx
mov r9d, dword [rdi + 8]
and r8d, 0x351425e1
and ebx, 0x4aebda1e
or ebx, r8d
mov r8d, ebx
xor r8d, 0xb51425e1
mov r11d, r8d
and r11d, 0x3b15cccb
mov r10d, ebx
and r10d, 0x44ea3334
or r10d, r11d
mov r11d, r10d
xor r11d, 0x84002120
xor r10d, 0x8eaafe9e
and r10d, r11d
or r8d, 0xf5552041
mov r11d, r9d
and r11d, 0xf5552041
or r11d, 0x962a
mov esi, r9d
and esi, 0xaaadfbe
xor esi, r11d
mov r11d, r8d
and r11d, 0xfdc9156d
and ebx, 0x222ca92
or ebx, r11d
not r8d
and r8d, r10d
and r10d, 0x7fffffff
xor r10d, ebx
xor r10d, 0x7febdf7f
or r8d, r10d
xor r8d, esi
xor r8d, 0xf555b66b
and r8d, r9d
mov r9d, r8d
not r9d
not eax
and eax, ecx
mov ecx, edx
xor ecx, 0x232a3bda
mov r10d, eax
xor r10d, 0x232a3bda
mov r11d, edx
xor r11d, 0xdcd5c425
and r11d, r10d
xor eax, 0xdcd5c425
and eax, ecx
or eax, r11d
and eax, edx
mov ecx, r8d
xor ecx, r9d
and ecx, eax
xor ecx, r9d
not ecx
or ecx, r9d
xor eax, r8d
mov edx, eax
not edx
mov r8d, eax
and r8d, 0x90100322
mov r9d, edx
and r9d, 0x22475040
and edx, 0xca88080
mov r10d, eax
and r10d, 0x41002c1d
add r8d, r9d
add r8d, 0xca88080
add edx, r10d
add edx, 0x90100322
xor edx, r8d
xor edx, ecx
xor edx, 0x4da8ac9d
not ecx
and ecx, eax
or ecx, edx
mov dword [rdi + 8], ecx
jmp 0x18001a68e
and esi, 0x32d59c48
and edx, 0xcd2a63b6
or edx, esi
mov ecx, edx
xor ecx, 0xcd2a63b6
mov r8d, edx
and r8d, 0xe3aeb00
xor edx, 0xcc5f042e
and edx, ecx
mov r9d, ecx
and r9d, 0xf1c514fe
or r9d, r8d
mov ecx, r9d
xor ecx, 0xf3d59cff
mov r8d, r9d
xor r8d, 0xd5f0499
and r8d, ecx
or edx, r8d
xor edx, r10d
and r9d, 0xe7218790
mov r8d, ecx
and r8d, 0x18de786e
or r8d, r9d
xor r8d, r10d
xor r8d, 0xe3018491
and ecx, r10d
or ecx, r8d
mov r8d, edx
xor r8d, 0x1756799
or r8d, ecx
xor ecx, edx
xor ecx, 0xfe8a9866
and ecx, r8d
mov r8d, ecx
xor r8d, 0xee50e9cc
mov r9d, r13d
xor r9d, 0xee50e9cc
or r9d, r8d
mov r8d, ecx
xor r8d, r13d
and r8d, r9d
and ecx, r13d
xor ecx, r8d
mov dword [r11], ecx
mov rcx, qword [rsp + 0x38]
cmp qword [rcx + 8], r15
je 0x18001a68e
mov ecx, dword [r14]
mov edx, ecx
not edx
mov r8d, edx
and r8d, 0xa2900600
mov r9d, ecx
and r9d, 0x40012187
mov r10d, ecx
and r10d, 0x1d6ed878
add r8d, r9d
add r8d, 0x14061858
xor r8d, r10d
mov r9d, r8d
xor r9d, 0xabf8c620
mov r10d, edi
and r10d, 0x1d6ed878
and edi, 0xe2912786
or edi, 0x14081029
xor edi, r10d
mov r10d, edi
xor r10d, 0xf69937af
xor r8d, 0x540739de
and r8d, r10d
xor edi, 0x966c850
and edi, r9d
or edi, r8d
mov r8d, edi
not r8d
and r8d, edx
xor edi, ecx
or edi, r8d
not edi
mov ecx, r15d
shr edi, cl
mov eax, dword [r11 + 4]
mov r9d, dword [rsp + 0x24]
mov ecx, r9d
not ecx
and ecx, 0x7fffffff
mov edx, eax
not edx
or edx, ecx
or r9d, eax
xor r9d, edx
and r9d, eax
mov eax, edi
and eax, r9d
mov ecx, eax
not ecx
mov edx, r9d
xor edx, 0xb29d0599
mov r8d, edi
xor r8d, 0xb29d0599
xor r9d, 0x4d62fa66
and r9d, r8d
xor edi, 0x4d62fa66
and edi, edx
or edi, r9d
mov edx, edi
not edx
mov r8d, eax
and r8d, 0x50c101
mov r9d, ecx
and r9d, 0x4a0836e0
and edx, ecx
and ecx, 0x2021081a
mov r10d, eax
and r10d, 0x95860004
add r8d, r9d
add r8d, 0x2021081a
add ecx, r10d
add ecx, 0x50c101
xor ecx, r8d
xor ecx, edi
xor ecx, 0x4a58f7e1
xor edi, eax
or edi, edx
not edi
or edi, ecx
mov dword [r11 + 4], edi
jmp 0x18001a68e
mov eax, dword [r14]
mov ecx, eax
not ecx
mov r8d, dword [rsp + 0x24]
mov edx, r8d
not edx
and edx, eax
and edx, 0x7fffffff
and ecx, r8d
or ecx, edx
or eax, r8d
xor eax, ecx
or eax, ebp
mov dword [r14], eax
mov rax, r12
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret