Function at 0x140015c50
Capabilities:
Get system information on windows
Read .ini file

Disassembly:
push r14
push r15
push rbp
sub rsp, 0x190
mov rbp, r8
movsxd r10, dword [rcx + 0x160]
mov r11d, 1
cmp r10, 1
jle 0x140015c8f
mov r9, qword [rcx + 0x168]
mov r8, qword [r9 + r11*8]
cmp byte [r8], 0x2d
je 0x140015f1c
inc r11
cmp r11, r10
jl 0x140015c79
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 + 0x138]
cmovne rbp, r15
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov r9d, dword [rsp + 0x158]
xor ecx, ecx
cmp byte [rbp], 0
je 0x140015e8a
xor eax, eax
xor r8d, r8d
movsx r11d, byte [rbp]
xor edx, edx
test r11d, r11d
je 0x140015eea
mov qword [rsp + 0x180], rbx
mov qword [rsp + 0x178], rsi
mov esi, 1
mov qword [rsp + 0x170], rdi
mov qword [rsp + 0x188], r12
mov qword [rsp + 0x168], r13
lea ebx, [r11 - 0x30]
cmp ebx, 9
jbe 0x140015d4f
inc rax
mov ebx, 1
cmp r11d, 0x2d
cmove r8d, ebx
dec rdx
movsx r11d, byte [rax + rbp]
test r11d, r11d
jne 0x140015d29
test r11d, r11d
je 0x140015e62
lea rdi, [rax + 1]
movsx r11d, byte [rdi + rbp]
lea r10, [rdx - 1]
lea ebx, [r11 - 0x30]
cmp ebx, 9
ja 0x140015d82
inc rdi
dec r10
movsx r11d, byte [rdi + rbp]
lea ebx, [r11 - 0x30]
cmp ebx, 9
jbe 0x140015d6e
xor ebx, ebx
cmp rax, rdi
jae 0x140015de9
add rdx, rdi
mov r12, rsi
mov r14, rdx
xor r13d, r13d
shr r14, 1
test r14, r14
jbe 0x140015dcc
lea r12, [rbp + rax]
lea r15, [rbx + rbx*4]
movsx rbx, byte [r12 + r13*2]
lea rbx, [rbx + r15*2 - 0x30]
movsx r15, byte [r12 + r13*2 + 1]
inc r13
lea rbx, [rbx + rbx*4]
lea rbx, [r15 + rbx*2 - 0x30]
cmp r13, r14
jb 0x140015da2
lea r12, [r13 + r13 + 1]
lea r13, [r12 - 1]
cmp r13, rdx
jae 0x140015de9
lea r12, [rbp + r12 - 1]
movsx rax, byte [r12 + rax]
lea rdx, [rbx + rbx*4]
lea rbx, [rax + rdx*2 - 0x30]
cmp r11d, 0x25
je 0x140015eb3
cmp r11d, 0x70
je 0x140015eb3
cmp r11d, 0x4b
je 0x140015ead
cmp r11d, 0x6b
je 0x140015ead
cmp r11d, 0x4d
je 0x140015e2f
cmp r11d, 0x6d
je 0x140015e2f
cmp r11d, 0x47
je 0x140015e29
cmp r11d, 0x67
jne 0x140015e33
shl rbx, 0x1e
jmp 0x140015e33
shl rbx, 0x14
mov rax, rbx
neg rax
test r8d, r8d
cmovne rbx, rax
add rcx, rbx
test r11d, r11d
je 0x140015e62
lea rax, [rdi + 1]
movsx r11d, byte [rax + rbp]
test r11d, r11d
je 0x140015e62
xor r8d, r8d
lea rdx, [r10 - 1]
jmp 0x140015d29
mov rbx, qword [rsp + 0x180]
mov rsi, qword [rsp + 0x178]
mov rdi, qword [rsp + 0x170]
mov r12, qword [rsp + 0x188]
mov r13, qword [rsp + 0x168]
mov eax, 1
test rcx, rcx
cmovle rcx, rax
cmp rcx, r9
cmovl r9, rcx
mov eax, r9d
add rsp, 0x190
pop rbp
pop r15
pop r14
ret
shl rbx, 0xa
jmp 0x140015e33
mov r12d, 0x64
cmp rbx, 0x64
movabs r13, 0x47ae147ae147ae15
cmova rbx, r12
imul rbx, r9
mov rax, rbx
mul r13
sub rbx, rdx
shr rbx, 1
add rdx, rbx
mov rbx, rdx
shr rbx, 6
jmp 0x140015e33
mov qword [rsp + 0x180], rbx
mov qword [rsp + 0x178], rsi
mov esi, 1
mov qword [rsp + 0x170], rdi
mov qword [rsp + 0x188], r12
mov qword [rsp + 0x168], r13
jmp 0x140015d4f
xor eax, eax
mov r14b, byte [rax + rdx]
inc rax
test r14b, r14b
je 0x140015f35
cmp r14b, byte [rax + r8]
je 0x140015f1e
jmp 0x140015c87
cmp byte [rax + r8], 0x3d
jne 0x140015f46
inc rax
cmp byte [rax + r8], 0x3d
je 0x140015f3c
add rax, r8
xor ecx, ecx
mov dl, byte [rax]
test dl, dl
je 0x140015f5f
mov byte [rsp + rcx + 0x30], dl
inc rcx
mov dl, byte [rcx + rax]
test dl, dl
jne 0x140015f51
mov byte [rsp + rcx + 0x30], 0
mov eax, ecx
lea r15, [rsp + 0x30]
jmp 0x140015cbf