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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x23bd6f21
mov eax, dword fs:[0]
push eax
sub esp, 0x1f0
mov eax, dword [0x23c68938]
xor eax, esp
mov dword [esp + 0x1e8], eax
push ebx
push esi
push edi
mov eax, dword [0x23c68938]
xor eax, esp
push eax
lea eax, [esp + 0x200]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
mov ebx, ecx
mov eax, dword [ebx + 0x34]
mov edx, dword [eax + 0x20]
lea ecx, [esp + 0xbc]
push ecx
push edx
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [ebx]
mov edx, dword [eax + 0x70]
mov ecx, ebx
call edx
mov esi, eax
mov eax, dword [ebx]
mov edx, dword [eax + 0x74]
mov ecx, ebx
mov dword [esp + 0x30], esi
call edx
mov dword [esp + 0x4c], eax
test edi, edi
je 0x23acf6ad
mov edi, dword [edi + 4]
lea eax, [esp + 0xbc]
push eax
push edi
lea ecx, [esp + 0x7c]
call fcn.23a68990
push esi
lea ecx, [esp + 0xc0]
push ecx
lea ecx, [esp + 0x7c]
mov dword [esp + 0x210], 0
call fcn.23a394d0
mov ecx, dword [ebx + 0x34]
mov eax, dword [esp + 0x78]
mov edx, dword [ecx]
mov edx, dword [edx + 0x118]
push 0
push eax
push 0xf
call edx
cmp dword [ebp + 0xc], 0
lea ecx, [esp + 0x74]
je 0x23acfc2d
call fcn.23a37f17
mov ecx, ebx
mov dword [esp + 0x5c], eax
call fcn.23acd030
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
test al, al
je 0x23acf740
mov eax, dword [ebx + 0x34]
mov eax, dword [eax + 0x20]
push 0
push 0
push 0x110f
push eax
call edi
push eax
call fcn.23a3270a
test eax, eax
je 0x23acf740
mov dword [esp + 0x58], 1
jmp 0x23acf749
xor eax, eax
mov dword [esp + 0x58], eax
mov dword [ebx + 0x10], eax
mov ecx, dword [ebx + 0x34]
call fcn.23a35d12
mov dword [esp + 0x54], eax
call dword [sym.imp.USER32.dll_GetFocus]
push eax
call fcn.23a3270a
mov ecx, dword [ebx + 0x34]
cmp eax, ecx
sete dl
mov byte [esp + 0x60], dl
call fcn.23a35b94
push 0
mov dword [esp + 0x24], eax
mov eax, dword [ebx + 0x34]
mov eax, dword [eax + 0x20]
push 5
push 0x110a
push eax
call edi
push 0
mov esi, eax
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 0x34]
mov ecx, dword [eax + 0x20]
push 0
push 0x1110
push ecx
call edi
inc eax
push 0
mov dword [esp + 0x54], eax
mov eax, dword [ebx + 0x34]
mov edx, dword [eax + 0x20]
push 0
push 0x31
push edx
call edi
push eax
call fcn.23a38bb8
mov edx, dword [eax + 4]
lea ecx, [esp + 0x194]
push ecx
push 0x5c
push edx
call dword [sym.imp.GDI32.dll_GetObjectW]
test eax, eax
jne 0x23acf7eb
lea eax, [esp + 0x194]
push eax
push 0x5c
push 0x11
call dword [sym.imp.GDI32.dll_GetStockObject]
push eax
call dword [sym.imp.GDI32.dll_GetObjectW]
test esi, esi
je 0x23acfc1b
jmp 0x23acf80a
mov esi, dword [esp + 0x1c]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [esp + 0x50]
mov ecx, eax
dec eax
mov dword [esp + 0x50], eax
test ecx, ecx
je 0x23acfc1b
mov ecx, dword [ebx + 0x34]
push 1
lea edx, [esp + 0x38]
push edx
push esi
call fcn.23a3c899
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0x70], eax
push edx
lea eax, [esp + 0x68]
mov dword [esp + 0x70], ecx
push eax
lea ecx, [esp + 0x7c]
call fcn.23a394d0
push 0xb
push esi
mov ecx, ebx
call fcn.23acd700
push 0
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0x34]
mov ecx, dword [eax + 0x20]
push 8
push 0x110a
push ecx
call edi
test eax, eax
je 0x23acf8b1
test byte [esp + 0x14], 2
je 0x23acf8b1
mov eax, dword [ebx + 0x34]
mov edx, dword [eax + 0x20]
push 0
push 8
push 0x110a
push edx
call edi
cmp esi, eax
je 0x23acf8b1
xor dword [esp + 0x14], 2
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x60]
mov edx, dword [ebx]
mov edx, dword [edx + 0x38]
test al, 0xa
mov ecx, 0
setne cl
cmp dword [ebx + 0x14], esi
sete byte [esp + 0x13]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x24]
push ecx
push edi
push eax
mov ecx, ebx
call edx
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x18]
push edx
mov dword [esp + 0x34], eax
mov eax, dword [ebx]
mov edx, dword [eax + 0x78]
push edi
push ecx
mov ecx, ebx
call edx
mov dword [esp + 0x18], eax
cmp dword [ebx + 0x10], esi
jne 0x23acf916
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], eax
push 0x5c
mov ecx, 0x17
lea esi, [esp + 0x198]
lea edi, [esp + 0x138]
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0xd0]
or esi, 0xffffffff
push 0
push eax
mov dword [esp + 0x134], esi
mov dword [esp + 0x138], esi
call fcn.23a49830
mov edi, dword [esp + 0x28]
add esp, 0xc
lea ecx, [esp + 0xcc]
push ecx
push edi
lea ecx, [ebx + 0x18]
call fcn.23aceed0
test eax, eax
je 0x23acf9b9
cmp dword [esp + 0x24], 0
jne 0x23acf995
cmp dword [esp + 0x54], 0
je 0x23acf995
mov eax, dword [esp + 0x128]
cmp eax, esi
je 0x23acf986
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x12c]
cmp eax, esi
je 0x23acf995
mov dword [esp + 0x2c], eax
cmp word [esp + 0xe8], 0
je 0x23acf9b9
mov ecx, 0x17
lea esi, [esp + 0xcc]
lea edi, [esp + 0x134]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x1c]
mov edx, dword [ebx]
mov eax, dword [edx + 0x28]
push edi
mov ecx, ebx
call eax
test eax, eax
je 0x23acf9d2
mov dword [esp + 0x144], 0x2bc
test dword [esp + 0x20], 0x200
je 0x23acfa31
cmp byte [esp + 0x13], 0
setne al
mov byte [esp + 0x149], al
test al, al
je 0x23acfa31
cmp dword [esp + 0x24], 0
jne 0x23acfa31
call fcn.23a9c040
mov ecx, eax
call fcn.23a9c070
test al, al
jne 0x23acfa1f
call fcn.23a9c040
mov ecx, eax
call fcn.23a9cbf0
test al, al
jne 0x23acfa1f
call fcn.23a64f40
push 0x1a
jmp 0x23acfa26
call fcn.23a64f40
push 0xd
mov ecx, eax
call fcn.23a64910
mov dword [esp + 0x18], eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], vtable.CFont.0
lea ecx, [esp + 0x134]
push ecx
mov byte [esp + 0x20c], 1
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
push eax
lea ecx, [esp + 0x48]
call fcn.23a38bcc
lea edx, [esp + 0x44]
push edx
lea ecx, [esp + 0x78]
call fcn.23a38d2d
mov ecx, dword [ebx + 0x34]
mov esi, eax
push edi
lea eax, [esp + 0x2c]
push eax
call fcn.23a3d203
mov eax, dword [esp + 0x28]
mov ecx, dword [eax - 0xc]
lea edx, [esp + 0xb4]
push edx
push ecx
push eax
mov eax, dword [esp + 0x88]
push eax
mov byte [esp + 0x218], 2
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0xb4]
sub edx, eax
cmp edx, ecx
jge 0x23acfac3
lea eax, [ecx + eax + 2]
mov dword [esp + 0x3c], eax
mov edi, dword [esp + 0x2c]
push edi
lea ecx, [esp + 0x78]
call fcn.23a37f8c
mov ecx, dword [esp + 0x18]
push ecx
lea ecx, [esp + 0x78]
call fcn.23a38055
cmp dword [esp + 0x24], 0
je 0x23acfaf5
push edi
lea edx, [esp + 0x38]
push edx
lea ecx, [esp + 0x7c]
call fcn.23a394d0
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x3c]
push 0
mov dword [esp + 0xac], ecx
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x44]
push 3
lea ecx, [esp + 0xac]
push ecx
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov eax, dword [esp + 0x28]
mov ecx, dword [eax - 0xc]
push 0x824
lea edx, [esp + 0xa8]
push edx
push ecx
push eax
mov eax, dword [esp + 0x84]
mov edx, dword [eax + 0x68]
lea ecx, [esp + 0x84]
call edx
test byte [esp + 0x14], 1
je 0x23acfba0
cmp dword [esp + 0x58], 0
jne 0x23acfba0
cmp dword [esp + 0x54], 0
je 0x23acfba0
call dword [sym.imp.USER32.dll_GetFocus]
push eax
call fcn.23a3270a
cmp eax, dword [ebx + 0x34]
jne 0x23acfba0
mov eax, dword [esp + 0x4c]
push eax
lea ecx, [esp + 0x78]
call fcn.23a38055
mov edx, dword [esp + 0x78]
lea ecx, [esp + 0x34]
push ecx
push edx
call dword [sym.imp.USER32.dll_DrawFocusRect]
push esi
lea ecx, [esp + 0x78]
call fcn.23a38d2d
lea ecx, [esp + 0x44]
call fcn.23a38c24
mov ecx, dword [esp + 0x1c]
mov eax, dword [ebx + 0x34]
mov edx, dword [eax + 0x20]
push ecx
push 6
push 0x110a
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
mov esi, eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov dword [esp + 0x1c], esi
mov byte [esp + 0x208], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x23acfbfa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x44]
mov byte [esp + 0x208], 0
mov dword [esp + 0x44], vtable.CFont.0
call fcn.23a38df7
test esi, esi
jne 0x23acf800
mov ecx, dword [esp + 0x5c]
push ecx
lea ecx, [esp + 0x78]
call fcn.23a37f4a
lea ecx, [esp + 0x74]
mov dword [esp + 0x208], 0xffffffff
call fcn.23a68ba0
mov ecx, dword [esp + 0x200]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1e8]
xor ecx, esp
call fcn.23a4addf
mov esp, ebp
pop ebp
ret 8