Function at 0x180024160
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
mov rax, rdx
mov r13, rcx
mov rdx, qword [rdx]
mov rsi, qword [rax + 8]
mov rax, qword [r8]
mov rdi, qword [r8 + 8]
mov qword [rsp + 0x28], rax
cmp rdx, rax
jne 0x1800241b0
cmp rdi, rsi
jne 0x1800241b0
movups xmm0, xmmword [r9]
movups xmmword [r13], xmm0
mov rax, r13
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0x48], r8
mov rax, qword [rsp + 0x28]
mov rcx, rax
sub rcx, rdx
mov r12, qword [r9]
mov r8, rdi
sub r8, rsi
lea rcx, [r8 + rcx*8]
movups xmm0, xmmword [r9]
movups xmmword [r13], xmm0
mov r11, qword [r13 + 8]
mov rbx, rcx
neg rbx
lea r10, [r11 + rcx]
mov r14, r10
shr r14, 5
movabs r8, 0x3800000000000000
or r8, r14
cmp r11, rbx
cmovae r8, r14
test rcx, rcx
cmovns r8, r14
shl r8, 2
add r8, qword [r13]
mov qword [r13], r8
and r10d, 0x1f
mov qword [r13 + 8], r10
mov r14d, 0xffffffff
mov r11d, 0xffffffff
mov ecx, esi
shl r11d, cl
mov r9, qword [r9 + 8]
mov ecx, r9d
neg cl
mov ebp, 0xffffffff
shr ebp, cl
xor r15d, r15d
test r9, r9
cmove ebp, r15d
mov ecx, edi
neg cl
mov ebx, 0xffffffff
shr ebx, cl
mov ecx, r10d
shl r14d, cl
cmp r10, 1
sbb r15, r15
lea rcx, [r8 + r15*4]
cmp rax, rdx
je 0x180024471
cmp r12, rcx
mov dword [rsp + 0x34], ebx
je 0x18002455d
mov qword [rsp + 0x38], r14
mov r15, rsi
mov ecx, r15d
and ecx, 7
mov r8, r9
and r8, 0xfffffffffffffff8
or r8, 2
xor r8, r9
movabs r10, 0xb31f692d0392c421
lea rbx, [r10 + 2]
xor rbx, r8
movabs r14, 0x4ce096d2fc6d3bde
and r14, r8
xor r8, 0xfffffffffffffffd
and rbx, r8
xor r14, 2
or r14, rbx
xor r14, r10
cmp rcx, r14
jne 0x18002457d
mov ebx, edi
and ebx, 7
shr r15, 3
add rdx, r15
shr rdi, 3
add qword [rsp + 0x28], rdi
sub r9, rcx
shr r9, 3
add r12, r9
test rcx, rcx
je 0x18002440c
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 [r12]
mov ecx, eax
xor cl, 0x84
mov r10d, r8d
xor r10b, 0x84
mov r11d, eax
xor r11b, 0x7b
and r11b, r10b
or al, r8b
xor r8b, 0x7b
and r8b, cl
or r8b, r11b
not r8b
and r8b, al
movzx eax, byte [rdx]
not al
or al, r9b
mov ecx, eax
and cl, 0x15
or cl, 0x20
and al, 0xea
xor al, cl
mov ecx, eax
xor cl, 0xdf
mov esi, eax
xor sil, 0x20
mov r9d, r8d
xor r9b, 0x20
and r9b, r8b
mov r11d, ecx
and r11b, 0x5a
mov r10d, esi
and r10b, 0xa5
or r10b, r11b
xor r10b, 0xfc
and r10b, sil
and sil, 0xa1
mov r11d, ecx
and r11b, 0x5e
or r11b, sil
mov esi, r11d
and sil, 0x59
xor sil, 0x58
xor r11b, 7
or r11b, sil
and r9b, 0xa6
mov edi, r8d
mov esi, r8d
mov ebp, r8d
or cl, r8b
xor al, r8b
and r8b, 0x59
mov r14d, r8d
xor r14b, 0x38
and dil, 0x20
or dil, 0x18
xor dil, r9b
and dil, r14b
add r9d, 0x41
xor r8b, 0xc7
and r8b, r9b
or dil, r8b
xor sil, 0xa6
xor bpl, 0x59
or bpl, sil
not bpl
or bpl, dil
not r11b
or r11b, r10b
xor r11b, bpl
mov r8d, eax
xor r8b, 0x20
or r8b, cl
xor al, cl
xor al, 0xdf
and al, r8b
or al, r11b
mov byte [r12], al
inc rdx
inc r12
mov rsi, qword [rsp + 0x28]
mov r14, rsi
sub r14, rdx
mov rcx, r12
mov r8, r14
call sub.VCRUNTIME140.dll_memmove
test rbx, rbx
je 0x18002419c
mov cl, 8
sub cl, bl
mov eax, 0xff
shr eax, cl
mov dl, 0xff
mov ecx, ebx
shl dl, cl
movzx ecx, byte [r12 + r14]
not cl
not dl
or dl, cl
mov ecx, edx
and cl, 0x82
or cl, 0x75
and dl, 0x7d
xor dl, cl
and al, byte [rsi]
not al
mov ecx, edx
xor cl, al
xor cl, 0x8a
xor dl, 0x75
or dl, al
and dl, cl
not dl
mov byte [r12 + r14], dl
jmp 0x18002419c
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x50], r13
mov r15d, r11d
not r15d
mov ecx, r15d
and ecx, 0x7fffffff
mov edi, ebx
not edi
mov r8d, edi
and r8d, 0xfffffffe
mov r13d, ebx
xor r13d, 0x5706d726
and r13d, r8d
mov eax, r15d
and eax, 0x8a900d8
mov r14d, r11d
and r14d, 0x20502800
add eax, r14d
add eax, 0x44044502
mov r14d, r11d
and r14d, 0x5706d727
xor r14d, eax
mov eax, ebx
and eax, 0xa8f928d8
xor eax, r13d
xor eax, r14d
xor eax, 0x9bab92fd
and r15d, 0x5bf21947
and r11d, 0x240de6b8
or r11d, r15d
and edi, 0xdbf21946
and ebx, 0x240de6b8
or ebx, edi
xor ebx, r11d
or r8d, ecx
not ebx
and ebx, r8d
or ebx, eax
cmp r9, rsi
mov rcx, rsi
jae 0x180024c29
sub ecx, r9d
mov eax, ebx
not eax
mov r8d, ebx
and r8d, 0x20020080
mov r9d, eax
and r9d, 0x82448262
and eax, 0x4db92911
mov esi, ebx
and esi, 0x1000540c
or esi, eax
lea edi, [r9 + r8]
add edi, 0x4db92911
xor edi, esi
xor edi, 0x7dbb7d9d
and edi, dword [rdx]
shr edi, cl
jmp 0x180024c37
mov rcx, rsi
cmp r9, rsi
jae 0x180024f47
mov r15, qword [rsp + 0x28]
sub ecx, r9d
mov rsi, r11
and esi, dword [rdx]
shr esi, cl
jmp 0x180024f59
cmp r9, r15
jae 0x18002517a
sub r15, r9
mov eax, 0xffffffff
mov ecx, r15d
shr eax, cl
and r11d, dword [rdx]
shr r11d, cl
mov edi, r11d
not edi
mov r8d, dword [r12]
mov r9d, r8d
xor r9d, 0xdd397e40
mov r10d, ebp
and r10d, 0x22c681bf
mov ecx, ebp
and ecx, 0xdd397e40
or ecx, 0x20820085
xor ecx, r10d
mov r10d, ecx
xor r10d, 0xfdbb7ec5
mov ebx, r8d
xor ebx, 0x22c681bf
and ebx, r10d
xor ecx, 0x244813a
and ecx, r9d
or ecx, ebx
or r8d, ebp
not ecx
and ecx, r8d
mov r9d, ecx
not r9d
mov r8d, ecx
or r8d, 0x6c14c8aa
mov ebp, r8d
not ebp
and edi, 0x93eb3755
mov r10d, r11d
xor r10d, 0x6c14c8aa
or r10d, edi
or r9d, 0x93eb3755
mov edi, r8d
and edi, 0x2998afee
mov ebx, ebp
and ebx, 0x92631011
or ebx, edi
mov edi, r9d
and edi, 0x35000
mov r14d, ecx
and r14d, 0x44040000
or r14d, edi
mov edi, ecx
and edi, 0x281088aa
xor r14d, 0x18b7744
or edi, 0x92631011
xor edi, r14d
and edi, ebx
xor edi, r14d
and ebp, 0x80013554
and r8d, 0x1ffe022b
or r8d, ebp
mov ebx, ecx
and ebx, 0x6000c880
and r9d, 0x1ffe022b
or r9d, ebx
mov ebx, r11d
or ebx, 0x6c14c8aa
xor r9d, r8d
mov r8d, ecx
xor r8d, 0x6c14c8aa
or r8d, r9d
mov ebp, ebx
not ebp
not r8d
or r8d, edi
and ebx, 0xc9a7e19f
mov edi, ebp
and edi, 0x12481640
or edi, ebx
mov r9d, edi
xor r9d, 0x36581e60
xor edi, 0x9896cc7c
and edi, r9d
and ebp, 0x82ca1214
or ebp, edi
mov edi, r10d
and edi, 0x51312de3
or r9d, r10d
and r10d, 0xaeced21c
or r10d, 0x51000403
xor r10d, edi
xor r10d, ebp
xor r10d, 0xffced61f
not r9d
or r9d, r10d
mov r10d, r8d
and r10d, 0xf9d3c4c0
or r10d, 0x4043116
and r8d, 0x62c3b3f
xor r8d, r10d
mov r10d, r8d
xor r10d, 0xfdd7f5d6
mov edi, r9d
and edi, 0xf9d3c4c0
or edi, 0x6280130
and r9d, 0x62c3b3f
xor r9d, edi
mov edi, r9d
xor edi, 0xfffbc5f0
xor r8d, 0x2280a29
and r8d, edi
xor r9d, 0x43a0f
and r9d, r10d
or r9d, r8d
mov r8d, r11d
and r8d, 0x731b203d
mov r10d, r11d
and r10d, 0x8ce4dfc2
or r10d, 0x621b2031
xor r10d, r8d
xor r10d, ecx
or ecx, r11d
mov r8d, r10d
xor r8d, 0x9de4dfce
or r8d, ecx
xor ecx, r10d
xor ecx, 0x621b2031
and ecx, r8d
mov r8d, r9d
not r8d
mov r14d, ecx
not r14d
mov r10d, r9d
and r10d, 0x41b001c0
and r14d, r8d
and r8d, 0xe003a
add r8d, r10d
add r8d, 0x3c402205
mov r10d, r9d
and r10d, 0xbe41fe05
xor r10d, r8d
mov r8d, r10d
mov esi, ecx
xor esi, 0x41be01fa
xor r10d, 0x820fdc3a
and r10d, esi
xor r8d, 0x7df023c5
xor r9d, ecx
xor ecx, 0xbe41fe05
and ecx, r8d
or r14d, r9d
not r14d
or r14d, ecx
or r14d, r10d
mov ecx, 0x20
sub rcx, r15
mov dword [r12], r14d
add rdx, 4
cmp rdx, qword [rsp + 0x28]
mov qword [rsp + 0x50], r13
mov dword [rsp + 0x44], eax
je 0x1800258df
mov r9d, eax
and eax, 0xc2e4b690
mov r8d, r9d
and r8d, 0x3d1b496e
or r8d, 0x40242091
xor r8d, eax
mov eax, r8d
xor eax, 0x7d3f69fe
mov dword [rsp + 0x60], eax
xor r8d, 0x82c09601
mov dword [rsp + 0x64], r8d
mov eax, r9d
xor eax, 0x21c548f6
mov dword [rsp + 0x5c], eax
mov eax, r9d
xor eax, 0xde3ab709
mov dword [rsp + 0x58], eax
mov qword [rsp + 0x68], rcx
nop dword [rax]
mov qword [rsp + 0x70], r12
mov r8d, dword [rdx]
shl r8d, cl
mov eax, r8d
mov r9d, r8d
mov edi, r8d
mov r13d, r8d
mov r11, rdx
mov rdx, r15
mov r15d, r8d
not r15d
mov esi, r14d
and esi, 0xc2e4b691
or esi, 0xc00480e
mov r10d, r14d
and r10d, 0x3d1b496e
xor r10d, esi
mov esi, r10d
xor esi, 0xcee4fe9e
and esi, dword [rsp + 0x64]
xor r10d, 0x311b0160
and r10d, dword [rsp + 0x60]
or r10d, esi
and r10d, r14d
mov esi, r10d
xor esi, 0x22154043
and esi, r10d
and eax, 0x2e155ccb
mov ebx, esi
and ebx, 0x2e155ccb
mov ebp, r10d
and ebp, 0x22154043
xor ebp, ebx
xor ebp, 0xb215c243
and esi, 0x22154043
or esi, ebp
mov r14d, r10d
and r14d, 0xd1eaa334
xor r14d, esi
mov esi, r10d
xor esi, 0x2e155ccb
mov ebx, r10d
xor ebx, 0xd1eaa334
or ebx, esi
xor r14d, 0x9c009e88
mov esi, r14d
xor esi, ebx
or r14d, ebx
not r14d
or r14d, esi
mov r12d, r15d
and r12d, 0xd1eaa334
xor edi, 0x1104b
and edi, eax
lea ebp, [r12 + 0x2e144c80]
or r12d, eax
mov ecx, eax
not ecx
mov esi, r15d
and esi, 0x5068a300
and r9d, 0x81820034
or r9d, esi
and r13d, 0x10003
mov esi, ecx
and esi, 0x209248
add esi, r13d
add esi, 0xad160884
xor esi, edi
xor esi, 0xfd5f2987
and edi, 0x1104b
or edi, esi
and ebp, esi
xor r9d, 0xd1ebb37f
not edi
and edi, r9d
mov r9d, r8d
and r9d, 0x24104843
and ecx, 0x1a6d359c
or ecx, r9d
mov r9d, r8d
and r15d, 0xc1828220
and r9d, 0x10682114
add r9d, r15d
add r9d, 0xa051488
mov r15, rdx
mov rax, qword [rsp + 0x28]
mov rdx, r11
mov esi, r8d
xor r9d, ecx
not r9d
and r9d, r12d
mov ecx, r10d
mov ebx, r10d
or r10d, r8d
or r9d, ebp
or r9d, edi
xor r9d, r14d
xor ecx, 0x63c8555a
and esi, 0x9c37aaa5
and r8d, 0x63c8555a
or r8d, 0x18038801
xor r8d, esi
mov esi, r8d
xor esi, 0x7bcbdd5b
xor ebx, 0x9c37aaa5
and ebx, esi
xor r8d, 0x843422a4
and r8d, ecx
or r8d, ebx
not r8d
and r8d, r10d
or r8d, r9d
mov r12, qword [rsp + 0x70]
mov dword [r12], r8d
mov r10d, dword [r11]
mov ecx, r15d
shr r10d, cl
mov r8d, dword [r12 + 4]
mov r9d, r8d
xor r9d, 0x21c548f6
and r9d, dword [rsp + 0x58]
mov r11d, r8d
xor r11d, 0xde3ab709
and r11d, dword [rsp + 0x5c]
or r11d, r9d
mov r9d, r11d
not r9d
xor r11d, r9d
and r11d, r8d
xor r11d, r9d
not r11d
or r11d, r9d
mov r8d, r11d
xor r8d, 0x5003021
and r8d, r11d
mov r9d, r10d
and r9d, 0xf2fa84da
mov esi, r8d
and esi, 0xd057b25
mov edi, r11d
and edi, 0x5003021
xor edi, esi
xor edi, 0x35a030fb
and r8d, 0x5003021
or r8d, edi
mov edi, r11d
and edi, 0xf2fa84da
xor edi, r8d
mov r8d, r11d
xor r8d, 0xd057b25
mov esi, r11d
xor esi, 0xf2fa84da
or esi, r8d
xor edi, 0x38a54bde
mov r8d, edi
xor r8d, esi
or edi, esi
not edi
or edi, r8d
mov ebp, r9d
not ebp
mov r8d, r10d
and r8d, 0x9003320
mov esi, ebp
and esi, 0x4274c1d
mov ebx, r10d
and ebx, 0xf2d880c2
or ebx, esi
xor r8d, 0x9223738
mov r14d, r10d
and r14d, 0x4054805
xor r14d, r8d
xor r14d, 0xf6ddc8c7
and r14d, ebx
xor r14d, r8d
mov r8d, r10d
mov esi, r10d
mov ebx, r10d
not ebx
and esi, 0x2280ca
and ebp, 0xf7d84e30
or ebp, esi
mov esi, ebx
and ebx, 0x8053105
and r8d, 0x5004a20
add r8d, ebx
add r8d, 0xf2d80410
xor r8d, ebp
mov rcx, qword [rsp + 0x68]
and esi, 0xd057b25
or r9d, esi
not r8d
and r8d, r9d
or r8d, r14d
mov r9d, r10d
xor r8d, edi
xor r9d, 0x7785db3c
mov esi, r11d
xor esi, 0x7785db3c
and esi, r9d
mov r9d, r11d
not r11d
or r11d, r10d
mov r14d, r10d
xor r9d, 0x887a24c3
xor r14d, 0x887a24c3
and r14d, r9d
or r14d, esi
not r14d
and r14d, r11d
mov r10d, r14d
xor r10d, 0xb2cefeaa
mov r9d, r8d
xor r9d, 0x4d310155
and r9d, r10d
mov r10d, r8d
xor r10d, 0xb2cefeaa
and r8d, r14d
xor r14d, 0x4d310155
and r14d, r10d
or r14d, r9d
or r14d, r8d
lea rdi, [r12 + 4]
mov dword [r12 + 4], r14d
add rdx, 4
mov r12, rdi
cmp rdx, rax
jne 0x180024880
jmp 0x1800258e2
sub r9d, ecx
mov edi, ebx
not edi
and edi, dword [rdx]
mov ecx, r9d
shl edi, cl
cmp r12, qword [rsp + 0x28]
mov r13, qword [rsp + 0x50]
mov r11, qword [rsp + 0x38]
je 0x180024e5b
and ebp, dword [r12]
or ebp, edi
mov dword [r12], ebp
mov rax, qword [rsp + 0x48]
mov ecx, dword [rax + 8]
sub ecx, r10d
mov eax, dword [rdx]
mov edx, eax
xor edx, 0x522afa1d
mov r8d, ebx
xor r8d, 0xadd505e2
mov r9d, eax
xor r9d, 0xadd505e2
and r9d, r8d
mov r8d, ebx
xor r8d, 0x522afa1d
and r8d, edx
not eax
and eax, ebx
or eax, r8d
or eax, r9d
not eax
shr eax, cl
and r11d, dword [r12 + 4]
mov edx, r11d
not edx
mov edi, eax
not edi
mov r8d, edx
and r8d, 0x8e94b642
mov r9d, r11d
and r9d, 0x716b49bd
mov r10d, r11d
mov ecx, r9d
not ecx
mov ebx, r11d
mov esi, ecx
and esi, 0x61ba9d33
mov r14d, r11d
and r14d, 0x1041408c
or r14d, esi
mov ebp, r11d
mov esi, edi
and esi, 0xc3844088
mov r15d, eax
and r15d, 0x2422a845
add esi, r15d
add esi, 0x10480030
mov r15d, eax
and r15d, 0x10480030
and edi, 0x8111702
add edi, r15d
add edi, 0xc3844088
mov r15d, r11d
xor edi, esi
mov esi, eax
xor edi, r11d
or r11d, eax
or eax, 0x716b49bd
xor ebx, 0x8e042240
and ebx, r8d
or ebp, 0x41280101
and ebp, 0x41b89503
xor ebp, ebx
mov ebx, ebp
or ebx, 0x20020830
xor ebp, ebx
xor ebp, 0x51f9d58f
and ebp, r14d
mov r14d, eax
not r14d
or r10d, 0x40490180
xor ebp, ebx
and edx, 0x6809042
and r10d, 0xc85d2780
or r10d, edx
and r15d, 0x3122483d
and ecx, 0xc85d2780
or ecx, r15d
xor ecx, r10d
or r9d, r8d
not ecx
and ecx, r9d
or ecx, ebp
and eax, 0x24d40c11
mov edx, r14d
and edx, 0x8a00b242
or edx, eax
mov eax, edx
xor eax, 0xdb2bf3ee
xor edx, 0x943fcd67
and edx, eax
and r14d, 0xe143600
or r14d, edx
and esi, 0x716b49bd
xor esi, r14d
mov eax, esi
xor eax, 0xb0ebc176
mov edx, esi
and edx, 0xb919b5af
xor edx, 0x9103489
xor esi, 0x9f274d9
and esi, eax
or esi, edx
mov eax, ecx
and eax, 0xb919b5af
or eax, 0x2c24a10
and ecx, 0x46e64a50
xor ecx, eax
xor ecx, esi
mov eax, ecx
xor eax, 0xbbdbffbf
mov edx, ecx
xor edx, 0x200000
mov r8d, edi
xor r8d, 0xe7a6e8cd
or r8d, r11d
xor r11d, edi
xor r11d, 0x18591732
and r11d, r8d
and edx, 0x3971988f
mov r8d, ecx
xor r8d, 0x82aa6730
and r8d, eax
or r8d, edx
xor r8d, r11d
xor r8d, 0x3971988f
or eax, r11d
xor r11d, ecx
xor r11d, 0x44240040
and r11d, eax
or r11d, r8d
mov dword [r12 + 4], r11d
jmp 0x18002419c
xor eax, eax
test r10, r10
cmove r11d, eax
mov ecx, ebp
not ecx
mov edx, r11d
not edx
and edx, ecx
mov eax, ebp
xor eax, r11d
or eax, edx
and ecx, 0x54090120
mov edx, ebp
and edx, 0xa922cc1e
and ebp, 0x2d432c1
add ecx, edx
add ecx, 0xd432c1
mov edx, r11d
and edx, 0x2d432c1
or edx, 0xe109490c
and r11d, 0xfd2bcd3e
xor r11d, ebp
xor r11d, edx
xor r11d, ecx
mov ecx, r11d
xor ecx, 0xb5d47aed
mov edx, ecx
and ecx, eax
not eax
xor r11d, 0x4a2b8512
and edx, eax
and r11d, eax
or r11d, ecx
xor r11d, edx
and r11d, dword [r12]
mov ecx, r11d
not ecx
mov eax, r11d
xor eax, ecx
and eax, edi
xor eax, ecx
not eax
or eax, ecx
mov ecx, r11d
xor ecx, 0xccda50b5
mov edx, edi
xor edx, 0xccda50b5
xor r11d, 0x3325af4a
and r11d, edx
xor edi, 0x3325af4a
and edi, ecx
or edi, r11d
mov ecx, eax
xor ecx, 0x7de807b2
mov edx, edi
xor edx, 0x8217f84d
mov r8d, eax
xor r8d, 0x8217f84d
and r8d, edx
mov edx, edi
xor edx, 0x7de807b2
and edx, ecx
not eax
and eax, edi
or eax, edx
or eax, r8d
mov dword [r12], eax
jmp 0x18002419c
mov r15, qword [rsp + 0x28]
sub r9d, ecx
mov rsi, r11
and esi, dword [rdx]
mov ecx, r9d
shl esi, cl
xor eax, eax
test r10, r10
cmove r14d, eax
mov eax, ebp
not eax
mov edx, ebp
xor edx, 0x41480413
and edx, eax
mov ecx, ebp
and ecx, 0x3a86f124
mov r8d, ebp
and r8d, 0x84310c0b
and eax, 0x414802d0
or eax, r8d
mov r8d, eax
xor r8d, 0x84310c0b
mov r9d, eax
mov ebx, r8d
and ebx, 0x80580643
and eax, 0x45210898
or eax, ebx
xor eax, 0xc15806d3
and eax, r8d
or r8d, 0x71487517
and edx, 0xc5790edb
mov ebx, r8d
and ebx, 0x6121269c
and r9d, 0x84100840
or r9d, ebx
xor r9d, edx
xor r9d, 0x6ba7a6fc
not r8d
and r8d, edx
or r8d, r9d
xor ecx, eax
xor ecx, r8d
xor ecx, 0x8eb78ae8
xor r8d, 0x84310ac8
and r8d, eax
or r8d, ecx
xor r8d, r14d
xor r8d, 0xc5790edb
mov eax, ebp
xor eax, 0x737a6e50
mov ecx, r14d
xor ecx, 0x737a6e50
mov edx, ebp
xor edx, 0x8c8591af
and edx, ecx
or ebp, r14d
xor r14d, 0x8c8591af
and r14d, eax
or r14d, edx
not r14d
and r14d, ebp
or r14d, r8d
test rdi, rdi
je 0x1800254b8
sub r10d, edi
mov eax, dword [r15]
mov ecx, eax
xor ecx, 0x53788ebc
mov r11d, dword [rsp + 0x34]
mov edx, r11d
xor edx, 0xac877143
mov r8d, eax
xor r8d, 0xac877142
and r8d, edx
xor r11d, 0x53788ebc
and r11d, ecx
or r11d, r8d
and r11d, eax
mov ecx, r10d
shl r11d, cl
and r14d, dword [r12]
mov ecx, r14d
or ecx, 0xaf4d887f
mov eax, r14d
and eax, 0xaf4d887f
mov edx, r14d
xor edx, 0xae450828
and edx, eax
not eax
mov r8d, r14d
and r8d, 0x6000828
mov r9d, eax
and r9d, 0xa8c54480
add r8d, r9d
add r8d, 0x1088047
xor r8d, edx
xor r8d, 0x4708986f
and edx, 0xae450828
or edx, r8d
mov r8d, r14d
or r8d, 0x410000
and r8d, 0x50f37780
xor r8d, edx
xor r8d, 0xbe362b28
mov edx, r14d
xor edx, 0xaf4d887f
xor eax, ecx
or eax, edx
not eax
or eax, r8d
xor eax, esi
mov edx, eax
xor edx, 0x50b27780
and r14d, esi
mov ecx, edx
and ecx, r14d
xor eax, edx
xor eax, 0xaf4d887f
and eax, r14d
xor ecx, edx
xor ecx, eax
mov eax, ecx
and eax, r11d
mov edx, ecx
and edx, 0x6a75ae49
or edx, 0x100a41b6
and ecx, 0x958a51b6
xor ecx, r11d
xor ecx, edx
mov edx, ecx
xor edx, 0x100a41b6
mov r8d, ecx
xor r8d, 0xeff5be49
xor ecx, 0x8304cc10
or edx, r8d
and edx, ecx
xor edx, eax
not eax
or eax, r8d
xor edx, 0x6cf17259
mov ecx, edx
xor ecx, eax
or edx, eax
not edx
or edx, ecx
mov dword [r12], edx
jmp 0x18002419c
movabs r10, 0x3c7628440d7365c6
add r9, r10
sub r9, r15
sub r10, r9
mov r15, qword [rsp + 0x28]
mov eax, dword [rdx]
mov ecx, r11d
not ecx
mov r8d, ecx
and r8d, 0xc201843
mov edi, r11d
and edi, 0x4301a024
or edi, r8d
and ecx, 0x30184598
and r11d, 0xc60200
lea r8d, [r11 + rcx]
add r8d, 0x8867
xor r8d, edi
mov esi, r8d
xor esi, 0x43c72a43
mov ecx, r8d
xor ecx, 0xbc38d5bc
mov edi, r8d
xor edi, 0xf671d6cb
and edi, ecx
xor r8d, 0x7671d6cb
and r8d, esi
or r8d, edi
mov edi, eax
and esi, 0x705f8b01
mov ebx, ecx
and ebx, 0x8fa074fe
or ebx, esi
xor ebx, eax
and ecx, eax
and eax, 0xb5b6fc88
and edi, 0x4a490377
or edi, 0xb0a0a488
xor edi, eax
xor edi, r8d
xor ebx, 0x705f8b01
or ecx, ebx
xor edi, 0x5165800
and edi, ecx
add r9d, 0xf28c9a3a
mov ecx, r9d
shl edi, cl
lea rax, [r10 + 0x20]
mov ecx, dword [r12]
mov r8d, ecx
not r8d
mov esi, ebp
and esi, 0xc5ff1156
or esi, 0x2200c429
and ebp, 0x3a00eea9
xor ebp, esi
mov esi, ebp
xor esi, 0xddff3bd6
xor ebp, 0x2200c429
and ecx, esi
and ebp, r8d
or ecx, ebp
and ebp, esi
and esi, r8d
xor ecx, esi
or ebp, ecx
mov ecx, ebp
not ecx
xor ebp, ecx
and ebp, edi
and edi, ecx
xor ebp, ecx
mov ecx, edi
xor ecx, 0xb4085294
mov r8d, ebp
xor r8d, 0xb4085294
xor edi, 0x4bf7ad6b
and edi, r8d
xor ebp, 0x4bf7ad6b
and ebp, ecx
or ebp, edi
mov dword [r12], ebp
lea r14, [r12 + 4]
mov edi, dword [rdx]
add rdx, 4
mov ecx, r10d
shr edi, cl
mov r11, r15
cmp rdx, r15
je 0x1800253be
mov rbx, r11
nop word cs:[rax + rax]
mov r10d, dword [rdx]
mov ecx, r9d
shl r10d, cl
mov ecx, r10d
xor ecx, 0x400a20
and ecx, r10d
mov r8d, ecx
and r8d, 0x20c00ea4
mov esi, r10d
and esi, 0x400a20
xor esi, r8d
xor esi, 0xd65d2a21
and ecx, 0x400a20
or ecx, esi
mov r8d, r10d
and r8d, 0xdf3ff15b
xor r8d, ecx
mov esi, r10d
xor esi, 0x20c00ea4
mov ecx, r10d
xor ecx, 0xdf3ff15b
or ecx, esi
mov ebp, edi
mov esi, edi
and r10d, edi
xor edi, 0xdf3ff15b
xor r8d, 0x962db7a
not ecx
or ecx, r8d
and ebp, 0x374ffa09
xor ebp, 0x20400a00
xor esi, 0xe8700b52
and esi, edi
or esi, ebp
mov r8d, ecx
and r8d, 0x374ffa09
or r8d, 0x88200414
and ecx, 0xc8b005f6
xor ecx, r8d
mov r8d, ecx
xor r8d, 0xbf6ffe1d
xor ecx, 0x409001e2
and ecx, esi
not esi
and esi, r8d
or r10d, ecx
or r10d, esi
mov dword [r14], r10d
add r14, 4
mov edi, dword [rdx]
add rdx, 4
mov ecx, eax
shr edi, cl
cmp rdx, rbx
jne 0x1800252e0
lea r12, [r14 - 4]
mov esi, dword [rsp + 0x34]
mov r10, qword [rsp + 0x48]
mov rcx, qword [r10 + 8]
cmp rcx, rax
jae 0x1800256d8
test rcx, rcx
je 0x180025b62
and esi, dword [r11]
mov ecx, r9d
shl esi, cl
mov r11, qword [rsp + 0x38]
and r11d, dword [r14]
mov ecx, r11d
and ecx, edi
mov eax, r11d
and eax, 0xb24d76c7
or eax, 0x8020908
and r11d, 0x4db28938
xor r11d, edi
xor r11d, eax
mov edx, r11d
xor edx, 0x8020908
mov eax, r11d
xor eax, 0xf7fdf6f7
mov r8d, edx
and r8d, 0x58180284
mov r9d, r11d
and r9d, 0xa4808552
mov r10d, eax
and r10d, 0x1040828
and r11d, 0x2637001
add r8d, r9d
add r8d, 0x1040828
lea r9d, [r11 + r10]
add r9d, 0x58180284
xor r9d, r8d
xor r9d, ecx
xor r9d, 0x581a0384
mov r8d, edx
and r8d, 0xb4782f44
and eax, 0x4b87d0bb
or eax, r8d
or edx, ecx
xor eax, ecx
xor eax, 0xb4782f44
and eax, edx
or eax, r9d
mov ecx, eax
xor ecx, 0xcfbdb37e
mov edx, esi
xor edx, 0xcfbdb37e
mov r8d, eax
xor r8d, 0x30424c81
and r8d, edx
and eax, esi
xor esi, 0x30424c81
and esi, ecx
or esi, eax
or esi, r8d
mov dword [r14], esi
jmp 0x18002419c
mov ecx, dword [r12]
mov eax, r14d
and eax, 0x93811c6c
or eax, 0x442e012
and r14d, 0x6c7ee393
xor r14d, eax
mov r9d, r14d
xor r9d, 0xfbbd1fed
mov eax, r14d
xor eax, 0x442e012
mov edx, r9d
mov r8d, eax
mov r10d, ecx
and r9d, 0xd4646fcc
mov edi, eax
and edi, 0x2b9b9033
or edi, r9d
xor edi, ecx
and eax, ecx
xor ecx, 0x271346e
and edx, 0xd9088100
mov r9d, r14d
and r9d, 0x24864a91
and r8d, 0x20302a
and r14d, 0x2510444
add edx, r9d
add edx, 0x20302a
add r8d, r14d
add r8d, 0xd9088100
xor r8d, edx
mov edx, r8d
xor edx, 0x6134454
xor r10d, 0xfd8ecb91
and r10d, edx
xor r8d, 0xf9ecbbab
and r8d, ecx
or r8d, r10d
xor edi, 0xd4646fcc
or eax, edi
not eax
or eax, r8d
mov edx, eax
mov ecx, eax
mov r8d, eax
mov dword [rsp + 0x28], eax
mov r11d, eax
mov r10d, esi
and r10d, 0xfb1d3a32
mov edi, esi
or edi, 0x4e2c5cd
xor r10d, 0x86f07081
and r10d, edi
mov ebx, r10d
mov edi, esi
not edi
and r10d, edi
mov r15d, eax
mov ebp, eax
and edi, eax
and eax, 0xfb1d3a32
mov r14d, eax
not r14d
and r8d, 0xe8001212
mov r9, r12
mov r12d, r14d
and r12d, 0x6d90829
add r8d, r12d
add r8d, 0x1002000
xor ecx, 0xea191a32
and ecx, eax
xor r8d, ecx
xor r8d, 0xe9203716
and ecx, 0xea191a32
or ecx, r8d
and edx, 0x4e2c5cd
xor ecx, edx
xor edx, 0x4e2c5cd
mov r8d, dword [rsp + 0x28]
and r8d, 0xb30d0032
and r14d, 0x4cf03ec1
or r14d, r8d
mov r8d, edx
and r8d, 0x2c10c
and r11d, 0x4e004c1
add r8d, r11d
add r8d, 0x48103a00
xor r8d, r14d
or edx, eax
mov eax, esi
and eax, 0x4e2c5cd
not r8d
and r8d, edx
xor ecx, 0xea1bdaf2
or ecx, r8d
and ebx, 0xff3d3a32
mov edx, esi
or edx, 0x40c341bb
and edx, 0xc2d371bb
xor edx, ebx
xor edx, 0xc213313a
and r10d, 0x82103000
or r10d, edx
xor r10d, eax
mov eax, ecx
xor eax, 0x27cfa79e
mov edx, r10d
xor edx, 0x5a22ed2d
xor ecx, 0xd8305861
and ecx, edx
xor r10d, 0xa5dd12d2
and r10d, eax
and r15d, 0x5cb1ada
or r15d, 0x2a10c120
and ebp, 0xfa34e525
xor ebp, r15d
mov eax, ebp
xor eax, 0x2fdbdbfa
mov edx, esi
xor edx, 0xfa34e525
xor ebp, 0xd0242405
and ebp, edx
xor esi, 0x5cb1ada
and esi, eax
or edi, esi
or edi, ebp
not edi
or edi, r10d
or edi, ecx
mov dword [r9], edi
jmp 0x18002419c
mov edx, dword [r11]
mov ecx, r9d
shl edx, cl
mov ecx, edx
and ecx, edi
xor edx, edi
mov r8d, ecx
xor r8d, 0x6f2bce1c
mov r9d, edx
xor r9d, 0x6f2bce1c
xor ecx, 0x90d431e3
and ecx, r9d
xor edx, 0x90d431e3
and edx, r8d
or edx, ecx
mov dword [r14], edx
cmp qword [r10 + 8], rax
je 0x18002419c
mov edx, dword [r11]
mov ecx, eax
shr edx, cl
mov r11, qword [rsp + 0x38]
mov eax, r11d
not eax
mov r9d, r11d
and r9d, 0x3f6ed351
mov ecx, r9d
xor ecx, 0x3f6ed351
mov r8d, r11d
and r8d, 0x7fffffff
mov r10d, r8d
xor r10d, 0x40912cae
or r10d, ecx
mov ecx, r11d
or ecx, 0xc0912cae
xor r9d, 0x12010641
and r9d, ecx
and eax, 0x12000241
or eax, r9d
mov r9d, r10d
or ecx, r10d
and r10d, 0x2d7fd516
and r9d, 0x52802ae9
or r9d, 0xc564116
xor r9d, r10d
xor r9d, eax
xor r9d, 0xdec66bf9
not ecx
mov eax, r9d
and eax, ecx
xor ecx, r9d
and r9d, 0xc0912cae
or r9d, 0xe68d211
and ecx, 0x3f6ed351
or ecx, eax
xor ecx, r9d
mov eax, ecx
xor eax, 0x42995423
mov r9d, dword [r12 + 8]
xor r8d, 0x7fffffff
mov r10d, r9d
not r10d
or r10d, r8d
or r11d, r9d
and r11d, 0x7fffffff
xor r11d, r10d
lea r8d, [r11 - 0x80000000]
or r8d, r9d
xor r11d, r9d
xor r11d, 0x7fffffff
and r11d, r8d
xor ecx, 0x9d62aadc
and eax, ecx
and eax, 0x539b5463
or eax, ecx
xor eax, edx
xor eax, 0xac64ab9c
and eax, edx
mov edx, eax
not edx
or edx, 0xece2cf0d
mov r8d, r11d
xor r8d, 0xece2cf0d
mov r9d, edx
and r9d, 0x2012b293
and edx, 0xdfed4d6c
or edx, 0x8202
mov ecx, eax
and ecx, 0xece2cf0d
xor ecx, r9d
xor ecx, edx
mov edx, ecx
xor edx, 0x131db2f0
mov r9d, r11d
xor r9d, 0x8e5d2636
and r9d, r8d
mov r10d, ecx
xor r10d, 0x71a25bcb
and r10d, edx
and r8d, 0x2bb090b
mov esi, r11d
and esi, 0x6004e030
add r8d, esi
add r8d, 0x100004c4
xor r8d, r9d
xor r8d, r10d
and edx, 0x621c0810
and ecx, 0xa3e12b
add ecx, edx
add ecx, 0x90400200
xor ecx, r8d
mov edx, ecx
xor edx, 0xe04166e4
and eax, r11d
mov r8d, ecx
xor r8d, 0x1fbe991b
xor ecx, 0x5495f589
or edx, r8d
and edx, ecx
xor edx, eax
not eax
xor edx, 0xb4d4936d
or eax, r8d
not eax
or eax, edx
mov dword [r12 + 8], eax
jmp 0x18002419c
mov rdi, r12
mov rbx, qword [rsp + 0x48]
mov r9, qword [rbx + 8]
test r9, r9
mov r13, qword [rsp + 0x50]
mov r11d, dword [rsp + 0x34]
mov rax, qword [rsp + 0x28]
je 0x18002419c
mov edx, dword [rax]
mov r8d, r11d
not r8d
mov esi, r8d
and esi, 0x7825c100
mov r10d, r11d
and r10d, 0x87da3efe
or r10d, esi
mov ebp, edx
and ebp, 0xc4ecf763
mov esi, edx
and esi, 0x3b13089c
or esi, 0x80249341
xor ebp, r10d
xor r10d, 0x7825c100
xor ebp, esi
xor ebp, 0xf8015240
and edx, 0xfffffffe
or edx, r10d
xor edx, 0xfffffffe
or edx, ebp
not edx
shl edx, cl
cmp r9, r15
jae 0x180025973
mov eax, dword [rsp + 0x44]
or eax, dword [rsp + 0x38]
and r14d, eax
or r14d, edx
mov dword [rdi], r14d
jmp 0x18002419c
and r14d, dword [rsp + 0x44]
mov ecx, r14d
and ecx, edx
mov r9d, edx
and r9d, 0x964aedc
or r9d, 0x66984103
and edx, 0xf69b5123
xor edx, r9d
xor edx, r14d
mov r9d, edx
xor r9d, 0x66984103
xor edx, r9d
mov r10d, r9d
and r10d, ecx
xor edx, 0x9967befc
and edx, ecx
xor r10d, r9d
xor r10d, edx
mov dword [rdi], r10d
cmp qword [rbx + 8], r15
je 0x18002419c
mov edx, dword [rax]
mov ecx, edx
not ecx
and r8d, 0x2071ca36
and r11d, 0xdf8e35c8
or r11d, r8d
xor edx, r11d
xor r11d, 0xdf8e35c8
and r11d, ecx
mov ecx, edx
xor ecx, r11d
xor ecx, 0x2071ca37
xor edx, 0x2071ca36
and edx, r11d
or edx, ecx
not edx
mov ecx, r15d
shr edx, cl
mov eax, dword [rdi + 4]
mov r9, qword [rsp + 0x38]
mov ecx, r9d
not ecx
mov r8d, ecx
and r8d, eax
not eax
and ecx, eax
and r8d, 0x7fffffff
and eax, r9d
or eax, r8d
xor eax, ecx
mov ecx, eax
xor ecx, 0x5802ca2
and ecx, eax
mov r9d, ecx
and r9d, 0x75993ce2
mov r10d, eax
mov ebx, eax
mov r8d, eax
mov r11d, edx
and r11d, 0x75993ce2
mov esi, edx
or esi, 0x8a66c31d
xor r11d, 0x89d074fd
and r11d, esi
mov r14d, r11d
mov ebp, edx
not ebp
and r11d, ebp
mov r15d, eax
mov r12d, eax
and ebp, eax
and eax, 0x5802ca2
xor eax, r9d
xor eax, 0x5e4aca7
and ecx, 0x5802ca2
or ecx, eax
and r10d, 0x8a66c31d
xor r10d, ecx
xor ebx, 0x75993ce2
xor r8d, 0x8a66c31d
or r8d, ebx
mov eax, edx
and eax, 0x8a66c31d
xor r10d, 0x8f826fba
not r8d
or r8d, r10d
and r14d, 0x75993cfe
mov ecx, edx
or ecx, 0xe862c901
and ecx, 0xe9f2fde1
xor ecx, r14d
mov r9d, edx
xor r9d, 0x8840401d
and r9d, eax
not eax
xor ecx, 0x61b2bde0
and r11d, 0x19034e0
or r11d, ecx
mov ecx, edx
and ecx, 0x8400014
xor esi, eax
and eax, 0xa0004009
add eax, ecx
add eax, 0x2068300
xor eax, r9d
xor eax, 0x5e4f8b16
and r9d, 0x8840401d
or r9d, eax
xor r9d, r11d
mov eax, edx
xor eax, 0x8a66c31d
or eax, esi
not eax
or eax, r9d
xor eax, r8d
xor r15d, 0x5c5f2d04
mov ecx, edx
xor ecx, 0xa3a0d2fb
xor r12d, 0xa3a0d2fb
and r12d, ecx
xor edx, 0x5c5f2d04
and edx, r15d
or ebp, edx
or ebp, r12d
not ebp
or ebp, eax
mov dword [rdi + 4], ebp
jmp 0x18002419c
mov eax, dword [r14]
mov r11, qword [rsp + 0x38]
mov ecx, r11d
mov edx, eax
mov r8d, r11d
or r11d, eax
xor eax, 0x9150ebd
xor ecx, 0x9150ebd
xor edx, 0xf6eaf142
and edx, ecx
xor r8d, 0xf6eaf142
and r8d, eax
or r8d, edx
not r11d
or r11d, r8d
mov edx, r11d
not edx
mov eax, edi
not eax
mov r8d, eax
and r8d, 0xe80e50e8
mov ecx, edi
xor ecx, 0x17f1af17
or ecx, r8d
or edx, 0x17f1af17
mov r8d, r11d
and r8d, 0xa1000
mov r9d, edx
and r9d, 0xcd004920
and edx, 0x10c40098
mov r10d, r11d
and r10d, 0x20000040
add r8d, r9d
add r8d, 0x10c40098
lea r9d, [r10 + rdx]
add r9d, 0x20a1001
mov edx, r11d
and edx, 0x17f1af17
xor edx, r9d
xor edx, r8d
mov r8d, r11d
xor r8d, 0xe80e50e8
mov r9d, r11d
xor r9d, 0x17f1af17
or r9d, r8d
xor edx, 0x270409c9
mov r8d, edx
xor r8d, r9d
or edx, r9d
not edx
or edx, r8d
and edi, 0xc80a5028
mov r8d, eax
and r8d, 0x200400c0
or r8d, edi
mov r9d, r8d
xor r9d, 0xc80a5028
mov r10d, r9d
and r10d, 0x600840e0
mov esi, eax
and esi, 0x88061008
or esi, r10d
xor esi, ecx
and r9d, 0xa80040e8
mov r10d, r8d
and r10d, 0x400e1000
or r10d, r9d
xor r10d, ecx
xor r10d, 0xbff5efff
xor r8d, 0x37f5afd7
and r8d, ecx
or r8d, r10d
and r8d, esi
xor r8d, edx
or eax, r11d
and eax, r8d
not eax
mov dword [r14], eax
jmp 0x18002419c