Function at 0x41f9380
Capabilities:
Inspect load icon resource

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff8fc
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x704], ebx
mov esi, edx
lea edi, [ebp - 0x200]
push ecx
xor ecx, ecx
mov cl, byte [esi]
inc ecx
rep movsb byte es:[edi], byte [esi]
pop ecx
mov esi, eax
lea edi, [ebp - 0x100]
push ecx
xor ecx, ecx
mov cl, byte [esi]
inc ecx
rep movsb byte es:[edi], byte [esi]
pop ecx
mov edi, ecx
xor eax, eax
push ebp
push 0x41f9611
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 0x41f9620
lea eax, [ebp - 0x200]
call sub.CSRTL.dpl_Rt_Util.StringsEqual_8AA43BB4
test al, al
je 0x41f94a3
cmp dword [edi], 0
jne 0x41f93f1
mov dl, 1
mov eax, dword [sym.imp.VCL30.dpl_Graphics..TIcon_5E8D88ED]
call sub.VCL30.dpl_Graphics.TIcon.Create_23EDC2EF
mov dword [edi], eax
lea ecx, [ebp - 0x700]
mov edx, 0x41f962c
lea eax, [ebp - 0x100]
call sub.CSRTL.dpl_Rt_Util.ForceFileNameExtension_C8107D46
lea eax, [ebp - 0x704]
lea edx, [ebp - 0x700]
call sub.VCL30.dpl_System._LStrFromString_EF219F52
mov eax, dword [ebp - 0x704]
call sub.VCL30.dpl_SysUtils.FileExists_3C9BDBFB
test al, al
jne 0x41f9437
lea edx, [ebp - 0x700]
mov eax, 0x41f9630
call fcn.0419af8c
lea eax, [ebp - 0x704]
lea edx, [ebp - 0x700]
call sub.VCL30.dpl_System._LStrFromString_EF219F52
mov eax, dword [ebp - 0x704]
call sub.VCL30.dpl_SysUtils.FileExists_3C9BDBFB
test al, al
je 0x41f95f8
xor eax, eax
push ebp
push 0x41f9494
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x704]
lea edx, [ebp - 0x700]
call sub.VCL30.dpl_System._LStrFromString_EF219F52
mov edx, dword [ebp - 0x704]
mov eax, dword [edi]
mov ecx, dword [eax]
call dword [ecx + 0x48]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x41f95f8
lea eax, [ebp - 0x704]
lea edx, [ebp - 0x100]
call sub.VCL30.dpl_System._LStrFromString_EF219F52
mov eax, dword [ebp - 0x704]
call sub.VCL30.dpl_SysUtils.FileExists_3C9BDBFB
test al, al
je 0x41f95f8
lea eax, [ebp - 0x704]
lea edx, [ebp - 0x100]
call sub.VCL30.dpl_System._LStrFromString_EF219F52
mov edx, dword [ebp - 0x704]
lea eax, [ebp - 0x300]
call sub.VCL30.dpl_SysUtils.StrPCopy_17A29F31
lea eax, [ebp - 0x704]
lea edx, [ebp - 0x200]
call sub.VCL30.dpl_System._LStrFromString_EF219F52
mov edx, dword [ebp - 0x704]
lea eax, [ebp - 0x400]
call sub.VCL30.dpl_SysUtils.StrPCopy_17A29F31
push 2
push 0
lea eax, [ebp - 0x300]
push eax
call sub.kernel32.dll_LoadLibraryExA
mov esi, eax
lea eax, [ebp - 0x400]
push eax
push esi
call sub.user32.dll_LoadIconA
mov ebx, eax
push esi
call sub.kernel32.dll_FreeLibrary
test ebx, ebx
jne 0x41f95d8
lea edx, [ebp - 0x500]
lea eax, [ebp - 0x100]
call sub.CSRTL.dpl_Rt_Util.ExtractWholeFileNameFromPath_4E71D220
mov edx, 0x41f9640
lea eax, [ebp - 0x500]
call sub.CSRTL.dpl_Rt_Util.StringsEqual_8AA43BB4
test al, al
je 0x41f95a4
lea ecx, [ebp - 0x600]
mov edx, 0x41f964c
lea eax, [ebp - 0x500]
call sub.CSRTL.dpl_Rt_Util.ForceFileNameExtension_C8107D46
cmp dword [0x41ffc68], 0
je 0x41f95a4
lea edx, [ebp - 0x600]
mov eax, dword [0x41ffc68]
call fcn.041f7784
test eax, eax
je 0x41f95a4
mov esi, dword [eax + 0x2c]
lea eax, [ebp - 0x400]
push eax
push esi
call sub.user32.dll_LoadIconA
mov ebx, eax
test ebx, ebx
jne 0x41f95d8
push 0
lea eax, [ebp - 0x300]
push eax
mov eax, dword [0x41ffce0]
mov eax, dword [eax]
push eax
call sub.shell32.dll_ExtractIconA
mov ebx, eax
test ebx, ebx
jne 0x41f95d8
push 0x41f9650
mov eax, dword [0x41ffce0]
mov eax, dword [eax]
push eax
call sub.user32.dll_LoadIconA
mov ebx, eax
test ebx, ebx
je 0x41f95f8
cmp dword [edi], 0
jne 0x41f95ef
mov dl, 1
mov eax, dword [sym.imp.VCL30.dpl_Graphics..TIcon_5E8D88ED]
call sub.VCL30.dpl_Graphics.TIcon.Create_23EDC2EF
mov dword [edi], eax
mov eax, dword [edi]
mov edx, ebx
call sub.VCL30.dpl_Graphics.TIcon.SetHandle_23EDC2EF
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41f9618
lea eax, [ebp - 0x704]
call sub.VCL30.dpl_System._LStrClr_40929B27
ret