Function at 0x4cd650
Capabilities:
Check if file exists
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5a75d7
mov eax, dword fs:[0]
push eax
mov eax, 0x10abc
call fcn.0056e430
mov eax, dword [0x608554]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x10a98], ebx
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
push ecx
push str.CBaseInfoAddIn::MakeAddinInfoFile
lea ecx, [ebp - 0x10a90]
mov dword [ebp - 0x10abc], eax
call fcn.0040a480
mov dword [ebp - 4], 0
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x4cd6ee
test byte [ecx + 0x1c], 1
je 0x4cd6ee
cmp dword [0x608f68], 8
mov eax, 0x608f54
mov edx, 0x5d8b50
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x1f
call fcn.00401840
add esp, 0xc
push 0x200
lea eax, [ebp - 0x620]
push 0
push eax
call fcn.00571c00
push 0x200
lea eax, [ebp - 0x820]
push 0
push eax
call fcn.00571c00
push 0x208
lea eax, [ebp - 0x420]
push 0
push eax
call fcn.00571c00
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00571c00
push 0x10000
lea eax, [ebp - 0x10a28]
mov dword [ebp - 0x10ab8], 0
push 0
push eax
call fcn.00571c00
add esp, 0x3c
mov dword [ebp - 0x10a9c], 0
lea ecx, [ebp - 0x10ac4]
call fcn.0046a2f0
lea eax, [ebp - 0x420]
mov byte [ebp - 4], 1
push eax
call fcn.0052ee40
mov ecx, eax
call fcn.00534cc0
push eax
lea ecx, [ebp - 0x10ac4]
call fcn.0046ae70
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
mov esi, dword [edi]
cmp esi, dword [edi + 4]
je 0x4cd8f0
mov ebx, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov ecx, 7
mov dword [ebp - 0x10a30], 0
xor eax, eax
mov dword [ebp - 0x10a2c], ecx
mov word [ebp - 0x10a40], ax
lea eax, [ebp - 0x10a40]
mov byte [ebp - 4], 2
cmp eax, esi
je 0x4cd7fb
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x4cd7e6
mov eax, dword [esi]
push dword [esi + 0x10]
lea ecx, [ebp - 0x10a40]
push eax
call fcn.004035d0
mov ecx, dword [ebp - 0x10a2c]
cmp ecx, 8
lea eax, [ebp - 0x10a40]
cmovae eax, dword [ebp - 0x10a40]
push eax
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x218]
push 0x5c70f4
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea eax, [ebp - 0x218]
push eax
call ebx
test eax, eax
jne 0x4cd89a
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x4cd87c
test byte [ecx + 0x1c], 4
je 0x4cd87c
cmp dword [0x608f68], 8
lea edx, [ebp - 0x218]
push edx
mov eax, 0x608f54
mov edx, 0x5d8b50
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x20
call fcn.00405920
add esp, 0x10
mov edx, dword [edi + 4]
lea ecx, [esi + 0x18]
push esi
call fcn.004d5610
mov ecx, dword [edi + 4]
add esp, 4
sub ecx, 0x18
call fcn.00403570
add dword [edi + 4], 0xffffffe8
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x10a2c]
cmp edx, 8
jb 0x4cd8de
mov ecx, dword [ebp - 0x10a40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4cd8d4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4cdf16
push edx
push ecx
call fcn.0056deb6
add esp, 8
add esi, 0x18
cmp esi, dword [edi + 4]
jne 0x4cd7b0
mov ebx, dword [ebp - 0x10a98]
push 0x208
lea eax, [ebp - 0xa28]
push 0
push eax
call fcn.00571c00
mov esi, dword [ebp - 0x10abc]
lea eax, [ebp - 0xa28]
add esp, 0xc
mov ecx, ebx
push 0x104
push eax
push esi
call fcn.004d4a10
lea ecx, [ebp - 0x10ab4]
mov dword [ebp - 0x10abc], eax
call fcn.00562701
push 0
add ebx, 0x10
mov byte [ebp - 4], 3
push 0xb002
push ebx
lea ecx, [ebp - 0x10ab4]
mov dword [ebp - 0x10a98], ebx
call fcn.00562b10
test eax, eax
jne 0x4cd9a3
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x4cd99c
test byte [ecx + 0x1c], 4
je 0x4cd99c
cmp dword [0x608f68], 8
mov eax, 0x608f54
push ebx
cmovae eax, dword [0x608f54]
mov edx, 0x5d8b50
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x21
call fcn.00405920
mov ecx, dword [0x608f30]
add esp, 0x10
xor ebx, ebx
jmp 0x4cde93
lea ecx, [ebp - 0x10ab4]
mov dword [ebp - 0x10ac0], 0
mov dword [ebp - 0x10a94], 1
call fcn.00562a26
test edx, edx
jne 0x4cd9ca
test eax, eax
je 0x4cda21
mov eax, dword [ebp - 0x10ab4]
lea ecx, [ebp - 0x10ab4]
push 0
push 0
push 0
call dword [eax + 0x2c]
push 4
lea eax, [ebp - 0x10ac0]
push eax
lea ecx, [ebp - 0x10ab4]
call fcn.00562c46
push 4
lea eax, [ebp - 0x10ac0]
push eax
lea ecx, [ebp - 0x10ab4]
call fcn.00562c46
push 4
lea eax, [ebp - 0x10a94]
push eax
lea ecx, [ebp - 0x10ab4]
call fcn.00562c46
inc dword [ebp - 0x10a94]
mov eax, dword [ebp - 0x10ab4]
lea ecx, [ebp - 0x10ab4]
push 0
push 0
push 0
call dword [eax + 0x2c]
push 4
push 0x60d7d0
lea ecx, [ebp - 0x10ab4]
call fcn.00562ea1
push 4
push 0x608f6c
lea ecx, [ebp - 0x10ab4]
call fcn.00562ea1
push 4
lea eax, [ebp - 0x10a94]
push eax
lea ecx, [ebp - 0x10ab4]
call fcn.00562ea1
cmp dword [ebp - 0x10a94], 1
jbe 0x4cda88
push 2
push 0xffffffffffffffff
push 0xfffffffffffffffc
lea ecx, [ebp - 0x10ab4]
call fcn.00562e14
push 4
push 0x60d7d8
lea ecx, [ebp - 0x10ab4]
call fcn.00562ea1
push 0x410
push esi
lea ecx, [ebp - 0x10ab4]
call fcn.00562ea1
mov ecx, dword [edi + 4]
mov eax, 0x2aaaaaab
sub ecx, dword [edi]
imul ecx
push 4
sar edx, 2
lea ecx, [ebp - 0x10ab4]
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x10ac8], eax
lea eax, [ebp - 0x10ac8]
push eax
call fcn.00562ea1
mov esi, dword [edi]
cmp esi, dword [edi + 4]
je 0x4cde59
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
nop dword [eax]
push 4
push 0x60d7f0
lea ecx, [ebp - 0x10ab4]
call fcn.00562ea1
mov ecx, 7
mov dword [ebp - 0x10a48], 0
xor eax, eax
mov dword [ebp - 0x10a44], ecx
mov word [ebp - 0x10a58], ax
lea eax, [ebp - 0x10a58]
mov byte [ebp - 4], 4
cmp eax, esi
je 0x4cdb4d
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x4cdb38
mov eax, dword [esi]
push dword [esi + 0x10]
lea ecx, [ebp - 0x10a58]
push eax
call fcn.004035d0
mov ecx, dword [ebp - 0x10a44]
cmp ecx, 8
lea eax, [ebp - 0x10a58]
cmovae eax, dword [ebp - 0x10a58]
push eax
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x218]
push 0x5c70f4
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
push 0x200
lea eax, [ebp - 0x620]
push 0
push eax
call fcn.00571c00
add esp, 0x1c
lea eax, [ebp - 0x218]
push eax
push 0x100
lea eax, [ebp - 0x620]
push eax
push 0x5c6930
push 0x5d87d0
push str.Add_Ins
call ebx
test eax, eax
jne 0x4cdbfb
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x4cdbfb
test byte [ecx + 0x1c], 4
je 0x4cdbfb
cmp dword [0x608f68], 8
mov eax, 0x608f54
push dword [ebp - 0x10a98]
cmovae eax, dword [0x608f54]
mov edx, 0x5d8b50
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x22
call fcn.00405920
add esp, 0x10
push 0x200
lea eax, [ebp - 0x620]
push eax
lea ecx, [ebp - 0x10ab4]
call fcn.00562ea1
push 0x200
lea eax, [ebp - 0x820]
push 0
push eax
call fcn.00571c00
add esp, 0xc
lea eax, [ebp - 0x218]
push eax
push 0x100
lea eax, [ebp - 0x820]
push eax
push 0x5c6930
push str.Version
push str.Add_Ins
call ebx
test eax, eax
jne 0x4cdc96
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x4cdc96
test byte [ecx + 0x1c], 4
je 0x4cdc96
cmp dword [0x608f68], 8
mov eax, 0x608f54
push dword [ebp - 0x10a98]
cmovae eax, dword [0x608f54]
mov edx, 0x5d8b50
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x23
call fcn.00405920
add esp, 0x10
push 0x200
lea eax, [ebp - 0x820]
push eax
lea ecx, [ebp - 0x10ab4]
call fcn.00562ea1
push 0x10000
lea eax, [ebp - 0x10a28]
push 0
push eax
call fcn.00571c00
add esp, 0xc
lea eax, [ebp - 0x218]
push eax
push 0x8000
lea eax, [ebp - 0x10a28]
push eax
push str.notsupport
push str.DependentFiles
push str.Add_Ins
call ebx
test eax, eax
jne 0x4cdd31
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x4cdd31
test byte [ecx + 0x1c], 4
je 0x4cdd31
cmp dword [0x608f68], 8
mov eax, 0x608f54
push dword [ebp - 0x10a98]
cmovae eax, dword [0x608f54]
mov edx, 0x5d8b50
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x24
call fcn.00405920
add esp, 0x10
push str.notsupport
lea eax, [ebp - 0x10a28]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x4cdd59
mov dword [ebp - 0x10ab8], 1
mov dword [ebp - 0x10a9c], eax
jmp 0x4cddb0
cmp dword [ebp - 0x10abc], 0
je 0x4cdd93
push 0x5cc9f0
lea eax, [ebp - 0x10a28]
push 0x8000
push eax
call fcn.00574a48
lea eax, [ebp - 0xa28]
push eax
lea eax, [ebp - 0x10a28]
push 0x8000
push eax
call fcn.00574a48
add esp, 0x18
lea eax, [ebp - 0x10a28]
mov dword [ebp - 0x10ab8], 1
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp - 0x10a9c], eax
push 4
lea eax, [ebp - 0x10ab8]
push eax
lea ecx, [ebp - 0x10ab4]
call fcn.00562ea1
push 4
lea eax, [ebp - 0x10a9c]
push eax
lea ecx, [ebp - 0x10ab4]
call fcn.00562ea1
mov eax, dword [ebp - 0x10a9c]
test eax, eax
je 0x4cddf7
add eax, eax
lea ecx, [ebp - 0x10ab4]
push eax
lea eax, [ebp - 0x10a28]
push eax
call fcn.00562ea1
push 4
push 0x60d7e0
lea ecx, [ebp - 0x10ab4]
call fcn.00562ea1
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x10a44]
cmp edx, 8
jb 0x4cde4d
mov ecx, dword [ebp - 0x10a58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4cde43
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4cdf16
push edx
push ecx
call fcn.0056deb6
add esp, 8
add esi, 0x18
cmp esi, dword [edi + 4]
jne 0x4cdaf0
push 4
push 0x60d800
lea ecx, [ebp - 0x10ab4]
call fcn.00562ea1
push 4
push 0x60d7e8
lea ecx, [ebp - 0x10ab4]
call fcn.00562ea1
lea ecx, [ebp - 0x10ab4]
call fcn.00562926
mov ecx, dword [0x608f30]
mov ebx, 1
mov byte [ebp - 0x10a8c], 1
cmp ecx, 0x608f30
je 0x4cded5
test byte [ecx + 0x1c], 1
je 0x4cded5
cmp dword [0x608f68], 8
mov eax, 0x608f54
push ebx
cmovae eax, dword [0x608f54]
mov edx, 0x5d8b50
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x25
call fcn.004018a0
add esp, 0x10
lea ecx, [ebp - 0x10ab4]
call fcn.00562734
lea ecx, [ebp - 0x10ac4]
call fcn.0046a3c0
lea ecx, [ebp - 0x10a90]
call fcn.0040a570
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0056d977
mov esp, ebp
pop ebp
ret 8
call fcn.00574908
int3