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

Disassembly:
sub esp, 0x80
push edi
xor edi, edi
inc edi
cmp dword [0x510680], edi
jg 0x4389f0
push ebx
push ebp
push esi
call fcn.0042cb52
push 4
call fcn.0042dae4
xor ebx, ebx
mov dword [0x4a7b20], eax
mov esi, 0x4a7b00
cmp dword [0x4a7b04], ebx
je 0x438204
push esi
call dword [sym.imp.SETUPAPI.dll_SetupDiDestroyClassImageList]
push esi
call dword [sym.imp.SETUPAPI.dll_SetupDiGetClassImageList]
push dword [0x4a7b04]
call dword [sym.imp.COMCTL32.dll_ImageList_GetImageCount]
push 0x47a974
push ebx
push ebx
push 0x31
push dword [0x5106a4]
mov dword [0x4a7b2c], eax
call dword [sym.imp.USER32.dll_SendMessageW]
push eax
push dword [0x51069c]
call fcn.0042e121
mov dword [esp + 0x48], eax
mov dword [0x51063c], eax
imul eax, eax, 0xc
push 0xa
cdq
pop ecx
idiv ecx
push eax
call fcn.0042d9be
push 0x10
mov dword [0x510640], eax
mov ebp, eax
pop eax
mov esi, 0x100
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], 0x14
mov dword [esp + 0x78], 0x18
mov dword [esp + 0x7c], 0x20
mov dword [esp + 0x80], 0x30
mov dword [esp + 0x84], 0x40
mov dword [esp + 0x88], esi
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x40], ebx
xor ecx, ecx
cmp ebp, eax
je 0x4382b9
mov eax, dword [esp + ecx*4 + 0x74]
inc ecx
cmp eax, ebx
jne 0x4382aa
jmp 0x4382bd
mov dword [esp + 0x40], edi
mov eax, dword [0x4a7b2c]
push 0xa
add eax, 0x65
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 + 0x20], eax
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x14]
movzx eax, word [eax*4 + 0x4a7c10]
mov dword [esp + 0x18], eax
movzx eax, ax
add eax, 0xffffff90
mov dword [esp + 0x1c], 0x4561e0
cmp eax, 0xd
ja case.0x43830a.119
movzx eax, byte [eax + 0x438a18]
jmp dword [eax*4 + 0x4389f8]
mov dword [esp + 0x1c], 0x47a970
jmp case.0x43830a.119
mov dword [esp + 0x1c], 0x47a96c
jmp case.0x43830a.119
mov dword [esp + 0x1c], 0x47a968
jmp case.0x43830a.119
mov dword [esp + 0x1c], str.SHFL
jmp case.0x43830a.119
mov dword [esp + 0x1c], 0x47a95c
jmp case.0x43830a.119
mov dword [esp + 0x1c], 0x47a954
jmp case.0x43830a.119
mov dword [esp + 0x1c], 0x47a94c
cmp ebp, 0x18
jge 0x438371
push dword [esp + 0x1c]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, 1
jbe 0x438371
mov dword [esp + 0x1c], 0x4561e0
mov eax, dword [esp + 0x1c]
cmp word [eax], bx
je 0x4383ce
mov eax, dword [esp + 0x18]
lea ecx, [eax - 0x70]
cmp cx, 3
ja 0x438391
mov dword [esp + 0x18], 0x6f
jmp 0x4383ce
lea ecx, [eax - 0x78]
cmp cx, 2
ja 0x4383a4
mov dword [esp + 0x18], 0x77
jmp 0x4383ce
cmp ax, 0x75
je 0x4383c6
cmp ax, 0x76
je 0x4383c6
cmp ax, 0x7c
je 0x4383bc
cmp ax, 0x7d
jne 0x4383ce
mov dword [esp + 0x18], 0x7b
jmp 0x4383ce
mov dword [esp + 0x18], 0x74
cmp dword [0x510068], 5
jne 0x4383e7
cmp ebp, 0x20
jl 0x4383df
push 0x20
pop ebp
push ebx
push ebp
push ebp
jmp 0x438627
cmp dword [esp + 0x40], ebx
jne 0x4383df
call fcn.0042d809
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 0x438602
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 + 0x44], eax
cmp dword [esp + 0x38], ebx
je 0x438641
cmp eax, ebx
je 0x438641
push dword [esp + 0x38]
push dword [esp + 0x28]
call edi
push dword [esp + 0x44]
mov dword [esp + 0x50], eax
push dword [esp + 0x2c]
call edi
push 2
push ebx
push ebx
push esi
push esi
push dword [esp + 0x24]
mov dword [esp + 0x68], 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 + 0x58], eax
push dword [esp + 0x34]
call edi
push 3
push dword [esp + 0x30]
mov dword [esp + 0x60], 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 + 0x4c]
push dword [esp + 0x28]
call edi
push dword [esp + 0x50]
push dword [esp + 0x2c]
call edi
push dword [esp + 0x54]
push dword [esp + 0x30]
call edi
push dword [esp + 0x58]
push dword [esp + 0x34]
call edi
lea eax, [esp + 0x70]
push eax
push dword [esp + 0x14]
call dword [sym.imp.USER32.dll_GetIconInfo]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x70]
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 + 0x44]
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 0x438641
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 0x43865f
push ebx
push 0x20
push 0x20
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
cmp dword [esp + 0x10], ebx
jne 0x43865f
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 [0x510680], ebx
je 0x438672
cmp dword [esp + 0x14], 2
jle 0x4386a3
push 1
jmp 0x438695
mov eax, dword [esp + 0x18]
add eax, 0xffffff91
cmp ax, 0x14
ja 0x4386a3
cmp dword [0x510210], 0xffffff
jne 0x438694
cmp dword [0x510640], 0x20
jle 0x4386a3
push ebx
push ebx
push dword [esp + 0x18]
call fcn.0044bf97
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1c]
cmp word [eax], bx
je 0x4386ba
push eax
push dword [esp + 0x14]
call fcn.0042f7aa
mov dword [esp + 0x10], eax
cmp dword [0x510680], ebx
je 0x438762
cmp dword [0x4a7b4c], ebx
je 0x438762
lea eax, [esp + 0x5c]
push eax
push dword [esp + 0x14]
call dword [sym.imp.USER32.dll_GetIconInfo]
test eax, eax
je 0x438762
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 + 0x6c]
mov dword [esp + 0x3c], eax
push dword [esp + 0x40]
call edi
push dword [esp + 0x68]
mov dword [esp + 0x5c], eax
push dword [esp + 0x3c]
call edi
push ebx
mov dword [esp + 0x58], eax
lea eax, [ebp - 1]
push eax
push ebp
push dword [esp + 0x74]
push dword [esp + 0x48]
push dword [esp + 0x80]
push dword [esp + 0x54]
call fcn.0042b2d2
push dword [esp + 0x58]
push dword [esp + 0x40]
call edi
push dword [esp + 0x54]
push dword [esp + 0x3c]
call edi
push dword [esp + 0x10]
call dword [sym.imp.USER32.dll_DestroyIcon]
lea eax, [esp + 0x5c]
push eax
call dword [sym.imp.USER32.dll_CreateIconIndirect]
mov dword [esp + 0x10], eax
push dword [esp + 0x10]
push 0xffffffffffffffff
push dword [esp + 0x28]
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], 0x1b
jl 0x4382e0
cmp dword [0x510068], 6
jb 0x4387bb
push ebp
push 0x5e
call fcn.0042fed8
mov edi, eax
cmp edi, ebx
je 0x4387bb
mov esi, dword [sym.imp.COMCTL32.dll_ImageList_ReplaceIcon]
push edi
push ebx
push dword [esp + 0x28]
call esi
push edi
mov edi, dword [sym.imp.USER32.dll_DestroyIcon]
call edi
jmp 0x4387c7
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.004379b4
push eax
call fcn.0042b380
push eax
push 0xffffffffffffffff
push dword [esp + 0x28]
mov dword [esp + 0x64], eax
call esi
push dword [esp + 0x58]
mov dword [esp + 0x58], eax
call edi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0x44
jl 0x4387cb
mov eax, dword [esp + 0x54]
inc eax
mov dword [0x4a7b24], eax
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x14]
push ebp
add eax, 0x64
push eax
mov eax, dword [0x510680]
push dword [eax*4 + 0x4a7928]
call fcn.0042b380
push eax
push 0xffffffffffffffff
push dword [esp + 0x28]
mov dword [esp + 0x64], eax
call esi
push dword [esp + 0x58]
call edi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 6
jl 0x43880f
cmp ebp, 0x18
jl 0x4388ac
mov eax, dword [0x510680]
push ebp
push 0xc8
push dword [eax*4 + 0x4a7920]
call fcn.0042b380
push eax
push 4
push dword [esp + 0x28]
call esi
mov eax, dword [0x510680]
push ebp
push 0xc9
push dword [eax*4 + 0x4a7938]
call fcn.0042b380
push eax
push 2
push dword [esp + 0x28]
call esi
mov eax, dword [0x510680]
push ebp
push 0xca
push dword [eax*4 + 0x4a7938]
call fcn.0042b380
push eax
push 3
push dword [esp + 0x28]
call esi
push 1
push ebx
push dword [0x4a7b04]
call dword [sym.imp.COMCTL32.dll_ImageList_GetIcon]
mov dword [esp + 0x1c], eax
cmp eax, ebx
je 0x438951
cmp dword [0x51067c], ebx
je 0x4388dd
push 1
push 1
push eax
call fcn.0044bf97
mov dword [esp + 0x1c], eax
push dword [esp + 0x1c]
push 0xffffffffffffffff
push dword [esp + 0x28]
call esi
push dword [esp + 0x1c]
mov dword [0x4a7b28], eax
call edi
xor eax, eax
inc eax
cmp dword [0x4a7b2c], eax
mov dword [esp + 0x14], eax
jle 0x438951
push 1
push dword [esp + 0x18]
push dword [0x4a7b04]
call dword [sym.imp.COMCTL32.dll_ImageList_GetIcon]
mov dword [esp + 0x1c], eax
cmp dword [0x51067c], ebx
je 0x43892f
push 1
push 1
push eax
call fcn.0044bf97
mov dword [esp + 0x1c], eax
push dword [esp + 0x1c]
push 0xffffffffffffffff
push dword [esp + 0x28]
call esi
push dword [esp + 0x1c]
call edi
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, dword [0x4a7b2c]
jl 0x438903
mov edi, dword [esp + 0x20]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push edi
push ebx
push 0x1109
push dword [0x5106a4]
call esi
push ebx
push 2
call fcn.0042dae4
lea eax, [eax + ebp + 1]
push eax
push 0x1107
push dword [0x5106a4]
call esi
push 1
call fcn.0042dae4
add eax, dword [esp + 0x48]
cmp ebp, eax
jle 0x438997
mov eax, ebp
jmp 0x4389a2
push 1
call fcn.0042dae4
add eax, dword [esp + 0x48]
cmp dword [0x510068], 6
mov ecx, dword [0x510640]
jb 0x4389b8
sar ecx, 3
add eax, ecx
jmp 0x4389be
cmp eax, ecx
jg 0x4389be
mov eax, ecx
push ebx
inc eax
and eax, 0xfffffffe
push eax
push 0x111b
push dword [0x5106a4]
call esi
mov eax, dword [0x510700]
cmp eax, ebx
je 0x4389e1
push eax
call dword [sym.imp.COMCTL32.dll_ImageList_Destroy]
push ebp
mov dword [0x510700], edi
call fcn.00433a85
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x80
ret