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
mov eax, dword [0x4e9cfc]
test eax, eax
jne 0x46ddf4
mov ecx, dword [0x4e9cf8]
test ecx, ecx
jne 0x46ddce
push 0x4b00
call fcn.0049f23d
mov ecx, eax
add esp, 4
mov dword [0x4e9cf8], ecx
test ecx, ecx
je 0x46e484
mov eax, dword [0x4e9cfc]
lea esi, [eax + eax*2]
shl esi, 5
push 0x11
add esi, ecx
call dword [sym.imp.GDI32.dll_GetStockObject]
push esi
push 0x5c
push eax
mov dword [esi + 0x5c], eax
call dword [sym.imp.GDI32.dll_GetObjectW]
inc dword [0x4e9cfc]
mov esi, dword [ebp + 0xc]
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 [0x4e9cfc], eax
jle 0x46e424
mov eax, dword [0x4e9cf8]
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.004aa8c4
add esp, 0xc
xor eax, eax
mov word [esp + 0x8a], ax
movzx eax, word [edi]
or edx, 0xffffffff
mov dword [esp + 0x18], edx
mov ecx, eax
mov dword [esp + 0x20], 0
test ax, ax
je 0x46e122
mov edx, edi
movzx ecx, cx
nop dword [eax + eax]
cmp cx, 0x20
je 0x46deba
cmp cx, 9
je 0x46deba
movzx eax, word [edx + 2]
add edx, 2
mov ecx, eax
test ax, ax
jne 0x46dea0
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.004aa8c4
add esp, 0xc
xor eax, eax
mov word [esp + esi*2 + 0xf8], ax
lea eax, [esp + 0xf8]
push str.Bold
push eax
call fcn.0049f121
add esp, 8
test eax, eax
jne 0x46df12
mov dword [esp + 0x40], 0x2bc
jmp 0x46e0fa
lea eax, [esp + 0xf8]
push str.italic
push eax
call fcn.0049f121
add esp, 8
test eax, eax
jne 0x46df35
mov byte [esp + 0x44], 1
jmp 0x46e0fa
lea eax, [esp + 0xf8]
push str.norm
push eax
call fcn.0049f121
add esp, 8
test eax, eax
jne 0x46df64
mov word [esp + 0x44], ax
mov byte [esp + 0x46], al
mov dword [esp + 0x40], 0x190
jmp 0x46e0fa
lea eax, [esp + 0xf8]
push str.underline
push eax
call fcn.0049f121
add esp, 8
test eax, eax
jne 0x46df87
mov byte [esp + 0x45], 1
jmp 0x46e0fa
lea eax, [esp + 0xf8]
push str.strike
push eax
call fcn.0049f121
add esp, 8
test eax, eax
jne 0x46dfaa
mov byte [esp + 0x46], 1
jmp 0x46e0fa
mov edx, dword [esp + 0xf8]
mov eax, edx
and eax, 0xffdf
movzx ecx, ax
movzx eax, dx
lea esi, [edx - 0x61]
cmp si, 0x19
cmova ecx, eax
cmp word [esp + 0xfa], 0
movzx eax, cx
mov esi, eax
je case.0x46e01f.68
push eax
push 0x4da6bc
call fcn.0049ccaf
add esp, 8
test eax, eax
je 0x46e00c
push ecx
push 1
push 0
xor edx, edx
lea ecx, [esp + 0x106]
call fcn.00480d70
add esp, 0xc
test eax, eax
je case.0x46e01f.68
lea eax, [esi - 0x43]
cmp eax, 0x14
ja case.0x46e01f.68
movzx eax, byte [eax + 0x46e4a8]
jmp dword [eax*4 + 0x46e494]
cmp word [esp + 0xfa], 0
jne 0x46e03f
mov edx, 0xff000000
mov dword [esp + 0x18], edx
jmp 0x46e0fe
lea ecx, [esp + 0xfa]
call fcn.00482300
mov edx, eax
mov dword [esp + 0x18], edx
cmp edx, 0xffffffff
jne 0x46e0fe
push 0x10
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x102]
push eax
call fcn.004a4e29
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 0x46e0fe
push 0
mov edx, edi
mov ecx, str.Invalid_option.
call fcn.0040dd90
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0xfa]
call fcn.00481720
mov dword [esp + 0x40], eax
jmp 0x46e0fa
lea eax, [esp + 0xfa]
push eax
call fcn.004a931f
fadd qword [0x4dc990]
add esp, 4
fstp qword [esp + 0x20]
cvttsd2si eax, qword [esp + 0x20]
mov dword [esp + 0x20], eax
jmp 0x46e0fa
lea ecx, [esp + 0xfa]
call fcn.00481720
mov byte [esp + 0x4a], al
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
movzx eax, word [edi]
mov ecx, eax
cmp eax, 0x20
je 0x46e111
cmp eax, 9
jne 0x46e116
add edi, 2
jmp 0x46e102
test ax, ax
jne 0x46de96
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x46e128
mov dword [esi], edx
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 0x46e153
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.004aa8c4
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 0x4824c0
lea eax, [esp + 0xa4]
push eax
push esi
call dword [sym.imp.GDI32.dll_EnumFontFamiliesExW]
cmp byte [esp + 0x17], 0
jne 0x46e1c5
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 [ecx + edx - 2], ax
test ax, ax
jne 0x46e1b5
push esi
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [0x4e9cfc]
xor edi, edi
test eax, eax
jle 0x46e25e
mov ecx, dword [0x4e9cf8]
xor esi, esi
lea eax, [esp + 0x4c]
push eax
lea eax, [ecx + 0x1c]
add eax, esi
push eax
call fcn.0049f121
mov ecx, dword [0x4e9cf8]
add esp, 8
test eax, eax
jne 0x46e23d
mov eax, dword [esi + ecx]
cmp eax, dword [esp + 0x30]
jne 0x46e23d
mov eax, dword [esi + ecx + 0x10]
cmp eax, dword [esp + 0x40]
jne 0x46e23d
mov al, byte [esi + ecx + 0x14]
cmp al, byte [esp + 0x44]
jne 0x46e23d
mov al, byte [esi + ecx + 0x15]
cmp al, byte [esp + 0x45]
jne 0x46e23d
mov al, byte [esi + ecx + 0x16]
cmp al, byte [esp + 0x46]
jne 0x46e23d
mov al, byte [esi + ecx + 0x1a]
cmp al, byte [esp + 0x4a]
je 0x46e24c
mov eax, dword [0x4e9cfc]
inc edi
add esi, 0x60
cmp edi, eax
jl 0x46e1e5
jmp 0x46e25e
cmp edi, 0xffffffff
je 0x46e259
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x4e9cfc]
cmp eax, 0xc8
jl 0x46e338
mov ecx, dword [0x4ea490]
mov al, byte [0x4ea51c]
test ecx, ecx
je 0x46e2dd
test al, al
je 0x46e2dd
mov eax, dword [0x4e4798]
cmp dword [eax + 0x34], 0
jne 0x46e2bb
cmp dword [0x4ea4c4], 0
jne 0x46e2bb
cmp byte [0x4e9de6], 0
jne 0x46e2bb
push 0
push ecx
push 0x4cee20
push 0
push str.Too_many_fonts.
mov ecx, 0x4e9e50
call fcn.0040d600
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push 0
push 0
push ecx
push 0x4cee20
push str.Too_many_fonts.
mov ecx, 0x4e9e50
call fcn.0040c490
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp byte [0x4ea51f], 0
je 0x46e315
test al, al
jne 0x46e315
push dword [0x4ea0cc]
movzx eax, word [0x4ea0c8]
mov ecx, 0x4e9e50
push eax
push 0x4cee20
push str.Too_many_fonts.
call fcn.0040c920
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push 0
push 0
push 0x4cee20
push 0
push str.Too_many_fonts.
mov ecx, 0x4e9e50
call fcn.0040d600
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 0x46e42d
mov ecx, dword [0x4ea490]
mov al, byte [0x4ea51c]
test ecx, ecx
je 0x46e3d2
test al, al
je 0x46e3d2
mov eax, dword [0x4e4798]
cmp dword [eax + 0x34], 0
jne 0x46e3b0
cmp dword [0x4ea4c4], 0
jne 0x46e3b0
cmp byte [0x4e9de6], 0
jne 0x46e3b0
push 0
push ecx
jmp 0x46e40e
push 0
push 0
push ecx
push 0x4cee20
push str.Cant_create_font.
mov ecx, 0x4e9e50
call fcn.0040c490
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp byte [0x4ea51f], 0
je 0x46e40a
test al, al
jne 0x46e40a
push dword [0x4ea0cc]
movzx eax, word [0x4ea0c8]
mov ecx, 0x4e9e50
push eax
push 0x4cee20
push str.Cant_create_font.
call fcn.0040c920
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push 0
push 0
push 0x4cee20
push 0
push str.Cant_create_font.
mov ecx, 0x4e9e50
call fcn.0040d600
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x4e9cfc]
movups xmm0, xmmword [esp + 0x30]
pop edi
pop esi
lea eax, [ecx + ecx*2]
shl eax, 5
add eax, dword [0x4e9cf8]
inc ecx
mov dword [0x4e9cfc], 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 0x4cee20
push str.Out_of_memory.
call fcn.0040dba0
nop
loopne 0x46e4dd
add dl, ch
loopne 0x46e4e1
add ah, al
loopne 0x46e4e5
add byte [edx - 0x67ffb920], dh
loopne 0x46e4ed
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
jge 0x46e4eb
je 0x46e51a
mov ecx, dword [0x4e4798]
cmp byte [ecx + 0x52], 0
dec esi
add byte [eax + 0x74005279], al
add eax, 0x744c7939
lea eax, cs:[esp + 0x14]
je 0x46e4f2
cmp dword [ecx + 0x4c], edi
je 0x46e520
lea eax, [esp + 0x14]
mov edx, edi
push eax
push 0
push esi
push dword [ebp + 0x10]
mov ecx, ebx
call fcn.004042e0
add esp, 0x10
test al, al
je 0x46e51a
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [0x4e4798]
mov byte [ecx + 0x52], 0
cmp edi, 0x4e
ja 0x46f0a1
je 0x46e8f7
add edi, 0xfffffffe
cmp edi, 0x29
ja case.0x46f0c9.124
movzx eax, byte [edi + 0x46f780]
jmp dword [eax*4 + 0x46f764]
push 0xffffffffffffffe0
push ebx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4ea7cc]
jne case.0x46f0c9.124
push 0xffffffffffffffeb
push ebx
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edi, eax
test edi, edi
je case.0x46f0c9.124
mov edx, dword [ebp + 0x10]
cmp edx, 1
mov eax, dword [edi + 0x24]
sete cl
mov byte [edi + 0xc7], cl
test eax, eax
je 0x46e59d
push esi
push edx
push 5
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, dword [ebp + 0x10]
mov eax, edx
sub eax, 0
je 0x46e5b8
sub eax, 1
je 0x46e5b3
sub eax, 1
jne 0x46e5ba
lea edx, [eax + 1]
jmp 0x46e5ba
or edx, 0xffffffff
jmp 0x46e5ba
xor edx, edx
mov eax, dword [edi + 0x54]
xor ecx, ecx
mov dword [esp + 0x14], eax
test eax, eax
jle case.0x46ea16.158
mov eax, dword [edi + 0x4c]
mov edi, dword [esp + 0x14]
add eax, 0xa
cmp dword [eax - 6], 4
jne 0x46e5e0
cmp byte [eax], 0
je 0x46e5f3
inc ecx
add eax, 0xc
cmp ecx, edi
jl 0x46e5d5
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
movzx eax, dl
push esi
shl eax, 8
or eax, 0x2af80004
push eax
push 0x414
push ebx
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 ebx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4ea7cc]
jne case.0x46f0c9.124
push 0xffffffffffffffeb
push ebx
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edx, eax
test edx, edx
je case.0x46f0c9.124
mov eax, dword [edx + 0xac]
test eax, eax
js 0x46e650
mov dword [esi + 0x18], eax
mov eax, dword [edx + 0xb0]
test eax, eax
js 0x46e65d
mov dword [esi + 0x1c], eax
mov edi, dword [edx + 0xb4]
test edi, edi
js 0x46e673
cmp edi, dword [esi + 0x18]
mov eax, edi
cmovl eax, dword [esi + 0x18]
mov dword [esi + 0x20], eax
mov eax, dword [edx + 0xb8]
test eax, eax
js case.0x46ea16.158
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x24], eax
cmp eax, ecx
jge case.0x46ea16.158
mov dword [esi + 0x24], ecx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 0xffffffffffffffe0
push ebx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4ea7cc]
jne case.0x46f0c9.124
push 0xffffffffffffffeb
push ebx
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edx, eax
test edx, edx
je case.0x46f0c9.124
mov ecx, dword [esi + 4]
sub ecx, 3
cmp ecx, dword [edx + 0x5c]
jae case.0x46f0c9.124
mov eax, dword [edx + 0x2c]
mov edi, dword [eax + ecx*4]
mov eax, dword [edi + 0x18]
cmp eax, dword [esi + 0x14]
jne case.0x46f0c9.124
cmp byte [edi + 0x30], 0x13
jne case.0x46f0c9.124
lea eax, [esp + 0x18]
mov ecx, edx
push eax
lea eax, [esp + 0x18]
push eax
push 1
push edi
call fcn.004701e0
mov eax, dword [esp + 0x14]
lea ecx, [esi + 0x1c]
test eax, eax
je 0x46e72d
push eax
push ecx
push dword [esi + 0x18]
call dword [sym.imp.USER32.dll_FillRect]
push dword [esp + 0x18]
push dword [esi + 0x18]
call dword [sym.imp.GDI32.dll_SetBkColor]
jmp 0x46e746
push 0xfffffffffffffff6
push dword [edi + 0x18]
call dword [sym.imp.USER32.dll_GetClassLongW]
push eax
lea eax, [esi + 0x1c]
push eax
push dword [esi + 0x18]
call dword [sym.imp.USER32.dll_FillRect]
lea eax, [esp + 0x78]
mov dword [esp + 0x2c], 1
mov dword [esp + 0x38], eax
or eax, 0xffffffff
mov dword [esp + 0x3c], 0x3ff
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0x3c]
cmp eax, 0xff000000
je 0x46e77d
push eax
push dword [esi + 0x18]
call dword [sym.imp.GDI32.dll_SetTextColor]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x2c]
push eax
push dword [esi + 8]
push 0x133c
push dword [esi + 0x14]
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
je 0x46e7e0
push 0
push 0
push 0x130b
push dword [edi + 0x18]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp eax, dword [esi + 8]
je 0x46e7b2
add dword [esi + 0x20], 3
mov edx, dword [esp + 0x38]
mov ecx, edx
lea edi, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46e7c0
push 0x25
sub ecx, edi
lea eax, [esi + 0x1c]
push eax
sar ecx, 1
push ecx
push edx
push dword [esi + 0x18]
call dword [sym.imp.USER32.dll_DrawTextW]
mov eax, dword [esp + 0x14]
cmp eax, 0xffffffff
je case.0x46f0c9.124
push eax
push dword [esi + 0x18]
call dword [sym.imp.GDI32.dll_SetTextColor]
mov edi, dword [ebp + 0x10]
push esi
push edi
push dword [ebp + 0xc]
push ebx
call dword [sym.imp.USER32.dll_DefDlgProcW]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 0xffffffffffffffe0
push ebx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4ea7cc]
jne case.0x46f0c9.124
push 0xffffffffffffffeb
push ebx
call dword [sym.imp.USER32.dll_GetWindowLongW]
test eax, eax
je case.0x46f0c9.124
cmp byte [eax + 0xc7], 0
jne case.0x46ea16.158
mov edi, dword [ebp + 0x10]
push esi
push edi
push dword [ebp + 0xc]
push ebx
call dword [sym.imp.USER32.dll_DefDlgProcW]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 0xffffffffffffffe0
push ebx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4ea7cc]
jne case.0x46f0c9.124
push 0xffffffffffffffeb
push ebx
call dword [sym.imp.USER32.dll_GetWindowLongW]
test eax, eax
je case.0x46f0c9.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 ebx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4ea7cc]
jne case.0x46f0c9.124
push 0xffffffffffffffeb
push ebx
call dword [sym.imp.USER32.dll_GetWindowLongW]
test eax, eax
je case.0x46f0c9.124
cmp byte [eax + 0xc4], 0
jne case.0x46f0c9.124
mov ecx, eax
mov byte [eax + 0xc4], 1
call fcn.004649c0
mov edi, dword [ebp + 0x10]
push esi
push edi
push dword [ebp + 0xc]
push ebx
call dword [sym.imp.USER32.dll_DefDlgProcW]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 0xffffffffffffffe0
push ebx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4ea7cc]
jne case.0x46f0c9.124
push 0xffffffffffffffeb
push ebx
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
je case.0x46f0c9.124
mov edi, dword [esi + 4]
lea eax, [ecx + 0x5c]
mov dword [esp + 0x20], eax
test edi, edi
jne 0x46e98e
mov ecx, dword [esi]
mov dword [esp + 0x18], ecx
nop dword [eax + eax]
push ecx
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
lea edi, [eax - 3]
mov eax, dword [esp + 0x20]
cmp edi, dword [eax]
mov eax, dword [esp + 0x18]
jae 0x46e965
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0x2c]
mov ecx, dword [ecx + edi*4]
cmp dword [ecx + 0x18], eax
je 0x46e984
push eax
call dword [sym.imp.USER32.dll_GetParent]
mov ecx, eax
mov dword [esp + 0x18], eax
test ecx, ecx
je 0x46e97f
mov eax, dword [esp + 0x10]
cmp ecx, dword [eax + 0x1c]
jne 0x46e940
mov edi, 0x2af8
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
jmp 0x46e995
add edi, 0xfffffffd
mov dword [esp + 0x20], eax
cmp edi, dword [eax]
jae case.0x46f0c9.124
mov eax, dword [ecx + 0x2c]
mov edx, dword [eax + edi*4]
mov dword [esp + 0x24], edx
mov eax, dword [edx + 0x18]
cmp eax, dword [esi]
je 0x46e9b8
cmp dword [esi + 4], 0
jne case.0x46f0c9.124
lea eax, [esp + 0x14]
push eax
push esi
push edx
call fcn.0046fe10
test al, al
jne 0x46e50d
mov edx, dword [esp + 0x24]
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0
movzx eax, byte [edx + 0x30]
add eax, 0xfffffff6
cmp eax, 0xf
ja case.0x46f0c9.124
movzx eax, byte [eax + 0x46f7d0]
jmp dword [eax*4 + 0x46f7ac]
mov eax, dword [esi + 8]
add eax, 0xb0
cmp eax, 0xae
ja case.0x46f0c9.124
movzx eax, byte [eax + 0x46f810]
jmp dword [eax*4 + 0x46f7e0]
mov eax, dword [esi + 0xc]
mov ebx, dword [esi + 0x14]
inc eax
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x18]
xor eax, ebx
and ebx, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], ebx
test al, 2
je 0x46ead0
test bl, 2
mov eax, 0x10b
mov ebx, dword [esp + 0x10]
mov ecx, 0x20b
cmovne eax, ecx
movzx eax, ax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
cmp edi, dword [eax]
jae 0x46ead8
mov eax, dword [ebx + 0x2c]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x28], 0
je 0x46ead4
test byte [eax + 0x31], 0x20
jne 0x46ead4
mov edx, dword [eax + 0x28]
xor ecx, ecx
test edx, edx
jle 0x46ead4
mov ebx, dword [esp + 0x14]
mov eax, dword [eax + 0x20]
movzx esi, bl
add eax, 0xa
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x24]
cmp dword [eax - 6], esi
mov esi, dword [ebp + 0x14]
jne 0x46eaa3
cmp byte [eax], 0
je 0x46eaad
inc ecx
add eax, 0xc
cmp ecx, edx
jl 0x46ea92
jmp 0x46ead4
push dword [esp + 0x18]
mov eax, dword [esp + 0x18]
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]
jmp 0x46ead4
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
test byte [esp + 0x28], 1
je 0x46eb34
cmp edi, dword [eax]
jae 0x46eb34
mov eax, dword [ebx + 0x2c]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x28], 0
je 0x46eb34
test byte [eax + 0x31], 0x20
jne 0x46eb34
mov edx, dword [eax + 0x28]
xor ecx, ecx
test edx, edx
jle 0x46eb34
mov eax, dword [eax + 0x20]
add eax, 0xa
cmp dword [eax - 6], 0xc
jne 0x46eb0f
cmp byte [eax], 0
je 0x46eb19
inc ecx
add eax, 0xc
cmp ecx, edx
jl 0x46eb04
jmp 0x46eb34
push dword [esp + 0x18]
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 + 0x2c], 0xf000
je case.0x46ea16.158
test dword [esi + 0x18], 0xf000
je case.0x46ea16.158
mov eax, dword [esi + 0x14]
shr eax, 4
and eax, 0xf00
or eax, 0xa
movzx eax, ax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
cmp edi, dword [eax]
jae case.0x46ea16.158
mov eax, dword [ebx + 0x2c]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x28], 0
je case.0x46ea16.158
test byte [eax + 0x31], 0x20
jne case.0x46ea16.158
mov edx, dword [eax + 0x28]
xor ecx, ecx
test edx, edx
jle case.0x46ea16.158
mov ebx, dword [esp + 0x14]
mov eax, dword [eax + 0x20]
movzx esi, bl
add eax, 0xa
mov ebx, dword [esp + 0x10]
cmp dword [eax - 6], esi
jne 0x46ebb2
cmp byte [eax], 0
je 0x46ebc5
inc ecx
add eax, 0xc
cmp ecx, edx
jl 0x46eba8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push dword [esp + 0x18]
mov eax, dword [esp + 0x18]
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
mov ecx, dword [esp + 0x10]
push 0
push 0x10
push dword [esi + 8]
push edi
call fcn.0046fb90
mov edi, dword [ebp + 0x10]
push esi
push edi
push dword [ebp + 0xc]
push ebx
call dword [sym.imp.USER32.dll_DefDlgProcW]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp word [esi + 0xc], 0x71
jne case.0x46f0c9.124
cmp byte [edx + 0x31], 0
jl case.0x46f0c9.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.0x46f0c9.124
push 0
push eax
mov eax, dword [esp + 0x2c]
push 0x1076
push dword [eax + 0x18]
call edi
mov edi, dword [ebp + 0x10]
push esi
push edi
push dword [ebp + 0xc]
push ebx
call dword [sym.imp.USER32.dll_DefDlgProcW]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [esi + 0xc]
inc eax
shl edi, 0x10
push eax
mov eax, dword [esp + 0x14]
or edi, 5
push edi
push 0x414
push dword [eax + 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 + 0xc]
mov ecx, dword [esp + 0x10]
inc eax
push eax
push 8
push dword [esi + 8]
push edi
call fcn.0046fb90
mov edi, dword [ebp + 0x10]
push esi
push edi
push dword [ebp + 0xc]
push ebx
call dword [sym.imp.USER32.dll_DefDlgProcW]
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 + 0x18], eax
mov eax, dword [edx + 0x3c]
cmp byte [eax + 5], 0
jne 0x46ef78
mov edx, dword [esi + 0x10]
mov ecx, dword [esp + 0x24]
push 0
push 1
call fcn.00471240
mov ecx, dword [esp + 0x18]
add esp, 8
push dword [esp + 0x18]
push 9
push dword [esi + 8]
push edi
call fcn.0046fb90
mov edi, dword [ebp + 0x10]
push esi
push edi
push dword [ebp + 0xc]
push ebx
call dword [sym.imp.USER32.dll_DefDlgProcW]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp dword [esi + 0x20], 0
je case.0x46f0c9.124
mov eax, dword [esi + 0x10]
inc eax
push eax
jmp 0x46ee1d
mov ecx, dword [esi + 8]
mov eax, ecx
cmp eax, 0xffffffef
ja 0x46ee94
je case.0x46ea16.158
add eax, 0x1cc
cmp eax, 0x3b
ja case.0x46f0c9.124
movzx eax, byte [eax + 0x46f8e0]
jmp dword [eax*4 + 0x46f8c0]
push dword [esi + 0x3c]
mov ecx, dword [esp + 0x14]
push 0xb
push dword [esi + 8]
push edi
call fcn.0046fb90
mov edi, dword [ebp + 0x10]
push esi
push edi
push dword [ebp + 0xc]
push ebx
call dword [sym.imp.USER32.dll_DefDlgProcW]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
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 + 0x18], eax
jmp 0x46ef6f
cmp dword [esi + 0xc], 8
jne case.0x46f0c9.124
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x14]
xor eax, ecx
test eax, 0xf000
je case.0x46f0c9.124
mov eax, dword [esi + 0x10]
shr ecx, 4
and ecx, 0xf00
mov dword [esp + 0x18], eax
or ecx, 0xa
jmp 0x46ef6f
mov edi, dword [ebp + 0x10]
mov eax, dword [edx + 0x18]
push esi
push edi
push dword [ebp + 0xc]
mov dword [0x4e9cf4], eax
push ebx
call dword [sym.imp.USER32.dll_DefDlgProcW]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp dword [esi + 0x1c], 0
je case.0x46f0c9.124
push dword [esi + 0x10]
mov dword [0x4e9cf4], 0
mov ecx, dword [esp + 0x14]
push 0xe
push dword [esi + 8]
push edi
call fcn.0046fb90
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp word [esi + 0xc], 0x71
jne case.0x46f0c9.124
cmp byte [edx + 0x31], 0
jl case.0x46f0c9.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.0x46f0c9.124
push eax
mov eax, dword [esp + 0x28]
push 0
push 0x1141
push dword [eax + 0x18]
call edi
mov edi, dword [ebp + 0x10]
push esi
push edi
push dword [ebp + 0xc]
push ebx
call dword [sym.imp.USER32.dll_DefDlgProcW]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
add eax, 0xc
cmp eax, 0xa
ja case.0x46f0c9.124
movzx eax, byte [eax + 0x46f930]
jmp dword [eax*4 + 0x46f91c]
cmp ecx, 0xfffffffd
je 0x46eebf
cmp ecx, 0xfffffffe
jne 0x46eec8
mov eax, 7
jmp 0x46eec4
mov eax, 8
mov dword [esp + 0x14], eax
call dword [sym.imp.USER32.dll_GetMessagePos]
movsx ecx, ax
shr eax, 0x10
cwde
mov dword [esp + 0x30], eax
lea eax, [esp + 0x2c]
push eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x30], ecx
push dword [eax + 0x18]
call dword [sym.imp.USER32.dll_ScreenToClient]
lea eax, [esp + 0x2c]
push eax
mov eax, dword [esp + 0x28]
push 0
push 0x1111
push dword [eax + 0x18]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], eax
jmp 0x46ef6f
mov eax, dword [esi + 8]
cmp eax, 0xfffffd09
je 0x46efbb
cmp eax, 0xfffffff8
je case.0x46ea16.8
cmp eax, 0xfffffff9
jne case.0x46f0c9.124
mov ecx, dword [esp + 0x10]
push 0
push 0xf
push dword [esi + 8]
push edi
call fcn.0046fb90
mov edi, dword [ebp + 0x10]
push esi
push edi
push dword [ebp + 0xc]
push ebx
call dword [sym.imp.USER32.dll_DefDlgProcW]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
xor ecx, ecx
mov eax, 6
cmp dword [esi + 8], 0xfffffd13
cmovne eax, ecx
movzx ecx, ax
test cx, cx
je case.0x46f0c9.124
push dword [esp + 0x18]
push ecx
push dword [esi + 8]
mov ecx, dword [esp + 0x1c]
push edi
call fcn.0046fb90
mov edi, dword [ebp + 0x10]
push esi
push edi
push dword [ebp + 0xc]
push ebx
call dword [sym.imp.USER32.dll_DefDlgProcW]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp dword [esi + 8], 0xfffffdd9
jne case.0x46f0c9.124
mov ecx, dword [esp + 0x10]
push 1
push edx
call fcn.00470350
mov ecx, dword [esp + 0x10]
push 0
push 6
push dword [esi + 8]
push edi
call fcn.0046fb90
mov edi, dword [ebp + 0x10]
push esi
push edi
push dword [ebp + 0xc]
push ebx
call dword [sym.imp.USER32.dll_DefDlgProcW]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [esi + 8]
cmp eax, 0xfffffffe
je 0x46eff5
cmp eax, 0xfffffffc
jne case.0x46f0c9.124
cmp word [esi + 0x7c], 0
lea eax, [esi + 0x7c]
mov dword [esp + 0x28], eax
je 0x46f05a
mov eax, dword [edx + 0x28]
xor ecx, ecx
mov dword [esp + 0x2c], eax
test eax, eax
jle 0x46f033
mov eax, dword [edx + 0x20]
mov edx, dword [esp + 0x2c]
add eax, 0xa
nop word [eax + eax]
cmp dword [eax - 6], 7
jne 0x46f02b
cmp byte [eax], 0
je 0x46f05a
inc ecx
add eax, 0xc
cmp ecx, edx
jl 0x46f020
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x44]
mov ecx, 0x4e9e50
call fcn.0044d560
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [esi + 0x10]
jmp 0x46f078
mov eax, dword [esi + 8]
add eax, 6
cmp eax, 4
ja case.0x46f0c9.124
jmp dword [eax*4 + 0x46f93c]
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x10]
inc eax
push eax
push 7
push dword [esi + 8]
push edi
call fcn.0046fb90
mov edi, dword [ebp + 0x10]
push esi
push edi
push dword [ebp + 0xc]
push ebx
call dword [sym.imp.USER32.dll_DefDlgProcW]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp edi, 0x211
ja 0x46f57c
je 0x46f54d
add edi, 0xffffff85
cmp edi, 0xbd
ja case.0x46f0c9.124
movzx eax, byte [edi + 0x46f96c]
jmp dword [eax*4 + 0x46f950]
push 0xffffffffffffffe0
push ebx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4ea7cc]
jne case.0x46f0c9.124
push 0xffffffffffffffeb
push ebx
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edi, dword [ebp + 0x10]
mov edx, eax
test edx, edx
je 0x46f6cd
movzx ecx, di
mov eax, ecx
cmp eax, 2
jne 0x46f15e
mov esi, dword [edx + 0x54]
xor ecx, ecx
test esi, esi
jle case.0x46ea16.158
mov eax, dword [edx + 0x4c]
add eax, 0xa
nop dword [eax]
cmp dword [eax - 6], 3
jne 0x46f12b
cmp byte [eax], 0
je 0x46f13e
inc ecx
add eax, 0xc
cmp ecx, esi
jl 0x46f120
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 0x46f17f
push dword [edx + 0x1c]
mov edx, ecx
mov ecx, ebx
call fcn.0044f150
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 0x46f6cd
mov eax, dword [edx + 0x2c]
mov eax, dword [eax + ecx*4]
cmp dword [eax + 0x18], esi
jne 0x46f6cd
mov eax, dword [ebp + 0x10]
push 0
push 0x11
shr eax, 0x10
push eax
push ecx
mov ecx, edx
call fcn.0046fb90
mov edi, dword [ebp + 0x10]
push esi
push edi
push dword [ebp + 0xc]
push ebx
call dword [sym.imp.USER32.dll_DefDlgProcW]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov edi, dword [ebp + 0x10]
cmp edi, 0xf060
jne 0x46f6cd
push 0xffffffffffffffe0
push ebx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4ea7cc]
jne 0x46f6cd
push 0xffffffffffffffeb
push ebx
call dword [sym.imp.USER32.dll_GetWindowLongW]
test eax, eax
je 0x46f6cd
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 ebx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4ea7cc]
jne case.0x46f0c9.124
push 0xffffffffffffffeb
push ebx
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edi, eax
test edi, edi
je case.0x46f0c9.124
mov eax, dword [ebp + 0x10]
mov ecx, eax
shr ecx, 0x10
push ecx
push 0
movzx ecx, ax
push ecx
push esi
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
sub eax, 3
mov ecx, edi
push eax
call fcn.0046fb90
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 0xffffffffffffffe0
push ebx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4ea7cc]
jne case.0x46f0c9.124
push 0xffffffffffffffeb
push ebx
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edi, eax
test edi, edi
je case.0x46f0c9.124
cmp dword [edi + 0x30], 0
je case.0x46f0c9.124
push dword [edi + 0x78]
push dword [ebp + 0x10]
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 ebx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4ea7cc]
jne case.0x46f0c9.124
push 0xffffffffffffffeb
push ebx
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edi, eax
mov dword [esp + 0x2c], edi
test edi, edi
je case.0x46f0c9.124
push esi
mov ecx, edi
call fcn.004015b0
cmp eax, 0x2af8
je case.0x46f0c9.124
mov ecx, dword [edi + 0x2c]
mov edi, dword [ecx + eax*4]
test edi, edi
je case.0x46f0c9.124
cmp byte [edi + 0x30], 2
je 0x46f31e
mov eax, dword [edi + 0x3c]
cmp eax, 0xff000000
je 0x46f31e
mov byte [esp + 0x1f], 1
jmp 0x46f32b
push 8
mov byte [esp + 0x23], 0
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
push dword [ebp + 0x10]
call dword [sym.imp.GDI32.dll_SetTextColor]
cmp dword [edi + 0x34], 0xff000001
jne 0x46f35a
push 1
push dword [ebp + 0x10]
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 0x46f375
movzx eax, byte [edi + 0x30]
mov byte [esp + 0x14], 1
test byte [eax + 0x4da714], 0x40
jne 0x46f37a
mov byte [esp + 0x14], 0
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x2c]
push eax
push dword [esp + 0x1c]
push edi
call fcn.004701e0
mov edi, dword [esp + 0x28]
test edi, edi
je 0x46f3b2
push dword [esp + 0x18]
push dword [ebp + 0x10]
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 + 0x1f], 0
je case.0x46f0c9.124
cmp dword [ebp + 0xc], 0x138
mov eax, dword [sym.imp.USER32.dll_GetSysColor]
jne 0x46f3ea
push 0xf
call eax
push eax
push dword [ebp + 0x10]
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 dword [ebp + 0x10]
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 ebx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4ea7cc]
jne case.0x46f0c9.124
push 0xffffffffffffffeb
push ebx
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edi, eax
test edi, edi
je case.0x46f0c9.124
cmp esi, 0xffffffff
je 0x46f4a1
push 0x2c
lea eax, [esp + 0x50]
push 0
push eax
call fcn.0049da30
add esp, 0xc
movzx ecx, si
mov eax, esi
mov dword [esp + 0x48], ecx
shr eax, 0x10
mov dword [esp + 0x4c], eax
mov dword [esp + 0x30], eax
lea eax, [esp + 0x2c]
push eax
push ebx
mov dword [esp + 0x34], ecx
call dword [sym.imp.USER32.dll_ScreenToClient]
test eax, eax
je case.0x46f0c9.124
cmp dword [esp + 0x30], 0
jl case.0x46f0c9.124
mov eax, dword [ebp + 0x10]
cmp eax, dword [edi + 0x1c]
jne 0x46f4a4
lea ecx, [esp + 0x48]
push ecx
push 0x4503b0
push eax
call dword [sym.imp.USER32.dll_EnumChildWindows]
mov eax, dword [esp + 0x60]
jmp 0x46f4a4
mov eax, dword [ebp + 0x10]
push eax
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
lea edx, [eax - 3]
mov eax, 0x2af8
cmp edx, dword [edi + 0x5c]
cmovae edx, eax
xor ecx, ecx
cmp dword [edi + 0x54], ecx
jle 0x46f4da
mov eax, dword [edi + 0x4c]
add eax, 0xa
cmp dword [eax - 6], 5
jne 0x46f4d1
cmp byte [eax], 0
je 0x46f51e
inc ecx
add eax, 0xc
cmp ecx, dword [edi + 0x54]
jl 0x46f4c6
cmp edx, 0x2af8
je case.0x46ea16.158
mov eax, dword [edi + 0x2c]
xor ecx, ecx
mov eax, dword [eax + edx*4]
mov edi, dword [eax + 0x28]
test edi, edi
jle case.0x46ea16.158
mov eax, dword [eax + 0x20]
add eax, 0xa
nop
cmp dword [eax - 6], 5
jne 0x46f50b
cmp byte [eax], 0
je 0x46f51e
inc ecx
add eax, 0xc
cmp ecx, edi
jl 0x46f500
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 ebx
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 [0x4e8bcc], 0
mov edi, dword [ebp + 0x10]
jne 0x46f6cd
push esi
push edi
push dword [ebp + 0xc]
mov dword [0x4e8bcc], 2
push ebx
call dword [sym.imp.USER32.dll_DefDlgProcW]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp edi, 0x402
ja 0x46f6c2
je 0x46f6e2
mov eax, edi
sub eax, 0x212
je 0x46f6a0
sub eax, 0x21
jne case.0x46f0c9.124
push 0xffffffffffffffe0
push ebx
call dword [sym.imp.USER32.dll_GetClassLongW]
movzx eax, ax
cmp ax, word [0x4ea7cc]
jne case.0x46f0c9.124
push 0xffffffffffffffeb
push ebx
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edi, eax
test edi, edi
je case.0x46f0c9.124
cmp dword [edi + 0x34], 0
jne 0x46f5f8
mov edx, dword [edi + 0x54]
xor ecx, ecx
test edx, edx
jle 0x46f5f8
mov eax, dword [edi + 0x4c]
add eax, 0xa
cmp dword [eax - 6], 1
jne 0x46f5f0
cmp byte [eax], 0
je 0x46f60c
inc ecx
add eax, 0xc
cmp ecx, edx
jl 0x46f5e5
push dword [ebp + 0x10]
call dword [sym.imp.SHELL32.dll_DragFinish]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov esi, dword [ebp + 0x10]
lea eax, [esp + 0x48]
push 0x30
push 0
push eax
mov dword [edi + 0x34], esi
call fcn.0049da30
add esp, 0xc
lea eax, [esp + 0x48]
push eax
push esi
call dword [sym.imp.SHELL32.dll_DragQueryPoint]
lea eax, [esp + 0x48]
push eax
push ebx
call dword [sym.imp.USER32.dll_ClientToScreen]
lea eax, [esp + 0x48]
push eax
push 0x4503b0
push ebx
call dword [sym.imp.USER32.dll_EnumChildWindows]
mov eax, dword [esp + 0x60]
test eax, eax
je 0x46f67b
push eax
mov ecx, edi
call fcn.004015b0
cmp eax, 0x2af8
je 0x46f67b
mov ecx, dword [edi + 0x2c]
mov eax, dword [ecx + eax*4]
test eax, eax
je 0x46f67b
push dword [eax + 0x18]
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
sub eax, 3
jmp 0x46f680
mov eax, 0x2af8
push 0
shl eax, 0x10
or eax, 1
push eax
push 0x414
push ebx
call dword [sym.imp.USER32.dll_PostMessageW]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov edi, dword [ebp + 0x10]
push esi
push edi
push dword [ebp + 0xc]
mov dword [0x4e8bcc], 0
push ebx
call dword [sym.imp.USER32.dll_DefDlgProcW]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp edi, 0x414
je 0x46f6e2
mov edi, dword [ebp + 0x10]
push esi
push edi
push dword [ebp + 0xc]
push ebx
call dword [sym.imp.USER32.dll_DefDlgProcW]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp dword [0x4e4790], 0
je case.0x46ea16.158
cmp dword [0x4e8bcc], 0
jne case.0x46ea16.158
cmp dword [0x4e8be4], 0
je 0x46f73d
cmp byte [ecx + 0x53], 0
jne 0x46f73d
cmp dword [ecx + 0x44], 0xffffffff
jle 0x46f737
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov ecx, dword [0x4e4798]
sub eax, dword [ecx + 0x48]
cmp eax, dword [ecx + 0x44]
jb 0x46f737
cmp dword [ecx + 0x40], 0
je 0x46f737
cmp byte [ecx + 0x96], 0
mov byte [ecx + 0x53], 1
jne 0x46f737
mov dword [ecx + 0x5c], 5
cmp byte [ecx + 0x53], 0
je case.0x46ea16.158
push esi
push dword [ebp + 0x10]
push edi
push ebx
call dword [sym.imp.USER32.dll_PostMessageW]
mov edx, 2
or ecx, 0xffffffff
call fcn.00401600
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x10