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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa4
push ebx
push esi
push edi
mov edi, ecx
mov dword [esp + 0xc], edi
mov eax, dword [edi + 4]
test eax, eax
je 0x467984
mov esi, dword [sym.imp.USER32.dll_GetWindowLongW]
push 0xfffffffffffffff0
push eax
call esi
push 0xffffffffffffffec
push dword [edi + 4]
mov dword [edi + 0x3c], eax
call esi
mov dword [edi + 0x40], eax
mov esi, dword [ebp + 8]
mov ebx, dword [sym.imp.USER32.dll_SetWindowLongW]
mov ecx, dword [edi + 0x3c]
mov edx, dword [edi + 0x40]
movzx eax, word [esi]
mov dword [esp + 0x30], ebx
mov ebx, dword [sym.imp.USER32.dll_SetWindowPos]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x3c], ebx
test ax, ax
je 0x46844b
mov ecx, eax
mov eax, dword [sym.imp.USER32.dll_IsWindow]
mov dword [esp + 0x48], eax
mov eax, dword [sym.imp.USER32.dll_SetParent]
mov dword [esp + 0x38], eax
mov eax, dword [sym.imp.USER32.dll_EnableWindow]
mov dword [esp + 0x40], eax
mov eax, dword [sym.imp.USER32.dll_GetWindowRect]
mov dword [esp + 0x2c], eax
mov eax, dword [sym.imp.USER32.dll_GetClientRect]
mov dword [esp + 0x34], eax
mov eax, dword [sym.imp.KERNEL32.dll_MulDiv]
mov dword [esp + 0x28], eax
nop dword [eax]
cmp cx, 0x2d
jne 0x4679fa
xor bl, bl
jmp 0x467a05
movzx eax, cx
mov bl, 1
cmp cx, 0x2b
jne 0x467a0c
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
je 0x46843f
mov dword [esp + 0x1c], esi
test esi, esi
je 0x467a5c
movzx edi, ax
mov ecx, 0x4ca844
mov edx, 0x20
nop word [eax + eax]
cmp di, dx
je 0x467afe
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x467a30
mov eax, dword [esp + 0x1c]
add eax, 2
mov dword [esp + 0x1c], eax
movzx eax, word [eax]
mov edi, eax
test ax, ax
jne 0x467a20
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x467a61
sub ecx, edx
sar ecx, 1
lea eax, [esi + ecx*2]
mov dword [esp + 0x1c], eax
cmp eax, esi
je 0x468420
movzx ecx, word [eax]
push 5
mov dword [esp + 0x50], ecx
xor ecx, ecx
push str.Owner
push esi
mov word [eax], cx
call fcn.0049b726
add esp, 0xc
test eax, eax
sete cl
mov byte [esp + 0x12], cl
test eax, eax
je 0x4682b1
push 6
push str.Parent
push esi
call fcn.0049b726
add esp, 0xc
test eax, eax
je 0x4682ad
push str.AlwaysOnTop
push esi
call fcn.00499643
add esp, 8
test eax, eax
jne 0x467b24
mov edi, dword [esp + 0xc]
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x467b0c
push 0x13
push eax
push eax
push eax
push eax
movzx eax, bl
sub eax, 2
push eax
push ecx
call dword [esp + 0x58]
test bl, bl
je 0x467b07
or dword [esp + 0x18], 8
jmp 0x467b0c
mov eax, dword [esp + 0x1c]
jmp 0x467a77
and dword [esp + 0x18], 0xfffffff7
mov ecx, dword [edi + 0x40]
mov eax, ecx
and eax, 0xfffffff7
or ecx, 8
test bl, bl
cmove ecx, eax
mov dword [edi + 0x40], ecx
jmp 0x468415
push str.Border
push esi
call fcn.00499643
add esp, 8
test eax, eax
jne 0x467b57
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 0x3c]
mov eax, ecx
and eax, 0xff7fffff
or ecx, 0x800000
test bl, bl
cmove ecx, eax
mov dword [edx + 0x3c], ecx
jmp 0x468415
push str.Caption
push esi
call fcn.00499643
add esp, 8
test eax, eax
jne 0x467b8a
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 0x3c]
mov eax, ecx
and eax, 0xff3fffff
or ecx, 0xc00000
test bl, bl
cmove ecx, eax
mov dword [edx + 0x3c], ecx
jmp 0x468415
push 9
push str.Delimiter
push esi
call fcn.0049b726
add esp, 0xc
test eax, eax
jne 0x467c06
add esi, 0x12
push 0x4b7650
push esi
call fcn.00499643
add esp, 8
test eax, eax
jne 0x467bc5
mov ecx, dword [esp + 0xc]
mov eax, 9
mov word [ecx + 0x46], ax
jmp 0x468415
push str.Space
push esi
call fcn.00499643
add esp, 8
test eax, eax
jne 0x467be9
mov ecx, dword [esp + 0xc]
mov eax, 0x20
mov word [ecx + 0x46], ax
jmp 0x468415
movzx eax, word [esi]
test ax, ax
jne 0x467bf6
mov eax, 0x7c
mov ecx, dword [esp + 0xc]
movzx eax, ax
mov word [ecx + 0x46], ax
jmp 0x468415
push str.Disabled
push esi
call fcn.00499643
add esp, 8
test eax, eax
jne 0x467c62
mov edi, dword [esp + 0xc]
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x467c45
movzx eax, bl
xor eax, 1
push eax
push ecx
call dword [esp + 0x48]
test bl, bl
je 0x467c3d
or dword [esp + 0x14], 0x8000000
jmp 0x467c45
and dword [esp + 0x14], 0xf7ffffff
mov ecx, dword [edi + 0x3c]
mov eax, ecx
and eax, 0xf7ffffff
or ecx, 0x8000000
test bl, bl
cmove ecx, eax
mov dword [edi + 0x3c], ecx
jmp 0x468415
push 4
push str.Hwnd
push esi
call fcn.0049b726
add esp, 0xc
test eax, eax
jne 0x467cc9
add esi, 8
cmp word [esi], ax
jne 0x467c88
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
jmp 0x468415
lea eax, [esp + 0x13]
mov ecx, 0x4ddca0
push eax
push 3
lea eax, [esp + 0x4c]
push eax
push 0
push esi
call fcn.004230f0
test eax, eax
jne 0x467cbf
cmp byte [esp + 0x13], al
mov ecx, 0x4ddca0
setne al
inc eax
push eax
push dword [esp + 0x48]
push 0
push esi
call fcn.00423370
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
jmp 0x468415
push 5
push str.Label
push esi
call fcn.0049b726
add esp, 0xc
test eax, eax
jne 0x467cf7
test bl, bl
je 0x468415
mov ecx, dword [esp + 0xc]
lea eax, [esi + 0xa]
push eax
call fcn.00464480
jmp 0x468415
push str.LastFound
push esi
call fcn.00499643
add esp, 8
test eax, eax
jne 0x467d14
mov eax, dword [ebp + 0xc]
mov byte [eax], 1
jmp 0x468415
push str.MaximizeBox
push esi
call fcn.00499643
add esp, 8
test eax, eax
jne 0x467d47
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 0x3c]
mov eax, ecx
and eax, 0xfffeffff
or ecx, 0x90000
test bl, bl
cmove ecx, eax
mov dword [edx + 0x3c], ecx
jmp 0x468415
push str.MinimizeBox
push esi
call fcn.00499643
add esp, 8
test eax, eax
jne 0x467d7a
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 0x3c]
mov eax, ecx
and eax, 0xfffdffff
or ecx, 0xa0000
test bl, bl
cmove ecx, eax
mov dword [edx + 0x3c], ecx
jmp 0x468415
push 7
push str.MinSize
push esi
call fcn.0049b726
add esp, 0xc
test eax, eax
jne 0x467f31
add esi, 0xe
test bl, bl
je 0x467f14
mov edi, dword [esp + 0xc]
movzx eax, word [esi]
mov edx, eax
mov cl, byte [edi + 0xbb]
test ax, ax
je 0x467eca
test cl, cl
je 0x467dcb
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
jmp 0x467e0f
lea eax, [esp + 0x50]
push eax
push dword [edi + 4]
call dword [esp + 0x34]
lea eax, [esp + 0x90]
push eax
push dword [edi + 4]
call dword [esp + 0x3c]
mov eax, dword [esp + 0x58]
sub eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x5c]
sub eax, dword [esp + 0x50]
sub ecx, dword [esp + 0x9c]
sub ecx, dword [esp + 0x54]
mov dword [esp + 0x24], eax
movzx eax, word [esi]
mov dword [esp + 0x20], ecx
movzx eax, ax
mov ebx, esi
test ax, ax
je 0x467ec6
mov edi, eax
nop
mov ecx, 0x4d3214
mov edx, 0x58
nop word [eax + eax]
cmp di, dx
je 0x467e8d
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x467e30
movzx eax, word [ebx + 2]
add ebx, 2
mov edi, eax
test ax, ax
jne 0x467e20
xor ebx, ebx
mov edi, dword [esp + 0xc]
cmp ebx, esi
je 0x468415
push esi
call fcn.0049ccd5
add esp, 4
cmp byte [edi + 0xc0], 0
je 0x467e7e
push 0x60
push dword [0x4ddc8c]
push eax
call dword [esp + 0x34]
add eax, dword [esp + 0x24]
mov dword [edi + 0xa8], eax
jmp 0x468415
cmp word [ebx + 2], 0
lea eax, [ebx + 2]
je 0x467e53
push eax
call fcn.0049ccd5
mov edi, dword [esp + 0x10]
add esp, 4
cmp byte [edi + 0xc0], 0
je 0x467eba
push 0x60
push dword [0x4ddc8c]
push eax
call dword [esp + 0x34]
add eax, dword [esp + 0x20]
mov dword [edi + 0xac], eax
jmp 0x467e57
xor ebx, ebx
jmp 0x467e57
test cl, cl
je 0x467ee7
mov dword [edi + 0xa8], VariantInit
mov dword [edi + 0xac], VariantInit
jmp 0x468415
lea eax, [esp + 0x60]
push eax
push dword [edi + 4]
call dword [esp + 0x34]
mov eax, dword [esp + 0x68]
sub eax, dword [esp + 0x60]
mov dword [edi + 0xa8], eax
mov eax, dword [esp + 0x6c]
sub eax, dword [esp + 0x64]
mov dword [edi + 0xac], eax
jmp 0x468415
mov edx, dword [esp + 0xc]
mov dword [edx + 0xa8], VariantInit
mov dword [edx + 0xac], VariantInit
jmp 0x468415
push 7
push str.MaxSize
push esi
call fcn.0049b726
add esp, 0xc
test eax, eax
jne 0x468100
add esi, 0xe
test bl, bl
je 0x4680e3
mov edi, dword [esp + 0xc]
movzx eax, word [esi]
mov edx, eax
mov cl, byte [edi + 0xbb]
test ax, ax
je 0x46808a
test cl, cl
je 0x467f82
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
jmp 0x467fc6
lea eax, [esp + 0x70]
push eax
push dword [edi + 4]
call dword [esp + 0x34]
lea eax, [esp + 0xa0]
push eax
push dword [edi + 4]
call dword [esp + 0x3c]
mov eax, dword [esp + 0x78]
sub eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0x7c]
sub eax, dword [esp + 0x70]
sub ecx, dword [esp + 0xac]
sub ecx, dword [esp + 0x74]
mov dword [esp + 0x20], eax
movzx eax, word [esi]
mov dword [esp + 0x24], ecx
movzx eax, ax
mov ebx, esi
test ax, ax
je 0x468086
mov edi, eax
nop word [eax + eax]
mov ecx, 0x4d3214
mov edx, 0x58
nop word [eax + eax]
cmp di, dx
je 0x46804d
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x467ff0
movzx eax, word [ebx + 2]
add ebx, 2
mov edi, eax
test ax, ax
jne 0x467fe0
xor ebx, ebx
mov edi, dword [esp + 0xc]
cmp ebx, esi
je 0x468415
push esi
call fcn.0049ccd5
add esp, 4
cmp byte [edi + 0xc0], 0
je 0x46803e
push 0x60
push dword [0x4ddc8c]
push eax
call dword [esp + 0x34]
add eax, dword [esp + 0x20]
mov dword [edi + 0xb0], eax
jmp 0x468415
cmp word [ebx + 2], 0
lea eax, [ebx + 2]
je 0x468013
push eax
call fcn.0049ccd5
mov edi, dword [esp + 0x10]
add esp, 4
cmp byte [edi + 0xc0], 0
je 0x46807a
push 0x60
push dword [0x4ddc8c]
push eax
call dword [esp + 0x34]
add eax, dword [esp + 0x24]
mov dword [edi + 0xb4], eax
jmp 0x468017
xor ebx, ebx
jmp 0x468017
test cl, cl
je 0x4680a7
mov dword [edi + 0xb0], VariantInit
mov dword [edi + 0xb4], VariantInit
jmp 0x468415
lea eax, [esp + 0x80]
push eax
push dword [edi + 4]
call dword [esp + 0x34]
mov eax, dword [esp + 0x88]
sub eax, dword [esp + 0x80]
mov dword [edi + 0xb0], eax
mov eax, dword [esp + 0x8c]
sub eax, dword [esp + 0x84]
mov dword [edi + 0xb4], eax
jmp 0x468415
mov edx, dword [esp + 0xc]
mov dword [edx + 0xb0], VariantInit
mov dword [edx + 0xb4], VariantInit
jmp 0x468415
push str.OwnDialogs
push esi
call fcn.00499643
add esp, 8
test eax, eax
jne 0x468123
mov ecx, dword [ebp + 0x10]
movzx eax, bl
xor eax, 1
inc eax
mov dword [ecx], eax
jmp 0x468415
push str.Resize
push esi
call fcn.00499643
add esp, 8
test eax, eax
jne 0x468156
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 0x3c]
mov eax, ecx
and eax, 0xfffaffff
or ecx, 0x50000
test bl, bl
cmove ecx, eax
mov dword [edx + 0x3c], ecx
jmp 0x468415
push str.SysMenu
push esi
call fcn.00499643
add esp, 8
test eax, eax
jne 0x468189
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 0x3c]
mov eax, ecx
and eax, 0xfff7ffff
or ecx, 0x80000
test bl, bl
cmove ecx, eax
mov dword [edx + 0x3c], ecx
jmp 0x468415
push str.Theme
push esi
call fcn.00499643
add esp, 8
test eax, eax
jne 0x4681a7
mov eax, dword [esp + 0xc]
mov byte [eax + 0x45], bl
jmp 0x468415
push str.ToolWindow
push esi
call fcn.00499643
add esp, 8
test eax, eax
jne 0x4681da
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 0x40]
mov eax, ecx
and eax, 0xffffff7f
or ecx, 0x80
test bl, bl
cmove ecx, eax
mov dword [edx + 0x40], ecx
jmp 0x468415
push str.DPIScale
push esi
call fcn.00499643
add esp, 8
test eax, eax
jne 0x4681fb
mov eax, dword [esp + 0xc]
mov byte [eax + 0xc0], bl
jmp 0x468415
movzx eax, word [esi]
mov edi, eax
test eax, 0xffffff80
je 0x46820b
xor edx, edx
jmp 0x468218
push 2
push eax
call fcn.0049bd84
add esp, 8
mov edx, eax
mov eax, edi
and eax, 0xffdf
test edx, edx
movzx ecx, ax
mov eax, edi
cmove ecx, eax
xor edx, edx
push 0
push edx
cmp cx, 0x45
jne 0x468271
push edx
lea ecx, [esi + 2]
call fcn.0047c7e0
add esp, 0xc
test eax, eax
je 0x468415
lea ecx, [esi + 2]
call fcn.004151f0
mov edi, dword [esp + 0xc]
mov ecx, dword [edi + 0x40]
test bl, bl
je 0x468265
or ecx, eax
mov dword [edi + 0x40], ecx
jmp 0x468415
not eax
and eax, ecx
mov dword [edi + 0x40], eax
jmp 0x468415
push 1
mov ecx, esi
call fcn.0047c7e0
add esp, 0xc
test eax, eax
je 0x468480
mov ecx, esi
call fcn.004151f0
mov edi, dword [esp + 0xc]
mov ecx, dword [edi + 0x3c]
test bl, bl
je 0x4682a1
or ecx, eax
mov dword [edi + 0x3c], ecx
jmp 0x468415
not eax
and ecx, eax
mov dword [edi + 0x3c], ecx
jmp 0x468415
mov cl, byte [esp + 0x12]
test bl, bl
jne 0x4682c5
mov edi, dword [esp + 0xc]
mov dword [edi + 0xc], 0
jmp 0x4683aa
movzx ebx, cl
xor ebx, 1
add ebx, 5
cmp word [esi + ebx*2], 0
lea ebx, [esi + ebx*2]
jne 0x4682ed
test cl, cl
je 0x4682ed
mov edi, dword [esp + 0xc]
mov eax, dword [0x4dc424]
mov dword [edi + 0xc], eax
jmp 0x4683aa
push 0
push 0
push 0
mov edx, 1
mov ecx, ebx
call fcn.0047c7e0
add esp, 0xc
cmp eax, 1
jne 0x468341
mov ecx, ebx
call fcn.004151f0
mov edi, eax
test edx, edx
jl 0x468334
jg 0x468334
cmp edi, 1
jb 0x468334
test edx, edx
jg 0x468334
jl 0x468326
cmp edi, 0x63
ja 0x468334
mov eax, dword [esp + 0x1c]
sub eax, ebx
and eax, 0xfffffffe
cmp eax, 4
jle 0x468341
push edi
call dword [esp + 0x4c]
test eax, eax
je 0x468341
test edi, edi
jne 0x46839c
xor edi, edi
cmp dword [0x4dc41c], edi
jle 0x468370
nop dword [eax + eax]
mov eax, dword [0x4dc418]
push ebx
mov eax, dword [eax + edi*4]
push dword [eax]
call fcn.00499643
add esp, 8
test eax, eax
je 0x468389
inc edi
cmp edi, dword [0x4dc41c]
jl 0x468350
push esi
push str.Invalid_or_nonexistent_owner_or_parent_window.
mov ecx, 0x4ddca0
call fcn.004302e0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [0x4dc418]
mov edi, dword [eax + edi*4]
test edi, edi
je 0x468370
mov edi, dword [edi + 4]
test edi, edi
je 0x468370
mov eax, dword [esp + 0xc]
cmp edi, dword [eax + 4]
je 0x468370
mov dword [eax + 0xc], edi
mov edi, eax
cmp byte [esp + 0x12], 0
je 0x4683e9
mov eax, dword [edi + 0x3c]
test eax, 0x40000000
je 0x4683d6
and eax, 0x3fffffff
or eax, 0x80000000
mov dword [edi + 0x3c], eax
mov eax, dword [edi + 4]
test eax, eax
je 0x468415
push 0
push eax
call dword [esp + 0x40]
mov eax, dword [edi + 4]
test eax, eax
je 0x468415
push dword [edi + 0xc]
push 0xfffffffffffffff8
push eax
call dword [esp + 0x3c]
jmp 0x468415
mov eax, dword [edi + 4]
test eax, eax
je 0x4683f8
push dword [edi + 0xc]
push eax
call dword [esp + 0x40]
mov eax, dword [edi + 0x3c]
and eax, 0x3fffffff
cmp dword [edi + 0xc], 0
je 0x46840d
or eax, 0x40000000
jmp 0x468412
or eax, 0x80000000
mov dword [edi + 0x3c], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x4c]
mov word [eax], cx
mov esi, eax
movzx eax, word [esi]
cmp eax, 0x20
je 0x46842f
cmp eax, 9
jne 0x468434
add esi, 2
jmp 0x468422
mov ecx, eax
test ax, ax
jne 0x4679f0
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0xc]
mov eax, dword [edi + 4]
test eax, eax
je 0x4684e5
cmp dword [edi + 0x3c], ecx
jne 0x468464
cmp dword [edi + 0x40], edx
je 0x4684e5
push eax
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x468499
push dword [edi + 4]
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
jne 0x468499
mov bl, 1
jmp 0x46849b
push esi
push str.Invalid_option.
mov ecx, 0x4ddca0
call fcn.004302e0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
xor bl, bl
mov eax, dword [edi + 0x3c]
mov esi, dword [esp + 0x30]
cmp eax, dword [esp + 0x14]
je 0x4684b0
push eax
push 0xfffffffffffffff0
push dword [edi + 4]
call esi
mov eax, dword [edi + 0x40]
cmp eax, dword [esp + 0x18]
je 0x4684c1
push eax
push 0xffffffffffffffec
push dword [edi + 4]
call esi
test bl, bl
je 0x4684e5
push 0x37
push 0
push 0
push 0
push 0
push 0
push dword [edi + 4]
call dword [esp + 0x58]
push 1
push 0
push dword [edi + 4]
call dword [sym.imp.USER32.dll_InvalidateRect]
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 0x10