Function at 0x409807
Capabilities:
Inspect load icon resource

Disassembly:
push ebp
mov ebp, esp
push ecx
test dword [0x42b3b4], 0x200
push ebx
push esi
push edi
mov esi, ecx
mov byte [0x42c2a0], 0
mov edi, 0x80
jne 0x409882
push 0x65
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.USER32.dll_LoadIconW]
mov ebx, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0
push 0x32
mov dword [ebp - 4], eax
call ebx
push eax
push 0x31
call ebx
push eax
push 1
push 0x65
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.USER32.dll_LoadImageW]
mov ebx, eax
test ebx, ebx
jne 0x40986a
mov ebx, dword [ebp - 4]
push dword [ebp - 4]
mov ecx, esi
push 1
push edi
call fcn.0040810e
push ebx
push 0
push edi
mov ecx, esi
call fcn.0040810e
test dword [0x42b3b4], 0x4000
mov ebx, 0x4b2
je 0x4098e5
push 0xfffffffffffffff0
push ebx
mov ecx, esi
call fcn.004080fb
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
or eax, edi
push eax
push 0xfffffffffffffff0
push ebx
mov ecx, esi
call fcn.004080fb
push eax
call dword [sym.imp.USER32.dll_SetWindowLongW]
push 0xfffffffffffffff0
push 0x4b5
mov ecx, esi
call fcn.004080fb
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
or eax, edi
push eax
push 0xfffffffffffffff0
push 0x4b5
mov ecx, esi
call fcn.004080fb
push eax
call dword [sym.imp.USER32.dll_SetWindowLongW]
push dword [esi + 0x10]
mov ecx, esi
push ebx
call fcn.00408d06
push dword [esi + 0xc]
mov ecx, esi
call fcn.00409034
mov eax, dword [esi + 8]
and eax, 3
xor ebx, ebx
sub eax, ebx
je 0x40997d
dec eax
je 0x409959
dec eax
je 0x40992c
dec eax
jne 0x4099a7
push 0x19
call fcn.00403e28
pop ecx
push eax
push 0x4b3
mov ecx, esi
call fcn.00409009
push 0x1a
jmp 0x409994
push 0x1a
call fcn.00403e28
pop ecx
push eax
mov edi, 0x4b4
push edi
mov ecx, esi
call fcn.00409009
push ebx
push 0x4b3
mov ecx, esi
call fcn.0040846e
push edi
mov ecx, esi
call fcn.004082b9
jmp 0x4099a7
push 0x19
call fcn.00403e28
pop ecx
push eax
push 0x4b3
mov ecx, esi
call fcn.00409009
push ebx
push 0x4b4
mov ecx, esi
call fcn.0040846e
jmp 0x4099a7
push 0x1b
call fcn.00403e28
pop ecx
push eax
push 0x4b3
mov ecx, esi
call fcn.00409009
push 0x1c
call fcn.00403e28
pop ecx
push eax
push 0x4b4
mov ecx, esi
call fcn.00409009
cmp dword [esi + 0x38], ebx
je 0x409a1a
mov edi, dword [sym.imp.USER32.dll_GetWindow]
push 5
push dword [esi + 4]
jmp 0x4099c3
push ebx
call fcn.0040554b
pop ecx
push 2
push ebx
call edi
mov ebx, eax
test ebx, ebx
jne 0x4099b9
push 5
push dword [esi + 4]
jmp 0x4099e0
push ebx
call fcn.004055c5
pop ecx
test eax, eax
jne 0x4099cb
push 2
push ebx
call edi
mov ebx, eax
test ebx, ebx
jne 0x4099d2
push 5
push dword [esi + 4]
jmp 0x4099f9
push ebx
call fcn.00403c74
pop ecx
push 2
push ebx
call edi
mov ebx, eax
test ebx, ebx
jne 0x4099ef
test byte [0x42b3b4], 8
jne 0x409aba
mov ecx, esi
call fcn.004088da
jmp 0x409aba
mov eax, dword [esi + 8]
and eax, 0x1c
cmp eax, 4
je 0x409a56
cmp eax, 8
je 0x409a4f
cmp eax, 0xc
je 0x409a48
cmp eax, 0x10
je 0x409a41
cmp eax, 0x14
jne 0x409a8c
push 0x7f03
push ebx
jmp 0x409a60
push 0x7f04
jmp 0x409a3e
push 0x7f01
jmp 0x409a3e
push 0x7f02
jmp 0x409a3e
push 0x65
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.USER32.dll_LoadIconW]
cmp eax, ebx
je 0x409a8c
xor ecx, ecx
inc ecx
push eax
push ecx
push 0x172
mov dword [esi + 0x30], ecx
push 0x4b1
mov ecx, esi
call fcn.004080fb
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x409a9c
push ebx
push 0x4b1
mov ecx, esi
mov dword [esi + 0x30], ebx
call fcn.0040846e
test byte [0x42b3b4], 8
jne 0x409aac
mov ecx, esi
call fcn.004088da
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x28]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x24]
mov ecx, esi
call fcn.004083c6
pop edi
pop esi
xor eax, eax
pop ebx
leave
ret