Function at 0x4c8250
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 0x4c8838
push ebp
mov ecx, esi
call fcn.00469e50
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.00469e50
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.00469e50
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.00469e50
mov eax, dword [eax + 0x13c]
add eax, dword [esp + 0x34]
mov ecx, esi
mov dword [esp + 0x58], eax
call fcn.00469e50
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 0x4c8340
test al, 8
jne 0x4c8344
test al, al
jns 0x4c834e
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 0x4c8386
mov al, byte [esp + 0x81]
test al, 8
je 0x4c8386
test al, al
js 0x4c8386
push 0x48
mov dword [esp + 0x18], 1
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [esp + 0x50], eax
jmp 0x4c838e
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.00469e50
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 0x4c83cf
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 0x4c8400
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.00500149
test ah, 0x10
je 0x4c8425
mov eax, dword [esp + 0x2c]
jmp 0x4c844a
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4c8455
mov ecx, esi
call fcn.00469e50
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 0x4c8467
inc ebx
mov dword [esp + 0x20], ebx
mov ecx, esi
call fcn.0046acd0
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 0x4c85a9
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 0x4c851a
mov eax, 4
jmp 0x4c8540
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4c8529
mov eax, 3
jmp 0x4c8540
test edi, edi
je 0x4c8534
mov eax, 5
jmp 0x4c8540
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.004459f0
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x4c856a
mov eax, 4
jmp 0x4c8590
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4c8579
mov eax, 3
jmp 0x4c8590
test edi, edi
je 0x4c8584
mov eax, 5
jmp 0x4c8590
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.004459f0
mov ebx, dword [esp + 0x20]
jmp 0x4c85f1
test ecx, ecx
jne 0x4c85b4
mov eax, 4
jmp 0x4c85d8
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x4c85c3
mov eax, 3
jmp 0x4c85d8
test edi, edi
je 0x4c85ce
mov eax, 5
jmp 0x4c85d8
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.004459f0
mov edi, dword [esp + 0x78]
mov ecx, esi
call fcn.00500149
test ah, 0x10
je 0x4c8618
cmp edi, 0xfffffffe
jne 0x4c8618
test byte [esp + 0x81], 0x10
je 0x4c8618
mov edi, dword [esp + 0x58]
xor ebx, ebx
jmp 0x4c8646
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.004c7de0
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.0042c3dd
add esp, 4
test eax, eax
jbe 0x4c87a8
mov eax, dword [esp + 0x70]
test eax, eax
je 0x4c869d
mov ecx, esi
inc edi
call fcn.00500149
test ah, 0x10
je 0x4c869d
inc dword [esp + 0x10]
mov ecx, esi
call fcn.00500149
test ah, 0x10
je 0x4c86e2
mov ecx, esi
call fcn.00469e50
mov eax, dword [eax + 0x13c]
shl eax, 1
test ebx, ebx
je 0x4c86d3
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 0x4c8703
mov ecx, esi
call fcn.00469e50
add edi, dword [eax + 0x13c]
jmp 0x4c8703
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.00500149
test ah, 0x10
je 0x4c873c
or ebx, 0x24
jmp 0x4c873f
or ebx, 1
push 1
mov ecx, ebp
call fcn.00505212
mov eax, dword [esp + 0x48]
test eax, eax
mov ecx, esi
je 0x4c8756
push 0x12
jmp 0x4c8758
push 0x10
call fcn.00469e60
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 0x4c8837
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 0x4c87d6
test al, 8
jne 0x4c87da
test al, al
jns 0x4c8837
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 0x4c87fa
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.00469e60
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.00468040
add esp, 0x20
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x28c
ret 8