Function at 0x14012efa0
Capabilities:
Encode data using xor
Get memory capacity

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x18
lea rbp, [rsp + 0x10]
mov rsi, rcx
mov eax, dword [0x140229c78]
mov ecx, dword [0x140229c7c]
mov edx, eax
and edx, ecx
not eax
not ecx
or ecx, eax
not ecx
or ecx, edx
imul eax, ecx, 0x83cc34b0
mov ecx, eax
xor ecx, 0x2404b740
xor eax, 0x5a9b4893
mov edx, eax
and edx, 0x8bfb40b1
and ecx, 0x7404bf40
imul ecx, edx
mov edx, eax
and edx, 0x7404bf42
or eax, 0x7404bf42
imul eax, edx
add eax, ecx
cmp eax, 0x2a69b332
jae 0x14012f036
mov eax, 0x70
call fcn.1401516e0
sub rsp, rax
mov eax, 0x40
call fcn.1401516e0
sub rsp, rax
mov eax, 0x10
call fcn.1401516e0
sub rsp, rax
xor ecx, ecx
nop dword [rax + rax]
mov eax, 0x70
call fcn.1401516e0
sub rsp, rax
mov r14, rsp
mov eax, 0x40
call fcn.1401516e0
sub rsp, rax
mov r15, rsp
mov eax, 0x10
call fcn.1401516e0
sub rsp, rax
mov r8, rsp
test cl, cl
jne 0x14012f040
mov eax, 0x10
call fcn.1401516e0
sub rsp, rax
mov r12, rsp
mov eax, 0xd0
call fcn.1401516e0
sub rsp, rax
mov rdi, rsp
mov eax, dword [0x14022cb7c]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp byte [rax + 0x60], 0
mov qword [rbp - 8], rsi
mov qword [rbp], r8
je 0x14012f157
nop dword [rax]
mov eax, dword [0x140229ca0]
mov ecx, dword [0x140229ca4]
mov edx, eax
and edx, ecx
add edx, edx
add eax, ecx
sub eax, edx
add eax, 0xb67828bc
imul rax, rax, 0x2bfd1181
shr rax, 0x3c
add eax, 0x2cc7c0bd
cmp eax, 0xf2268f69
ja 0x14012f0c0
mov eax, dword [0x14022cb7c]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rsi, qword [rax + 0x68]
xor eax, eax
nop
test al, al
jne 0x14012f110
mov eax, dword [0x14022cb7c]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rbx, qword [rax + 0x70]
nop
mov eax, dword [0x140229ca8]
and eax, dword [0x140229cac]
add eax, 0x528563d5
and eax, 0x2ef76aaf
add eax, 0x4dfdc881
cmp eax, 0x65563adf
ja 0x14012f130
jmp 0x14012f2bd
xorps xmm0, xmm0
movups xmmword [r12], xmm0
mov eax, dword [0x140229c80]
xor edx, edx
div dword [0x140229c84]
imul eax, eax, 0x72ef8061
add eax, 0xf32bc8a0
and eax, 0x9405e207
cmp eax, 0x5e6e8274
jne 0x14012f1a0
sub rsp, 0x20
mov edx, 0x10
mov rcx, r12
call fcn.14014ef90
add rsp, 0x20
nop dword [rax]
mov esi, dword [0x140229c88]
xor esi, dword [0x140229c8c]
mov eax, esi
not eax
mov ecx, esi
and ecx, 0x32e4f360
and eax, 0xd1b0c9f
imul eax, ecx
mov ecx, esi
and ecx, 0xd1b0c9f
or esi, 0xd1b0c9f
imul esi, ecx
add esi, eax
or esi, 0xc8002
and esi, 0x299cac1b
sub rsp, 0x20
mov edx, 0x10
mov rcx, r12
call fcn.14014ef90
add rsp, 0x20
cmp esi, 0xce6fd701
je 0x14012f1a0
mov eax, dword [0x140229c90]
xor eax, dword [0x140229c94]
add eax, 0x329ed71f
mov ecx, eax
not ecx
or ecx, 0x30694a00
and ecx, 0x706d6a00
and eax, 0x849295ee
or eax, ecx
xor eax, 0xedfb765d
cmp eax, 0x504a69d3
jb 0x14012f292
mov eax, dword [0x140229c98]
add eax, dword [0x140229c9c]
mov ecx, eax
or ecx, 0x82db75ef
not eax
or eax, 0x7d248a10
and eax, ecx
not eax
add eax, 0xdda9fc9f
shr eax, 1
imul rax, rax, 0x2254f13d
shr rax, 0x3c
mov rsi, qword [r12]
mov ecx, dword [0x14022cb7c]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
mov rbx, qword [r12 + 8]
mov byte [rcx + 0x60], 1
mov qword [rcx + 0x70], rbx
cmp eax, 0xfcf666cc
jne 0x14012f2bd
mov rax, qword [r12 + 8]
mov ecx, dword [0x14022cb7c]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
mov byte [rcx + 0x60], 1
mov qword [rcx + 0x70], rax
jmp 0x14012f230
xor eax, eax
test al, al
jne 0x14012f32e
mov eax, dword [0x140229cb0]
xor edx, edx
div dword [0x140229cb4]
mov r13d, eax
xor r13d, 0xed40b636
add r13d, 0xbcf6ff8c
not r13d
or r13d, 0x2d2da886
lea rax, [rsi + 1]
mov ecx, dword [0x14022cb7c]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
mov qword [rcx + 0x68], rax
movzx eax, byte [0x14022cb78]
sub rsp, 0x20
mov edx, 0x58410
xor ecx, ecx
call fcn.140107940
add rsp, 0x20
cmp r13d, 0xa2cbbc2b
jne 0x14012f36c
lea rax, [rsi + 1]
mov ecx, dword [0x14022cb7c]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
mov qword [rcx + 0x68], rax
movzx eax, byte [0x14022cb78]
sub rsp, 0x20
mov edx, 0x58410
xor ecx, ecx
call fcn.140107940
add rsp, 0x20
jmp 0x14012f2c3
mov r12, rax
test rax, rax
je 0x14012f603
add r12, 0x58000
sub rsp, 0x20
mov r8d, 0x410
mov rcx, r12
mov dl, 0xff
call sub.VCRUNTIME140.dll_memset
add rsp, 0x20
xorps xmm0, xmm0
movups xmmword [rdi + 0x70], xmm0
movups xmmword [rdi + 0x80], xmm0
mov qword [rdi], 0
mov qword [rdi + 8], 8
mov qword [rdi + 0x10], 0
movabs rax, 0x8000000000000000
mov qword [rdi + 0x18], rax
mov dword [rdi + 0x30], 0
mov byte [rdi + 0x38], 0
mov eax, dword [0x140229cb8]
mov ecx, dword [0x140229cbc]
mov edx, eax
xor edx, ecx
not ecx
and ecx, eax
add ecx, ecx
sub ecx, edx
mov eax, ecx
and eax, 0x8b3cf978
mov edx, eax
not edx
and edx, 0x87ae87d2
mov r8d, ecx
and r8d, 0x8107828
imul r8d, edx
and ecx, 0x832c8150
or eax, 0x87ae87d2
imul eax, ecx
add eax, r8d
imul rax, rax, 0x2b847c4f
shr rax, 0x3d
cmp eax, 0x53be685a
jne 0x14012f471
mov qword [rdi + 0x40], r12
mov qword [rdi + 0x48], 0x3ff
mov qword [rdi + 0x50], 0x380
mov qword [rdi + 0x58], 0
mov qword [rdi + 0x60], rsi
mov qword [rdi + 0x68], rbx
mov qword [rdi + 0x90], 0
movups xmmword [r15 + 0x30], xmm0
movups xmmword [r15 + 0x20], xmm0
movups xmmword [r15 + 0x10], xmm0
movups xmmword [r15], xmm0
mov r13, rdi
add r13, 0x70
nop dword [rax + rax]
mov eax, dword [0x140229cc0]
imul eax, dword [0x140229cc4]
xor eax, 0x4a0570b7
imul rax, rax, 0x33ceadb5
shr rax, 0x3d
or eax, 0x343836de
mov qword [rdi + 0x40], r12
mov qword [rdi + 0x48], 0x3ff
mov qword [rdi + 0x50], 0x380
mov qword [rdi + 0x58], 0
mov qword [rdi + 0x60], rsi
mov qword [rdi + 0x68], rbx
mov qword [rdi + 0x90], 0
movups xmmword [r15 + 0x30], xmm0
movups xmmword [r15 + 0x20], xmm0
movups xmmword [r15 + 0x10], xmm0
movups xmmword [r15], xmm0
cmp eax, 0x3054f9d9
jb 0x14012f480
mov dword [r15], 0x40
sub rsp, 0x20
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
add rsp, 0x20
test eax, eax
jne 0x14012f5cf
mov eax, dword [0x140229cc8]
and eax, dword [0x140229ccc]
mov ecx, eax
not ecx
or ecx, 0x42146b09
add eax, ecx
inc eax
xor eax, 0x2ff07fed
add eax, 0x92a85c93
cmp eax, 0x63c5a0c1
jae 0x14012f543
sub rsp, 0x20
call fcn.14014f250
add rsp, 0x20
mov rsi, qword [sym.imp.KERNEL32.dll_GetLastError]
nop word [rax + rax]
mov ebx, dword [0x140229cd0]
or ebx, dword [0x140229cd4]
add ebx, 0xe1ab0ecd
xor ebx, 0xa52111ef
sub rsp, 0x20
call rsi
add rsp, 0x20
cmp ebx, 0x25d41468
ja 0x14012f550
nop word [rax + rax]
mov eax, dword [0x140229cd8]
add eax, dword [0x140229cdc]
mov ecx, eax
not ecx
mov edx, eax
and edx, 0x23e92d2
and ecx, 0xfdc16d2d
imul ecx, edx
mov edx, eax
and edx, 0xfdc16d2d
or eax, 0xfdc16d2d
imul eax, edx
add eax, ecx
imul rax, rax, 0x125cbf2d
shr rax, 0x3c
or eax, 0xf5e01c80
xor eax, 0x337f3b80
cmp eax, 0xeed2cb32
ja 0x14012f580
mov eax, dword [0x140229ce0]
mov ecx, dword [0x140229ce4]
mov edx, ecx
not edx
and edx, eax
xor ecx, eax
add ecx, eax
sub ecx, edx
and ecx, 0x891ce6b
add ecx, 0xcf1bc015
and ecx, 0xf0e84c1
cmp ecx, 0xd0347c2a
jbe 0x14012f605
jmp 0x14012f640
ud2
mov eax, dword [0x140229cec]
not eax
add eax, dword [0x140229ce8]
imul eax, eax, 0x16855e9a
add eax, 0xb2af2cde
mov ecx, eax
not ecx
or ecx, 0x4c21a97e
or eax, 0xb3de5680
and eax, ecx
movups xmm0, xmmword [r15 + 8]
movups xmmword [r13], xmm0
cmp eax, 0x994f5c10
jae 0x14012f64c
movups xmm0, xmmword [r15 + 8]
movups xmmword [r13], xmm0
jmp 0x14012f605
xorps xmm0, xmm0
movups xmmword [r14 + 0x50], xmm0
movups xmmword [r14 + 0x40], xmm0
movups xmmword [r14 + 0x30], xmm0
movups xmmword [r14 + 0x20], xmm0
movups xmmword [r14 + 0x10], xmm0
movups xmmword [r14], xmm0
mov qword [r14 + 0x60], 0
mov eax, dword [0x140229cf0]
xor edx, edx
div dword [0x140229cf4]
mov ecx, eax
and ecx, 0x49020b7d
add ecx, ecx
neg ecx
add eax, ecx
add eax, 0x9ba08710
cmp eax, 0x27cc8bc3
mov rbx, qword [rbp - 8]
jb 0x14012f701
mov eax, dword [0x140229cf8]
imul eax, dword [0x140229cfc]
mov ecx, eax
not ecx
mov edx, eax
or edx, 0x729e57e7
mov r8d, edx
and r8d, 0xab6db93f
and ecx, 0x4000000
imul ecx, r8d
and edx, 0x549246c0
or eax, 0x769e57e7
imul eax, edx
add eax, ecx
imul esi, eax, 0x4f136d87
sub rsp, 0x20
mov rcx, r14
mov edx, 0x68
call qword [sym.imp.KERNEL32.dll_K32GetPerformanceInfo]
add rsp, 0x20
cmp esi, 0x37ef93a6
jae 0x14012f719
sub rsp, 0x20
mov rcx, r14
mov edx, 0x68
call qword [sym.imp.KERNEL32.dll_K32GetPerformanceInfo]
add rsp, 0x20
jmp 0x14012f6a0
test eax, eax
je 0x14012f767
mov r8, qword [r14 + 0x20]
mov rdx, qword [r14 + 0x10]
xor r9d, r9d
sub rdx, r8
cmovb rdx, r9
mov rcx, qword [r14 + 0x50]
mov rax, rcx
mul rdx
mov r10, 0xffffffffffffffff
cmovo rax, r10
mov rdx, qword [r14 + 8]
sub rdx, r8
cmovb rdx, r9
mov qword [rdi + 0x80], rax
mov rax, rcx
mul rdx
cmovo rax, r10
mov qword [rdi + 0x88], rax
sub rsp, 0x20
mov rcx, rdi
mov dl, 1
call fcn.140109250
add rsp, 0x20
mov rdx, qword [rbp]
mov byte [rdx], 1
movabs rax, 0x202020202020101
mov qword [rdx + 1], rax
sub rsp, 0x20
mov rcx, rdi
call fcn.14010a960
add rsp, 0x20
mov eax, dword [0x140229d00]
mov ecx, dword [0x140229d04]
mov edx, ecx
not edx
mov r8d, eax
and r8d, edx
or edx, eax
not edx
imul edx, r8d
mov r8d, eax
and r8d, ecx
or eax, ecx
imul eax, r8d
add eax, edx
not eax
or eax, 0xc80ce06e
and eax, 0xc82cfc6e
cmp eax, 0x68313f31
jne 0x14012f800
sub rsp, 0x20
mov r8d, 0xd0
mov rcx, rbx
mov rdx, rdi
call sub.VCRUNTIME140.dll_memcpy
add rsp, 0x20
nop word cs:[rax + rax]
mov esi, dword [0x140229d08]
add esi, dword [0x140229d0c]
not esi
or esi, 0x802210
and esi, 0x84b690
sub rsp, 0x20
mov r8d, 0xd0
mov rcx, rbx
mov rdx, rdi
call sub.VCRUNTIME140.dll_memcpy
add rsp, 0x20
cmp esi, 0x62c7f415
ja 0x14012f800
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret