Function at 0x46e0b0
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 0x46e0cd
mov dword [esi], 0xffffffff
cmp word [edi], 0
jne 0x46e146
cmp word [edx], 0
jne 0x46e146
cmp dword [0x4e9d68], 0
jne 0x46e134
cmp dword [0x4e9d64], 0
jne 0x46e105
push 0x4b00
call fcn.0049efdd
add esp, 4
mov dword [0x4e9d64], eax
test eax, eax
je 0x46e7ec
push 0x11
call dword [sym.imp.GDI32.dll_GetStockObject]
mov ecx, dword [0x4e9d68]
lea edx, [ecx + ecx*2]
mov ecx, dword [0x4e9d64]
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 [0x4e9d68]
test esi, esi
je 0x46e13e
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 0x46e161
cmp dword [0x4e9d68], eax
jle 0x46e78c
mov eax, dword [0x4e9d64]
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 0x46e1b9
push 0x1f
push edx
lea eax, [esp + 0x54]
push eax
call fcn.004aa4b4
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 0x46e1d5
cmp eax, 9
jne 0x46e1da
add edi, 2
jmp 0x46e1c8
test ax, ax
je 0x46e469
mov edx, edi
mov ecx, eax
cmp cx, 0x20
je 0x46e201
cmp cx, 9
je 0x46e201
movzx eax, word [edx + 2]
add edx, 2
mov ecx, eax
test ax, ax
jne 0x46e1e7
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.004aa4b4
add esp, 0xc
xor eax, eax
mov word [esp + esi*2 + 0xf8], ax
lea eax, [esp + 0xf8]
push str.Bold
push eax
call fcn.0049eec1
add esp, 8
test eax, eax
jne 0x46e25d
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x40], 0x2bc
jmp 0x46e1c8
lea eax, [esp + 0xf8]
push str.italic
push eax
call fcn.0049eec1
add esp, 8
test eax, eax
jne 0x46e284
mov edi, dword [esp + 0x1c]
mov byte [esp + 0x44], 1
jmp 0x46e1c8
lea eax, [esp + 0xf8]
push str.norm
push eax
call fcn.0049eec1
add esp, 8
test eax, eax
jne 0x46e2b7
mov edi, dword [esp + 0x1c]
mov word [esp + 0x44], ax
mov byte [esp + 0x46], al
mov dword [esp + 0x40], 0x190
jmp 0x46e1c8
lea eax, [esp + 0xf8]
push str.underline
push eax
call fcn.0049eec1
add esp, 8
test eax, eax
jne 0x46e2de
mov edi, dword [esp + 0x1c]
mov byte [esp + 0x45], 1
jmp 0x46e1c8
lea eax, [esp + 0xf8]
push str.strike
push eax
call fcn.0049eec1
add esp, 8
test eax, eax
jne 0x46e305
mov edi, dword [esp + 0x1c]
mov byte [esp + 0x46], 1
jmp 0x46e1c8
mov esi, dword [esp + 0xf8]
lea eax, [esi - 0x61]
cmp ax, 0x19
ja 0x46e31d
and esi, 0xffdf
jmp 0x46e320
movzx esi, si
cmp word [esp + 0xfa], 0
je case.0x46e375.68
push esi
push 0x4db494
call fcn.0049ca51
add esp, 8
test eax, eax
je 0x46e35f
push ecx
push 1
push 0
xor edx, edx
lea ecx, [esp + 0x106]
call fcn.00481620
add esp, 0xc
test eax, eax
je case.0x46e375.68
movzx eax, si
add eax, 0xffffffbd
cmp eax, 0x14
ja case.0x46e375.68
movzx eax, byte [eax + 0x46e810]
jmp dword [eax*4 + 0x46e7fc]
cmp word [esp + 0xfa], 0
jne 0x46e399
mov edi, dword [esp + 0x1c]
mov eax, 0xff000000
mov dword [esp + 0x18], eax
jmp 0x46e1c8
lea ecx, [esp + 0xfa]
call fcn.00482b80
mov dword [esp + 0x18], eax
cmp eax, 0xffffffff
jne 0x46e460
push 0x10
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x102]
push eax
call fcn.004a496d
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 0x46e460
push 0
mov edx, edi
mov ecx, str.Invalid_option.
call fcn.0040dc20
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0xfa]
call fcn.00481fa0
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x40], eax
jmp 0x46e1c8
lea eax, [esp + 0xfa]
push eax
call fcn.004a9052
fadd qword [0x4dc958]
mov edi, dword [esp + 0x20]
add esp, 4
fstp qword [esp + 0x20]
cvttsd2si eax, qword [esp + 0x20]
mov dword [esp + 0x20], eax
jmp 0x46e1c8
lea ecx, [esp + 0xfa]
call fcn.00481fa0
mov byte [esp + 0x4a], al
mov edi, dword [esp + 0x1c]
jmp 0x46e1c8
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x46e476
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 0x46e4a1
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.004aa4b4
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 0x482d40
lea eax, [esp + 0xa4]
push eax
push esi
call dword [sym.imp.GDI32.dll_EnumFontFamiliesExW]
cmp byte [esp + 0x17], 0
jne 0x46e513
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 0x46e503
push esi
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [0x4e9d68]
xor edi, edi
test eax, eax
jle 0x46e5ac
mov ecx, dword [0x4e9d64]
xor esi, esi
lea eax, [esp + 0x4c]
push eax
lea eax, [ecx + 0x1c]
add eax, esi
push eax
call fcn.0049eec1
mov ecx, dword [0x4e9d64]
add esp, 8
test eax, eax
jne 0x46e58b
mov eax, dword [esi + ecx]
cmp eax, dword [esp + 0x30]
jne 0x46e58b
mov eax, dword [esi + ecx + 0x10]
cmp eax, dword [esp + 0x40]
jne 0x46e58b
mov al, byte [esi + ecx + 0x14]
cmp al, byte [esp + 0x44]
jne 0x46e58b
mov al, byte [esi + ecx + 0x15]
cmp al, byte [esp + 0x45]
jne 0x46e58b
mov al, byte [esi + ecx + 0x16]
cmp al, byte [esp + 0x46]
jne 0x46e58b
mov al, byte [esi + ecx + 0x1a]
cmp al, byte [esp + 0x4a]
je 0x46e59a
mov eax, dword [0x4e9d68]
inc edi
add esi, 0x60
cmp edi, eax
jl 0x46e533
jmp 0x46e5ac
cmp edi, 0xffffffff
je 0x46e5a7
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x4e9d68]
cmp eax, 0xc8
jl 0x46e693
mov ecx, dword [0x4ea574]
mov al, byte [0x4ea604]
test ecx, ecx
je 0x46e638
test al, al
je 0x46e638
cmp byte [0x4e9f15], 0
jne 0x46e78c
mov eax, dword [0x4e47f8]
cmp dword [eax + 0x34], 0
jne 0x46e616
cmp dword [0x4ea5ac], 0
jne 0x46e616
cmp byte [0x4e9ec6], 0
jne 0x46e616
push 0
push ecx
push 0x4ceea8
push 0
push str.Too_many_fonts.
mov ecx, 0x4e9f30
call fcn.0040d480
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push 0
push 0
push ecx
push 0x4ceea8
push str.Too_many_fonts.
mov ecx, 0x4e9f30
call fcn.0040c290
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp byte [0x4ea607], 0
je 0x46e670
test al, al
jne 0x46e670
push dword [0x4ea1b0]
movzx eax, word [0x4ea1ac]
mov ecx, 0x4e9f30
push eax
push 0x4ceea8
push str.Too_many_fonts.
call fcn.0040c740
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push 0
push 0
push 0x4ceea8
push 0
push str.Too_many_fonts.
mov ecx, 0x4e9f30
call fcn.0040d480
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 0x46e795
mov ecx, dword [0x4ea574]
mov al, byte [0x4ea604]
test ecx, ecx
je 0x46e73a
test al, al
je 0x46e73a
cmp byte [0x4e9f15], 0
jne 0x46e78c
mov eax, dword [0x4e47f8]
cmp dword [eax + 0x34], 0
jne 0x46e718
cmp dword [0x4ea5ac], 0
jne 0x46e718
cmp byte [0x4e9ec6], 0
jne 0x46e718
push 0
push ecx
jmp 0x46e776
push 0
push 0
push ecx
push 0x4ceea8
push str.Cant_create_font.
mov ecx, 0x4e9f30
call fcn.0040c290
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp byte [0x4ea607], 0
je 0x46e772
test al, al
jne 0x46e772
push dword [0x4ea1b0]
movzx eax, word [0x4ea1ac]
mov ecx, 0x4e9f30
push eax
push 0x4ceea8
push str.Cant_create_font.
call fcn.0040c740
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push 0
push 0
push 0x4ceea8
push 0
push str.Cant_create_font.
mov ecx, 0x4e9f30
call fcn.0040d480
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x4e9d68]
movups xmm0, xmmword [esp + 0x30]
pop edi
pop esi
lea eax, [ecx + ecx*2]
shl eax, 5
add eax, dword [0x4e9d64]
inc ecx
mov dword [0x4e9d68], 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 0x4ceea8
push str.Out_of_memory.
call fcn.0040da30
nop
jl 0x46e7e1
inc esi
add byte [eax - 0x1c], dl
inc esi
add byte [ebx], ah
in al, 0x46
add byte [edx], cl
in al, 0x46
add al, dh
jecxz 0x46e855
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
inc edx
dec esp
jne 0x46e88c
mov byte [edx + 0x52], 0
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
cmp eax, 0x4e
ja 0x46f2f5
je 0x46ec3f
add eax, 0xfffffffe
cmp eax, 0x29
ja case.0x46f31b.124
movzx eax, byte [eax + 0x46f99c]
jmp dword [eax*4 + 0x46f980]
cmp dword [0x4e9f28], 0
je 0x46e85d
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 0x46e8bc
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov edx, dword [0x4e47f8]
mov ecx, dword [ebp + 8]
jmp 0x46e860
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4ea8b4]
jne case.0x46f31b.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.0x46f31b.124
mov eax, dword [edx + 0x24]
cmp ebx, 1
sete cl
mov byte [edx + 0xc7], cl
test eax, eax
je 0x46e91c
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 0x46e937
sub eax, 1
je 0x46e932
sub eax, 1
jne 0x46e939
lea ebx, [eax + 1]
jmp 0x46e939
or ebx, 0xffffffff
jmp 0x46e939
xor ebx, ebx
mov eax, dword [edx + 0x54]
xor ecx, ecx
mov dword [esp + 0x14], eax
test eax, eax
jle case.0x46ed49.158
mov eax, dword [edx + 0x4c]
mov edx, dword [esp + 0x14]
add eax, 0xa
cmp dword [eax - 6], 4
jne 0x46e95f
cmp byte [eax], 0
je 0x46e972
inc ecx
add eax, 0xc
cmp ecx, edx
jl 0x46e954
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 [0x4ea8b4]
jne case.0x46f31b.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.0x46f31b.124
mov eax, dword [ecx + 0xac]
test eax, eax
js 0x46e9d2
mov dword [esi + 0x18], eax
mov edx, dword [ecx + 0xb0]
lea eax, [esi + 0x1c]
test edx, edx
js 0x46e9e1
mov dword [eax], edx
mov edx, dword [ecx + 0xb4]
test edx, edx
js 0x46e9fb
mov edi, dword [esi + 0x18]
mov dword [esi + 0x20], edx
cmp edx, edi
jge 0x46e9fb
mov dword [esi + 0x20], edi
lea eax, [esi + 0x1c]
mov ecx, dword [ecx + 0xb8]
test ecx, ecx
js case.0x46ed49.158
mov eax, dword [eax]
mov dword [esi + 0x24], ecx
cmp ecx, eax
jge case.0x46ed49.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 [0x4ea8b4]
jne case.0x46f31b.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.0x46f31b.124
mov ecx, dword [esi + 4]
sub ecx, 3
cmp ecx, dword [edx + 0x5c]
jae case.0x46f31b.124
mov eax, dword [edx + 0x2c]
mov ebx, dword [eax + ecx*4]
mov eax, dword [ebx + 0x18]
cmp eax, dword [esi + 0x14]
jne case.0x46f31b.124
cmp byte [ebx + 0x30], 0x13
jne case.0x46f31b.124
lea eax, [esp + 0xc]
mov ecx, edx
push eax
lea eax, [esp + 0x18]
push eax
push 1
push ebx
call fcn.004704b0
mov ecx, dword [esp + 0x14]
lea eax, [esi + 0x1c]
lea edi, [esi + 0x18]
test ecx, ecx
je 0x46eab8
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 0x46ead0
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 0x46eb23
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 0x46eb94
push 0
push 0
push 0x130b
push dword [ebx + 0x18]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp eax, dword [esi + 8]
je 0x46eb62
add dword [esi + 0x20], 3
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
jmp 0x46eb65
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 0x46eb74
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 0x46eb98
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
cmp eax, 0xffffffff
je case.0x46f31b.124
push eax
push dword [ebx]
call dword [sym.imp.GDI32.dll_SetTextColor]
jmp case.0x46f31b.124
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4ea8b4]
jne case.0x46f31b.124
mov edi, dword [ebp + 8]
push 0xffffffffffffffeb
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
test eax, eax
je case.0x46f31b.124
cmp byte [eax + 0xc7], 0
jne case.0x46ed49.158
jmp case.0x46f31b.124
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4ea8b4]
jne case.0x46f31b.124
mov edi, dword [ebp + 8]
push 0xffffffffffffffeb
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
test eax, eax
je case.0x46f31b.124
cmp byte [eax + 0xc4], 0
jne case.0x46f31b.124
mov ecx, eax
mov byte [eax + 0xc4], 1
call fcn.00464dc0
jmp case.0x46f31b.124
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4ea8b4]
jne case.0x46f31b.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.0x46f31b.124
mov edi, dword [esi + 4]
test edi, edi
jne 0x46ecb9
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 0x46ec9e
mov ecx, dword [ebx + 0x2c]
mov ecx, dword [ecx + edi*4]
cmp dword [ecx + 0x18], eax
je 0x46ecbc
push eax
call dword [sym.imp.USER32.dll_GetParent]
mov dword [esp + 0x10], eax
test eax, eax
je 0x46ecb2
cmp eax, dword [ebx + 0x1c]
jne 0x46ec80
mov edi, 0x2af8
jmp 0x46ecbc
add edi, 0xfffffffd
cmp edi, dword [ebx + 0x5c]
jae case.0x46f31b.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 0x46ece0
cmp dword [esi + 4], 0
jne case.0x46f31b.124
lea eax, [esp + 0xc]
push eax
push esi
push ecx
mov ecx, ebx
call fcn.00470030
test al, al
je 0x46ecff
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.0x46f31b.124
movzx eax, byte [eax + 0x46f9ec]
jmp dword [eax*4 + 0x46f9c8]
mov eax, dword [esi + 8]
add eax, 0xb0
cmp eax, 0xae
ja case.0x46f31b.124
movzx eax, byte [eax + 0x46fa2c]
jmp dword [eax*4 + 0x46f9fc]
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 0x46ee12
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 0x46ee12
mov eax, dword [ebx + 0x2c]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x28], 0
je 0x46ee12
test byte [eax + 0x31], 0x20
jne 0x46ee12
mov esi, dword [eax + 0x28]
xor ecx, ecx
mov dword [esp + 0x20], esi
cmp esi, ecx
mov esi, dword [ebp + 0x14]
jle 0x46ee12
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 0x46ede1
cmp byte [eax], 0
je 0x46eded
inc ecx
add eax, 0xc
cmp ecx, dword [esp + 0x20]
jl 0x46edd0
jmp 0x46ee12
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 0x46ee70
cmp edi, dword [ebx + 0x5c]
jae 0x46ee70
mov eax, dword [ebx + 0x2c]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x28], 0
je 0x46ee70
test byte [eax + 0x31], 0x20
jne 0x46ee70
mov edx, dword [eax + 0x28]
xor ecx, ecx
test edx, edx
jle 0x46ee70
mov eax, dword [eax + 0x20]
add eax, 0xa
nop dword [eax]
cmp dword [eax - 6], 0xc
jne 0x46ee4b
cmp byte [eax], 0
je 0x46ee55
inc ecx
add eax, 0xc
cmp ecx, edx
jl 0x46ee40
jmp 0x46ee70
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.0x46ed49.158
test dword [esi + 0x18], 0xf000
je case.0x46ed49.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.0x46ed49.158
mov eax, dword [ebx + 0x2c]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x28], 0
je case.0x46ed49.158
test byte [eax + 0x31], 0x20
jne case.0x46ed49.158
mov edx, dword [eax + 0x28]
xor ecx, ecx
test edx, edx
jle case.0x46ed49.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 0x46eeeb
cmp byte [eax], 0
je 0x46eefe
inc ecx
add eax, 0xc
cmp ecx, edx
jl 0x46eee1
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.0x46f31b.124
cmp byte [edx + 0x31], 0
jl case.0x46f31b.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.0x46f31b.124
push 0
push eax
mov eax, dword [esp + 0x24]
push 0x1076
push dword [eax + 0x18]
call edi
jmp case.0x46f31b.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 0x46f1ea
mov edx, dword [esi + 0x10]
mov ecx, dword [esp + 0x1c]
push 0
push 1
call fcn.00471510
add esp, 8
mov ecx, ebx
push dword [esp + 0x10]
push 9
push dword [esi + 8]
push edi
call fcn.0046fdb0
jmp case.0x46f31b.124
cmp dword [esi + 0x20], 0
je case.0x46f31b.124
mov eax, dword [esi + 0x10]
inc eax
push eax
jmp 0x46f0ad
mov ecx, dword [esi + 8]
mov eax, ecx
cmp eax, 0xffffffef
ja 0x46f10f
je case.0x46ed49.158
add eax, 0x1cc
cmp eax, 0x3b
ja case.0x46f31b.124
movzx eax, byte [eax + 0x46fafc]
jmp dword [eax*4 + 0x46fadc]
push dword [esi + 0x3c]
mov ecx, ebx
push 0xb
push dword [esi + 8]
push edi
call fcn.0046fdb0
jmp case.0x46f31b.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 0x46f1e1
cmp dword [esi + 0xc], 8
jne case.0x46f31b.124
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x14]
xor eax, ecx
test eax, 0xf000
je case.0x46f31b.124
mov eax, dword [esi + 0x10]
shr ecx, 4
and ecx, 0xf00
mov dword [esp + 0x10], eax
or ecx, 0xa
jmp 0x46f1e1
mov eax, dword [edx + 0x18]
mov dword [0x4e9d60], eax
jmp case.0x46f31b.124
cmp dword [esi + 0x1c], 0
je case.0x46f31b.124
push dword [esi + 0x10]
mov dword [0x4e9d60], 0
push 0xe
push dword [esi + 8]
mov ecx, ebx
push edi
call fcn.0046fdb0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp word [esi + 0xc], 0x71
jne case.0x46f31b.124
cmp byte [edx + 0x31], 0
jl case.0x46f31b.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.0x46f31b.124
push eax
mov eax, dword [esp + 0x20]
push 0
push 0x1141
push dword [eax + 0x18]
call edi
jmp case.0x46f31b.124
add eax, 0xc
cmp eax, 0xa
ja case.0x46f31b.124
movzx eax, byte [eax + 0x46fb4c]
jmp dword [eax*4 + 0x46fb38]
cmp ecx, 0xfffffffd
je 0x46f13a
cmp ecx, 0xfffffffe
jne 0x46f143
mov eax, 7
jmp 0x46f13f
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 0x46f1e1
mov eax, dword [esi + 8]
cmp eax, 0xfffffd09
je 0x46f216
cmp eax, 0xfffffff8
je case.0x46ed49.8
cmp eax, 0xfffffff9
jne case.0x46f31b.124
push 0
push 0xf
push dword [esi + 8]
mov ecx, ebx
push edi
call fcn.0046fdb0
jmp case.0x46f31b.124
push 0
push 0x10
push dword [esi + 8]
mov ecx, ebx
push edi
call fcn.0046fdb0
jmp case.0x46f31b.124
xor ecx, ecx
mov eax, 6
cmp dword [esi + 8], 0xfffffd13
cmovne eax, ecx
movzx ecx, ax
test cx, cx
je case.0x46f31b.124
push dword [esp + 0x10]
push ecx
push dword [esi + 8]
mov ecx, ebx
push edi
call fcn.0046fdb0
jmp case.0x46f31b.124
cmp dword [esi + 8], 0xfffffdd9
jne case.0x46f31b.124
push 1
push edx
mov ecx, ebx
call fcn.00470620
push 0
push 6
push dword [esi + 8]
mov ecx, ebx
push edi
call fcn.0046fdb0
jmp case.0x46f31b.124
mov eax, dword [esi + 8]
cmp eax, 0xfffffffe
je 0x46f23b
cmp eax, 0xfffffffc
jne case.0x46f31b.124
cmp word [esi + 0x7c], 0
lea eax, [esi + 0x7c]
je 0x46f29a
mov esi, dword [edx + 0x28]
xor ecx, ecx
mov dword [esp + 0x28], esi
cmp esi, ecx
mov esi, dword [ebp + 0x14]
jle 0x46f276
mov eax, dword [edx + 0x20]
mov edx, dword [esp + 0x28]
add eax, 0xa
nop
cmp dword [eax - 6], 7
jne 0x46f26b
cmp byte [eax], 0
je 0x46f29a
inc ecx
add eax, 0xc
cmp ecx, edx
jl 0x46f260
lea eax, [esi + 0x7c]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push eax
mov ecx, 0x4e9f30
call fcn.0044d2d0
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.0046fdb0
jmp case.0x46f31b.124
mov eax, dword [esi + 8]
add eax, 6
cmp eax, 4
ja case.0x46f31b.124
jmp dword [eax*4 + 0x46fb58]
mov eax, dword [esi + 0xc]
mov ecx, ebx
inc eax
push eax
push 7
push dword [esi + 8]
push edi
call fcn.0046fdb0
jmp case.0x46f31b.124
mov eax, dword [esi + 0xc]
mov ecx, ebx
inc eax
push eax
push 8
push dword [esi + 8]
push edi
call fcn.0046fdb0
jmp case.0x46f31b.124
cmp eax, 0x211
ja 0x46f7a9
je 0x46f78d
add eax, 0xffffff85
cmp eax, 0xbd
ja case.0x46f31b.124
movzx eax, byte [eax + 0x46fb88]
jmp dword [eax*4 + 0x46fb6c]
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4ea8b4]
jne case.0x46f31b.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.0x46f31b.124
movzx ecx, bx
mov eax, ecx
cmp eax, 2
jne 0x46f3ae
mov esi, dword [edx + 0x54]
xor ecx, ecx
test esi, esi
jle case.0x46ed49.158
mov eax, dword [edx + 0x4c]
add eax, 0xa
nop
cmp dword [eax - 6], 3
jne 0x46f37b
cmp byte [eax], 0
je 0x46f38e
inc ecx
add eax, 0xc
cmp ecx, esi
jl 0x46f370
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 0x46f3cf
push dword [edx + 0x1c]
mov edx, ecx
mov ecx, edi
call fcn.0044efc0
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.0x46f31b.124
mov eax, dword [edx + 0x2c]
mov eax, dword [eax + ecx*4]
cmp dword [eax + 0x18], esi
jne case.0x46f31b.124
push 0
push 0x11
mov eax, ebx
shr eax, 0x10
push eax
push ecx
mov ecx, edx
call fcn.0046fdb0
jmp case.0x46f31b.124
cmp ebx, 0xf060
jne case.0x46f31b.124
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4ea8b4]
jne case.0x46f31b.124
mov edi, dword [ebp + 8]
push 0xffffffffffffffeb
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
test eax, eax
je case.0x46f31b.124
mov ecx, eax
call fcn.0046d4a0
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 [0x4ea8b4]
jne case.0x46f31b.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.0x46f31b.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.0046fdb0
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 [0x4ea8b4]
jne case.0x46f31b.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.0x46f31b.124
cmp dword [edi + 0x30], 0
je case.0x46f31b.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 [0x4ea8b4]
jne case.0x46f31b.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.0x46f31b.124
push esi
mov ecx, edi
call fcn.00401590
cmp eax, 0x2af8
je case.0x46f31b.124
mov ecx, dword [edi + 0x2c]
mov edi, dword [ecx + eax*4]
test edi, edi
je case.0x46f31b.124
cmp byte [edi + 0x30], 2
je 0x46f55e
mov eax, dword [edi + 0x3c]
cmp eax, 0xff000000
je 0x46f55e
mov byte [esp + 0x1b], 1
jmp 0x46f56b
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 0x46f596
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 0x46f5b1
movzx eax, byte [edi + 0x30]
mov byte [esp + 0x14], 1
test byte [eax + 0x4db4ec], 0x40
jne 0x46f5b6
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.004704b0
mov edi, dword [esp + 0x24]
test edi, edi
je 0x46f5ec
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.0x46f31b.124
cmp dword [ebp + 0xc], 0x138
mov eax, dword [sym.imp.USER32.dll_GetSysColor]
jne 0x46f622
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 [0x4ea8b4]
jne case.0x46f31b.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.0x46f31b.124
cmp esi, 0xffffffff
je 0x46f6db
push 0x2c
lea eax, [esp + 0x60]
push 0
push eax
call fcn.0049d7d0
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.0x46f31b.124
cmp dword [esp + 0x2c], 0
jl case.0x46f31b.124
mov eax, dword [esp + 0xc]
cmp ebx, dword [eax + 0x1c]
jne 0x46f6db
lea eax, [esp + 0x58]
push eax
push 0x4501c0
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 0x46f71a
mov eax, dword [eax + 0x4c]
add eax, 0xa
cmp dword [eax - 6], 5
jne 0x46f70e
cmp byte [eax], 0
je 0x46f75e
inc ecx
add eax, 0xc
cmp ecx, ebx
jl 0x46f703
mov eax, dword [esp + 0xc]
cmp edx, 0x2af8
je case.0x46ed49.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.0x46ed49.158
mov eax, dword [eax + 0x20]
add eax, 0xa
nop
cmp dword [eax - 6], 5
jne 0x46f74b
cmp byte [eax], 0
je 0x46f75e
inc ecx
add eax, 0xc
cmp ecx, ebx
jl 0x46f740
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 [0x4e8ca4], 0
jne case.0x46f31b.124
mov dword [0x4e8ca4], 2
jmp case.0x46f31b.124
cmp eax, 0x402
ja 0x46f8df
je 0x46f8ff
sub eax, 0x212
je 0x46f8d3
sub eax, 0x21
jne case.0x46f31b.124
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4ea8b4]
jne case.0x46f31b.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.0x46f31b.124
cmp dword [edi + 0x34], 0
jne 0x46f825
mov edx, dword [edi + 0x54]
xor ecx, ecx
test edx, edx
jle 0x46f825
mov eax, dword [edi + 0x4c]
add eax, 0xa
cmp dword [eax - 6], 1
jne 0x46f81d
cmp byte [eax], 0
je 0x46f837
inc ecx
add eax, 0xc
cmp ecx, edx
jl 0x46f812
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.0049d7d0
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 0x4501c0
push esi
call dword [sym.imp.USER32.dll_EnumChildWindows]
mov eax, dword [esp + 0x40]
test eax, eax
je 0x46f8ae
push eax
mov ecx, edi
call fcn.00401590
cmp eax, 0x2af8
je 0x46f8ae
mov ecx, dword [edi + 0x2c]
mov eax, dword [ecx + eax*4]
test eax, eax
je 0x46f8ae
push dword [eax + 0x18]
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
sub eax, 3
jmp 0x46f8b3
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 [0x4e8ca4], 0
jmp case.0x46f31b.124
cmp eax, 0x414
je 0x46f8ff
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 [0x4e47f0], 0
je case.0x46ed49.158
cmp dword [0x4e8ca4], 0
jne case.0x46ed49.158
cmp dword [0x4e8cbc], 0
je 0x46f95a
cmp byte [edx + 0x53], 0
jne 0x46f95a
cmp dword [edx + 0x44], 0xffffffff
jle 0x46f954
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [0x4e47f8]
sub eax, dword [edx + 0x48]
cmp eax, dword [edx + 0x44]
jb 0x46f954
cmp dword [edx + 0x40], 0
je 0x46f954
cmp byte [edx + 0x96], 0
mov byte [edx + 0x53], 1
jne 0x46f954
mov dword [edx + 0x5c], 5
cmp byte [edx + 0x53], 0
je case.0x46ed49.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