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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x2f8
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, ecx
test esi, esi
je 0x46df5d
mov dword [esi], 0xffffffff
cmp word [edi], 0
jne 0x46dfd6
cmp word [edx], 0
jne 0x46dfd6
cmp dword [0x4e8d68], 0
jne 0x46dfc4
cmp dword [0x4e8d64], 0
jne 0x46df95
push 0x4b00
call fcn.0049eded
add esp, 4
mov dword [0x4e8d64], eax
test eax, eax
je 0x46e662
push 0x11
call dword [sym.imp.GDI32.dll_GetStockObject]
mov ecx, dword [0x4e8d68]
lea edx, [ecx + ecx*2]
mov ecx, dword [0x4e8d64]
shl edx, 5
add ecx, edx
push ecx
push 0x5c
push eax
mov dword [ecx + 0x5c], eax
call dword [sym.imp.GDI32.dll_GetObjectW]
inc dword [0x4e8d68]
test esi, esi
je 0x46dfce
mov dword [esi], 0xff000000
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 8]
test eax, eax
jne 0x46dff1
cmp dword [0x4e8d68], eax
jle 0x46e602
mov eax, dword [0x4e8d64]
mov dword [ebp + 8], eax
cmp word [edx], 0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x30], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [esp + 0x40], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [esp + 0x50], xmm0
movups xmm0, xmmword [eax + 0x30]
movups xmmword [esp + 0x60], xmm0
movups xmm0, xmmword [eax + 0x40]
movups xmmword [esp + 0x70], xmm0
movups xmm0, xmmword [eax + 0x50]
movups xmmword [esp + 0x80], xmm0
je 0x46e049
push 0x1f
push edx
lea eax, [esp + 0x54]
push eax
call fcn.004aa2c4
add esp, 0xc
xor eax, eax
mov word [esp + 0x8a], ax
or eax, 0xffffffff
mov dword [esp + 0x20], 0
mov dword [esp + 0x18], eax
movzx eax, word [edi]
cmp eax, 0x20
je 0x46e065
cmp eax, 9
jne 0x46e06a
add edi, 2
jmp 0x46e058
test ax, ax
je 0x46e2f9
mov edx, edi
mov ecx, eax
cmp cx, 0x20
je 0x46e091
cmp cx, 9
je 0x46e091
movzx eax, word [edx + 2]
add edx, 2
mov ecx, eax
test ax, ax
jne 0x46e077
mov eax, edx
mov dword [esp + 0x1c], edx
sub eax, edi
mov esi, 0x101
sar eax, 1
inc eax
cmp eax, esi
cmovb esi, eax
lea eax, [esp + 0xf8]
dec esi
push esi
push edi
push eax
call fcn.004aa2c4
add esp, 0xc
xor eax, eax
mov word [esp + esi*2 + 0xf8], ax
lea eax, [esp + 0xf8]
push str.Bold
push eax
call fcn.0049ecd1
add esp, 8
test eax, eax
jne 0x46e0ed
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x40], 0x2bc
jmp 0x46e058
lea eax, [esp + 0xf8]
push str.italic
push eax
call fcn.0049ecd1
add esp, 8
test eax, eax
jne 0x46e114
mov edi, dword [esp + 0x1c]
mov byte [esp + 0x44], 1
jmp 0x46e058
lea eax, [esp + 0xf8]
push str.norm
push eax
call fcn.0049ecd1
add esp, 8
test eax, eax
jne 0x46e147
mov edi, dword [esp + 0x1c]
mov word [esp + 0x44], ax
mov byte [esp + 0x46], al
mov dword [esp + 0x40], 0x190
jmp 0x46e058
lea eax, [esp + 0xf8]
push str.underline
push eax
call fcn.0049ecd1
add esp, 8
test eax, eax
jne 0x46e16e
mov edi, dword [esp + 0x1c]
mov byte [esp + 0x45], 1
jmp 0x46e058
lea eax, [esp + 0xf8]
push str.strike
push eax
call fcn.0049ecd1
add esp, 8
test eax, eax
jne 0x46e195
mov edi, dword [esp + 0x1c]
mov byte [esp + 0x46], 1
jmp 0x46e058
mov esi, dword [esp + 0xf8]
lea eax, [esi - 0x61]
cmp ax, 0x19
ja 0x46e1ad
and esi, 0xffdf
jmp 0x46e1b0
movzx esi, si
cmp word [esp + 0xfa], 0
je case.0x46e205.68
push esi
push 0x4da494
call fcn.0049c861
add esp, 8
test eax, eax
je 0x46e1ef
push ecx
push 1
push 0
xor edx, edx
lea ecx, [esp + 0x106]
call fcn.00481480
add esp, 0xc
test eax, eax
je case.0x46e205.68
movzx eax, si
add eax, 0xffffffbd
cmp eax, 0x14
ja case.0x46e205.68
movzx eax, byte [eax + 0x46e688]
jmp dword [eax*4 + 0x46e674]
cmp word [esp + 0xfa], 0
jne 0x46e229
mov edi, dword [esp + 0x1c]
mov eax, 0xff000000
mov dword [esp + 0x18], eax
jmp 0x46e058
lea ecx, [esp + 0xfa]
call fcn.004829e0
mov dword [esp + 0x18], eax
cmp eax, 0xffffffff
jne 0x46e2f0
push 0x10
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x102]
push eax
call fcn.004a477d
movzx edx, al
add esp, 0xc
movzx ecx, ax
shl edx, 8
shr ecx, 8
or edx, ecx
shr eax, 0x10
shl edx, 8
movzx eax, al
or edx, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x18], edx
cmp word [eax], 0
je 0x46e2f0
push 0
mov edx, edi
mov ecx, str.Invalid_option.
call fcn.0040dba0
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0xfa]
call fcn.00481e00
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x40], eax
jmp 0x46e058
lea eax, [esp + 0xfa]
push eax
call fcn.004a8e62
fadd qword [0x4db958]
mov edi, dword [esp + 0x20]
add esp, 4
fstp qword [esp + 0x20]
cvttsd2si eax, qword [esp + 0x20]
mov dword [esp + 0x20], eax
jmp 0x46e058
lea ecx, [esp + 0xfa]
call fcn.00481e00
mov byte [esp + 0x4a], al
mov edi, dword [esp + 0x1c]
jmp 0x46e058
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x46e306
mov eax, dword [esp + 0x18]
mov dword [esi], eax
push 0
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
push 0x5a
push esi
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x46e331
push 0x48
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_MulDiv]
neg eax
mov dword [esp + 0x30], eax
push 0x1f
lea eax, [esp + 0x50]
mov byte [esp + 0xb3], 1
push eax
lea eax, [esp + 0xbc]
mov byte [esp + 0xbb], 0
push eax
call fcn.004aa2c4
add esp, 0xc
xor eax, eax
mov word [esp + 0xf2], ax
mov byte [esp + 0x17], al
push eax
lea eax, [esp + 0x1b]
push eax
push 0x482ba0
lea eax, [esp + 0xa4]
push eax
push esi
call dword [sym.imp.GDI32.dll_EnumFontFamiliesExW]
cmp byte [esp + 0x17], 0
jne 0x46e3a3
mov ecx, dword [ebp + 8]
lea edx, [esp + 0x4c]
add ecx, 0x1c
sub edx, ecx
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x46e393
push esi
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [0x4e8d68]
xor edi, edi
test eax, eax
jle 0x46e43c
mov ecx, dword [0x4e8d64]
xor esi, esi
lea eax, [esp + 0x4c]
push eax
lea eax, [ecx + 0x1c]
add eax, esi
push eax
call fcn.0049ecd1
mov ecx, dword [0x4e8d64]
add esp, 8
test eax, eax
jne 0x46e41b
mov eax, dword [esi + ecx]
cmp eax, dword [esp + 0x30]
jne 0x46e41b
mov eax, dword [esi + ecx + 0x10]
cmp eax, dword [esp + 0x40]
jne 0x46e41b
mov al, byte [esi + ecx + 0x14]
cmp al, byte [esp + 0x44]
jne 0x46e41b
mov al, byte [esi + ecx + 0x15]
cmp al, byte [esp + 0x45]
jne 0x46e41b
mov al, byte [esi + ecx + 0x16]
cmp al, byte [esp + 0x46]
jne 0x46e41b
mov al, byte [esi + ecx + 0x1a]
cmp al, byte [esp + 0x4a]
je 0x46e42a
mov eax, dword [0x4e8d68]
inc edi
add esi, 0x60
cmp edi, eax
jl 0x46e3c3
jmp 0x46e43c
cmp edi, 0xffffffff
je 0x46e437
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x4e8d68]
cmp eax, 0xc8
jl 0x46e516
mov ecx, dword [0x4e9574]
mov al, byte [0x4e9604]
test ecx, ecx
je 0x46e4bb
test al, al
je 0x46e4bb
mov eax, dword [0x4e37f8]
cmp dword [eax + 0x34], 0
jne 0x46e499
cmp dword [0x4e95ac], 0
jne 0x46e499
cmp byte [0x4e8ec6], 0
jne 0x46e499
push 0
push ecx
push 0x4cdea8
push 0
push str.Too_many_fonts.
mov ecx, 0x4e8f30
call fcn.0040d410
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push 0
push 0
push ecx
push 0x4cdea8
push str.Too_many_fonts.
mov ecx, 0x4e8f30
call fcn.0040c230
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp byte [0x4e9607], 0
je 0x46e4f3
test al, al
jne 0x46e4f3
push dword [0x4e91b0]
movzx eax, word [0x4e91ac]
mov ecx, 0x4e8f30
push eax
push 0x4cdea8
push str.Too_many_fonts.
call fcn.0040c6e0
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push 0
push 0
push 0x4cdea8
push 0
push str.Too_many_fonts.
mov ecx, 0x4e8f30
call fcn.0040d410
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x30]
mov dword [esp + 0x34], 0
push eax
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov word [esp + 0x4b], 0x401
mov byte [esp + 0x4d], 0
mov byte [esp + 0x4f], 0
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov dword [esp + 0x8c], eax
test eax, eax
jne 0x46e60b
mov ecx, dword [0x4e9574]
mov al, byte [0x4e9604]
test ecx, ecx
je 0x46e5b0
test al, al
je 0x46e5b0
mov eax, dword [0x4e37f8]
cmp dword [eax + 0x34], 0
jne 0x46e58e
cmp dword [0x4e95ac], 0
jne 0x46e58e
cmp byte [0x4e8ec6], 0
jne 0x46e58e
push 0
push ecx
jmp 0x46e5ec
push 0
push 0
push ecx
push 0x4cdea8
push str.Cant_create_font.
mov ecx, 0x4e8f30
call fcn.0040c230
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp byte [0x4e9607], 0
je 0x46e5e8
test al, al
jne 0x46e5e8
push dword [0x4e91b0]
movzx eax, word [0x4e91ac]
mov ecx, 0x4e8f30
push eax
push 0x4cdea8
push str.Cant_create_font.
call fcn.0040c6e0
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push 0
push 0
push 0x4cdea8
push 0
push str.Cant_create_font.
mov ecx, 0x4e8f30
call fcn.0040d410
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x4e8d68]
movups xmm0, xmmword [esp + 0x30]
pop edi
pop esi
lea eax, [ecx + ecx*2]
shl eax, 5
add eax, dword [0x4e8d64]
inc ecx
mov dword [0x4e8d68], ecx
movups xmmword [eax], xmm0
movups xmm0, xmmword [esp + 0x38]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [esp + 0x48]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [esp + 0x58]
movups xmmword [eax + 0x30], xmm0
movups xmm0, xmmword [esp + 0x68]
movups xmmword [eax + 0x40], xmm0
movups xmm0, xmmword [esp + 0x78]
movups xmmword [eax + 0x50], xmm0
lea eax, [ecx - 1]
mov esp, ebp
pop ebp
ret
push 0x4cdea8
push str.Out_of_memory.
call fcn.0040d9b0
nop dword [eax]
or al, 0xe2
inc esi
add al, ah
loop 0x46e6c1
add byte [ebx - 0x65ffb91e], dh
loop 0x46e6c9
add byte [eax + 0x46e2], al
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 1
add al, 2
add al, 4
add al, 3
int3
push edi
je 0x46e6fc
cmp dword [edx + 0x4c], eax
jne 0x46e6fc
mov byte [edx + 0x52], 0
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
cmp eax, 0x4e
ja 0x46f165
je 0x46eaaf
add eax, 0xfffffffe
cmp eax, 0x29
ja case.0x46f18b.124
movzx eax, byte [eax + 0x46f80c]
jmp dword [eax*4 + 0x46f7f0]
cmp dword [0x4e8f28], 0
je 0x46e6cd
mov ebx, dword [ebp + 0x10]
lea edx, [esp + 0x14]
push edx
push 0
push esi
push ebx
mov edx, eax
call fcn.00404070
add esp, 0x10
test al, al
je 0x46e72c
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov edx, dword [0x4e37f8]
mov ecx, dword [ebp + 8]
jmp 0x46e6d0
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4e98b4]
jne case.0x46f18b.124
mov edi, dword [ebp + 8]
push 0xffffffffffffffeb
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
je case.0x46f18b.124
mov eax, dword [edx + 0x24]
cmp ebx, 1
sete cl
mov byte [edx + 0xc7], cl
test eax, eax
je 0x46e78c
push esi
push ebx
push 5
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, dword [esp + 0x14]
mov eax, ebx
sub eax, 0
je 0x46e7a7
sub eax, 1
je 0x46e7a2
sub eax, 1
jne 0x46e7a9
lea ebx, [eax + 1]
jmp 0x46e7a9
or ebx, 0xffffffff
jmp 0x46e7a9
xor ebx, ebx
mov eax, dword [edx + 0x54]
xor ecx, ecx
mov dword [esp + 0x14], eax
test eax, eax
jle case.0x46ebb9.158
mov eax, dword [edx + 0x4c]
mov edx, dword [esp + 0x14]
add eax, 0xa
cmp dword [eax - 6], 4
jne 0x46e7cf
cmp byte [eax], 0
je 0x46e7e2
inc ecx
add eax, 0xc
cmp ecx, edx
jl 0x46e7c4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
movzx eax, bl
push esi
shl eax, 8
or eax, 0x2af80004
push eax
push 0x414
push edi
call dword [sym.imp.USER32.dll_PostMessageW]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4e98b4]
jne case.0x46f18b.124
mov edi, dword [ebp + 8]
push 0xffffffffffffffeb
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov ecx, eax
test ecx, ecx
je case.0x46f18b.124
mov eax, dword [ecx + 0xac]
test eax, eax
js 0x46e842
mov dword [esi + 0x18], eax
mov edx, dword [ecx + 0xb0]
lea eax, [esi + 0x1c]
test edx, edx
js 0x46e851
mov dword [eax], edx
mov edx, dword [ecx + 0xb4]
test edx, edx
js 0x46e86b
mov edi, dword [esi + 0x18]
mov dword [esi + 0x20], edx
cmp edx, edi
jge 0x46e86b
mov dword [esi + 0x20], edi
lea eax, [esi + 0x1c]
mov ecx, dword [ecx + 0xb8]
test ecx, ecx
js case.0x46ebb9.158
mov eax, dword [eax]
mov dword [esi + 0x24], ecx
cmp ecx, eax
jge case.0x46ebb9.158
mov dword [esi + 0x24], eax
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4e98b4]
jne case.0x46f18b.124
mov edi, dword [ebp + 8]
push 0xffffffffffffffeb
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edx, eax
test edx, edx
je case.0x46f18b.124
mov ecx, dword [esi + 4]
sub ecx, 3
cmp ecx, dword [edx + 0x5c]
jae case.0x46f18b.124
mov eax, dword [edx + 0x2c]
mov ebx, dword [eax + ecx*4]
mov eax, dword [ebx + 0x18]
cmp eax, dword [esi + 0x14]
jne case.0x46f18b.124
cmp byte [ebx + 0x30], 0x13
jne case.0x46f18b.124
lea eax, [esp + 0xc]
mov ecx, edx
push eax
lea eax, [esp + 0x18]
push eax
push 1
push ebx
call fcn.00470320
mov ecx, dword [esp + 0x14]
lea eax, [esi + 0x1c]
lea edi, [esi + 0x18]
test ecx, ecx
je 0x46e928
push ecx
push eax
push dword [edi]
call dword [sym.imp.USER32.dll_FillRect]
push dword [esp + 0xc]
push dword [edi]
call dword [sym.imp.GDI32.dll_SetBkColor]
jmp 0x46e940
push 0xfffffffffffffff6
push dword [ebx + 0x18]
call dword [sym.imp.USER32.dll_GetClassLongW]
push eax
lea eax, [esi + 0x1c]
push eax
push dword [edi]
call dword [sym.imp.USER32.dll_FillRect]
lea eax, [esp + 0x88]
mov dword [esp + 0x28], 1
mov dword [esp + 0x34], eax
or eax, 0xffffffff
mov dword [esp + 0x38], 0x3ff
mov ecx, dword [ebx + 0x3c]
mov dword [esp + 0x1c], eax
lea eax, [esi + 0x1c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edi
cmp ecx, 0xff000000
je 0x46e993
push ecx
push dword [edi]
call dword [sym.imp.GDI32.dll_SetTextColor]
mov dword [esp + 0x1c], eax
lea eax, [esi + 0x1c]
mov dword [esp + 0xc], eax
lea eax, [esi + 0x18]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x28]
push eax
push dword [esi + 8]
push 0x133c
push dword [esi + 0x14]
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
je 0x46ea04
push 0
push 0
push 0x130b
push dword [ebx + 0x18]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp eax, dword [esi + 8]
je 0x46e9d2
add dword [esi + 0x20], 3
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
jmp 0x46e9d5
lea edx, [esi + 0x1c]
mov ebx, edi
mov edi, dword [esp + 0x34]
mov ecx, edi
lea eax, [ecx + 2]
mov dword [esp + 0x14], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46e9e4
sub ecx, dword [esp + 0x14]
push 0x25
push edx
sar ecx, 1
push ecx
push edi
push dword [ebx]
call dword [sym.imp.USER32.dll_DrawTextW]
jmp 0x46ea08
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
cmp eax, 0xffffffff
je case.0x46f18b.124
push eax
push dword [ebx]
call dword [sym.imp.GDI32.dll_SetTextColor]
jmp case.0x46f18b.124
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4e98b4]
jne case.0x46f18b.124
mov edi, dword [ebp + 8]
push 0xffffffffffffffeb
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
test eax, eax
je case.0x46f18b.124
cmp byte [eax + 0xc7], 0
jne case.0x46ebb9.158
jmp case.0x46f18b.124
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4e98b4]
jne case.0x46f18b.124
mov edi, dword [ebp + 8]
push 0xffffffffffffffeb
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
test eax, eax
je case.0x46f18b.124
cmp byte [eax + 0xc4], 0
jne case.0x46f18b.124
mov ecx, eax
mov byte [eax + 0xc4], 1
call fcn.00464cb0
jmp case.0x46f18b.124
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4e98b4]
jne case.0x46f18b.124
mov edi, dword [ebp + 8]
push 0xffffffffffffffeb
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov ebx, eax
mov dword [esp + 0x14], ebx
test ebx, ebx
je case.0x46f18b.124
mov edi, dword [esi + 4]
test edi, edi
jne 0x46eb29
mov eax, dword [esi]
mov dword [esp + 0x10], eax
nop
push eax
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
lea edi, [eax - 3]
mov eax, dword [esp + 0x10]
cmp edi, dword [ebx + 0x5c]
jae 0x46eb0e
mov ecx, dword [ebx + 0x2c]
mov ecx, dword [ecx + edi*4]
cmp dword [ecx + 0x18], eax
je 0x46eb2c
push eax
call dword [sym.imp.USER32.dll_GetParent]
mov dword [esp + 0x10], eax
test eax, eax
je 0x46eb22
cmp eax, dword [ebx + 0x1c]
jne 0x46eaf0
mov edi, 0x2af8
jmp 0x46eb2c
add edi, 0xfffffffd
cmp edi, dword [ebx + 0x5c]
jae case.0x46f18b.124
mov eax, dword [ebx + 0x2c]
mov ecx, dword [eax + edi*4]
mov dword [esp + 0x1c], ecx
mov eax, dword [ecx + 0x18]
cmp eax, dword [esi]
je 0x46eb50
cmp dword [esi + 4], 0
jne case.0x46f18b.124
lea eax, [esp + 0xc]
push eax
push esi
push ecx
mov ecx, ebx
call fcn.0046fea0
test al, al
je 0x46eb6f
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov edx, dword [esp + 0x1c]
xor eax, eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
movzx eax, byte [edx + 0x30]
add eax, 0xfffffff6
cmp eax, 0xf
ja case.0x46f18b.124
movzx eax, byte [eax + 0x46f85c]
jmp dword [eax*4 + 0x46f838]
mov eax, dword [esi + 8]
add eax, 0xb0
cmp eax, 0xae
ja case.0x46f18b.124
movzx eax, byte [eax + 0x46f89c]
jmp dword [eax*4 + 0x46f86c]
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x14]
inc eax
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x18]
xor eax, edx
and edx, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], edx
test al, 2
je 0x46ec82
test dl, 2
mov eax, 0x10b
mov ecx, 0x20b
cmovne eax, ecx
movzx eax, ax
mov dword [esp + 0xc], eax
cmp edi, dword [ebx + 0x5c]
jae 0x46ec82
mov eax, dword [ebx + 0x2c]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x28], 0
je 0x46ec82
test byte [eax + 0x31], 0x20
jne 0x46ec82
mov esi, dword [eax + 0x28]
xor ecx, ecx
mov dword [esp + 0x20], esi
cmp esi, ecx
mov esi, dword [ebp + 0x14]
jle 0x46ec82
mov ebx, dword [esp + 0xc]
mov eax, dword [eax + 0x20]
movzx esi, bl
add eax, 0xa
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x1c], esi
nop dword [eax]
mov esi, dword [esp + 0x1c]
cmp dword [eax - 6], esi
mov esi, dword [ebp + 0x14]
jne 0x46ec51
cmp byte [eax], 0
je 0x46ec5d
inc ecx
add eax, 0xc
cmp ecx, dword [esp + 0x20]
jl 0x46ec40
jmp 0x46ec82
push dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ecx, edi
shl ecx, 0x10
movzx eax, ax
or ecx, eax
push ecx
push 0x414
push dword [ebx + 0x1c]
call dword [sym.imp.USER32.dll_PostMessageW]
mov edx, dword [esp + 0x24]
test dl, 1
je 0x46ece0
cmp edi, dword [ebx + 0x5c]
jae 0x46ece0
mov eax, dword [ebx + 0x2c]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x28], 0
je 0x46ece0
test byte [eax + 0x31], 0x20
jne 0x46ece0
mov edx, dword [eax + 0x28]
xor ecx, ecx
test edx, edx
jle 0x46ece0
mov eax, dword [eax + 0x20]
add eax, 0xa
nop dword [eax]
cmp dword [eax - 6], 0xc
jne 0x46ecbb
cmp byte [eax], 0
je 0x46ecc5
inc ecx
add eax, 0xc
cmp ecx, edx
jl 0x46ecb0
jmp 0x46ece0
push dword [esp + 0x10]
mov eax, edi
shl eax, 0x10
or eax, 0xc
push eax
push 0x414
push dword [ebx + 0x1c]
call dword [sym.imp.USER32.dll_PostMessageW]
test dword [esp + 0x28], 0xf000
je case.0x46ebb9.158
test dword [esi + 0x18], 0xf000
je case.0x46ebb9.158
mov eax, dword [esi + 0x14]
shr eax, 4
and eax, 0xf00
or eax, 0xa
movzx eax, ax
mov dword [esp + 0xc], eax
cmp edi, dword [ebx + 0x5c]
jae case.0x46ebb9.158
mov eax, dword [ebx + 0x2c]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x28], 0
je case.0x46ebb9.158
test byte [eax + 0x31], 0x20
jne case.0x46ebb9.158
mov edx, dword [eax + 0x28]
xor ecx, ecx
test edx, edx
jle case.0x46ebb9.158
mov ebx, dword [esp + 0xc]
mov eax, dword [eax + 0x20]
movzx esi, bl
add eax, 0xa
mov ebx, dword [esp + 0x14]
cmp dword [eax - 6], esi
jne 0x46ed5b
cmp byte [eax], 0
je 0x46ed6e
inc ecx
add eax, 0xc
cmp ecx, edx
jl 0x46ed51
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push dword [esp + 0x10]
mov eax, dword [esp + 0x10]
movzx eax, ax
shl edi, 0x10
or edi, eax
push edi
push 0x414
push dword [ebx + 0x1c]
call dword [sym.imp.USER32.dll_PostMessageW]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp word [esi + 0xc], 0x71
jne case.0x46f18b.124
cmp byte [edx + 0x31], 0
jl case.0x46f18b.124
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
push 1
push 0xffffffffffffffff
push 0x100c
push dword [edx + 0x18]
call edi
cmp eax, 0xffffffff
je case.0x46f18b.124
push 0
push eax
mov eax, dword [esp + 0x24]
push 0x1076
push dword [eax + 0x18]
call edi
jmp case.0x46f18b.124
mov eax, dword [esi + 0xc]
inc eax
shl edi, 0x10
push eax
or edi, 5
push edi
push 0x414
push dword [ebx + 0x1c]
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [esi + 0x10]
mov ecx, 9
inc eax
mov dword [esp + 0x10], eax
mov eax, dword [edx + 0x3c]
cmp byte [eax + 5], 0
jne 0x46f05a
mov edx, dword [esi + 0x10]
mov ecx, dword [esp + 0x1c]
push 0
push 1
call fcn.00471380
add esp, 8
mov ecx, ebx
push dword [esp + 0x10]
push 9
push dword [esi + 8]
push edi
call fcn.0046fc20
jmp case.0x46f18b.124
cmp dword [esi + 0x20], 0
je case.0x46f18b.124
mov eax, dword [esi + 0x10]
inc eax
push eax
jmp 0x46ef1d
mov ecx, dword [esi + 8]
mov eax, ecx
cmp eax, 0xffffffef
ja 0x46ef7f
je case.0x46ebb9.158
add eax, 0x1cc
cmp eax, 0x3b
ja case.0x46f18b.124
movzx eax, byte [eax + 0x46f96c]
jmp dword [eax*4 + 0x46f94c]
push dword [esi + 0x3c]
mov ecx, ebx
push 0xb
push dword [esi + 8]
push edi
call fcn.0046fc20
jmp case.0x46f18b.124
test byte [esi + 0xc], 2
mov ecx, 0x20d
mov eax, 0x10d
cmovne eax, ecx
movzx ecx, ax
mov eax, dword [esi + 0x3c]
mov dword [esp + 0x10], eax
jmp 0x46f051
cmp dword [esi + 0xc], 8
jne case.0x46f18b.124
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x14]
xor eax, ecx
test eax, 0xf000
je case.0x46f18b.124
mov eax, dword [esi + 0x10]
shr ecx, 4
and ecx, 0xf00
mov dword [esp + 0x10], eax
or ecx, 0xa
jmp 0x46f051
mov eax, dword [edx + 0x18]
mov dword [0x4e8d60], eax
jmp case.0x46f18b.124
cmp dword [esi + 0x1c], 0
je case.0x46f18b.124
push dword [esi + 0x10]
mov dword [0x4e8d60], 0
push 0xe
push dword [esi + 8]
mov ecx, ebx
push edi
call fcn.0046fc20
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp word [esi + 0xc], 0x71
jne case.0x46f18b.124
cmp byte [edx + 0x31], 0
jl case.0x46f18b.124
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 9
push 0x110a
push dword [edx + 0x18]
call edi
test eax, eax
je case.0x46f18b.124
push eax
mov eax, dword [esp + 0x20]
push 0
push 0x1141
push dword [eax + 0x18]
call edi
jmp case.0x46f18b.124
add eax, 0xc
cmp eax, 0xa
ja case.0x46f18b.124
movzx eax, byte [eax + 0x46f9bc]
jmp dword [eax*4 + 0x46f9a8]
cmp ecx, 0xfffffffd
je 0x46efaa
cmp ecx, 0xfffffffe
jne 0x46efb3
mov eax, 7
jmp 0x46efaf
mov eax, 8
mov dword [esp + 0xc], eax
call dword [sym.imp.USER32.dll_GetMessagePos]
movsx ecx, ax
shr eax, 0x10
cwde
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x28]
push eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x2c], ecx
push dword [eax + 0x18]
call dword [sym.imp.USER32.dll_ScreenToClient]
lea eax, [esp + 0x28]
push eax
mov eax, dword [esp + 0x20]
push 0
push 0x1111
push dword [eax + 0x18]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x10], eax
jmp 0x46f051
mov eax, dword [esi + 8]
cmp eax, 0xfffffd09
je 0x46f086
cmp eax, 0xfffffff8
je case.0x46ebb9.8
cmp eax, 0xfffffff9
jne case.0x46f18b.124
push 0
push 0xf
push dword [esi + 8]
mov ecx, ebx
push edi
call fcn.0046fc20
jmp case.0x46f18b.124
push 0
push 0x10
push dword [esi + 8]
mov ecx, ebx
push edi
call fcn.0046fc20
jmp case.0x46f18b.124
xor ecx, ecx
mov eax, 6
cmp dword [esi + 8], 0xfffffd13
cmovne eax, ecx
movzx ecx, ax
test cx, cx
je case.0x46f18b.124
push dword [esp + 0x10]
push ecx
push dword [esi + 8]
mov ecx, ebx
push edi
call fcn.0046fc20
jmp case.0x46f18b.124
cmp dword [esi + 8], 0xfffffdd9
jne case.0x46f18b.124
push 1
push edx
mov ecx, ebx
call fcn.00470490
push 0
push 6
push dword [esi + 8]
mov ecx, ebx
push edi
call fcn.0046fc20
jmp case.0x46f18b.124
mov eax, dword [esi + 8]
cmp eax, 0xfffffffe
je 0x46f0ab
cmp eax, 0xfffffffc
jne case.0x46f18b.124
cmp word [esi + 0x7c], 0
lea eax, [esi + 0x7c]
je 0x46f10a
mov esi, dword [edx + 0x28]
xor ecx, ecx
mov dword [esp + 0x28], esi
cmp esi, ecx
mov esi, dword [ebp + 0x14]
jle 0x46f0e6
mov eax, dword [edx + 0x20]
mov edx, dword [esp + 0x28]
add eax, 0xa
nop
cmp dword [eax - 6], 7
jne 0x46f0db
cmp byte [eax], 0
je 0x46f10a
inc ecx
add eax, 0xc
cmp ecx, edx
jl 0x46f0d0
lea eax, [esi + 0x7c]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push eax
mov ecx, 0x4e8f30
call fcn.0044d1d0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [esi + 0x10]
mov ecx, ebx
inc eax
push eax
push 7
push dword [esi + 8]
push edi
call fcn.0046fc20
jmp case.0x46f18b.124
mov eax, dword [esi + 8]
add eax, 6
cmp eax, 4
ja case.0x46f18b.124
jmp dword [eax*4 + 0x46f9c8]
mov eax, dword [esi + 0xc]
mov ecx, ebx
inc eax
push eax
push 7
push dword [esi + 8]
push edi
call fcn.0046fc20
jmp case.0x46f18b.124
mov eax, dword [esi + 0xc]
mov ecx, ebx
inc eax
push eax
push 8
push dword [esi + 8]
push edi
call fcn.0046fc20
jmp case.0x46f18b.124
cmp eax, 0x211
ja 0x46f619
je 0x46f5fd
add eax, 0xffffff85
cmp eax, 0xbd
ja case.0x46f18b.124
movzx eax, byte [eax + 0x46f9f8]
jmp dword [eax*4 + 0x46f9dc]
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4e98b4]
jne case.0x46f18b.124
mov edi, dword [ebp + 8]
push 0xffffffffffffffeb
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edx, eax
test edx, edx
je case.0x46f18b.124
movzx ecx, bx
mov eax, ecx
cmp eax, 2
jne 0x46f21e
mov esi, dword [edx + 0x54]
xor ecx, ecx
test esi, esi
jle case.0x46ebb9.158
mov eax, dword [edx + 0x4c]
add eax, 0xa
nop
cmp dword [eax - 6], 3
jne 0x46f1eb
cmp byte [eax], 0
je 0x46f1fe
inc ecx
add eax, 0xc
cmp ecx, esi
jl 0x46f1e0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 0
push 0x2af80003
push 0x414
push dword [edx + 0x1c]
call dword [sym.imp.USER32.dll_PostMessageW]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp eax, 0x2afb
jb 0x46f23f
push dword [edx + 0x1c]
mov edx, ecx
mov ecx, edi
call fcn.0044eec0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
lea ecx, [eax - 3]
cmp ecx, dword [edx + 0x5c]
jae case.0x46f18b.124
mov eax, dword [edx + 0x2c]
mov eax, dword [eax + ecx*4]
cmp dword [eax + 0x18], esi
jne case.0x46f18b.124
push 0
push 0x11
mov eax, ebx
shr eax, 0x10
push eax
push ecx
mov ecx, edx
call fcn.0046fc20
jmp case.0x46f18b.124
cmp ebx, 0xf060
jne case.0x46f18b.124
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4e98b4]
jne case.0x46f18b.124
mov edi, dword [ebp + 8]
push 0xffffffffffffffeb
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
test eax, eax
je case.0x46f18b.124
mov ecx, eax
call fcn.0046d330
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4e98b4]
jne case.0x46f18b.124
mov edi, dword [ebp + 8]
push 0xffffffffffffffeb
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edi, eax
test edi, edi
je case.0x46f18b.124
mov ecx, ebx
shr ecx, 0x10
push ecx
push 0
movzx ecx, bx
push ecx
push esi
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
sub eax, 3
mov ecx, edi
push eax
call fcn.0046fc20
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4e98b4]
jne case.0x46f18b.124
mov edi, dword [ebp + 8]
push 0xffffffffffffffeb
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edi, eax
test edi, edi
je case.0x46f18b.124
cmp dword [edi + 0x30], 0
je case.0x46f18b.124
push dword [edi + 0x78]
push ebx
call dword [sym.imp.GDI32.dll_SetBkColor]
mov eax, dword [edi + 0x30]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4e98b4]
jne case.0x46f18b.124
mov edi, dword [ebp + 8]
push 0xffffffffffffffeb
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edi, eax
mov dword [esp + 0x28], edi
test edi, edi
je case.0x46f18b.124
push esi
mov ecx, edi
call fcn.00401590
cmp eax, 0x2af8
je case.0x46f18b.124
mov ecx, dword [edi + 0x2c]
mov edi, dword [ecx + eax*4]
test edi, edi
je case.0x46f18b.124
cmp byte [edi + 0x30], 2
je 0x46f3ce
mov eax, dword [edi + 0x3c]
cmp eax, 0xff000000
je 0x46f3ce
mov byte [esp + 0x1b], 1
jmp 0x46f3db
push 8
mov byte [esp + 0x1f], 0
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
push ebx
call dword [sym.imp.GDI32.dll_SetTextColor]
cmp dword [edi + 0x34], 0xff000001
jne 0x46f406
push 1
push ebx
call dword [sym.imp.GDI32.dll_SetBkMode]
push 5
call dword [sym.imp.GDI32.dll_GetStockObject]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp dword [ebp + 0xc], 0x138
jne 0x46f421
movzx eax, byte [edi + 0x30]
mov byte [esp + 0x14], 1
test byte [eax + 0x4da4ec], 0x40
jne 0x46f426
mov byte [esp + 0x14], 0
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x28]
push eax
push dword [esp + 0x1c]
push edi
call fcn.00470320
mov edi, dword [esp + 0x24]
test edi, edi
je 0x46f45c
push dword [esp + 0x20]
push ebx
call dword [sym.imp.GDI32.dll_SetBkColor]
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp byte [esp + 0x1b], 0
je case.0x46f18b.124
cmp dword [ebp + 0xc], 0x138
mov eax, dword [sym.imp.USER32.dll_GetSysColor]
jne 0x46f492
push 0xf
call eax
push eax
push ebx
call dword [sym.imp.GDI32.dll_SetBkColor]
push 0xf
call dword [sym.imp.USER32.dll_GetSysColorBrush]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 5
call eax
push eax
push ebx
call dword [sym.imp.GDI32.dll_SetBkColor]
push 5
call dword [sym.imp.USER32.dll_GetSysColorBrush]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4e98b4]
jne case.0x46f18b.124
mov edi, dword [ebp + 8]
push 0xffffffffffffffeb
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov dword [esp + 0xc], eax
test eax, eax
je case.0x46f18b.124
cmp esi, 0xffffffff
je 0x46f54b
push 0x2c
lea eax, [esp + 0x60]
push 0
push eax
call fcn.0049d5e0
add esp, 0xc
movzx ecx, si
mov eax, esi
mov dword [esp + 0x58], ecx
shr eax, 0x10
mov dword [esp + 0x5c], eax
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x28]
push eax
push edi
mov dword [esp + 0x30], ecx
call dword [sym.imp.USER32.dll_ScreenToClient]
test eax, eax
je case.0x46f18b.124
cmp dword [esp + 0x2c], 0
jl case.0x46f18b.124
mov eax, dword [esp + 0xc]
cmp ebx, dword [eax + 0x1c]
jne 0x46f54b
lea eax, [esp + 0x58]
push eax
push 0x4500c0
push ebx
call dword [sym.imp.USER32.dll_EnumChildWindows]
mov ebx, dword [esp + 0x70]
push ebx
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
mov ecx, 0x2af8
lea edx, [eax - 3]
mov eax, dword [esp + 0xc]
cmp edx, dword [eax + 0x5c]
mov ebx, dword [eax + 0x54]
cmovae edx, ecx
xor ecx, ecx
test ebx, ebx
jle 0x46f58a
mov eax, dword [eax + 0x4c]
add eax, 0xa
cmp dword [eax - 6], 5
jne 0x46f57e
cmp byte [eax], 0
je 0x46f5ce
inc ecx
add eax, 0xc
cmp ecx, ebx
jl 0x46f573
mov eax, dword [esp + 0xc]
cmp edx, 0x2af8
je case.0x46ebb9.158
mov eax, dword [eax + 0x2c]
xor ecx, ecx
mov eax, dword [eax + edx*4]
mov ebx, dword [eax + 0x28]
test ebx, ebx
jle case.0x46ebb9.158
mov eax, dword [eax + 0x20]
add eax, 0xa
nop
cmp dword [eax - 6], 5
jne 0x46f5bb
cmp byte [eax], 0
je 0x46f5ce
inc ecx
add eax, 0xc
cmp ecx, ebx
jl 0x46f5b0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov ecx, 0x105
cmp esi, 0xffffffff
mov eax, 5
cmove eax, ecx
shl edx, 0x10
push 0
or eax, edx
push eax
push 0x414
push edi
call dword [sym.imp.USER32.dll_PostMessageW]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp dword [0x4e7ca4], 0
jne case.0x46f18b.124
mov dword [0x4e7ca4], 2
jmp case.0x46f18b.124
cmp eax, 0x402
ja 0x46f74f
je 0x46f76f
sub eax, 0x212
je 0x46f743
sub eax, 0x21
jne case.0x46f18b.124
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4e98b4]
jne case.0x46f18b.124
mov edi, dword [ebp + 8]
push 0xffffffffffffffeb
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edi, eax
test edi, edi
je case.0x46f18b.124
cmp dword [edi + 0x34], 0
jne 0x46f695
mov edx, dword [edi + 0x54]
xor ecx, ecx
test edx, edx
jle 0x46f695
mov eax, dword [edi + 0x4c]
add eax, 0xa
cmp dword [eax - 6], 1
jne 0x46f68d
cmp byte [eax], 0
je 0x46f6a7
inc ecx
add eax, 0xc
cmp ecx, edx
jl 0x46f682
push ebx
call dword [sym.imp.SHELL32.dll_DragFinish]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 0x2c
lea eax, [esp + 0x30]
mov dword [edi + 0x34], ebx
push 0
push eax
mov dword [esp + 0x34], 0
call fcn.0049d5e0
add esp, 0xc
lea eax, [esp + 0x28]
push eax
push ebx
call dword [sym.imp.SHELL32.dll_DragQueryPoint]
mov esi, dword [ebp + 8]
lea eax, [esp + 0x28]
push eax
push esi
call dword [sym.imp.USER32.dll_ClientToScreen]
lea eax, [esp + 0x28]
push eax
push 0x4500c0
push esi
call dword [sym.imp.USER32.dll_EnumChildWindows]
mov eax, dword [esp + 0x40]
test eax, eax
je 0x46f71e
push eax
mov ecx, edi
call fcn.00401590
cmp eax, 0x2af8
je 0x46f71e
mov ecx, dword [edi + 0x2c]
mov eax, dword [ecx + eax*4]
test eax, eax
je 0x46f71e
push dword [eax + 0x18]
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
sub eax, 3
jmp 0x46f723
mov eax, 0x2af8
push 0
shl eax, 0x10
or eax, 1
push eax
push 0x414
push esi
call dword [sym.imp.USER32.dll_PostMessageW]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov dword [0x4e7ca4], 0
jmp case.0x46f18b.124
cmp eax, 0x414
je 0x46f76f
push esi
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_DefDlgProcW]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp dword [0x4e37f0], 0
je case.0x46ebb9.158
cmp dword [0x4e7ca4], 0
jne case.0x46ebb9.158
cmp dword [0x4e7cbc], 0
je 0x46f7ca
cmp byte [edx + 0x53], 0
jne 0x46f7ca
cmp dword [edx + 0x44], 0xffffffff
jle 0x46f7c4
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [0x4e37f8]
sub eax, dword [edx + 0x48]
cmp eax, dword [edx + 0x44]
jb 0x46f7c4
cmp dword [edx + 0x40], 0
je 0x46f7c4
cmp byte [edx + 0x96], 0
mov byte [edx + 0x53], 1
jne 0x46f7c4
mov dword [edx + 0x5c], 5
cmp byte [edx + 0x53], 0
je case.0x46ebb9.158
push esi
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_PostMessageW]
mov edx, 2
or ecx, 0xffffffff
call fcn.004015e0
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x10