Function at 0x10031857
Capabilities:
Get graphical window text

Disassembly:
sub esp, 0x440
mov eax, dword [0x1024bd20]
xor eax, esp
mov dword [esp + 0x43c], eax
push ebx
push ebp
push esi
push edi
push 0xa
call fcn.10028633
push eax
call fcn.10037ebd
push 0xb
mov ebp, eax
call fcn.10028633
push 0x31
pop ebx
push 0xc
cmp word [eax], bx
sete byte [esp + 0x48]
call fcn.10028633
push 0xd
cmp word [eax], bx
sete byte [esp + 0x27]
call fcn.10028633
mov esi, dword [sym.imp.USER32.dll_GetDlgItem]
add esp, 0x14
cmp word [eax], bx
sete byte [esp + 0x12]
xor edi, edi
push edi
push 0x3f9
push ebp
mov dword [esp + 0x28], edi
call esi
mov ebx, dword [sym.imp.USER32.dll_ShowWindow]
push eax
call ebx
push edi
push 0x3fd
push ebp
call esi
push eax
call ebx
push edi
push 0x3fe
push ebp
call esi
push eax
call ebx
push edi
push 0x3ff
push ebp
call esi
push eax
call ebx
lea eax, [esp + 0x3c]
push eax
push ebp
call dword [sym.imp.USER32.dll_GetClientRect]
mov edi, dword [esp + 0x44]
sub edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x48]
sub ebx, dword [esp + 0x40]
push 0x3ee
push ebp
mov dword [esp + 0x20], edi
call esi
mov esi, eax
lea eax, [esp + 0x3c]
push eax
push esi
mov dword [esp + 0x1c], esi
call dword [sym.imp.USER32.dll_GetClientRect]
push 0x200
lea eax, [esp + 0x50]
push eax
push esi
call dword [sym.imp.USER32.dll_GetWindowTextW]
push ebp
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
xor eax, eax
mov dword [esp + 0x2c], esi
push eax
push eax
push 0x31
push ebp
call dword [sym.imp.USER32.dll_SendMessageW]
push eax
push esi
mov dword [esp + 0x3c], eax
call dword [sym.imp.GDI32.dll_SelectObject]
lea eax, [esp + 0x24]
push eax
push 1
push 0x101d5178
push esi
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
lea ecx, [esp + 0x4c]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [esp + 0x1c]
jne 0x1003197e
push 0x410
sub ecx, edx
lea eax, [esp + 0x40]
push eax
sar ecx, 1
lea eax, [esp + 0x54]
push ecx
push eax
push esi
call dword [sym.imp.USER32.dll_DrawTextW]
mov eax, dword [esp + 0x48]
sub eax, dword [esp + 0x40]
mov dword [esp + 0x30], eax
imul eax, dword [esp + 0x28], 3
push 6
push eax
push edi
xor eax, eax
push eax
push eax
push eax
push dword [esp + 0x2c]
call dword [sym.imp.USER32.dll_SetWindowPos]
mov ecx, dword [esp + 0x28]
mov edi, ebx
mov eax, ecx
shl eax, 2
sub edi, eax
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
mov dword [esp + 0x1c], edi
mulsd xmm0, qword [0x101d62e8]
cvttsd2si esi, xmm0
mov dword [esp + 0x14], esi
call fcn.1002f6b8
cmp dword [eax + 0x90], 1
jne 0x10031a07
sub edi, esi
mov dword [esp + 0x1c], edi
push 0x412
push ebp
call dword [sym.imp.USER32.dll_GetDlgItem]
mov esi, eax
lea eax, [esp + 0x3c]
push eax
push esi
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [esp + 0x28]
xor eax, eax
push 4
shl ecx, 2
push ecx
push dword [esp + 0x20]
push edi
push eax
push eax
push esi
call dword [sym.imp.USER32.dll_SetWindowPos]
push 0x413
push ebp
call dword [sym.imp.USER32.dll_GetDlgItem]
movd xmm0, dword [esp + 0x24]
mov edi, eax
mov esi, dword [esp + 0x28]
cvtdq2pd xmm0, xmm0
mov edx, dword [esp + 0x18]
push 4
lea ecx, [esi + esi]
push ecx
mulsd xmm0, qword [0x1021e380]
cvttsd2si ecx, xmm0
movd xmm0, esi
cvtdq2pd xmm0, xmm0
sub edx, ecx
mov ecx, dword [esp + 0x24]
push edx
mulsd xmm0, qword [0x101d62f8]
cvttsd2si eax, xmm0
sub ecx, eax
xor eax, eax
push ecx
push dword [esp + 0x34]
push eax
push edi
call dword [sym.imp.USER32.dll_SetWindowPos]
push 0x408
push ebp
call dword [sym.imp.USER32.dll_GetDlgItem]
mov esi, eax
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
push 4
push 3
movd xmm0, eax
cvtdq2pd xmm0, xmm0
cdq
mulsd xmm0, qword [0x101d62f0]
cvttsd2si ecx, xmm0
sub edi, ecx
pop ecx
idiv ecx
mov ecx, dword [esp + 0x20]
sub ecx, eax
sub ecx, edi
push ecx
push dword [esp + 0x20]
push edi
xor edi, edi
push edi
push edi
push esi
call dword [sym.imp.USER32.dll_SetWindowPos]
call fcn.1002f6b8
cmp dword [eax + 0x90], 1
jne 0x10031c15
cmp byte [esp + 0x13], 0
jne 0x10031c15
movd xmm0, dword [esp + 0x28]
cvtdq2pd xmm0, xmm0
push edi
mov esi, dword [sym.imp.USER32.dll_CreateWindowExW]
push dword [0x10255730]
mulsd xmm0, qword [0x101d62f0]
push edi
push ebp
cvttsd2si eax, xmm0
sub ebx, eax
mov eax, dword [esp + 0x24]
push eax
push dword [esp + 0x2c]
sub ebx, eax
push ebx
push edi
push 0x50000000
push 0x101d51b0
push 0x101d5230
push edi
call esi
push edi
push dword [esp + 0x38]
mov dword [0x10255f30], eax
push 0x30
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov edi, dword [esp + 0x2c]
lea eax, [esp + 0x1c]
push eax
push 0x18
push 0x101d5240
push edi
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x18]
push eax
push 0x101d5274
push dword [0x10255f30]
call fcn.101586f0
add esp, 0x10
xor eax, eax
push eax
push dword [0x10255730]
push eax
mov eax, dword [esp + 0x3c]
push ebp
push dword [esp + 0x30]
add eax, ebx
xor ebx, ebx
push dword [esp + 0x30]
push eax
push dword [esp + 0x30]
push 0x50000000
push 0x101d52a8
push 0x101d52dc
push ebx
call esi
push ebx
push dword [esp + 0x38]
mov dword [0x10255f34], eax
push 0x30
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [0x10255f28]
test ecx, ecx
je 0x10031beb
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [0x10255f28], ebx
push dword [esp + 0x38]
call fcn.10031833
pop ecx
cmp byte [esp + 0x12], bl
je 0x10031c19
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
push ebx
push dword [0x10255f30]
call esi
push ebx
push dword [0x10255f34]
call esi
jmp 0x10031c19
mov edi, dword [esp + 0x2c]
push edi
push ebp
call dword [sym.imp.USER32.dll_ReleaseDC]
mov ecx, dword [esp + 0x44c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1017868e
add esp, 0x440
ret