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

Disassembly:
sub esp, 0x28c
push ebx
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
push esi
push edi
mov edi, dword [esp + 0x2a0]
lea eax, [esp + 0x74]
push eax
push edi
mov esi, ecx
mov ecx, dword [esi + 0x1c]
push 0x417
push ecx
call ebx
movzx edx, byte [esp + 0x7c]
mov ecx, dword [esi + 0x1c]
lea eax, [esp + 0x30]
push eax
push edi
push 0x41d
push ecx
mov dword [esp + 0x34], edx
call ebx
test eax, eax
je 0x4c8898
push ebp
mov ecx, esi
call fcn.00469eb0
mov eax, dword [eax + 0x13c]
mov ebp, dword [esp + 0x3c]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x34]
sub ebp, edx
sub ebp, eax
mov ecx, esi
mov dword [esp + 0x24], ebp
call fcn.00469eb0
mov eax, dword [eax + 0x140]
shl eax, 1
mov ecx, eax
mov eax, dword [esp + 0x40]
sub eax, ecx
sub eax, dword [esp + 0x38]
mov ecx, esi
mov dword [esp + 0x44], eax
call fcn.00469eb0
mov edx, dword [eax + 0x13c]
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x34]
shl edx, 1
sub edi, edx
mov ecx, esi
sub edi, eax
call fcn.00469eb0
mov eax, dword [eax + 0x13c]
add eax, dword [esp + 0x34]
mov ecx, esi
mov dword [esp + 0x58], eax
call fcn.00469eb0
mov eax, dword [eax + 0x140]
mov ecx, dword [esp + 0x38]
push 0
add eax, ecx
push 0
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x1c]
push 0x455
push eax
call ebx
test al, 1
mov al, byte [esp + 0x81]
je 0x4c83a0
test al, 8
jne 0x4c83a4
test al, al
jns 0x4c83ae
sub edi, 5
sub ebp, 5
mov dword [esp + 0x24], ebp
mov ecx, dword [esi + 0x1c]
xor ebp, ebp
push ebp
push ebp
push 0x455
push ecx
call ebx
test al, 1
je 0x4c83e6
mov al, byte [esp + 0x81]
test al, 8
je 0x4c83e6
test al, al
js 0x4c83e6
push 0x48
mov dword [esp + 0x18], 1
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [esp + 0x50], eax
jmp 0x4c83ee
mov dword [esp + 0x14], ebp
mov dword [esp + 0x50], ebp
mov edx, dword [esi + 0x1c]
push ebp
push ebp
push 0x456
push edx
call ebx
mov ebp, eax
movzx eax, bp
mov ecx, esi
mov dword [esp + 0x2c], eax
call fcn.00469eb0
mov ecx, dword [eax + 0x140]
mov eax, ebp
shr eax, 0x10
shl ecx, 1
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
test eax, eax
mov dword [esp + 0x4c], eax
jge 0x4c842f
mov dword [esp + 0x4c], 0
mov edx, dword [esi + 0x1c]
push 0
push 0
push 0x431
push edx
call ebx
test eax, eax
mov ecx, 0x10
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x54], ecx
je 0x4c8460
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0x20]
push edx
push eax
call dword [sym.imp.COMCTL32.dll_ImageList_GetIconSize]
mov ebp, dword [esp + 0x1c]
mov eax, edi
sub eax, ebp
cdq
sub eax, edx
mov ebx, eax
sar ebx, 1
mov ecx, esi
mov dword [esp + 0x20], ebx
call fcn.005001a9
test ah, 0x10
je 0x4c8485
mov eax, dword [esp + 0x2c]
jmp 0x4c84aa
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4c84b5
mov ecx, esi
call fcn.00469eb0
mov eax, dword [eax + 0x13c]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x50]
shl eax, 1
sub eax, ebp
sub eax, ebx
add eax, edi
cdq
sub eax, edx
mov ebx, eax
sar ebx, 1
mov dword [esp + 0x20], ebx
mov eax, dword [esp + 0x28]
and eax, 3
mov dword [esp + 0x70], eax
je 0x4c84c7
inc ebx
mov dword [esp + 0x20], ebx
mov ecx, esi
call fcn.0046ad30
push 0
push 0
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x1c]
push 0x447
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
movzx ecx, byte [esp + 0x80]
mov edi, dword [esp + 0x2a4]
mov edx, ecx
and edx, 2
mov dword [esp + 0x18], edx
xor edx, edx
cmp eax, edi
sete dl
mov edi, ecx
and ecx, 4
and edi, 1
mov dword [esp + 0x48], ecx
mov eax, edx
mov edx, dword [esp + 0x14]
test edx, edx
mov dword [esp + 0x28], eax
je 0x4c8609
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x94], eax
sub eax, ecx
mov dword [esp + 0x68], eax
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x48]
test eax, eax
mov dword [esp + 0x64], edx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x90], edx
mov dword [esp + 0x98], ebx
jne 0x4c857a
mov eax, 4
jmp 0x4c85a0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4c8589
mov eax, 3
jmp 0x4c85a0
test edi, edi
je 0x4c8594
mov eax, 5
jmp 0x4c85a0
mov edx, dword [esp + 0x28]
xor eax, eax
test edx, edx
setne al
inc eax
mov ebp, dword [esp + 0x2a0]
mov ebx, dword [esp + 0x2c]
lea ecx, [esp + 0x60]
push ecx
push eax
push 3
push ebp
mov ecx, ebx
call fcn.00445a50
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x4c85ca
mov eax, 4
jmp 0x4c85f0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4c85d9
mov eax, 3
jmp 0x4c85f0
test edi, edi
je 0x4c85e4
mov eax, 5
jmp 0x4c85f0
mov edx, dword [esp + 0x28]
xor eax, eax
test edx, edx
setne al
inc eax
lea edx, [esp + 0x8c]
push edx
push eax
push 4
push ebp
mov ecx, ebx
call fcn.00445a50
mov ebx, dword [esp + 0x20]
jmp 0x4c8651
test ecx, ecx
jne 0x4c8614
mov eax, 4
jmp 0x4c8638
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x4c8623
mov eax, 3
jmp 0x4c8638
test edi, edi
je 0x4c862e
mov eax, 5
jmp 0x4c8638
xor ecx, ecx
test eax, eax
setne cl
inc ecx
mov eax, ecx
mov ebp, dword [esp + 0x2a0]
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x34]
push edx
push eax
push 1
push ebp
call fcn.00445a50
mov edi, dword [esp + 0x78]
mov ecx, esi
call fcn.005001a9
test ah, 0x10
je 0x4c8678
cmp edi, 0xfffffffe
jne 0x4c8678
test byte [esp + 0x81], 0x10
je 0x4c8678
mov edi, dword [esp + 0x58]
xor ebx, ebx
jmp 0x4c86a6
mov eax, dword [esp + 0x2a4]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x58]
push eax
add ecx, edx
push ecx
add ebx, edi
push ebx
push ebp
mov ecx, esi
mov dword [esp + 0x3c], 1
call fcn.004c7e40
mov ebx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esi + 0x1c]
lea eax, [esp + 0x9c]
push eax
push ecx
push 0x44b
push edx
mov word [esp + 0xac], 0
call dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [esp + 0x9c]
push eax
call fcn.0042c43d
add esp, 4
test eax, eax
jbe 0x4c8808
mov eax, dword [esp + 0x70]
test eax, eax
je 0x4c86fd
mov ecx, esi
inc edi
call fcn.005001a9
test ah, 0x10
je 0x4c86fd
inc dword [esp + 0x10]
mov ecx, esi
call fcn.005001a9
test ah, 0x10
je 0x4c8742
mov ecx, esi
call fcn.00469eb0
mov eax, dword [eax + 0x13c]
shl eax, 1
test ebx, ebx
je 0x4c8733
mov ecx, dword [esp + 0x1c]
lea edx, [eax + ecx]
add eax, ecx
mov ecx, dword [esp + 0x24]
add edi, edx
sub ecx, eax
mov dword [esp + 0x24], ecx
jmp 0x4c8763
mov ecx, esi
call fcn.00469eb0
add edi, dword [eax + 0x13c]
jmp 0x4c8763
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x10]
lea edx, [ecx + eax]
add ecx, eax
mov eax, dword [esp + 0x44]
add ebx, edx
sub eax, ecx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x44], eax
mov eax, dword [esi + 0x1c]
push 0
push 0
push 0x43d
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
xor ebx, ebx
cmp eax, 1
setle bl
mov ecx, esi
dec ebx
and ebx, 0x1ff0
add ebx, 0x8020
call fcn.005001a9
test ah, 0x10
je 0x4c879c
or ebx, 0x24
jmp 0x4c879f
or ebx, 1
push 1
mov ecx, ebp
call fcn.00505272
mov eax, dword [esp + 0x48]
test eax, eax
mov ecx, esi
je 0x4c87b6
push 0x12
jmp 0x4c87b8
push 0x10
call fcn.00469ec0
mov edx, dword [ebp]
push eax
mov ecx, ebp
call dword [edx + 0x30]
mov edx, dword [esp + 0x24]
lea eax, [edi + 1]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x10]
lea ecx, [eax + 1]
mov dword [esp + 0x64], ecx
lea ecx, [edi + edx + 1]
mov edx, dword [esp + 0x44]
lea eax, [eax + edx + 1]
mov edx, dword [ebp]
push ebx
mov dword [esp + 0x70], eax
lea eax, [esp + 0x64]
push eax
mov dword [esp + 0x70], ecx
push 0xffffffffffffffff
lea ecx, [esp + 0xa8]
push ecx
mov ecx, ebp
call dword [edx + 0x68]
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x4c8897
mov edx, dword [esi + 0x1c]
push 0
push 0
push 0x455
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
test al, 1
mov al, byte [esp + 0x81]
je 0x4c8836
test al, 8
jne 0x4c883a
test al, al
jns 0x4c8897
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
add eax, ecx
mov ecx, dword [esp + 0x18]
cdq
sub eax, edx
add edi, 0xfffffffa
sar eax, 1
test ecx, ecx
je 0x4c885a
inc edi
inc eax
lea edx, [eax + 1]
lea ecx, [edi + 2]
mov dword [esp + 0x74], edx
mov dword [esp + 0x58], ecx
lea edx, [edi - 2]
push 0x12
mov ecx, esi
lea ebx, [eax - 1]
mov dword [esp + 0x30], edx
call fcn.00469ec0
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x78]
push eax
push edi
push ebx
push ecx
push ebx
push edx
push ebp
call fcn.004680a0
add esp, 0x20
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x28c
ret 8