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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5a5f21
mov eax, dword fs:[0]
push eax
mov eax, 0x1a6c
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, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
push ecx
push str.CBaseDlgMgr::ReadyPnPGraphicResource
lea ecx, [ebp - 0x1a60]
mov dword [ebp - 0x1a78], ebx
call fcn.0040a480
mov dword [ebp - 4], 0
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x4b7d27
test byte [ecx + 0x1c], 1
je 0x4b7cec
cmp dword [0x608f68], 8
mov eax, 0x608f54
mov edx, 0x5d6224
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x64
call fcn.00401840
mov ecx, dword [0x608f30]
add esp, 0xc
cmp ecx, 0x608f30
je 0x4b7d27
test byte [ecx + 0x1c], 1
je 0x4b7d27
cmp dword [0x608f68], 8
mov eax, 0x608f54
push esi
cmovae eax, dword [0x608f54]
mov edx, 0x5d6224
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x65
call fcn.00405920
add esp, 0x10
push 0x208
lea eax, [ebp - 0xa28]
push 0
push eax
call fcn.00571c00
push 0x208
lea eax, [ebp - 0x820]
push 0
push eax
call fcn.00571c00
push 0x800
lea eax, [ebp - 0x1a28]
push 0
push eax
call fcn.00571c00
push 0x800
lea eax, [ebp - 0x1228]
push 0
push eax
call fcn.00571c00
push 0x208
lea eax, [ebp - 0x418]
push 0
push eax
call fcn.00571c00
add esp, 0x3c
mov dword [ebp - 0x1a6c], 0
mov ecx, ebx
mov dword [ebp - 0x1a74], 0
mov dword [ebp - 0x1a70], 0
mov dword [ebp - 0x1a68], 0
call fcn.00403cf0
mov ecx, dword [0x6184f0]
lea eax, [ebp - 0x1a28]
push eax
push str.TEMPPATH
mov ecx, dword [ecx + 0x1c]
call fcn.004f65f0
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [ebp - 0x1a28]
push eax
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcatW]
cmp word [ebp + eax*2 - 0x1a2a], 0x5c
je 0x4b7e00
push 0x5c692c
lea eax, [ebp - 0x1a28]
push eax
call ebx
lea eax, [ebp - 0x1a28]
push eax
lea eax, [ebp - 0x820]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push str.InsDrv.ini
lea eax, [ebp - 0x820]
push eax
call ebx
lea eax, [ebp - 0x820]
push eax
push 0x104
lea eax, [ebp - 0xa28]
push eax
push 0x5c6930
push esi
push str.Installer_Info
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov esi, eax
mov edx, dword [0x608f30]
cmp edx, 0x608f30
je 0x4b7f2b
test byte [edx + 0x1c], 4
je 0x4b7e99
cmp dword [0x608f68], 8
lea eax, [ebp - 0x1a28]
push eax
mov ecx, 0x608f54
cmovae ecx, dword [0x608f54]
push ecx
push dword [edx + 0x14]
mov ecx, 0x66
push dword [edx + 0x10]
mov edx, 0x5d6224
call fcn.00405920
mov edx, dword [0x608f30]
add esp, 0x10
cmp edx, 0x608f30
je 0x4b7f2b
test byte [edx + 0x1c], 4
je 0x4b7ee4
cmp dword [0x608f68], 8
lea ecx, [ebp - 0x820]
push ecx
mov eax, 0x608f54
mov ecx, 0x67
cmovae eax, dword [0x608f54]
push eax
push dword [edx + 0x14]
push dword [edx + 0x10]
mov edx, 0x5d6224
call fcn.00405920
mov edx, dword [0x608f30]
add esp, 0x10
cmp edx, 0x608f30
je 0x4b7f2b
test byte [edx + 0x1c], 4
je 0x4b7f2b
cmp dword [0x608f68], 8
lea ecx, [ebp - 0xa28]
push ecx
mov eax, 0x608f54
mov ecx, 0x68
cmovae eax, dword [0x608f54]
push eax
push dword [edx + 0x14]
push dword [edx + 0x10]
mov edx, 0x5d6224
call fcn.00405920
mov edx, dword [0x608f30]
add esp, 0x10
test esi, esi
je 0x4b883a
mov ecx, dword [0x6184f0]
lea eax, [ebp - 0x1228]
push eax
push str.SOURCEDIR
mov ecx, dword [ecx + 0x1c]
call fcn.004f65f0
lea eax, [ebp - 0x1228]
push eax
call edi
cmp word [ebp + eax*2 - 0x122a], 0x5c
je 0x4b7f6f
push 0x5c692c
lea eax, [ebp - 0x1228]
push eax
call ebx
lea eax, [ebp - 0xa28]
push eax
lea eax, [ebp - 0x1228]
push eax
call ebx
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x4b7fc6
test byte [ecx + 0x1c], 4
je 0x4b7fc6
cmp dword [0x608f68], 8
lea edx, [ebp - 0x1228]
push edx
mov eax, 0x608f54
mov edx, 0x5d6224
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x69
call fcn.00405920
add esp, 0x10
lea eax, [ebp - 0x1228]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4b8064
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x4b8021
test byte [ecx + 0x1c], 4
je 0x4b8021
cmp dword [0x608f68], 8
mov eax, 0x608f54
mov edx, 0x5d6224
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x6c
call fcn.00401840
mov ecx, dword [0x608f30]
add esp, 0xc
mov byte [ebp - 0x1a5c], 1
cmp ecx, 0x608f30
je 0x4b88bd
test byte [ecx + 0x1c], 1
je 0x4b88bd
cmp dword [0x608f68], 8
mov eax, 0x608f54
push 0xffffffffffffffff
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x6d
jmp 0x4b88b0
push 0x200
lea eax, [ebp - 0x618]
push 0
push eax
call fcn.00571c00
push 0x200
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.00571c00
push 0x100
lea eax, [ebp - 0x210]
push eax
push 0x100
lea eax, [ebp - 0x618]
push eax
push 0
push 0
push 0
lea eax, [ebp - 0x1228]
push 0
push eax
call fcn.00580f0a
add esp, 0x3c
call fcn.00550b4e
mov ecx, eax
test ecx, ecx
je 0x4b88eb
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1a64], eax
lea eax, [ebp - 0x210]
mov byte [ebp - 4], 1
test eax, 0xffff0000
jne 0x4b80f8
movzx eax, ax
lea ecx, [ebp - 0x1a64]
push eax
call fcn.00403020
jmp 0x4b8123
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4b8101
sub ecx, edx
lea eax, [ebp - 0x210]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x1a64]
call fcn.00403bb0
mov byte [ebp - 4], 2
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x4b816e
test byte [ecx + 0x1c], 4
je 0x4b816e
cmp dword [0x608f68], 8
lea edx, [ebp - 0x210]
push edx
mov eax, 0x608f54
mov edx, 0x5d6224
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x6e
call fcn.00405920
add esp, 0x10
mov esi, dword [ebp - 0x1a64]
push str..av_
push esi
call fcn.00574f99
add esp, 8
test eax, eax
jne 0x4b818f
push 4
push str..avi
jmp 0x4b81a8
push str..bm_
push esi
call fcn.00574f99
add esp, 8
test eax, eax
jne 0x4b81b9
push 4
push str..bmp
lea ecx, [ebp - 0x1a64]
call fcn.00403bb0
mov esi, dword [ebp - 0x1a64]
push esi
lea eax, [ebp - 0x618]
push 0x100
push eax
call fcn.00574a48
add esp, 0xc
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x4b8215
test byte [ecx + 0x1c], 4
je 0x4b8215
cmp dword [0x608f68], 8
lea edx, [ebp - 0x618]
push edx
mov eax, 0x608f54
mov edx, 0x5d6224
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x6f
call fcn.00405920
add esp, 0x10
push str..avi
push esi
call fcn.00574f99
add esp, 8
test eax, eax
jne 0x4b826b
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x4b8267
test byte [ecx + 0x1c], 4
je 0x4b8267
cmp dword [0x608f68], 8
mov eax, 0x608f54
mov edx, 0x5d6224
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x70
call fcn.00401840
add esp, 0xc
xor edi, edi
jmp 0x4b82c6
push str..bmp
push esi
call fcn.00574f99
add esp, 8
test eax, eax
jne 0x4b8789
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x4b82c1
test byte [ecx + 0x1c], 4
je 0x4b82c1
cmp dword [0x608f68], 8
mov eax, 0x608f54
mov edx, 0x5d6224
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x71
call fcn.00401840
add esp, 0xc
mov edi, 1
lea eax, [ebp - 0x1a28]
push eax
lea eax, [ebp - 0x418]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea eax, [ebp - 0x618]
push eax
lea eax, [ebp - 0x418]
push eax
call ebx
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x4b8331
test byte [ecx + 0x1c], 4
je 0x4b8331
cmp dword [0x608f68], 8
lea edx, [ebp - 0x418]
push edx
mov eax, 0x608f54
mov edx, 0x5d6224
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x74
call fcn.00405920
add esp, 0x10
lea eax, [ebp - 0x1a6c]
push eax
lea eax, [ebp - 0x1a70]
push eax
lea eax, [ebp - 0x1a74]
push eax
lea eax, [ebp - 0x1a68]
push eax
lea eax, [ebp - 0x1228]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupGetFileCompressionInfoW]
test eax, eax
jne 0x4b86f2
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x4b83ae
test byte [ecx + 0x1c], 4
je 0x4b83ae
cmp dword [0x608f68], 8
mov eax, 0x608f54
push dword [ebp - 0x1a68]
cmovae eax, dword [0x608f54]
mov edx, 0x5d6224
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x75
call fcn.00405920
mov ecx, dword [0x608f30]
add esp, 0x10
mov eax, dword [ebp - 0x1a6c]
test eax, eax
jne 0x4b84af
push 1
lea eax, [ebp - 0x418]
push eax
push dword [ebp - 0x1a68]
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x4b8415
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x4b85a6
test byte [ecx + 0x1c], 4
je 0x4b85a6
cmp dword [0x608f68], 8
mov eax, 0x608f54
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x76
jmp 0x4b8599
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x4b846c
test byte [ecx + 0x1c], 2
je 0x4b846c
cmp dword [0x608f68], 8
lea ecx, [ebp - 0x1a60]
mov edi, 0x608f54
cmovae edi, dword [0x608f54]
call fcn.0040a830
push eax
mov eax, dword [0x608f30]
mov edx, 0x5d6224
push edi
mov ecx, 0x77
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.00405920
mov ecx, dword [0x608f30]
add esp, 0x10
mov byte [ebp - 0x1a5c], 1
cmp ecx, 0x608f30
je 0x4b8812
test byte [ecx + 0x1c], 1
je 0x4b8812
cmp dword [0x608f68], 8
mov eax, 0x608f54
push 0xffffffffffffffff
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x78
jmp 0x4b8805
cmp eax, 1
je 0x4b8544
cmp eax, 2
je 0x4b8544
cmp ecx, 0x608f30
je 0x4b8501
test byte [ecx + 0x1c], 4
je 0x4b8501
cmp dword [0x608f68], 8
mov eax, 0x608f54
mov edx, 0x5d6224
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x7c
call fcn.00401840
mov ecx, dword [0x608f30]
add esp, 0xc
mov byte [ebp - 0x1a5c], 1
cmp ecx, 0x608f30
je 0x4b8812
test byte [ecx + 0x1c], 1
je 0x4b8812
cmp dword [0x608f68], 8
mov eax, 0x608f54
push 0xffffffffffffffff
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x7d
jmp 0x4b8805
lea eax, [ebp - 0x1a6c]
push eax
lea eax, [ebp - 0x418]
push eax
push dword [ebp - 0x1a68]
call dword [sym.imp.SETUPAPI.dll_SetupDecompressOrCopyFileW]
test eax, eax
jne 0x4b8658
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x4b85a6
test byte [ecx + 0x1c], 4
je 0x4b85a6
cmp dword [0x608f68], 8
mov eax, 0x608f54
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x79
mov edx, 0x5d6224
call fcn.00401840
add esp, 0xc
mov ebx, dword [ebp - 0x1a78]
lea eax, [ebp - 0x418]
push eax
push 0x5c9c24
push ebx
call fcn.00408a60
add esp, 0xc
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x4b8609
test byte [ecx + 0x1c], 4
je 0x4b8609
cmp dword [0x608f68], 8
mov eax, 0x608f54
push dword [ebx]
cmovae eax, dword [0x608f54]
mov edx, 0x5d6224
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x80
call fcn.00405920
mov ecx, dword [0x608f30]
add esp, 0x10
mov byte [ebp - 0x1a5c], 1
cmp ecx, 0x608f30
je 0x4b8815
test byte [ecx + 0x1c], 1
je 0x4b8815
cmp dword [0x608f68], 8
mov eax, 0x608f54
push edi
cmovae eax, dword [0x608f54]
mov edx, 0x5d6224
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x81
call fcn.004018a0
add esp, 0x10
jmp 0x4b8815
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x4b86af
test byte [ecx + 0x1c], 2
je 0x4b86af
cmp dword [0x608f68], 8
lea ecx, [ebp - 0x1a60]
mov edi, 0x608f54
cmovae edi, dword [0x608f54]
call fcn.0040a830
push eax
mov eax, dword [0x608f30]
mov edx, 0x5d6224
push edi
mov ecx, 0x7a
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.00405920
mov ecx, dword [0x608f30]
add esp, 0x10
mov byte [ebp - 0x1a5c], 1
cmp ecx, 0x608f30
je 0x4b8812
test byte [ecx + 0x1c], 1
je 0x4b8812
cmp dword [0x608f68], 8
mov eax, 0x608f54
push 0xffffffffffffffff
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x7b
jmp 0x4b8805
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x4b8749
test byte [ecx + 0x1c], 2
je 0x4b8749
cmp dword [0x608f68], 8
lea ecx, [ebp - 0x1a60]
mov edi, 0x608f54
cmovae edi, dword [0x608f54]
call fcn.0040a830
push eax
mov eax, dword [0x608f30]
mov edx, 0x5d6224
push edi
mov ecx, 0x7e
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.00405920
mov ecx, dword [0x608f30]
add esp, 0x10
mov byte [ebp - 0x1a5c], 1
cmp ecx, 0x608f30
je 0x4b8812
test byte [ecx + 0x1c], 1
je 0x4b8812
cmp dword [0x608f68], 8
mov eax, 0x608f54
push 0xffffffffffffffff
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x7f
jmp 0x4b8805
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x4b87cf
test byte [ecx + 0x1c], 4
je 0x4b87cf
cmp dword [0x608f68], 8
mov eax, 0x608f54
mov edx, 0x5d6224
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x72
call fcn.00401840
mov ecx, dword [0x608f30]
add esp, 0xc
mov byte [ebp - 0x1a5c], 1
cmp ecx, 0x608f30
je 0x4b8812
test byte [ecx + 0x1c], 1
je 0x4b8812
cmp dword [0x608f68], 8
mov eax, 0x608f54
push 0xffffffffffffffff
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x73
mov edx, 0x5d6224
call fcn.004018a0
add esp, 0x10
or edi, 0xffffffff
mov byte [ebp - 4], 0
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x4b88c0
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x4b88c0
cmp edx, 0x608f30
je 0x4b887a
test byte [edx + 0x1c], 4
je 0x4b887a
cmp dword [0x608f68], 8
mov eax, 0x608f54
mov ecx, 0x6a
cmovae eax, dword [0x608f54]
push eax
push dword [edx + 0x14]
push dword [edx + 0x10]
mov edx, 0x5d6224
call fcn.00401840
mov edx, dword [0x608f30]
add esp, 0xc
mov byte [ebp - 0x1a5c], 1
cmp edx, 0x608f30
je 0x4b88bd
test byte [edx + 0x1c], 1
je 0x4b88bd
cmp dword [0x608f68], 8
mov eax, 0x608f54
push 0xffffffffffffffff
cmovae eax, dword [0x608f54]
mov ecx, 0x6b
push eax
push dword [edx + 0x14]
push dword [edx + 0x10]
mov edx, 0x5d6224
call fcn.004018a0
add esp, 0x10
or edi, 0xffffffff
lea ecx, [ebp - 0x1a60]
call fcn.0040a570
mov eax, edi
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
push 0x80004005
call fcn.004013a0
int3