Function at 0x4098f0
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x300
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
xor eax, eax
cmp ecx, 0x111
je 0x409b16
cmp ecx, 0x110
jne 0x409e24
push 0
call dword [sym.imp.kernel32.dll_GetModuleHandleW]
mov edi, eax
mov ebx, dword [sym.imp.user32.dll_GetDlgItem]
push 0x7db
push esi
call ebx
mov dword [ebp - 0x20], eax
push 0x7d8
push esi
call ebx
mov dword [ebp - 0x24], eax
push 0x7d9
push esi
call ebx
mov dword [ebp - 0x10], eax
push 0x7da
push esi
call ebx
mov dword [ebp - 0x28], eax
lea esi, [ebp - 0x30a]
push 0xff
push esi
push 0x588
push edi
mov ebx, edi
mov dword [ebp - 0x1c], edi
call dword [sym.imp.user32.dll_LoadStringW]
push esi
mov edi, esi
push 0
push 0x143
mov esi, dword [ebp - 0x20]
push esi
call dword [sym.imp.user32.dll_SendMessageW]
push 0xff
push edi
push 0x589
push ebx
call dword [sym.imp.user32.dll_LoadStringW]
push edi
push 0
push 0x143
push esi
mov eax, dword [sym.imp.user32.dll_SendMessageW]
call eax
push 0xff
push edi
push 0x58a
push dword [ebp - 0x1c]
call dword [sym.imp.user32.dll_LoadStringW]
push edi
push 0
push 0x143
push esi
mov ebx, esi
mov esi, dword [sym.imp.user32.dll_SendMessageW]
call esi
mov dword [ebp - 0x10c], 0xbc
mov dword [ebp - 0x108], 0xf
lea eax, [ebp - 0x10c]
push eax
push 0
push 0x43d
push dword [0x419f78]
call esi
movzx ecx, word [ebp - 0xf4]
xor eax, eax
cmp cx, 3
sete al
add eax, eax
cmp cx, 2
mov ecx, 1
cmovne ecx, eax
push 0
push ecx
push 0x14e
push ebx
call esi
mov eax, dword [ebp - 0xf8]
add eax, dword [ebp - 0x100]
cvtsi2ss xmm0, eax
divss xmm0, dword [0x40d1e8]
mulss xmm0, dword [0x40d208]
divss xmm0, dword [0x40d20c]
cvtss2sd xmm0, xmm0
sub esp, 0x18
mov dword [esp], edi
movsd qword [esp + 0xc], xmm0
mov dword [esp + 0x14], 0x41ab9e
call dbg.swprintf
add esp, 0x18
mov esi, dword [sym.imp.user32.dll_SetWindowTextW]
push edi
push dword [ebp - 0x24]
call esi
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [ebp - 0xfc]
divss xmm0, dword [0x40d1e8]
mulss xmm0, dword [0x40d208]
divss xmm0, dword [0x40d20c]
cvtss2sd xmm0, xmm0
sub esp, 0x18
mov dword [esp], edi
movsd qword [esp + 0xc], xmm0
mov dword [esp + 0x14], 0x41ab9e
call dbg.swprintf
add esp, 0x18
push edi
push dword [ebp - 0x10]
call esi
xor eax, eax
sub eax, dword [ebp - 0xf8]
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
divss xmm0, dword [0x40d1e8]
mulss xmm0, dword [0x40d208]
divss xmm0, dword [0x40d20c]
cvtss2sd xmm0, xmm0
sub esp, 0x18
mov dword [esp], edi
movsd qword [esp + 0xc], xmm0
mov dword [esp + 0x14], 0x41ab9e
call dbg.swprintf
add esp, 0x18
push edi
push dword [ebp - 0x28]
call esi
xor eax, eax
jmp 0x409e24
mov ecx, dword [ebp + 0x10]
cmp cx, 2
je 0x409e17
movzx ecx, cx
cmp ecx, 1
jne 0x409e24
mov ebx, dword [sym.imp.user32.dll_GetDlgItem]
push 0x7db
push esi
call ebx
mov edi, eax
push 0x7d8
push esi
call ebx
mov dword [ebp - 0x24], eax
push 0x7d9
push esi
call ebx
mov dword [ebp - 0x10], eax
push 0x7da
push esi
call ebx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10c], 0xbc
mov dword [ebp - 0x108], 0x20
lea eax, [ebp - 0x10c]
mov ebx, dword [sym.imp.user32.dll_SendMessageW]
push eax
push 0
push 0x43d
push dword [0x419f78]
call ebx
test byte [ebp - 0x108], 0x20
sete byte [ebp - 0x20]
cmp word [ebp - 0x104], 0
sete byte [ebp - 0x1c]
push 0
push 0
push 0x147
push edi
call ebx
movzx eax, word [eax + eax + 0x40d4d2]
mov word [ebp - 0xf4], ax
lea edi, [ebp - 0x30a]
push 0xff
push edi
push dword [ebp - 0x24]
call dword [sym.imp.user32.dll_GetWindowTextW]
lea ebx, [ebp - 0x18]
lea edx, [ebp - 0x14]
mov ecx, edi
push ebx
call sym._number_from_string
add esp, 4
mov esi, eax
mov ecx, dword [ebp - 0x18]
movss xmm0, dword [ebp - 0x14]
cmp ecx, 2
je 0x409c35
cmp ecx, 1
je 0x409c27
xor eax, eax
test ecx, ecx
mov ecx, dword [ebp - 0x10]
jne 0x409c48
cvtss2sd xmm0, xmm0
mulsd xmm0, qword [0x40d1f0]
divsd xmm0, qword [0x40d1f8]
mulsd xmm0, qword [0x40d200]
cvttsd2si eax, xmm0
jmp 0x409c48
mulss xmm0, dword [0x40d1e8]
cvttss2si eax, xmm0
jmp 0x409c45
cvtss2sd xmm0, xmm0
mulsd xmm0, qword [0x40d1e0]
cvttsd2si eax, xmm0
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0xf8], eax
push 0xff
push edi
push ecx
call dword [sym.imp.user32.dll_GetWindowTextW]
lea edx, [ebp - 0x14]
mov ecx, edi
push ebx
call sym._number_from_string
add esp, 4
mov ebx, eax
add ebx, esi
mov ecx, dword [ebp - 0x18]
movss xmm0, dword [ebp - 0x14]
cmp ecx, 2
je 0x409cb8
cmp ecx, 1
mov esi, dword [ebp + 8]
je 0x409caa
xor eax, eax
test ecx, ecx
jne 0x409ccb
cvtss2sd xmm0, xmm0
mulsd xmm0, qword [0x40d1f0]
divsd xmm0, qword [0x40d1f8]
mulsd xmm0, qword [0x40d200]
cvttsd2si eax, xmm0
jmp 0x409ccb
mulss xmm0, dword [0x40d1e8]
cvttss2si eax, xmm0
jmp 0x409ccb
cvtss2sd xmm0, xmm0
mulsd xmm0, qword [0x40d1e0]
cvttsd2si eax, xmm0
mov esi, dword [ebp + 8]
mov dword [ebp - 0xfc], eax
push 0xff
push edi
push dword [ebp - 0x28]
call dword [sym.imp.user32.dll_GetWindowTextW]
lea edx, [ebp - 0x14]
mov ecx, edi
lea eax, [ebp - 0x18]
push eax
call sym._number_from_string
add esp, 4
add ebx, eax
mov ecx, dword [ebp - 0x18]
movss xmm0, dword [ebp - 0x14]
cmp ecx, 2
je 0x409d37
cmp ecx, 1
je 0x409d29
xor eax, eax
test ecx, ecx
jne 0x409d47
cvtss2sd xmm0, xmm0
mulsd xmm0, qword [0x40d1f0]
divsd xmm0, qword [0x40d1f8]
mulsd xmm0, qword [0x40d200]
jmp 0x409d43
mulss xmm0, dword [0x40d1e8]
cvttss2si eax, xmm0
jmp 0x409d47
cvtss2sd xmm0, xmm0
mulsd xmm0, qword [0x40d1e0]
cvttsd2si eax, xmm0
mov dword [ebp - 0x100], eax
cmp ebx, 3
jne 0x409d75
movzx ebx, byte [ebp - 0x20]
or bl, byte [ebp - 0x1c]
mov ecx, dword [ebp - 0xf8]
lea edx, [ecx + eax]
test edx, eax
js 0x409db9
test ecx, ecx
jns 0x409dbd
xor ecx, ecx
test edx, edx
cmovle edx, ecx
mov eax, edx
jmp 0x409dbd
mov eax, dword [0x419f58]
mov dword [ebp - 0x50], 0x28
mov dword [ebp - 0x4c], eax
push 0
call dword [sym.imp.kernel32.dll_GetModuleHandleW]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], 0x6a9
mov dword [ebp - 0x40], 0x40d2c2
mov dword [ebp - 0x3c], 0x40
xorps xmm0, xmm0
movups xmmword [ebp - 0x38], xmm0
lea eax, [ebp - 0x50]
push eax
call dword [sym.imp.user32.dll_MessageBoxIndirectW]
xor eax, eax
jmp 0x409e24
mov ecx, eax
neg ecx
add ecx, eax
mov dword [ebp - 0x100], ecx
neg eax
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0x10c], 0xbc
mov dword [ebp - 0x108], 0xf
test bl, bl
jne 0x409dfa
xor ecx, ecx
test eax, eax
cmovg ecx, eax
mov word [ebp - 0x58], cx
mov dword [ebp - 0x108], 0x400f
lea eax, [ebp - 0x10c]
push eax
push 0
push 0x447
push dword [0x419f78]
call dword [sym.imp.user32.dll_SendMessageW]
mov ecx, dword [ebp + 0x10]
push ecx
push esi
call dword [sym.imp.user32.dll_EndDialog]
mov eax, 1
add esp, 0x300
pop esi
pop edi
pop ebx
pop ebp
ret 0x10