import ctypes, struct
kernel32 = ctypes.windll.kernel32

pid = 43084
h = kernel32.OpenProcess(0x0010, False, pid)

ptrs = [0x2AF78D21830, 0x2AF2AD8EA00, 0x2AF2A428A10]
for p in ptrs:
    buf = ctypes.create_string_buffer(0x100)
    br = ctypes.c_size_t()
    kernel32.ReadProcessMemory(h, ctypes.c_void_p(p), buf, 0x100, ctypes.byref(br))
    data = buf.raw
    print(f"\nScanning ptr 0x{p:X} for floats:")
    for off in range(0, 0x100 - 12, 4):
        f1, f2, f3 = struct.unpack('<fff', data[off:off+12])
        if -5000 < f1 < 5000 and -5000 < f2 < 5000 and -500 < f3 < 500:
            if abs(f1) > 1.0 or abs(f2) > 1.0:
                print(f"  +0x{off:02X}: ({f1:.2f}, {f2:.2f}, {f3:.2f})")

kernel32.CloseHandle(h)
