Function at 0x1400173e0
Capabilities:
Read .ini file

Disassembly:
mov rax, rsp
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rax - 0x3e8]
sub rsp, 0x4c0
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rsi
mov rax, qword [0x1400380f0]
xor rax, rsp
mov qword [rbp + 0x3b0], rax
mov r15, rdx
mov r14, rcx
xor r12d, r12d
mov dword [rbp + 0x1a0], r12d
xor edx, edx
mov r8d, 0x204
lea rcx, [rbp + 0x1a4]
call fcn.14001d790
mov dword [rsp + 0x60], r12d
xor edx, edx
mov r8d, 0x204
lea rcx, [rsp + 0x64]
call fcn.14001d790
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rbp + 0x1a0]
lea r8, [0x140033aec]
lea rdx, str.Signature
lea rcx, str.Header
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rbp + 0x1a0]
or rdi, 0xffffffffffffffff
mov rax, rdi
inc rax
cmp word [rcx + rax*2], r12w
jne 0x140017493
test rax, rax
je 0x140018139
lea rdx, [rbp + 0x1a0]
lea r8, str.0x00ccaabb
mov rcx, rdi
nop word [rax + rax]
movzx eax, word [rdx + rcx*2 + 2]
cmp ax, word [r8 + rcx*2 + 2]
jne 0x140018139
add rcx, 2
cmp rcx, 0xb
je 0x1400174ec
movzx eax, word [rdx + rcx*2]
cmp ax, word [r8 + rcx*2]
jne 0x140018139
jmp 0x1400174c0
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rbp + 0x1a0]
lea r8, [0x140033aec]
lea rdx, str.Version
lea rcx, str.Header
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rbp + 0x1a0]
mov rax, rdi
inc rax
cmp word [rcx + rax*2], r12w
jne 0x140017525
test rax, rax
je 0x140018139
mov rcx, r12
lea rdx, [rbp + 0x1a0]
lea r8, [0x140033c00]
nop dword [rax]
movzx eax, word [rdx + rcx*2]
inc rcx
cmp ax, word [r8 + rcx*2 - 2]
jne 0x140018139
cmp rcx, 4
jne 0x140017550
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x140033aec]
lea rdx, str.Mutex_Name
lea rcx, str.Write_Data
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x60]
mov rax, rdi
nop
inc rax
cmp word [rcx + rax*2], r12w
jne 0x1400175a0
test rax, rax
je 0x140018139
lea rcx, [r14 + 0xcf8]
lea r8, [rsp + 0x60]
mov edx, 0x104
call fcn.14001c470
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x140033aec]
lea rdx, str.SharedMemory_Name
lea rcx, str.Write_Data
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x60]
mov rax, rdi
nop
inc rax
cmp word [rcx + rax*2], r12w
jne 0x140017600
test rax, rax
je 0x140018139
lea rcx, [r14 + 0xf00]
lea r8, [rsp + 0x60]
mov edx, 0x104
call fcn.14001c470
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x140033aec]
lea rdx, str.Event_Name
lea rcx, str.Write_Data
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x60]
mov rax, rdi
nop
inc rax
cmp word [rcx + rax*2], r12w
jne 0x140017660
test rax, rax
je 0x140018139
lea rcx, [r14 + 0x1108]
lea r8, [rsp + 0x60]
mov edx, 0x104
call fcn.14001c470
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x140033aec]
lea rdx, str.Mutex_Name
lea rcx, str.Write_Progress
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x60]
mov rax, rdi
nop
inc rax
cmp word [rcx + rax*2], r12w
jne 0x1400176c0
test rax, rax
je 0x140018139
lea rcx, [r14 + 0x1338]
lea r8, [rsp + 0x60]
mov edx, 0x104
call fcn.14001c470
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x140033aec]
lea rdx, str.SharedMemory_Name
lea rcx, str.Write_Progress
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x60]
mov rax, rdi
nop
inc rax
cmp word [rcx + rax*2], r12w
jne 0x140017720
test rax, rax
je 0x140018139
lea rcx, [r14 + 0x1540]
lea r8, [rsp + 0x60]
mov edx, 0x104
call fcn.14001c470
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x140033aec]
lea rdx, str.Event_Name
lea rcx, str.Write_Progress
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x60]
mov rax, rdi
nop
inc rax
cmp word [rcx + rax*2], r12w
jne 0x140017780
test rax, rax
je 0x140018139
lea rcx, [r14 + 0x1748]
lea r8, [rsp + 0x60]
mov edx, 0x104
call fcn.14001c470
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rbp + 0x1a0]
lea r8, [0x140033aec]
lea rdx, str.Mutex_Name
lea rcx, str.Read_Cmd
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rbp + 0x1a0]
mov rax, rdi
inc rax
cmp word [rcx + rax*2], r12w
jne 0x1400177e2
test rax, rax
je 0x140018139
lea rcx, [r14 + 0x1978]
lea r8, [rbp + 0x1a0]
mov edx, 0x104
call fcn.14001c470
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rbp + 0x1a0]
lea r8, [0x140033aec]
lea rdx, str.SharedMemory_Name
lea rcx, str.Read_Cmd
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rbp + 0x1a0]
mov rax, rdi
inc rax
cmp word [rcx + rax*2], r12w
jne 0x140017846
test rax, rax
je 0x140018139
lea rcx, [r14 + 0x1b80]
lea r8, [rbp + 0x1a0]
mov edx, 0x104
call fcn.14001c470
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rbp + 0x1a0]
lea r8, [0x140033aec]
lea rdx, str.Event_Name
lea rcx, str.Read_Cmd
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rbp + 0x1a0]
mov rax, rdi
nop word [rax + rax]
inc rax
cmp word [rcx + rax*2], r12w
jne 0x1400178b0
test rax, rax
je 0x140018139
lea rcx, [r14 + 0x1d88]
lea r8, [rbp + 0x1a0]
mov edx, 0x104
call fcn.14001c470
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x140033aec]
lea rdx, str.Mutex_Name
lea rcx, str.Write_Cmd
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x60]
mov rax, rdi
inc rax
cmp word [rcx + rax*2], r12w
jne 0x140017910
test rax, rax
je 0x140018139
lea rcx, [r14 + 0x1fb8]
lea r8, [rsp + 0x60]
mov edx, 0x104
call fcn.14001c470
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x140033aec]
lea rdx, str.SharedMemory_Name
lea rcx, str.Write_Cmd
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x60]
mov rax, rdi
nop
inc rax
cmp word [rcx + rax*2], r12w
jne 0x140017970
test rax, rax
je 0x140018139
lea rcx, [r14 + 0x21c0]
lea r8, [rsp + 0x60]
mov edx, 0x104
call fcn.14001c470
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x140033aec]
lea rdx, str.Event_Name
lea rcx, str.Write_Cmd
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x60]
mov rax, rdi
nop
inc rax
cmp word [rcx + rax*2], r12w
jne 0x1400179d0
test rax, rax
je 0x140018139
lea rcx, [r14 + 0x23c8]
lea r8, [rsp + 0x60]
mov edx, 0x104
call fcn.14001c470
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x140033aec]
lea rdx, str.Plugin
lea rcx, str.Path
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x60]
mov rax, rdi
nop
inc rax
cmp word [rcx + rax*2], r12w
jne 0x140017a30
test rax, rax
je 0x140018139
lea rcx, [r14 + 0x58]
lea r8, [rsp + 0x60]
mov edx, 0x104
call fcn.14001c470
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x140033ce4]
lea rdx, [0x140033ce8]
lea rcx, str.Path
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x60]
mov rax, rdi
nop dword [rax + rax]
inc rax
cmp word [rcx + rax*2], r12w
jne 0x140017a90
test rax, rax
je 0x140017b21
lea rcx, [rsp + 0x60]
call fcn.14001c69c
movsxd rbx, eax
mov eax, 2
mul rbx
cmovo rax, rdi
mov rcx, rax
call fcn.14001ba3c
mov rsi, rax
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], ebx
mov r9, rax
lea r8, [0x140033aec]
lea rdx, str.SpecificPlugInInfo
lea rcx, str.Path
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp word [rsi], r12w
jne 0x140017af9
mov r8, r12
jmp 0x140017b0a
mov r8, rdi
nop dword [rax]
inc r8
cmp word [rsi + r8*2], r12w
jne 0x140017b00
lea rcx, [r14 + 0x468]
mov rdx, rsi
call fcn.140014920
mov rcx, rsi
call fcn.14001c174
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x140033aec]
lea rdx, str.KeyRoot
lea rcx, str.Path
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x60]
mov rax, rdi
inc rax
cmp word [rcx + rax*2], r12w
jne 0x140017b56
test rax, rax
je 0x140017c4f
lea rdx, [rsp + 0x60]
lea r8, str.HKEY_CURRENT_USER
mov rcx, r12
nop dword [rax + rax]
movzx eax, word [rdx + rcx*2]
cmp ax, word [r8 + rcx*2]
jne 0x140017bb2
movzx eax, word [rdx + rcx*2 + 2]
cmp ax, word [r8 + rcx*2 + 2]
jne 0x140017bb2
add rcx, 2
cmp rcx, 0x12
jne 0x140017b80
mov qword [r14 + 0x2f20], 0xffffffff80000001
jmp 0x140017c4f
lea rdx, [rsp + 0x60]
lea r8, str.HKEY_LOCAL_MACHINE
mov rcx, rdi
movzx eax, word [rdx + rcx*2 + 2]
cmp ax, word [r8 + rcx*2 + 2]
jne 0x140017bf2
add rcx, 2
cmp rcx, 0x13
je 0x140017be5
movzx eax, word [rdx + rcx*2]
cmp ax, word [r8 + rcx*2]
jne 0x140017bf2
jmp 0x140017bc1
mov qword [r14 + 0x2f20], 0xffffffff80000002
jmp 0x140017c4f
lea r8, [rsp + 0x60]
lea r9, str.HEKY_USERS
mov rcx, rdi
nop word [rax + rax]
movzx edx, word [r8 + rcx*2 + 2]
movzx eax, word [r9 + rcx*2 + 2]
sub edx, eax
jne 0x140017c38
add rcx, 2
cmp rcx, 0xb
je 0x140017c38
movzx edx, word [r8 + rcx*2]
movzx eax, word [r9 + rcx*2]
sub edx, eax
je 0x140017c10
mov rax, r12
mov rcx, 0xffffffff80000003
test edx, edx
cmove rax, rcx
mov qword [r14 + 0x2f20], rax
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x140033aec]
lea rdx, str.RegKeySubFolderType
lea rcx, str.Path
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x60]
mov rax, rdi
inc rax
cmp word [rcx + rax*2], r12w
jne 0x140017c84
test rax, rax
jne 0x140017c9c
mov dword [r14 + 0x2f2c], r12d
jmp 0x140017cad
lea rcx, [rsp + 0x60]
call fcn.14001c69c
mov dword [r14 + 0x2f2c], eax
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x140033aec]
lea rdx, str.RegKeyLength
lea rcx, str.Path
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x60]
mov rax, rdi
inc rax
cmp word [rcx + rax*2], r12w
jne 0x140017ce2
test rax, rax
jne 0x140017cfa
mov dword [r14 + 0x2f28], r12d
jmp 0x140017d0b
lea rcx, [rsp + 0x60]
call fcn.14001c69c
mov dword [r14 + 0x2f28], eax
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x140033aec]
lea rdx, str.RegPath
lea rcx, str.Path
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x60]
mov rax, rdi
inc rax
cmp word [rcx + rax*2], r12w
jne 0x140017d40
mov rcx, qword [r14 + 0x2f18]
test rax, rax
je 0x140017dbc
test rcx, rcx
je 0x140017d60
call fcn.14001c174
mov qword [r14 + 0x2f18], r12
mov eax, dword [r14 + 0x2f28]
inc eax
movsxd rcx, eax
mov eax, 2
mul rcx
cmovo rax, rdi
mov rcx, rax
call fcn.14001ba3c
mov qword [r14 + 0x2f18], rax
mov ecx, dword [r14 + 0x2f28]
inc ecx
movsxd rdx, ecx
lea r8, [rsp + 0x60]
mov rcx, rax
call fcn.14001c470
movsxd rcx, dword [r14 + 0x2f28]
mov rax, qword [r14 + 0x2f18]
mov word [rax + rcx*2], r12w
jmp 0x140017dcd
test rcx, rcx
je 0x140017dc6
call fcn.14001c174
mov qword [r14 + 0x2f18], r12
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x140033aec]
lea rdx, str.ContentPathLen
lea rcx, str.Path
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x60]
mov rax, rdi
inc rax
cmp word [rcx + rax*2], r12w
jne 0x140017e02
test rax, rax
je 0x140017e80
lea rcx, [rsp + 0x60]
call fcn.14001c69c
mov ebx, eax
test eax, eax
jle 0x140017e80
mov rcx, qword [r14 + 0xca8]
test rcx, rcx
je 0x140017e32
call fcn.14001c174
mov qword [r14 + 0xca8], r12
inc ebx
movsxd rcx, ebx
mov eax, 2
mul rcx
cmovo rax, rdi
mov rcx, rax
call fcn.14001ba3c
mov qword [r14 + 0xca8], rax
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], ebx
mov r9, rax
lea r8, [0x140033aec]
lea rdx, str.ContentPath
lea rcx, str.Path
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x140033aec]
lea rdx, str.MaxHAMCount
lea rcx, str.Rafiki
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x60]
mov rax, rdi
inc rax
cmp word [rcx + rax*2], r12w
jne 0x140017eb5
test rax, rax
je 0x140017ed9
lea rcx, [rsp + 0x60]
call fcn.14001c69c
test eax, eax
jle 0x140017ed9
mov dword [r14 + 0xcb0], eax
mov word [rsp + 0x60], r12w
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x140033aec]
lea rdx, str.FontPathCounts
lea rcx, str.FontPath
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
je 0x14001800d
lea rcx, [rsp + 0x60]
mov rax, rdi
nop dword [rax]
inc rax
cmp word [rcx + rax*2], r12w
jne 0x140017f20
test rax, rax
je 0x14001800d
lea rcx, [rsp + 0x60]
call fcn.14001c69c
mov esi, eax
test eax, eax
jle 0x14001800d
mov ebx, r12d
nop word [rax + rax]
mov word [rsp + 0x60], r12w
mov r8d, ebx
lea rdx, str.FontPaths_d
lea rcx, [rbp + 0x170]
call fcn.140019300
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x140033aec]
lea rdx, [rbp + 0x170]
lea rcx, str.FontPath
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rax, [rsp + 0x60]
mov r8, rdi
inc r8
cmp word [rax + r8*2], 0
jne 0x140017fa1
test r8, r8
je 0x140018003
mov qword [rsp + 0x50], 7
mov qword [rsp + 0x48], r12
mov word [rsp + 0x38], r12w
cmp word [rsp + 0x60], 0
cmove r8, r12
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x38]
call fcn.140014920
nop
lea rcx, [r14 + 0x2f58]
lea rdx, [rsp + 0x38]
call fcn.140019010
nop
cmp qword [rsp + 0x50], 8
jb 0x140018003
mov rcx, qword [rsp + 0x38]
call fcn.14001c17c
inc ebx
cmp ebx, esi
jl 0x140017f50
mov word [rsp + 0x60], r12w
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x140033aec]
lea rdx, str.ObjSegmenterLibSearchPath
lea rcx, str.Path
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x60]
mov rax, rdi
nop dword [rax + rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x140018050
test rax, rax
je 0x140018075
lea rcx, [r14 + 0x690]
lea r8, [rsp + 0x60]
mov edx, 0x104
call fcn.14001c470
mov word [rsp + 0x60], r12w
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x140033aec]
lea rdx, str.ObjSegmenterModelPath
lea rcx, str.Path
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x60]
mov rax, rdi
inc rax
cmp word [rcx + rax*2], 0
jne 0x1400180b0
test rax, rax
je 0x1400180d5
lea rcx, [r14 + 0x898]
lea r8, [rsp + 0x60]
mov edx, 0x104
call fcn.14001c470
mov word [rsp + 0x60], r12w
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x140033aec]
lea rdx, str.ObjSegmenterPerDetModelPath
lea rcx, str.Path
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rax, [rsp + 0x60]
nop dword [rax]
inc rdi
cmp word [rax + rdi*2], 0
jne 0x140018110
test rdi, rdi
je 0x140018135
lea rcx, [r14 + 0xaa0]
lea r8, [rsp + 0x60]
mov edx, 0x104
call fcn.14001c470
xor eax, eax
jmp 0x14001813e
mov eax, 0x80004005
mov rcx, qword [rbp + 0x3b0]
xor rcx, rsp
call fcn.14001bab0
lea r11, [rsp + 0x4c0]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret