Function at 0x10018200
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1004fbd2
mov eax, dword fs:[0]
push eax
sub esp, 0x114
mov eax, dword [0x100701bc]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xec], ecx
mov eax, dword [ebp + 0x14]
lea ecx, [ebp - 0x108]
xorps xmm0, xmm0
mov dword [ebp - 0xf0], eax
mov byte [ebp - 0x30], 0
movups xmmword [ebp - 0x2f], xmm0
mov dword [ebp - 0x17], 0
movq qword [ebp - 0x1f], xmm0
mov byte [ebp - 0x13], 0
call fcn.10025510
push 0x10060a58
mov edx, eax
mov dword [ebp - 4], 0
lea ecx, [ebp - 0xe8]
call fcn.10012350
push str.config.ini
mov edx, eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xd0]
call fcn.10012350
add esp, 8
cmp dword [eax + 0x14], 0x10
jb 0x1001829c
mov eax, dword [eax]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push eax
push 0xa
lea eax, [ebp - 0x30]
push eax
push 0x1005fa15
push str.Voice1
push str.KeyPad
call esi
mov eax, dword [ebp - 0xbc]
cmp eax, 0x10
jb 0x100182d8
inc eax
lea ecx, [ebp - 0xd0]
push eax
push dword [ebp - 0xd0]
call fcn.1000e380
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xbc], 0xf
mov dword [ebp - 0xc0], 0
mov byte [ebp - 0xd0], 0
cmp eax, 0x10
jb 0x10018311
inc eax
lea ecx, [ebp - 0xe8]
push eax
push dword [ebp - 0xe8]
call fcn.1000e380
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0xd4], 0xf
mov dword [ebp - 0xd8], 0
mov byte [ebp - 0xe8], 0
cmp eax, 0x10
jb 0x10018351
inc eax
lea ecx, [ebp - 0x108]
push eax
push dword [ebp - 0x108]
call fcn.1000e380
lea ecx, [ebp - 0x108]
call fcn.10025510
push 0x10060a58
mov edx, eax
mov dword [ebp - 4], 2
lea ecx, [ebp - 0xd0]
call fcn.10012350
push str.config.ini
mov edx, eax
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xe8]
call fcn.10012350
add esp, 8
cmp dword [eax + 0x14], 0x10
jb 0x10018396
mov eax, dword [eax]
push eax
push 0xa
lea eax, [ebp - 0x26]
push eax
push 0x1005fa15
push str.Voice2
push str.KeyPad
call esi
mov eax, dword [ebp - 0xd4]
cmp eax, 0x10
jb 0x100183cc
inc eax
lea ecx, [ebp - 0xe8]
push eax
push dword [ebp - 0xe8]
call fcn.1000e380
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0xd4], 0xf
mov dword [ebp - 0xd8], 0
mov byte [ebp - 0xe8], 0
cmp eax, 0x10
jb 0x10018405
inc eax
lea ecx, [ebp - 0xd0]
push eax
push dword [ebp - 0xd0]
call fcn.1000e380
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0xbc], 0xf
mov dword [ebp - 0xc0], 0
mov byte [ebp - 0xd0], 0
cmp eax, 0x10
jb 0x10018445
inc eax
lea ecx, [ebp - 0x108]
push eax
push dword [ebp - 0x108]
call fcn.1000e380
lea ecx, [ebp - 0x108]
call fcn.10025510
push 0x10060a58
mov edx, eax
mov dword [ebp - 4], 4
lea ecx, [ebp - 0xd0]
call fcn.10012350
push str.config.ini
mov edx, eax
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xe8]
call fcn.10012350
add esp, 8
cmp dword [eax + 0x14], 0x10
jb 0x1001848a
mov eax, dword [eax]
push eax
push 0xa
lea eax, [ebp - 0x1c]
push eax
push 0x1005fa15
push str.Voice3
push str.KeyPad
call esi
mov eax, dword [ebp - 0xd4]
cmp eax, 0x10
jb 0x100184c0
inc eax
lea ecx, [ebp - 0xe8]
push eax
push dword [ebp - 0xe8]
call fcn.1000e380
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0xd4], 0xf
mov dword [ebp - 0xd8], 0
mov byte [ebp - 0xe8], 0
cmp eax, 0x10
jb 0x100184f9
inc eax
lea ecx, [ebp - 0xd0]
push eax
push dword [ebp - 0xd0]
call fcn.1000e380
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0xbc], 0xf
mov dword [ebp - 0xc0], 0
mov byte [ebp - 0xd0], 0
cmp eax, 0x10
jb 0x10018539
inc eax
lea ecx, [ebp - 0x108]
push eax
push dword [ebp - 0x108]
call fcn.1000e380
mov al, byte [ebp + 8]
lea esi, [ebp - 0x30]
xor edi, edi
add al, 0x30
mov byte [ebp - 0xb6], al
nop dword [eax]
cmp byte [esi], 0
mov dword [ebp - 0x10c], 0xf
mov dword [ebp - 0x110], 0
mov byte [ebp - 0x120], 0
jne 0x10018574
xor eax, eax
jmp 0x10018589
mov eax, esi
lea edx, [eax + 1]
nop dword [eax]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10018580
sub eax, edx
push eax
push esi
lea ecx, [ebp - 0x120]
call fcn.1000dd80
mov al, byte [ebp - 0xb6]
push 1
mov byte [ebp - 0xb4], al
lea eax, [ebp - 0xb4]
push ecx
push eax
lea ecx, [ebp - 0x120]
call fcn.1000daf0
cmp eax, 0xffffffff
mov eax, dword [ebp - 0x10c]
setne byte [ebp - 0xb4]
cmp eax, 0x10
jb 0x100185df
inc eax
lea ecx, [ebp - 0x120]
push eax
push dword [ebp - 0x120]
call fcn.1000e380
cmp byte [ebp - 0xb4], 0
mov dword [ebp - 0x10c], 0xf
mov dword [ebp - 0x110], 0
mov byte [ebp - 0x120], 0
jne 0x10018615
inc edi
add esi, 0xa
cmp edi, 3
jl 0x10018550
mov eax, dword [ebp + 8]
jmp 0x10018618
lea eax, [edi + 1]
mov edi, dword [ebp - 0xec]
lea ecx, [ebp - 0xb0]
push ecx
lea ecx, [ebp - 0xb5]
push ecx
push eax
mov eax, dword [edi + 8]
push 0x1005fa15
push 0x1e
call eax
push dword [edi + 4]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [edi + 4], 0
test esi, esi
jne 0x100186a0
cmp byte [ebp - 0xb0], 0
jne 0x10018671
xor ecx, ecx
lea eax, [ebp - 0xb0]
push ecx
mov ecx, dword [ebp - 0xf0]
push eax
call fcn.1000dd80
xor eax, eax
jmp 0x100186b9
lea ecx, [ebp - 0xb0]
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10018680
sub ecx, edx
lea eax, [ebp - 0xb0]
push ecx
mov ecx, dword [ebp - 0xf0]
push eax
call fcn.1000dd80
xor eax, eax
jmp 0x100186b9
cmp esi, 0xffffffe0
jne 0x100186a9
mov eax, esi
jmp 0x100186b9
cmp esi, 0xffffffe1
mov eax, 0xffffff93
mov ecx, 0xffffff86
cmove eax, ecx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1002db4b
mov esp, ebp
pop ebp
ret 0x10