Function at 0x18001a950
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov rax, rdx
mov rdx, qword [rdx]
mov r10, qword [rax + 8]
mov r15, qword [r8]
mov r13, qword [r8 + 8]
cmp rdx, r15
jne 0x18001a98a
cmp r13, r10
jne 0x18001a98a
movups xmm0, xmmword [r9]
movups xmmword [rcx], xmm0
mov rax, rcx
jmp 0x18001bf8b
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 0x18001a9d6
neg rax
cmp rsi, rax
jae 0x18001a9d6
mov rax, r11
shr rax, 5
shl rax, 2
add rax, qword [rcx]
movabs rsi, 0xe000000000000000
add rsi, rax
jmp 0x18001a9e4
mov rsi, r11
shr rsi, 3
and rsi, 0xfffffffffffffffc
add rsi, qword [rcx]
mov qword [rcx], rsi
and r11d, 0x1f
mov qword [rsp + 0x28], rcx
mov qword [rcx + 8], r11
mov ebx, 0xffffffff
mov r12d, 0xffffffff
mov ecx, r10d
shl r12d, cl
mov rax, qword [r9 + 8]
mov ecx, eax
neg cl
mov r14d, 0xffffffff
shr r14d, cl
xor r9d, r9d
test rax, rax
cmove r14d, r9d
mov ecx, r13d
neg cl
mov ebp, 0xffffffff
shr ebp, cl
mov ecx, r11d
shl ebx, cl
cmp r11, 1
sbb r9, r9
lea rsi, [rsi + r9*4]
cmp rdx, r15
je 0x18001ad1d
cmp rdi, rsi
je 0x18001adce
mov ecx, r10d
and ecx, 7
mov r11, r10
and r11, 0xfffffffffffffff8
movabs rsi, 0xfe8f2b2cd5c87be0
or rsi, rcx
movabs r9, 0x170d4d32a378418
xor r9, r11
xor r9, rsi
and r9, r10
mov ecx, eax
and ecx, 7
cmp r9, rcx
jne 0x18001ae20
mov ecx, r13d
and ecx, 7
mov r8, r13
and r8, 0xfffffffffffffff8
movabs rbx, 0x2f6433928dace240
or rcx, rbx
xor rcx, r8
movabs r8, 0xd09bcc6d72531db8
xor r8, rcx
or r8, r13
or rbx, 7
xor rbx, r13
xor rbx, rcx
and rbx, r8
sub r10, r9
shr r10, 3
add rdx, r10
sub r13, rbx
shr r13, 3
add r15, r13
shr rax, 3
add rdi, rax
test r9, r9
je 0x18001aba2
mov cl, 8
sub cl, r9b
mov eax, 0xff000000
shr eax, cl
movzx ecx, byte [rdi]
sar eax, 0x18
mov r8d, ecx
not r8d
mov r10d, r8d
and r10d, 0x14031088
mov r11d, ecx
and r11d, 0x70
mov esi, ecx
and esi, 7
add r10d, r11d
add r10d, 0xeb348a03
xor r10d, esi
mov r11d, r10d
xor r11d, 0x14c3718c
mov esi, eax
xor esi, 0x140b14f8
xor r10d, 0xeb3c8e73
and r10d, esi
xor eax, 0xebf4eb07
and eax, r11d
or eax, r10d
mov r10d, eax
not r10d
and r10d, r8d
xor eax, ecx
or eax, r10d
mov r8d, 0xff
mov ecx, r9d
shl r8d, cl
movzx ecx, byte [rdx]
and r8d, ecx
mov ecx, r8d
xor ecx, eax
mov r9d, r8d
not r9d
or r9d, eax
xor eax, 0xa3
mov r10d, r8d
xor r10d, 0xa3
or r10d, eax
xor r8d, 0x5c
or r8d, ecx
and r8d, r9d
and r8d, r10d
not r8b
mov byte [rdi], r8b
inc rdx
inc rdi
mov r12, qword [rsp + 0x28]
mov r14, r15
sub r14, rdx
mov rcx, rdi
mov r8, r14
call sub.VCRUNTIME140.dll_memmove
test rbx, rbx
je 0x18001bf88
mov eax, 0xff
mov ecx, ebx
shl eax, cl
movzx edx, byte [rdi + r14]
mov cl, 8
sub cl, bl
mov r8d, 0xff000000
shr r8d, cl
and eax, edx
movzx ecx, byte [r15]
sar r8d, 0x18
mov edx, ecx
or edx, r8d
not edx
mov r9d, ecx
xor r9d, 0xe88d282b
mov r10d, r8d
xor r10d, 0x1772d72b
xor ecx, 0x1772d7d4
and ecx, r10d
xor r8d, 0xe88d28d4
and r8d, r9d
or r8d, ecx
movzx edx, dl
or edx, r8d
mov r8d, eax
and r8d, 0xffffff98
or r8d, 0x85b0147
mov ecx, eax
and ecx, 0x67
xor ecx, r8d
mov r8d, ecx
xor r8d, 0xf7a4feb8
xor ecx, 0x85b0147
mov r9d, ecx
and r9d, 0xffffffde
and ecx, edx
or ecx, r8d
and r8d, 0x26bfba21
or r8d, r9d
mov r9d, r8d
xor r9d, 0xf9bdc2af
and r8d, 0x602388e
xor r8d, 0x6023800
or r8d, r9d
and eax, 0xffffff8e
not r8d
or r8d, eax
xor edx, 0xdf02788e
mov eax, r8d
xor eax, 0xa1879aab
mov r9d, edx
and r9d, 0xa1879aab
or r9d, 0x12084140
and edx, 0x5e786554
xor edx, r9d
mov r9d, edx
xor r9d, 0xb38fdbeb
xor r8d, 0x5e786554
and r8d, r9d
xor edx, 0x4c702414
and edx, eax
or edx, r8d
mov eax, ecx
not eax
mov r8d, eax
and r8d, 0x69
mov r9d, ecx
and r9d, 0x11016
mov r10d, eax
and r10d, 0xffffff80
or r8d, 0x11016
add r9d, r10d
add r9d, 0x608e8c69
xor r9d, r8d
xor r9d, edx
xor eax, edx
not edx
and edx, ecx
or edx, eax
xor r9d, 0x96
mov eax, r9d
xor eax, edx
or r9d, edx
not r9d
or r9d, eax
mov byte [rdi + r14], r9b
jmp 0x18001bf88
mov dword [rsp + 0x24], ebx
mov ecx, r12d
and ecx, 0x7fffffff
mov r9d, ecx
xor r9d, 0x391e88cb
mov r15d, ebp
and r15d, 0xfffffffe
mov ebx, r15d
xor ebx, 0xb91e88ca
mov r13d, ecx
xor r13d, 0xc6e17734
and r13d, ebx
xor ecx, r15d
xor r15d, 0x46e17735
and r15d, r9d
or r15d, r13d
xor ecx, 0x80000001
and ebp, r12d
or ebp, ecx
not r15d
and r15d, ebp
cmp rax, r10
jae 0x18001b0d0
mov ecx, 0xaa08066c
add r10d, ecx
sub r10d, eax
mov r9d, dword [rdx]
mov eax, r9d
and eax, 0xa3dbf260
or eax, 0xc24080e
and r9d, 0x5c240d9f
xor r9d, eax
mov eax, r9d
xor eax, 0xf3dbf7f1
mov ecx, r15d
not ecx
and ecx, eax
xor r9d, r15d
xor r9d, 0xc24080e
or r9d, ecx
not r9d
add r10b, 0x94
mov ecx, r10d
shr r9d, cl
jmp 0x18001b0de
cmp rax, r10
jae 0x18001b299
sub r10d, eax
mov eax, dword [rdx]
mov ecx, r12d
xor ecx, 0x86724a61
xor r12d, 0x6724a61
and r12d, ecx
mov ecx, eax
xor ecx, r12d
xor r12d, 0x86724a61
or r12d, eax
mov eax, ecx
xor eax, 0x798db59e
or eax, r12d
xor r12d, ecx
xor r12d, 0x86724a61
and r12d, eax
mov ecx, r10d
shr r12d, cl
jmp 0x18001b2d2
mov dword [rsp + 0x24], ebx
mov r13d, dword [rdi]
cmp rax, r10
jae 0x18001b47f
mov qword [rsp + 0x40], r8
movabs r8, 0x733b797c9bf667f0
add r10, r8
sub r10, rax
movabs rcx, 0x8cc4868364099810
add rcx, r10
mov esi, 0xffffffff
shr esi, cl
sub r8, r10
and r12d, dword [rdx]
mov qword [rsp + 0x38], rcx
shr r12d, cl
and r13d, r14d
mov ecx, r13d
not ecx
mov r11d, r13d
or r11d, 0x2e9a0c2f
mov r10d, r11d
not r10d
and ecx, 0xd165f3d0
mov ebx, r13d
xor ebx, 0x2e9a0c2f
or ebx, ecx
mov r14d, r11d
and r14d, 0x1165420a
mov ecx, r10d
and ecx, 0xc000b1d0
or ecx, r14d
and r10d, 0x5065d200
mov r14d, r11d
and r14d, 0xa30a25dc
or r14d, r10d
mov r10d, r12d
not r10d
xor ecx, ebx
xor r14d, ebx
and ebx, r11d
mov r11d, r12d
xor r11d, 0x416573c0
and r11d, r10d
xor r14d, 0x5cf5da23
or ebx, r14d
xor ecx, 0x1165420a
mov r14d, ecx
xor r14d, ebx
or ecx, ebx
not ecx
or ecx, r14d
mov ebx, r12d
and ebx, 0x51007140
mov r14d, r10d
and r14d, 0x80658290
or r14d, ebx
mov ebx, r14d
xor ebx, 0xaeff8ebf
or r10d, 0xd165f3d0
xor r14d, 0xc198f17a
and r14d, ebx
mov ebx, r10d
and ebx, 0x20
and r11d, 0xd165f3d0
or r11d, r14d
and r10d, 0x2a432c04
mov r14d, r12d
and r14d, 0x98000a
add ebx, r14d
add ebx, 0x2a432c04
mov r14d, r12d
and r14d, 0x4000001
add r10d, r14d
add r10d, 0x1008800a
xor r10d, ebx
xor r10d, r11d
xor r10d, ecx
mov ecx, r10d
xor ecx, 0x80900010
and r13d, r12d
mov eax, ecx
and eax, r13d
xor r10d, ecx
xor r10d, 0x7f6fffef
and r10d, r13d
xor eax, ecx
add r8, 0x20
xor eax, r10d
mov ecx, esi
not ecx
mov dword [rdi], eax
add rdx, 4
cmp rdx, r15
mov qword [rsp + 0x30], rcx
je 0x18001b87d
mov r10d, esi
and r10d, 0x5332e62a
and ecx, 0xaccd19d4
or ecx, r10d
mov r10d, ecx
xor r10d, 0x5332e62a
mov r9d, esi
xor r9d, 0x412a49f9
mov r11d, esi
xor r11d, 0xbed5b606
mov r14d, ecx
and r14d, 0x30d94090
xor ecx, 0xaaeba692
and ecx, r10d
and r10d, 0xc9000028
lea ebx, [r10 + r14]
add r10d, r14d
add r10d, 0x4048242
xor r10d, ecx
xor r10d, 0xedcd82fb
xor ebx, 0xe9c900b8
and ebx, ecx
or ebx, r10d
mov r14d, ebx
xor r14d, 0xf9d940b9
mov r13, qword [rsp + 0x38]
nop word cs:[rax + rax]
mov r10d, dword [rdx]
mov ecx, r8d
shl r10d, cl
mov ecx, eax
and ecx, 0xbed5b606
mov r12d, eax
and r12d, 0x412a49f9
or r12d, 0xae900002
xor r12d, ecx
mov ecx, r12d
xor ecx, 0xefba49fb
and ecx, r11d
xor r12d, 0x1045b604
and r12d, r9d
or eax, esi
not eax
and eax, 0xfffffffe
or eax, ecx
or eax, r12d
not eax
or eax, r10d
mov dword [rdi], eax
mov eax, dword [rdi + 4]
mov ecx, eax
or ecx, r14d
mov r10d, ebx
xor r10d, eax
xor r10d, 0x626bf46
and r10d, eax
not eax
mov r12d, r14d
and r12d, eax
xor eax, ecx
xor eax, r10d
mov r10d, dword [rdx]
mov ecx, r13d
shr r10d, cl
or eax, r12d
not eax
or eax, r10d
lea r10, [rdi + 4]
mov dword [rdi + 4], eax
add rdx, 4
mov rdi, r10
cmp rdx, r15
jne 0x18001b030
jmp 0x18001b885
sub eax, r10d
mov r9d, dword [rdx]
and r9d, r15d
mov ecx, eax
shl r9d, cl
mov r12, qword [rsp + 0x28]
cmp rdi, rsi
mov esi, dword [rsp + 0x24]
je 0x18001b18d
mov ecx, dword [rdi]
mov eax, ecx
and eax, 0x3c839057
or eax, 0xc35c4908
and ecx, 0xc37c6fa8
xor ecx, eax
mov r10d, ecx
xor r10d, 0xc35c4908
xor ecx, r10d
mov eax, r10d
or eax, r14d
xor ecx, 0x3ca3b6f7
and ecx, r14d
xor eax, r10d
xor eax, ecx
mov ecx, eax
and ecx, r9d
xor eax, r9d
mov r9d, ecx
and r9d, 0x45c1d3ac
or r9d, 0x23c0403
and ecx, 0xba3e2c53
xor ecx, r9d
mov r9d, ecx
xor r9d, 0x47fdd7af
mov r10d, eax
xor r10d, 0x45c1d3ac
xor ecx, 0xb8022850
and ecx, r10d
xor eax, 0xba3e2c53
and eax, r9d
or eax, ecx
mov dword [rdi], eax
mov ecx, dword [r8 + 8]
sub ecx, r11d
and r15d, dword [rdx]
shr r15d, cl
and esi, dword [rdi + 4]
or esi, r15d
mov dword [rdi + 4], esi
jmp 0x18001bf88
xor eax, eax
test r11, r11
cmove esi, eax
mov eax, r14d
not eax
mov ecx, r14d
xor ecx, eax
and ecx, esi
xor ecx, eax
not ecx
or ecx, eax
mov edx, ecx
not edx
and eax, 0xc602c0d
mov r8d, r14d
and r8d, 0x808b00e2
and r14d, 0x7314d310
add eax, r8d
add eax, 0x2214d210
xor eax, r14d
xor eax, esi
mov r8d, eax
xor r8d, 0xd18b01e2
mov r10d, eax
xor r10d, 0x23d0a7b1
and r10d, r8d
and eax, 0xf25ba653
mov r11d, edx
and r11d, 0x90448a0
mov esi, ecx
and esi, 0x4a0110c
or r8d, ecx
and ecx, 0x40538002
and edx, 0xb2082651
or edx, ecx
lea ecx, [rsi + r11]
add ecx, 0x40538002
xor ecx, edx
xor eax, 0x2250a611
or eax, r10d
xor eax, ecx
mov ecx, dword [rdi]
xor eax, 0xf6fbb75f
and eax, r8d
mov r8d, ecx
and r8d, 0xeff044e9
mov edx, ecx
and edx, 0x100fbb16
or edx, 0x64b004c8
xor edx, r8d
mov r8d, edx
xor r8d, 0x74bfbfde
mov r10d, eax
not ecx
and ecx, eax
and eax, 0xeff044e9
or eax, 0x100f2210
and r10d, 0x100fbb16
xor r10d, eax
mov eax, r10d
xor eax, 0xffff66f9
xor edx, 0x8b404021
and edx, eax
xor r10d, 0x9906
and r10d, r8d
or ecx, r10d
or ecx, edx
not ecx
or r9d, ecx
mov dword [rdi], r9d
jmp 0x18001bf88
sub eax, r10d
mov ecx, dword [rdx]
mov edx, ecx
xor edx, 0x9573f99
mov r8d, r12d
xor r8d, 0x76a8c066
mov r9d, ecx
xor r9d, 0x76a8c066
and r9d, r8d
xor r12d, 0x89573f99
and r12d, edx
or r12d, r9d
and r12d, ecx
mov ecx, eax
shl r12d, cl
xor eax, eax
test r11, r11
cmove ebx, eax
or r14d, ebx
test r13, r13
je 0x18001b689
sub r11d, r13d
and ebp, dword [r15]
mov ecx, r11d
shl ebp, cl
and r14d, dword [rdi]
mov eax, r14d
and eax, r12d
xor r14d, r12d
mov ecx, eax
xor ecx, 0xbecf39e2
mov edx, r14d
xor edx, 0xbecf39e2
xor eax, 0x4130c61d
and eax, edx
xor r14d, 0x4130c61d
and r14d, ecx
or r14d, eax
mov eax, r14d
not eax
mov r8d, r14d
and r8d, 0x2facac94
mov ecx, r14d
and ecx, 0x35323
mov edx, eax
and edx, 0xd0500048
or edx, ecx
mov ecx, edx
xor ecx, 0x35323
mov r9d, ecx
mov r10d, ecx
or ecx, r8d
not r8d
and r9d, 0x31121
mov r11d, edx
and r11d, 0x50104000
mov esi, r14d
and esi, 0x80400040
mov ebx, eax
and ebx, 0x20a
add r9d, r11d
add r9d, 0x80400040
lea r11d, [rbx + rsi]
add r11d, 0x2031131
mov esi, r8d
and esi, 0x8608208
mov ebx, r14d
and ebx, 0x5002080
mov r15d, r14d
and r15d, 0x228c0c14
xor r15d, r11d
lea r11d, [rbx + rsi]
add r11d, 0x2885005
xor r11d, r15d
xor r11d, r9d
and r10d, 0x80434020
and edx, 0x5010134b
or edx, r10d
mov r9d, r14d
and r9d, 0x2d888000
and r8d, 0x52343fdf
or r8d, r9d
xor r8d, edx
xor r8d, 0x52342cdc
not ecx
or ecx, r8d
xor r11d, 0xf7147cc3
mov edx, r11d
xor edx, ecx
or r11d, ecx
not r11d
or r11d, edx
mov ecx, ebp
xor ecx, 0xd053536b
mov edx, r11d
not edx
and edx, ecx
xor ecx, r11d
and ecx, r11d
and eax, 0x81b28630
mov r8d, r14d
and r8d, 0x2011101
add eax, r8d
add eax, 0xc4c004a
mov r8d, r14d
and r8d, 0x7c4c68ce
xor r8d, eax
mov eax, r8d
xor eax, 0xf1b2eeb4
mov r9d, ebp
xor r9d, 0x7c4c68ce
xor r8d, 0xe4d114b
and r8d, r9d
or r14d, ebp
xor ebp, 0x83b39731
and ebp, eax
or ebp, r8d
not ebp
and ebp, r14d
or ebp, edx
or ebp, ecx
mov dword [rdi], ebp
mov r12, qword [rsp + 0x28]
jmp 0x18001bf88
movabs r11, 0x56f77451ec848610
add rax, r11
sub rax, r10
mov r10d, 0x80000000
xor r10d, dword [rdx]
sub r11, rax
and r10d, r12d
add r10d, 0x80000000
add eax, 0x137b79f0
mov ecx, eax
shl r10d, cl
lea r9, [r11 + 0x20]
mov ecx, r13d
and ecx, 0x21a7b61c
or ecx, 0x8e100063
mov esi, r13d
and esi, 0xde5849e3
xor esi, r14d
xor esi, ecx
mov ecx, esi
xor ecx, 0x71efff9c
or ecx, r13d
xor esi, r13d
xor esi, 0x8e100063
and esi, ecx
mov ebx, r10d
not ebx
mov ecx, esi
and ecx, r10d
mov r14d, r10d
and r14d, 0x1a20077
mov r12d, ebx
and r12d, 0x6a108688
and ebx, 0x90014900
and r10d, 0x44c3000
add r14d, r12d
add r14d, 0x90014900
add ebx, r10d
add ebx, 0x1a20077
xor ebx, r14d
xor ebx, esi
mov esi, ebx
xor esi, 0x6bb286ff
mov r10d, ebx
xor r10d, 0x8ec346ac
and r10d, esi
mov r14d, esi
and r14d, 0x2571c002
and ebx, 0xc0000051
add ebx, r14d
add ebx, 0x18882600
xor r10d, ecx
xor r10d, ebx
mov ebx, esi
xor ebx, ecx
or esi, ecx
not esi
or esi, ebx
xor r10d, 0xa777d9ae
mov ecx, r10d
xor ecx, esi
or r10d, esi
not r10d
or r10d, ecx
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 0x18001b5c8
nop word cs:[rax + rax]
mov r11d, dword [rdx]
mov ecx, eax
shl r11d, cl
or r11d, r14d
mov dword [r10], r11d
add r10, 4
mov r14d, dword [rdx]
add rdx, 4
mov ecx, r9d
shr r14d, cl
cmp rdx, r15
jne 0x18001b5a0
lea rdi, [r10 - 4]
mov r12, qword [rsp + 0x28]
mov esi, dword [rsp + 0x24]
mov rcx, qword [r8 + 8]
cmp rcx, r9
jae 0x18001b76a
test rcx, rcx
je 0x18001bf1e
mov ecx, dword [r15]
mov edx, ecx
not edx
mov r8d, edx
and r8d, 0xa4502029
mov r9d, ecx
and r9d, 0x402004d4
mov r11d, ecx
and r11d, 0x28fc302
and edx, 0x19001800
add r8d, r9d
add r8d, 0x28fc302
add edx, r11d
add edx, 0xa4502029
mov r9d, ebp
and r9d, 0x1b8fdb02
or r9d, 0xe4000064
or ecx, ebp
and ebp, 0xe47024fc
xor ebp, r9d
xor ebp, edx
xor ebp, r8d
xor ebp, 0x702498
and ebp, ecx
mov ecx, eax
shl ebp, cl
mov eax, dword [r10]
mov ecx, eax
xor ecx, 0x28b928cc
mov edx, esi
xor edx, 0x5746d733
mov r8d, eax
xor r8d, 0x5746d733
and r8d, edx
xor esi, 0xa8b928cc
and esi, ecx
or esi, r8d
and esi, eax
or esi, r14d
or esi, ebp
jmp 0x18001bf85
mov ecx, dword [rdi]
mov edx, ecx
and edx, 0x9662d7e4
mov eax, ecx
and eax, 0x699d281b
or eax, 0x6211a4
xor eax, edx
or ecx, r14d
xor eax, r14d
xor eax, 0xff9dee5b
and eax, ecx
mov ecx, r12d
not ecx
mov r8d, r12d
and r8d, 0x99695a56
mov edx, ecx
and edx, 0x6696a5a9
or edx, r8d
not r8d
mov r9d, ecx
and r9d, 0x44940020
mov r10d, r12d
and r10d, 0x2202a589
or r10d, r9d
mov r9d, r8d
and r9d, 0x1d6d4052
mov r11d, r12d
and r11d, 0x80001a04
or r11d, r9d
xor r11d, r10d
xor r11d, 0x3f6fe5db
and ecx, 0x44140128
mov r9d, r12d
and r9d, 0x2282a481
mov r10d, r12d
and r10d, 0x1691842
and r8d, 0xba82e695
or r8d, r10d
add ecx, r9d
add ecx, 0x98004214
xor ecx, r8d
not ecx
and ecx, edx
or ecx, r11d
mov edx, eax
xor edx, 0x99695a56
mov r8d, ecx
xor r8d, eax
xor r8d, 0x6696a5a9
and r8d, ecx
or edx, ecx
not edx
and eax, r12d
or eax, edx
or eax, r8d
mov dword [rdi], eax
mov r12, qword [rsp + 0x28]
jmp 0x18001bf88
mov edx, dword [r15]
mov ecx, eax
shl edx, cl
or edx, r14d
mov dword [r10], edx
cmp qword [r8 + 8], r9
je 0x18001bf88
mov edx, dword [r15]
mov ecx, r9d
shr edx, cl
mov r9d, dword [rsp + 0x24]
mov ecx, r9d
not ecx
mov r8d, ecx
and r8d, 0x439a2349
mov eax, r9d
and eax, 0x3c65dcb6
or eax, r8d
not eax
or eax, ecx
and ecx, 0x6880202
mov r8d, r9d
and r8d, 0x7977fdfd
or r8d, ecx
mov ecx, r8d
and ecx, 0x3c65dcb6
xor ecx, 0x4000002
xor r8d, 0xbaeddeb4
or r8d, ecx
and eax, r8d
and r9d, dword [rdi + 8]
mov ecx, r9d
and ecx, 0xedc9bccb
and r9d, 0x12364334
or r9d, 0x1c0b489
xor r9d, ecx
mov ecx, r9d
xor ecx, 0xfe3f4b76
mov r8d, eax
xor eax, edx
not edx
xor r8d, 0x3c65dcb6
and r8d, edx
xor eax, 0xc39a2349
or eax, r8d
or ecx, eax
mov edx, r9d
xor edx, 0xf995f11a
mov r8d, eax
xor r8d, 0x7aaba6c
xor r9d, 0x66a0ee5
and r9d, r8d
xor eax, 0xf8554593
and eax, edx
or eax, r9d
mov edx, ecx
xor edx, 0xa48301eb
mov r8d, ecx
mov r9d, eax
not ecx
and ecx, eax
xor eax, 0x5b7cfe14
xor r8d, 0x5b7cfe14
and r8d, eax
xor r9d, 0xa48301eb
and r9d, edx
or ecx, r9d
or ecx, r8d
mov dword [rdi + 8], ecx
jmp 0x18001bf88
mov r10, rdi
mov r13, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
mov r11, qword [rcx + 8]
test r11, r11
mov r12, qword [rsp + 0x28]
je 0x18001bf88
mov edx, dword [r15]
mov ecx, edx
xor ecx, 0x496d5f67
mov edi, ebp
and edi, 0xfffffffe
mov ebx, edi
xor ebx, 0x496d5f66
mov r14d, edx
xor r14d, 0xb692a098
and r14d, ebx
mov ebx, edi
xor ebx, 0xb692a099
and ebx, ecx
or ebx, r14d
or edx, ebp
not edx
and edx, 0xfffffffe
or edx, ebx
not edx
mov ecx, r8d
shl edx, cl
cmp r11, r13
jae 0x18001bc90
mov r14d, dword [rsp + 0x24]
mov ebp, r14d
not ebp
mov ecx, esi
and ecx, 0xfffffffe
xor ecx, 0xaec7c2ef
mov r11d, esi
and r11d, 0xaec7c2ee
or ecx, r11d
mov edi, ecx
not edi
mov ebx, esi
and ebx, 0xaec7c2ef
xor ebx, 0xfffffffe
mov r8d, ebp
and r8d, 0x3e45794c
mov r9d, r14d
and r9d, 0x41ba86b3
or r9d, r8d
xor r9d, 0x1082bba2
mov r8d, ebp
and r8d, 0x2ec7c2ee
xor r8d, 0xaec7c2ee
or r8d, r9d
mov r9d, r14d
and r9d, 0x2ec7c2ee
or ecx, ebx
and ebx, edi
mov edi, r9d
xor edi, 0x7fffffff
or ebx, r11d
mov r11d, ecx
and r11d, 0xefdfe7ee
xor r11d, ebx
xor r11d, 0xefdfe7ee
not ecx
and ecx, esi
or ecx, r11d
mov r11d, r14d
xor r11d, 0x20c702aa
mov ebx, edi
and ebx, 0x31c706aa
and r11d, r9d
xor r11d, ebx
mov ebx, r8d
and ebx, 0x31ef27ab
xor r11d, ebx
mov ebx, r14d
and ebx, 0x2c82828c
and edi, 0x434d7862
or edi, ebx
xor edi, r8d
not r9d
and r9d, r8d
and r8d, 0x4e10d854
or r8d, 0x1002282
xor r11d, r8d
xor edi, 0x3cb2879d
or r9d, edi
mov r8d, r11d
xor r8d, 0x30c72428
mov edi, r8d
and edi, 0x788cd403
and r11d, 0x7732bfc
or r11d, edi
xor r11d, r9d
or r8d, r9d
xor r11d, 0x432028
not r8d
or r8d, r11d
mov r9d, r14d
xor r9d, 0x7f5b2500
and r9d, ebp
xor r8d, ecx
and esi, 0xd6e92abc
mov rdi, qword [rsp + 0x30]
mov r11d, edi
and r11d, 0x2916d542
or r11d, esi
mov ecx, r11d
xor ecx, 0x2916d543
and r14d, 0x8fd4313f
and ebp, 0x702bcec0
or ebp, r14d
mov esi, r11d
xor esi, 0xd64df043
and esi, ecx
and edi, 0xff5b2500
or edi, esi
mov esi, ebp
xor esi, 0x20cac0
and esi, 0xa4daff
and r9d, 0x7fffffff
or r9d, esi
xor r9d, edi
xor r11d, 0xd6e92abc
mov esi, r11d
and esi, 0x6161ca74
and ecx, 0x9e9e358b
or ecx, esi
xor ecx, ebp
xor ebp, 0x8fd4313f
or r11d, ebp
xor ecx, 0xeeb5fb4b
and ecx, r11d
or ecx, r9d
not ecx
or ecx, r8d
mov r8d, ecx
not r8d
mov r9d, eax
and r9d, 0x5efa256c
mov esi, eax
and esi, 0xa105da93
or esi, 0x8380124
xor esi, r9d
mov r9d, r8d
and r9d, 0x56502544
mov r11d, ecx
and r11d, 0x8aa0028
add r9d, r11d
add r9d, 0x19080
or eax, ecx
and ecx, 0x19080
and r8d, 0xa1044a13
lea r11d, [r8 + rcx]
add r11d, 0x56502544
xor r11d, r9d
xor r11d, esi
mov ecx, r11d
xor ecx, 0x56c22448
or ecx, eax
xor r11d, eax
xor r11d, 0xa93ddbb7
and r11d, ecx
mov ecx, edx
not ecx
or ecx, 0xcfd202c0
mov eax, edx
or eax, 0x218106
and eax, 0xcff383c6
mov r8d, ecx
and r8d, 0x58126ab0
mov esi, edx
and esi, 0x20258107
xor esi, eax
mov eax, edx
and eax, 0x81408
add r8d, eax
add r8d, 0x81008003
mov r9d, r11d
xor r9d, 0xcfd202c0
xor r8d, esi
mov eax, edx
and eax, 0x285416
and ecx, 0xbdc7aba9
add eax, ecx
add eax, 0x42100040
mov ecx, edx
or ecx, 0x3005a929
and ecx, 0xffd7abe9
xor eax, ecx
mov ecx, edx
xor ecx, 0x302dfd3f
or ecx, eax
xor r8d, 0xe91e968a
mov eax, r8d
xor eax, ecx
or r8d, ecx
not r8d
or r8d, eax
mov ecx, r11d
and ecx, 0x92497023
mov eax, r11d
xor eax, 0x5d9b72e3
and eax, r9d
xor ecx, 0x10097023
or ecx, eax
xor ecx, r8d
mov eax, r11d
and eax, 0xc9de34e2
mov r8d, r11d
and r8d, 0x3621cb1d
or r8d, 0x409a3420
xor r8d, eax
mov eax, r8d
mov r9d, edx
and r9d, 0xc9de34e2
or r11d, edx
and edx, 0x3621cb1d
or edx, 0x48023440
xor edx, r9d
mov r9d, edx
xor r9d, 0x7e23ff5d
xor r8d, 0x894400c2
and r8d, r9d
xor eax, 0x76bbff3d
xor edx, 0x81dc00a2
and edx, eax
mov eax, ecx
xor eax, 0x92497023
or edx, r8d
not edx
and edx, r11d
mov r8d, ecx
xor r8d, 0x6db68fdc
mov r9d, edx
not r9d
xor ecx, 0x37eaf976
or eax, r8d
and eax, ecx
mov ecx, edx
and ecx, 0x4020811
or r8d, r9d
and r9d, 0xa1a18144
add ecx, r9d
add ecx, 0x420c3200
and edx, 0x5a5c76aa
xor edx, eax
xor edx, ecx
xor edx, 0xb9f1c5ee
mov eax, edx
xor eax, r8d
or edx, r8d
not edx
or edx, eax
mov dword [r10], edx
jmp 0x18001bf88
and esi, 0x13d02fa8
mov r8, qword [rsp + 0x30]
and r8d, 0xec2fd056
or r8d, esi
xor r8d, eax
xor r8d, 0x13d02fa8
and r8d, eax
mov eax, r8d
and eax, 0xedf820b4
mov ecx, edx
xor ecx, 0x24d020b4
and ecx, edx
mov r9d, r8d
and r9d, 0x1207df4b
or r9d, 0x1300080
xor r9d, eax
xor r9d, 0x1337dfcb
mov eax, edx
and eax, 0x24d020b4
xor eax, 0x36d020b4
and ecx, 0xedf820b4
or ecx, eax
mov eax, edx
and eax, 0x1207df4b
xor eax, ecx
mov ecx, edx
xor ecx, 0xedf820b4
and r8d, edx
xor edx, 0x1207df4b
or edx, ecx
xor eax, 0xdb280000
mov ecx, eax
xor ecx, edx
or eax, edx
not eax
or eax, ecx
mov ecx, r9d
xor ecx, r9d
xor ecx, eax
and ecx, eax
xor ecx, r9d
mov eax, r8d
not eax
mov edx, eax
and edx, 0x48a8050
mov r9d, r8d
and r9d, 0x70240120
and r8d, 0x88113680
and eax, 0x340480f
add edx, r9d
add edx, 0x88113680
add eax, r8d
add eax, 0x48a8050
xor eax, edx
mov edx, eax
xor edx, 0x74ae8170
mov r9d, eax
xor r9d, 0x982bd16
and r9d, edx
mov r11d, eax
and r11d, 0x7d2c3c66
xor r11d, 0x9003c06
or r11d, r9d
xor r11d, ecx
xor r11d, 0x82d3c399
xor eax, 0x8b517e8f
mov r9d, ecx
or r9d, eax
and eax, 0xdbed851f
and edx, 0x24127ae0
or edx, eax
xor edx, ecx
xor edx, 0xdbed851f
and edx, r9d
or edx, r11d
mov dword [r10], edx
mov rax, qword [rsp + 0x40]
cmp qword [rax + 8], r13
je 0x18001bf88
mov eax, dword [r15]
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0x19400601
mov r8d, eax
and r8d, 0x828c3000
or ebp, eax
and eax, 0x2148b8
and ecx, 0x64128146
add r8d, edx
add r8d, 0x2148b8
lea edx, [rcx + rax]
add edx, 0x19400601
xor edx, r8d
xor edx, edi
xor edx, 0x9bcc3600
and edx, ebp
mov ecx, r13d
shr edx, cl
mov ecx, dword [r10 + 4]
mov eax, ecx
not eax
mov r9d, dword [rsp + 0x24]
mov r8d, r9d
not r8d
and r8d, ecx
or ecx, r9d
and r8d, 0x7fffffff
and eax, r9d
or eax, r8d
xor eax, ecx
mov r8d, eax
not r8d
mov ecx, edx
xor ecx, 0xc8720
and ecx, edx
or r8d, 0xfa83689c
mov r11d, r8d
and r11d, 0x4000242
mov r9d, eax
and r9d, 0x509401
or r9d, r11d
mov r11d, eax
mov esi, eax
mov edi, edx
and eax, edx
or edx, 0x57c9763
and r11d, 0xfa83689c
or r11d, 0x4401442
and r8d, 0x112600a4
and esi, 0x80100
add r8d, esi
add r8d, 0xd01640
xor r8d, r11d
xor r8d, r9d
xor r8d, 0xeb356878
mov r9d, ecx
and r9d, 0x57c9763
and edi, 0xc8720
xor edi, r9d
xor edi, 0xda8ee730
and ecx, 0xc8720
or ecx, edi
xor ecx, edx
mov edx, ecx
xor edx, 0x257118cf
xor ecx, 0xda8ee730
and ecx, r8d
xor r8d, edx
and r8d, edx
or ecx, r8d
mov edx, ecx
xor edx, 0xec2d9b0b
mov r8d, eax
xor r8d, 0xec2d9b0b
mov r9d, ecx
xor r9d, 0x13d264f4
and r9d, r8d
and ecx, eax
xor eax, 0x13d264f4
and eax, edx
or eax, ecx
or eax, r9d
mov dword [r10 + 4], eax
jmp 0x18001bf88
and esi, dword [r10]
mov ecx, r14d
not ecx
mov edx, ecx
and edx, 0x366bd9f6
mov eax, r14d
xor eax, 0xc9942609
or eax, edx
not eax
or eax, edx
xor eax, esi
xor eax, 0x366bd9f6
mov edx, r14d
and edx, 0xa1500717
and ecx, 0xc00c0a0
mov r8d, r14d
and r8d, 0x52af3848
add ecx, edx
add ecx, 0x12283000
xor r8d, esi
xor r8d, ecx
or esi, r14d
mov ecx, r8d
xor ecx, 0xe1d70f5f
or ecx, esi
xor esi, r8d
xor esi, 0x1e28f0a0
and esi, ecx
or esi, eax
mov dword [r10], esi
mov rax, r12
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret