Function at 0x30012a10
Capabilities:
Read .ini file

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0x108
mov eax, dword [0x30034b3c]
push ebx
push esi
push edi
push 0x13
pop ecx
xor ebx, ebx
push 0x13
mov dword [ebp + 0x74], eax
xor eax, eax
mov word [ebp - 0x2c], bx
lea edi, [ebp - 0x2a]
rep stosd dword es:[edi], eax
pop ecx
push 0x13
mov word [ebp + 0x24], bx
lea edi, [ebp + 0x26]
rep stosd dword es:[edi], eax
pop ecx
mov word [ebp - 0x7c], bx
lea edi, [ebp - 0x7a]
push 0x30004298
rep stosd dword es:[edi], eax
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x84], ebx
call fcn.300105be
push 0x27
lea eax, [ebp - 0x2c]
push eax
call fcn.30011a49
mov esi, eax
cmp esi, ebx
je 0x30012a82
push 0x300038cc
call fcn.30010597
pop ecx
jmp 0x30012c86
push 0x300566d8
push ebx
push 0x30002c40
push 0x30002b2c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
push eax
push 0x3000426c
mov dword [ebp - 0x8c], eax
call fcn.300106d0
cmp word [ebp - 0x2c], bx
pop ecx
pop ecx
jne 0x30012abd
mov esi, 0xfffffe6e
push 0x30004244
jmp 0x30012a77
lea eax, [ebp - 0x2c]
push eax
call fcn.3001ce8c
cmp eax, ebx
mov dword [ebp - 0x88], eax
jne 0x30012adf
push 0x3000420c
call fcn.300105be
jmp 0x30012c84
mov eax, dword [ebp - 0x2a]
mov dword [ebp - 0x90], eax
lea eax, [ebp + 0x24]
push eax
push ebx
call sub.msi.dll_MsiGetActiveDatabase
mov esi, eax
cmp esi, ebx
jne 0x30012c7c
mov edi, 0x3000287c
inc dword [ebp - 0x80]
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp + 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x30012cca
cmp dword [ebp - 0x8c], ebx
je 0x30012b81
cmp word [ebp + 0x2a], 0x32
jne 0x30012b81
cmp word [ebp + 0x2c], 0x32
jne 0x30012b81
cmp dword [ebp - 0x84], ebx
jne 0x30012b4c
lea eax, [ebp + 0x24]
push eax
push 0x7d
call fcn.3000dcc8
cmp eax, 1
jne 0x30012c98
push edi
lea eax, [ebp + 0x24]
push eax
mov dword [ebp - 0x84], 1
call fcn.3001cfbe
mov esi, eax
cmp esi, ebx
jne 0x30012ce5
lea eax, [ebp + 0x24]
push eax
push 0x27
lea eax, [ebp - 0x7c]
push eax
mov dword [ebp - 0x80], ebx
call fcn.3000d4b9
mov dword [0x30076d5c], eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp + 0x24]
push eax
call dword [sym.imp.MSVCRT.dll_wcsstr]
test eax, eax
pop ecx
pop ecx
je 0x30012c66
mov eax, dword [ebp - 0x88]
dec eax
je 0x30012bad
dec eax
jne 0x30012c84
push 0x79
jmp 0x30012baf
push 0x3a
mov ax, word [ebp - 0x90]
cmp word [ebp + 0x26], ax
mov cx, word [ebp + 0x2c]
mov ax, word [ebp + 0x2a]
pop esi
jb 0x30012beb
cmp word [ebp - 0x28], 0x32
je 0x30012c66
cmp word [ebp + 0x28], 0x32
jne 0x30012c66
cmp ax, word [ebp - 0x26]
jne 0x30012c66
cmp cx, word [ebp - 0x24]
jne 0x30012c66
cmp ax, 0x31
jne 0x30012bf7
cmp cx, 0x44
je 0x30012c66
lea eax, [ebp + 0x24]
push eax
push 0x300041dc
call fcn.300106d0
cmp dword [ebp - 0x88], 2
pop ecx
pop ecx
je 0x30012cef
cmp dword [ebp - 0x84], ebx
jne 0x30012c31
push 0x100
push esi
push ebx
call fcn.3000db7f
cmp eax, 1
jne 0x30012cb1
push edi
lea eax, [ebp + 0x24]
push eax
mov dword [ebp - 0x84], 1
call fcn.3001cfbe
mov esi, eax
cmp esi, ebx
jne 0x30012ce5
lea eax, [ebp + 0x24]
push eax
push 0x27
lea eax, [ebp - 0x7c]
push eax
mov dword [ebp - 0x80], ebx
call fcn.3000d4b9
mov dword [0x30076d5c], eax
lea eax, [ebp + 0x24]
push eax
push dword [ebp - 0x80]
call sub.msi.dll_MsiGetActiveDatabase
mov esi, eax
cmp esi, ebx
je 0x30012b01
cmp esi, 0x103
jne 0x30012c86
xor esi, esi
mov eax, esi
mov ecx, dword [ebp + 0x74]
pop edi
pop esi
pop ebx
call fcn.3001fd67
add ebp, 0x78
leave
ret
push 0x30004158
call fcn.300105be
mov esi, 0xfffffecd
push 0x30004110
jmp 0x30012a77
push 0x30004088
call fcn.300105be
mov esi, 0xfffffecd
push 0x30004040
jmp 0x30012a77
push 0x30003fc8
call fcn.300105be
push 0x30003f94
call fcn.300105be
mov eax, 0x642
jmp 0x30012c88
push 0x30003f78
jmp 0x30012a77
push esi
push ebx
call fcn.3000d8cd
mov eax, 0xfffffecd
jmp 0x30012c88