Function at 0x46dd70
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 0x46dd8d
mov dword [esi], 0xffffffff
cmp word [edi], 0
jne 0x46de06
cmp word [edx], 0
jne 0x46de06
cmp dword [0x4e8d68], 0
jne 0x46ddf4
cmp dword [0x4e8d64], 0
jne 0x46ddc5
push 0x4b00
call fcn.0049ebfd
add esp, 4
mov dword [0x4e8d64], eax
test eax, eax
je 0x46e492
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 0x46ddfe
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 0x46de21
cmp dword [0x4e8d68], eax
jle 0x46e432
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 0x46de79
push 0x1f
push edx
lea eax, [esp + 0x54]
push eax
call fcn.004aa0e4
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 0x46de95
cmp eax, 9
jne 0x46de9a
add edi, 2
jmp 0x46de88
test ax, ax
je 0x46e129
mov edx, edi
mov ecx, eax
cmp cx, 0x20
je 0x46dec1
cmp cx, 9
je 0x46dec1
movzx eax, word [edx + 2]
add edx, 2
mov ecx, eax
test ax, ax
jne 0x46dea7
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.004aa0e4
add esp, 0xc
xor eax, eax
mov word [esp + esi*2 + 0xf8], ax
lea eax, [esp + 0xf8]
push str.Bold
push eax
call fcn.0049eae1
add esp, 8
test eax, eax
jne 0x46df1d
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x40], 0x2bc
jmp 0x46de88
lea eax, [esp + 0xf8]
push str.italic
push eax
call fcn.0049eae1
add esp, 8
test eax, eax
jne 0x46df44
mov edi, dword [esp + 0x1c]
mov byte [esp + 0x44], 1
jmp 0x46de88
lea eax, [esp + 0xf8]
push str.norm
push eax
call fcn.0049eae1
add esp, 8
test eax, eax
jne 0x46df77
mov edi, dword [esp + 0x1c]
mov word [esp + 0x44], ax
mov byte [esp + 0x46], al
mov dword [esp + 0x40], 0x190
jmp 0x46de88
lea eax, [esp + 0xf8]
push str.underline
push eax
call fcn.0049eae1
add esp, 8
test eax, eax
jne 0x46df9e
mov edi, dword [esp + 0x1c]
mov byte [esp + 0x45], 1
jmp 0x46de88
lea eax, [esp + 0xf8]
push str.strike
push eax
call fcn.0049eae1
add esp, 8
test eax, eax
jne 0x46dfc5
mov edi, dword [esp + 0x1c]
mov byte [esp + 0x46], 1
jmp 0x46de88
mov esi, dword [esp + 0xf8]
lea eax, [esi - 0x61]
cmp ax, 0x19
ja 0x46dfdd
and esi, 0xffdf
jmp 0x46dfe0
movzx esi, si
cmp word [esp + 0xfa], 0
je case.0x46e035.68
push esi
push 0x4da52c
call fcn.0049c671
add esp, 8
test eax, eax
je 0x46e01f
push ecx
push 1
push 0
xor edx, edx
lea ecx, [esp + 0x106]
call fcn.004812b0
add esp, 0xc
test eax, eax
je case.0x46e035.68
movzx eax, si
add eax, 0xffffffbd
cmp eax, 0x14
ja case.0x46e035.68
movzx eax, byte [eax + 0x46e4b8]
jmp dword [eax*4 + 0x46e4a4]
cmp word [esp + 0xfa], 0
jne 0x46e059
mov edi, dword [esp + 0x1c]
mov eax, 0xff000000
mov dword [esp + 0x18], eax
jmp 0x46de88
lea ecx, [esp + 0xfa]
call fcn.00482810
mov dword [esp + 0x18], eax
cmp eax, 0xffffffff
jne 0x46e120
push 0x10
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x102]
push eax
call fcn.004a458d
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 0x46e120
push 0
mov edx, edi
mov ecx, str.Invalid_option.
call fcn.0040db70
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0xfa]
call fcn.00481c30
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x40], eax
jmp 0x46de88
lea eax, [esp + 0xfa]
push eax
call fcn.004a8b52
fadd qword [0x4db9f0]
mov edi, dword [esp + 0x20]
add esp, 4
fstp qword [esp + 0x20]
cvttsd2si eax, qword [esp + 0x20]
mov dword [esp + 0x20], eax
jmp 0x46de88
lea ecx, [esp + 0xfa]
call fcn.00481c30
mov byte [esp + 0x4a], al
mov edi, dword [esp + 0x1c]
jmp 0x46de88
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x46e136
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 0x46e161
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.004aa0e4
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 0x4829d0
lea eax, [esp + 0xa4]
push eax
push esi
call dword [sym.imp.GDI32.dll_EnumFontFamiliesExW]
cmp byte [esp + 0x17], 0
jne 0x46e1d3
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 0x46e1c3
push esi
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [0x4e8d68]
xor edi, edi
test eax, eax
jle 0x46e26c
mov ecx, dword [0x4e8d64]
xor esi, esi
lea eax, [esp + 0x4c]
push eax
lea eax, [ecx + 0x1c]
add eax, esi
push eax
call fcn.0049eae1
mov ecx, dword [0x4e8d64]
add esp, 8
test eax, eax
jne 0x46e24b
mov eax, dword [esi + ecx]
cmp eax, dword [esp + 0x30]
jne 0x46e24b
mov eax, dword [esi + ecx + 0x10]
cmp eax, dword [esp + 0x40]
jne 0x46e24b
mov al, byte [esi + ecx + 0x14]
cmp al, byte [esp + 0x44]
jne 0x46e24b
mov al, byte [esi + ecx + 0x15]
cmp al, byte [esp + 0x45]
jne 0x46e24b
mov al, byte [esi + ecx + 0x16]
cmp al, byte [esp + 0x46]
jne 0x46e24b
mov al, byte [esi + ecx + 0x1a]
cmp al, byte [esp + 0x4a]
je 0x46e25a
mov eax, dword [0x4e8d68]
inc edi
add esi, 0x60
cmp edi, eax
jl 0x46e1f3
jmp 0x46e26c
cmp edi, 0xffffffff
je 0x46e267
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x4e8d68]
cmp eax, 0xc8
jl 0x46e346
mov ecx, dword [0x4e9574]
mov al, byte [0x4e9604]
test ecx, ecx
je 0x46e2eb
test al, al
je 0x46e2eb
mov eax, dword [0x4e37f8]
cmp dword [eax + 0x34], 0
jne 0x46e2c9
cmp dword [0x4e95ac], 0
jne 0x46e2c9
cmp byte [0x4e8ec6], 0
jne 0x46e2c9
push 0
push ecx
push 0x4cdea8
push 0
push str.Too_many_fonts.
mov ecx, 0x4e8f30
call fcn.0040d3e0
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 0x46e323
test al, al
jne 0x46e323
push dword [0x4e91b0]
movzx eax, word [0x4e91ac]
mov ecx, 0x4e8f30
push eax
push 0x4cdea8
push str.Too_many_fonts.
call fcn.0040c6f0
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.0040d3e0
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 0x46e43b
mov ecx, dword [0x4e9574]
mov al, byte [0x4e9604]
test ecx, ecx
je 0x46e3e0
test al, al
je 0x46e3e0
mov eax, dword [0x4e37f8]
cmp dword [eax + 0x34], 0
jne 0x46e3be
cmp dword [0x4e95ac], 0
jne 0x46e3be
cmp byte [0x4e8ec6], 0
jne 0x46e3be
push 0
push ecx
jmp 0x46e41c
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 0x46e418
test al, al
jne 0x46e418
push dword [0x4e91b0]
movzx eax, word [0x4e91ac]
mov ecx, 0x4e8f30
push eax
push 0x4cdea8
push str.Cant_create_font.
call fcn.0040c6f0
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.0040d3e0
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.0040d980
nop dword [eax]
cmp al, 0xe0
inc esi
add byte [eax], dl
loope 0x46e4f1
add bl, ah
loopne 0x46e4f5
add dl, cl
loopne 0x46e4f9
add byte [eax + 0x46e0], dh
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 0x46e52c
cmp dword [edx + 0x4c], eax
inc edx
dec esp
jne 0x46e52c
mov byte [edx + 0x52], 0
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
cmp eax, 0x4e
ja 0x46ef95
je 0x46e8df
add eax, 0xfffffffe
cmp eax, 0x29
ja case.0x46efbb.124
movzx eax, byte [eax + 0x46f63c]
jmp dword [eax*4 + 0x46f620]
cmp dword [0x4e8f28], 0
je 0x46e4fd
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 0x46e55c
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 0x46e500
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4e98b4]
jne case.0x46efbb.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.0x46efbb.124
mov eax, dword [edx + 0x24]
cmp ebx, 1
sete cl
mov byte [edx + 0xc7], cl
test eax, eax
je 0x46e5bc
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 0x46e5d7
sub eax, 1
je 0x46e5d2
sub eax, 1
jne 0x46e5d9
lea ebx, [eax + 1]
jmp 0x46e5d9
or ebx, 0xffffffff
jmp 0x46e5d9
xor ebx, ebx
mov eax, dword [edx + 0x54]
xor ecx, ecx
mov dword [esp + 0x14], eax
test eax, eax
jle case.0x46e9e9.158
mov eax, dword [edx + 0x4c]
mov edx, dword [esp + 0x14]
add eax, 0xa
cmp dword [eax - 6], 4
jne 0x46e5ff
cmp byte [eax], 0
je 0x46e612
inc ecx
add eax, 0xc
cmp ecx, edx
jl 0x46e5f4
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.0x46efbb.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.0x46efbb.124
mov eax, dword [ecx + 0xac]
test eax, eax
js 0x46e672
mov dword [esi + 0x18], eax
mov edx, dword [ecx + 0xb0]
lea eax, [esi + 0x1c]
test edx, edx
js 0x46e681
mov dword [eax], edx
mov edx, dword [ecx + 0xb4]
test edx, edx
js 0x46e69b
mov edi, dword [esi + 0x18]
mov dword [esi + 0x20], edx
cmp edx, edi
jge 0x46e69b
mov dword [esi + 0x20], edi
lea eax, [esi + 0x1c]
mov ecx, dword [ecx + 0xb8]
test ecx, ecx
js case.0x46e9e9.158
mov eax, dword [eax]
mov dword [esi + 0x24], ecx
cmp ecx, eax
jge case.0x46e9e9.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.0x46efbb.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.0x46efbb.124
mov ecx, dword [esi + 4]
sub ecx, 3
cmp ecx, dword [edx + 0x5c]
jae case.0x46efbb.124
mov eax, dword [edx + 0x2c]
mov ebx, dword [eax + ecx*4]
mov eax, dword [ebx + 0x18]
cmp eax, dword [esi + 0x14]
jne case.0x46efbb.124
cmp byte [ebx + 0x30], 0x13
jne case.0x46efbb.124
lea eax, [esp + 0xc]
mov ecx, edx
push eax
lea eax, [esp + 0x18]
push eax
push 1
push ebx
call fcn.00470150
mov ecx, dword [esp + 0x14]
lea eax, [esi + 0x1c]
lea edi, [esi + 0x18]
test ecx, ecx
je 0x46e758
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 0x46e770
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 0x46e7c3
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 0x46e834
push 0
push 0
push 0x130b
push dword [ebx + 0x18]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp eax, dword [esi + 8]
je 0x46e802
add dword [esi + 0x20], 3
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
jmp 0x46e805
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 0x46e814
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 0x46e838
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
cmp eax, 0xffffffff
je case.0x46efbb.124
push eax
push dword [ebx]
call dword [sym.imp.GDI32.dll_SetTextColor]
jmp case.0x46efbb.124
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4e98b4]
jne case.0x46efbb.124
mov edi, dword [ebp + 8]
push 0xffffffffffffffeb
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
test eax, eax
je case.0x46efbb.124
cmp byte [eax + 0xc7], 0
jne case.0x46e9e9.158
jmp case.0x46efbb.124
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4e98b4]
jne case.0x46efbb.124
mov edi, dword [ebp + 8]
push 0xffffffffffffffeb
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
test eax, eax
je case.0x46efbb.124
cmp byte [eax + 0xc4], 0
jne case.0x46efbb.124
mov ecx, eax
mov byte [eax + 0xc4], 1
call fcn.00464ae0
jmp case.0x46efbb.124
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4e98b4]
jne case.0x46efbb.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.0x46efbb.124
mov edi, dword [esi + 4]
test edi, edi
jne 0x46e959
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 0x46e93e
mov ecx, dword [ebx + 0x2c]
mov ecx, dword [ecx + edi*4]
cmp dword [ecx + 0x18], eax
je 0x46e95c
push eax
call dword [sym.imp.USER32.dll_GetParent]
mov dword [esp + 0x10], eax
test eax, eax
je 0x46e952
cmp eax, dword [ebx + 0x1c]
jne 0x46e920
mov edi, 0x2af8
jmp 0x46e95c
add edi, 0xfffffffd
cmp edi, dword [ebx + 0x5c]
jae case.0x46efbb.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 0x46e980
cmp dword [esi + 4], 0
jne case.0x46efbb.124
lea eax, [esp + 0xc]
push eax
push esi
push ecx
mov ecx, ebx
call fcn.0046fcd0
test al, al
je 0x46e99f
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.0x46efbb.124
movzx eax, byte [eax + 0x46f68c]
jmp dword [eax*4 + 0x46f668]
mov eax, dword [esi + 8]
add eax, 0xb0
cmp eax, 0xae
ja case.0x46efbb.124
movzx eax, byte [eax + 0x46f6cc]
jmp dword [eax*4 + 0x46f69c]
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 0x46eab2
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 0x46eab2
mov eax, dword [ebx + 0x2c]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x28], 0
je 0x46eab2
test byte [eax + 0x31], 0x20
jne 0x46eab2
mov esi, dword [eax + 0x28]
xor ecx, ecx
mov dword [esp + 0x20], esi
cmp esi, ecx
mov esi, dword [ebp + 0x14]
jle 0x46eab2
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 0x46ea81
cmp byte [eax], 0
je 0x46ea8d
inc ecx
add eax, 0xc
cmp ecx, dword [esp + 0x20]
jl 0x46ea70
jmp 0x46eab2
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 0x46eb10
cmp edi, dword [ebx + 0x5c]
jae 0x46eb10
mov eax, dword [ebx + 0x2c]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x28], 0
je 0x46eb10
test byte [eax + 0x31], 0x20
jne 0x46eb10
mov edx, dword [eax + 0x28]
xor ecx, ecx
test edx, edx
jle 0x46eb10
mov eax, dword [eax + 0x20]
add eax, 0xa
nop dword [eax]
cmp dword [eax - 6], 0xc
jne 0x46eaeb
cmp byte [eax], 0
je 0x46eaf5
inc ecx
add eax, 0xc
cmp ecx, edx
jl 0x46eae0
jmp 0x46eb10
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.0x46e9e9.158
test dword [esi + 0x18], 0xf000
je case.0x46e9e9.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.0x46e9e9.158
mov eax, dword [ebx + 0x2c]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x28], 0
je case.0x46e9e9.158
test byte [eax + 0x31], 0x20
jne case.0x46e9e9.158
mov edx, dword [eax + 0x28]
xor ecx, ecx
test edx, edx
jle case.0x46e9e9.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 0x46eb8b
cmp byte [eax], 0
je 0x46eb9e
inc ecx
add eax, 0xc
cmp ecx, edx
jl 0x46eb81
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.0x46efbb.124
cmp byte [edx + 0x31], 0
jl case.0x46efbb.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.0x46efbb.124
push 0
push eax
mov eax, dword [esp + 0x24]
push 0x1076
push dword [eax + 0x18]
call edi
jmp case.0x46efbb.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 0x46ee8a
mov edx, dword [esi + 0x10]
mov ecx, dword [esp + 0x1c]
push 0
push 1
call fcn.004711b0
add esp, 8
mov ecx, ebx
push dword [esp + 0x10]
push 9
push dword [esi + 8]
push edi
call fcn.0046fa50
jmp case.0x46efbb.124
cmp dword [esi + 0x20], 0
je case.0x46efbb.124
mov eax, dword [esi + 0x10]
inc eax
push eax
jmp 0x46ed4d
mov ecx, dword [esi + 8]
mov eax, ecx
cmp eax, 0xffffffef
ja 0x46edaf
je case.0x46e9e9.158
add eax, 0x1cc
cmp eax, 0x3b
ja case.0x46efbb.124
movzx eax, byte [eax + 0x46f79c]
jmp dword [eax*4 + 0x46f77c]
push dword [esi + 0x3c]
mov ecx, ebx
push 0xb
push dword [esi + 8]
push edi
call fcn.0046fa50
jmp case.0x46efbb.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 0x46ee81
cmp dword [esi + 0xc], 8
jne case.0x46efbb.124
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x14]
xor eax, ecx
test eax, 0xf000
je case.0x46efbb.124
mov eax, dword [esi + 0x10]
shr ecx, 4
and ecx, 0xf00
mov dword [esp + 0x10], eax
or ecx, 0xa
jmp 0x46ee81
mov eax, dword [edx + 0x18]
mov dword [0x4e8d60], eax
jmp case.0x46efbb.124
cmp dword [esi + 0x1c], 0
je case.0x46efbb.124
push dword [esi + 0x10]
mov dword [0x4e8d60], 0
push 0xe
push dword [esi + 8]
mov ecx, ebx
push edi
call fcn.0046fa50
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp word [esi + 0xc], 0x71
jne case.0x46efbb.124
cmp byte [edx + 0x31], 0
jl case.0x46efbb.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.0x46efbb.124
push eax
mov eax, dword [esp + 0x20]
push 0
push 0x1141
push dword [eax + 0x18]
call edi
jmp case.0x46efbb.124
add eax, 0xc
cmp eax, 0xa
ja case.0x46efbb.124
movzx eax, byte [eax + 0x46f7ec]
jmp dword [eax*4 + 0x46f7d8]
cmp ecx, 0xfffffffd
je 0x46edda
cmp ecx, 0xfffffffe
jne 0x46ede3
mov eax, 7
jmp 0x46eddf
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 0x46ee81
mov eax, dword [esi + 8]
cmp eax, 0xfffffd09
je 0x46eeb6
cmp eax, 0xfffffff8
je case.0x46e9e9.8
cmp eax, 0xfffffff9
jne case.0x46efbb.124
push 0
push 0xf
push dword [esi + 8]
mov ecx, ebx
push edi
call fcn.0046fa50
jmp case.0x46efbb.124
push 0
push 0x10
push dword [esi + 8]
mov ecx, ebx
push edi
call fcn.0046fa50
jmp case.0x46efbb.124
xor ecx, ecx
mov eax, 6
cmp dword [esi + 8], 0xfffffd13
cmovne eax, ecx
movzx ecx, ax
test cx, cx
je case.0x46efbb.124
push dword [esp + 0x10]
push ecx
push dword [esi + 8]
mov ecx, ebx
push edi
call fcn.0046fa50
jmp case.0x46efbb.124
cmp dword [esi + 8], 0xfffffdd9
jne case.0x46efbb.124
push 1
push edx
mov ecx, ebx
call fcn.004702c0
push 0
push 6
push dword [esi + 8]
mov ecx, ebx
push edi
call fcn.0046fa50
jmp case.0x46efbb.124
mov eax, dword [esi + 8]
cmp eax, 0xfffffffe
je 0x46eedb
cmp eax, 0xfffffffc
jne case.0x46efbb.124
cmp word [esi + 0x7c], 0
lea eax, [esi + 0x7c]
je 0x46ef3a
mov esi, dword [edx + 0x28]
xor ecx, ecx
mov dword [esp + 0x28], esi
cmp esi, ecx
mov esi, dword [ebp + 0x14]
jle 0x46ef16
mov eax, dword [edx + 0x20]
mov edx, dword [esp + 0x28]
add eax, 0xa
nop
cmp dword [eax - 6], 7
jne 0x46ef0b
cmp byte [eax], 0
je 0x46ef3a
inc ecx
add eax, 0xc
cmp ecx, edx
jl 0x46ef00
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.0044d060
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.0046fa50
jmp case.0x46efbb.124
mov eax, dword [esi + 8]
add eax, 6
cmp eax, 4
ja case.0x46efbb.124
jmp dword [eax*4 + 0x46f7f8]
mov eax, dword [esi + 0xc]
mov ecx, ebx
inc eax
push eax
push 7
push dword [esi + 8]
push edi
call fcn.0046fa50
jmp case.0x46efbb.124
mov eax, dword [esi + 0xc]
mov ecx, ebx
inc eax
push eax
push 8
push dword [esi + 8]
push edi
call fcn.0046fa50
jmp case.0x46efbb.124
cmp eax, 0x211
ja 0x46f449
je 0x46f42d
add eax, 0xffffff85
cmp eax, 0xbd
ja case.0x46efbb.124
movzx eax, byte [eax + 0x46f828]
jmp dword [eax*4 + 0x46f80c]
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4e98b4]
jne case.0x46efbb.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.0x46efbb.124
movzx ecx, bx
mov eax, ecx
cmp eax, 2
jne 0x46f04e
mov esi, dword [edx + 0x54]
xor ecx, ecx
test esi, esi
jle case.0x46e9e9.158
mov eax, dword [edx + 0x4c]
add eax, 0xa
nop
cmp dword [eax - 6], 3
jne 0x46f01b
cmp byte [eax], 0
je 0x46f02e
inc ecx
add eax, 0xc
cmp ecx, esi
jl 0x46f010
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 0x46f06f
push dword [edx + 0x1c]
mov edx, ecx
mov ecx, edi
call fcn.0044ed50
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.0x46efbb.124
mov eax, dword [edx + 0x2c]
mov eax, dword [eax + ecx*4]
cmp dword [eax + 0x18], esi
jne case.0x46efbb.124
push 0
push 0x11
mov eax, ebx
shr eax, 0x10
push eax
push ecx
mov ecx, edx
call fcn.0046fa50
jmp case.0x46efbb.124
cmp ebx, 0xf060
jne case.0x46efbb.124
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4e98b4]
jne case.0x46efbb.124
mov edi, dword [ebp + 8]
push 0xffffffffffffffeb
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
test eax, eax
je case.0x46efbb.124
mov ecx, eax
call fcn.0046d160
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.0x46efbb.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.0x46efbb.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.0046fa50
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.0x46efbb.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.0x46efbb.124
cmp dword [edi + 0x30], 0
je case.0x46efbb.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.0x46efbb.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.0x46efbb.124
push esi
mov ecx, edi
call fcn.00401590
cmp eax, 0x2af8
je case.0x46efbb.124
mov ecx, dword [edi + 0x2c]
mov edi, dword [ecx + eax*4]
test edi, edi
je case.0x46efbb.124
cmp byte [edi + 0x30], 2
je 0x46f1fe
mov eax, dword [edi + 0x3c]
cmp eax, 0xff000000
je 0x46f1fe
mov byte [esp + 0x1b], 1
jmp 0x46f20b
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 0x46f236
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 0x46f251
movzx eax, byte [edi + 0x30]
mov byte [esp + 0x14], 1
test byte [eax + 0x4da584], 0x40
jne 0x46f256
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.00470150
mov edi, dword [esp + 0x24]
test edi, edi
je 0x46f28c
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.0x46efbb.124
cmp dword [ebp + 0xc], 0x138
mov eax, dword [sym.imp.USER32.dll_GetSysColor]
jne 0x46f2c2
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.0x46efbb.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.0x46efbb.124
cmp esi, 0xffffffff
je 0x46f37b
push 0x2c
lea eax, [esp + 0x60]
push 0
push eax
call fcn.0049d3f0
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.0x46efbb.124
cmp dword [esp + 0x2c], 0
jl case.0x46efbb.124
mov eax, dword [esp + 0xc]
cmp ebx, dword [eax + 0x1c]
jne 0x46f37b
lea eax, [esp + 0x58]
push eax
push 0x44ff40
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 0x46f3ba
mov eax, dword [eax + 0x4c]
add eax, 0xa
cmp dword [eax - 6], 5
jne 0x46f3ae
cmp byte [eax], 0
je 0x46f3fe
inc ecx
add eax, 0xc
cmp ecx, ebx
jl 0x46f3a3
mov eax, dword [esp + 0xc]
cmp edx, 0x2af8
je case.0x46e9e9.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.0x46e9e9.158
mov eax, dword [eax + 0x20]
add eax, 0xa
nop
cmp dword [eax - 6], 5
jne 0x46f3eb
cmp byte [eax], 0
je 0x46f3fe
inc ecx
add eax, 0xc
cmp ecx, ebx
jl 0x46f3e0
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.0x46efbb.124
mov dword [0x4e7ca4], 2
jmp case.0x46efbb.124
cmp eax, 0x402
ja 0x46f57f
je 0x46f59f
sub eax, 0x212
je 0x46f573
sub eax, 0x21
jne case.0x46efbb.124
push 0xffffffffffffffe0
push ecx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4e98b4]
jne case.0x46efbb.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.0x46efbb.124
cmp dword [edi + 0x34], 0
jne 0x46f4c5
mov edx, dword [edi + 0x54]
xor ecx, ecx
test edx, edx
jle 0x46f4c5
mov eax, dword [edi + 0x4c]
add eax, 0xa
cmp dword [eax - 6], 1
jne 0x46f4bd
cmp byte [eax], 0
je 0x46f4d7
inc ecx
add eax, 0xc
cmp ecx, edx
jl 0x46f4b2
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.0049d3f0
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 0x44ff40
push esi
call dword [sym.imp.USER32.dll_EnumChildWindows]
mov eax, dword [esp + 0x40]
test eax, eax
je 0x46f54e
push eax
mov ecx, edi
call fcn.00401590
cmp eax, 0x2af8
je 0x46f54e
mov ecx, dword [edi + 0x2c]
mov eax, dword [ecx + eax*4]
test eax, eax
je 0x46f54e
push dword [eax + 0x18]
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
sub eax, 3
jmp 0x46f553
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.0x46efbb.124
cmp eax, 0x414
je 0x46f59f
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.0x46e9e9.158
cmp dword [0x4e7ca4], 0
jne case.0x46e9e9.158
cmp dword [0x4e7cbc], 0
je 0x46f5fa
cmp byte [edx + 0x53], 0
jne 0x46f5fa
cmp dword [edx + 0x44], 0xffffffff
jle 0x46f5f4
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [0x4e37f8]
sub eax, dword [edx + 0x48]
cmp eax, dword [edx + 0x44]
jb 0x46f5f4
cmp dword [edx + 0x40], 0
je 0x46f5f4
cmp byte [edx + 0x96], 0
mov byte [edx + 0x53], 1
jne 0x46f5f4
mov dword [edx + 0x5c], 5
cmp byte [edx + 0x53], 0
je case.0x46e9e9.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