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

Disassembly:
sub esp, 0x2c
push ebx
push ebp
mov ebp, dword [esp + 0x40]
push esi
push edi
mov edi, eax
mov eax, ebp
shr eax, 0x10
movsx ecx, ax
push 0xffffffffffffffeb
push edi
movsx ebx, bp
mov dword [esp + 0x1c], ecx
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov esi, eax
mov eax, dword [esi + 0xc8]
test eax, eax
je 0x4bac1c
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x28], edx
lea edx, [esp + 0x20]
push edx
push 0
push 0x407
push eax
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], edi
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [esp + 0x40]
add eax, 0xfffffe00
cmp eax, 5
ja case.0x4bac2e.515
jmp dword [eax*4 + 0x4bb020]
call dword [sym.imp.USER32.dll_GetCapture]
cmp edi, eax
jne case.0x4bac2e.515
mov eax, dword [esi + 0x98]
dec eax
je 0x4bacde
dec eax
je 0x4bac62
dec eax
je 0x4bacc4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x2c
ret 0xc
push 0x44
call dword [sym.imp.USER32.dll_GetSystemMetrics]
inc eax
cdq
sub eax, edx
mov edx, dword [esi + 0x90]
sar eax, 1
mov ecx, ebx
sub ecx, edx
mov edx, eax
neg edx
cmp ecx, edx
jl 0x4bac9c
cmp ecx, eax
jg 0x4bac9c
mov ecx, dword [esp + 0x14]
sub ecx, dword [esi + 0x94]
cmp ecx, edx
jl 0x4bac9c
cmp ecx, eax
jle case.0x4bac2e.515
mov eax, dword [esi + 0x94]
mov ecx, dword [esi + 0x90]
push eax
push ecx
push esi
mov dword [esi + 0x98], 3
call fcn.004bb630
push edi
call dword [sym.imp.USER32.dll_SetFocus]
mov dword [esi + 0x3c], eax
mov edx, dword [esp + 0x14]
push edx
push ebx
push edi
mov ebx, esi
call fcn.004baa20
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x2c
ret 0xc
mov al, byte [esi + 0x8c]
xor ebp, ebp
test al, 1
mov dword [esp + 0x40], ebp
je 0x4bad14
mov eax, dword [esp + 0x14]
push eax
push ebx
lea ecx, [esi + 0x68]
push ecx
call fcn.00404b20
test eax, eax
je 0x4bad14
test byte [esi + 0x8c], 0x10
je 0x4bad14
mov dword [esp + 0x40], 1
jmp 0x4bad3e
test byte [esi + 0x8c], 2
je 0x4bad3e
mov edx, dword [esp + 0x14]
push edx
push ebx
lea eax, [esi + 0x78]
push eax
call fcn.00404b20
test eax, eax
je 0x4bad3e
test byte [esi + 0x8c], 0x20
je 0x4bad3e
mov ebp, 1
mov eax, dword [esi + 0x8c]
mov ecx, dword [esp + 0x40]
mov edx, eax
shr edx, 2
and edx, 1
cmp ecx, edx
jne 0x4bad64
mov edx, eax
shr edx, 3
and edx, 1
cmp ebp, edx
je case.0x4bac2e.515
and ebp, 1
shl ebp, 1
and ecx, 1
or ebp, ecx
shl ebp, 2
and eax, 0xfffffff3
or ebp, eax
mov dword [esi + 0x8c], ebp
jmp 0x4baebe
call dword [sym.imp.USER32.dll_GetCapture]
cmp edi, eax
jne case.0x4bac2e.515
call dword [sym.imp.USER32.dll_ReleaseCapture]
mov eax, dword [esi + 0x98]
cmp eax, 1
jne 0x4bade6
mov edx, dword [esi + 0x8c]
and edx, 0xfffffffc
mov eax, edx
test al, 0xc
mov dword [esi + 0x8c], edx
je 0x4bae04
push 1
push 0
and eax, 0xfffffff3
push edi
mov dword [esi + 0x8c], eax
call dword [sym.imp.USER32.dll_InvalidateRect]
push edi
call dword [sym.imp.USER32.dll_UpdateWindow]
pop edi
mov dword [esi + 0x98], 0
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x2c
ret 0xc
cmp eax, 3
jne 0x4bae04
mov eax, dword [esi + 0x3c]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
mov ecx, dword [esp + 0x14]
push 0
push ecx
push ebx
push esi
push edi
call fcn.004bb710
pop edi
mov dword [esi + 0x98], 0
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x2c
ret 0xc
mov eax, dword [esi + 0x8c]
mov dword [esp + 0x40], eax
shr eax, 4
test al, 7
mov dword [esp + 0x48], eax
je 0x4baedc
mov ecx, dword [esi + 0x68]
cmp ebx, ecx
lea eax, [esi + 0x68]
jl 0x4baedc
mov ebp, dword [esp + 0x14]
push ebp
push ebx
push eax
call fcn.00404b20
test eax, eax
je 0x4bae64
test byte [esp + 0x48], 1
je 0x4bae64
mov eax, dword [esp + 0x40]
or eax, 4
or ebx, 0xffffffff
jmp 0x4bae8b
push ebp
push ebx
lea edx, [esi + 0x78]
push edx
call fcn.00404b20
test eax, eax
je case.0x4bac2e.515
mov eax, dword [esp + 0x40]
test al, 0x20
je case.0x4bac2e.515
or eax, 8
mov ebx, 1
mov ecx, eax
shr ecx, 2
xor ecx, eax
and ecx, 3
xor ecx, eax
mov dword [esi + 0x8c], eax
push edi
mov dword [esi + 0x8c], ecx
mov dword [esi + 0x98], 1
call dword [sym.imp.USER32.dll_SetCapture]
push edi
mov eax, ebx
mov ecx, esi
call fcn.004b8450
push 1
push 0
push edi
call dword [sym.imp.USER32.dll_InvalidateRect]
push edi
call dword [sym.imp.USER32.dll_UpdateWindow]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x2c
ret 0xc
mov ebp, dword [esp + 0x14]
push ebp
push ebx
mov eax, esi
call fcn.004b8690
cmp eax, 0xffffffff
mov dword [esp + 0x40], eax
jle 0x4baefc
push eax
push esi
push edi
call fcn.004bb6b0
jmp 0x4baf5a
push 1
push ebp
push ebx
call fcn.004b85e0
test eax, eax
je 0x4baf10
push edi
call dword [sym.imp.USER32.dll_UpdateWindow]
mov eax, dword [esi + 0x10]
test eax, eax
mov ebp, 0xffff
jl 0x4baf2f
cmp eax, dword [esi + 0xb0]
jge 0x4baf2f
imul eax, eax, 0x58
mov bp, word [eax + esi + 0x1b0]
push edi
push edi
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
movzx edx, ax
movzx eax, bp
shl eax, 0x10
or edx, eax
push edx
push 0x111
push edi
call dword [sym.imp.USER32.dll_GetParent]
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov ebp, dword [esp + 0x14]
mov dword [esi + 0x94], ebp
mov ebp, dword [esi + 0x10]
test ebp, ebp
mov dword [esi + 0x90], ebx
jl 0x4bafb1
cmp ebp, dword [esi + 0xb0]
jge 0x4bafb1
mov eax, dword [esi + 4]
test eax, eax
je 0x4bafb1
cmp dword [esp + 0x40], 0xffffffff
jne 0x4bafb1
mov ecx, dword [esp + 0x14]
push ecx
push ebx
mov ecx, esi
call fcn.004b8490
cmp ebp, eax
jne 0x4bafb1
push edi
mov dword [esi + 0x98], 2
call dword [sym.imp.USER32.dll_SetCapture]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x2c
ret 0xc
push edi
mov dword [esi + 0x98], 4
call dword [sym.imp.USER32.dll_SetCapture]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x2c
ret 0xc
mov edx, dword [esp + 0x14]
push edx
push ebx
mov ecx, esi
call fcn.004b8490
mov esi, eax
cmp esi, 0xffffffff
jle case.0x4bac2e.515
push edi
mov dword [esp + 0x14], edi
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
lea ecx, [esp + 0x10]
push ecx
push eax
push 0x4e
push edi
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], 0x1000
mov dword [esp + 0x2c], esi
call dword [sym.imp.USER32.dll_GetParent]
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x2c
ret 0xc