Function at 0x14002c7f5
Capabilities:
Get memory capacity
Read .ini file

Disassembly:
push r14
push r15
push rbp
sub rsp, 0x1e0
mov rbp, r9
movsxd r10, dword [rcx + 0x160]
mov r14, r8
mov r11d, 1
cmp r10, 1
jle 0x14002c512
mov r9, qword [rcx + 0x168]
mov r8, qword [r9 + r11*8]
cmp byte [r8], 0x2d
je 0x14002c7f5
inc r11
cmp r11, r10
jl 0x14002c4fc
mov rax, rsp
lea r10, [rcx + 0x178]
add rcx, 0x188
lea r15, [rsp + 0x30]
xor r8d, r8d
mov r9, r15
mov qword [rax + 0x28], rcx
mov rcx, r10
mov dword [rax + 0x20], 0x104
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
lea rcx, [rsp + 0x170]
mov dword [rcx], 0x40
cmovne rbp, r15
call qword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
test eax, eax
je 0x14002c583
mov rdx, qword [rsp + 0x180]
cmp rdx, qword [rsp + 0x1a0]
mov r10, qword [rsp + 0x1a0]
cmovb r10, qword [rsp + 0x180]
jmp 0x14002c5bd
mov dword [rsp + 0x138], 0x38
lea rcx, [rsp + 0x138]
call qword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
mov rdx, qword [rsp + 0x148]
cmp rdx, qword [rsp + 0x168]
mov r10, qword [rsp + 0x168]
cmovb r10, qword [rsp + 0x148]
xor r8d, r8d
cmp byte [rbp], 0
je 0x14002c76e
xor edx, edx
xor r9d, r9d
movsx r11d, byte [rbp]
xor ecx, ecx
test r11d, r11d
je 0x14002c7c8
mov qword [rsp + 0x1d0], rbx
mov qword [rsp + 0x1b8], rsi
mov qword [rsp + 0x1c0], rdi
mov qword [rsp + 0x1c8], r12
mov qword [rsp + 0x1b0], r13
lea ebx, [r11 - 0x30]
cmp ebx, 9
jbe 0x14002c62d
inc rdx
mov ebx, 1
cmp r11d, 0x2d
cmove r9d, ebx
dec rcx
movsx r11d, byte [rdx + rbp]
test r11d, r11d
jne 0x14002c607
test r11d, r11d
je 0x14002c746
lea rdi, [rdx + 1]
movsx r11d, byte [rdi + rbp]
lea rsi, [rcx - 1]
lea ebx, [r11 - 0x30]
cmp ebx, 9
ja 0x14002c660
inc rdi
dec rsi
movsx r11d, byte [rdi + rbp]
lea ebx, [r11 - 0x30]
cmp ebx, 9
jbe 0x14002c64c
xor ebx, ebx
cmp rdx, rdi
jae 0x14002c6cd
add rcx, rdi
mov r12d, 1
mov r15, rcx
xor r13d, r13d
shr r15, 1
test r15, r15
jbe 0x14002c6b0
lea r12, [rbp + rdx]
lea rax, [rbx + rbx*4]
movsx rbx, byte [r12 + r13*2]
lea rbx, [rbx + rax*2 - 0x30]
lea rax, [rbx + rbx*4]
movsx rbx, byte [r12 + r13*2 + 1]
inc r13
lea rbx, [rbx + rax*2 - 0x30]
cmp r13, r15
jb 0x14002c683
lea r12, [r13*2 + 1]
lea r13, [r12 - 1]
cmp r13, rcx
jae 0x14002c6cd
lea r12, [rbp + r12 - 1]
movsx rdx, byte [r12 + rdx]
lea rcx, [rbx + rbx*4]
lea rbx, [rdx + rcx*2 - 0x30]
cmp r11d, 0x25
je 0x14002c792
cmp r11d, 0x70
je 0x14002c792
cmp r11d, 0x4b
je 0x14002c78c
cmp r11d, 0x6b
je 0x14002c78c
cmp r11d, 0x4d
je 0x14002c713
cmp r11d, 0x6d
je 0x14002c713
cmp r11d, 0x47
je 0x14002c70d
cmp r11d, 0x67
jne 0x14002c717
shl rbx, 0x1e
jmp 0x14002c717
shl rbx, 0x14
mov rdx, rbx
neg rdx
test r9d, r9d
cmovne rbx, rdx
add r8, rbx
test r11d, r11d
je 0x14002c746
lea rdx, [rdi + 1]
movsx r11d, byte [rdx + rbp]
test r11d, r11d
je 0x14002c746
xor r9d, r9d
lea rcx, [rsi - 1]
jmp 0x14002c607
mov rbx, qword [rsp + 0x1d0]
mov rsi, qword [rsp + 0x1b8]
mov rdi, qword [rsp + 0x1c0]
mov r12, qword [rsp + 0x1c8]
mov r13, qword [rsp + 0x1b0]
cmp r8, r14
cmovg r14, r8
cmp r14, r10
cmovl r10, r14
mov rax, r10
add rsp, 0x1e0
pop rbp
pop r15
pop r14
ret
shl rbx, 0xa
jmp 0x14002c717
mov ecx, 0x64
cmp rbx, 0x64
movabs r12, 0x47ae147ae147ae15
cmova rbx, rcx
imul rbx, r10
mov rax, rbx
mul r12
sub rbx, rdx
shr rbx, 1
add rdx, rbx
mov rbx, rdx
shr rbx, 6
jmp 0x14002c717
mov qword [rsp + 0x1d0], rbx
mov qword [rsp + 0x1b8], rsi
mov qword [rsp + 0x1c0], rdi
mov qword [rsp + 0x1c8], r12
mov qword [rsp + 0x1b0], r13
jmp 0x14002c62d
xor eax, eax
mov r15b, byte [rax + rdx]
inc rax
test r15b, r15b
je 0x14002c80e
cmp r15b, byte [rax + r8]
je 0x14002c7f7
jmp 0x14002c50a
cmp byte [rax + r8], 0x3d
jne 0x14002c81f
inc rax
cmp byte [rax + r8], 0x3d
je 0x14002c815
add rax, r8
xor ecx, ecx
mov dl, byte [rax]
test dl, dl
je 0x14002c838
mov byte [rsp + rcx + 0x30], dl
inc rcx
mov dl, byte [rcx + rax]
test dl, dl
jne 0x14002c82a
mov byte [rsp + rcx + 0x30], 0
mov eax, ecx
lea r15, [rsp + 0x30]
jmp 0x14002c542