Function at 0x46df50
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 0x46df6d
mov dword [esi], 0xffffffff
cmp word [edi], 0
jne 0x46dfe6
cmp word [edx], 0
jne 0x46dfe6
cmp dword [0x4e8d68], 0
jne 0x46dfd4
cmp dword [0x4e8d64], 0
jne 0x46dfa5
push 0x4b00
call fcn.0049ee1d
add esp, 4
mov dword [0x4e8d64], eax
test eax, eax
je 0x46e68a
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 0x46dfde
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 0x46e001
cmp dword [0x4e8d68], eax
jle 0x46e62a
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 0x46e059
push 0x1f
push edx
lea eax, [esp + 0x54]
push eax
call fcn.004aa2f4
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 0x46e075
cmp eax, 9
jne 0x46e07a
add edi, 2
jmp 0x46e068
test ax, ax
je 0x46e309
mov edx, edi
mov ecx, eax
cmp cx, 0x20
je 0x46e0a1
cmp cx, 9
je 0x46e0a1
movzx eax, word [edx + 2]
add edx, 2
mov ecx, eax
test ax, ax
jne 0x46e087
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.004aa2f4
add esp, 0xc
xor eax, eax
mov word [esp + esi*2 + 0xf8], ax
lea eax, [esp + 0xf8]
push str.Bold
push eax
call fcn.0049ed01
add esp, 8
test eax, eax
jne 0x46e0fd
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x40], 0x2bc
jmp 0x46e068
lea eax, [esp + 0xf8]
push str.italic
push eax
call fcn.0049ed01
add esp, 8
test eax, eax
jne 0x46e124
mov edi, dword [esp + 0x1c]
mov byte [esp + 0x44], 1
jmp 0x46e068
lea eax, [esp + 0xf8]
push str.norm
push eax
call fcn.0049ed01
add esp, 8
test eax, eax
jne 0x46e157
mov edi, dword [esp + 0x1c]
mov word [esp + 0x44], ax
mov byte [esp + 0x46], al
mov dword [esp + 0x40], 0x190
jmp 0x46e068
lea eax, [esp + 0xf8]
push str.underline
push eax
call fcn.0049ed01
add esp, 8
test eax, eax
jne 0x46e17e
mov edi, dword [esp + 0x1c]
mov byte [esp + 0x45], 1
jmp 0x46e068
lea eax, [esp + 0xf8]
push str.strike
push eax
call fcn.0049ed01
add esp, 8
test eax, eax
jne 0x46e1a5
mov edi, dword [esp + 0x1c]
mov byte [esp + 0x46], 1
jmp 0x46e068
mov esi, dword [esp + 0xf8]
lea eax, [esi - 0x61]
cmp ax, 0x19
ja 0x46e1bd
and esi, 0xffdf
jmp 0x46e1c0
movzx esi, si
cmp word [esp + 0xfa], 0
je case.0x46e215.68
push esi
push 0x4da494
call fcn.0049c891
add esp, 8
test eax, eax
je 0x46e1ff
push ecx
push 1
push 0
xor edx, edx
lea ecx, [esp + 0x106]
call fcn.004814b0
add esp, 0xc
test eax, eax
je case.0x46e215.68
movzx eax, si
add eax, 0xffffffbd
cmp eax, 0x14
ja case.0x46e215.68
movzx eax, byte [eax + 0x46e6b0]
jmp dword [eax*4 + 0x46e69c]
cmp word [esp + 0xfa], 0
jne 0x46e239
mov edi, dword [esp + 0x1c]
mov eax, 0xff000000
mov dword [esp + 0x18], eax
jmp 0x46e068
lea ecx, [esp + 0xfa]
call fcn.00482a10
mov dword [esp + 0x18], eax
cmp eax, 0xffffffff
jne 0x46e300
push 0x10
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x102]
push eax
call fcn.004a47ad
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 0x46e300
push 0
mov edx, edi
mov ecx, str.Invalid_option.
call fcn.0040dbf0
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0xfa]
call fcn.00481e30
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x40], eax
jmp 0x46e068
lea eax, [esp + 0xfa]
push eax
call fcn.004a8e92
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 0x46e068
lea ecx, [esp + 0xfa]
call fcn.00481e30
mov byte [esp + 0x4a], al
mov edi, dword [esp + 0x1c]
jmp 0x46e068
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x46e316
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 0x46e341
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.004aa2f4
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 0x482bd0
lea eax, [esp + 0xa4]
push eax
push esi
call dword [sym.imp.GDI32.dll_EnumFontFamiliesExW]
cmp byte [esp + 0x17], 0
jne 0x46e3b3
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 0x46e3a3
push esi
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [0x4e8d68]
xor edi, edi
test eax, eax
jle 0x46e44c
mov ecx, dword [0x4e8d64]
xor esi, esi
lea eax, [esp + 0x4c]
push eax
lea eax, [ecx + 0x1c]
add eax, esi
push eax
call fcn.0049ed01
mov ecx, dword [0x4e8d64]
add esp, 8
test eax, eax
jne 0x46e42b
mov eax, dword [esi + ecx]
cmp eax, dword [esp + 0x30]
jne 0x46e42b
mov eax, dword [esi + ecx + 0x10]
cmp eax, dword [esp + 0x40]
jne 0x46e42b
mov al, byte [esi + ecx + 0x14]
cmp al, byte [esp + 0x44]
jne 0x46e42b
mov al, byte [esi + ecx + 0x15]
cmp al, byte [esp + 0x45]
jne 0x46e42b
mov al, byte [esi + ecx + 0x16]
cmp al, byte [esp + 0x46]
jne 0x46e42b
mov al, byte [esi + ecx + 0x1a]
cmp al, byte [esp + 0x4a]
je 0x46e43a
mov eax, dword [0x4e8d68]
inc edi
add esi, 0x60
cmp edi, eax
jl 0x46e3d3
jmp 0x46e44c
cmp edi, 0xffffffff
je 0x46e447
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x4e8d68]
cmp eax, 0xc8
jl 0x46e532
mov ecx, dword [0x4e9574]
mov al, byte [0x4e9604]
test ecx, ecx
je 0x46e4cb
test al, al
je 0x46e4cb
mov eax, dword [0x4e37f8]
cmp dword [eax + 0x34], 0
jne 0x46e4a9
cmp dword [0x4e95ac], 0
jne 0x46e4a9
cmp byte [0x4e8ec6], 0
jne 0x46e4a9
push 0
push ecx
push 0x4cdea8
push 0
push str.Too_many_fonts.
mov ecx, 0x4e8f30
call fcn.0040d430
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.0040c250
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp byte [0x4e9607], 0
je 0x46e50f
test al, al
jne 0x46e50f
test ecx, ecx
je 0x46e4e5
movzx eax, word [ecx + 2]
mov ecx, dword [ecx + 4]
jmp 0x46e4f0
mov eax, dword [0x4e91ac]
mov ecx, dword [0x4e91b0]
push ecx
push eax
push 0x4cdea8
push str.Too_many_fonts.
mov ecx, 0x4e8f30
call fcn.0040c700
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.0040d430
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 0x46e633
mov ecx, dword [0x4e9574]
mov al, byte [0x4e9604]
test ecx, ecx
je 0x46e5cc
test al, al
je 0x46e5cc
mov eax, dword [0x4e37f8]
cmp dword [eax + 0x34], 0
jne 0x46e5aa
cmp dword [0x4e95ac], 0
jne 0x46e5aa
cmp byte [0x4e8ec6], 0
jne 0x46e5aa
push 0
push ecx
jmp 0x46e614
push 0
push 0
push ecx
push 0x4cdea8
push str.Cant_create_font.
mov ecx, 0x4e8f30
call fcn.0040c250
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp byte [0x4e9607], 0
je 0x46e610
test al, al
jne 0x46e610
test ecx, ecx
je 0x46e5e6
movzx eax, word [ecx + 2]
mov ecx, dword [ecx + 4]
jmp 0x46e5f1
mov eax, dword [0x4e91ac]
mov ecx, dword [0x4e91b0]
push ecx
push eax
push 0x4cdea8
push str.Cant_create_font.
mov ecx, 0x4e8f30
call fcn.0040c700
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.0040d430
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.0040da00
nop dword [eax]
sbb al, 0xe2
inc esi
add al, dh
loop 0x46e6e9
add bl, al
loop 0x46e6ed
add byte [edx - 0x6fffb91e], ch
loop 0x46e6f5
add byte [eax], 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
jp 0x46e73d
add byte [ebx + 0x56], dl
push esi
mov esi, dword [ebp + 0x14]
push edi
je 0x46e72c
cmp dword [edx + 0x4c], eax
inc edx
dec esp
jne 0x46e72c
mov byte [edx + 0x52], 0
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
cmp eax, 0x4e
ja 0x46f195
je 0x46eadf
add eax, 0xfffffffe
cmp eax, 0x29
ja case.0x46f1bb.124
movzx eax, byte [eax + 0x46f83c]
jmp dword [eax*4 + 0x46f820]
cmp dword [0x4e8f28], 0
je 0x46e6fd
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 0x46e75c
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 0x46e700
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4e98b4]
jne case.0x46f1bb.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.0x46f1bb.124
mov eax, dword [edx + 0x24]
cmp ebx, 1
sete cl
mov byte [edx + 0xc7], cl
test eax, eax
je 0x46e7bc
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 0x46e7d7
sub eax, 1
je 0x46e7d2
sub eax, 1
jne 0x46e7d9
lea ebx, [eax + 1]
jmp 0x46e7d9
or ebx, 0xffffffff
jmp 0x46e7d9
xor ebx, ebx
mov eax, dword [edx + 0x54]
xor ecx, ecx
mov dword [esp + 0x14], eax
test eax, eax
jle case.0x46ebe9.158
mov eax, dword [edx + 0x4c]
mov edx, dword [esp + 0x14]
add eax, 0xa
cmp dword [eax - 6], 4
jne 0x46e7ff
cmp byte [eax], 0
je 0x46e812
inc ecx
add eax, 0xc
cmp ecx, edx
jl 0x46e7f4
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.0x46f1bb.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.0x46f1bb.124
mov eax, dword [ecx + 0xac]
test eax, eax
js 0x46e872
mov dword [esi + 0x18], eax
mov edx, dword [ecx + 0xb0]
lea eax, [esi + 0x1c]
test edx, edx
js 0x46e881
mov dword [eax], edx
mov edx, dword [ecx + 0xb4]
test edx, edx
js 0x46e89b
mov edi, dword [esi + 0x18]
mov dword [esi + 0x20], edx
cmp edx, edi
jge 0x46e89b
mov dword [esi + 0x20], edi
lea eax, [esi + 0x1c]
mov ecx, dword [ecx + 0xb8]
test ecx, ecx
js case.0x46ebe9.158
mov eax, dword [eax]
mov dword [esi + 0x24], ecx
cmp ecx, eax
jge case.0x46ebe9.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.0x46f1bb.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.0x46f1bb.124
mov ecx, dword [esi + 4]
sub ecx, 3
cmp ecx, dword [edx + 0x5c]
jae case.0x46f1bb.124
mov eax, dword [edx + 0x2c]
mov ebx, dword [eax + ecx*4]
mov eax, dword [ebx + 0x18]
cmp eax, dword [esi + 0x14]
jne case.0x46f1bb.124
cmp byte [ebx + 0x30], 0x13
jne case.0x46f1bb.124
lea eax, [esp + 0xc]
mov ecx, edx
push eax
lea eax, [esp + 0x18]
push eax
push 1
push ebx
call fcn.00470350
mov ecx, dword [esp + 0x14]
lea eax, [esi + 0x1c]
lea edi, [esi + 0x18]
test ecx, ecx
je 0x46e958
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 0x46e970
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 0x46e9c3
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 0x46ea34
push 0
push 0
push 0x130b
push dword [ebx + 0x18]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp eax, dword [esi + 8]
je 0x46ea02
add dword [esi + 0x20], 3
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
jmp 0x46ea05
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 0x46ea14
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 0x46ea38
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
cmp eax, 0xffffffff
je case.0x46f1bb.124
push eax
push dword [ebx]
call dword [sym.imp.GDI32.dll_SetTextColor]
jmp case.0x46f1bb.124
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4e98b4]
jne case.0x46f1bb.124
mov edi, dword [ebp + 8]
push 0xffffffffffffffeb
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
test eax, eax
je case.0x46f1bb.124
cmp byte [eax + 0xc7], 0
jne case.0x46ebe9.158
jmp case.0x46f1bb.124
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4e98b4]
jne case.0x46f1bb.124
mov edi, dword [ebp + 8]
push 0xffffffffffffffeb
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
test eax, eax
je case.0x46f1bb.124
cmp byte [eax + 0xc4], 0
jne case.0x46f1bb.124
mov ecx, eax
mov byte [eax + 0xc4], 1
call fcn.00464cc0
jmp case.0x46f1bb.124
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4e98b4]
jne case.0x46f1bb.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.0x46f1bb.124
mov edi, dword [esi + 4]
test edi, edi
jne 0x46eb59
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 0x46eb3e
mov ecx, dword [ebx + 0x2c]
mov ecx, dword [ecx + edi*4]
cmp dword [ecx + 0x18], eax
je 0x46eb5c
push eax
call dword [sym.imp.USER32.dll_GetParent]
mov dword [esp + 0x10], eax
test eax, eax
je 0x46eb52
cmp eax, dword [ebx + 0x1c]
jne 0x46eb20
mov edi, 0x2af8
jmp 0x46eb5c
add edi, 0xfffffffd
cmp edi, dword [ebx + 0x5c]
jae case.0x46f1bb.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 0x46eb80
cmp dword [esi + 4], 0
jne case.0x46f1bb.124
lea eax, [esp + 0xc]
push eax
push esi
push ecx
mov ecx, ebx
call fcn.0046fed0
test al, al
je 0x46eb9f
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.0x46f1bb.124
movzx eax, byte [eax + 0x46f88c]
jmp dword [eax*4 + 0x46f868]
mov eax, dword [esi + 8]
add eax, 0xb0
cmp eax, 0xae
ja case.0x46f1bb.124
movzx eax, byte [eax + 0x46f8cc]
jmp dword [eax*4 + 0x46f89c]
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 0x46ecb2
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 0x46ecb2
mov eax, dword [ebx + 0x2c]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x28], 0
je 0x46ecb2
test byte [eax + 0x31], 0x20
jne 0x46ecb2
mov esi, dword [eax + 0x28]
xor ecx, ecx
mov dword [esp + 0x20], esi
cmp esi, ecx
mov esi, dword [ebp + 0x14]
jle 0x46ecb2
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 0x46ec81
cmp byte [eax], 0
je 0x46ec8d
inc ecx
add eax, 0xc
cmp ecx, dword [esp + 0x20]
jl 0x46ec70
jmp 0x46ecb2
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 0x46ed10
cmp edi, dword [ebx + 0x5c]
jae 0x46ed10
mov eax, dword [ebx + 0x2c]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x28], 0
je 0x46ed10
test byte [eax + 0x31], 0x20
jne 0x46ed10
mov edx, dword [eax + 0x28]
xor ecx, ecx
test edx, edx
jle 0x46ed10
mov eax, dword [eax + 0x20]
add eax, 0xa
nop dword [eax]
cmp dword [eax - 6], 0xc
jne 0x46eceb
cmp byte [eax], 0
je 0x46ecf5
inc ecx
add eax, 0xc
cmp ecx, edx
jl 0x46ece0
jmp 0x46ed10
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.0x46ebe9.158
test dword [esi + 0x18], 0xf000
je case.0x46ebe9.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.0x46ebe9.158
mov eax, dword [ebx + 0x2c]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x28], 0
je case.0x46ebe9.158
test byte [eax + 0x31], 0x20
jne case.0x46ebe9.158
mov edx, dword [eax + 0x28]
xor ecx, ecx
test edx, edx
jle case.0x46ebe9.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 0x46ed8b
cmp byte [eax], 0
je 0x46ed9e
inc ecx
add eax, 0xc
cmp ecx, edx
jl 0x46ed81
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.0x46f1bb.124
cmp byte [edx + 0x31], 0
jl case.0x46f1bb.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.0x46f1bb.124
push 0
push eax
mov eax, dword [esp + 0x24]
push 0x1076
push dword [eax + 0x18]
call edi
jmp case.0x46f1bb.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 0x46f08a
mov edx, dword [esi + 0x10]
mov ecx, dword [esp + 0x1c]
push 0
push 1
call fcn.004713b0
add esp, 8
mov ecx, ebx
push dword [esp + 0x10]
push 9
push dword [esi + 8]
push edi
call fcn.0046fc50
jmp case.0x46f1bb.124
cmp dword [esi + 0x20], 0
je case.0x46f1bb.124
mov eax, dword [esi + 0x10]
inc eax
push eax
jmp 0x46ef4d
mov ecx, dword [esi + 8]
mov eax, ecx
cmp eax, 0xffffffef
ja 0x46efaf
je case.0x46ebe9.158
add eax, 0x1cc
cmp eax, 0x3b
ja case.0x46f1bb.124
movzx eax, byte [eax + 0x46f99c]
jmp dword [eax*4 + 0x46f97c]
push dword [esi + 0x3c]
mov ecx, ebx
push 0xb
push dword [esi + 8]
push edi
call fcn.0046fc50
jmp case.0x46f1bb.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 0x46f081
cmp dword [esi + 0xc], 8
jne case.0x46f1bb.124
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x14]
xor eax, ecx
test eax, 0xf000
je case.0x46f1bb.124
mov eax, dword [esi + 0x10]
shr ecx, 4
and ecx, 0xf00
mov dword [esp + 0x10], eax
or ecx, 0xa
jmp 0x46f081
mov eax, dword [edx + 0x18]
mov dword [0x4e8d60], eax
jmp case.0x46f1bb.124
cmp dword [esi + 0x1c], 0
je case.0x46f1bb.124
push dword [esi + 0x10]
mov dword [0x4e8d60], 0
push 0xe
push dword [esi + 8]
mov ecx, ebx
push edi
call fcn.0046fc50
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp word [esi + 0xc], 0x71
jne case.0x46f1bb.124
cmp byte [edx + 0x31], 0
jl case.0x46f1bb.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.0x46f1bb.124
push eax
mov eax, dword [esp + 0x20]
push 0
push 0x1141
push dword [eax + 0x18]
call edi
jmp case.0x46f1bb.124
add eax, 0xc
cmp eax, 0xa
ja case.0x46f1bb.124
movzx eax, byte [eax + 0x46f9ec]
jmp dword [eax*4 + 0x46f9d8]
cmp ecx, 0xfffffffd
je 0x46efda
cmp ecx, 0xfffffffe
jne 0x46efe3
mov eax, 7
jmp 0x46efdf
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 0x46f081
mov eax, dword [esi + 8]
cmp eax, 0xfffffd09
je 0x46f0b6
cmp eax, 0xfffffff8
je case.0x46ebe9.8
cmp eax, 0xfffffff9
jne case.0x46f1bb.124
push 0
push 0xf
push dword [esi + 8]
mov ecx, ebx
push edi
call fcn.0046fc50
jmp case.0x46f1bb.124
push 0
push 0x10
push dword [esi + 8]
mov ecx, ebx
push edi
call fcn.0046fc50
jmp case.0x46f1bb.124
xor ecx, ecx
mov eax, 6
cmp dword [esi + 8], 0xfffffd13
cmovne eax, ecx
movzx ecx, ax
test cx, cx
je case.0x46f1bb.124
push dword [esp + 0x10]
push ecx
push dword [esi + 8]
mov ecx, ebx
push edi
call fcn.0046fc50
jmp case.0x46f1bb.124
cmp dword [esi + 8], 0xfffffdd9
jne case.0x46f1bb.124
push 1
push edx
mov ecx, ebx
call fcn.004704c0
push 0
push 6
push dword [esi + 8]
mov ecx, ebx
push edi
call fcn.0046fc50
jmp case.0x46f1bb.124
mov eax, dword [esi + 8]
cmp eax, 0xfffffffe
je 0x46f0db
cmp eax, 0xfffffffc
jne case.0x46f1bb.124
cmp word [esi + 0x7c], 0
lea eax, [esi + 0x7c]
je 0x46f13a
mov esi, dword [edx + 0x28]
xor ecx, ecx
mov dword [esp + 0x28], esi
cmp esi, ecx
mov esi, dword [ebp + 0x14]
jle 0x46f116
mov eax, dword [edx + 0x20]
mov edx, dword [esp + 0x28]
add eax, 0xa
nop
cmp dword [eax - 6], 7
jne 0x46f10b
cmp byte [eax], 0
je 0x46f13a
inc ecx
add eax, 0xc
cmp ecx, edx
jl 0x46f100
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.0044d330
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.0046fc50
jmp case.0x46f1bb.124
mov eax, dword [esi + 8]
add eax, 6
cmp eax, 4
ja case.0x46f1bb.124
jmp dword [eax*4 + 0x46f9f8]
mov eax, dword [esi + 0xc]
mov ecx, ebx
inc eax
push eax
push 7
push dword [esi + 8]
push edi
call fcn.0046fc50
jmp case.0x46f1bb.124
mov eax, dword [esi + 0xc]
mov ecx, ebx
inc eax
push eax
push 8
push dword [esi + 8]
push edi
call fcn.0046fc50
jmp case.0x46f1bb.124
cmp eax, 0x211
ja 0x46f649
je 0x46f62d
add eax, 0xffffff85
cmp eax, 0xbd
ja case.0x46f1bb.124
movzx eax, byte [eax + 0x46fa28]
jmp dword [eax*4 + 0x46fa0c]
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4e98b4]
jne case.0x46f1bb.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.0x46f1bb.124
movzx ecx, bx
mov eax, ecx
cmp eax, 2
jne 0x46f24e
mov esi, dword [edx + 0x54]
xor ecx, ecx
test esi, esi
jle case.0x46ebe9.158
mov eax, dword [edx + 0x4c]
add eax, 0xa
nop
cmp dword [eax - 6], 3
jne 0x46f21b
cmp byte [eax], 0
je 0x46f22e
inc ecx
add eax, 0xc
cmp ecx, esi
jl 0x46f210
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 0x46f26f
push dword [edx + 0x1c]
mov edx, ecx
mov ecx, edi
call fcn.0044ee90
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.0x46f1bb.124
mov eax, dword [edx + 0x2c]
mov eax, dword [eax + ecx*4]
cmp dword [eax + 0x18], esi
jne case.0x46f1bb.124
push 0
push 0x11
mov eax, ebx
shr eax, 0x10
push eax
push ecx
mov ecx, edx
call fcn.0046fc50
jmp case.0x46f1bb.124
cmp ebx, 0xf060
jne case.0x46f1bb.124
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4e98b4]
jne case.0x46f1bb.124
mov edi, dword [ebp + 8]
push 0xffffffffffffffeb
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
test eax, eax
je case.0x46f1bb.124
mov ecx, eax
call fcn.0046d340
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.0x46f1bb.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.0x46f1bb.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.0046fc50
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.0x46f1bb.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.0x46f1bb.124
cmp dword [edi + 0x30], 0
je case.0x46f1bb.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.0x46f1bb.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.0x46f1bb.124
push esi
mov ecx, edi
call fcn.00401590
cmp eax, 0x2af8
je case.0x46f1bb.124
mov ecx, dword [edi + 0x2c]
mov edi, dword [ecx + eax*4]
test edi, edi
je case.0x46f1bb.124
cmp byte [edi + 0x30], 2
je 0x46f3fe
mov eax, dword [edi + 0x3c]
cmp eax, 0xff000000
je 0x46f3fe
mov byte [esp + 0x1b], 1
jmp 0x46f40b
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 0x46f436
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 0x46f451
movzx eax, byte [edi + 0x30]
mov byte [esp + 0x14], 1
test byte [eax + 0x4da4ec], 0x40
jne 0x46f456
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.00470350
mov edi, dword [esp + 0x24]
test edi, edi
je 0x46f48c
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.0x46f1bb.124
cmp dword [ebp + 0xc], 0x138
mov eax, dword [sym.imp.USER32.dll_GetSysColor]
jne 0x46f4c2
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.0x46f1bb.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.0x46f1bb.124
cmp esi, 0xffffffff
je 0x46f57b
push 0x2c
lea eax, [esp + 0x60]
push 0
push eax
call fcn.0049d610
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.0x46f1bb.124
cmp dword [esp + 0x2c], 0
jl case.0x46f1bb.124
mov eax, dword [esp + 0xc]
cmp ebx, dword [eax + 0x1c]
jne 0x46f57b
lea eax, [esp + 0x58]
push eax
push 0x450090
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 0x46f5ba
mov eax, dword [eax + 0x4c]
add eax, 0xa
cmp dword [eax - 6], 5
jne 0x46f5ae
cmp byte [eax], 0
je 0x46f5fe
inc ecx
add eax, 0xc
cmp ecx, ebx
jl 0x46f5a3
mov eax, dword [esp + 0xc]
cmp edx, 0x2af8
je case.0x46ebe9.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.0x46ebe9.158
mov eax, dword [eax + 0x20]
add eax, 0xa
nop
cmp dword [eax - 6], 5
jne 0x46f5eb
cmp byte [eax], 0
je 0x46f5fe
inc ecx
add eax, 0xc
cmp ecx, ebx
jl 0x46f5e0
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.0x46f1bb.124
mov dword [0x4e7ca4], 2
jmp case.0x46f1bb.124
cmp eax, 0x402
ja 0x46f77f
je 0x46f79f
sub eax, 0x212
je 0x46f773
sub eax, 0x21
jne case.0x46f1bb.124
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4e98b4]
jne case.0x46f1bb.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.0x46f1bb.124
cmp dword [edi + 0x34], 0
jne 0x46f6c5
mov edx, dword [edi + 0x54]
xor ecx, ecx
test edx, edx
jle 0x46f6c5
mov eax, dword [edi + 0x4c]
add eax, 0xa
cmp dword [eax - 6], 1
jne 0x46f6bd
cmp byte [eax], 0
je 0x46f6d7
inc ecx
add eax, 0xc
cmp ecx, edx
jl 0x46f6b2
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.0049d610
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 0x450090
push esi
call dword [sym.imp.USER32.dll_EnumChildWindows]
mov eax, dword [esp + 0x40]
test eax, eax
je 0x46f74e
push eax
mov ecx, edi
call fcn.00401590
cmp eax, 0x2af8
je 0x46f74e
mov ecx, dword [edi + 0x2c]
mov eax, dword [ecx + eax*4]
test eax, eax
je 0x46f74e
push dword [eax + 0x18]
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
sub eax, 3
jmp 0x46f753
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.0x46f1bb.124
cmp eax, 0x414
je 0x46f79f
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.0x46ebe9.158
cmp dword [0x4e7ca4], 0
jne case.0x46ebe9.158
cmp dword [0x4e7cbc], 0
je 0x46f7fa
cmp byte [edx + 0x53], 0
jne 0x46f7fa
cmp dword [edx + 0x44], 0xffffffff
jle 0x46f7f4
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [0x4e37f8]
sub eax, dword [edx + 0x48]
cmp eax, dword [edx + 0x44]
jb 0x46f7f4
cmp dword [edx + 0x40], 0
je 0x46f7f4
cmp byte [edx + 0x96], 0
mov byte [edx + 0x53], 1
jne 0x46f7f4
mov dword [edx + 0x5c], 5
cmp byte [edx + 0x53], 0
je case.0x46ebe9.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