Function at 0x1400103e0
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 [0x1400310f0]
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.140016790
mov dword [rsp + 0x60], r12d
xor edx, edx
mov r8d, 0x204
lea rcx, [rsp + 0x64]
call fcn.140016790
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rbp + 0x1a0]
lea r8, [0x14002caec]
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 0x140010493
test rax, rax
je 0x140011139
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 0x140011139
add rcx, 2
cmp rcx, 0xb
je 0x1400104ec
movzx eax, word [rdx + rcx*2]
cmp ax, word [r8 + rcx*2]
jne 0x140011139
jmp 0x1400104c0
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rbp + 0x1a0]
lea r8, [0x14002caec]
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 0x140010525
test rax, rax
je 0x140011139
mov rcx, r12
lea rdx, [rbp + 0x1a0]
lea r8, [0x14002cc00]
nop dword [rax]
movzx eax, word [rdx + rcx*2]
inc rcx
cmp ax, word [r8 + rcx*2 - 2]
jne 0x140011139
cmp rcx, 4
jne 0x140010550
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x14002caec]
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 0x1400105a0
test rax, rax
je 0x140011139
lea rcx, [r14 + 0xcf8]
lea r8, [rsp + 0x60]
mov edx, 0x104
call fcn.140015470
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x14002caec]
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 0x140010600
test rax, rax
je 0x140011139
lea rcx, [r14 + 0xf00]
lea r8, [rsp + 0x60]
mov edx, 0x104
call fcn.140015470
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x14002caec]
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 0x140010660
test rax, rax
je 0x140011139
lea rcx, [r14 + 0x1108]
lea r8, [rsp + 0x60]
mov edx, 0x104
call fcn.140015470
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x14002caec]
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 0x1400106c0
test rax, rax
je 0x140011139
lea rcx, [r14 + 0x1338]
lea r8, [rsp + 0x60]
mov edx, 0x104
call fcn.140015470
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x14002caec]
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 0x140010720
test rax, rax
je 0x140011139
lea rcx, [r14 + 0x1540]
lea r8, [rsp + 0x60]
mov edx, 0x104
call fcn.140015470
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x14002caec]
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 0x140010780
test rax, rax
je 0x140011139
lea rcx, [r14 + 0x1748]
lea r8, [rsp + 0x60]
mov edx, 0x104
call fcn.140015470
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rbp + 0x1a0]
lea r8, [0x14002caec]
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 0x1400107e2
test rax, rax
je 0x140011139
lea rcx, [r14 + 0x1978]
lea r8, [rbp + 0x1a0]
mov edx, 0x104
call fcn.140015470
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rbp + 0x1a0]
lea r8, [0x14002caec]
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 0x140010846
test rax, rax
je 0x140011139
lea rcx, [r14 + 0x1b80]
lea r8, [rbp + 0x1a0]
mov edx, 0x104
call fcn.140015470
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rbp + 0x1a0]
lea r8, [0x14002caec]
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 0x1400108b0
test rax, rax
je 0x140011139
lea rcx, [r14 + 0x1d88]
lea r8, [rbp + 0x1a0]
mov edx, 0x104
call fcn.140015470
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x14002caec]
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 0x140010910
test rax, rax
je 0x140011139
lea rcx, [r14 + 0x1fb8]
lea r8, [rsp + 0x60]
mov edx, 0x104
call fcn.140015470
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x14002caec]
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 0x140010970
test rax, rax
je 0x140011139
lea rcx, [r14 + 0x21c0]
lea r8, [rsp + 0x60]
mov edx, 0x104
call fcn.140015470
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x14002caec]
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 0x1400109d0
test rax, rax
je 0x140011139
lea rcx, [r14 + 0x23c8]
lea r8, [rsp + 0x60]
mov edx, 0x104
call fcn.140015470
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x14002caec]
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 0x140010a30
test rax, rax
je 0x140011139
lea rcx, [r14 + 0x58]
lea r8, [rsp + 0x60]
mov edx, 0x104
call fcn.140015470
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x14002cce4]
lea rdx, [0x14002cce8]
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 0x140010a90
test rax, rax
je 0x140010b21
lea rcx, [rsp + 0x60]
call fcn.14001569c
movsxd rbx, eax
mov eax, 2
mul rbx
cmovo rax, rdi
mov rcx, rax
call fcn.140014a3c
mov rsi, rax
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], ebx
mov r9, rax
lea r8, [0x14002caec]
lea rdx, str.SpecificPlugInInfo
lea rcx, str.Path
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp word [rsi], r12w
jne 0x140010af9
mov r8, r12
jmp 0x140010b0a
mov r8, rdi
nop dword [rax]
inc r8
cmp word [rsi + r8*2], r12w
jne 0x140010b00
lea rcx, [r14 + 0x468]
mov rdx, rsi
call fcn.14000d920
mov rcx, rsi
call fcn.140015174
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x14002caec]
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 0x140010b56
test rax, rax
je 0x140010c4f
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 0x140010bb2
movzx eax, word [rdx + rcx*2 + 2]
cmp ax, word [r8 + rcx*2 + 2]
jne 0x140010bb2
add rcx, 2
cmp rcx, 0x12
jne 0x140010b80
mov qword [r14 + 0x2f20], 0xffffffff80000001
jmp 0x140010c4f
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 0x140010bf2
add rcx, 2
cmp rcx, 0x13
je 0x140010be5
movzx eax, word [rdx + rcx*2]
cmp ax, word [r8 + rcx*2]
jne 0x140010bf2
jmp 0x140010bc1
mov qword [r14 + 0x2f20], 0xffffffff80000002
jmp 0x140010c4f
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 0x140010c38
add rcx, 2
cmp rcx, 0xb
je 0x140010c38
movzx edx, word [r8 + rcx*2]
movzx eax, word [r9 + rcx*2]
sub edx, eax
je 0x140010c10
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, [0x14002caec]
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 0x140010c84
test rax, rax
jne 0x140010c9c
mov dword [r14 + 0x2f2c], r12d
jmp 0x140010cad
lea rcx, [rsp + 0x60]
call fcn.14001569c
mov dword [r14 + 0x2f2c], eax
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x14002caec]
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 0x140010ce2
test rax, rax
jne 0x140010cfa
mov dword [r14 + 0x2f28], r12d
jmp 0x140010d0b
lea rcx, [rsp + 0x60]
call fcn.14001569c
mov dword [r14 + 0x2f28], eax
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x14002caec]
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 0x140010d40
mov rcx, qword [r14 + 0x2f18]
test rax, rax
je 0x140010dbc
test rcx, rcx
je 0x140010d60
call fcn.140015174
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.140014a3c
mov qword [r14 + 0x2f18], rax
mov ecx, dword [r14 + 0x2f28]
inc ecx
movsxd rdx, ecx
lea r8, [rsp + 0x60]
mov rcx, rax
call fcn.140015470
movsxd rcx, dword [r14 + 0x2f28]
mov rax, qword [r14 + 0x2f18]
mov word [rax + rcx*2], r12w
jmp 0x140010dcd
test rcx, rcx
je 0x140010dc6
call fcn.140015174
mov qword [r14 + 0x2f18], r12
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x14002caec]
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 0x140010e02
test rax, rax
je 0x140010e80
lea rcx, [rsp + 0x60]
call fcn.14001569c
mov ebx, eax
test eax, eax
jle 0x140010e80
mov rcx, qword [r14 + 0xca8]
test rcx, rcx
je 0x140010e32
call fcn.140015174
mov qword [r14 + 0xca8], r12
inc ebx
movsxd rcx, ebx
mov eax, 2
mul rcx
cmovo rax, rdi
mov rcx, rax
call fcn.140014a3c
mov qword [r14 + 0xca8], rax
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], ebx
mov r9, rax
lea r8, [0x14002caec]
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, [0x14002caec]
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 0x140010eb5
test rax, rax
je 0x140010ed9
lea rcx, [rsp + 0x60]
call fcn.14001569c
test eax, eax
jle 0x140010ed9
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, [0x14002caec]
lea rdx, str.FontPathCounts
lea rcx, str.FontPath
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
je 0x14001100d
lea rcx, [rsp + 0x60]
mov rax, rdi
nop dword [rax]
inc rax
cmp word [rcx + rax*2], r12w
jne 0x140010f20
test rax, rax
je 0x14001100d
lea rcx, [rsp + 0x60]
call fcn.14001569c
mov esi, eax
test eax, eax
jle 0x14001100d
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.140012300
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x14002caec]
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 0x140010fa1
test r8, r8
je 0x140011003
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.14000d920
nop
lea rcx, [r14 + 0x2f58]
lea rdx, [rsp + 0x38]
call fcn.140012010
nop
cmp qword [rsp + 0x50], 8
jb 0x140011003
mov rcx, qword [rsp + 0x38]
call fcn.14001517c
inc ebx
cmp ebx, esi
jl 0x140010f50
mov word [rsp + 0x60], r12w
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x14002caec]
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 0x140011050
test rax, rax
je 0x140011075
lea rcx, [r14 + 0x690]
lea r8, [rsp + 0x60]
mov edx, 0x104
call fcn.140015470
mov word [rsp + 0x60], r12w
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x14002caec]
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 0x1400110b0
test rax, rax
je 0x1400110d5
lea rcx, [r14 + 0x898]
lea r8, [rsp + 0x60]
mov edx, 0x104
call fcn.140015470
mov word [rsp + 0x60], r12w
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x60]
lea r8, [0x14002caec]
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 0x140011110
test rdi, rdi
je 0x140011135
lea rcx, [r14 + 0xaa0]
lea r8, [rsp + 0x60]
mov edx, 0x104
call fcn.140015470
xor eax, eax
jmp 0x14001113e
mov eax, 0x80004005
mov rcx, qword [rbp + 0x3b0]
xor rcx, rsp
call fcn.140014ab0
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