Function at 0x4ea110
Capabilities:
Read .ini file

Disassembly:
call fcn.004ea140
mov dword [0x54c1cc], eax
mov eax, dword [0x54c1cc]
test eax, eax
jne 0x4ea138
mov byte [0x54c2a8], 0
call fcn.004efc09
test eax, eax
je 0x4ea138
jmp 0x4eb110
ret
push 0xffffffffffffffff
push 0x5135c6
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x564
push ebx
push ebp
push esi
push edi
mov ecx, 0x32
xor eax, eax
mov edi, 0x54c2ac
xor ebx, ebx
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x10]
mov dword [0x54c374], ebx
call sub.MFC42.DLL_CString::CString_3
lea eax, [esp + 0x470]
push 0x104
push eax
push ebx
mov dword [esp + 0x588], ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jbe 0x4eb1c3
push ebx
lea ecx, [esp + 0x270]
push ebx
lea edx, [esp + 0x44]
push ecx
lea eax, [esp + 0x47c]
push edx
push eax
call dword [sym.imp.MSVCRT.dll__splitpath]
push 0x54a294
lea ecx, [esp + 0x284]
push str.LockClient
lea edx, [esp + 0x58]
push ecx
lea eax, [esp + 0x38c]
push edx
push eax
call dword [sym.imp.MSVCRT.dll__makepath]
add esp, 0x28
lea ecx, [esp + 0x36c]
push ecx
lea ecx, [esp + 0x14]
call fcn.004c8322
mov eax, dword [esp + 0x10]
mov ebp, dword [sym.imp.MSVCRT.dll__access]
cmp dword [eax - 8], ebx
je 0x4eb1dd
push ebx
push eax
call ebp
add esp, 8
test eax, eax
je 0x4eb1eb
push str.C:PacsLockClient.ini
lea ecx, [esp + 0x14]
call fcn.004c8322
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CString::CString_3
lea ecx, [esp + 0x1c]
mov byte [esp + 0x57c], 1
call sub.MFC42.DLL_CString::CString_3
lea ecx, [esp + 0x24]
mov byte [esp + 0x57c], 2
call sub.MFC42.DLL_CString::CString_3
lea ecx, [esp + 0x18]
mov byte [esp + 0x57c], 3
call sub.MFC42.DLL_CString::CString_3
lea ecx, [esp + 0x14]
mov byte [esp + 0x57c], 4
call sub.MFC42.DLL_CString::CString_3
mov dl, byte [0x54aebc]
mov ecx, 0x7f
xor eax, eax
lea edi, [esp + 0x6d]
mov byte [esp + 0x6c], dl
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x6c]
push eax
push 0x1ff
push ecx
push 0x54aebc
push str.DogNumber
push str.System
mov byte [esp + 0x594], 5
call esi
cmp byte [esp + 0x6c], bl
jne 0x4eb2f8
lea ecx, [esp + 0x14]
mov byte [esp + 0x57c], 4
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x57c], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x24]
mov byte [esp + 0x57c], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x57c], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x57c], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x57c], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 0x65
jmp 0x4ebb54
lea edx, [esp + 0x6c]
lea ecx, [esp + 0x24]
push edx
call fcn.004c8322
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x6c]
push eax
push 0x1ff
push ecx
push 0x54aebc
push str.Path
push str.System
call esi
cmp byte [esp + 0x6c], bl
jne 0x4eb39e
lea ecx, [esp + 0x14]
mov byte [esp + 0x57c], 4
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x57c], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x24]
mov byte [esp + 0x57c], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x57c], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x57c], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x57c], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 0x66
jmp 0x4ebb54
lea edx, [esp + 0x6c]
push ebx
push edx
call ebp
add esp, 8
test eax, eax
je 0x4eb41f
lea ecx, [esp + 0x14]
mov byte [esp + 0x57c], 4
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x57c], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x24]
mov byte [esp + 0x57c], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x57c], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x57c], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x57c], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 0x67
jmp 0x4ebb54
lea eax, [esp + 0x6c]
lea ecx, [esp + 0x18]
push eax
call fcn.004c8322
push str.NetLicense.lic
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::operator_2
lea ecx, [esp + 0x6c]
push ecx
call fcn.004eac80
add esp, 4
test eax, eax
jne 0x4eb4be
lea ecx, [esp + 0x14]
mov byte [esp + 0x57c], 4
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x57c], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x24]
mov byte [esp + 0x57c], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x57c], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x57c], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x57c], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 0x68
jmp 0x4ebb54
lea edx, [esp + 0x6c]
lea ecx, [esp + 0x20]
push edx
call fcn.004c8322
lea eax, [esp + 0x40]
push eax
call sub.MFC42.DLL_CTime::GetTickCount
push ebx
lea ecx, [esp + 0x44]
call sub.MFC42.DLL_CTime::GetLocalTm
mov edi, dword [eax + 0xc]
push ebx
lea ecx, [esp + 0x44]
call sub.MFC42.DLL_CTime::GetLocalTm
mov esi, dword [eax + 0x10]
push ebx
lea ecx, [esp + 0x44]
inc esi
call sub.MFC42.DLL_CTime::GetLocalTm
mov eax, dword [eax + 0x14]
push edi
add eax, 0x76c
push esi
push eax
lea ecx, [esp + 0x28]
push str._04d_02d_02d
push ecx
call sub.MFC42.DLL_CString::Format
add esp, 0x14
lea ecx, [esp + 0x44]
call fcn.004c84b4
mov edx, dword [esp + 0x18]
push ebx
push 0x8000
push edx
lea ecx, [esp + 0x50]
mov byte [esp + 0x588], 6
call sub.MFC42.DLL_CFile::Open
test eax, eax
jne 0x4eb5c8
lea ecx, [esp + 0x44]
mov byte [esp + 0x57c], 5
call sub.MFC42.DLL_CFile::CFile
lea ecx, [esp + 0x14]
mov byte [esp + 0x57c], 4
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x57c], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x24]
mov byte [esp + 0x57c], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x57c], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x57c], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x57c], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 0x69
jmp 0x4ebb54
lea ecx, [esp + 0x44]
call sub.MFC42.DLL_CFile::GetLength
mov edi, eax
lea eax, [edi + 1]
push eax
call sub.MFC42.DLL_operatornew
add esp, 4
mov esi, eax
lea ecx, [esp + 0x44]
push edi
push esi
call sub.MFC42.DLL_CFile::Read
lea ecx, [esp + 0x44]
mov byte [esi + edi], bl
call sub.MFC42.DLL_CFile::Close
mov ebp, 0x515c40
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x30], ebx
lea ecx, [esp + 0x28]
push 0x545eac
push ecx
push esi
mov byte [esp + 0x588], 7
call fcn.004ebc40
push esi
call sub.MFC42.DLL_operatordelete
mov eax, dword [esp + 0x40]
add esp, 0x10
cmp eax, 2
jge 0x4eb6f2
mov dword [esp + 0x28], ebp
mov ecx, dword [esp + 0x2c]
mov byte [esp + 0x57c], 8
cmp ecx, ebx
je 0x4eb667
push eax
push ecx
call sub.MFC42.DLL_DestructElements
mov edx, dword [esp + 0x2c]
push edx
call sub.MFC42.DLL_operatordelete
add esp, 4
lea ecx, [esp + 0x44]
mov dword [esp + 0x28], 0x514bb8
mov byte [esp + 0x57c], 5
call sub.MFC42.DLL_CFile::CFile
lea ecx, [esp + 0x14]
mov byte [esp + 0x57c], 4
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x57c], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x24]
mov byte [esp + 0x57c], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x57c], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x57c], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x57c], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 0x6a
jmp 0x4ebb54
lea ecx, [esp + 0x58]
call fcn.004f2650
lea eax, [esp + 0x24]
lea ecx, [esp + 0x20]
push eax
lea edx, [esp + 0x40]
push ecx
push edx
mov byte [esp + 0x588], 9
call sub.MFC42.DLL_operator_3
mov eax, dword [eax]
lea ecx, [esp + 0x58]
push eax
mov byte [esp + 0x580], 0xa
call fcn.004f27b0
lea ecx, [esp + 0x3c]
mov byte [esp + 0x57c], 9
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x5c]
mov eax, dword [eax]
push eax
call fcn.004f28f0
test eax, eax
jne 0x4eb821
lea ecx, [esp + 0x58]
mov byte [esp + 0x57c], 7
call fcn.004f2740
mov dword [esp + 0x28], ebp
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x57c], 0xb
cmp eax, ebx
je 0x4eb796
mov edx, dword [esp + 0x30]
push edx
push eax
call sub.MFC42.DLL_DestructElements
mov eax, dword [esp + 0x2c]
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
lea ecx, [esp + 0x44]
mov dword [esp + 0x28], 0x514bb8
mov byte [esp + 0x57c], 5
call sub.MFC42.DLL_CFile::CFile
lea ecx, [esp + 0x14]
mov byte [esp + 0x57c], 4
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x57c], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x24]
mov byte [esp + 0x57c], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x57c], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x57c], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x57c], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 0x6b
jmp 0x4ebb54
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
push ecx
push edx
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
test eax, eax
je 0x4eb904
lea ecx, [esp + 0x58]
mov byte [esp + 0x57c], 7
call fcn.004f2740
mov dword [esp + 0x28], ebp
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x57c], 0xc
cmp eax, ebx
je 0x4eb879
mov ecx, dword [esp + 0x30]
push ecx
push eax
call sub.MFC42.DLL_DestructElements
mov edx, dword [esp + 0x2c]
push edx
call sub.MFC42.DLL_operatordelete
add esp, 4
lea ecx, [esp + 0x44]
mov dword [esp + 0x28], 0x514bb8
mov byte [esp + 0x57c], 5
call sub.MFC42.DLL_CFile::CFile
lea ecx, [esp + 0x14]
mov byte [esp + 0x57c], 4
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x57c], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x24]
mov byte [esp + 0x57c], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x57c], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x57c], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x57c], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 0xc9
jmp 0x4ebb54
lea eax, [esp + 0x24]
lea ecx, [esp + 0x20]
push eax
lea edx, [esp + 0x58]
push ecx
push edx
call sub.MFC42.DLL_operator_3
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x3c]
push ecx
push eax
push edx
mov byte [esp + 0x588], 0xd
call sub.MFC42.DLL_operator_3
mov eax, dword [eax]
lea ecx, [esp + 0x58]
push eax
mov byte [esp + 0x580], 0xe
call fcn.004f27b0
lea ecx, [esp + 0x3c]
mov byte [esp + 0x57c], 0xd
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x54]
mov byte [esp + 0x57c], 9
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x14]
mov eax, dword [ecx + eax*4 - 4]
push edx
push eax
lea ecx, [esp + 0x60]
call fcn.004f28f0
test eax, eax
jne 0x4eba51
lea ecx, [esp + 0x58]
mov byte [esp + 0x57c], 7
call fcn.004f2740
mov dword [esp + 0x28], ebp
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x57c], 0xf
cmp eax, ebx
je 0x4eb9c6
mov ecx, dword [esp + 0x30]
push ecx
push eax
call sub.MFC42.DLL_DestructElements
mov edx, dword [esp + 0x2c]
push edx
call sub.MFC42.DLL_operatordelete
add esp, 4
lea ecx, [esp + 0x44]
mov dword [esp + 0x28], 0x514bb8
mov byte [esp + 0x57c], 5
call sub.MFC42.DLL_CFile::CFile
lea ecx, [esp + 0x14]
mov byte [esp + 0x57c], 4
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x57c], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x24]
mov byte [esp + 0x57c], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x57c], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x57c], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x57c], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 0x6c
jmp 0x4ebb54
mov edx, dword [esp + 0x14]
or esi, 0xffffffff
mov edi, edx
mov ecx, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 0x190
jl 0x4ebb6d
mov ecx, edx
mov dl, byte [ecx + 1]
add ecx, 2
shl dl, 4
add dl, byte [ecx - 2]
add dl, 0x1f
mov byte [eax + 0x54c2ac], dl
inc eax
cmp eax, 0xc8
jl 0x4eba71
lea ecx, [esp + 0x58]
mov dword [0x54c374], 1
mov byte [esp + 0x57c], 7
call fcn.004f2740
mov dword [esp + 0x28], ebp
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x57c], 0x11
cmp eax, ebx
je 0x4ebad5
mov ecx, dword [esp + 0x30]
push ecx
push eax
call sub.MFC42.DLL_DestructElements
mov edx, dword [esp + 0x2c]
push edx
call sub.MFC42.DLL_operatordelete
add esp, 4
lea ecx, [esp + 0x44]
mov dword [esp + 0x28], 0x514bb8
mov byte [esp + 0x57c], 5
call sub.MFC42.DLL_CFile::CFile
lea ecx, [esp + 0x14]
mov byte [esp + 0x57c], 4
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x57c], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x24]
mov byte [esp + 0x57c], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x57c], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x57c], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x57c], esi
call sub.MFC42.DLL_CString::CString
xor eax, eax
mov ecx, dword [esp + 0x574]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x570
ret
lea ecx, [esp + 0x58]
mov byte [esp + 0x57c], 7
call fcn.004f2740
mov dword [esp + 0x28], ebp
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x57c], 0x10
cmp eax, ebx
je 0x4ebbaa
mov ecx, dword [esp + 0x30]
push ecx
push eax
call sub.MFC42.DLL_DestructElements
mov edx, dword [esp + 0x2c]
push edx
call sub.MFC42.DLL_operatordelete
add esp, 4
lea ecx, [esp + 0x44]
mov dword [esp + 0x28], 0x514bb8
mov byte [esp + 0x57c], 5
call sub.MFC42.DLL_CFile::CFile
lea ecx, [esp + 0x14]
mov byte [esp + 0x57c], 4
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x57c], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x24]
mov byte [esp + 0x57c], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x57c], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x57c], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x57c], esi
call sub.MFC42.DLL_CString::CString
mov eax, 0x6d
jmp 0x4ebb54