Function at 0x140004580
Capabilities:
Check mutex on windows
Read .ini file

Disassembly:
mov rax, rsp
push rbp
lea rbp, [rax - 0x248]
sub rsp, 0x340
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r14
movaps xmmword [rax - 0x18], xmm6
movaps xmmword [rax - 0x28], xmm7
mov rax, qword [0x14003e050]
xor rax, rsp
mov qword [rbp + 0x210], rax
xor r14d, r14d
mov dword [rsp + 0x30], r14d
mov eax, dword [0x140040908]
test al, 1
jne 0x1400046dc
or eax, 1
mov dword [0x140040908], eax
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x58], 7
mov word [rsp + 0x40], r14w
lea r8d, [r14 + 0x19]
lea rdx, str.RCImage_Update_Config_Ini
lea rcx, [rsp + 0x40]
call fcn.140001fe0
nop
mov qword [0x140040910], r14
mov word [0x140040918], r14w
cmp qword [rsp + 0x50], r14
je 0x140004640
lea r8, [rsp + 0x40]
cmp qword [rsp + 0x58], 8
cmovae r8, qword [rsp + 0x40]
jmp 0x140004643
mov r8, r14
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexW]
mov qword [0x140040910], rax
test rax, rax
je 0x140004679
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, byte [0x140040919]
mov edx, 1
cmp eax, 0xb7
cmove ecx, edx
mov byte [0x140040919], cl
mov rdx, qword [rsp + 0x58]
cmp rdx, 8
jb 0x1400046bb
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400046b6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140004bb8
call fcn.140018450
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x58], 7
mov word [rsp + 0x40], r14w
lea rcx, [0x14002b550]
call fcn.140018c04
nop
cmp qword [0x140040910], 0
je 0x1400046f3
cmp byte [0x140040919], 0
jne 0x140004b76
lea rcx, [rbp - 0x20]
call fcn.140017f70
nop
lea r8, str.temp.ini
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140002ba0
nop
mov rdx, qword [rbp - 8]
cmp rdx, 8
jb 0x140004752
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000474d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140004bbe
call fcn.140018450
movdqa xmm0, xmmword [0x140035c40]
movdqu xmmword [rbp - 0x10], xmm0
mov word [rbp - 0x20], r14w
lea rcx, [rsp + 0x60]
call fcn.140004f40
test al, al
je 0x140004b24
xor edx, edx
mov r8d, 0x20a
lea rcx, [rbp]
call fcn.140019e30
lea rax, [rsp + 0x60]
cmp qword [rsp + 0x78], 8
cmovae rax, qword [rsp + 0x60]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x104
lea r9, [rbp]
lea r8, [0x140034868]
lea rdx, str.Version
lea rcx, str.Upgrade
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x60]
call fcn.140012630
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x50], r14
mov edx, 7
mov qword [rsp + 0x58], rdx
mov word [rsp + 0x40], r14w
cmp word [rbp], 0
je 0x140004ad3
lea rcx, [rbp - 0x80]
call fcn.140018030
mov rbx, rax
lea rax, [rbp]
mov rdx, 0xffffffffffffffff
nop
inc rdx
cmp word [rax + rdx*2], 0
jne 0x140004810
mov rcx, qword [rbx + 0x10]
mov r8, qword [rbx + 0x18]
mov rax, r8
sub rax, rcx
cmp rdx, rax
ja 0x140004859
lea rsi, [rcx + rdx]
mov qword [rbx + 0x10], rsi
mov rdi, rbx
cmp r8, 8
jb 0x140004841
mov rdi, qword [rbx]
lea r8, [rdx + rdx]
lea rcx, [rdi + rcx*2]
lea rdx, [rbp]
call fcn.140019ff0
mov word [rdi + rsi*2], r14w
jmp 0x14000486d
mov qword [rsp + 0x20], rdx
lea r9, [rbp]
mov rcx, rbx
call fcn.140003090
mov rbx, rax
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x30], xmm0
movups xmm7, xmmword [rbx]
movups xmmword [rbp - 0x40], xmm7
movups xmm6, xmmword [rbx + 0x10]
movdqu xmmword [rbp - 0x30], xmm6
mov qword [rbx + 0x10], r14
mov qword [rbx + 0x18], 7
mov word [rbx], r14w
mov ebx, 2
mov dword [rsp + 0x30], ebx
lea rcx, [rsp + 0x40]
call fcn.140001f70
movups xmmword [rsp + 0x40], xmm7
movups xmmword [rsp + 0x50], xmm6
movdqa xmm0, xmmword [0x140035c40]
movdqu xmmword [rbp - 0x30], xmm0
mov word [rbp - 0x40], r14w
and ebx, 0xfffffffd
mov dword [rsp + 0x30], ebx
movdqu xmmword [rbp - 0x30], xmm0
mov word [rbp - 0x40], r14w
mov rdx, qword [rbp - 0x68]
cmp rdx, 8
jb 0x140004915
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140004910
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140004bc4
call fcn.140018450
movdqa xmm0, xmmword [0x140035c40]
movdqu xmmword [rbp - 0x70], xmm0
mov word [rbp - 0x80], r14w
cmp qword [rsp + 0x50], 0
je 0x140004ace
lea rcx, [rsp + 0x40]
call fcn.140005080
test al, al
je 0x140004ace
lea rcx, [rbp - 0x80]
call fcn.140017f70
nop
lea r8, str.config.ini
mov rdx, rax
lea rcx, [rbp - 0x60]
call fcn.140002ba0
nop
mov rdx, qword [rbp - 0x68]
cmp rdx, 8
jb 0x1400049a3
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000499e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140004bca
call fcn.140018450
movdqa xmm0, xmmword [0x140035c40]
movdqu xmmword [rbp - 0x70], xmm0
mov word [rbp - 0x80], r14w
lea r9, [rbp - 0x60]
cmp qword [rbp - 0x48], 8
cmovae r9, qword [rbp - 0x60]
lea r8, [rbp]
lea rdx, str.Version
lea rcx, str.Upgrade
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 8
jb 0x140004a1c
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140004a17
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140004bd0
call fcn.140018450
movdqa xmm0, xmmword [0x140035c40]
movdqu xmmword [rbp - 0x50], xmm0
mov word [rbp - 0x60], r14w
mov rdx, qword [rsp + 0x58]
cmp rdx, 8
jb 0x140004a70
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140004a6b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140004bd6
call fcn.140018450
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x58], 7
mov word [rsp + 0x40], r14w
mov rdx, qword [rsp + 0x78]
cmp rdx, 8
jb 0x140004b62
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140004b5d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140004bb2
jmp 0x140004b5d
mov rdx, qword [rsp + 0x58]
cmp rdx, 8
jb 0x140004b10
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140004b0b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140004bdc
call fcn.140018450
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x58], 7
mov word [rsp + 0x40], r14w
mov rdx, qword [rsp + 0x78]
cmp rdx, 8
jb 0x140004b62
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140004b5d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140004bac
call fcn.140018450
movdqa xmm0, xmmword [0x140035c40]
mov word [rsp + 0x60], r14w
movdqu xmmword [rsp + 0x70], xmm0
mov rcx, qword [rbp + 0x210]
xor rcx, rsp
call fcn.1400183f0
lea r11, [rsp + 0x340]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov r14, qword [r11 + 0x28]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop rbp
ret
call fcn.14001c674
int3
call fcn.14001c674
nop
call fcn.14001c674
nop
call fcn.14001c674
nop
call fcn.14001c674
nop
call fcn.14001c674
nop
call fcn.14001c674
nop
call fcn.14001c674
int3
call fcn.14001c674
int3