Function at 0x180014d80
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
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 0x180014dba
cmp r13, r10
jne 0x180014dba
movups xmm0, xmmword [r9]
movups xmmword [rcx], xmm0
mov rax, rcx
jmp 0x180016689
mov rdi, qword [r9]
mov rax, r15
sub rax, rdx
mov r11, r13
sub r11, r10
lea rax, [r11 + rax*8]
movups xmm0, xmmword [r9]
movups xmmword [rcx], xmm0
mov rsi, qword [rcx + 8]
lea r11, [rsi + rax]
test rax, rax
jns 0x180014e06
neg rax
cmp rsi, rax
jae 0x180014e06
mov rax, r11
shr rax, 5
shl rax, 2
add rax, qword [rcx]
movabs rsi, 0xe000000000000000
add rsi, rax
jmp 0x180014e14
mov rsi, r11
shr rsi, 3
and rsi, 0xfffffffffffffffc
add rsi, qword [rcx]
mov qword [rcx], rsi
and r11d, 0x1f
mov qword [rsp + 0x20], rcx
mov qword [rcx + 8], r11
mov r14d, 0xffffffff
mov r12d, 0xffffffff
mov ecx, r10d
shl r12d, cl
mov rax, qword [r9 + 8]
mov ecx, eax
neg cl
mov ebx, 0xffffffff
shr ebx, cl
xor r9d, r9d
test rax, rax
cmove ebx, r9d
mov ecx, r13d
neg cl
mov ebp, 0xffffffff
shr ebp, cl
mov ecx, r11d
shl r14d, cl
cmp r11, 1
sbb r9, r9
lea rsi, [rsi + r9*4]
cmp rdx, r15
je 0x180014ffd
mov dword [rsp + 0x2c], ebp
cmp rdi, rsi
je 0x1800150ce
mov r9d, r10d
and r9d, 7
mov ecx, eax
and ecx, 7
cmp r9, rcx
jne 0x180015116
mov ebx, r13d
and ebx, 7
shr r10, 3
add rdx, r10
shr r13, 3
add r15, r13
shr rax, 3
add rdi, rax
test r9, r9
je 0x180014f35
mov cl, 8
sub cl, r9b
mov eax, 0xff
shr eax, cl
movzx ecx, byte [rdi]
mov r8d, ecx
xor r8b, 0xab
mov r10d, eax
xor r10b, 0x54
mov r11d, ecx
xor r11b, 0x54
and r11b, r10b
xor al, 0xab
and al, r8b
or al, r11b
and al, cl
movzx r8d, byte [rdx]
mov r10d, r8d
and r10b, 0xde
or r10b, 0x20
mov r11d, r8d
mov sil, 0x7f
mov ecx, r9d
shr sil, cl
shl sil, cl
and r11b, 0x21
xor sil, r11b
xor sil, r10b
xor sil, 0x5f
and sil, r8b
mov ecx, esi
and cl, al
xor sil, al
mov eax, esi
and al, 0x76
and sil, 0x89
xor sil, cl
xor sil, al
mov byte [rdi], sil
inc rdx
inc rdi
mov r12, qword [rsp + 0x20]
mov r14, r15
sub r14, rdx
mov rcx, rdi
mov r8, r14
call sub.VCRUNTIME140.dll_memmove
test rbx, rbx
je 0x180016686
mov cl, 8
sub cl, bl
mov eax, 0xff
shr eax, cl
mov r8b, 0xff
mov ecx, ebx
shl r8b, cl
not r8b
movzx edx, byte [rdi + r14]
not dl
or dl, r8b
and al, byte [r15]
mov r8d, eax
and r8b, 0x20
mov ecx, eax
xor cl, 0x24
or cl, r8b
xor cl, 0xfb
mov r9d, edx
not al
or al, dl
and dl, 0x20
and r9b, 0xdf
or dl, 0x1f
xor dl, r9b
or cl, r8b
not cl
mov r8d, edx
xor r8b, 0x81
mov r9d, ecx
and r9b, 0xbe
and cl, 0x41
or cl, 0xa8
xor cl, r9b
mov r9d, ecx
xor r9b, 0xe9
xor dl, 0x7e
and dl, r9b
xor cl, 0x16
and cl, r8b
or cl, dl
mov edx, eax
mov r8d, ecx
mov r9d, eax
not al
and al, cl
xor cl, 0x88
xor dl, 0x77
xor r8b, 0x77
and r8b, dl
xor r9b, 0x88
and r9b, cl
or al, r9b
or al, r8b
mov byte [rdi + r14], al
jmp 0x180016686
and r12d, ebp
cmp rax, r10
jae 0x18001540c
sub r10d, eax
mov r9d, dword [rdx]
and r9d, r12d
mov ecx, r10d
shr r9d, cl
cmp rdi, rsi
je 0x18001545d
and ebx, dword [rdi]
or ebx, r9d
mov dword [rdi], ebx
mov ecx, dword [r8 + 8]
sub ecx, r11d
and r12d, dword [rdx]
shr r12d, cl
mov eax, dword [rdi + 4]
mov ecx, r14d
and ecx, 0x70d7a775
or ecx, 0x5281002
and r14d, 0xf28588a
xor r14d, ecx
mov ecx, eax
not ecx
mov edx, r14d
xor edx, 0x7ad7effd
or edx, ecx
xor r14d, 0x85281002
or eax, r14d
and eax, edx
and r14d, ecx
xor eax, ecx
or eax, r14d
mov ecx, eax
xor ecx, r12d
mov edx, ecx
not edx
not r12d
and r12d, eax
or r12d, edx
mov eax, r12d
xor eax, 0x66fcae1a
mov edx, ecx
and edx, 0x990351e5
and ecx, 0x66fcae1a
or ecx, 0x11021005
xor ecx, edx
mov edx, ecx
xor edx, 0x77febe1f
xor r12d, 0x990351e5
and r12d, edx
xor ecx, 0x880141e0
and ecx, eax
or ecx, r12d
mov dword [rdi + 4], ecx
mov r12, qword [rsp + 0x20]
jmp 0x180016686
cmp rax, r10
jae 0x1800155d8
sub r10d, eax
mov edx, dword [rdx]
mov eax, r12d
and eax, 0x5a3f5b7
mov ecx, r12d
and ecx, 0x7a5c0a48
or ecx, 0x8000d0b3
xor ecx, eax
xor ecx, edx
xor ecx, 0xd0b3
or edx, r12d
not edx
and edx, 0x7fffffff
or edx, ecx
not edx
mov ecx, r10d
shr edx, cl
jmp 0x180015627
mov qword [rsp + 0x30], r14
cmp rax, r10
jae 0x180015a6c
mov qword [rsp + 0x50], r8
movabs r14, 0x54152b0bc2fb3940
add r10, r14
sub r10, rax
mov ecx, dword [rdx]
mov eax, r12d
and eax, 0x47a971dd
or eax, 0x30108c22
and r12d, 0x38568e22
xor r12d, eax
mov r11d, r12d
xor r11d, 0x4fef73dd
mov esi, r12d
xor esi, 0x683194b
and esi, r11d
mov eax, r11d
and eax, 0x84c6000
mov r13d, r12d
and r13d, 0x41200a96
add eax, r13d
add eax, 0x12809569
xor eax, esi
mov esi, eax
xor esi, 0x1accfd6b
mov ebp, ecx
xor ebp, 0x496c6a96
and ebp, esi
and r11d, 0x3751efcd
mov r8d, r12d
and r8d, 0x48ae1032
or r8d, r11d
xor r8d, ecx
xor r12d, 0xb0108c22
and r12d, ecx
xor ecx, 0xb6939569
xor eax, 0xe5330294
and eax, ecx
movabs r9, 0xabead4f43d04c6c0
add r9, r10
or eax, ebp
mov esi, 0xffffffff
mov ecx, r10d
shr esi, cl
xor r8d, 0xb751efef
or r12d, r8d
not eax
and eax, r12d
shr eax, cl
sub r14, r10
and ebx, dword [rdi]
mov ecx, ebx
not ecx
mov ebp, ebx
xor ebp, ecx
and ebp, eax
xor ebp, ecx
not ebp
or ebp, ecx
xor ebx, eax
mov eax, ebp
xor eax, 0xa716138d
mov ecx, ebx
xor ecx, 0x58e9ec72
mov r10d, ebp
xor r10d, 0x58e9ec72
and r10d, ecx
mov ecx, ebx
xor ecx, 0xa716138d
and ecx, eax
not ebp
and ebp, ebx
or ebp, ecx
add r14, 0x20
mov qword [rsp + 0x40], r14
or ebp, r10d
mov r8d, esi
not r8d
mov dword [rdi], ebp
add rdx, 4
cmp rdx, r15
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x38], r9
je 0x180016165
mov ecx, esi
and ecx, 0x1a1a60c0
xor ecx, 0x81a2080
mov eax, esi
xor eax, 0xa9dab984
and eax, ecx
mov ecx, eax
xor ecx, 0xedffbfbf
mov r10d, r8d
and r10d, 0x9a77174e
mov r13d, esi
and r13d, 0x6588e8b0
or r13d, r10d
mov r10d, r13d
and r10d, 0x1a1a60c0
xor r10d, 0x86080
xor r13d, 0x7f928870
or r13d, r10d
xor eax, ecx
xor eax, 0x12004040
and eax, r13d
xor eax, ecx
or r13d, ecx
xor r13d, eax
mov eax, r8d
and eax, 0x80810180
mov ecx, esi
and ecx, 0x284ee438
add eax, ecx
add eax, 0x43001840
mov r11d, esi
and r11d, 0x57301a46
xor r11d, eax
mov ebx, r11d
xor ebx, 0x94b10386
xor r11d, 0x6b4efc79
mov eax, r8d
and eax, 0x9fab4db6
mov r9, r15
mov r15d, esi
and r15d, 0x6054b248
or r15d, eax
mov eax, r13d
xor eax, 0xe5e59f3f
mov rcx, qword [rsp + 0x40]
nop dword [rax + rax]
mov r10d, dword [rdx]
shl r10d, cl
mov r12d, ebp
xor r12d, 0x57301a47
and r12d, r11d
mov ecx, ebp
xor ecx, 0xa8cfe5b8
and ecx, ebx
or ecx, r12d
mov r12d, r15d
xor r12d, ebp
xor r12d, 0x9fab4db7
and ebp, esi
or ebp, r12d
not ecx
and ecx, ebp
mov r14d, ecx
xor r14d, 0xfb82270d
mov r12d, ecx
xor r12d, r10d
and ecx, r10d
xor r10d, 0x47dd8f2
or r10d, r14d
and r12d, r14d
and ecx, r10d
not r10d
or r10d, r12d
xor ecx, r10d
mov dword [rdi], ecx
mov ebp, dword [rdx]
mov rcx, qword [rsp + 0x38]
shr ebp, cl
mov r10d, dword [rdi + 4]
mov ecx, r10d
not ecx
and ecx, eax
xor r10d, r13d
xor r10d, 0x1a1a60c0
or r10d, ecx
mov r14d, ebp
not r14d
or r14d, r10d
mov r12d, r10d
mov ecx, ebp
xor ecx, 0x24b80b03
xor r10d, 0x24b80b03
and r10d, ecx
mov rcx, qword [rsp + 0x40]
xor r12d, 0xdb47f4fc
xor ebp, 0xdb47f4fc
and ebp, r12d
or ebp, r10d
mov r8d, r14d
not r8d
xor r14d, r8d
and r14d, ebp
and ebp, r8d
xor ebp, r8d
xor ebp, r14d
lea r10, [rdi + 4]
mov dword [rdi + 4], ebp
add rdx, 4
mov rdi, r10
cmp rdx, r9
jne 0x180015320
jmp 0x180016170
sub eax, r10d
mov r9d, dword [rdx]
mov ecx, r12d
and ecx, 0x61cf7c2a
mov r10d, r12d
and r10d, 0x9e3083d5
or r10d, 0x41894c2a
xor ecx, r9d
xor ecx, r10d
or r9d, r12d
mov r10d, ecx
xor r10d, 0xbe76b3d5
or r10d, r9d
xor r9d, ecx
xor r9d, 0x41894c2a
and r9d, r10d
mov ecx, eax
shl r9d, cl
cmp rdi, rsi
jne 0x180015021
xor eax, eax
test r11, r11
cmove r14d, eax
mov eax, ebx
not eax
mov ecx, ebx
xor ecx, 0x8011501
and ecx, eax
mov edx, ebx
and edx, 0xf2726ab6
mov r8d, ebx
and r8d, 0x4098501
and eax, 0x9841048
or eax, r8d
mov r8d, eax
xor r8d, 0xfbf67afe
xor eax, 0x9397475d
and eax, r8d
and ecx, 0xd8d9549
or ecx, eax
xor ecx, edx
mov edx, r14d
xor edx, 0xd8d9549
mov eax, r14d
and eax, 0x3e31924d
and ebx, r14d
xor r14d, 0x33bc0704
and r14d, edx
xor eax, 0x32300204
or eax, r14d
xor eax, ecx
mov ecx, eax
xor ecx, 0x979ec25c
xor eax, 0xa9af5011
mov edx, eax
xor edx, ebx
or eax, ebx
xor ecx, ebx
xor ecx, 0xc1ce6db2
and eax, ecx
and ecx, edx
xor eax, edx
or eax, ecx
and eax, dword [rdi]
mov ecx, eax
and ecx, 0x1cfbe165
and eax, 0xe3041e9a
or eax, 0x1c72e144
xor eax, ecx
mov ecx, eax
xor ecx, 0x1c72e144
mov edx, eax
xor edx, 0x20500b1
and edx, 0x23580f1
xor eax, 0x1e4761b5
and eax, ecx
or eax, edx
mov r8d, r9d
xor r8d, 0x1848760e
and r8d, r9d
mov edx, r9d
and edx, 0x1848760e
xor edx, 0x184876ce
and r8d, 0xfdca7f0e
or r8d, edx
mov edx, r9d
and edx, 0x23580f1
xor edx, r8d
mov r8d, r9d
xor r8d, 0xfdca7f0e
mov r10d, r9d
xor r10d, 0x23580f1
or r10d, r8d
xor edx, 0xe58209c0
mov r8d, edx
xor r8d, r10d
or edx, r10d
not edx
or edx, r8d
mov r8d, eax
and r8d, 0x1c8a41b
or r8d, 0x321212e0
and eax, 0xfe375be4
xor eax, r8d
mov r8d, eax
xor r8d, 0x33dab6fb
mov r10d, edx
xor r10d, 0x1c8a41b
xor eax, 0xcc254904
and eax, r10d
xor edx, 0xfe375be4
and edx, r8d
and ecx, r9d
or ecx, edx
or ecx, eax
mov dword [rdi], ecx
mov r12, qword [rsp + 0x20]
jmp 0x180016686
sub eax, r10d
mov edx, dword [rdx]
mov ecx, edx
xor ecx, 0xa1f2db02
mov r8d, r12d
and r8d, 0x7fffffff
mov r9d, r8d
xor r9d, 0x21f2db02
mov r10d, edx
xor r10d, 0x5e0d24fd
and r10d, r9d
xor r8d, 0xde0d24fd
and r8d, ecx
or r8d, r10d
or edx, r12d
not edx
and edx, 0x7fffffff
or edx, r8d
not edx
mov ecx, eax
shl edx, cl
xor eax, eax
test r11, r11
cmove r14d, eax
mov eax, ebx
not eax
mov ecx, ebx
and ecx, 0x12929884
mov r8d, ebx
or r8d, 0xed6d677b
xor ecx, 0x492467dd
and ecx, r8d
and eax, ecx
and ecx, 0x5292fdd5
mov r8d, ebx
or r8d, 0xdf71a2a
and r8d, 0xdf71aae
xor r8d, ecx
xor r8d, 0x4d318a6
and eax, 0x84
or eax, r8d
mov ecx, ebx
and ecx, 0xed6d677b
mov r8d, ecx
xor r8d, 0x5bb6ff59
xor ecx, 0xa44900a6
and ecx, eax
not eax
and eax, r8d
mov r8d, ebx
xor r8d, 0xed6d677b
mov r9d, ebx
xor r9d, 0x12929884
or r9d, r8d
not r9d
or r9d, ecx
or r9d, eax
mov eax, r14d
xor eax, 0x12929884
mov ecx, r14d
xor ecx, 0xed6d677b
and ecx, r9d
not r9d
and r9d, eax
mov eax, r14d
and eax, 0x7804f422
xor eax, ebx
or ebx, r14d
and r14d, 0x87fb0bdd
or r14d, 0x18049020
xor r14d, eax
xor r14d, 0xe7fb6fdf
and r14d, ebx
or r14d, ecx
or r14d, r9d
test r13, r13
mov r12, qword [rsp + 0x20]
je 0x180015e9f
sub r11d, r13d
mov r13d, dword [rsp + 0x2c]
and r13d, dword [r15]
mov ecx, r11d
shl r13d, cl
mov r8d, r13d
not r8d
and r14d, dword [rdi]
mov eax, r14d
not eax
mov ecx, r14d
or ecx, 0xda73150c
mov ebp, ecx
not ebp
and eax, 0x258ceaf3
mov r10d, r14d
xor r10d, 0xda73150c
or r10d, eax
mov r9d, edx
or r9d, 0xda73150c
mov eax, edx
not eax
and ecx, 0x423c391d
mov r11d, ebp
and r11d, 0x2580c2e2
or r11d, ecx
mov ecx, r11d
xor ecx, 0xbdc3c6e2
mov rbx, r14
mov r14d, r11d
xor r14d, 0x137af1a7
and r14d, ecx
mov esi, ebx
or esi, 0xdb77ddbe
mov r15d, esi
and r15d, 0x2bbf57e7
and ebp, 0x4002000
or ebp, r15d
not esi
and esi, r14d
and r14d, 0x75cceafb
xor r14d, ebp
xor r14d, 0x2bbd57e7
or esi, r14d
mov ebp, r10d
and r11d, 0x100a030
mov r14d, ecx
and r14d, 0x24de4ec3
or r14d, r11d
xor r14d, r10d
and ecx, r10d
and r10d, 0x5146c8ba
and ebp, 0xaeb93745
or ebp, 0x410200aa
xor ebp, r10d
xor ebp, esi
xor ebp, 0xefbb37ef
xor r14d, 0xdb21912c
or ecx, r14d
not ecx
or ecx, ebp
or eax, 0x258ceaf3
xor r9d, eax
and eax, 0x4da30010
mov r10d, edx
and r10d, 0x9250150c
or r10d, eax
mov eax, edx
or eax, 0x200000
and eax, 0x25aceaf3
xor eax, r10d
and ebx, edx
xor edx, 0xda73150c
or edx, r9d
xor eax, 0x97f0151c
mov r9d, eax
xor r9d, edx
or eax, edx
not eax
or eax, r9d
xor eax, ecx
or eax, ebx
mov ebx, eax
not ebx
mov r11d, eax
xor r11d, 0x20827140
and r11d, ebx
mov r9d, r13d
or r9d, 0xd96586bd
mov ecx, r9d
not ecx
and r8d, 0x269a7942
mov edx, r13d
xor edx, 0xd96586bd
or edx, r8d
mov r8d, eax
and r8d, 0x26124100
mov r10d, ebx
and r10d, 0x883842
or r10d, r8d
mov esi, r10d
xor esi, 0xd9edbeff
or ebx, 0x269a7942
mov ebp, ebx
and ebp, 0xe3dc0d25
mov r8d, eax
and r8d, 0x18218298
or r8d, ebp
mov ebp, r10d
xor ebp, 0xb84bc906
and ebp, esi
and r11d, 0x269a7942
or r11d, ebp
mov ebp, r8d
xor ebp, 0xe3dc0d25
mov r14d, ebp
and r14d, 0x8000004
mov r15d, r8d
and r15d, 0x90418000
and ebx, 0x241301
mov r12d, eax
and r12d, 0x410004b8
add r14d, r15d
add r14d, 0x241301
add ebx, r12d
add ebx, 0xa180806
xor ebx, r14d
mov r14d, ebx
xor r14d, 0x14018000
xor ebx, 0xaada7946
and ebx, r11d
not r11d
and r11d, r14d
xor r10d, 0x26124100
mov r14d, r10d
and r14d, 0x20a4902
and esi, 0xa4f53469
or esi, r14d
or r10d, ebp
and ebp, 0x59008294
and r8d, 0xa0f50429
or r8d, ebp
mov r12, qword [rsp + 0x20]
xor r8d, esi
xor r8d, 0xfbdecfb7
and r8d, r10d
or r8d, ebx
or r8d, r11d
and r9d, 0xc4d6c6
mov r10d, ecx
and r10d, 0x261a2900
or r10d, r9d
mov r9d, r10d
xor r9d, 0xc4d6c6
mov r11d, r9d
and r11d, 0x24040
mov esi, r10d
and esi, 0x4041902
mov ebx, r13d
and ebx, 0x980000
and ecx, 0x22002000
or ecx, ebx
add r11d, esi
add r11d, 0x980000
mov esi, edx
and r9d, 0x26883942
mov ebx, r10d
and ebx, 0x164680
or ebx, r9d
xor ebx, edx
xor r10d, 0xff3b2939
and r10d, edx
and edx, 0xdc2759c2
or edx, ecx
and esi, 0x23d8a63d
or esi, 0xc8274000
xor esi, edx
xor esi, r11d
xor esi, 0x37dcaffd
xor ebx, 0xfffbb97f
or r10d, ebx
not r10d
or r10d, esi
xor r10d, r8d
mov ecx, eax
xor ecx, 0xf90e3ba5
mov edx, r13d
and edx, 0x6f1c45a
mov r8d, r13d
and r8d, 0xf90e3ba5
or r8d, 0x2214018
xor r8d, edx
mov edx, r8d
xor edx, 0xfb2f7bbd
mov r9d, eax
xor r9d, 0x6f1c45a
and r9d, edx
xor r8d, 0x4d08442
and r8d, ecx
or r8d, r9d
or eax, r13d
not r8d
and r8d, eax
or r8d, r10d
mov dword [rdi], r8d
jmp 0x180016686
movabs r11, 0xc51c7761359e6477
add rax, r11
sub rax, r10
sub r11, rax
mov ecx, dword [rdx]
mov r9d, ecx
xor r9d, 0x781d8740
mov r10d, r12d
and r10d, 0x781d8740
and r12d, 0x87e278bf
or r12d, 0x70090040
xor r12d, r10d
mov r10d, r12d
xor r10d, 0xf7eb78ff
mov esi, ecx
xor esi, 0x7e278bf
and esi, r10d
xor r12d, 0x8148700
and r12d, r9d
or r12d, esi
and r12d, ecx
add eax, 0xca619b89
mov ecx, eax
shl r12d, cl
lea r9, [r11 + 0x20]
mov ecx, dword [rdi]
mov r10d, ecx
xor r10d, 0x741180fe
mov esi, ebx
xor esi, 0x8bee7f01
mov ebp, ecx
xor ebp, 0x8bee7f01
and ebp, esi
xor ebx, 0x741180fe
and ebx, r10d
or ebx, ebp
and ebx, ecx
mov ecx, r12d
and ecx, ebx
mov r10d, r12d
and r10d, 0x113847fe
or r10d, 0xca069801
and r12d, 0xeec7b801
xor r12d, ebx
xor r12d, r10d
mov r10d, r12d
xor r10d, 0xca069801
mov esi, r12d
xor esi, 0x35f967fe
xor r12d, 0x8a5cc505
mov ebx, esi
or ebx, r10d
and ebx, r12d
xor ebx, ecx
xor ebx, 0x405a5d04
mov ebp, r10d
and ebp, 0x275ec895
and esi, 0xd8a1376a
or esi, ebp
xor esi, ecx
xor esi, 0xd8a1376a
or r10d, ecx
not r10d
or r10d, esi
not r10d
or r10d, ebx
mov dword [rdi], r10d
lea r10, [rdi + 4]
mov r14d, dword [rdx]
add rdx, 4
mov ecx, r11d
shr r14d, cl
cmp rdx, r15
je 0x180015cc0
nop word cs:[rax + rax]
mov r11d, dword [rdx]
mov ecx, eax
shl r11d, cl
mov esi, r14d
not esi
mov edi, r14d
and edi, 0xcc4f0622
mov ecx, r14d
and ecx, 0x33b0f9dd
mov ebx, r14d
or ebx, 0xcc4f0622
xor ecx, 0x3b535a01
and ecx, ebx
mov ebx, esi
and ebx, 0x33105801
or ebx, ecx
lea ecx, [rdi + 0xa0a1dc]
or edi, 0x33105801
xor edi, ecx
and edi, ebx
xor edi, ecx
mov ecx, r11d
xor ecx, 0xcc4f0622
or ecx, edi
mov ebx, edi
xor ebx, r11d
xor ebx, 0x33b0f9dd
and ebx, edi
not ecx
or ecx, ebx
mov edi, esi
and edi, 0x11830408
mov ebx, r14d
and ebx, 0x82207910
mov r12d, r14d
and r12d, 0x2c140084
and esi, 0x40488263
add edi, ebx
add edi, 0x2c140084
add esi, r12d
add esi, 0x11830408
xor esi, edi
xor esi, r11d
or r11d, r14d
xor esi, 0x93a37d18
mov edi, esi
xor edi, r11d
or esi, r11d
not esi
or esi, edi
mov r11d, ecx
not r11d
mov edi, ecx
and edi, 0x24ba00a8
mov ebx, r11d
and ebx, 0x10401003
mov r14d, r11d
and r14d, 0x9046a00
and ecx, 0xc2018554
add edi, ebx
add edi, 0x9046a00
add ecx, r14d
add ecx, 0x24ba00a8
xor ecx, edi
xor ecx, esi
xor ecx, 0xcb05ef54
or r11d, esi
not r11d
or r11d, ecx
mov dword [r10], r11d
add r10, 4
mov r14d, dword [rdx]
add rdx, 4
mov ecx, r9d
shr r14d, cl
cmp rdx, r15
jne 0x180015ba0
lea rdi, [r10 - 4]
mov r12, qword [rsp + 0x20]
mov rcx, qword [r8 + 8]
cmp rcx, r9
jae 0x180015ead
test rcx, rcx
je 0x180016637
mov edx, dword [r15]
mov ecx, edx
and ecx, 0x492b1e6a
or ecx, 0x34846010
mov r8d, edx
and r8d, 0xb6d4e195
xor r8d, dword [rsp + 0x2c]
xor r8d, ecx
xor edx, r8d
xor r8d, 0x34846010
xor edx, 0xcb7b9fef
or edx, r8d
not edx
mov ecx, eax
shl edx, cl
mov eax, dword [r10]
mov ecx, eax
xor ecx, 0x69171a5b
mov r15, qword [rsp + 0x30]
mov r8d, r15d
xor r8d, 0x69171a5b
mov r9d, eax
xor r9d, 0x96e8e5a4
and r9d, r8d
or eax, r15d
xor r15d, 0x96e8e5a4
and r15d, ecx
or r15d, r9d
not r15d
and r15d, eax
or r15d, r14d
mov r9d, r15d
not r9d
mov r11d, r9d
or r11d, 0xf0c7f8a5
mov ecx, r11d
and ecx, 0xe4f0e0d3
mov eax, r15d
and eax, 0xb080708
or eax, ecx
mov r8d, r9d
and r8d, 0xf0c7f8a5
mov ecx, eax
xor ecx, 0xe4f0e0d3
mov esi, r9d
and esi, 0x80850004
mov edi, r15d
and edi, 0x30428880
add esi, edi
add esi, 0x5120
mov edi, r15d
and edi, 0x40007021
mov ebx, ecx
and ebx, 0x4300102
mov r14d, eax
and r14d, 0xaa000040
and r11d, 0x1080618
add ebx, r14d
add ebx, 0x1080618
add r11d, edi
add r11d, 0x14b00182
xor r11d, esi
xor r11d, ebx
xor r11d, 0xc4f2a843
and r9d, 0x90c190a0
mov esi, r15d
and esi, 0x60066805
or esi, r9d
mov r9d, ecx
and r9d, 0x3300718
and eax, 0x6c086043
or eax, r9d
xor eax, esi
or ecx, r8d
xor eax, 0xfbf9f7b9
and eax, ecx
or eax, r11d
xor eax, edx
mov ecx, eax
xor ecx, 0xf38075a
and r15d, edx
mov edx, r15d
not edx
mov r8d, eax
xor r8d, 0x6d2d0d4d
mov r9d, r15d
and r9d, 0x8686440
mov r11d, edx
and r11d, 0x958291a8
add r9d, r11d
add r9d, 0x20100207
mov r11d, r15d
and r11d, 0x62150a17
xor r11d, r9d
mov r9d, r11d
xor r9d, 0x28786647
xor r15d, eax
xor eax, 0x92d2f2b2
and eax, r9d
xor r11d, 0xd78799b8
and r11d, r8d
or r11d, eax
and edx, ecx
xor r15d, 0xf0c7f8a5
or r15d, edx
not r15d
or r15d, r11d
mov dword [r10], r15d
jmp 0x180016686
and r14d, dword [rdi]
or r14d, edx
mov dword [rdi], r14d
jmp 0x180016686
mov edx, dword [r15]
mov ecx, eax
shl edx, cl
or edx, r14d
mov dword [r10], edx
cmp qword [r8 + 8], r9
je 0x180016686
mov edx, dword [r15]
mov ecx, r9d
shr edx, cl
mov r11, qword [rsp + 0x30]
mov eax, r11d
not eax
mov ecx, r11d
and ecx, 0x44482275
mov r8d, eax
and r8d, 0x3bb7dd8a
or r8d, ecx
mov ecx, r8d
xor ecx, 0xbbb7dd8a
mov r9d, ecx
and r9d, 0x2d341287
mov r10d, r8d
and r10d, 0x52cbed78
or r10d, r9d
mov r9d, r10d
xor r9d, 0x9283cd08
xor r10d, 0xcc25b949
and r10d, r9d
and ecx, 0x1a861401
mov r9d, r8d
and r9d, 0x44206040
add ecx, r9d
add ecx, 0x19028e
xor ecx, r10d
mov r9d, ecx
xor r9d, 0x5e863441
xor r8d, 0x44002041
and r8d, r10d
or r8d, r9d
and ecx, 0xa1598bbe
and r8d, 0x5ea67441
or r8d, ecx
mov ecx, dword [rdi + 8]
mov r9d, ecx
or r9d, r11d
and r11d, 0x1029f00b
and eax, 0x6fd60ff4
or eax, r11d
xor eax, ecx
mov ecx, eax
xor ecx, 0x1029f00b
or ecx, r9d
xor eax, r9d
xor eax, 0xefd60ff4
and eax, ecx
mov ecx, edx
and ecx, 0x56693477
or ecx, 0x2182cb88
and edx, 0xa996cb88
xor edx, ecx
mov r9d, edx
xor r9d, 0xde7d3477
mov r11d, r8d
xor r11d, 0x5ebf76cf
mov r10d, edx
xor r10d, 0x2182cb88
mov ecx, r8d
xor ecx, 0xa1408930
mov esi, edx
xor esi, 0x4df16d24
and esi, r10d
xor r8d, 0xcd332f9c
mov ebx, r10d
and ebx, 0x28322428
and edx, 0x44418284
add edx, ebx
add edx, 0x910c4943
xor edx, esi
mov esi, ecx
or esi, r11d
and esi, r8d
xor esi, edx
xor esi, 0xfd7f6d6f
mov edx, r9d
and edx, 0xe9a0d45d
and r10d, 0x165f2ba2
or r10d, edx
or r9d, r11d
and r11d, 0xe9a0d45d
and ecx, 0x165f2ba2
or ecx, r11d
xor ecx, r10d
not ecx
and ecx, r9d
or ecx, esi
mov edx, ecx
not edx
mov r8d, ecx
xor r8d, 0x4ba373d5
mov r11d, edx
and r11d, 0xb45c8c2a
or r11d, r8d
mov r8d, eax
mov ebx, ecx
and ebx, 0xb41c0400
mov r14d, edx
and r14d, 0x40882a
mov r9d, r11d
mov r10d, edx
and r10d, 0x800c0008
mov esi, ecx
and esi, 0x34508c22
or esi, r10d
xor esi, r11d
mov r10d, ecx
or r10d, 0x4ba373d5
and r10d, r11d
and r11d, 0xff1c35c1
and r9d, 0xe3ca3e
or r9d, 0x62042481
xor r9d, r11d
mov ebp, r9d
xor ebp, 0x20e7ce3e
lea r15d, [rbx + r14]
add r15d, 0x4b0031c1
mov r11d, ebx
or r11d, r14d
xor r9d, 0x9d181140
and r9d, r15d
xor r11d, 0xb4ffce3e
and r11d, ebp
mov ebx, eax
mov ebp, eax
mov r14d, ecx
and ecx, eax
not eax
xor r8d, 0x4ba373d5
xor esi, 0xcbaf73dd
or r10d, esi
not r10d
or r10d, r11d
or r10d, r9d
and ebx, 0x549962d9
xor ebx, 0x14180008
xor ebp, 0x1f3a110c
and ebp, r8d
or ebp, ebx
mov r8d, r10d
and r8d, 0x549962d9
or r8d, 0xaa040102
and r10d, 0xab669d26
xor r10d, ebp
mov r12, qword [rsp + 0x20]
xor r10d, r8d
and r14d, eax
and edx, eax
or edx, ecx
xor edx, r14d
mov eax, r10d
xor eax, 0x1629c24
or eax, edx
xor edx, r10d
xor edx, 0xfe9d63db
mov ecx, edx
xor ecx, eax
or edx, eax
not edx
or edx, ecx
mov dword [rdi + 8], edx
jmp 0x180016686
mov r10, rdi
mov rcx, qword [rsp + 0x40]
mov r9, r15
mov rax, qword [rsp + 0x50]
mov rax, qword [rax + 8]
test rax, rax
mov r12, qword [rsp + 0x20]
mov r13, qword [rsp + 0x38]
je 0x180016686
mov r15, r9
mov r9d, dword [r9]
mov edx, dword [rsp + 0x2c]
mov edi, edx
not edi
mov r11d, edi
and r11d, 0x2450ab34
and edx, 0xdbaf54ca
or edx, r11d
mov r11d, edx
xor r11d, 0xdbaf54ca
mov r8d, edx
and r8d, 0x21b08182
xor edx, 0x3e15fd48
and edx, r11d
and r11d, 0xc40a2800
or r11d, r8d
xor r11d, 0xe41aa900
or edx, r11d
xor edx, r9d
xor edx, 0xe5baa982
and edx, r9d
shl edx, cl
cmp rax, r13
jae 0x1800163ec
mov r13, qword [rsp + 0x30]
mov eax, r13d
not eax
mov ecx, eax
and ecx, 0xec28544
mov r11d, r13d
and r11d, 0x713d7abb
or r11d, ecx
xor r11d, 0x8acb7ab6
or r11d, eax
mov ecx, eax
and ecx, 0x6a458b69
mov eax, r13d
and eax, 0x15ba7496
or eax, ecx
mov r9d, eax
xor r9d, 0x15ba7496
mov r15, qword [rsp + 0x48]
mov ecx, r15d
and ecx, 0x1f9fbec2
mov r14d, esi
and r14d, 0xe060413c
or r14d, ecx
xor r14d, 0x1b964131
or r14d, r15d
mov ecx, eax
xor ecx, 0xea458b69
mov r8d, r9d
and r8d, 0x4c9964b0
mov edi, ecx
and edi, 0x33669b4f
or edi, r8d
xor edi, 0xc8909b42
mov r8d, ecx
and r8d, 0x409fff2
or r8d, edi
mov edi, esi
and edi, 0xfbf6000c
or edi, 0x840
mov ebx, r14d
and ebx, 0x9df0cbc8
xor ebx, edi
and r14d, 0x620f3436
or r14d, 0x8a08880
xor r14d, ebx
mov edi, r8d
and edi, 0x7f854d9a
mov ebx, r8d
and ebx, 0x7ab265
or ebx, 0xcc000d02
xor ebx, edi
mov edi, ebx
mov dword [rsp + 0x38], esi
mov esi, r11d
and esi, 0x7f854d9a
or r8d, r11d
and r11d, 0x7ab265
or r11d, 0xfe040c10
xor r11d, esi
mov esi, r11d
xor esi, 0x7e7ebe75
xor ebx, 0xb3854098
and ebx, esi
mov r12, qword [rsp + 0x20]
xor edi, 0x4c7abf67
xor r11d, 0x8181418a
and r11d, edi
not r8d
or r8d, r11d
mov r11d, r14d
xor r11d, 0xc004002
or r8d, ebx
xor r14d, 0xf1afbf78
and r11d, r14d
and r11d, 0xfd06c04a
or r11d, r14d
mov esi, r8d
and esi, 0xfd06c04a
or esi, 0x2e81e21
and r8d, 0x2f93fb5
xor r8d, esi
mov esi, r8d
xor esi, 0xffeede6b
xor r8d, 0x112194
and r8d, r11d
not r11d
and r11d, esi
mov esi, r15d
and esi, 0xa0002080
mov ebx, dword [rsp + 0x38]
mov edi, ebx
and edi, 0x6e00134
add esi, edi
add esi, 0x401e5a4a
mov edi, ebx
and edi, 0x401e5a4a
and r15d, 0x19018400
add edi, r15d
add edi, 0xa0002080
xor eax, 0x335a5522
and eax, r9d
and r9d, 0x264001b0
and r13d, 0x80a02004
add r9d, r13d
add r9d, 0x49198608
xor eax, edi
xor eax, r9d
xor eax, esi
or ecx, ebx
xor eax, 0x90a67847
and eax, ecx
or eax, r8d
or eax, r11d
and ebp, eax
or ebp, edx
mov dword [r10], ebp
jmp 0x180016686
mov rcx, qword [rsp + 0x48]
and ecx, 0x100e9000
mov eax, esi
and eax, 0x504380
and esi, 0xefa12c7e
add eax, ecx
add eax, 0xcb802412
xor eax, esi
mov ecx, eax
xor ecx, 0xdb8eb413
mov r9d, eax
xor r9d, 0x1b7e167c
and r9d, ecx
and eax, 0xc0f0a26e
xor eax, 0x70026c
or eax, r9d
xor eax, ebp
or ecx, ebp
mov r9d, eax
xor r9d, 0x3f0f5d90
or r9d, ecx
xor ecx, eax
xor ecx, 0xc0f0a26f
and ecx, r9d
mov eax, ecx
not eax
mov r9d, edx
not r9d
mov r11d, eax
or r11d, 0x407a082
mov esi, edx
and esi, 0x52a05f3d
mov ebp, edx
xor ebp, 0x10200e18
and ebp, esi
not esi
mov ebx, ecx
and ebx, 0xad5fa0c2
mov r14d, ecx
or r14d, 0x52a05f3d
and r11d, 0x1407ad92
mov r12d, ecx
and r12d, 0x42a0522d
or r12d, r11d
mov r11d, r12d
xor r11d, 0xebf8526d
xor ebx, 0x25861663
and ebx, r14d
mov r14d, eax
and r14d, 0x25060042
or r14d, ebx
xor r12d, 0xdcde5b27
and r12d, r11d
or eax, 0xeddff6f7
mov r11d, eax
and r11d, 0xe4900b9f
mov ebx, ecx
and ebx, 0x12200000
or ebx, r11d
not eax
and eax, r12d
and r12d, 0x5ae9ffbd
xor r12d, ebx
xor r12d, 0x64800b9f
or eax, r12d
xor eax, r14d
mov r11d, eax
xor r11d, 0x40004014
mov ebx, edx
or ebx, 0x52a05f3d
mov r14d, ebx
and r14d, 0x1c7b0e98
mov r12d, r9d
and r12d, 0xa104a042
or r12d, r14d
mov r14d, esi
and r14d, 0x1c7b0e98
or ebp, r14d
xor ebp, r12d
and r9d, 0xa8492080
and ebx, 0x5169552
or ebx, r9d
mov r9d, edx
and r9d, 0x52a04a2d
and esi, 0x5169552
or esi, r9d
xor esi, ebx
and ecx, edx
xor edx, 0x52a05f3d
or edx, esi
not edx
or edx, ebp
mov r12, qword [rsp + 0x20]
xor eax, 0xbfffbfeb
and eax, edx
not edx
and edx, r11d
or edx, ecx
or edx, eax
mov dword [r10], edx
mov rax, qword [rsp + 0x50]
cmp qword [rax + 8], r13
je 0x180016686
mov eax, dword [r15]
mov ecx, dword [rsp + 0x2c]
and ecx, 0x7d80f2de
and edi, 0x827f0d20
or edi, ecx
mov ecx, edi
xor ecx, 0x827f0d21
mov edx, edi
xor edx, 0x8b8f4195
and edx, ecx
and edi, 0x9f04cb4
xor edi, 0x9804094
or edi, edx
mov ecx, edi
xor ecx, eax
xor ecx, 0xf60fb34b
or ecx, eax
xor edi, 0x9f04cb4
and edi, ecx
mov ecx, r13d
shr edi, cl
mov eax, dword [r10 + 4]
mov ecx, eax
not ecx
mov r11, qword [rsp + 0x30]
mov edx, r11d
not edx
mov r8d, edx
and r8d, 0x59200408
mov r9d, r11d
and r9d, 0x4040270
or r9d, r8d
and edx, 0x20d15104
and r11d, 0x20aa883
add edx, r11d
add edx, 0x18000038
xor edx, r9d
xor eax, edx
xor edx, 0x1e0eaacb
and edx, ecx
xor eax, 0xe1f15534
or eax, edx
not eax
or eax, edi
mov dword [r10 + 4], eax
jmp 0x180016686
mov r9, qword [rsp + 0x30]
and r9d, dword [r10]
mov eax, r9d
and eax, r14d
xor r9d, r14d
mov ecx, eax
not ecx
mov edx, eax
and edx, 0x89000
mov r8d, ecx
and r8d, 0x50348c0
and ecx, 0xd050242e
and eax, 0x2aa40311
add edx, r8d
add edx, 0xd050242e
add eax, ecx
add eax, 0x89000
xor eax, edx
xor eax, r9d
xor eax, 0x50bd8c0
mov dword [r10], eax
mov rax, r12
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret