Function at 0x1006ff6
Capabilities:
Accept command line arguments
Read .ini file
Set current directory

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x35c
mov eax, dword [0x1011040]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
xor ebx, ebx
push edi
mov esi, ecx
mov dword [ebp - 0x324], ebx
mov dword [ebp - 0x334], ebx
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push eax
call sub.cmutil.dll_CmStrCpyAllocA
push eax
mov dword [ebp - 0x338], eax
call fcn.01009184
mov dword [ebp - 0x32c], eax
cmp eax, ebx
je 0x1007785
cmp dword [eax], ebx
je 0x1007785
add eax, 4
mov dword [ebp - 0x320], ebx
mov dword [ebp - 0x328], 1
cmp dword [eax], ebx
je 0x10071ec
mov edi, eax
mov dword [ebp - 0x330], ebx
cmp dword [section..data], ebx
je 0x10070de
mov eax, section..data
push dword [edi]
push dword [eax]
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x10070a3
inc dword [ebp - 0x330]
mov eax, dword [ebp - 0x330]
lea eax, [eax*8 + section..data]
cmp dword [eax], ebx
jne 0x100707c
jmp 0x10070de
cmp dword [ebp - 0x320], ebx
jne 0x1007213
mov eax, dword [ebp - 0x330]
mov eax, dword [eax*8 + 0x1011004]
cmp eax, 4
je 0x10070d2
cmp eax, 8
jne 0x10070db
mov dword [ebp - 0x320], 1
jmp 0x10070de
cmp dword [esi + 8], ebx
jne 0x100721d
or dword [esi + 0xc], eax
mov eax, dword [ebp - 0x330]
cmp dword [eax*8 + section..data], ebx
jne 0x10071db
cmp dword [ebp - 0x320], ebx
je 0x1007172
cmp dword [ebp - 0x324], ebx
jne 0x100721d
push 0x825
mov dword [ebp - 0x320], ebx
call sub.cmutil.dll_CmMalloc
mov dword [ebp - 0x324], eax
cmp eax, ebx
je 0x10077aa
push 0x900
push ebx
push ebx
push dword [edi]
push 0x825
push eax
call fcn.01004e49
test eax, eax
jl 0x1007797
push dword [edi]
push 0x825
push dword [ebp - 0x324]
call fcn.01004e0f
cmp eax, ebx
jge 0x10071db
push eax
push 0x1002924
push dword [0x101135c]
call fcn.0100a43e
add esp, 0xc
jmp 0x1007797
cmp dword [esi + 8], ebx
jne 0x100721d
test byte [esi + 0xc], 4
jne 0x100721d
push 0x100
push ebx
push ebx
push dword [edi]
lea eax, [ebp - 0x214]
push 0x105
push eax
call fcn.01004e49
cmp eax, ebx
jl 0x1007159
lea eax, [ebp - 0x214]
push eax
call sub.cmutil.dll_CmStrCpyAllocA
mov dword [esi + 8], eax
cmp eax, ebx
je 0x1007797
push 0x5c
lea eax, [ebp - 0x214]
push eax
call sub.cmutil.dll_CmStrrchrA
cmp eax, ebx
je 0x10071db
mov byte [eax], bl
lea eax, [ebp - 0x214]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
inc dword [ebp - 0x328]
add edi, 4
cmp dword [edi], ebx
jne 0x1007069
mov eax, dword [esi + 0xc]
test al, 0x40
je 0x1007245
or eax, 0x61
cmp eax, 0x61
jne 0x1007797
mov dword [ebp - 0x334], 1
push 0x10028e0
jmp 0x100778a
push 0x10028b0
jmp 0x100778a
mov eax, dword [ebp - 0x328]
mov ecx, dword [ebp - 0x32c]
push dword [ecx + eax*4]
push eax
push 0x1002880
push dword [0x101135c]
call fcn.0100a43e
add esp, 0x10
jmp 0x1007797
cmp dword [ebp - 0x320], ebx
jne 0x1007213
mov ecx, dword [esi + 8]
cmp ecx, ebx
jne 0x1007266
test al, 4
jne 0x1007262
push 0x1002838
jmp 0x100778a
cmp ecx, ebx
je 0x1007278
cmp dword [ebp - 0x324], ebx
je 0x1007278
push 0x10027f0
jmp 0x100778a
push 0x36c
call sub.cmutil.dll_CmMalloc
mov dword [esi + 0x28], eax
cmp eax, ebx
je 0x1007797
mov ecx, dword [ebp - 0x324]
inc dword [esi + 0x24]
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edi, 0x1001a20
test ecx, ecx
jne 0x10075de
mov eax, dword [esi + 8]
test eax, eax
jne 0x10072c7
push 0x10027a0
push dword [0x101135c]
call fcn.0100a43e
pop ecx
pop ecx
jmp 0x10077aa
push eax
push 0x104
lea eax, [ebp - 0x10c]
push eax
push edi
push 0x1001988
push 0x10019ac
call ebx
cmp byte [ebp - 0x10c], 0
jne 0x1007305
push dword [esi + 8]
push 0x1002760
push dword [0x101135c]
call fcn.0100a43e
add esp, 0xc
jmp 0x10077aa
push 0x100275c
push 0x105
lea eax, [ebp - 0x214]
push eax
call fcn.01005089
test eax, eax
jge 0x1007327
push eax
push 0x1002734
jmp 0x10072f2
lea eax, [ebp - 0x10c]
push eax
push 0x105
lea eax, [ebp - 0x214]
push eax
call fcn.01005089
test eax, eax
jl 0x100731f
lea eax, [ebp - 0x214]
push eax
call sub.cmutil.dll_CmStrCpyAllocA
mov ecx, dword [esi + 0x28]
mov dword [ecx], eax
mov eax, dword [esi + 0x28]
cmp dword [eax], 0
je 0x10077aa
push dword [eax]
lea eax, [ebp - 0x10c]
push 0x104
push eax
push edi
push 0x1001970
push 0x1001978
call ebx
cmp byte [ebp - 0x10c], 0
jne 0x10073ad
mov eax, dword [esi + 0x28]
push dword [eax]
push 0x10026f8
push dword [0x101135c]
call fcn.0100a43e
add esp, 0xc
push edi
call sub.cmutil.dll_CmStrCpyAllocA
mov ecx, dword [esi + 0x28]
mov dword [ecx + 0x18], eax
jmp 0x100743c
lea eax, [ebp - 0x10c]
push eax
call sub.cmutil.dll_CmStrCpyAllocA
mov ecx, dword [esi + 0x28]
mov dword [ecx + 4], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 4]
test eax, eax
je 0x10077aa
push 0x5c
push eax
call sub.cmutil.dll_CmStrrchrA
mov dword [ebp - 0x320], eax
test eax, eax
jne 0x10073e9
push 0x10026d0
jmp 0x10072b5
push 0x2e
push dword [ebp - 0x320]
call sub.cmutil.dll_CmStrchrA
mov dword [ebp - 0x328], eax
test eax, eax
jne 0x100740a
push 0x10026ac
jmp 0x10072b5
mov eax, dword [ebp - 0x328]
mov byte [eax], 0
mov eax, dword [ebp - 0x320]
inc eax
push eax
call sub.cmutil.dll_CmStrCpyAllocA
mov ecx, dword [esi + 0x28]
mov dword [ecx + 0x18], eax
mov eax, dword [esi + 0x28]
cmp dword [eax + 0x18], 0
je 0x10077aa
mov eax, dword [ebp - 0x328]
mov byte [eax], 0x2e
mov eax, dword [esi + 0x28]
push dword [eax]
lea eax, [ebp - 0x10c]
push 0x104
push eax
push edi
push 0x1001964
push 0x1001978
call ebx
cmp byte [ebp - 0x10c], 0
jne 0x100747b
mov eax, dword [esi + 0x28]
push dword [eax]
push 0x10026f8
push dword [0x101135c]
call fcn.0100a43e
add esp, 0xc
lea eax, [ebp - 0x10c]
push eax
call sub.cmutil.dll_CmStrCpyAllocA
mov ecx, dword [esi + 0x28]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0x28]
cmp dword [eax + 8], 0
je 0x10077aa
push dword [eax]
lea eax, [ebp - 0x10c]
push 0x104
push eax
push edi
push 0x10019a4
push 0x10019ac
call ebx
lea eax, [ebp - 0x10c]
push eax
call sub.cmutil.dll_CmStrCpyAllocA
mov ecx, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
cmp dword [eax + 0x10], 0
je 0x10077aa
push 0x825
call sub.cmutil.dll_CmMalloc
mov ecx, dword [esi + 0x28]
mov dword [ecx + 0xc], eax
mov edx, dword [esi + 0x28]
cmp dword [edx + 0xc], 0
je 0x10077aa
push 9
pop ecx
xor eax, eax
lea edi, [ebp - 0x35c]
rep stosd dword es:[edi], eax
mov dword [ebp - 0x35c], 0x24
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x358], eax
lea eax, [ebp - 0x35c]
push eax
mov dword [ebp - 0x354], 0x824
mov dword [ebp - 0x340], 0x1006dc8
mov dword [ebp - 0x33c], esi
push dword [edx]
call sub.cmpbk32.dll_PhoneBookParseInfoA
mov dword [ebp - 0x334], eax
test eax, eax
jne 0x1007554
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x100267c
jmp 0x10072f2
push dword [ebp - 0x350]
call sub.cmpbk32.dll_PhoneBookFreeFilter
push dword [ebp - 0x34c]
call sub.cmpbk32.dll_PhoneBookFreeFilter
mov eax, dword [esi + 0x28]
push dword [eax]
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push 0x78
push 0x1001874
push 0x10019ac
call edi
imul eax, eax, 0x3e8
push eax
mov dword [esi + 4], eax
push 0x1002658
push dword [0x101135c]
call fcn.0100a43e
mov eax, dword [esi + 0x28]
add esp, 0xc
push dword [eax]
push 0xffffffffffffffff
push 0x1001884
push 0x10019ac
call edi
test eax, eax
jge 0x10075bd
or dword [esi + 0x50], 0xffffffff
jmp 0x10075c6
imul eax, eax, 0x3e8
mov dword [esi + 0x50], eax
push dword [esi + 0x50]
push 0x1002638
push dword [0x101135c]
call fcn.0100a43e
add esp, 0xc
jmp 0x10075e1
mov dword [eax + 0xc], ecx
cmp dword [esi + 8], 0
je 0x100773f
push 0x105
call sub.cmutil.dll_CmMalloc
mov dword [esi + 0x3c], eax
test eax, eax
je 0x10077aa
mov eax, dword [esi + 0x28]
mov edi, 0x100
push edi
push 0
push 0
push dword [eax]
lea eax, [ebp - 0x10c]
push 0x105
push eax
call fcn.01004e49
mov dword [ebp - 0x320], eax
test eax, eax
jge 0x1007642
push dword [esi + 0x3c]
call sub.cmutil.dll_CmFree
push dword [ebp - 0x320]
push 0x100260c
jmp 0x10072f2
push 0x2e
lea eax, [ebp - 0x10c]
push eax
call sub.cmutil.dll_CmStrrchrA
test eax, eax
je 0x1007665
push 0x2e
lea eax, [ebp - 0x10c]
push eax
call sub.cmutil.dll_CmStrrchrA
mov byte [eax], 0
push 0x5c
lea eax, [ebp - 0x10c]
push eax
call sub.cmutil.dll_CmStrrchrA
test eax, eax
je 0x10076ae
push edi
push 0
push 0
push 0x5c
lea eax, [ebp - 0x10c]
push eax
call sub.cmutil.dll_CmStrrchrA
inc eax
push eax
push 0x105
lea eax, [ebp - 0x10c]
push eax
call fcn.01004e49
mov edi, eax
test edi, edi
jge 0x10076ae
push dword [esi + 0x3c]
call sub.cmutil.dll_CmFree
push edi
jmp 0x1007638
mov eax, dword [esi + 0x28]
push dword [eax]
lea eax, [ebp - 0x10c]
push 0x104
push dword [esi + 0x3c]
mov edi, 0x10019ac
push eax
push 0x100197c
push edi
call ebx
mov eax, dword [esi + 0x28]
push dword [eax]
lea eax, [ebp - 0x31c]
push 0x104
push eax
push 0x1001a20
push 0x100199c
push edi
call ebx
cmp byte [ebp - 0x31c], 0
je 0x1007707
lea eax, [ebp - 0x31c]
push eax
push dword [esi]
call sub.cmutil.dll_CmLoadIconA
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x28]
push dword [eax]
lea eax, [ebp - 0x31c]
push 0x104
push eax
push 0x1001a20
push 0x1001990
push edi
call ebx
cmp byte [ebp - 0x31c], 0
je 0x100773f
lea eax, [ebp - 0x31c]
push eax
push dword [esi]
call sub.cmutil.dll_CmLoadSmallIconA
mov dword [esi + 0x44], eax
cmp dword [esi + 0x40], 0
jne 0x1007751
push 0x66
push dword [esi]
call sub.cmutil.dll_CmLoadIconA
mov dword [esi + 0x40], eax
cmp dword [esi + 0x44], 0
jne 0x1007763
push 0x66
push dword [esi]
call sub.cmutil.dll_CmLoadSmallIconA
mov dword [esi + 0x44], eax
mov esi, dword [esi + 0x28]
push dword [esi + 0x18]
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
push 0x825
call fcn.01006b3c
mov dword [ebp - 0x334], 1
jmp 0x10077aa
push 0x10025ec
push dword [0x101135c]
call fcn.0100a43e
pop ecx
pop ecx
cmp dword [ebp - 0x324], ebx
je 0x10077aa
push dword [ebp - 0x324]
call sub.cmutil.dll_CmFree
cmp dword [ebp - 0x338], 0
pop edi
pop esi
pop ebx
je 0x10077c1
push dword [ebp - 0x338]
call sub.cmutil.dll_CmFree
cmp dword [ebp - 0x32c], 0
je 0x10077d5
push dword [ebp - 0x32c]
call sub.cmutil.dll_CmFree
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x334]
xor ecx, ebp
call fcn.010096ed
leave
ret