Function at 0x401ea0
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x409086
mov eax, dword fs:[0]
push eax
sub esp, 0x830
mov eax, dword [0x40e028]
xor eax, esp
mov dword [esp + 0x828], eax
push ebx
push esi
push edi
mov eax, dword [0x40e028]
xor eax, esp
push eax
lea eax, [esp + 0x840]
mov dword fs:[0], eax
xor eax, eax
push 0x800
mov esi, ecx
push eax
lea ecx, [esp + 0x36]
push ecx
mov word [esp + 0x38], ax
call sub.MSVCR100.dll_memset
add esp, 0xc
lea ecx, [esp + 0x20]
call dword [0x40a438]
lea edi, [esi + 0x14]
push edi
push 0
mov dword [esp + 0x850], 0
call dword [sym.imp.mfc100u.dll_AfxGetModuleFileName]
push 0x5c
mov ecx, edi
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::ReverseFind]
inc eax
push eax
lea edx, [esp + 0x18]
push edx
mov ecx, edi
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Left]
push eax
mov ecx, edi
mov byte [esp + 0x84c], 1
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator]
lea ecx, [esp + 0x14]
mov byte [esp + 0x848], 0
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
lea eax, [esp + 0x14]
push eax
call fcn.004053d0
add esp, 4
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x84c], 2
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator]
lea ecx, [esp + 0x14]
mov byte [esp + 0x848], 0
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
mov ecx, dword [esp + 0x20]
push ecx
push 0x400
lea edx, [esp + 0x34]
push edx
push str.szcakeysvr.exe
push str.Procs
push str.Service
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x14]
call dword [0x40a420]
push 0
push 0x7c
lea ecx, [esp + 0x18]
mov byte [esp + 0x850], 3
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Find]
mov ebx, eax
mov dword [esp + 0x14], ebx
cmp ebx, 0xffffffff
je 0x402180
push ebx
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Left]
mov byte [esp + 0x848], 4
mov edx, dword [esp + 0x18]
cmp dword [edx - 0xc], 0
je 0x402123
push 4
call dword [sym.imp.mfc100u.dll_new]
mov edi, eax
add esp, 4
mov dword [esp + 0x24], edi
mov byte [esp + 0x848], 5
test edi, edi
je 0x40204c
push esi
mov eax, 0x401db0
push eax
push ecx
lea eax, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x28], esp
push eax
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
call fcn.004036e0
mov edi, eax
mov dword [esp + 0x24], eax
jmp 0x402052
xor edi, edi
mov dword [esp + 0x24], edi
mov byte [esp + 0x848], 4
mov eax, dword [esi + 4]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], edi
cmp ecx, eax
jae 0x4020ce
mov edx, dword [esi]
cmp edx, ecx
ja 0x4020ce
mov edi, ecx
mov ecx, dword [esi + 8]
sub edi, edx
sar edi, 2
cmp eax, ecx
jne 0x4020bc
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x4021d1
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x4020bc
mov edx, ecx
shr edx, 1
mov ebx, 0x3fffffff
sub ebx, edx
cmp ebx, ecx
jae 0x4020aa
xor ecx, ecx
jmp 0x4020ac
add ecx, edx
cmp ecx, eax
jae 0x4020b2
mov ecx, eax
push ecx
call fcn.00402e70
mov ebx, dword [esp + 0x14]
mov eax, dword [esi + 4]
mov edx, dword [esi]
lea edi, [edx + edi*4]
test eax, eax
je 0x40211f
mov ecx, dword [edi]
mov dword [eax], ecx
jmp 0x40211f
mov ecx, dword [esi + 8]
cmp eax, ecx
jne 0x402116
mov edx, dword [esi]
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x4021d1
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x402116
mov edx, ecx
shr edx, 1
mov edi, 0x3fffffff
sub edi, edx
cmp edi, ecx
jae 0x402104
xor ecx, ecx
jmp 0x402106
add ecx, edx
cmp ecx, eax
jae 0x40210c
mov ecx, eax
push ecx
call fcn.00402e70
mov edi, dword [esp + 0x24]
mov eax, dword [esi + 4]
test eax, eax
je 0x40211f
mov dword [eax], edi
add dword [esi + 4], 4
inc ebx
push ebx
lea edx, [esp + 0x2c]
push edx
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Mid]
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x84c], 6
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator]
lea ecx, [esp + 0x28]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
push 0
push 0x7c
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Find]
mov ebx, eax
lea ecx, [esp + 0x18]
mov dword [esp + 0x14], ebx
mov byte [esp + 0x848], 3
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
cmp ebx, 0xffffffff
jne 0x401fe3
mov eax, dword [esp + 0x10]
cmp dword [eax - 0xc], 0
je 0x40223a
mov ebx, 4
push ebx
call dword [sym.imp.mfc100u.dll_new]
mov edi, eax
add esp, 4
mov dword [esp + 0x28], edi
mov byte [esp + 0x848], 7
test edi, edi
je 0x4021dc
push esi
mov eax, 0x401db0
push eax
push ecx
lea edx, [esp + 0x1c]
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
call fcn.004036e0
mov edi, eax
jmp 0x4021de
push str.vector_T__too_long
call dword [sym.imp.MSVCP100.dll_void___cdecl_std::_Xlength_error_char_const__]
xor edi, edi
mov byte [esp + 0x848], 3
mov eax, dword [esi + 4]
lea ecx, [esp + 0x18]
mov dword [esp + 0x18], edi
cmp ecx, eax
jae 0x402222
mov ecx, dword [esi]
lea edx, [esp + 0x18]
cmp ecx, edx
ja 0x402222
mov edi, edx
sub edi, ecx
sar edi, 2
cmp eax, dword [esi + 8]
jne 0x402212
mov eax, esi
call fcn.00402910
mov eax, dword [esi + 4]
test eax, eax
je 0x402237
mov ecx, dword [esi]
mov edx, dword [ecx + edi*4]
mov dword [eax], edx
jmp 0x402237
cmp eax, dword [esi + 8]
jne 0x40222e
mov eax, esi
call fcn.00402910
mov eax, dword [esi + 4]
test eax, eax
je 0x402237
mov dword [eax], edi
add dword [esi + 4], ebx
lea ecx, [esp + 0x10]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
lea ecx, [esp + 0x20]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
mov ecx, dword [esp + 0x840]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x828]
xor ecx, esp
call fcn.004061f0
mov esp, ebp
pop ebp
ret