Function at 0x14031c960
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 qword [rsp + 0x30], r8
mov rax, qword [rcx + 0x48]
mov r8, rax
shl r8, 4
mov edi, dword [rcx + r8 + 0x60]
mov r9d, dword [rcx + r8 + 0x64]
mov ebx, edi
not ebx
mov r10d, dword [rdx]
mov r14d, dword [rdx + 4]
mov r11d, ebx
and r11d, r10d
xor ebx, r10d
not ebx
and ebx, edi
or ebx, r11d
mov edi, ebx
not edi
not r14d
mov r10d, r14d
or r10d, r9d
not r10d
and r14d, r9d
mov r9d, dword [rdx + 8]
mov r12d, r9d
xor r12d, r9d
not r12d
and r12d, dword [rcx + r8 + 0x68]
or r14d, r10d
xor r12d, r9d
mov edx, dword [rdx + 0xc]
mov r15d, edx
xor r15d, r15d
not r15d
mov qword [rsp + 0x28], rcx
and r15d, dword [rcx + r8 + 0x6c]
xor r15d, edx
mov edx, ebx
xor edx, 0xff
and edi, 0xffffff00
or edi, edx
not edi
lea r13, [0x1404dd840]
mov rdx, r15
shr rdx, 8
mov r8d, dword [0x1405d88c0]
mov r9d, r8d
xor r9d, 0x41bc5e5e
and r8d, 0x41bc5e5e
lea r8d, [r9 + r8*2]
mov r9d, edx
not r9d
mov r10d, r9d
and r10d, r8d
mov r11d, edx
and edx, r8d
not r8d
and r11d, r8d
or r11d, r10d
xor r8d, r9d
or edx, r8d
not edx
or edx, r11d
not edx
lea rsi, [0x1404ddc40]
mov r9d, r12d
shr r9d, 0x10
mov r10d, r9d
xor r10d, 0xff
and r10d, r9d
mov r11d, r9d
not r11d
movzx r9d, r11b
or r10d, r9d
and r11d, 0xffffff00
or r11d, r10d
not r11d
lea r9, [0x1404de040]
mov ecx, dword [r13 + rdi*4]
mov edx, dword [rsi + rdx*4]
mov r10d, ecx
not r10d
mov edi, edx
xor edi, r10d
not edi
and edi, ecx
and r10d, edx
or r10d, edi
mov ecx, dword [r9 + r11*4]
mov edx, ecx
not edx
mov edi, r10d
xor edi, edx
and edx, r10d
not r10d
mov r11d, r10d
and r11d, ecx
xor r10d, ecx
mov ecx, r14d
shr ecx, 0x16
and ecx, 0xfffffffc
or edx, r10d
lea r8, [0x1404de440]
not edx
or edx, edi
not r11d
mov edi, r11d
xor edi, edx
or r11d, edx
not r11d
or r11d, edi
xor r11d, dword [rcx + r8]
mov ecx, r14d
not ecx
mov edx, r14d
xor edx, 0xff
and ecx, 0xffffff00
or ecx, edx
mov edx, ebx
shr edx, 8
mov edi, edx
not edi
mov ebp, edx
xor edx, 0xffffff00
and edx, edi
xor ebp, 0xff
or edx, ebp
mov edi, r15d
mov r10, qword [rsp + 0x30]
mov dword [r10], r11d
not ecx
not edx
shr edi, 0x10
movzx edi, dil
mov edx, dword [rsi + rdx*4]
mov rbp, r13
xor edx, dword [r13 + rcx*4]
mov ecx, dword [r9 + rdi*4]
mov edi, ecx
xor edi, ecx
not edi
and edi, edx
mov edx, r12d
shr edx, 0x16
and edx, 0xfffffffc
xor edi, ecx
mov ecx, dword [rdx + r8]
mov r9d, ecx
xor r9d, ecx
not r9d
and r9d, edi
xor r9d, ecx
mov dword [r10 + 4], r9d
mov edi, r14d
shr edi, 8
mov edx, edi
not edx
xor edi, 0xff
mov ecx, dword [0x1405d88c0]
lea r13d, [rcx + 0x41bc5e5e]
add cl, 0x6f
mov r8d, ebx
shr r8d, cl
and edx, 0xffffff00
or edx, edi
mov ecx, r8d
not ecx
xor r8d, 0xff
and ecx, 0xffffff00
or ecx, r8d
and r13d, r12d
not edx
mov edx, dword [rsi + rdx*4]
xor edx, dword [rbp + r13*4]
not ecx
lea r8, [0x1404de040]
mov ecx, dword [r8 + rcx*4]
mov r8d, edx
not r8d
mov edi, ecx
not edi
mov r13d, r8d
xor r13d, edi
xor edi, edx
and r13d, r8d
and r8d, ecx
or r8d, edi
not r8d
or r8d, r13d
lea r13, [0x1404de440]
mov ecx, r15d
shr ecx, 0x18
mov edx, dword [r13 + rcx*4]
mov ecx, edx
xor ecx, edx
not ecx
and ecx, r8d
xor ecx, edx
shr r12d, 8
mov edx, r12d
not edx
xor r12d, 0xff
and edx, 0xffffff00
or edx, r12d
mov r12, r10
shr r14d, 0x10
mov r8d, r14d
not r8d
and r14d, 0xff00
movzx edi, r8b
or r14d, edi
movzx edi, r15b
mov r10, rsi
mov rsi, rbp
mov dword [r12 + 8], ecx
not edx
and r8d, 0xffffff00
or r8d, r14d
not r8d
shr ebx, 0x18
mov edi, dword [rbp + rdi*4]
mov edx, dword [r10 + rdx*4]
not edi
mov r14d, edi
or r14d, edx
not r14d
and edi, edx
or edi, r14d
lea rdx, [0x1404de040]
mov r8d, dword [rdx + r8*4]
mov r14d, edi
not r14d
mov edx, r8d
not edx
xor edi, edx
xor edx, r14d
and r14d, r8d
and edx, r8d
or edx, edi
not edx
or edx, r14d
mov r8d, dword [r13 + rbx*4]
mov edi, edx
not edi
mov r14d, edi
and r14d, r8d
and edx, r8d
mov ebx, r8d
not ebx
mov r8d, edi
and r8d, ebx
or edx, r8d
xor ebx, edi
and ebx, edi
or ebx, edx
not ebx
or ebx, r14d
mov dword [r12 + 0xc], ebx
dec rax
cmp rax, 2
setb dl
setae r14b
movzx edi, byte [0x1406147a0]
test dil, r14b
jne 0x14031ccfc
mov r8d, edi
not r8b
and r8b, r14b
jne 0x14031ccfc
and dil, dl
je 0x14031cfe1
mov rdx, qword [rsp + 0x28]
add rdx, 0x60
mov qword [rsp + 0x40], rdx
movabs rdx, 0xa1f9e3743eb41d87
not rdx
mov qword [rsp + 0x38], rdx
nop dword [rax]
mov rdx, rax
shl rdx, 4
mov rsi, qword [rsp + 0x40]
mov r13d, dword [rsi + rdx + 8]
mov r8d, dword [rsi + rdx]
mov r15d, r8d
mov edi, r9d
xor edi, r9d
xor r15d, r11d
not edi
and edi, dword [rsi + rdx + 4]
or r11d, r8d
and r11d, r15d
xor edi, r9d
mov r15d, edi
shr r15d, 0x16
mov r8d, r13d
not r8d
xor r13d, r8d
and r13d, ecx
xor r13d, r8d
and r8d, ecx
or r13d, r8d
mov ecx, dword [rsi + rdx + 0xc]
mov edx, ebx
not edx
not r13d
mov ebp, edx
and ebp, ecx
xor edx, ecx
or r13d, r8d
not ecx
and ecx, ebx
or ebp, ecx
and ebp, ebx
or edx, ecx
mov ecx, r11d
not edx
not ecx
mov r8d, r11d
xor r8d, 0xff
or edx, ebp
and ecx, 0xffffff00
or ecx, r8d
mov r8d, r13d
movzx ebx, dh
shr r8d, 0x10
mov r14, r12
mov r12d, r8d
not r12d
not ecx
xor r8d, 0xff
and r12d, 0xffffff00
or r12d, r8d
not r12d
lea r10, [0x1404ddc40]
mov r8d, dword [r10 + rbx*4]
lea r9, [0x1404dd840]
xor r8d, dword [r9 + rcx*4]
and r15d, 0xfffffffc
lea rsi, [0x1404de040]
mov ecx, dword [rsi + r12*4]
mov ebx, r8d
not ebx
mov ebp, ecx
xor ebp, ebx
and ebx, ecx
not ebp
and ebp, r8d
lea rcx, [0x1404de440]
mov ecx, dword [r15 + rcx]
mov r15d, ecx
xor r15d, ecx
or ebp, ebx
not r15d
mov r8d, edi
xor r8d, 0xffffff00
and r15d, ebp
and r8d, edi
mov ebx, r11d
shr ebx, 8
xor r15d, ecx
mov ecx, ebx
not ecx
and ebx, 0xffff00
mov dword [r14], r15d
or ebx, ecx
not ebx
mov rsi, r9
mov ecx, dword [r9 + r8*4]
mov r9d, dword [r10 + rbx*4]
mov r8d, ecx
not r8d
mov r12d, r9d
mov ebx, r11d
and r12d, r8d
xor r8d, r9d
shr ebx, 0xe
not r9d
mov ebp, r9d
xor ebp, ecx
or r12d, ebp
mov ebp, r13d
and r9d, ecx
mov ecx, edx
shr ebp, 0x16
shr ecx, 0x10
movzx ecx, cl
or r9d, r8d
not r12d
not r9d
or r9d, r12d
lea r12, [0x1404de040]
xor r9d, dword [r12 + rcx*4]
and ebp, 0xfffffffc
lea rcx, [0x1404de440]
xor r9d, dword [rbp + rcx]
mov dword [r14 + 4], r9d
movzx r8d, r13b
movzx ecx, byte [0x1405d88c0]
mov ebp, edi
add cl, 0x67
shr ebp, cl
movzx ecx, bpl
mov ecx, dword [r10 + rcx*4]
xor ecx, dword [rsi + r8*4]
mov r10, rsi
and ebx, 0x3fc
mov ebx, dword [rbx + r12]
mov rsi, r12
mov r8d, ecx
not r8d
mov ebp, r8d
xor ebp, ebx
mov r12d, ecx
not ebx
and r12d, ebx
or r12d, ebp
xor ebx, r8d
mov r8d, edx
movzx edx, dl
shr r8d, 0x18
and ebx, ecx
not r12d
lea rcx, [0x1404de440]
mov r8d, dword [rcx + r8*4]
mov ecx, r8d
xor ecx, r8d
or ebx, r12d
not ecx
and ecx, ebx
xor ecx, r8d
shr r13d, 8
mov r8d, r13d
not r8d
mov ebp, r13d
movzx ebx, r8b
and ebp, 0xffff00
or ebp, ebx
xor r13d, 0xffffff00
mov dword [r14 + 8], ecx
and r13d, r8d
shr edi, 0x10
mov ebx, edi
or r13d, ebp
not ebx
mov r8d, ebx
and r8d, 0xffffff00
not r13d
movzx r12d, dil
or r12d, r8d
mov edx, dword [r10 + rdx*4]
mov r8d, edx
xor r8d, edx
not r8d
lea r10, [0x1404ddc40]
and r8d, dword [r10 + r13*4]
lea r10, [0x1404de440]
mov ebp, r12d
not ebp
and r12d, ebx
and edi, ebp
or r12d, edi
xor ebx, ebp
not ebx
and ebx, ebp
or ebx, r12d
mov r12, r14
xor r8d, edx
shr r11d, 0x18
not ebx
xor r8d, dword [rsi + rbx*4]
mov edx, dword [r10 + r11*4]
mov ebx, edx
xor ebx, ebx
not ebx
and ebx, r8d
xor ebx, edx
add rax, qword [rsp + 0x38]
mov rdx, rax
movabs r8, 0xa1f9e3743eb41d87
and rax, r8
xor rdx, r8
lea rax, [rdx + rax*2]
mov dword [r14 + 0xc], ebx
mov r11d, r15d
cmp rax, 1
ja 0x14031cd20
mov eax, dword [r12]
mov r14d, eax
xor r14d, r14d
not r14d
mov r13, qword [rsp + 0x28]
and r14d, dword [r13 + 0x70]
mov rsi, r12
mov r12d, dword [r12 + 8]
xor r14d, eax
mov ecx, dword [r13 + 0x74]
mov eax, dword [r13 + 0x78]
mov edx, ecx
not edx
mov r15d, dword [rsi + 4]
xor r15d, edx
not r15d
and edx, r15d
and r15d, ecx
mov ecx, edx
not ecx
or edx, r15d
not r15d
and r15d, ecx
or r15d, edx
not r15d
or r15d, edx
mov ecx, eax
not ecx
mov edx, ecx
and edx, r12d
not r12d
mov r8d, eax
and r8d, r12d
or r8d, edx
and r8d, ecx
xor r12d, eax
or r12d, edx
not r12d
or r12d, r8d
xor ebx, dword [r13 + 0x7c]
mov edi, r14d
xor edi, 0xffffff00
and edi, r14d
mov eax, dword [0x1405d88a0]
sub eax, dword [0x1405d88c0]
add eax, 0xbe442dd7
cdqe
add rax, qword [0x1405d88b0]
mov ecx, 1
xor edx, edx
mov r8d, 0x948e687b
mov r9d, 0x5569fe3f
call qword [case.0x14016c073.0]
movzx eax, byte [rax + rdi]
mov byte [rsi], al
mov eax, ebx
shr eax, 8
mov ecx, eax
not ecx
and ecx, 0xffff00
mov edi, eax
xor edi, 0xff
or edi, ecx
not edi
or edi, ecx
and edi, eax
mov ebp, 0x8b36
mov eax, dword [0x1405d88a0]
add eax, ebp
cdqe
add rax, qword [0x1405d88b0]
mov ecx, 1
xor edx, edx
mov r8d, 0x948e687b
mov r9d, 0x5569fe3f
call qword [case.0x14016c073.0]
movzx eax, byte [rax + rdi]
mov byte [rsi + 1], al
mov eax, dword [0x1405d88c0]
mov ecx, eax
mov edx, dword [0x1405d88a0]
add edx, eax
add edx, 0x41bce895
xor eax, 0x6f
and ecx, 0x6f
lea ecx, [rax + rcx*2]
mov rax, r12
shr rax, cl
movzx edi, al
movsxd rax, edx
add rax, qword [0x1405d88b0]
mov ecx, 1
xor edx, edx
mov r8d, 0x948e687b
mov r9d, 0x5569fe3f
call qword [case.0x14016c073.0]
movzx eax, byte [rax + rdi]
mov byte [rsi + 2], al
movzx ecx, byte [0x1405d88c0]
add cl, 0x77
mov rdi, r15
shr rdi, cl
mov eax, dword [0x1405d88a0]
add eax, ebp
cdqe
add rax, qword [0x1405d88b0]
mov ecx, 1
xor edx, edx
mov r8d, 0x948e687b
mov r9d, 0x5569fe3f
call qword [case.0x14016c073.0]
movzx eax, byte [rax + rdi]
mov byte [rsi + 3], al
movzx edi, r15b
mov eax, dword [0x1405d88a0]
sub eax, dword [0x1405d88c0]
add eax, 0xbe442dd7
cdqe
add rax, qword [0x1405d88b0]
mov ecx, 1
xor edx, edx
mov r8d, 0x948e687b
mov r9d, 0x5569fe3f
call qword [case.0x14016c073.0]
movzx eax, byte [rax + rdi]
mov byte [rsi + 4], al
mov eax, r14d
shr eax, 8
mov edi, 0x41bc5e5e
add edi, dword [0x1405d88c0]
and edi, eax
mov eax, dword [0x1405d88a0]
add eax, ebp
cdqe
add rax, qword [0x1405d88b0]
mov ecx, 1
xor edx, edx
mov r8d, 0x948e687b
mov r9d, 0x5569fe3f
call qword [case.0x14016c073.0]
movzx eax, byte [rax + rdi]
mov byte [rsi + 5], al
mov eax, ebx
shr eax, 0x10
movzx edi, al
mov eax, dword [0x1405d88a0]
add eax, ebp
cdqe
add rax, qword [0x1405d88b0]
mov ecx, 1
xor edx, edx
mov r8d, 0x948e687b
mov r9d, 0x5569fe3f
call qword [case.0x14016c073.0]
movzx eax, byte [rax + rdi]
mov byte [rsi + 6], al
mov rdi, r12
shr rdi, 0x18
xor eax, eax
sub eax, dword [0x1405d88a0]
mov ecx, eax
xor ecx, 0x8d462fba
and eax, 0xd462fba
lea eax, [rcx + rax*2]
mov ecx, 0x8d46baf0
sub ecx, eax
movsxd rax, ecx
add rax, qword [0x1405d88b0]
mov ecx, 1
xor edx, edx
mov r8d, 0x948e687b
mov r9d, 0x5569fe3f
call qword [case.0x14016c073.0]
movzx eax, byte [rax + rdi]
mov byte [rsi + 7], al
mov edi, r12d
not edi
mov eax, r12d
xor eax, 0xff
and edi, 0xffffff00
or edi, eax
not edi
mov eax, dword [0x1405d88a0]
mov ecx, dword [0x1405d88c0]
add eax, ecx
add eax, 0xf3f3d32b
mov ecx, eax
xor ecx, 0xcdb78cb8
and eax, 0x4db78cb8
lea eax, [rcx + rax*2]
add eax, 0x801188b2
cdqe
add rax, qword [0x1405d88b0]
mov ecx, 1
xor edx, edx
mov r8d, 0x948e687b
mov r9d, 0x5569fe3f
call qword [case.0x14016c073.0]
movzx eax, byte [rax + rdi]
mov byte [rsi + 8], al
mov eax, r15d
shr eax, 8
mov ecx, eax
xor ecx, 0xffff00
mov edi, eax
xor edi, 0xffffff
and edi, eax
xor edi, ecx
and edi, eax
mov eax, dword [0x1405d88a0]
add eax, ebp
cdqe
add rax, qword [0x1405d88b0]
mov ecx, 1
xor edx, edx
mov r8d, 0x948e687b
mov r9d, 0x5569fe3f
call qword [case.0x14016c073.0]
movzx eax, byte [rax + rdi]
mov byte [rsi + 9], al
mov eax, r14d
shr eax, 0x10
mov edi, eax
not edi
xor eax, 0xff
and edi, 0xffffff00
mov ecx, edi
xor ecx, eax
not ecx
and ecx, eax
or edi, eax
or edi, ecx
not edi
mov eax, dword [0x1405d88a0]
add eax, ebp
cdqe
add rax, qword [0x1405d88b0]
mov r9d, dword [0x1405d88c0]
mov ecx, r9d
not ecx
mov edx, r9d
and edx, 0xbe43a29f
mov r8d, ecx
and r8d, 0x41bc5d60
or r8d, edx
mov edx, r9d
xor edx, 0x41bc5d60
and ecx, 0x3e43a29f
or ecx, edx
not ecx
lea ecx, [r8 + rcx*2]
lea edx, [r9 + 0x41bc5d5f]
lea r8d, [r9 - 0x29b53a26]
add r9d, 0x97265b9e
call qword [case.0x14016c073.0]
movzx eax, byte [rax + rdi]
mov byte [rsi + 0xa], al
mov rdi, rbx
shr rdi, 0x18
mov eax, dword [0x1405d88a0]
add eax, ebp
cdqe
add rax, qword [0x1405d88b0]
mov ecx, 1
xor edx, edx
mov r8d, 0x948e687b
mov r9d, 0x5569fe3f
call qword [case.0x14016c073.0]
movzx eax, byte [rax + rdi]
mov byte [rsi + 0xb], al
movzx edi, bl
mov eax, dword [0x1405d88a0]
add eax, ebp
cdqe
add rax, qword [0x1405d88b0]
mov ecx, 1
xor edx, edx
mov r8d, 0x948e687b
mov r9d, 0x5569fe3f
call qword [case.0x14016c073.0]
movzx eax, byte [rax + rdi]
mov byte [rsi + 0xc], al
shr r12d, 8
mov edi, r12d
not edi
xor r12d, 0xff
and edi, 0xffffff00
or edi, r12d
not edi
mov eax, dword [0x1405d88a0]
add eax, ebp
cdqe
add rax, qword [0x1405d88b0]
mov ecx, 1
xor edx, edx
mov r8d, 0x948e687b
mov r9d, 0x5569fe3f
call qword [case.0x14016c073.0]
movzx eax, byte [rax + rdi]
mov byte [rsi + 0xd], al
shr r15d, 0x10
mov edi, r15d
xor edi, 0xff00
add ebp, dword [0x1405d88a0]
and edi, r15d
movsxd rax, ebp
add rax, qword [0x1405d88b0]
mov ecx, 1
xor edx, edx
mov r8d, 0x948e687b
mov r9d, 0x5569fe3f
call qword [case.0x14016c073.0]
movzx eax, byte [rax + rdi]
mov byte [rsi + 0xe], al
mov r9d, dword [0x1405d88c0]
lea ecx, [r9 + 0x77]
shr r14, cl
xor ecx, ecx
sub ecx, dword [0x1405d88a0]
mov eax, ecx
xor eax, 0x9e44152c
and ecx, 0x1e44152c
lea eax, [rax + rcx*2]
neg eax
add eax, r9d
add eax, 0xe000fdc1
cdqe
add rax, qword [0x1405d88b0]
mov ecx, r9d
xor ecx, 0x41bc5d60
mov edx, r9d
and edx, 0x41bc5d60
lea ecx, [rcx + rdx*2]
lea edx, [r9 + 0x41bc5d5f]
lea r8d, [r9 - 0x29b53a26]
add r9d, 0x97265b9e
call qword [case.0x14016c073.0]
movzx eax, byte [rax + r14]
mov byte [rsi + 0xf], al
mov eax, dword [rsi]
mov ecx, dword [rsi + 4]
mov edx, eax
xor edx, eax
not edx
and edx, dword [r13 + 0x60]
xor edx, eax
mov dword [rsi], edx
mov eax, dword [r13 + 0x64]
mov edx, eax
not edx
mov r8d, ecx
xor r8d, edx
and edx, ecx
not r8d
and r8d, eax
or r8d, edx
mov dword [rsi + 4], r8d
mov eax, dword [r13 + 0x68]
xor dword [rsi + 8], eax
mov eax, dword [rsi + 0xc]
mov ecx, dword [r13 + 0x6c]
mov edx, ecx
not edx
not eax
mov r8d, edx
xor r8d, eax
and r8d, edx
and eax, ecx
or eax, r8d
mov dword [rsi + 0xc], eax
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret