Function at 0x4371dc
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x70
cmp dword [0x50e660], 1
jg 0x43798f
push ebx
push ebp
push esi
push edi
call fcn.0042c2d3
push 4
call fcn.0042d264
xor ebx, ebx
mov dword [0x4a5b18], eax
mov esi, 0x4a5af8
cmp dword [0x4a5afc], ebx
je 0x437217
push esi
call dword [sym.imp.SETUPAPI.dll_SetupDiDestroyClassImageList]
push esi
call dword [sym.imp.SETUPAPI.dll_SetupDiGetClassImageList]
push dword [0x4a5afc]
call dword [sym.imp.COMCTL32.dll_ImageList_GetImageCount]
push 0x479100
push ebx
push ebx
push 0x31
push dword [0x50e684]
mov dword [0x4a5b24], eax
call dword [sym.imp.USER32.dll_SendMessageW]
push eax
push dword [0x50e67c]
call fcn.0042d8a1
mov dword [esp + 0x44], eax
mov dword [0x50e61c], eax
imul eax, eax, 0xc
push 0xa
cdq
pop ecx
idiv ecx
push eax
call fcn.0042d13e
mov ebp, eax
mov dword [0x50e620], eax
mov eax, dword [0x4a5b24]
push 0xa
add eax, 0x61
push eax
push 0x21
push ebp
push ebp
call dword [sym.imp.COMCTL32.dll_ImageList_Create]
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ebx
mov esi, 0x100
mov eax, dword [esp + 0x14]
movzx ecx, word [eax*4 + 0x4a5c08]
movzx eax, cx
add eax, 0xffffff90
mov dword [esp + 0x20], 0x4551b0
mov dword [esp + 0x18], ecx
cmp eax, 9
ja case.0x4372ba.117
jmp dword [eax*4 + 0x437994]
mov dword [esp + 0x20], 0x4790fc
jmp case.0x4372ba.117
mov dword [esp + 0x20], 0x4790f8
jmp case.0x4372ba.117
mov dword [esp + 0x20], 0x4790f4
jmp case.0x4372ba.117
mov dword [esp + 0x20], str.SHFL
jmp case.0x4372ba.117
mov dword [esp + 0x20], 0x4790e8
cmp ebp, 0x18
jge 0x437315
push 0x4790e8
push dword [esp + 0x24]
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
mov ecx, dword [esp + 0x18]
test eax, eax
jne 0x437315
mov dword [esp + 0x20], 0x4551b0
mov eax, dword [esp + 0x20]
cmp word [eax], bx
je 0x437346
lea eax, [ecx - 0x70]
cmp ax, 3
ja 0x437331
mov dword [esp + 0x18], 0x6f
jmp 0x437342
lea eax, [ecx - 0x76]
cmp ax, 2
ja 0x437346
mov dword [esp + 0x18], 0x75
mov ecx, dword [esp + 0x18]
lea edx, [ecx - 0x7a]
push 0x20
pop eax
cmp dx, 5
ja 0x437355
push 0x40
pop eax
cmp ebp, eax
jle 0x437374
mov eax, dword [0x50e048]
cmp eax, 6
jb 0x437367
cmp ebp, esi
je 0x437374
cmp eax, 5
jne 0x4373cb
cmp ebp, 0x20
jl 0x437374
push 0x20
pop ebp
push ebx
push ebp
push ebp
movzx eax, cx
push 1
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.USER32.dll_LoadImageW]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], ebx
jne 0x4373ad
movzx eax, word [esp + 0x18]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.USER32.dll_LoadIconW]
mov dword [esp + 0x10], eax
cmp dword [0x50e660], ebx
je 0x437613
cmp dword [esp + 0x14], 2
jle 0x437644
push 1
jmp 0x437636
call fcn.0042cf89
push ebx
push esi
push esi
mov dword [esp + 0x40], eax
movzx eax, word [esp + 0x24]
push 1
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.USER32.dll_LoadImageW]
mov dword [esp + 0x10], eax
push ebx
cmp eax, ebx
je 0x4375e0
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push ebx
mov dword [esp + 0x28], eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push ebx
push dword [esp + 0x38]
mov dword [esp + 0x30], eax
push 1
push esi
push esi
call dword [sym.imp.GDI32.dll_CreateBitmap]
push ebx
push dword [esp + 0x38]
mov dword [esp + 0x40], eax
push 1
push esi
push esi
call dword [sym.imp.GDI32.dll_CreateBitmap]
mov dword [esp + 0x40], eax
cmp dword [esp + 0x38], ebx
je 0x43738f
cmp eax, ebx
je 0x43738f
push dword [esp + 0x38]
push dword [esp + 0x28]
call edi
push dword [esp + 0x40]
mov dword [esp + 0x4c], eax
push dword [esp + 0x2c]
call edi
push 2
push ebx
push ebx
push esi
push esi
push dword [esp + 0x24]
mov dword [esp + 0x64], eax
push ebx
push ebx
push dword [esp + 0x44]
call dword [sym.imp.USER32.dll_DrawIconEx]
push 1
push ebx
push ebx
push esi
push esi
push dword [esp + 0x24]
push ebx
push ebx
push dword [esp + 0x48]
call dword [sym.imp.USER32.dll_DrawIconEx]
push ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push ebx
mov dword [esp + 0x30], eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push ebx
push dword [esp + 0x38]
mov dword [esp + 0x38], eax
push 1
push ebp
push ebp
call dword [sym.imp.GDI32.dll_CreateBitmap]
push ebx
push dword [esp + 0x38]
mov dword [esp + 0x44], eax
push 1
push ebp
push ebp
call dword [sym.imp.GDI32.dll_CreateBitmap]
push dword [esp + 0x3c]
mov dword [esp + 0x38], eax
push dword [esp + 0x30]
call edi
push dword [esp + 0x34]
mov dword [esp + 0x54], eax
push dword [esp + 0x34]
call edi
push 3
push dword [esp + 0x30]
mov dword [esp + 0x5c], eax
call dword [sym.imp.GDI32.dll_SetStretchBltMode]
push 3
push dword [esp + 0x34]
call dword [sym.imp.GDI32.dll_SetStretchBltMode]
push 0xcc0020
push esi
push esi
push ebx
push ebx
push dword [esp + 0x38]
push ebp
push ebp
push ebx
push ebx
push dword [esp + 0x54]
call dword [sym.imp.GDI32.dll_StretchBlt]
push 0xcc0020
push esi
push esi
push ebx
push ebx
push dword [esp + 0x3c]
push ebp
push ebp
push ebx
push ebx
push dword [esp + 0x58]
call dword [sym.imp.GDI32.dll_StretchBlt]
push dword [esp + 0x48]
push dword [esp + 0x28]
call edi
push dword [esp + 0x4c]
push dword [esp + 0x2c]
call edi
push dword [esp + 0x50]
push dword [esp + 0x30]
call edi
push dword [esp + 0x54]
push dword [esp + 0x34]
call edi
lea eax, [esp + 0x6c]
push eax
push dword [esp + 0x14]
call dword [sym.imp.USER32.dll_GetIconInfo]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x78], eax
lea eax, [esp + 0x6c]
push eax
call dword [sym.imp.USER32.dll_CreateIconIndirect]
push dword [esp + 0x38]
mov dword [esp + 0x14], eax
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [esp + 0x40]
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [esp + 0x3c]
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [esp + 0x34]
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [esp + 0x24]
call dword [sym.imp.GDI32.dll_DeleteDC]
push dword [esp + 0x28]
call dword [sym.imp.GDI32.dll_DeleteDC]
push dword [esp + 0x2c]
call dword [sym.imp.GDI32.dll_DeleteDC]
push dword [esp + 0x30]
call dword [sym.imp.GDI32.dll_DeleteDC]
jmp 0x43738f
movzx eax, word [esp + 0x1c]
push ebp
push ebp
push 1
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.USER32.dll_LoadImageW]
mov dword [esp + 0x10], eax
cmp eax, ebx
jne 0x4373ad
movzx eax, word [esp + 0x18]
push ebx
push 0x20
push 0x20
jmp 0x43737a
mov eax, dword [esp + 0x18]
add eax, 0xffffff91
cmp ax, 0x10
ja 0x437644
cmp dword [0x50e1f0], 0xffffff
jne 0x437635
cmp dword [0x50e620], 0x20
jle 0x437644
push ebx
push ebx
push dword [esp + 0x18]
call fcn.0044aa95
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x20]
cmp word [eax], bx
je 0x43765b
push eax
push dword [esp + 0x14]
call fcn.0042e9bf
mov dword [esp + 0x10], eax
cmp dword [0x50e660], ebx
je 0x437700
cmp dword [0x4a5b44], ebx
je 0x437700
lea eax, [esp + 0x58]
push eax
push dword [esp + 0x14]
call dword [sym.imp.USER32.dll_GetIconInfo]
test eax, eax
je 0x437700
push ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push ebx
mov dword [esp + 0x40], eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push dword [esp + 0x68]
mov dword [esp + 0x3c], eax
push dword [esp + 0x40]
call edi
push dword [esp + 0x64]
mov dword [esp + 0x58], eax
push dword [esp + 0x3c]
call edi
push ebx
mov dword [esp + 0x54], eax
lea eax, [ebp - 1]
push eax
push ebp
push dword [esp + 0x70]
push dword [esp + 0x48]
push dword [esp + 0x7c]
push dword [esp + 0x54]
call fcn.0042aa53
push dword [esp + 0x54]
push dword [esp + 0x40]
call edi
push dword [esp + 0x50]
push dword [esp + 0x3c]
call edi
push dword [esp + 0x10]
call dword [sym.imp.USER32.dll_DestroyIcon]
lea eax, [esp + 0x58]
push eax
call dword [sym.imp.USER32.dll_CreateIconIndirect]
mov dword [esp + 0x10], eax
push dword [esp + 0x10]
push 0xffffffffffffffff
push dword [esp + 0x24]
call dword [sym.imp.COMCTL32.dll_ImageList_ReplaceIcon]
push dword [esp + 0x10]
call dword [sym.imp.USER32.dll_DestroyIcon]
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0x17
jl 0x437297
cmp dword [0x50e048], 6
jb 0x437759
push ebp
push 0x5e
call fcn.0042f0cc
mov edi, eax
cmp edi, ebx
je 0x437759
mov esi, dword [sym.imp.COMCTL32.dll_ImageList_ReplaceIcon]
push edi
push ebx
push dword [esp + 0x24]
call esi
push edi
mov edi, dword [sym.imp.USER32.dll_DestroyIcon]
call edi
jmp 0x437765
mov edi, dword [sym.imp.USER32.dll_DestroyIcon]
mov esi, dword [sym.imp.COMCTL32.dll_ImageList_ReplaceIcon]
mov dword [esp + 0x14], ebx
push ebp
push dword [esp + 0x18]
push dword [esp + 0x1c]
call fcn.00436b31
push eax
call fcn.0042ab01
push eax
push 0xffffffffffffffff
push dword [esp + 0x24]
mov dword [esp + 0x60], eax
call esi
push dword [esp + 0x54]
mov dword [esp + 0x54], eax
call edi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0x44
jl 0x437769
mov eax, dword [esp + 0x50]
inc eax
mov dword [0x4a5b1c], eax
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x14]
push ebp
add eax, 0x64
push eax
mov eax, dword [0x50e660]
push dword [eax*4 + 0x4a5920]
call fcn.0042ab01
push eax
push 0xffffffffffffffff
push dword [esp + 0x24]
mov dword [esp + 0x60], eax
call esi
push dword [esp + 0x54]
call edi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 6
jl 0x4377ad
cmp ebp, 0x18
jl 0x43784a
mov eax, dword [0x50e660]
push ebp
push 0xc8
push dword [eax*4 + 0x4a5918]
call fcn.0042ab01
push eax
push 4
push dword [esp + 0x24]
call esi
mov eax, dword [0x50e660]
push ebp
push 0xc9
push dword [eax*4 + 0x4a5930]
call fcn.0042ab01
push eax
push 2
push dword [esp + 0x24]
call esi
mov eax, dword [0x50e660]
push ebp
push 0xca
push dword [eax*4 + 0x4a5930]
call fcn.0042ab01
push eax
push 3
push dword [esp + 0x24]
call esi
push 1
push ebx
push dword [0x4a5afc]
call dword [sym.imp.COMCTL32.dll_ImageList_GetIcon]
mov dword [esp + 0x20], eax
cmp eax, ebx
je 0x4378ef
cmp dword [0x50e65c], ebx
je 0x43787b
push 1
push 1
push eax
call fcn.0044aa95
mov dword [esp + 0x20], eax
push dword [esp + 0x20]
push 0xffffffffffffffff
push dword [esp + 0x24]
call esi
push dword [esp + 0x20]
mov dword [0x4a5b20], eax
call edi
xor eax, eax
inc eax
cmp dword [0x4a5b24], eax
mov dword [esp + 0x14], eax
jle 0x4378ef
push 1
push dword [esp + 0x18]
push dword [0x4a5afc]
call dword [sym.imp.COMCTL32.dll_ImageList_GetIcon]
mov dword [esp + 0x20], eax
cmp dword [0x50e65c], ebx
je 0x4378cd
push 1
push 1
push eax
call fcn.0044aa95
mov dword [esp + 0x20], eax
push dword [esp + 0x20]
push 0xffffffffffffffff
push dword [esp + 0x24]
call esi
push dword [esp + 0x20]
call edi
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, dword [0x4a5b24]
jl 0x4378a1
mov edi, dword [esp + 0x1c]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push edi
push ebx
push 0x1109
push dword [0x50e684]
call esi
push ebx
push 2
call fcn.0042d264
lea eax, [eax + ebp + 1]
push eax
push 0x1107
push dword [0x50e684]
call esi
push 1
call fcn.0042d264
add eax, dword [esp + 0x44]
cmp ebp, eax
jle 0x437935
mov eax, ebp
jmp 0x437940
push 1
call fcn.0042d264
add eax, dword [esp + 0x44]
cmp dword [0x50e048], 6
mov ecx, dword [0x50e620]
jb 0x437956
sar ecx, 3
add eax, ecx
jmp 0x43795c
cmp eax, ecx
jg 0x43795c
mov eax, ecx
push ebx
inc eax
and eax, 0xfffffffe
push eax
push 0x111b
push dword [0x50e684]
call esi
mov eax, dword [0x50e6e0]
cmp eax, ebx
je 0x43797f
push eax
call dword [sym.imp.COMCTL32.dll_ImageList_Destroy]
push ebp
mov dword [0x50e6e0], edi
call fcn.00432c46
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x70
ret